.phead--faq {
  position: relative; overflow: hidden;
}
.phead--faq::after {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: url('editorial-hero.jpg') right center/cover no-repeat;
  opacity: 0.18;
  pointer-events: none;
}
.phead--faq .phead__inner { position: relative; z-index: 1; }

.phead--faq .phead__meta {
  margin-top: 28px;
  display: inline-flex; gap: 40px; flex-wrap: wrap;
  padding: 18px 24px;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.phead__meta-item { display: grid; gap: 2px; }
.phead__meta-n {
  font-weight: 800; font-size: clamp(24px, 2.4vw, 34px);
  letter-spacing: -0.02em; line-height: 1; color: var(--forest);
}
.phead__meta-l {
  font-family: var(--f-mono); font-size: 13px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-2);
}

.faq-wrap { padding: clamp(60px,8vw,100px) var(--pad) clamp(80px,12vw,140px); max-width: 1200px; margin: 0 auto; }

.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }

.faq-item summary {
  list-style: none;
  padding: 32px 0;
  display: flex; justify-content: space-between; align-items: center; gap: 40px;
  cursor: pointer;
}
.faq-item summary::-webkit-details-marker { display: none; }

.faq-q {
  font-weight: 800; font-size: clamp(18px,2vw,28px);
  line-height: 1.2; letter-spacing: -0.018em;
  transition: color .3s;
}
.faq-item:hover .faq-q { color: var(--forest); }

.faq-plus { width: 18px; height: 18px; position: relative; flex-shrink: 0; }
.faq-plus::before, .faq-plus::after {
  content: ""; position: absolute; background: currentColor;
}
.faq-plus::before { left: 0; right: 0; top: 50%; height: 1px; margin-top: -0.5px; }
.faq-plus::after { top: 0; bottom: 0; left: 50%; width: 1px; margin-left: -0.5px; transition: transform .4s var(--ease); }
.faq-item[open] .faq-plus::after { transform: scaleY(0); }

.faq-item .faq-a {
  display: block;
  color: var(--ink-2); max-width: none; font-size: 17px; line-height: 1.7;
  overflow: hidden;
  opacity: 0;
  padding: 0;
  height: 0;
  will-change: height, opacity;
}
.faq-item[open] .faq-a {
  opacity: 1;
  padding: 0 0 22px;
  height: auto;
}
.faq-a a {
  color: var(--forest);
  border-bottom: 1px solid color-mix(in srgb, var(--forest) 35%, transparent);
  transition: border-color .25s var(--ease), color .25s var(--ease);
}
.faq-a a:hover {
  color: var(--forest-2);
  border-bottom-color: var(--forest-2);
}
@media (prefers-reduced-motion: reduce) {
  .faqcat .faq-item,
  .faq-item .faq-a {
    transition: opacity .15s linear;
    transform: none;
  }
}

@media (max-width: 640px) {
  .faq-item summary { padding: 24px 0; gap: 20px; }
}

.faqsearch{
  display:flex; align-items:center; gap:12px;
  padding:14px 18px;
  border:1px solid var(--line);
  background:var(--bg);
  margin-bottom:36px;
  position:sticky; top: calc(var(--header-h, 96px) + 12px);
  z-index:4;
  backdrop-filter: saturate(120%) blur(6px);
  -webkit-backdrop-filter: saturate(120%) blur(6px);
  transition: border-color .2s, background .2s;
}
.faqsearch:focus-within{ border-color: var(--forest); background: var(--bg); }
.faqsearch__icon{ color: var(--muted); flex-shrink:0; transition: color .2s; }
.faqsearch:focus-within .faqsearch__icon{ color: var(--forest); }
.faqsearch__input{
  flex:1; border:none; outline:none; background:none;
  font: inherit; font-size:16px; color: var(--ink);
  padding:4px 0;
}
.faqsearch__input::placeholder{ color: var(--muted); opacity:0.6; }
.faqsearch__input::-webkit-search-cancel-button{ -webkit-appearance:none; }
.faqsearch__count{
  font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  color: var(--muted); flex-shrink:0;
}
.faqsearch__empty{
  display:none;
  margin: -16px 0 36px;
  padding: 24px;
  border: 1px solid var(--line);
  background: var(--paper);
  font-size: 15px; color: var(--ink-2);
}
.faqsearch__empty a{ color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }

