.uolpc-section {
  --uolpc-columns: 3;
  --uolpc-radius: 24px;
  width: 100%;
  max-width: 1380px;
  margin: 0 auto;
  padding: clamp(26px, 4vw, 64px) clamp(16px, 3vw, 30px);
  font-family: inherit;
}

.uolpc-section.is-full-width {
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: none;
  margin-left: -50vw;
  padding-right: max(clamp(16px, 3vw, 30px), calc((100vw - 1380px) / 2));
  padding-left: max(clamp(16px, 3vw, 30px), calc((100vw - 1380px) / 2));
}

.uolpc-header { max-width: 780px; margin: 0 auto clamp(28px, 4vw, 48px); text-align: center; }
.uolpc-eyebrow { display: inline-block; margin-bottom: 10px; color: #635bff; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.uolpc-header h2 { margin: 0; color: #121525; font-size: clamp(30px, 4vw, 52px); font-weight: 800; letter-spacing: -.035em; line-height: 1.05; }
.uolpc-header p { margin: 14px auto 0; color: #5c6274; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.55; }

.uolpc-section .uolpc-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--uolpc-columns), minmax(0, 1fr)) !important;
  gap: clamp(14px, 2vw, 24px) !important;
  width: 100% !important;
}

.uolpc-grid > br,
.uolpc-card > br {
  display: none !important;
}

.uolpc-section.columns-3 .uolpc-grid,
.uolpc-section.is-full-width .uolpc-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.uolpc-card {
  position: relative;
  isolation: isolate;
  display: flex !important;
  grid-column: auto !important;
  grid-row: auto !important;
  justify-self: stretch !important;
  align-self: stretch !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  min-width: 0;
  min-height: 260px;
  overflow: hidden;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(255,255,255,.26);
  border-radius: var(--uolpc-radius);
  background: linear-gradient(145deg, var(--uolpc-c1), var(--uolpc-c2));
  box-shadow: 0 16px 34px color-mix(in srgb, var(--uolpc-c2) 24%, transparent);
  color: #fff !important;
  text-decoration: none !important;
  transform: translateY(0);
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}

.uolpc-photo {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  background-position: center;
  background-size: cover;
  opacity: var(--uolpc-photo-opacity, .18);
  filter: grayscale(15%) contrast(92%);
  pointer-events: none;
}

.uolpc-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(0,0,0,.12) 72%);
  pointer-events: none;
}

.uolpc-card::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -90px;
  z-index: 1;
  width: 220px;
  height: 220px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(255,255,255,.055), 0 0 0 60px rgba(255,255,255,.035);
  pointer-events: none;
}

.uolpc-card:hover, .uolpc-card:focus-visible { color: #fff !important; transform: translateY(-7px); box-shadow: 0 24px 52px color-mix(in srgb, var(--uolpc-c2) 38%, transparent); }
.uolpc-card:focus-visible { outline: 3px solid #111; outline-offset: 4px; }
.uolpc-icon { position: absolute; top: 24px; right: 24px; z-index: 3; display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 18px; background: rgba(255,255,255,.15); box-shadow: inset 0 1px 0 rgba(255,255,255,.22); backdrop-filter: blur(8px); }
.uolpc-icon svg { width: 34px; height: 34px; }
.uolpc-icon .fill { fill: currentColor; stroke: none; }
.uolpc-content { position: relative; z-index: 3; display: flex; align-self: flex-end; flex-direction: column; width: 100%; padding-top: 72px; }
.uolpc-content strong { max-width: 78%; font-size: clamp(23px, 2vw, 30px); font-weight: 800; letter-spacing: -.025em; line-height: 1.08; }
.uolpc-text { max-width: 95%; margin-top: 13px; color: rgba(255,255,255,.9); font-size: 15px; line-height: 1.52; text-shadow: 0 1px 10px rgba(0,0,0,.16); }
.uolpc-link { display: flex; align-items: center; justify-content: space-between; margin-top: 24px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.25); font-size: 13px; font-weight: 750; letter-spacing: .02em; }
.uolpc-link b { font-size: 22px; font-weight: 400; transition: transform .25s ease; }
.uolpc-card:hover .uolpc-link b { transform: translateX(5px); }

@media (max-width: 479px) {
  .uolpc-section.columns-3 .uolpc-grid,
  .uolpc-section.is-full-width .uolpc-grid,
  .uolpc-section .uolpc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 359px) {
  .uolpc-section { padding-right: 12px; padding-left: 12px; }
  .uolpc-section.is-full-width { left: auto; width: 100%; margin-left: 0; }
  .uolpc-section.columns-3 .uolpc-grid,
  .uolpc-section.is-full-width .uolpc-grid,
  .uolpc-section .uolpc-grid { grid-template-columns: 1fr !important; }
  .uolpc-card { min-height: 240px; }
  .uolpc-header { text-align: left; }
  .uolpc-content strong { max-width: 75%; }
}

@media (prefers-reduced-motion: reduce) {
  .uolpc-card, .uolpc-link b { transition: none; }
  .uolpc-card:hover { transform: none; }
}
