.faq-page { background: var(--white); }
.faq-page .site-header { color: var(--ink); }
.faq-main { overflow: hidden; }
.faq-hero { position: relative; display: flex; min-height: 560px; align-items: end; padding: calc(var(--header-height) + 80px) 0 90px; overflow: hidden; background: var(--greige); }
.faq-hero::before { position: absolute; right: -.025em; bottom: -.2em; color: rgba(41,41,35,.055); font-size: clamp(11rem,27vw,27rem); font-weight: 800; line-height: 1; letter-spacing: -.08em; content: "FAQ"; }
.faq-hero::after { position: absolute; right: 0; inset-block: 0; width: 28%; background: var(--navy); content: ""; }
.faq-hero-inner { position: relative; z-index: 1; width: 100%; }
.faq-breadcrumb { margin: 0 0 60px; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
.faq-hero h1 { max-width: 70%; margin: 0; font-size: clamp(3.5rem,7vw,7rem); font-weight: 600; line-height: 1; letter-spacing: -.065em; }
.faq-hero h1 span { display: block; margin-top: 22px; font-size: .82rem; font-weight: 500; letter-spacing: .12em; }
.faq-intro { padding: clamp(100px,13vw,180px) 0; }
.faq-intro-grid { display: grid; grid-template-columns: .55fr 1.45fr; gap: clamp(60px,10vw,150px); }
.faq-intro h2 { margin: 0 0 38px; font-size: clamp(2.5rem,5vw,5rem); font-weight: 500; line-height: 1.3; letter-spacing: -.05em; }
.faq-intro-grid > div > p { max-width: 720px; margin: 0 0 18px; color: var(--muted); }
.faq-index { padding: 0 0 clamp(95px,11vw,150px); background: var(--white); }
.faq-index-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.faq-index a { position: relative; min-height: 210px; padding: 25px 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--mist); transition: color .3s, background .3s, transform .3s; }
.faq-index a:hover { z-index: 1; color: var(--white); background: var(--navy); transform: translateY(-5px); }
.faq-index a > span { color: var(--blue); font-size: .58rem; font-weight: 700; }
.faq-index strong { display: block; margin: 70px 0 9px; font-size: clamp(1.05rem,1.55vw,1.3rem); font-weight: 500; }
.faq-index small { color: var(--muted); font-size: .55rem; font-weight: 700; letter-spacing: .12em; }
.faq-index a:hover > span, .faq-index a:hover small { color: var(--greige); }
.faq-category { scroll-margin-top: calc(var(--header-height) + 20px); padding: clamp(105px,13vw,180px) 0; background: var(--white); }
.faq-category-tint { background: #e3dfd4; }
.faq-category-dark { color: var(--greige); background: var(--navy); }
.faq-category-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(60px,10vw,145px); align-items: start; }
.faq-category-heading { position: sticky; top: calc(var(--header-height) + 42px); }
.faq-category-heading h2 { margin: 0 0 30px; font-size: clamp(2.3rem,4.4vw,4.3rem); font-weight: 500; line-height: 1.25; letter-spacing: -.05em; }
.faq-category-heading > p:last-child { max-width: 420px; color: var(--muted); font-size: .86rem; }
.faq-category-dark .faq-category-heading h2 { color: var(--white); }
.faq-category-dark .faq-category-heading > p:last-child { color: rgba(214,210,196,.65); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: grid; grid-template-columns: 42px minmax(0,1fr) 24px; gap: 18px; min-height: 92px; align-items: center; padding: 20px 0; cursor: pointer; list-style: none; font-size: clamp(.95rem,1.25vw,1.08rem); font-weight: 500; line-height: 1.6; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--blue); font-size: .6rem; font-weight: 700; }
.faq-list summary i { position: relative; width: 20px; height: 20px; }
.faq-list summary i::before,.faq-list summary i::after { position: absolute; left: 3px; top: 10px; width: 14px; height: 1px; background: var(--ink); content: ""; transition: transform .22s ease; }
.faq-list summary i::after { transform: rotate(90deg); }
.faq-list details[open] summary i::after { transform: rotate(0); }
.faq-list details > p { max-width: 760px; margin: 0; padding: 0 44px 31px 60px; color: var(--muted); font-size: .84rem; line-height: 1.95; }
.faq-category-tint .faq-list { border-color: #aaa498; }
.faq-category-tint .faq-list details { border-color: #aaa498; }
.faq-category-dark .faq-list { border-color: rgba(214,210,196,.24); }
.faq-category-dark .faq-list details { border-color: rgba(214,210,196,.24); }
.faq-category-dark .faq-list summary { color: var(--white); }
.faq-category-dark .faq-list summary span { color: var(--greige); }
.faq-category-dark .faq-list summary i::before,.faq-category-dark .faq-list summary i::after { background: var(--greige); }
.faq-category-dark .faq-list details > p { color: rgba(214,210,196,.68); }
.faq-contact { padding: clamp(105px,13vw,180px) 0; color: var(--greige); background: #20201d; }
.faq-contact-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(60px,10vw,145px); }
.faq-contact h2 { margin: 0; color: var(--white); font-size: clamp(2.4rem,4.8vw,4.7rem); font-weight: 500; line-height: 1.3; letter-spacing: -.05em; }
.faq-contact-grid > div:last-child { padding-top: 45px; border-top: 1px solid rgba(214,210,196,.25); }
.faq-contact-grid p { max-width: 650px; margin: 0; color: rgba(214,210,196,.66); }
.faq-contact a { display: flex; align-items: center; justify-content: space-between; max-width: 650px; margin-top: 38px; padding: 21px 0; border-top: 1px solid rgba(214,210,196,.3); border-bottom: 1px solid rgba(214,210,196,.3); color: var(--white); font-size: clamp(1.1rem,1.9vw,1.45rem); }
.faq-contact a i { font-style: normal; transition: transform .25s ease; }
.faq-contact a:hover i { transform: translate(5px,-5px); }
@media (max-width: 900px) {
  .faq-hero { min-height: 460px; }
  .faq-hero::after { width: 14px; }
  .faq-hero h1 { max-width: 100%; }
  .faq-intro-grid,.faq-category-grid,.faq-contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .faq-index-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .faq-index a:last-child { grid-column: 1 / -1; }
  .faq-category-heading { position: static; }
  .faq-contact-grid > div:last-child { padding-top: 34px; }
}
@media (max-width: 560px) {
  .faq-index-grid { grid-template-columns: 1fr; }
  .faq-index a,.faq-index a:last-child { grid-column: auto; min-height: 132px; padding: 22px 20px; }
  .faq-index strong { margin: 35px 0 6px; }
  .faq-list summary { grid-template-columns: 30px minmax(0,1fr) 20px; gap: 12px; min-height: 82px; font-size: .92rem; }
  .faq-list details > p { padding: 0 20px 27px 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .faq-index a,.faq-list summary i::after,.faq-contact a i { transition: none; }
}
