/* Visacorp 2026 — production design system.
   Concept A language (dark cinematic, Bebas condensed, halftone, sharp geometry, orange circles)
   carrying Concept C's functional components (checker, fee tables, guides, chat). */

@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/fonts/bebas-latin.woff2?v=1) format('woff2')}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/assets/fonts/franklin-upright.woff2?v=1) format('woff2')}
@font-face{font-family:'Libre Franklin';font-style:italic;font-weight:100 900;font-display:swap;
  src:url(/assets/fonts/franklin-italic.woff2?v=1) format('woff2')}

:root{
  --ink:#212228;
  --ink-2:#54555F;
  --ink-3:#7C7D88;
  --hairline:#E4E4EA;
  --paper:#FFFFFF;
  --paper-2:#F6F6F9;
  --navy:#2E3193;
  --deep:#14152B;
  --deep-2:#1B1D3A;
  --deep-ink:#B9BBD1;
  --orange:#F36F21;
  --orange-down:#D85F17;
  --display:'Bebas Neue','Arial Narrow',sans-serif;
  --body:'Libre Franklin',-apple-system,'Segoe UI',sans-serif;
  --hh:4.75rem;
  --wrap:1240px;
  --ease:cubic-bezier(.16,1,.3,1);
  --z-sticky:20;--z-menu:40;--z-chat:30;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--paper);
  font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
