/* Supervisor-authored FAQ composition. Shared font, shell and chrome retain their owners. */
.faq-page { padding-block:56px 80px; color:var(--ink); font-size:18px; line-height:1.6; --faq-offset:104px; }
.faq-page .resource-intro { margin-bottom:48px; max-width:none; }
.faq-page .resource-intro h1 { font-size:56px; line-height:1.08; font-weight:500; letter-spacing:-.035em; max-width:950px; margin:0 0 24px; text-wrap:balance; }
.faq-page .resource-intro p { max-width:64ch; font-size:21px; line-height:1.5; color:var(--ink); margin:0; }
.faq-page .resource-intro .faq-tour-link { font-size:18px; margin-top:12px; }
.faq-page .faq-layout { grid-template-columns:272px minmax(0,1fr); gap:64px; align-items:start; }
.faq-page .resource-toc { position:static; align-self:start; background:var(--dark); border-radius:24px; padding:24px; display:block; }
.faq-page .resource-toc.is-sticky { position:sticky; top:var(--faq-offset); }
.faq-page .faq-nav-title { color:#fff; font-size:22px; line-height:1.3; font-weight:500; display:block; list-style:none; cursor:pointer; margin:0; }
.faq-page .faq-nav-title::-webkit-details-marker { display:none; }
.faq-page .faq-nav-title::after { content:'+'; float:right; font-size:22px; font-weight:400; }
.faq-page .faq-navigation[open] > .faq-nav-title::after { content:'−'; }
.faq-page .faq-topics { margin-top:16px; }
.faq-page.product-page a:not(.product-button) { color:var(--primary); text-decoration:underline; text-underline-offset:4px; }
.faq-page.product-page .resource-toc a { display:flex; align-items:center; color:var(--on-dark-muted); font-size:17px; line-height:1.4; min-height:48px; padding:10px 0; margin:0; text-decoration:none; border-top:1px solid var(--mute); }
.faq-page.product-page .resource-toc a + a { margin-top:4px; }
.faq-page.product-page .resource-toc a:is(:hover,:focus-visible) { color:#fff; text-decoration:underline; }
.faq-page :focus-visible { outline:2px solid var(--primary); outline-offset:5px; }
.faq-page .resource-toc :focus-visible { outline-color:var(--on-dark-muted); }
.faq-page .resource-toc a:focus-visible { outline-offset:3px; }
.faq-page .faq-content { min-width:0; max-width:880px; }
.faq-page .faq-group { margin-top:64px; }
.faq-page .faq-group:first-child { margin-top:0; }
.faq-page h2 { font-size:32px; line-height:1.2; font-weight:500; letter-spacing:-.025em; margin:0 0 20px; color:var(--ink); }
.faq-page .faq-item { border:0; border-bottom:1px solid var(--line); padding-inline:24px; border-radius:0; box-shadow:none; }
.faq-page .faq-item summary { padding-block:22px; gap:24px; min-height:44px; color:var(--ink); }
.faq-page .faq-item summary h3 { font-size:22px; line-height:1.35; font-weight:500; max-width:62ch; color:var(--ink); margin:0; }
.faq-page .faq-toggle { width:18px; height:18px; flex-shrink:0; }
.faq-page .faq-toggle::before { top:8px; left:1px; width:16px; height:2px; }
.faq-page .faq-toggle::after { top:1px; left:8px; width:2px; height:16px; }
.faq-page .faq-item[open] { background:var(--surface-2); border-radius:12px; border-bottom-color:transparent; box-shadow:inset 2px 0 var(--primary); margin-block:8px; }
.faq-page .faq-answer { max-width:66ch; padding:0 24px 20px 0; }
.faq-page .faq-answer p { font-size:18px; line-height:1.6; color:var(--ink); margin:0 0 16px; }
.faq-page .faq-source { font-size:17px; }
.faq-page.product-page a.faq-permalink { font-size:16px; color:var(--mute); text-decoration:underline; min-height:44px; }
.faq-page .faq-documents { margin-top:64px; padding-top:32px; border-top:1px solid var(--line); }
.faq-page .faq-documents p { font-size:18px; line-height:1.6; color:var(--ink); max-width:64ch; }
.faq-page .faq-document-links { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 32px; margin-top:24px; justify-items:stretch; }
.faq-page .faq-document-links a { font-size:17px; line-height:1.5; padding-block:14px; border-top:1px solid var(--line); min-height:44px; }
.faq-page :is(section,h2,h3,details,.fragment-alias)[id] { scroll-margin-top:var(--faq-offset); }
@media(min-width:801px) and (max-width:1099px) {
 .faq-page .faq-layout { grid-template-columns:240px minmax(0,1fr); gap:32px; }
 .faq-page .resource-toc { padding:20px; }
 .faq-page .faq-item { padding-inline:20px; }
}
@media(max-width:800px) {
 .faq-page { padding-block:32px 56px; font-size:17px; --faq-offset:92px; }
 .faq-page .resource-intro { margin-bottom:28px; }
 .faq-page .resource-intro h1 { font-size:38px; line-height:1.12; margin-bottom:20px; text-wrap:pretty; }
 .faq-page .resource-intro p { font-size:19px; }
 .faq-page .resource-intro .faq-tour-link { font-size:17px; }
 .faq-page .faq-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
 .faq-page .resource-toc, .faq-page .resource-toc.is-sticky { position:static; display:block; padding:18px 20px; border-radius:20px; }
 .faq-page .faq-nav-title { font-size:18px; line-height:1.5; }
 .faq-page .faq-topics { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 16px; margin-top:12px; }
 .faq-page.product-page .resource-toc a { font-size:16px; line-height:1.35; min-height:44px; padding:9px 0; align-self:stretch; }
 .faq-page.product-page .resource-toc a + a { margin-top:0; }
 .faq-page .faq-group { margin-top:44px; }
 .faq-page h2 { font-size:28px; margin-bottom:16px; }
 .faq-page .faq-item { padding-inline:16px; }
 .faq-page .faq-item summary { padding-block:20px; gap:16px; }
 .faq-page .faq-item summary h3 { font-size:20px; line-height:1.4; }
 .faq-page .faq-answer { padding:0 0 16px; }
 .faq-page .faq-answer p { font-size:17px; }
 .faq-page .faq-source { font-size:16px; }
 .faq-page .faq-documents { margin-top:44px; padding-top:28px; }
 .faq-page .faq-documents p { font-size:17px; }
 .faq-page .faq-document-links { grid-template-columns:minmax(0,1fr); gap:0; margin-top:20px; }
 .faq-page .faq-document-links a { font-size:16px; }
}
