/* ============================================================
   HIGGS FIELD - FAN-STO (child of /services)
   Page layer. Loaded AFTER services.css, which supplies every
   design token, utility and component this file builds on --
   fan-sto.css alone is not enough to render the page.

   The standalone design file inlined the whole services stylesheet
   ahead of this layer; 882 of its 885 lines were byte-identical, so
   only the .fs-* layer lives here. Two .feature-link tweaks from that
   copy were dropped: fan-sto's markup never uses .feature-link.

   Class renames (.hero/.section/.tag -> .hf-*) match services.css.
   Keep the three files in step.

   Note: the mobile block sets `body{ padding-bottom:72px }
` so the
   fixed .fs-dock CTA bar cannot cover the footer. That is deliberate
   page-level layout, and only loads on this page.
   ============================================================ */

/* =============================================================
   FAN-STO SUBPAGE — page-specific layer (fs- namespace)
   Inherits every token from the services design system above.
   ============================================================= */
.fs-hero .hf-hero__title{ font-weight:700; }
.fs-hl{ color:var(--orange-lit); }
.fs-hero-actions{
  display:flex; flex-wrap:wrap; justify-content:center; gap:12px;
  margin-top:clamp(26px,3vw,38px);
  opacity:0; animation:fadeUp 1s var(--ease) 1.05s forwards;
}
.btn--sm{ min-width:0; padding:15px 28px; gap:14px; font-size:11px; }
.btn--ghost{
  background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.5);
  box-shadow:none; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.btn--ghost:hover{ background:rgba(255,255,255,.94); color:var(--ink); box-shadow:none; }
.btn--outline{
  background:transparent; color:var(--orange-deep); border:1px solid var(--orange);
  box-shadow:none;
}
.btn--outline:hover{ background:var(--orange); color:#fff; box-shadow:0 6px 20px 0 var(--orange-glow); }

/* breadcrumb */
.fs-crumb{ background:var(--white); border-bottom:1px solid var(--rule-soft); }
.fs-crumb ol{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  padding:14px 0; font-family:var(--sans); font-size:11px;
  letter-spacing:.1em; color:var(--ink-40);
}
.fs-crumb li{ display:flex; align-items:center; gap:10px; }
.fs-crumb li::after{ content:"/"; color:var(--ink-25); }
.fs-crumb li:last-child::after{ display:none; }
.fs-crumb a:hover{ color:var(--orange); }
.fs-crumb [aria-current]{ color:var(--ink); }

/* stats band */
.fs-stats{ background:var(--white); border-bottom:1px solid var(--rule-soft); }
.fs-stats__grid{ display:grid; grid-template-columns:repeat(3,1fr); }
.fs-stat{ padding:clamp(26px,3vw,44px) clamp(20px,2.4vw,40px); }
.fs-stat:first-child{ padding-left:0; }
.fs-stat:last-child{ padding-right:0; }
.fs-stat + .fs-stat{ border-left:1px solid var(--rule-soft); }
.fs-stat__n{
  font-family:var(--sans); font-weight:700; letter-spacing:-.02em;
  font-size:2.25rem; line-height:1;
  background:linear-gradient(96deg,#111 0%,var(--orange-deep) 78%,var(--orange) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.fs-stat__n small{
  font-family:var(--jp); font-size:.36em; font-weight:400; margin-left:.2em;
  color:var(--ink-40); -webkit-text-fill-color:var(--ink-40);
}
.fs-stat__l{ margin-top:14px; font-family:var(--jp); font-size:13px; color:var(--ink-55); line-height:1.9; }

/* sticky in-page nav */
.fs-subnav{
  position:sticky; top:64px; z-index:60;
  background:rgba(247,247,245,.92);
  -webkit-backdrop-filter:saturate(180%) blur(14px); backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--rule-soft);
}
.fs-subnav__in{ display:flex; gap:8px; overflow-x:auto; padding:12px 0; scrollbar-width:none; }
.fs-subnav__in::-webkit-scrollbar{ display:none; }
.fs-subnav a{
  flex:none; padding:8px 16px; border-radius:var(--r-pill);
  border:1px solid var(--rule); font-family:var(--jp); font-size:12.5px;
  color:var(--ink-55); white-space:nowrap;
  transition:color .3s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);
}
.fs-subnav a:hover{ color:var(--orange-deep); border-color:var(--orange-hair); background:var(--orange-dim); }
.fs-subnav a.is-active{ color:#fff; background:var(--orange); border-color:var(--orange); }

/* section heads */
.fs-head{ margin-bottom:clamp(40px,5vw,72px); }
.fs-head .h2{ margin-top:22px; max-width:22em; }
.fs-head .lead{ margin-top:clamp(18px,2vw,26px); max-width:60ch; }
.fs-alt{ background:var(--white); }
.fs-alt2{ background:var(--paper-2); }

/* 3-up feature columns */
.fs-feat{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,52px); }
.fs-feat > div{ border-top:1px solid var(--ink); padding-top:24px; }
.fs-feat .k{
  font-family:var(--sans); font-size:10px; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--orange);
}
.fs-feat h3{ margin-top:16px; font-family:var(--jp); font-size:1.25rem; font-weight:700; line-height:1.6; color:var(--ink); }
.fs-feat h3 b{ color:var(--orange-deep); font-weight:700; }
.fs-feat p{ margin-top:14px; font-family:var(--jp); font-size:14px; color:var(--ink-55); line-height:2.1; }