h1,h2,h3{text-wrap:balance}
.wrap{width:min(var(--wrap),100% - clamp(2.5rem,7vw,6rem));margin-inline:auto}
.skip{position:absolute;left:-9999px;top:0;background:var(--deep);color:#fff;padding:.8rem 1.2rem;z-index:60}
.skip:focus{left:0}

/* ---------- Type ---------- */
.d1{font-family:var(--display);font-weight:400;font-size:clamp(2.9rem,6.4vw,5.5rem);line-height:.98;letter-spacing:.012em}
.d2{font-family:var(--display);font-weight:400;font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.02;letter-spacing:.014em}
.d3{font-family:var(--display);font-weight:400;font-size:clamp(1.55rem,2.6vw,2.3rem);line-height:1.05;letter-spacing:.016em}
.d4{font-family:var(--display);font-weight:400;font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.1;letter-spacing:.02em}
.label{font-weight:600;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}
.lede{font-size:clamp(1.05rem,1.45vw,1.2rem);line-height:1.7;max-width:56ch}

/* ---------- Buttons / links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:1rem 1.7rem;border:1px solid transparent;
  font-family:var(--body);font-weight:700;font-size:.875rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;
  transition:background-color .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}
.btn:active{transform:translateY(1px)}
.btn-orange{background:var(--orange-down);color:#fff}
.btn-orange:hover{background:var(--orange)}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-ink{border-color:var(--ink);color:var(--ink)}
.btn-ink:hover{background:var(--ink);color:#fff}
.btn-sm{padding:.7rem 1.15rem;font-size:.78rem}
.circ{flex:0 0 auto;width:2.15rem;height:2.15rem;border-radius:50%;background:var(--orange);display:inline-flex;align-items:center;justify-content:center;transition:transform .3s var(--ease)}
.circ svg{width:.85rem;height:.85rem;stroke:#fff;stroke-width:2.4;fill:none}
a:hover .circ{transform:translateX(4px)}
.tlink{display:inline-flex;align-items:center;gap:.7rem;font-weight:600;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink)}
.tlink.on-dark{color:#fff}

/* ---------- Halftone ---------- */
.dots-r,.dots-l{position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.11) 1.1px,transparent 1.5px);background-size:15px 15px}
.dots-r{-webkit-mask-image:linear-gradient(105deg,transparent 48%,#000 82%);mask-image:linear-gradient(105deg,transparent 48%,#000 82%)}
.dots-l{-webkit-mask-image:linear-gradient(255deg,transparent 48%,#000 82%);mask-image:linear-gradient(255deg,transparent 48%,#000 82%)}

/* ---------- Header ---------- */
header.site{position:sticky;top:0;height:var(--hh);background:var(--paper);z-index:var(--z-sticky);
  border-bottom:1px solid var(--hairline);transition:box-shadow .3s var(--ease)}
header.site.scrolled{box-shadow:0 8px 30px rgba(20,21,43,.09)}
.hd{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1.2rem}
.hd-logo img{height:1.9rem;width:auto}
.hd nav{display:flex;align-items:center;gap:clamp(.9rem,1.7vw,1.7rem)}
.hd nav a{font-weight:600;font-size:.92rem;color:var(--ink-2);white-space:nowrap}
.hd nav a:not(.btn):hover{color:var(--ink)}
.hd nav a[aria-current="true"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--orange)}
.hd nav .btn{padding:.7rem 1.15rem;font-size:.78rem}
.hd-tel{font-weight:700;font-size:.85rem;letter-spacing:.06em;white-space:nowrap;color:var(--ink)}
.hd-tel:hover{color:var(--orange-down)}
.menu-btn{display:none;width:2.75rem;height:2.75rem;background:none;border:0;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:.42rem}
.menu-btn span{display:block;width:1.65rem;height:2px;background:var(--ink)}
@media (max-width:1080px){.hd nav{display:none}.menu-btn{display:inline-flex}}

/* ---------- Mobile menu ---------- */
dialog.menu{border:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:var(--deep);color:#fff;z-index:var(--z-menu)}
.menu-in{min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow:hidden}
.menu-top{display:flex;align-items:center;justify-content:space-between;height:var(--hh)}
.menu-logo{height:1.9rem;width:auto;filter:brightness(0) invert(1)}
.menu-close{background:none;border:0;color:#fff;cursor:pointer;font-weight:600;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;padding:.75rem}
.menu-close:hover{color:var(--orange)}
.menu-list{list-style:none;margin-block:auto;padding-block:2.2rem;position:relative}
.menu-list a{font-family:var(--display);font-size:clamp(1.9rem,4.6vh,2.9rem);line-height:1.28;letter-spacing:.02em;transition:color .25s var(--ease)}
.menu-list a:hover{color:var(--orange)}
.menu-list .sub{font-family:var(--body);font-size:.95rem;color:var(--deep-ink);display:block;margin:-.2rem 0 .5rem}
.menu-foot{padding-block:1.6rem;border-top:1px solid rgba(255,255,255,.18);display:flex;flex-wrap:wrap;gap:1rem 3rem;color:var(--deep-ink);font-size:.95rem}
.menu-foot a:hover{color:#fff}

/* ---------- Home hero (parallax layers) ---------- */
.hero{position:relative;min-height:calc(100svh - var(--hh));display:flex;flex-direction:column;color:#fff;overflow:hidden;background:var(--deep)}
.hero-img{position:absolute;inset:-12% 0 0 0;width:100%;height:112%;object-fit:cover;object-position:center 38%}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(16,17,32,.9) 0%,rgba(16,17,32,.62) 42%,rgba(16,17,32,.28) 72%,rgba(16,17,32,.38) 100%)}
.hero .wrap{position:relative;display:flex;flex-direction:column;flex:1}
.hero-top{flex:1;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(3rem,6vh,5rem) 2rem}
.hero h1{max-width:13ch}
.hero-sub{margin-top:1.6rem;color:rgba(255,255,255,.88)}
.hero-ctas{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:.9rem}
.hero-band{border-top:1px solid rgba(255,255,255,.28);padding-block:1.35rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.band-list{list-style:none;display:flex;flex-wrap:wrap;column-gap:.4rem;row-gap:.3rem;font-weight:500;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.band-list li{display:flex;align-items:baseline;gap:.4rem}
.band-list li+li::before{content:"·";color:var(--orange);font-weight:700}
.band-list a:hover{color:#fff;text-decoration:underline;text-underline-offset:.35em}
@supports (animation-timeline: scroll()) {
  .hero-img{animation:hero-drift linear both;animation-timeline:scroll();animation-range:0 120vh}
  .hero .dots-r{animation:dots-drift linear both;animation-timeline:scroll();animation-range:0 120vh}
}
@keyframes hero-drift{to{transform:translateY(9%) scale(1.06)}}
@keyframes dots-drift{to{transform:translateY(-4%)}}

/* ---------- Interior page hero ---------- */
.phero{position:relative;background:var(--deep);color:#fff;overflow:hidden;padding-block:clamp(3.2rem,6.5vw,5.5rem);display:grid;align-content:center;min-height:clamp(340px,44vh,480px)}
.phero-img{position:absolute;inset:-10% 0 0 0;width:100%;height:110%;object-fit:cover;object-position:center}
.phero-scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(16,17,32,.94) 0%,rgba(16,17,32,.78) 45%,rgba(16,17,32,.52) 100%)}
@supports (animation-timeline: scroll()) {
  .phero-img{animation:hero-drift linear both;animation-timeline:scroll();animation-range:0 90vh}
}
.phero .crumbs{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;color:var(--deep-ink);margin-bottom:1.6rem}
.phero .crumbs a:hover{color:#fff;text-decoration:underline;text-underline-offset:.3em}
.phero .crumbs .sep{color:var(--orange)}
.phero h1{max-width:18ch}
.phero .lede{margin-top:1.3rem;color:var(--deep-ink)}
.phero .facts{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.4rem 2rem;font-size:.92rem;font-weight:600;color:var(--deep-ink)}
.phero .facts b{color:#fff;font-weight:800}

/* ---------- Sections ---------- */
section{padding-block:clamp(4rem,8vw,6.8rem)}
.sec-tight{padding-block:clamp(3rem,5.5vw,4.5rem)}
.on-dark{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.on-grey{background:var(--paper-2)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}
.sec-head p{color:var(--ink-2);max-width:36ch;font-size:.95rem;text-align:right}
@media (max-width:760px){.sec-head{flex-direction:column;align-items:flex-start}.sec-head p{text-align:left}}

/* ---------- Doors (3D tilt cards) ---------- */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,2rem);perspective:1100px}
.door{position:relative;background:var(--deep);color:#fff;padding:clamp(1.8rem,3.5vw,2.8rem);min-height:15rem;display:flex;flex-direction:column;overflow:hidden;
  transform-style:preserve-3d;transition:transform .45s var(--ease),box-shadow .45s var(--ease);will-change:transform}
.door:hover{box-shadow:0 30px 60px rgba(20,21,43,.35)}
.door .label{color:var(--orange)}
.door h3{margin-top:.7rem}
.door p{margin-top:.7rem;color:var(--deep-ink);font-size:.97rem;max-width:44ch;flex:1}
.door .tlink{margin-top:1.6rem}
.door .dots-r{opacity:.7}
@media (max-width:820px){.doors{grid-template-columns:1fr}}

.tilt{transform-style:preserve-3d}
.tilt>*{transform:translateZ(0)}

/* ---------- Path rows (editorial index) ---------- */
.paths{border-bottom:1px solid var(--hairline)}
.path-row{display:grid;grid-template-columns:minmax(150px,300px) 1fr auto;align-items:center;gap:clamp(1.2rem,3vw,3rem);
  padding-block:1.7rem;border-top:1px solid var(--hairline)}
.path-row h3{transition:color .25s var(--ease)}
.path-row p{color:var(--ink-2);font-size:.98rem;max-width:56ch}
.path-row:hover h3{color:var(--orange-down)}
@media (max-width:760px){
  .path-row{grid-template-columns:1fr auto;grid-template-areas:"t a" "d a"}
  .path-row h3{grid-area:t}.path-row p{grid-area:d}.path-row .circ{grid-area:a}
}

/* ---------- Ledger ---------- */
.ledger{border-top:2px solid var(--ink)}
.ledger>div{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding-block:1.15rem;border-bottom:1px solid var(--hairline)}
.ledger dt{font-weight:600;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-2)}
.ledger dd{font-family:var(--display);font-size:1.7rem;letter-spacing:.02em;text-align:right}
.ledger dd .sm{font-family:var(--body);font-size:.85rem;font-weight:500;color:var(--ink-2);letter-spacing:.02em}
.on-dark .ledger{border-top-color:#fff}
.on-dark .ledger>div{border-bottom-color:rgba(255,255,255,.22)}
.on-dark .ledger dt{color:var(--deep-ink)}

/* ---------- Answer / prose / tables ---------- */
.answer{background:var(--paper-2);padding:1.5rem 1.7rem;margin-block:.5rem 2rem}
.answer .label{color:var(--navy)}
.answer p{margin:.7rem 0 0;font-size:1.02rem;max-width:75ch}
.prose{max-width:46rem}
.prose p{margin-block:1.1rem;max-width:70ch;color:var(--ink-2)}
.prose p strong{color:var(--ink)}
.prose h2{margin:2.4rem 0 .8rem}
.prose a{color:var(--navy);font-weight:600;border-bottom:1px solid var(--orange)}
table{width:100%;border-collapse:collapse;margin-block:1.3rem;font-size:.95rem}
th{text-align:left;font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:.55rem .8rem .55rem 0;border-bottom:2px solid var(--ink)}
th:last-child,td:last-child{text-align:right}
td{padding:.65rem .8rem .65rem 0;border-bottom:1px solid var(--hairline);vertical-align:top}
td.num{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
td .was{color:var(--ink-3);font-weight:400;font-size:.85em;text-decoration:line-through;margin-right:.5rem}
td:first-child,th:first-child{text-align:left}
@media (max-width:680px){.t-scroll table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}

/* ---------- Steps (real sequences) ---------- */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.step{counter-increment:step;border-top:2px solid var(--ink);padding-top:1.1rem;position:relative}
.step::before{content:counter(step,decimal-leading-zero);font-family:var(--display);font-size:2.2rem;color:var(--orange);line-height:1;display:block;margin-bottom:.5rem}
.step h3{font-family:var(--body);font-weight:700;font-size:1.08rem}
.step p{margin-top:.5rem;color:var(--ink-2);font-size:.95rem}
.on-dark .step{border-top-color:rgba(255,255,255,.5)}
.on-dark .step p{color:var(--deep-ink)}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* ---------- Facts / eligibility panels ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.checklist{list-style:none;display:grid;gap:.85rem}
.checklist li{padding-left:2rem;position:relative;color:var(--ink-2);font-size:.99rem}
.checklist li strong{color:var(--ink)}
.checklist li::before{content:"";position:absolute;left:0;top:.32em;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--orange)}
.checklist li::after{content:"";position:absolute;left:.28rem;top:.6em;width:.5rem;height:.28rem;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}

/* ---------- Promo (mid-page CTA) ---------- */
.promo{background:var(--deep);color:#fff;position:relative;overflow:hidden;padding:clamp(1.8rem,3.5vw,2.6rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;margin-block:2.5rem}
.promo h3{max-width:24ch}
.promo p{color:var(--deep-ink);font-size:.95rem;margin-top:.4rem;max-width:44ch}
.promo .btns{display:flex;flex-wrap:wrap;gap:.8rem}

/* ---------- Reviews ---------- */
.stars{display:inline-flex;gap:.25rem}
.stars svg{width:1.05rem;height:1.05rem;fill:var(--orange)}
.rev-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:1rem 2rem;margin-bottom:2.2rem}
.rev-head .score{font-family:var(--display);font-size:clamp(2.4rem,4vw,3.4rem);line-height:1}
.rev-head .of{color:var(--ink-2);font-size:.95rem}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.5vw,2rem);perspective:1100px}
.rev{background:var(--paper);border:1px solid var(--hairline);padding:1.7rem;display:flex;flex-direction:column;gap:1rem;transition:transform .45s var(--ease),box-shadow .45s var(--ease);transform-style:preserve-3d}
.rev:hover{box-shadow:0 24px 48px rgba(20,21,43,.14)}
.rev blockquote{font-size:.98rem;color:var(--ink-2);flex:1}
.rev figcaption{font-weight:700;font-size:.85rem}
.rev figcaption span{display:block;font-weight:500;color:var(--ink-3);font-size:.8rem;margin-top:.15rem}
.on-dark .rev{background:var(--deep-2);border-color:rgba(255,255,255,.14)}
.on-dark .rev blockquote{color:var(--deep-ink)}
.on-dark .rev figcaption span{color:#8B8DA8}
@media (max-width:860px){.rev-grid{grid-template-columns:1fr}}

/* ---------- Checker ---------- */
.check{background:var(--paper);color:var(--ink);border:1px solid var(--hairline);padding:clamp(1.5rem,2.5vw,2.2rem);box-shadow:0 30px 80px rgba(10,11,40,.28)}
.check-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}
.check-top .label{color:var(--navy)}
.check-step{font-size:.8rem;font-weight:700;color:var(--ink-2)}
.check h2,.check .q{font-family:var(--body);font-size:1.3rem;font-weight:800;letter-spacing:-.02em;margin-bottom:1.2rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip-btn{padding:.75rem 1.15rem;border:1.5px solid var(--hairline);background:#fff;font-family:var(--body);font-weight:700;font-size:.92rem;color:var(--ink);cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.chip-btn:hover{border-color:var(--ink)}
.chip-btn[aria-pressed="true"]{background:var(--deep);border-color:var(--deep);color:#fff}
.check-result{display:none;background:var(--paper-2);padding:1.3rem;margin-top:.4rem}
.check-result.show{display:block}
.check-result .path{font-weight:800;color:var(--navy);margin-bottom:.5rem;font-size:1.05rem}
.check-result p{font-size:.97rem;line-height:1.6}
.check-ctas{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.1rem}
.check-reset{margin-top:1.1rem;background:none;border:0;font-family:var(--body);font-weight:700;font-size:.82rem;color:var(--ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:.3em}
.check-note{margin-top:1.2rem;font-size:.8rem;color:var(--ink-3)}

/* ---------- Guides list ---------- */
.g-list{border-top:1px solid var(--hairline)}
.g-item{display:grid;grid-template-columns:8rem 1fr auto auto;gap:clamp(1rem,3vw,2.5rem);align-items:center;padding-block:1.4rem;border-bottom:1px solid var(--hairline)}
.g-item .label{color:var(--ink-3);font-size:.7rem}
.g-item h3{transition:color .25s var(--ease)}
.g-item:hover h3{color:var(--orange-down)}
.g-item .rt{color:var(--ink-3);font-size:.85rem;white-space:nowrap}
@media (max-width:680px){.g-item{grid-template-columns:1fr auto;grid-template-areas:"l a" "t a" "r a"}.g-item .label{grid-area:l}.g-item h3{grid-area:t}.g-item .rt{grid-area:r}.g-item .circ{grid-area:a}}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--hairline)}
.faq details{border-bottom:1px solid var(--hairline)}
.faq summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding-block:1.2rem;font-weight:700;font-size:1.02rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--display);font-size:1.5rem;color:var(--orange);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding-bottom:1.3rem;color:var(--ink-2);font-size:.98rem;max-width:68ch}

/* ---------- CTA band ---------- */
.cta-band{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.cta-in{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2rem}
.cta-in h2{max-width:18ch}
.cta-in p{color:var(--deep-ink);margin-top:.7rem;max-width:46ch}
.cta-btns{display:flex;flex-wrap:wrap;gap:.9rem}

/* ---------- Footer ---------- */
footer.site{background:#101120;color:#A9ABC4;font-size:.95rem}
.ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:clamp(2rem,4vw,4rem);padding-block:clamp(3.5rem,6vw,5rem)}
.ft-brand img{height:1.75rem;width:auto;filter:brightness(0) invert(1);opacity:.95}
.ft-brand p{margin-top:1.4rem;max-width:34ch}
.ft-marn{margin-top:1.4rem;font-size:.8rem;letter-spacing:.06em;color:#7B7D9A}
.ft h4{font-weight:700;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:#fff;margin-bottom:1.3rem}
.ft ul{list-style:none;display:grid;gap:.65rem}
.ft a:hover{color:#fff}
.ft-contact li{display:block}
.ft-bar{border-top:1px solid rgba(255,255,255,.12);padding-block:1.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;font-size:.82rem;color:#7B7D9A}
.ft-bar a{text-decoration:underline;text-underline-offset:.25em;text-decoration-color:rgba(255,255,255,.3);transition:color .2s var(--ease)}
.ft-bar a:hover{color:#fff;text-decoration-color:currentColor}
@media (max-width:960px){.ft-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ft-grid{grid-template-columns:1fr}}

/* ---------- Chat widget ---------- */
.chat-fab{position:fixed;right:1.1rem;bottom:1.1rem;z-index:var(--z-chat);width:3.6rem;height:3.6rem;border-radius:50%;border:0;background:var(--orange-down);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 32px rgba(20,21,43,.35);transition:transform .3s var(--ease),background-color .3s var(--ease)}
.chat-fab:hover{transform:translateY(-3px);background:var(--orange)}
.chat-fab svg{width:1.5rem;height:1.5rem;fill:none;stroke:#fff;stroke-width:2}
.chat-panel{position:fixed;right:1.1rem;bottom:5.6rem;z-index:var(--z-chat);width:min(24rem,calc(100vw - 2.2rem));max-height:min(34rem,calc(100dvh - 8rem));display:none;flex-direction:column;background:#fff;border:1px solid var(--hairline);box-shadow:0 30px 80px rgba(10,11,40,.35)}
.chat-panel.open{display:flex}
.chat-head{background:var(--deep);color:#fff;padding:1rem 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.chat-head .t{font-weight:700;font-size:.95rem}
.chat-head .s{font-size:.75rem;color:var(--deep-ink)}
.chat-close{background:none;border:0;color:#fff;cursor:pointer;font-size:1.1rem;padding:.3rem}
.chat-log{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.7rem;min-height:11rem}
.cmsg{max-width:88%;padding:.75rem 1rem;font-size:.92rem;line-height:1.5}
.cmsg-bot{background:var(--paper-2);color:var(--ink);align-self:flex-start}
.cmsg-user{background:var(--deep);color:#fff;align-self:flex-end}
.cmsg a{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:.25em}
.cmsg-typing{align-self:flex-start;color:var(--ink-3);font-size:.82rem;padding:.2rem}
.chat-chips{display:flex;flex-wrap:wrap;gap:.45rem;padding:0 1rem .8rem}
.chat-chips .chip-btn{font-size:.8rem;padding:.5rem .85rem}
.chat-row{display:flex;gap:.5rem;padding:0 1rem 1rem}
.chat-row input{flex:1;border:1.5px solid var(--hairline);padding:.75rem .95rem;font-family:var(--body);font-size:.92rem;color:var(--ink)}
.chat-row input:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
.chat-note{padding:0 1rem .9rem;font-size:.72rem;color:var(--ink-3)}

/* ---------- Forms ---------- */
.form-card{background:var(--paper);border:1px solid var(--hairline);padding:clamp(1.6rem,3vw,2.4rem);box-shadow:0 30px 80px rgba(10,11,40,.12)}
.f-steps{display:flex;gap:.4rem;margin-bottom:1.6rem}
.f-steps span{height:3px;flex:1;background:var(--hairline);transition:background-color .3s}
.f-steps span.on{background:var(--orange)}
.f-q{font-weight:800;font-size:1.15rem;letter-spacing:-.01em;margin-bottom:1.1rem}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:640px){.f-grid{grid-template-columns:1fr}}
.field{display:grid;gap:.35rem}
.field label{font-weight:600;font-size:.82rem;color:var(--ink-2)}
.field input,.field select,.field textarea{border:1.5px solid var(--hairline);padding:.85rem 1rem;font-family:var(--body);font-size:.95rem;color:var(--ink);background:#fff;width:100%}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
.f-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.6rem}
.f-back{background:none;border:0;font-family:var(--body);font-weight:700;font-size:.85rem;color:var(--ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:.3em}
.f-note{margin-top:1.2rem;font-size:.8rem;color:var(--ink-3)}
.f-ok{text-align:center;padding-block:2rem}
.f-ok h3{margin-bottom:.6rem}
.f-ok p{color:var(--ink-2);max-width:44ch;margin-inline:auto}
[hidden]{display:none !important}

/* ---------- Motion ---------- */
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.a1,.a2,.a3,.a4{animation:rise .85s var(--ease) both}
.a2{animation-delay:.14s}.a3{animation-delay:.26s}.a4{animation-delay:.4s}
@supports (animation-timeline: view()) {
  .rv{animation:rise-sd .8s var(--ease) both;animation-timeline:view();animation-range:entry 5% entry 45%}
}
@keyframes rise-sd{from{opacity:.001;transform:translateY(24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .a1,.a2,.a3,.a4,.rv,.hero-img,.dots-r,.dots-l{animation:none !important}
  .btn,.circ,.door,.rev,.chat-fab,.path-row h3{transition:none}
}
