/* ============================================================
   FNC COMPONENTS — blueprint §04 inventory, FNC-branded.
   Class hooks are consumed by the Elementor templates in
   /elementor-templates and by fnc.js.
   ============================================================ */

/* --- 02 Header: fixed overlay bar, transparent → frosted on scroll --- */
.fnc-header{ position:fixed; inset:0 0 auto; z-index:90; transition:background .45s var(--ease), box-shadow .45s var(--ease); }
.fnc-hero-dark .fnc-header{ color:#FCFAF4; }
.fnc-header.is-scrolled{
  background:var(--ov-frost);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 28px rgba(12,22,31,.10); /* the site's only true shadow */
  color:var(--c-ink);
}
.fnc-header .fnc-nav a{ font:700 11.5px/1 var(--font-body); letter-spacing:.1em; text-transform:uppercase; text-decoration:none; color:inherit; opacity:.85; transition:opacity .3s, color .3s; }
.fnc-header .fnc-nav a:hover,.fnc-header .fnc-nav a[aria-current]{ opacity:1; color:var(--c-accent); }
body:not(.fnc-hero-dark) .fnc-header{ background:var(--ov-frost); color:var(--c-ink); backdrop-filter:blur(10px); }

/* Off-canvas drawer (esc/overlay close wired in fnc.js — blueprint fix) */
.fnc-drawer{ position:fixed; inset:0; z-index:100; display:none; }
.fnc-drawer.open{ display:block; }
.fnc-drawer__scrim{ position:absolute; inset:0; background:var(--ov-menu); }
.fnc-drawer__panel{
  position:absolute; top:0; right:0; bottom:0; width:min(420px,92vw);
  background:var(--c-ink-deep); color:var(--c-surface-alt);
  padding:12vh 8vw; overflow:auto; transform:translateX(8%); opacity:0;
  transition:transform .5s var(--ease), opacity .5s var(--ease);
}
.fnc-drawer.open .fnc-drawer__panel{ transform:none; opacity:1; }
.fnc-drawer a{ display:block; font:500 clamp(20px,4vh,30px)/1.5 var(--font-display); color:inherit; text-decoration:none; border-bottom:1px solid var(--hairline-d); padding:10px 0; }
.fnc-drawer a:hover{ color:#D4A94E; }

/* --- Section intro stack --- */
.fnc-intro{ max-width:62ch; }
.fnc-intro--center{ margin-inline:auto; text-align:center; }
.fnc-sub{ color:var(--c-body-2); font-size:calc(17*var(--unit)); line-height:1.75; }

/* --- Tall category / offering card (photo + fade + reveal) --- */
.fnc-card{
  position:relative; border-radius:var(--r-card); overflow:hidden;
  min-height:calc(420*var(--unit)); display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--c-surface-alt); isolation:isolate;
}
.fnc-card::after{ content:""; position:absolute; inset:0; background:var(--ov-fade); z-index:0; }
.fnc-card>*{ position:relative; z-index:1; }
.fnc-card__media{ position:absolute; inset:0; z-index:-1; background-size:cover; background-position:center; transition:transform var(--t-hover) var(--ease); }
.fnc-card:hover .fnc-card__media{ transform:scale(1.1); }
.fnc-card--tint-cancer .fnc-card__media{ background-color:var(--cat-cancer); background-blend-mode:hard-light; }
.fnc-card--tint-autism .fnc-card__media{ background-color:var(--cat-autism); background-blend-mode:hard-light; }
.fnc-card--tint-parkinsons .fnc-card__media{ background-color:var(--cat-parkinsons); background-blend-mode:hard-light; }
.fnc-card--tint-stem .fnc-card__media{ background-color:var(--cat-stem); background-blend-mode:hard-light; }

/* --- Numbered step (vertical journey + horizontal pinned strip) --- */
.fnc-step-num{
  width:calc(58*var(--unit)); height:calc(58*var(--unit)); border-radius:50%;
  display:grid; place-items:center; background:var(--c-surface);
  border:1px solid var(--c-accent); color:var(--c-accent);
  font:500 calc(23*var(--unit))/1 var(--font-display);
}
.fnc-strip{ display:flex; gap:calc(20*var(--unit)); }
@media (max-width:1024px){
  .fnc-strip{ overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
  .fnc-strip>*{ flex:0 0 92%; scroll-snap-align:center; }
}

/* --- Testimonial / story card (portrait | quote) --- */
.fnc-story{ display:grid; grid-template-columns:calc(220*var(--unit)) 1fr; border:1px solid var(--hairline); border-radius:var(--r-card); overflow:hidden; background:var(--c-surface); }
.fnc-story__por{ background-size:cover; background-position:center; min-height:calc(240*var(--unit)); }
.fnc-story blockquote{ margin:0; font:500 clamp(18px,1.6vw,23px)/1.5 var(--font-display); color:var(--c-heading); }
@media (max-width:767px){ .fnc-story{ grid-template-columns:1fr; } }

/* --- Dark stats band + tiles --- */
.fnc-stat{ text-align:center; }
.fnc-stat b{ display:block; font:500 calc(56*var(--unit))/1 var(--font-display); color:#D4A94E; }
.fnc-stat span{ font:700 12px/1.5 var(--font-body); letter-spacing:.18em; text-transform:uppercase; color:var(--c-surface-alt); opacity:.7; }

/* --- FAQ accordion (click, aria-expanded — blueprint fix over hover) --- */
.fnc-faq{ border-top:1px solid var(--hairline); }
.fnc-faq__item{ border-bottom:1px solid var(--hairline); }
.fnc-faq__q{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:calc(26*var(--unit)) 4px; background:none; border:0; cursor:pointer; text-align:left;
  font:500 calc(21*var(--unit))/1.3 var(--font-display); color:var(--c-heading);
}
.fnc-faq__q .chev{ flex:none; transition:transform .35s var(--ease); color:var(--c-accent); }
.fnc-faq__q[aria-expanded="true"] .chev{ transform:rotate(45deg); }
.fnc-faq__a{ display:none; padding:0 4px calc(28*var(--unit)); color:var(--c-body-2); max-width:66ch; }
.fnc-faq__q[aria-expanded="true"]+.fnc-faq__a{ display:block; }

/* --- CTA band --- */
.fnc-cta{
  position:relative; text-align:center; color:var(--c-surface-alt);
  background:linear-gradient(180deg,rgba(18,28,40,.78),rgba(12,22,31,.9)); background-size:cover; background-position:center;
}
.fnc-cta h2{ color:var(--c-surface-alt); max-width:20ch; margin-inline:auto; }

/* --- Footer --- */
.fnc-footer{ background:var(--c-ink-deep); color:rgba(246,241,231,.72); }
.fnc-footer a{ color:inherit; text-decoration:none; transition:color .5s; }
.fnc-footer a:hover{ color:#F6F1E7; }
.fnc-wordmark{
  font:500 clamp(38px,7.4vw,110px)/1 var(--font-display); letter-spacing:.06em;
  text-transform:uppercase; color:rgba(246,241,231,.08); text-align:center; user-select:none;
}

/* --- Silk hero helpers (brand backgrounds shipped in theme) --- */
.fnc-hero{ min-height:74svh; display:flex; align-items:flex-end; color:#FCFAF4; background-size:cover; background-position:center; position:relative; }
.fnc-hero--tall{ min-height:100svh; }
.fnc-hero::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,22,31,.28) 0%,rgba(12,22,31,.8) 100%); }
.fnc-hero>*{ position:relative; }
.fnc-hero h1{ color:#F6F1E7; }
.bg-silk-teal   { background-image:url('../img/bg-silk-teal-dark.png'); }
.bg-silk-teal-2 { background-image:url('../img/bg-silk-teal-light.png'); }
.bg-silk-navy   { background-image:url('../img/bg-silk-navy.png'); }
.bg-silk-blue   { background-image:url('../img/bg-silk-blue.png'); }
.bg-silk-copper { background-image:url('../img/bg-silk-copper.png'); }
.bg-silk-sage   { background-image:url('../img/bg-silk-sage.png'); }
.bg-silk-cream  { background-image:url('../img/bg-silk-cream.jpg'); }

/* --- Wizard shell (Get Started — blueprint Onboarding) --- */
.fnc-wizard{ display:grid; grid-template-columns:43.75% 1fr; gap:calc(20*var(--unit)); min-height:calc(100vh - 90px); }
.fnc-wizard__media{ border-radius:var(--r-card); background-size:cover; background-position:center; position:relative; overflow:hidden; }
.fnc-wizard__rail{ position:absolute; left:calc(20*var(--unit)); top:calc(20*var(--unit)); bottom:calc(20*var(--unit)); width:6px; border-radius:99px; background:rgba(252,250,244,.18); }
.fnc-wizard__rail i{ position:absolute; left:0; right:0; bottom:0; border-radius:99px; background:var(--g-accent); }
@media (max-width:1024px){ .fnc-wizard{ grid-template-columns:1fr; } }

/* Choice cards for wizard radios */
.fnc-choice input{ position:absolute; opacity:0; }
.fnc-choice label{
  display:block; border:1px solid var(--hairline); border-radius:var(--r-field);
  padding:calc(18*var(--unit)) calc(20*var(--unit)); cursor:pointer; transition:border-color .3s, background .3s;
}
.fnc-choice input:checked+label{ border-color:var(--c-accent); background:rgba(184,136,42,.08); }

/* --- Elementor button variants (wrapper-class hooks used by templates) --- */
.fnc-btnw .elementor-button{ border-radius:var(--r-pill); font:700 13px/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase; padding:calc(17*var(--unit)) calc(30*var(--unit)); transition:all var(--t-hover) var(--ease); }
.fnc-btnw--solid .elementor-button{ background:var(--g-accent); color:var(--c-ink-deep); }
.fnc-btnw--solid .elementor-button:hover{ filter:brightness(1.07); }
.fnc-btnw--ink .elementor-button{ background:var(--c-ink); color:var(--c-surface-alt); }
.fnc-btnw--line .elementor-button{ color:var(--c-ink); border:1px solid transparent; background:linear-gradient(var(--c-surface),var(--c-surface)) padding-box,linear-gradient(120deg,#B8882A,#2E5E5A) border-box; }
.fnc-btnw--glass .elementor-button{ background:rgba(252,250,244,.14); color:#FCFAF4; border:1px solid rgba(252,250,244,.45); backdrop-filter:blur(8px); }
.fnc-eyebrow-w .elementor-heading-title{ font:700 var(--fs-eyebrow)/1 var(--font-body); letter-spacing:.28em; text-transform:uppercase; color:var(--c-accent); }
.fnc-quote .elementor-widget-container{ font:500 clamp(18px,1.6vw,23px)/1.5 var(--font-display); color:var(--c-heading); }

/* Headings + copy inside photo cards stay light */
.fnc-card .elementor-heading-title,.fnc-card .elementor-widget-text-editor{ color:var(--c-surface-alt); }
.fnc-storycard{ border:1px solid var(--hairline); border-radius:var(--r-card); overflow:hidden; background:var(--c-surface); padding:0 0 calc(18*var(--unit)); }
.fnc-storycard .elementor-widget-image img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.fnc-storycard .elementor-heading-title,.fnc-storycard .elementor-widget-text-editor,.fnc-storycard .fnc-btnw{ padding-inline:calc(18*var(--unit)); }
.fnc-step-row{ align-items:center; }


/* hero contrast fix */
.fnc-hero .elementor-heading-title{ color:#F6F1E7 !important; }
.fnc-hero, .fnc-hero p{ color:#FCFAF4 !important; }
.fnc-hero .fnc-sub p{ color:rgba(246,241,231,.85) !important; }


/* ============================================================
   HOME (page 71) polish — added 2026-07-21
   Card + tile hover, home button hovers, CTA top fade mask.
   Hooked by stable .elementor-element-<id> classes (CSS-only,
   no document edit; fully reversible).
   ============================================================ */

/* Silk cards (method x3, therapy x3) + Experience photo tiles x6 */
.elementor-element-f2eebf3,.elementor-element-137b8da,.elementor-element-5ac3498,
.elementor-element-8e4ed4d,.elementor-element-4f3143a,.elementor-element-9aabd24,
.elementor-element-489f1b7,.elementor-element-8665d7e,.elementor-element-a054276,
.elementor-element-9c16d99,.elementor-element-fa64cce,.elementor-element-2370235{
  transition:filter .35s var(--ease,cubic-bezier(.4,0,.2,1)) !important;
}
.elementor-element-f2eebf3:hover,.elementor-element-137b8da:hover,.elementor-element-5ac3498:hover,
.elementor-element-8e4ed4d:hover,.elementor-element-4f3143a:hover,.elementor-element-9aabd24:hover,
.elementor-element-489f1b7:hover,.elementor-element-8665d7e:hover,.elementor-element-a054276:hover,
.elementor-element-9c16d99:hover,.elementor-element-fa64cce:hover,.elementor-element-2370235:hover{
  filter:brightness(1.08);
}

/* Home buttons: hero "Inquire Now", whole-person "Learn More", CTA "Get Started" */
.elementor-element-398e352 .elementor-button,
.elementor-element-c2fc28e .elementor-button,
.elementor-element-730dc3c .elementor-button{ transition:filter .3s ease, transform .3s ease; }
.elementor-element-398e352 .elementor-button:hover,
.elementor-element-c2fc28e .elementor-button:hover,
.elementor-element-730dc3c .elementor-button:hover{ filter:brightness(1.07); }

/* CTA (S6) top white/cream fade mask — soft blend into the section above.
   Short fade so the centered headline stays fully opaque. */
.elementor-element-dfdc647{
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 20%);
          mask-image:linear-gradient(180deg,transparent 0%,#000 20%);
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
}