/* split */
.fs-split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,80px); align-items:start; }
.fs-split h3{ font-family:var(--jp); font-size:var(--fs-h3); font-weight:700; line-height:1.55; color:var(--ink); }
.fs-split h3 mark{ background:linear-gradient(transparent 62%, var(--orange-hair) 62%); color:inherit; }
.fs-split p{ margin-top:22px; font-family:var(--jp); font-size:14.6px; line-height:2.2; color:var(--ink-55); }
.fs-split p b{ color:var(--ink); font-weight:700; }

.fs-flow{ border-top:1px solid var(--rule); }
.fs-flow-item{ display:flex; gap:20px; padding:22px 0; border-bottom:1px solid var(--rule); align-items:flex-start; }
.fs-flow-ic{
  width:42px; height:42px; flex:none; border-radius:50%;
  border:1px solid var(--orange-hair); background:var(--orange-dim);
  display:grid; place-items:center; color:var(--orange-deep);
}
.fs-ic{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.fs-flow-item h4{ font-family:var(--jp); font-size:15px; font-weight:700; color:var(--ink); }
.fs-flow-item p{ margin-top:6px; font-family:var(--jp); font-size:13px; color:var(--ink-55); }

/* scheme */
.fs-scheme-row{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:clamp(10px,1.4vw,22px); align-items:stretch; }
.fs-sbox{
  border:1px solid var(--rule); border-radius:var(--r-card); background:var(--white);
  padding:clamp(22px,2.4vw,34px); position:relative; overflow:hidden;
}
.fs-sbox::before{ content:""; position:absolute; left:0; top:0; width:100%; height:3px; background:var(--grad-accent); }
.fs-sbox .role{
  font-family:var(--sans); font-size:9.5px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-40);
}
.fs-sbox h4{ margin-top:14px; font-family:var(--jp); font-size:1.1rem; font-weight:700; color:var(--ink); }
.fs-sbox p{ margin-top:12px; font-family:var(--jp); font-size:13px; color:var(--ink-55); line-height:1.95; }
.fs-arrow{ display:grid; place-items:center; color:var(--orange); }
.fs-arrow .fs-ic{ width:24px; height:24px; }
.fs-notes{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,28px); margin-top:clamp(26px,3vw,40px); }
.fs-note{ border-top:1px solid var(--rule); padding-top:20px; }
.fs-note b{
  display:flex; align-items:center; gap:10px; font-family:var(--jp);
  font-size:14px; font-weight:700; color:var(--ink);
}
.fs-note b .fs-ic{ color:var(--orange); flex:none; }
.fs-note span{ display:block; margin-top:10px; font-family:var(--jp); font-size:12.8px; color:var(--ink-55); line-height:2; }

.fs-band{
  margin-top:clamp(32px,3.6vw,52px); padding:clamp(20px,2.2vw,30px) clamp(20px,2.4vw,32px);
  border-left:3px solid var(--orange); border-radius:0 var(--r-sm) var(--r-sm) 0;
  background:var(--orange-dim); font-family:var(--jp); font-size:13px;
  color:var(--ink-70); line-height:2.05;
}
.fs-band b{ color:var(--orange-deep); font-weight:600; }

/* cases */
.fs-case-hero{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,4vw,64px); align-items:start; }
.fs-tagpill{
  display:inline-block; font-family:var(--sans); font-size:10px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--orange-deep);
  background:var(--orange-dim); padding:6px 14px; border-radius:var(--r-pill);
}
.fs-case-hero h3{ margin-top:18px; font-family:var(--jp); font-size:var(--fs-h3); font-weight:700; line-height:1.6; color:var(--ink); }
.fs-case-hero .desc{ margin-top:20px; font-family:var(--jp); font-size:14.4px; line-height:2.15; color:var(--ink-55); }
.fs-kpis{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:var(--r-card); overflow:hidden; }
.fs-kpi{ background:var(--white); padding:clamp(20px,2.2vw,30px); }
.fs-kpi .n{
  font-family:var(--sans); font-weight:700; font-size:1.5rem;
  line-height:1; letter-spacing:-.02em; color:var(--orange-deep);
}
.fs-kpi .n small{ font-family:var(--jp); font-size:.4em; color:var(--ink-40); margin-left:.15em; }
.fs-kpi .l{ margin-top:12px; font-family:var(--jp); font-size:12px; color:var(--ink-55); line-height:1.8; }