.faqwrap{
  max-width: 1180px; margin:0 auto;
  padding:clamp(60px,8vw,100px) var(--pad) clamp(80px,12vw,140px);
  display:grid; grid-template-columns: 220px 1fr; gap:56px;
  align-items:start;
}
.faqnav{
  position:sticky; top: calc(var(--header-h, 96px) + 24px);
  border-left:1px solid var(--line);
  padding-left:0;
}
.faqnav ol{ list-style:none; display:grid; gap:0; }
.faqnav li{ position:relative; }
.faqnav a{
  display:block;
  padding:10px 0 10px 18px;
  font-size:15px; color:var(--ink-2);
  transition:color .2s;
}
.faqnav a::before{
  content:""; position:absolute; left:-1px; top:50%;
  width:0; height:1px; background:var(--forest);
  transition:width .25s;
}
.faqnav a:hover{ color:var(--ink); }
.faqnav a:hover::before{ width:14px; }
.faqnav a.active{ color:var(--forest); }
.faqnav a.active::before{ width:14px; background:var(--forest); }

.faqbody{ display:grid; gap:60px; }
.faqcat{ display:grid; gap:4px; scroll-margin-top: calc(var(--header-h, 96px) + 24px); }
.faqcat__hd{
  padding-bottom:16px;
  border-bottom:2px solid var(--forest);
  margin-bottom:6px;
}
.faqcat__hd h2{
  font-weight:800; font-size:clamp(24px,2.4vw,34px);
  letter-spacing:-0.02em; line-height:1.1;
}
.faqcat .faq-item{
  border-top:1px solid var(--line-2);
  border-left:2px solid transparent;
  padding-left:18px;
  transition: border-left-color .25s var(--ease);
}
.faqcat .faq-item:first-of-type{ border-top:none; }
.faqcat .faq-item:last-of-type{ border-bottom:1px solid var(--line-2); }
.faqcat .faq-item summary{
  padding:22px 0;
}
.faqcat .faq-q{ font-size:clamp(18px,1.6vw,22px); font-weight:700; }
.faqcat .faq-item[open]{ border-left-color: var(--forest); }

.js-anim .faqcat.reveal {
  opacity: 1; transform: none;
  transition: none;
}
.js-anim .faqcat .faqcat__hd {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .35s var(--ease), transform .35s var(--ease);
}
.js-anim .faqcat.in .faqcat__hd {
  opacity: 1;
  transform: none;
}
.js-anim .faqcat .faq-item {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .42s var(--ease), transform .42s var(--ease);
}
.js-anim .faqcat.in .faq-item {
  opacity: 1;
  transform: none;
}
.js-anim .faqcat.in .faq-item:nth-of-type(1) { transition-delay: 0.06s; }
.js-anim .faqcat.in .faq-item:nth-of-type(2) { transition-delay: 0.12s; }
.js-anim .faqcat.in .faq-item:nth-of-type(3) { transition-delay: 0.18s; }
.js-anim .faqcat.in .faq-item:nth-of-type(4) { transition-delay: 0.24s; }
.js-anim .faqcat.in .faq-item:nth-of-type(5) { transition-delay: 0.30s; }
.js-anim .faqcat.in .faq-item:nth-of-type(6) { transition-delay: 0.36s; }
.js-anim .faqcat.in .faq-item:nth-of-type(n+7) { transition-delay: 0.40s; }

@media (prefers-reduced-motion: reduce) {
  .js-anim .faqcat .faqcat__hd,
  .js-anim .faqcat .faq-item {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (max-width:960px){
  .faqwrap{ grid-template-columns: 1fr; gap:32px; }
  .faqnav{
    position:static; border-left:none;
    border-bottom:1px solid var(--line);
    padding-bottom:12px;
  }
  .faqnav ol{ grid-template-columns:repeat(2, 1fr); gap:4px; }
  .faqnav a{ padding-left:0; }
  .faqnav a::before{ display:none; }
}
@media (max-width:560px){
  .faqnav ol{ grid-template-columns:1fr; }
}
