/* Polish layer. Loads last on every page and only refines what is already there:
   type, buttons, motion, header, and hover/focus states. Remove this file and
   polish.js to return to the original look. */

:root{
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --ease-out:cubic-bezier(.22,.8,.24,1);
  --ease-spring:cubic-bezier(.34,1.4,.5,1);
  --gold-grad:linear-gradient(180deg,#ecd08a 0%,#dcb862 100%);
  --gold-grad-hover:linear-gradient(180deg,#f3dc9e 0%,#e4c26f 100%);
  --lift-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 10px 28px -10px rgba(4,20,14,.55),0 2px 6px -2px rgba(4,20,14,.35);
  --lift-shadow-hover:0 1px 0 rgba(255,255,255,.4) inset,0 18px 36px -12px rgba(4,20,14,.6),0 4px 10px -4px rgba(4,20,14,.4);
  --ring:0 0 0 3px rgba(237,209,138,.55);
}

/* ---------- Type ---------- */
body{font-feature-settings:'ss01','cv11';text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
/* One headline voice across every page: the hero and contact headlines used
   heavy Arial while the rest of the site uses the serif. */
h1:not(#_){font-family:var(--serif);font-weight:500;letter-spacing:-.028em;font-optical-sizing:auto}
h1 em,h2 em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em}
h2:not(#_){letter-spacing:-.025em}
.start-section h2 a,.home-closing h2{font-family:var(--serif);font-weight:400}
.eyebrow{letter-spacing:.18em;font-weight:600}
::selection{background:#edd18a;color:#0b221b}

/* ---------- Focus ---------- */
:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid #edd18a;outline-offset:3px;border-radius:6px}

/* ---------- Header: stays with you, quietly ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(16,46,36,.94);-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);transition:box-shadow .3s var(--ease-out),background .3s var(--ease-out)}
.site-header.is-scrolled{background:rgba(12,38,29,.97);box-shadow:0 10px 30px -18px rgba(0,0,0,.7)}
@media(max-width:1199px){.header-inner nav.is-open{max-height:calc(100dvh - 92px);overflow-y:auto;overscroll-behavior:contain}}
/* Nav links: a thin gold underline that draws in instead of a jump in color. */
@media(min-width:1200px){
  .header-inner nav>a:not(.nav-cta){position:relative;text-decoration:none!important;transition:color .2s}
  .header-inner nav>a:not(.nav-cta)::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
  .header-inner nav>a:not(.nav-cta):hover::after,.header-inner nav>a[aria-current=page]::after{transform:scaleX(1)}
}
/* Training Options showed two "+" signs (a global summary rule plus its own icon). One chevron now. */
.training-dropdown>summary::after{content:none!important}
.training-dropdown>summary,.header-inner nav>a{white-space:nowrap}
@media(min-width:1200px){.header-inner nav>a:not(.nav-cta),.training-dropdown,.training-dropdown>summary{font-size:.875rem!important}.training-dropdown>summary{font-weight:400;gap:6px}}
@media(min-width:1200px) and (max-width:1380px){.header-inner nav{gap:15px!important}.header-inner nav a,.training-dropdown{font-size:.8125rem!important}}
.training-toggle-icon{font-size:0!important;width:14px;height:14px;position:relative}
.training-toggle-icon::after{content:''!important;position:absolute;left:3px;top:2px;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s var(--ease-out)}
.training-dropdown[open]>summary .training-toggle-icon::after{transform:translateY(3px) rotate(-135deg)}
@media(min-width:1200px){
  .training-submenu{border-radius:14px;padding:8px;border-color:rgba(237,209,138,.22);background:rgba(16,46,36,.98);box-shadow:0 24px 50px -20px rgba(0,0,0,.65)}
  .training-dropdown[open] .training-submenu{animation:polish-drop .28s var(--ease-out)}
  .header-inner nav .training-submenu a{border-radius:9px;transition:background .2s,color .2s,padding .25s var(--ease-out)}
  .header-inner nav .training-submenu a:hover{padding-left:18px}
}
@keyframes polish-drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.menu-button{border-radius:999px!important;border-color:rgba(237,209,138,.45)!important;padding-inline:16px!important;transition:background .2s,border-color .2s}
@media(max-width:520px){.menu-button{padding-inline:12px!important}}
.menu-button:hover,.menu-button[aria-expanded=true]{background:rgba(237,209,138,.1)!important;border-color:#edd18a!important}
.header-quick-link{transition:background .25s,border-color .25s,transform .25s var(--ease-spring)!important}
.header-quick-link:hover{transform:translateY(-2px)!important}

/* ---------- Buttons: one family ---------- */
.button,.nav-cta,.hero-consult-trigger,.hero-secondary,.hero-library-link,.hero-instagram-link,.hp-wide-link,.conversation-modal-actions a,.pathway-note-link,.hp-detail-link,.text-link{
  -webkit-tap-highlight-color:transparent;
  transition:transform .35s var(--ease-spring),box-shadow .35s var(--ease-out),background .25s,border-color .25s,color .25s!important;
}
.button,.nav-cta,.hero-consult-trigger,.hero-secondary,.hero-library-link,.hero-instagram-link,.hp-wide-link,.conversation-modal-actions a{border-radius:999px!important;font-weight:600!important;letter-spacing:.01em}
/* Gold = the main action, everywhere. */
.button-gold,.nav-cta,.hero-consult-trigger,.hero-library-link,.hp-wide-link{background:var(--gold-grad)!important;border-color:transparent!important;color:#0f2a20!important;box-shadow:var(--lift-shadow)!important}
.button-gold:hover,.nav-cta:hover,.hero-consult-trigger:hover,.hero-library-link:hover,.hp-wide-link:hover{background:var(--gold-grad-hover)!important;box-shadow:var(--lift-shadow-hover)!important;transform:translateY(-2px)}
/* The questionnaire link read gold-on-gold (invisible) on the Contact page. */
.header-inner nav .nav-cta[aria-current=page]{color:#0f2a20!important;text-decoration:none!important}
.nav-cta{padding:12px 20px!important}
/* Outline buttons on dark backgrounds. */
.hero-secondary,.hero-instagram-link{background:rgba(255,255,255,.03)!important;border:1px solid rgba(237,209,138,.55)!important;box-shadow:none!important}
.hero-secondary:hover,.hero-instagram-link:hover{background:rgba(237,209,138,.1)!important;border-color:#edd18a!important;transform:translateY(-2px)}
/* Dark button on the gold closing band. */
.button-dark{background:#102e24!important;color:#f7f2e7!important;border-color:#102e24!important;box-shadow:0 14px 30px -14px rgba(16,46,36,.7)!important}
.button-dark:hover{background:#17392d!important;transform:translateY(-2px);box-shadow:0 20px 36px -14px rgba(16,46,36,.75)!important}
.button-dark .g-arrow{stroke:#edd18a}
.button:active,.nav-cta:active,.hero-consult-trigger:active,.hero-secondary:active,.hero-library-link:active,.hero-instagram-link:active,.hp-wide-link:active,.conversation-modal-actions a:active{transform:translateY(0) scale(.985)!important;transition-duration:.1s!important}
/* Arrows lean toward where they point. */
.g-arrow,.hp-toggle-arrow,.directory-arrow{transition:transform .4s var(--ease-spring)}
a:hover>.g-arrow,a:hover .g-arrow,button:hover .g-arrow{transform:translateX(4px)}
.hp-toggle:hover .hp-toggle-arrow{transform:translateY(3px)}
.hp-toggle[aria-expanded=true] .hp-toggle-arrow{transform:rotate(180deg)}
/* Underlined text links: underline grows from the left. */
.pathway-note-link,.hp-detail-link{border-bottom-color:transparent!important;background:linear-gradient(currentColor,currentColor) left bottom/0% 1px no-repeat;padding-bottom:4px}
.pathway-note-link{background-size:100% 1px}
.pathway-note-link:hover,.hp-detail-link:hover{background-size:100% 1px}

/* ---------- Cards and photos ---------- */
.hp-program,.hp-video-card,.hp-pillar,.training-card,.package-card,.tp-tier,.video-card{transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out),border-color .3s}
.hp-program{box-shadow:0 30px 60px -40px rgba(0,0,0,.8)}
.hp-program:hover{border-color:rgba(237,209,138,.7)}
.hp-program-image,.hp-video-card img,.hp-pillar-photo img{transition:transform 1.2s var(--ease-out),filter .6s}
.hp-program:hover .hp-program-image,.hp-video-card:hover img,.hp-pillar:hover .hp-pillar-photo img{transform:scale(1.045)}
.hp-video-card{overflow:hidden}
/* Labels over bright photos were hard to read; deepen the lower half of the shade. */
.hp-video-card-shade{background:linear-gradient(180deg,rgba(11,34,27,0) 18%,rgba(11,34,27,.55) 48%,rgba(11,34,27,.94) 100%)!important}
.hp-video-card-copy{text-shadow:0 1px 14px rgba(5,20,15,.45)}
.hp-video-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -24px rgba(16,46,36,.55)}
.hp-pillar{box-shadow:0 24px 50px -36px rgba(16,46,36,.45)}
.hp-pillar-photo{overflow:hidden}
.hero-about-photo,.photo-frame{overflow:hidden}
.hero-about-photo img{transition:transform 1.2s var(--ease-out)}
.hero-about-photo:hover img{transform:scale(1.03)}
.hp-benefit-number{transition:background .3s,color .3s,border-color .3s}
.hp-benefit-list li:hover .hp-benefit-number{background:var(--gold);color:#0f2a20;border-color:var(--gold)}

/* ---------- Conversation popup ---------- */
.conversation-modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:polish-fade .3s var(--ease-out)}
.conversation-modal-card{animation:polish-rise .45s var(--ease-spring);border-radius:22px!important;box-shadow:0 40px 90px -30px rgba(0,0,0,.75),0 0 0 1px rgba(237,209,138,.15) inset!important}
.conversation-modal-close{width:40px;height:40px;border-radius:50%!important;display:grid;place-items:center;top:10px!important;right:10px!important;transition:background .2s,transform .3s var(--ease-spring)}
.conversation-modal-close:hover{background:rgba(255,255,255,.08);transform:rotate(90deg)}
.conversation-modal-actions a:first-child{background:var(--gold-grad)!important;color:#0f2a20!important;border-color:transparent!important}
.conversation-modal-actions a:hover{transform:translateY(-2px);outline:none!important}
body.conversation-open{overflow:hidden}
body.conversation-open .site-header{z-index:0}
@keyframes polish-fade{from{opacity:0}to{opacity:1}}
@keyframes polish-rise{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}

/* ---------- Gentle reveal on scroll (only when polish.js is running) ---------- */
html.polish-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--reveal-delay,0s)}
html.polish-motion .reveal.is-visible{opacity:1;transform:none}

/* ---------- Footer ---------- */
footer a{transition:color .2s}
footer a:hover{color:var(--gold)}

@media(prefers-reduced-motion:reduce){
  html.polish-motion .reveal{opacity:1;transform:none}
  .conversation-modal,.conversation-modal-card,.training-submenu{animation:none!important}
  .hp-program:hover .hp-program-image,.hp-video-card:hover img,.hp-pillar:hover .hp-pillar-photo img,.hero-about-photo:hover img{transform:none}
}

/* =====================================================================
   Laptop and desktop layout (1100px and wider). Phones and tablets are
   untouched by everything below.
   ===================================================================== */
.hero-photo{display:none}
@media(min-width:1100px){
  /* Slightly larger reading size on big screens. */
  html{font-size:17px}

  /* One content width everywhere, so header, sections and footer share the same edges. */
  .shell{width:min(1200px,calc(100% - 128px))!important;margin-inline:auto}
  .hp-shell{max-width:none!important}
  section:not(.hero):not(.page-intro):not(.tp-hero):not(.faq-hero):not(.vl-hero):not(.questionnaire-nudge){padding-block:clamp(88px,8vw,120px)}

  /* ---------- Page headers with a photo: copy left, arched photo right ---------- */
  .page-intro,.tp-hero,.faq-hero,.vl-hero{position:relative;overflow:hidden;isolation:isolate}
  .page-intro::before,.tp-hero::before,.faq-hero::before,.vl-hero::before,.home-page .hero::before{
    content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:radial-gradient(60% 80% at 85% 20%,rgba(223,189,105,.10),transparent 60%),radial-gradient(50% 70% at 0% 100%,rgba(0,0,0,.22),transparent 70%)}
  .has-hero-photo{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;gap:clamp(56px,6vw,96px)!important;align-items:center!important;max-width:none!important}
  .page-intro:has(.has-hero-photo),.tp-hero:has(.has-hero-photo),.faq-hero:has(.has-hero-photo){padding:clamp(64px,7vw,96px) 0!important}
  .has-hero-photo h1{font-size:clamp(3.4rem,5.2vw,5.2rem)!important;line-height:1.02!important;margin:18px 0 26px!important}
  .has-hero-photo :is(.intro-description,.tp-lead,.section-lead){font-size:1.15rem!important;line-height:1.65;max-width:540px;color:#d9e2d8}
  .hero-photo{display:block;position:relative;margin:0;justify-self:end;width:100%;max-width:500px}
  .hero-photo img{display:block;width:100%;aspect-ratio:5/5.4;height:auto;object-fit:cover;border-radius:180px 18px 18px 18px;box-shadow:0 40px 80px -40px rgba(0,0,0,.75)}
  /* Thin gold offset frame, echoing the arched portrait on Meet Phillip. */
  .hero-photo::before{content:'';position:absolute;inset:18px -18px -18px 18px;border:1px solid rgba(223,189,105,.55);border-radius:180px 18px 18px 18px;z-index:-1}
  .faq-hero .gama-replay-button{margin-top:6px}

  /* ---------- Homepage hero: message left, trainer card right ---------- */
  .home-page .hero-grid{grid-template-columns:1fr!important;padding-block:clamp(56px,6vw,88px)!important}
  /* Rows: flexible space, the seven left-hand items, flexible space. The trainer card spans all
     of them, so the left column stays tight and centers against the photo. */
  .home-page .hero-copy{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-rows:1fr repeat(7,auto) 1fr;column-gap:clamp(56px,6vw,96px);align-items:start}
  .home-page .hero-copy>*{grid-column:1}
  .home-page .hero-copy>.eyebrow{grid-row:2}
  .home-page .hero-copy>#hero-title{grid-row:3}
  .home-page .hero-copy>.hero-description{grid-row:4}
  .home-page .hero-copy>.hero-consultation{grid-row:5}
  .home-page .hero-copy>.hero-secondary{grid-row:6}
  .home-page .hero-copy>.hero-library-link{grid-row:7}
  .home-page .hero-copy>.hero-instagram-link{grid-row:8}
  .home-page .hero-copy>.eyebrow,.home-page #hero-title,.home-page .hero-description{text-align:left!important;margin-left:0!important}
  .home-page #hero-title{font-size:clamp(3.8rem,5.6vw,5.6rem);line-height:1;margin:14px 0 0}
  .home-page .hero-description{max-width:500px;font-size:1.2rem;line-height:1.6;margin-top:26px!important}
  .home-page .hero-consultation{text-align:left!important;margin:30px 0 8px!important}
  .home-page .hero-consultation .hero-consult-trigger{width:auto!important;min-height:58px;padding:16px 34px!important;font-size:1rem}
  .home-page .hero-copy>:is(.hero-secondary,.hero-library-link,.hero-instagram-link){max-width:440px!important;min-height:56px!important;margin-top:12px!important}
  .home-page .hero-about{grid-column:2;grid-row:1 / -1;align-self:center;max-width:none;width:100%;margin:0!important;
    display:flex;flex-direction:column;align-items:center;text-align:center;padding:0}
  .home-page .hero-about-photo{order:-1;width:100%;margin:0 0 28px!important;aspect-ratio:1.12!important;border:0!important;border-radius:200px 20px 20px 20px!important;box-shadow:0 40px 80px -40px rgba(0,0,0,.75);position:relative;overflow:visible!important;background:none!important}
  .home-page .hero-about-photo img{border-radius:inherit}
  .home-page .hero-about-photo::before{content:'';position:absolute;inset:18px -18px -18px 18px;border:1px solid rgba(223,189,105,.5);border-radius:inherit;z-index:-1}
  .home-page .hero-about .hero-about-kicker{font-size:.8rem;letter-spacing:.2em;margin:0 0 8px}
  .home-page .hero-about .hero-about-name{font-size:2.6rem;font-weight:500;margin:0 0 6px}
  .home-page .hero-about .hero-experience{margin:0 0 18px;font-size:1.05rem}
  .home-page .hero-about>.text-link{margin-top:0}

  /* "Not sure where to start?" bar: centered as one unit instead of pinned to the edges. */
  .home-questionnaire-nudge>.shell{display:flex!important;justify-content:center!important;align-items:center;gap:36px}
  .home-questionnaire-nudge .eyebrow{margin:0}

  /* Section headings get a little more presence. */
  .hp-heading{margin-bottom:48px!important}
  .hp-heading>p:last-child{font-size:1.15rem}

  /* Meet Phillip story cards: bigger, calmer text that fills its half. */
  .about-story-section .about-story-row{padding:44px!important;gap:64px!important}
  .about-story-section .about-story-row .prose{font-size:1.15rem;font-weight:400!important;line-height:1.75;max-width:560px}

  /* FAQ intro follows you while you scan the questions. */
  .questions-grid>div:first-child{position:sticky;top:130px;align-self:start}
}
@media(min-width:1100px) and (max-height:760px){
  .hero-photo img{aspect-ratio:5/4.6}
  .home-page .hero-about-photo{aspect-ratio:1.3!important}
}
@media(min-width:1100px){
  /* Header sizes stay fixed in px so the larger reading size never pushes the menu off screen. */
  .header-inner nav{gap:clamp(14px,1.6vw,24px)!important}
  .header-inner nav>a:not(.nav-cta),.training-dropdown,.training-dropdown>summary{font-size:14px!important}
  .header-inner .nav-cta{font-size:14px!important;padding:11px 20px!important}
  .header-inner .wordmark>span:first-child{font-size:24px!important}
  .header-inner .wordmark-sub{font-size:11px!important}
  /* Header photos: undo the old fixed-height figure so the arch keeps its shape. */
  .tp-hero .hero-photo,.page-intro .hero-photo{height:auto!important;border:0!important;overflow:visible!important;border-radius:0!important}
  .hero-photo img{height:auto!important}
}
@media(min-width:1100px){
  /* Call and Instagram stay one tap away in the hero and footer; the menu needs the room here. */
  .header-quick-links{display:none!important}
  .header-inner nav{gap:clamp(10px,1vw,18px)!important}
}
@media(min-width:1100px) and (max-width:1300px){
  .shell{width:calc(100% - 80px)!important}
  .header-inner nav>a:not(.nav-cta),.training-dropdown,.training-dropdown>summary{font-size:13px!important}
  .header-inner .nav-cta{padding:10px 16px!important}
}
@media(min-width:1100px) and (max-width:1380px){
  .header-inner nav>a:not(.nav-cta),.training-dropdown,.training-dropdown>summary{font-size:13.5px!important}
}
/* Every section title in the serif, matching the headlines. */
h2:not(#_){font-family:var(--serif);font-weight:400}
@media(min-width:1100px){
  /* "The pack today": three photos fill the row instead of a left-hugging carousel. */
  .about-gallery-carousel{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:22px!important;overflow:visible!important}
  .about-gallery-carousel figure{flex:none!important}
  .about-gallery-carousel img{width:100%!important;height:440px!important;max-height:none!important;object-fit:cover!important;border-radius:18px!important;transition:transform 1s var(--ease-out)}
  .about-gallery-carousel figure{overflow:hidden;border-radius:18px}
  .about-gallery-carousel figure:hover img{transform:scale(1.04)}
  /* Meet Phillip intro: the paragraph follows the centered headline. */
  .portrait-intro .intro-description{text-align:center;margin-inline:auto}
  /* "More than just training": heading sits level with the list beside it. */
  .hp-benefits-layout{align-items:center!important}
}

/* ---------- 404 page ---------- */
.not-found{padding:clamp(72px,10vw,140px) 0!important;text-align:center}
.not-found .intro-description{margin-inline:auto}
.not-found-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:34px}
.not-found-links .button{width:auto!important;margin:0!important;padding:14px 26px;display:inline-flex}
.not-found-links .button:not(.button-gold){border:1px solid rgba(237,209,138,.55);color:#f7f2e7}

/* ---------- Closing section: what happens next ---------- */
.site-closing .next-steps{list-style:none;margin:clamp(40px,5vw,64px) 0 0;padding:clamp(28px,3vw,40px) 0 0;border-top:1px solid rgba(16,46,36,.22);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);counter-reset:none}
.site-closing .next-steps li{display:flex;gap:16px;align-items:flex-start}
.site-closing .next-step-number{flex:none;width:42px;height:42px;border-radius:50%;border:1px solid rgba(16,46,36,.45);display:grid;place-items:center;font:600 .8rem/1 var(--sans);letter-spacing:.06em;color:#102e24}
.site-closing .next-steps h3{font:500 1.2rem/1.25 var(--serif);color:#102e24;margin:2px 0 6px}
.site-closing .next-steps p{font-size:.95rem;line-height:1.55;color:#2c4337;margin:0}
@media(max-width:760px){.site-closing .next-steps{grid-template-columns:1fr;gap:18px}}

/* =====================================================================
   Tablets (700–1099px): centered, balanced single column.
   ===================================================================== */
@media(min-width:700px) and (max-width:1099px){
  .home-page .hero-copy{max-width:640px;margin-inline:auto;text-align:center}
  .home-page .hero-about{margin-inline:auto!important;text-align:center;display:flex;flex-direction:column;align-items:center}
  .home-page .hero-about-photo{width:100%}
  .home-page .hero-copy>:is(.hero-secondary,.hero-library-link,.hero-instagram-link){margin-inline:auto!important;max-width:520px}
  .home-questionnaire-nudge>.shell{display:flex!important;justify-content:center!important;align-items:center;gap:28px}
  .home-questionnaire-nudge .eyebrow{margin:0}
}
/* Wide tablets in landscape (900–1099px) get the header photo too, a little smaller. */
@media(min-width:900px) and (max-width:1099px){
  .has-hero-photo{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;gap:48px!important;align-items:center!important;max-width:none!important}
  .hero-photo{display:block;position:relative;margin:0 14px 0 0;justify-self:end;width:100%;max-width:380px;height:auto!important;border:0!important;overflow:visible!important;border-radius:0!important}
  .hero-photo img{display:block;width:100%;aspect-ratio:5/5.6;height:auto!important;object-fit:cover;border-radius:140px 16px 16px 16px}
  .hero-photo::before{content:'';position:absolute;inset:14px -14px -14px 14px;border:1px solid rgba(223,189,105,.55);border-radius:140px 16px 16px 16px;z-index:-1}
  .page-intro,.tp-hero,.faq-hero{position:relative;isolation:isolate}
}
/* Accessibility: the red "Reactivity" label on light cards was too faint to read (2.8:1). */
.reactive-red-label{color:#a3402f!important}

/* ---------- Phone contact bar ---------- */
.contact-bar{display:none}
@media(max-width:760px){
  .contact-bar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(12,38,29,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid rgba(237,209,138,.25);box-shadow:0 -12px 30px -16px rgba(0,0,0,.65);
    transform:translateY(110%);transition:transform .4s var(--ease-out)}
  .contact-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:999px;font:600 15px/1 var(--sans);text-decoration:none}
  .contact-bar a:first-child{border:1px solid rgba(237,209,138,.6);color:#f4e2ae}
  .contact-bar a:last-child{background:var(--gold-grad);color:#0f2a20}
  .contact-bar svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
  html.contact-bar-on .contact-bar{transform:none}
  html.contact-bar-on .gama-companion{bottom:calc(80px + env(safe-area-inset-bottom,0px))!important;transition:bottom .4s var(--ease-out)}
  html.contact-bar-on footer{padding-bottom:96px}
  body.conversation-open .contact-bar,html.menu-open .contact-bar{transform:translateY(110%)}
}
@media(prefers-reduced-motion:reduce){.contact-bar{transition:none}}

/* ---------- 404: Gama photo ---------- */
.nf-photo{margin:40px auto 0;max-width:260px;position:relative}
.nf-photo img{display:block;width:100%;aspect-ratio:5/5.4;object-fit:cover;object-position:center 35%;border-radius:120px 16px 16px 16px}
.nf-photo::before{content:'';position:absolute;inset:12px -12px -12px 12px;border:1px solid rgba(223,189,105,.55);border-radius:120px 16px 16px 16px;z-index:-1}
.nf-photo figcaption{margin-top:14px;font:italic 400 17px/1.3 var(--serif);color:#c9d6cc;text-align:center}
.not-found{isolation:isolate}
@media(min-width:900px){
  .not-found .shell{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center;text-align:left}
  .not-found .intro-description{margin-inline:0}
  .not-found-links{justify-content:flex-start}
  .nf-photo{margin:0;justify-self:end;width:100%;max-width:440px}
  .nf-photo img{border-radius:180px 18px 18px 18px}
  .nf-photo::before{inset:18px -18px -18px 18px;border-radius:180px 18px 18px 18px}
}
/* Keep the 404 caption outside the gold frame. */
.nf-photo{margin-bottom:44px}
.nf-photo figcaption{position:absolute;left:0;right:0;top:calc(100% + 26px);margin:0}
@media(min-width:900px){.nf-photo{margin-bottom:0}}