.fs-cases{ margin-top:clamp(40px,5vw,72px); border-top:1px solid var(--rule); }
.fs-case{ display:grid; grid-template-columns:auto 1fr; gap:22px; padding:clamp(24px,2.6vw,38px) 0; border-bottom:1px solid var(--rule); align-items:start; }
.fs-case-ic{
  width:48px; height:48px; border-radius:50%; border:1px solid var(--rule);
  display:grid; place-items:center; color:var(--orange); flex:none;
}
.fs-case .ind{ font-family:var(--sans); font-size:9.5px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-40); }
.fs-case h4{ margin-top:10px; font-family:var(--jp); font-size:1.1rem; font-weight:700; color:var(--ink); }
.fs-case p{ margin-top:10px; font-family:var(--jp); font-size:13.6px; color:var(--ink-55); line-height:2.05; max-width:74ch; }
.fs-foot{ margin-top:22px; font-family:var(--jp); font-size:12px; color:var(--ink-40); line-height:1.95; }

/* model table */
.fs-model{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(32px,4vw,72px); align-items:start; }
.fs-model h3{ margin-top:20px; font-family:var(--jp); font-size:var(--fs-h3); font-weight:700; line-height:1.55; color:var(--ink); }
.fs-model p{ margin-top:18px; font-family:var(--jp); font-size:14px; color:var(--ink-55); line-height:2.1; }
.fs-table{ width:100%; border-collapse:collapse; border-top:1px solid var(--ink); }
.fs-table th,.fs-table td{ text-align:left; padding:20px 0; border-bottom:1px solid var(--rule); vertical-align:top; font-family:var(--jp); }
.fs-table th{
  width:32%; font-size:12.5px; font-weight:600; color:var(--ink-40);
  letter-spacing:.06em; padding-right:20px;
}
.fs-table td{ font-size:14.2px; color:var(--ink-70); line-height:1.95; }
.fs-table td b{ color:var(--ink); font-weight:700; }
.fs-table .hl{ color:var(--orange-deep); font-weight:600; font-size:1.08em; }
.fs-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.fs-chip{ border-radius:var(--r-pill); padding:6px 14px; font-size:12px; border:1px solid var(--rule); color:var(--ink-55); }
.fs-chip.pt{ border-color:var(--orange-hair); background:var(--orange-dim); color:var(--orange-deep); }

/* perks tabs */
.fs-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:clamp(28px,3vw,44px); }
.fs-tab{
  border:1px solid var(--rule); background:transparent; border-radius:var(--r-pill);
  padding:10px 20px; font-family:var(--jp); font-size:13px; color:var(--ink-55); cursor:pointer;
  transition:var(--tr, all .3s var(--ease));
}
.fs-tab:hover{ border-color:var(--orange-hair); color:var(--orange-deep); }
.fs-tab[aria-selected="true"]{ background:var(--ink); border-color:var(--ink); color:#fff; }
.fs-panel h4{ font-family:var(--jp); font-size:1.25rem; font-weight:700; color:var(--ink); }
.fs-panel .sub{ margin-top:10px; font-family:var(--jp); font-size:13.5px; color:var(--orange-deep); }
.fs-perks{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,40px); margin-top:clamp(24px,2.8vw,40px); }
.fs-perk{ border-top:1px solid var(--rule); padding-top:20px; }
.fs-perk b{ font-family:var(--jp); font-size:14.5px; font-weight:700; }
.fs-perk p{ margin-top:12px; font-family:var(--jp); font-size:13.2px; color:var(--ink-55); line-height:2.05; }
.fs-panel-foot{ margin-top:clamp(22px,2.4vw,34px); font-family:var(--jp); font-size:12.6px; color:var(--ink-40); line-height:2; }

/* service menu */
.fs-svcs{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:var(--r-card); overflow:hidden; }
.fs-svc{ background:var(--white); padding:clamp(26px,2.8vw,42px); display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:start; }
.fs-svc-ic{ width:46px; height:46px; border-radius:var(--r-sm); background:var(--orange-dim); color:var(--orange-deep); display:grid; place-items:center; flex:none; }
.fs-svc h4{ font-family:var(--jp); font-size:1.1rem; font-weight:700; line-height:1.6; color:var(--ink); }
.fs-svc p{ margin-top:12px; font-family:var(--jp); font-size:13.4px; color:var(--ink-55); line-height:2.05; }
.fs-scope{ display:inline-block; margin-top:16px; font-family:var(--sans); font-size:9.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-40); border:1px solid var(--rule); border-radius:var(--r-pill); padding:5px 12px; }

