/* Design controls. Loaded after each theme so d-* classes can restyle a section. */

.t .block.d-variant-cards > .sec.pu-stats,
.t .block.d-variant-outline > .sec.pu-stats,
.t .block.d-variant-glow > .sec.pu-stats,
.t .block.d-variant-split > .sec.pu-stats {
  background: transparent;
  border: 0;
  padding-block: clamp(2.2rem, 5vw, 4.5rem);
  padding-inline: clamp(1rem, 4vw, 4.5rem);
}

.t .block.d-variant-cards :is(.stat, .card) {
  background: var(--c-surface, var(--c-bg));
  color: var(--c-text);
  border: 1px solid var(--c-border);
  border-radius: var(--radius, 16px);
  padding: 1.15rem 1.2rem;
}
.t .block.d-variant-cards :is(.stats, .cards) { gap: .9rem; }

.t .block.d-variant-outline :is(.stat, .card) {
  background: transparent;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
  border-radius: var(--radius, 16px);
  padding: 1.1rem 1.15rem;
}

.t .block.d-variant-glow :is(.stat, .card) {
  background: color-mix(in srgb, var(--c-accent) 14%, var(--c-surface, var(--c-bg)));
  color: var(--c-text);
  border-radius: var(--radius, 18px);
  padding: 1.2rem 1.25rem;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--c-accent) 50%, transparent),
    0 18px 46px color-mix(in srgb, var(--c-accent) 24%, transparent);
}

.t .block.d-variant-band > .sec,
.t .block.d-variant-band > .sec.pu-stats {
  background: color-mix(in srgb, var(--c-text) 92%, var(--c-bg));
  color: var(--c-bg);
  border: 0;
  padding-block: clamp(2.2rem, 5vw, 4.5rem);
  padding-inline: clamp(1rem, 4vw, 4.5rem);
}
.t .block.d-variant-band .eyebrow,
.t .block.d-variant-band .stat span,
.t .block.d-variant-band .cv-stat span { color: var(--c-accent); }
.t .block.d-variant-band .stat strong,
.t .block.d-variant-band h2 { color: var(--c-bg); }

.t .block.d-variant-split > .sec {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  column-gap: clamp(1.5rem, 4vw, 3.5rem);
  row-gap: .55rem;
  align-items: center;
}
.t .block.d-variant-split > .sec > :is(.stats, .cards, .t-rail) {
  grid-column: 2;
  grid-row: 1 / span 8;
  align-self: center;
}

.t .block.d-cols-2 :is(.stats, .cards) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.t .block.d-cols-3 :is(.stats, .cards) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.t .block.d-cols-4 :is(.stats, .cards) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* pricing: the columns follow the number of plans, whatever the section's "columns" setting says,
   so every plan sits in one row (and never one alone on a second row) */
.t .block .sec-pricing .plan-grid[data-plans] { grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); }
.t .block .sec-pricing .plan-grid[data-plans="4"] { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }

.t .block.d-size-compact .stat strong { font-size: 1.2rem; }
.t .block.d-size-large .stat strong { font-size: clamp(2rem, 4vw, 3.2rem); line-height: .95; }
.t .block.d-size-hero .stats { align-items: end; }
.t .block.d-size-hero .stat:first-child { grid-column: 1 / -1; }
.t .block.d-size-hero .stat:first-child strong {
  font-size: clamp(3.2rem, 8vw, 6rem);
  letter-spacing: -0.04em;
  line-height: .88;
}
.t .block.d-size-hero .stat:first-child span {
  margin-top: .45rem;
  font-size: .95rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.t .block.d-accent-numbers .stat strong,
.t .block.d-accent-numbers .cv-stat strong { color: var(--c-accent); }
.t .block.d-accent-first .stat:first-child strong,
.t .block.d-accent-first .card:first-child h3 { color: var(--c-accent); }
.t .block.d-accent-line :is(.stat, .card) { border-top: 3px solid var(--c-accent); }

.t .block.d-surface-raised :is(.stat, .card) {
  box-shadow: 0 18px 40px color-mix(in srgb, var(--c-text) 16%, transparent);
}
.t .block.d-surface-glass :is(.stat, .card) {
  background: color-mix(in srgb, var(--c-surface, var(--c-bg)) 58%, transparent);
  backdrop-filter: blur(14px);
}

.t .block.d-radius-sharp :is(.stat, .card) { border-radius: 0; }
.t .block.d-radius-soft :is(.stat, .card) { border-radius: 16px; }
.t .block.d-radius-round :is(.stat, .card) { border-radius: 28px; }

.t .block.d-divider-lines .stats { gap: 0; }
.t .block.d-divider-lines .stat {
  padding-inline: 1rem;
  border-inline-start: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}
.t .block.d-divider-lines .stat:first-child { border-inline-start: 0; }

@keyframes gh-rise {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}
html.t-motion .t .block.d-motion-rise.is-in :is(.stat, .card) {
  animation: gh-rise .7s cubic-bezier(.16, 1, .3, 1) both;
}
html.t-motion .t .block.d-motion-rise.is-in :is(.stat, .card):nth-child(2) { animation-delay: .08s; }
html.t-motion .t .block.d-motion-rise.is-in :is(.stat, .card):nth-child(3) { animation-delay: .16s; }
html.t-motion .t .block.d-motion-rise.is-in :is(.stat, .card):nth-child(4) { animation-delay: .24s; }
html.t-motion .t .block.d-motion-rise.is-in :is(.stat, .card):nth-child(5) { animation-delay: .32s; }
html.t-motion .t .block.d-motion-rise.is-in :is(.stat, .card):nth-child(6) { animation-delay: .4s; }

@media (max-width: 800px) {
  .t .block.d-variant-split > .sec { grid-template-columns: minmax(0, 1fr); }
  .t .block.d-variant-split > .sec > :is(.stats, .cards, .t-rail) { grid-column: auto; grid-row: auto; }
  .t .block.d-cols-3 :is(.stats, .cards),
  .t .block.d-cols-4 :is(.stats, .cards) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .t .block.d-size-hero .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .t .block.d-size-hero .stat:first-child { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .t .block.d-cols-2 :is(.stats, .cards) { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  html.t-motion .t .block.d-motion-rise.is-in :is(.stat, .card) { animation: none; }
}

.t .block.d-media-square :is(.sec-hero, .sec-about, .sec-coach, .fg-hero, .pu-hero) .sec-media img,
.t .block.d-media-square :is(.sec-hero, .sec-about, .sec-coach, .fg-hero, .pu-hero) .sec-media .ph {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.t :is(.sec-hero, .sec-about, .sec-coach) .sec-media.is-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: .65rem;
}
.t :is(.sec-hero, .sec-about, .sec-coach) .sec-media.is-pair img,
.t :is(.sec-hero, .sec-about, .sec-coach) .sec-media.is-pair .ph {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
