.faq-hero { display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:center; padding-block:36px 70px; }
.faq-hero h1 { font-family:var(--serif); font-size:clamp(34px,4.5vw,56px); line-height:1.6; font-weight:400; margin-block:18px 24px; }
.faq-hero .button { margin-top:28px; }
.faq-hero figure { margin:0; width:100%; max-width:330px; justify-self:center; }
.faq-hero img { width:100%; height:auto; display:block; }
.faq-hero figcaption { text-align:center; font-size:14px; color:var(--muted); margin-top:18px; }
.faq-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(32px,6vw,86px); align-items:start; padding-block:40px 90px; border-top:1px solid var(--line); }
.faq-category-nav { position:sticky; top:110px; }
.faq-category-nav > a:not(.text-link) { display:flex; align-items:center; gap:12px; padding-block:19px; border-bottom:1px solid var(--line); color:var(--ink); font-size:16px; text-decoration:none; }
.faq-category-nav > a:not(.text-link):hover { color:var(--brand-dark); background:var(--light-gray); }
.faq-category-nav > a > span { color:var(--brand); font-size:13px; }
.faq-nav-note { font-size:14px; line-height:1.9; margin-top:28px; color:var(--muted); }
.faq-category-nav .text-link { margin-top:15px; }
.faq-topic { scroll-margin-top:100px; margin-bottom:64px; }
.faq-topic h2 { font-family:var(--serif); font-size:clamp(24px,3vw,32px); font-weight:400; margin-block:12px 26px; }
.recruit-faq-list { border-top:1px solid var(--line); }
.recruit-faq-list details { border-bottom:1px solid var(--line); scroll-margin-top:100px; }
.recruit-faq-list summary { display:grid; grid-template-columns:26px minmax(0,1fr) 18px; gap:12px; align-items:start; padding:24px 8px; cursor:pointer; font-size:17px; line-height:1.8; list-style:none; }
.recruit-faq-list summary::-webkit-details-marker { display:none; }
.recruit-faq-list summary::after { content:'＋'; color:var(--brand-dark); }
.recruit-faq-list details[open] summary::after { content:'−'; }
.recruit-faq-list summary:hover { color:var(--brand-dark); background:var(--light-gray); }
.recruit-faq-list summary:focus-visible,.faq-category-nav a:focus-visible { outline:2px solid var(--brand-dark); outline-offset:4px; }
.faq-q { color:var(--brand); font-weight:500; }
.faq-answer { padding:0 20px 28px 46px; font-size:16px; line-height:2; }
.faq-answer p + p { margin-top:14px; }
.faq-answer ul { padding-left:1.25em; margin-block:14px; }
.faq-answer li + li { margin-top:10px; }
.faq-answer .text-link { display:flex; width:fit-content; max-width:100%; gap:12px; margin-top:18px; }
@media(max-width:900px) {
 .faq-layout { grid-template-columns:1fr; gap:44px; }
 .faq-category-nav { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; }
 .faq-category-nav > .eyebrow { grid-column:1/-1; }
 .faq-nav-note,.faq-category-nav > .text-link { display:none; }
}
@media(max-width:640px) {
 .faq-hero { grid-template-columns:1fr; gap:26px; padding-block:26px 44px; }
 .faq-hero figure { max-width:220px; }
 .faq-hero .recruit-lead { font-size:16px; }
 .faq-layout { padding-block:30px 54px; }
 .faq-category-nav > a:not(.text-link) { font-size:14px; gap:8px; padding-block:16px; }
 .faq-topic { margin-bottom:44px; }
 .recruit-faq-list summary { font-size:16px; padding:20px 0; gap:8px; grid-template-columns:24px minmax(0,1fr) 16px; }
 .faq-answer { padding:0 0 24px 0; }
}