/* steps */
.fs-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,40px); }
.fs-step{ border-top:1px solid var(--ink); padding-top:22px; }
.fs-step .no{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:.24em; color:var(--orange); }
.fs-step h4{ margin-top:14px; font-family:var(--jp); font-size:16px; font-weight:700; color:var(--ink); }
.fs-step p{ margin-top:12px; font-family:var(--jp); font-size:13.2px; color:var(--ink-55); line-height:2; }
.fs-who{ display:inline-block; margin-top:16px; font-family:var(--jp); font-size:11.5px; border-radius:var(--r-pill); padding:5px 13px; }
.fs-who.us{ background:var(--orange-dim); color:var(--orange-deep); }
.fs-who.issuer{ background:rgba(17,17,17,.06); color:var(--ink-70); }

/* faq */
.fs-faq{ border-top:1px solid var(--rule); }
.fs-faq details{ border-bottom:1px solid var(--rule); }
.fs-faq summary{
  list-style:none; cursor:pointer; display:flex; gap:16px; align-items:flex-start;
  padding:24px 0; font-family:var(--jp); font-size:15.4px; font-weight:700; line-height:1.75;
  transition:color .3s var(--ease); color:var(--ink);
}
.fs-faq summary::-webkit-details-marker{ display:none; }
.fs-faq summary:hover{ color:var(--orange-deep); }
.fs-faq .q{ font-family:var(--sans); color:var(--orange); font-weight:600; flex:none; }
.fs-faq .tgl{ margin-left:auto; flex:none; width:26px; height:26px; border-radius:50%; border:1px solid var(--rule); display:grid; place-items:center; color:var(--ink-55); transition:transform .4s var(--ease), background-color .3s var(--ease), color .3s var(--ease); }
.fs-faq details[open] .tgl{ transform:rotate(45deg); background:var(--orange); border-color:var(--orange); color:#fff; }
.fs-faq .a{ padding:0 0 26px; font-family:var(--jp); font-size:14px; color:var(--ink-55); line-height:2.15; max-width:82ch; }

/* compliance */
.fs-risk{ border:1px solid var(--rule); border-radius:var(--r-card); background:var(--white); padding:clamp(26px,3vw,48px); }
.fs-risk h3{ display:flex; align-items:center; gap:12px; font-family:var(--jp); font-size:1.25rem; font-weight:700; color:var(--ink); }
.fs-risk h3 .fs-ic{ color:var(--orange); }
.fs-risk ul{ margin-top:22px; display:grid; gap:14px; }
.fs-risk li{ position:relative; padding-left:20px; font-family:var(--jp); font-size:13.4px; color:var(--ink-55); line-height:2.05; }
.fs-risk li::before{ content:""; position:absolute; left:0; top:.85em; width:6px; height:6px; border-radius:50%; background:var(--orange); }
.fs-risk li b{ color:var(--ink); font-weight:700; }

/* mobile dock */
.fs-dock{ display:none; }

@media (max-width:1024px){
  .fs-feat,.fs-notes,.fs-perks,.fs-steps{ grid-template-columns:repeat(2,1fr); }
  .fs-split,.fs-case-hero,.fs-model{ grid-template-columns:1fr; }
  .fs-svcs{ grid-template-columns:1fr; }
  .fs-scheme-row{ grid-template-columns:1fr; }
  .fs-arrow{ transform:rotate(90deg); padding:6px 0; }
  .fs-subnav{ top:64px; }
}
@media (max-width:760px){
  .fs-stats__grid{ grid-template-columns:1fr; }
  .fs-stat{ padding-inline:0 !important; border-left:0 !important; border-top:1px solid var(--rule-soft); }
  .fs-stat:first-child{ border-top:0; }
  .fs-feat,.fs-notes,.fs-perks,.fs-steps,.fs-kpis{ grid-template-columns:1fr; }
  .fs-hero-actions .btn{ width:100%; justify-content:space-between; }
  .fs-table th{ display:block; width:100%; padding-bottom:6px; border-bottom:0; }
  .fs-table td{ display:block; width:100%; padding-top:0; }
  .fs-case{ grid-template-columns:1fr; }
  .fs-svc{ grid-template-columns:1fr; }
  .fs-dock{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:90; gap:10px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.95); border-top:1px solid var(--rule-soft);
    -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  }
.fs-dock a{
    flex:1; text-align:center; border-radius:var(--r-pill); padding:14px 10px;
    font-family:var(--jp); font-size:13px; font-weight:600;
  }
  .fs-dock .s{ border:1px solid var(--rule); color:var(--ink-70); }
  .fs-dock .p{ background:var(--orange); color:#fff; box-shadow:0 4px 14px var(--orange-glow); }
  body{ padding-bottom:72px; }
}
