.faq-page { --faq-rule: color-mix(in srgb, var(--slate) 22%, var(--paper)); }
/* Match the homepage type scale; retain its Nunito Sans body family. */
.faq-page h1 { font-size:clamp(32px,3.8vw,52px); line-height:1.05; }
.faq-page h2 { font-size:clamp(36px,5vw,68px); line-height:1.1; }
.faq-page .eyebrow { font-size:16px; letter-spacing:6px; font-weight:400; line-height:normal; }
.faq-page .lead { font-size:22px; line-height:1.55; }
.faq-page main .button { font-size:18px; }
.faq-page .main-nav .button { font-size:16px; }
.faq-page .skip-link { position:absolute; top:1rem; left:1rem; transform:translateY(-180%); z-index:10; background:var(--lime); color:var(--navy); padding:1rem; border-radius:.5rem; }
.faq-page .skip-link:focus { transform:translateY(0); }
.faq-page summary:focus-visible { outline:3px solid var(--slate); outline-offset:4px; border-radius:.25rem; }
.faq-hero { padding:5rem 0 6rem; }
.faq-hero-layout { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:6rem; }
.faq-hero .lead { margin-bottom:0; }
.faq-hero-note { max-width:28rem; padding-bottom:.5rem; }
.faq-hero-note > p { margin-bottom:2rem; }
.faq-hero-link { display:flex; gap:1rem; justify-content:space-between; padding:1rem 0; border-top:1px solid var(--slate); text-decoration:none; font-weight:800; font-size:1.0625rem; }
.faq-hero-link span { color:var(--lime); }
.faq-hero-link:hover { color:var(--lime); }
.faq-layout { display:grid; grid-template-columns:15rem minmax(0,1fr); align-items:start; gap:6rem; padding-top:5rem; padding-bottom:6rem; }
.faq-topics { position:sticky; top:2rem; }
.faq-topics .eyebrow { letter-spacing:4px; font-size:14px; margin-bottom:1rem; }
.faq-topics nav { display:grid; }
.faq-topics nav a { display:flex; gap:1rem; align-items:baseline; padding:.875rem 0; border-bottom:1px solid var(--faq-rule); font-size:.9375rem; font-weight:800; text-decoration:none; }
.faq-topics nav a span { font-size:.6875rem; color:var(--slate); font-weight:500; }
.faq-topics nav a:hover { text-decoration:underline; text-underline-offset:.25em; }
.faq-contact { display:inline-block; font-size:.875rem; font-weight:800; margin-top:2rem; text-underline-offset:.3em; }
.faq-group { scroll-margin-top:2rem; margin-bottom:4.5rem; }
.faq-group:last-child { margin-bottom:0; }
.faq-group-heading { display:flex; align-items:baseline; gap:1.25rem; padding-bottom:1.5rem; border-bottom:2px solid var(--navy); }
.faq-number { font-size:.75rem; font-weight:800; color:var(--slate); }
.faq-group-heading h2 { font-size:36px; font-weight:500; margin-bottom:.625rem; }
.faq-group-heading p { font-size:1rem; margin-bottom:0; }
.faq-item { border-bottom:1px solid var(--faq-rule); }
.faq-item summary { display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem; padding:1.5rem 0; cursor:pointer; list-style:none; font-size:1.125rem; font-weight:800; line-height:1.5; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; color:var(--slate); font-size:1.5rem; font-weight:400; line-height:1; flex:none; }
.faq-item[open] summary::after { content:'−'; }
.faq-item[open] summary { padding-bottom:.875rem; }
.faq-item summary:hover { color:var(--slate); }
.faq-answer { max-width:48rem; padding-bottom:1.5rem; padding-right:2.5rem; }
.faq-answer p { font-size:18px; line-height:1.5; margin-bottom:1rem; }
.faq-answer p:last-child { margin-bottom:0; }
.faq-answer a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.2em; }
.faq-answer a:hover { text-decoration-thickness:2px; }
.faq-roster { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; margin:1.5rem 0; padding:0; gap:.5rem 1.5rem; }
.faq-roster li { display:flex; flex-direction:column; border-bottom:1px solid var(--faq-rule); padding:.75rem 0; min-width:0; }
.faq-roster strong { font-size:1rem; line-height:1.5; }
.faq-roster span { font-size:.875rem; line-height:1.5; color:var(--ink); }
.faq-next h2 { margin-bottom:3rem; }
.faq-next .card { padding:2.5rem; display:flex; flex-direction:column; align-items:flex-start; }
.faq-next .card h3 { font-size:36px; font-weight:500; }
.faq-next .card p { flex:1; }
.faq-next .button { gap:.75rem; text-align:center; }
.faq-cta > .wrap { display:flex; align-items:center; justify-content:space-between; gap:3rem; }
.faq-cta .lead { margin-bottom:0; }
.faq-cta .button { flex:none; gap:1rem; }
.faq-page .footer a { color:inherit; text-underline-offset:.2em; }
@media(max-width:1100px) {
  .faq-hero-layout { gap:3rem; }
  .faq-layout { grid-template-columns:13rem minmax(0,1fr); gap:3rem; }
}
@media(max-width:860px) {
  .faq-hero { padding:3rem 0 4rem; }
  .faq-hero-layout { grid-template-columns:1fr; gap:2.5rem; }
  .faq-hero-note { max-width:36rem; }
  .faq-layout { grid-template-columns:1fr; gap:3rem; padding-top:2rem; padding-bottom:4rem; }
  .faq-topics { position:static; padding-bottom:1.5rem; border-bottom:1px solid var(--faq-rule); }
  .faq-topics nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1.5rem; }
  .faq-contact { margin-top:1.5rem; }
  .faq-cta > .wrap { align-items:flex-start; flex-direction:column; gap:2rem; }
}
@media(max-width:600px) {
  .faq-page h1 { font-size:clamp(32px,10vw,42px); }
  .faq-topics nav { gap:0 1rem; }
  .faq-topics nav a { gap:.5rem; font-size:.8125rem; }
  .faq-group { margin-bottom:3.5rem; }
  .faq-group-heading { gap:.75rem; }
  .faq-group-heading p { font-size:.9375rem; }
  .faq-item summary { font-size:1.0625rem; gap:1rem; }
  .faq-answer { padding-right:0; }
  .faq-roster { gap:.5rem 1rem; }
  .faq-next .two { grid-template-columns:1fr; }
  .faq-next .card { padding:1.5rem; }
  .faq-page .footer .wordmark { margin-bottom:.5rem; }
}
