.page-faq { --faq-ink:#173a42; --faq-muted:#536e74; --faq-line:#dce9e8; --faq-teal:#245e6b; --faq-soft:#f1f8f7; }
.page-faq [hidden] { display:none !important; }
.page-faq main { background:#fff; color:var(--faq-ink); }
.page-faq main > section { padding-block:0; }
.page-faq .faq-eyebrow { margin:0 0 14px; color:#397787; font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.page-faq .faq-hero { position:relative; overflow:hidden; background:linear-gradient(118deg,#ecf5f3 0%,#f7faf7 59%,#e5f1ee 100%); }
.page-faq .faq-hero:after { content:""; position:absolute; width:440px; height:440px; right:-150px; bottom:-260px; border:1px solid #c6ded8; border-radius:50%; box-shadow:0 0 0 52px rgba(255,255,255,.17),0 0 0 105px rgba(255,255,255,.12); pointer-events:none; }
.page-faq .faq-hero-inner { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.32fr) minmax(300px,.68fr); align-items:center; gap:clamp(36px,6vw,92px); padding-block:clamp(60px,7vw,106px); }
.page-faq .faq-hero-copy { max-width:690px; }
.page-faq .faq-hero h1 { margin:0; max-width:13ch; color:#153f49; font-size:clamp(2.9rem,5.2vw,5.25rem); line-height:1.04; letter-spacing:-.055em; }
.page-faq .faq-hero-lead { max-width:55ch; margin:25px 0 0; color:#46666d; font-size:clamp(1.05rem,1.35vw,1.25rem); line-height:1.65; }
.page-faq .faq-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:30px; }
.page-faq .faq-primary-link { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:14px; padding:12px 22px; border-radius:11px; background:var(--faq-teal); color:#fff; font-weight:750; box-shadow:0 10px 24px rgba(25,76,87,.14); }
.page-faq .faq-primary-link:hover { background:#174a56; color:#fff; transform:translateY(-1px); }
.page-faq .faq-primary-link:focus-visible,.page-faq .faq-hero-contact:focus-visible,.page-faq .faq-topic:focus-visible,.page-faq .faq-filter:focus-visible,.page-faq .faq-entry summary:focus-visible,.page-faq .faq-entry a:focus-visible,.page-faq .faq-reset:focus-visible,.page-faq .faq-search-field input:focus-visible { outline:3px solid #278b9d; outline-offset:3px; }
.page-faq .faq-hero-contact { color:var(--faq-teal); font-weight:750; text-decoration:underline; text-decoration-color:#a6cac9; text-underline-offset:5px; }
.page-faq .faq-hero-aside { padding:clamp(26px,3.3vw,42px); border:1px solid rgba(65,120,121,.16); border-radius:22px; background:rgba(255,255,255,.84); box-shadow:0 22px 60px rgba(25,75,76,.08); backdrop-filter:blur(10px); }
.page-faq .faq-hero-aside > span { color:#55818a; font-size:.82rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.page-faq .faq-hero-aside p { margin:15px 0 26px; color:#255764; font-size:clamp(1.55rem,2.15vw,2.1rem); line-height:1.28; }
.page-faq .faq-hero-aside strong { color:#153e48; }
.page-faq .faq-hero-services { display:grid; gap:10px; }
.page-faq .faq-hero-services a { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid var(--faq-line); color:var(--faq-teal); font-weight:750; }
.page-faq .faq-explorer { padding-block:clamp(54px,6vw,84px) 54px; }
.page-faq .faq-intro { max-width:690px; }
.page-faq .faq-intro h2,.page-faq .faq-results-head h2,.page-faq .faq-contact h2 { margin:0; color:#193f47; font-size:clamp(2rem,3.2vw,3rem); line-height:1.18; letter-spacing:-.04em; }
.page-faq .faq-intro > p:last-child { margin:14px 0 0; color:var(--faq-muted); font-size:1.06rem; }
.page-faq .faq-controls { margin-top:34px; }
.page-faq .faq-search-label { display:block; margin-bottom:10px; font-size:.94rem; font-weight:800; }
.page-faq .faq-search-row { display:flex; gap:12px; }
.page-faq .faq-search-field { display:flex; flex:1; min-width:0; align-items:center; gap:13px; height:60px; padding:0 19px; border:1.5px solid #b8d1d1; border-radius:13px; background:#fff; box-shadow:0 8px 26px rgba(25,70,74,.05); }
.page-faq .faq-search-field:focus-within { border-color:#277b8d; box-shadow:0 0 0 4px rgba(39,123,141,.1); }
.page-faq .faq-search-field svg { width:22px; height:22px; flex:none; color:#43808b; }
.page-faq .faq-search-field input { width:100%; min-width:0; border:0; background:transparent; color:var(--faq-ink); font:inherit; font-size:1rem; outline:none; }
.page-faq .faq-search-field input:focus-visible { outline:none; }
.page-faq .faq-search-field input::placeholder { color:#70888e; }
.page-faq .faq-reset { min-height:60px; padding:0 16px; border:1px solid #b8d1d1; border-radius:13px; background:#fff; color:var(--faq-teal); font:inherit; font-weight:750; cursor:pointer; }
.page-faq .faq-search-hint { margin:9px 0 0; color:#627d82; font-size:.88rem; }
.page-faq .faq-filter-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:27px; }
.page-faq .faq-filter { min-height:42px; padding:9px 15px; border:1px solid #cedfdd; border-radius:999px; background:#fff; color:#315963; font:inherit; font-size:.9rem; font-weight:700; cursor:pointer; transition:background .18s ease,border-color .18s ease,color .18s ease; }
.page-faq .faq-filter:hover { border-color:#4a8c96; background:#f1f8f7; }
.page-faq .faq-filter.is-active { border-color:var(--faq-teal); background:var(--faq-teal); color:#fff; }
.page-faq .faq-topics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-top:35px; }
.page-faq .faq-topic { display:flex; min-width:0; min-height:130px; align-items:flex-start; gap:15px; padding:21px; border:1px solid #dbe8e6; border-radius:16px; background:#f8fbfa; color:var(--faq-ink); text-align:left; font:inherit; cursor:pointer; transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease; }
.page-faq .faq-topic:hover { transform:translateY(-2px); border-color:#80b4b8; background:#fff; box-shadow:0 12px 30px rgba(25,70,74,.08); }
.page-faq .faq-topic.is-active { border-color:#3d8992; background:#eef7f5; box-shadow:inset 0 0 0 1px #3d8992; }
.page-faq .faq-topic-icon,.page-faq .faq-group-icon { display:grid; width:39px; height:39px; flex:none; place-items:center; border-radius:10px; background:#e0f0ee; color:#2a7180; font-size:1.2rem; font-weight:700; }
.page-faq .faq-topic-copy { display:grid; min-width:0; gap:5px; }
.page-faq .faq-topic-copy strong { font-size:1rem; line-height:1.3; }
.page-faq .faq-topic-copy small { color:#617b7f; font-size:.83rem; line-height:1.45; }
.page-faq .faq-topic-count { margin-left:auto; color:#6d8a8d; font-size:.82rem; font-weight:800; }
.page-faq .faq-results { padding-block:53px 86px; background:#f5f9f8; border-top:1px solid #e6efed; }
.page-faq .faq-results-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:27px; }
.page-faq .faq-results-head .faq-eyebrow { margin-bottom:9px; }
.page-faq .faq-results-count { margin:0 0 5px; color:#5b777b; font-size:.9rem; font-weight:700; white-space:nowrap; }
.page-faq .faq-groups { display:grid; gap:16px; }
.page-faq .faq-group { min-width:0; padding:23px 28px 8px; border:1px solid #e1eae8; border-radius:17px; background:#fff; box-shadow:0 10px 35px rgba(20,64,69,.035); }
.page-faq .faq-group-heading { display:flex; align-items:center; gap:12px; margin-bottom:5px; }
.page-faq .faq-group-heading h3 { margin:0; color:#235b68; font-size:1.15rem; }
.page-faq .faq-group-icon { width:30px; height:30px; border-radius:8px; font-size:1rem; }
.page-faq .faq-entry { border-bottom:1px solid #e5eeec; }
.page-faq .faq-entry:last-child { border-bottom:0; }
.page-faq .faq-entry summary { display:flex; min-height:62px; align-items:center; justify-content:space-between; gap:22px; padding:14px 0; color:#1a3d46; font-size:1rem; font-weight:750; line-height:1.45; list-style:none; cursor:pointer; }
.page-faq .faq-entry summary::-webkit-details-marker { display:none; }
.page-faq .faq-entry-symbol { display:grid; width:28px; height:28px; flex:none; place-items:center; border-radius:50%; background:#e8f3f1; color:#2d6d7c; }
.page-faq .faq-entry-symbol:before { content:"+"; font-size:1.25rem; line-height:1; }
.page-faq .faq-entry[open] .faq-entry-symbol:before { content:"−"; }
.page-faq .faq-entry-answer { max-width:75ch; padding:0 40px 22px 0; }
.page-faq .faq-entry-answer p { margin:0; color:#506c71; font-size:.98rem; line-height:1.7; }
.page-faq .faq-entry-answer a { display:inline-flex; gap:7px; margin-top:12px; color:#246d7a; font-size:.92rem; font-weight:800; text-decoration:underline; text-decoration-color:#a9c8c7; text-underline-offset:4px; }
.page-faq .faq-empty { padding:35px; border:1px dashed #aacac8; border-radius:16px; background:#fff; }
.page-faq .faq-empty h3 { margin:0 0 8px; font-size:1.2rem; }
.page-faq .faq-empty p { margin:0 0 16px; color:var(--faq-muted); }
.page-faq .faq-empty a { color:var(--faq-teal); font-weight:800; text-decoration:underline; }
.page-faq .faq-sources { margin:24px 0 0; color:#627d82; font-size:.82rem; line-height:1.6; }
.page-faq .faq-sources a { color:#2c7180; text-decoration:underline; text-underline-offset:3px; }
.page-faq .faq-contact { padding-block:67px; background:#e6f2ef; }
.page-faq .faq-contact-inner { display:flex; align-items:center; justify-content:space-between; gap:36px; }
.page-faq .faq-contact-inner > div:first-child { max-width:650px; }
.page-faq .faq-contact-inner p:last-child { margin:15px 0 0; color:#4d6d72; }
.page-faq .faq-contact-actions { display:grid; justify-items:start; gap:13px; flex:none; }
.page-faq .faq-contact-actions > a:last-child { color:var(--faq-teal); font-weight:750; text-decoration:underline; text-underline-offset:4px; }
@media (max-width:900px) { .page-faq .faq-hero-inner { grid-template-columns:1fr; } .page-faq .faq-hero-aside { max-width:570px; } .page-faq .faq-topics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .page-faq .faq-hero-inner { gap:34px; padding-block:52px; } .page-faq .faq-hero h1 { font-size:clamp(2.65rem,10vw,4rem); } .page-faq .faq-hero-aside { padding:24px; } .page-faq .faq-explorer { padding-block:52px 44px; } .page-faq .faq-search-row { flex-wrap:wrap; } .page-faq .faq-search-field { flex-basis:100%; height:54px; } .page-faq .faq-reset { min-height:42px; } .page-faq .faq-filter-row { flex-wrap:nowrap; overflow-x:auto; padding:0 0 8px; scrollbar-width:thin; } .page-faq .faq-filter { flex:none; } .page-faq .faq-topics { gap:10px; } .page-faq .faq-topic { min-height:145px; display:grid; grid-template-columns:1fr auto; gap:8px; padding:16px; } .page-faq .faq-topic-icon { grid-column:1; } .page-faq .faq-topic-copy { grid-column:1 / -1; } .page-faq .faq-topic-count { grid-row:1; grid-column:2; } .page-faq .faq-topic-copy small { display:none; } .page-faq .faq-results { padding-block:45px 60px; } .page-faq .faq-results-head { display:block; } .page-faq .faq-results-count { margin-top:12px; } .page-faq .faq-group { padding:18px 18px 5px; } .page-faq .faq-entry-answer { padding-right:0; } .page-faq .faq-contact-inner { display:grid; } }
@media (max-width:370px) { .page-faq .faq-topics { grid-template-columns:1fr; } .page-faq .faq-topic { min-height:0; grid-template-columns:39px 1fr auto; align-items:center; } .page-faq .faq-topic-icon { grid-column:1; } .page-faq .faq-topic-copy { grid-column:2; } .page-faq .faq-topic-count { grid-column:3; } }
@media (prefers-reduced-motion:reduce) { .page-faq .faq-topic,.page-faq .faq-primary-link { transition:none; } }
