/* V34: restrained monochrome polish over the approved V33 layout. */
:root {
  --ease-out: cubic-bezier(.2,.7,.2,1);
  --silver: #d9d8d0;
}

/* Keep the existing typeface, with a calmer editorial hierarchy. */
body { -webkit-font-smoothing: antialiased; }
.section-heading h2,
.centered-heading h2,
.faq h2 {
  font-family: var(--body);
  font-size: clamp(2.4rem,4.05vw,3.8rem);
  font-weight: 650;
  letter-spacing: -.055em;
  line-height: 1.12;
  text-wrap: balance;
}
.section-heading h2 em,
.centered-heading h2 em { font-weight: 450; color: #aaa9a5; }
.eyebrow { font-weight: 600; letter-spacing: .2em; }
.section-heading > p { line-height: 1.85; }
.centered-heading > p { max-width: 550px; }
.package-card h3,
.other-grid h4,
.service-card h3 { font-weight: 650; letter-spacing: -.035em; }
.package-price strong { font-weight: 650; letter-spacing: -.045em; }
.package-price > span { font-weight: 500; }
.package-features li { color: #bab9b2; }
.about-copy h2 {
  font-family: var(--body);
  font-size: clamp(4.4rem,6.8vw,6.3rem);
  font-weight: 650;
  letter-spacing: -.065em;
  line-height: .98;
}
.about-copy h2 em { font-weight: 450; }
.about-copy .lead { font-weight: 500; letter-spacing: -.03em; }

/* The surname is an actual link: hover embellishes its existing purpose. */
.hero h1 {
  font-size: clamp(4.2rem,7.5vw,7.25rem);
  font-weight: 550;
  letter-spacing: -.065em;
  line-height: 1.14;
  white-space: normal;
}
.hero-name {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: .02em .2em;
  max-width: 100%;
  padding: .06em .04em .22em;
  border-radius: 8px;
}
.hero-first-name { font-weight: 500; }
.hero h1 .hero-surname {
  position: relative;
  display: inline-block;
  font-weight: 750;
  color: #c4c3bd;
  white-space: nowrap;
  text-shadow: none;
  transform: translate3d(var(--name-x,0px),var(--name-y,0px),0);
  transition: color .45s, transform .5s var(--ease-out), filter .5s;
}
.hero-surname::after {
  content: '';
  position: absolute;
  left: .055em;
  right: .005em;
  bottom: -.12em;
  height: max(3px,.044em);
  border-radius: 8px;
  background: linear-gradient(90deg,#8c8c86,#ecebe4 52%,#aaa99f);
  transform: scaleX(.76);
  transform-origin: left center;
  transition: transform .6s var(--ease-out), box-shadow .5s, background .5s;
}
.hero-name:focus-visible { outline: 1px solid #e4e3db; outline-offset: 10px; }
.hero-name:focus-visible .hero-surname { color: #f1f0ec; }
.hero-name:focus-visible .hero-surname::after {
  transform: scaleX(1);
  box-shadow: 0 4px 15px #eeede01a;
}
.hero-signature { margin-top: 14px; font-weight: 500; letter-spacing: .34em; color: #c8c7bf; }
.hero-kicker {
  font-weight: 550;
  border-color: #d2d1c92e;
  background: #17171770;
  box-shadow: inset 0 1px 0 #ffffff07;
}
.hero-tagline { font-weight: 550; letter-spacing: -.04em; }
.hero-lead { color: #c0bfb8; }

/* Fine highlights and quieter chrome, using the same palette. */
.site-header {
  background: linear-gradient(135deg,rgba(248,247,241,.97),rgba(229,228,221,.96));
  border-color: #ffffff8a;
  box-shadow: 0 12px 45px #0003,inset 0 1px 0 #fff9;
}
.site-header.is-scrolled { box-shadow: 0 10px 42px #0005,inset 0 1px 0 #fff9; }
.brand-copy strong { font-weight: 750; letter-spacing: -.045em; }
.desktop-nav a { font-weight: 600; transition: color .25s; }
.desktop-nav a::after { height: 1px; bottom: 10px; transition: transform .4s var(--ease-out); }
.primary-button,.package-button {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  font-weight: 700;
  box-shadow: inset 0 1px 0 #ffffff6b,0 5px 16px #0001;
  transition: background .3s,transform .4s var(--ease-out),box-shadow .3s;
}
.primary-button::before,.package-button::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(115deg,transparent 25%,#ffffff73 47%,transparent 70%);
  transform: translateX(-135%);
  pointer-events: none;
}
.primary-button.compact { box-shadow: inset 0 1px 0 #ffffff16; }
.primary-button.compact::before,
.final-action .primary-button::before { background: linear-gradient(115deg,transparent 25%,#ffffff26 47%,transparent 70%); }
.primary-button > span,.package-button > span,.hero-secondary > span,.text-link > span {
  transition: transform .4s var(--ease-out);
}
.primary-button:focus-visible > span,.package-button:focus-visible > span { transform: translate(2px,-2px); }
.hero-actions .primary-button { border-radius: 14px; }
.package-tabs { background: #1a1a1a; border-color: #393936; box-shadow: inset 0 1px 0 #ffffff06; }
.package-tabs button { font-weight: 650; transition: color .3s,background .3s,box-shadow .3s; }
.package-tabs button[aria-selected=true] {
  background: linear-gradient(135deg,#eeede6,#c3c2b9);
  box-shadow: 0 3px 14px #0003,inset 0 1px 0 #fff9;
}
.package-card {
  position: relative;
  isolation: isolate;
  border-color: #383835;
  background: linear-gradient(155deg,#212120,#191919 65%);
  box-shadow: 0 14px 35px #0002,inset 0 1px 0 #ffffff05;
  transition: transform .5s var(--ease-out),border-color .4s,box-shadow .4s;
}
.package-content { position: relative; z-index: 1; }
.package-media { z-index: 1; }
.package-card::before,.service-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(420px circle at var(--light-x,50%) var(--light-y,25%),#edece416,transparent 70%);
  opacity: 0;
  transition: opacity .5s;
}
.duration-badge { font-weight: 700; box-shadow: 0 3px 14px #0003,inset 0 1px 0 #ffffff69; }
.package-features li::before { background: #c7c6bc; font-size: 11px; }
.package-button { border: 1px solid #ebeade78; }
.package-card:focus-within { border-color: #969588; box-shadow: 0 14px 35px #0003; }
.package-card:focus-within::before { opacity: 1; }
.service-card { position: relative; isolation: isolate; overflow: hidden; }
.service-card > * { position: relative; z-index: 1; }
.service-card-top svg { transition: transform .5s var(--ease-out),color .4s; }
.about-photo { border: 1px solid #ffffff16; }
.about-logo { box-shadow: 0 10px 30px #0004; }
.coach-principles span { background: #ffffff02; }
.faq-list details { transition: background .3s,border-color .3s; }
.faq-list details[open] { border-bottom-color: #737267; }
.faq-list summary::after { transition: transform .3s var(--ease-out); }
.custom-cursor.has-label { width: 64px; height: 64px; }
.custom-cursor.has-label span { font-family: var(--body); font-size: 11px; font-weight: 750; letter-spacing: .08em; }
.custom-cursor.has-label.is-pressed { width: 53px; height: 53px; }

@keyframes button-glint { to { transform: translateX(135%); } }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .hero-name:hover .hero-surname {
    color: #eeede7;
    filter: drop-shadow(0 2px 18px #ffffff0a);
  }
  .hero-name:hover .hero-surname::after {
    transform: scaleX(1);
    box-shadow: 0 5px 20px #ecebdf24;
  }
  @supports (background-clip:text) or (-webkit-background-clip:text) {
    .hero-name:hover .hero-surname {
      background: radial-gradient(ellipse at var(--shine-x,50%) 45%,#fff 8%,#e6e5de 40%,#97978f 100%);
      background-clip: text;
      -webkit-background-clip: text;
      color: transparent;
    }
  }
  .primary-button:hover::before,.package-button:hover::before { animation: button-glint .85s var(--ease-out) both; }
  .primary-button:hover > span,.package-button:hover > span,
  .hero-secondary:hover > span,.text-link:hover > span { transform: translate(3px,-3px); }
  .primary-button:hover { transform: translateY(-2px); }
  .package-card:hover { transform: translateY(-5px); border-color: #79796f; box-shadow: 0 20px 45px #0004; }
  .package-card:hover::before,.service-card:hover::before { opacity: 1; }
  .package-card:hover .package-media img { transform: scale(1.035); filter: saturate(.5); }
  .service-card:hover .service-card-top svg { transform: translateY(-3px); color: #f2f1e6; }
  .faq-list summary:hover::after { transform: rotate(90deg); }
}
@media (max-width:1100px) {
  .hero h1 { font-size: clamp(4rem,9.3vw,6.3rem); }
  .section-heading h2,.centered-heading h2,.faq h2 { font-size: clamp(2.4rem,4.8vw,3.4rem); }
}
@media (max-width:720px) {
  .hero h1 { font-size: clamp(2.3rem,9.4vw,4.5rem); letter-spacing: -.065em; }
  .hero-name { gap: .02em .18em; padding-bottom: .26em; }
  .hero-surname::after { height: 3px; bottom: -.14em; }
  .hero-signature { font-size: 10px; letter-spacing: .23em; }
  .section-heading h2,.centered-heading h2,.faq h2 {
    font-size: clamp(2.1rem,6.6vw,3rem);
    letter-spacing: -.055em;
    line-height: 1.15;
  }
  .about-copy h2 { font-size: clamp(4rem,13vw,5.2rem); }
  .package-card h3 { font-size: 21px; }
  .eyebrow { letter-spacing: .15em; }
}
@media (hover:none),(pointer:coarse) {
  .hero h1 .hero-surname { transform: none; }
  .package-card:hover,.primary-button:hover { transform: none; }
  .package-card:hover .package-media img { transform: none; filter: saturate(.3); }
  .package-card::before,.service-card::before { display: none; }
}
@media (prefers-reduced-motion:reduce) {
  .hero h1 .hero-surname,.primary-button > span,.package-button > span,
  .hero-secondary > span,.text-link > span { transform: none!important; }
  .primary-button::before,.package-button::before { display: none; }
  .hero-name:hover .hero-surname::after { transform: scaleX(.76); }
}
@media (forced-colors:active) {
  .hero h1 .hero-surname { color: LinkText!important; background: none!important; filter: none; }
  .hero-surname::after { background: LinkText; }
  .hero-name:focus-visible { outline-color: Highlight; }
  .package-card::before,.service-card::before { display: none; }
}

/* V35 — a consistent page rhythm, measured type and quiet section finishes. */
:root {
  --section-space: clamp(4.5rem,7.3vw,7rem);
  --soft-line: #d8d7cd22;
}
.section { padding-block: var(--section-space); }
.eyebrow { font-size: .75rem; line-height: 1.6; letter-spacing: .16em; }
.brand-copy small { font-size: .75rem; letter-spacing: .01em; }
.header-link { font-size: .875rem; }
.hero-signature { font-size: .75rem; }
.hero-bottom,.hero-bottom a { font-size: .75rem; letter-spacing: .04em; }
.section-heading { margin-bottom: clamp(2.2rem,4vw,3.4rem); }
.section-heading h2,.faq h2 { max-width: 18ch; }
.centered-heading h2 { max-width: none; }
.service-card p,.other-grid p,.process-grid p,.faq-list details p { font-size: 1rem; }
.packages {
  position: relative;
  background: radial-gradient(ellipse at 50% 0,#2424237a,transparent 56%),#121212;
  border-bottom: 1px solid var(--soft-line);
}
.packages .centered-heading { margin-bottom: 2rem; }
.package-tabs { margin-bottom: 1.4rem; }
.package-panel-note { margin-bottom: 2rem; }
.package-grid { gap: clamp(1rem,1.8vw,1.5rem); }
.package-content {
  display: grid;
  grid-template-rows: minmax(3.7rem,auto) auto auto 1fr auto;
  padding: 1.5rem 1.4rem 1.4rem;
}
.package-card h3 { min-height: 0; font-size: 1.2rem; line-height: 1.48; }
.package-price { margin-top: 1.1rem; }
.price-caption { font-size: .75rem; line-height: 1.6; }
.package-features { align-content: start; gap: .9rem; margin: 1.45rem 0 1.65rem; }
.package-button { align-self: end; margin-top: 0; min-height: 3.1rem; }
.package-photo-mark { font-size: .75rem; letter-spacing: .08em; }
.duration-badge { font-size: .75rem; }
.standard-benefits { margin-top: 1.6rem; background: #ffffff03; }
.benefits-head strong { font-weight: 550; }
.other-services { padding-top: 2.3rem; border-top: 1px solid var(--soft-line); }
.other-grid article { background: linear-gradient(135deg,#ffffff05,transparent); }
.other-grid footer { border-top-color: var(--soft-line); }

/* Existing six services remain intact; their icon and text hierarchy is refined. */
.system { background: #101010; }
.service-card { background: linear-gradient(145deg,#1d1d1c,#151515); }
.service-card-top svg {
  box-sizing: content-box;
  width: 1.6rem;
  height: 1.6rem;
  padding: .8rem;
  border: 1px solid #ffffff17;
  border-radius: 1rem;
  background: #ffffff03;
}
.service-card-top > span { font-size: .75rem; font-variant-numeric: tabular-nums; }
.service-card h3 { font-size: 1.2rem; }
.system-foot { padding-top: .6rem; }

/* An asymmetric portrait frame distinguishes the coach section. */
.about { grid-template-columns: .95fr 1.05fr; gap: clamp(3rem,6.7vw,6.5rem); }
.about-photo { aspect-ratio: .82; border-radius: 6rem 1.5rem 1.5rem 1.5rem; }
.about-photo figcaption {
  width: fit-content;
  max-width: calc(100% - 3rem);
  padding: .6rem .9rem;
  bottom: 1.4rem;
  left: 1.4rem;
  border: 1px solid #ffffff24;
  border-radius: 2rem;
  background: #1010109c;
  backdrop-filter: blur(10px);
  font-size: .75rem;
  letter-spacing: .03em;
}
.about-logo { bottom: -1.6rem; right: -1.7rem; border-radius: 1.3rem; }
.about-copy h2 { margin-bottom: 2rem; }
.about-copy .lead { padding-left: 1.1rem; border-left: 2px solid #d5d4c5; font-size: 1.3rem; }
.coach-principles { gap: .55rem; }
.coach-principles span { font-size: .75rem; padding: .6rem .8rem; }
.about-text { grid-template-columns: 1fr; }
.brand-statement { border-block-color: var(--soft-line); }
.statement-side { font-size: .75rem; letter-spacing: .12em; }

/* The existing four steps read as one continuous sequence. */
.process-grid { gap: 2rem; }
.process-grid article { position: relative; padding-top: 0; border-top: 0; }
.process-grid article > span {
  display: grid;
  place-items: center;
  width: 3.2rem;
  height: 3.2rem;
  margin-bottom: 1.8rem;
  border: 1px solid #7a79694f;
  border-radius: 50%;
  background: linear-gradient(135deg,#2a2a26,#181818);
  color: #dbdacd;
  font: 500 1.125rem/1 var(--body);
  font-variant-numeric: tabular-nums;
}
.process-grid article:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 1.6rem;
  left: 4.1rem;
  right: -.9rem;
  height: 1px;
  background: linear-gradient(90deg,#aaa99542,#aaa99514);
}
.process-grid h3 { font-size: 1.15rem; font-weight: 650; }
.process-grid p { color: #aaa99f; line-height: 1.85; }

/* Native details keep keyboard and no-JavaScript behavior. */
.faq { align-items: start; }
.faq-heading { padding-top: .5rem; }
.faq-list details {
  margin-bottom: .75rem;
  border: 1px solid #363631;
  border-radius: 1rem;
  background: #ffffff02;
}
.faq-list details:first-child { border-top: 1px solid #363631; }
.faq-list details[open] { background: #1c1c1a; border-color: #73726680; }
.faq-list summary { align-items: baseline; padding: 1.3rem 1.25rem; font-weight: 550; }
.faq-list summary > span { min-width: 1.25rem; font-size: .75rem; }
.faq-list summary::after { width: 1.4rem; text-align: center; line-height: 1; }
.faq-list details[open] summary:hover::after { transform: none; }
.faq-list details p { padding: 0 1.5rem 1.5rem 3.6rem; line-height: 1.85; }

/* A contained silver closing panel mirrors the floating top navigation. */
.final-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: min(1360px,calc(100% - 64px));
  margin: 0 auto 4.5rem;
  padding-block: clamp(3rem,5.5vw,5rem);
  border: 1px solid #f9f8ec87;
  border-radius: 2rem;
  background: radial-gradient(ellipse at 5% 0,#f0efe5,transparent 70%),#cccbbf;
}
.final-inner h2 {
  font-family: var(--body);
  font-size: clamp(2.7rem,4.6vw,4rem);
  font-weight: 600;
  letter-spacing: -.06em;
  line-height: 1.1;
}
.final-inner h2 em { font-weight: 450; color: #606052; }
.final-action { flex-shrink: 0; }
.site-footer { padding-top: 0; }
.footer-links a { font-size: .875rem; }
.footer-wordmark {
  padding-top: 2.2rem;
  padding-bottom: 2rem;
  font-size: clamp(100px,20.4vw,270px);
  color: #242422;
  letter-spacing: .015em;
}
@supports (-webkit-text-stroke:1px #41413a) {
  .footer-wordmark { -webkit-text-stroke: 1px #41413a; color: transparent; }
}
.footer-bottom > span { font-size: .75rem; letter-spacing: .08em; }

@media (min-width:721px) and (max-width:1100px) {
  .process-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 2rem; }
  .process-grid article:nth-child(2n)::after { display: none; }
  .final-inner { gap: 2rem; }
  .final-inner h2 { font-size: 2.7rem; }
  .final-action .primary-button { min-width: 0; padding-inline: 1rem; gap: 1rem; }
}
@media (max-width:1100px) {
  .about { gap: 3rem; }
  .about-copy h2 { font-size: 4.5rem; }
}
@media (max-width:720px) {
  :root { --section-space: 4.25rem; }
  .site-header .brand-copy small { display: none; }
  .hero-signature { font-size: .75rem; letter-spacing: .17em; }
  .hero-bottom { justify-content: center; min-height: 4.5rem; }
  .hero-bottom > span { display: none; }
  .hero-bottom a { font-size: .75rem; letter-spacing: .04em; }
  .package-content,.advanced-grid .package-content { padding: 1.5rem; }
  .package-card h3 { font-size: 1.25rem; }
  .package-grid { max-width: 440px; }
  .section-heading { margin-bottom: 2rem; }
  .other-services { margin-top: 2.6rem; padding-top: 2rem; }
  .other-grid article { padding: 1.5rem; }
  .about { grid-template-columns: 1fr; gap: 3.8rem; }
  .about-photo { border-top-left-radius: 4.3rem; aspect-ratio: .88; }
  .about-photo figcaption { left: 1rem; bottom: 1rem; max-width: calc(100% - 2rem); font-size: .75rem; }
  .about-logo { right: -1rem; width: 6.2rem; }
  .about-copy h2 { font-size: clamp(3.7rem,12vw,5rem); }
  .coach-principles span { font-size: .75rem; }
  .statement-side { display: none; }
  .process-grid { grid-template-columns: 1fr; gap: 1.7rem; }
  .process-grid article { padding-left: 4.7rem; min-height: 7.5rem; }
  .process-grid article > span { position: absolute; top: 0; left: 0; }
  .process-grid article:not(:last-child)::after {
    top: 3.9rem;
    bottom: -.9rem;
    left: 1.6rem;
    right: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(#aaa99542,#aaa99514);
  }
  .process-grid h3 { font-size: 1.2rem; padding-top: .1rem; }
  .faq-list summary { padding: 1.2rem 1rem; gap: .6rem; font-size: .95rem; }
  .faq-list details p { padding: 0 1.1rem 1.4rem; }
  .final-cta { width: calc(100% - 24px); border-radius: 1.5rem; margin-bottom: 3.5rem; }
  .final-inner h2 { font-size: clamp(2.3rem,7.4vw,3.3rem); }
  .final-action { margin-top: 1.8rem; }
  .final-action .primary-button { width: 100%; min-width: 0; }
  .footer-bottom > span { letter-spacing: .04em; }
}
@media (forced-colors:active) {
  .footer-wordmark { color: CanvasText; -webkit-text-stroke: 0; }
  .process-grid article > span { border-color: CanvasText; color: CanvasText; }
  .process-grid article::after { background: CanvasText!important; }
}
