.page-hero--editorial-wrap{ padding:24px 40px 0; max-width:1440px; margin:0 auto; }
.page-hero{
  background:var(--nav); color:#fff; border-radius:12px; padding:64px 56px;
  position:relative; overflow:hidden;
}

.page-hero .ey{
  font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--sauna); margin-bottom:18px;
}
.page-hero .ttl{
  font-family:var(--f); font-weight:600;
  font-size:clamp(2rem,3.4vw,2.75rem); line-height:1.08;
  letter-spacing:-.02em; color:#fff; max-width:18ch; text-wrap:balance;
}
.page-hero .sub{
  color:#cfd3d8; font-weight:300; margin-top:14px;
  max-width:54ch; font-size:1rem; line-height:1.55;
}

/* CTA band (dark, "Have a question?" pattern from homepage) */
.cta-band{
  background:var(--nav); color:#fff;
  padding:96px 0; text-align:center;
}
.cta-band .eyebrow{
  color:var(--nav-muted); margin-bottom:18px; display:block;
  font-weight:600; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
}
.cta-band h2{
  color:#fff; font-weight:400; font-size:clamp(1.75rem,2.6vw,2.25rem);
  line-height:1.2; letter-spacing:-.015em; max-width:18ch; margin:0 auto;
}
.cta-band .sub{
  color:#cfd3d8; font-weight:300; margin-top:18px; max-width:46ch;
  margin-left:auto; margin-right:auto; font-size:1rem; line-height:1.55;
}
.cta-band .actions{
  margin-top:32px; display:flex; gap:24px;
  justify-content:center; align-items:center; flex-wrap:wrap;
}
.cta-band .tlink{color:#fff}
.cta-band .tlink:hover{text-decoration-color:#fff}

/* Section band (centred title row) */
.section-band{margin-bottom:40px; text-align:center}
.section-band h2{
  font-weight:400; font-size:clamp(1.75rem,2.6vw,2.25rem);
  line-height:1.2; letter-spacing:-.015em; color:var(--heading);
}
.section-band .sub{
  color:var(--muted); font-weight:300; margin-top:14px;
  max-width:56ch; margin-left:auto; margin-right:auto; font-size:1rem;
}
.section-band--left{text-align:left}
.section-band--left .sub{margin-left:0; margin-right:0}

/* Bands */
.band{padding:96px 0}
.band--surface{background:var(--surface)}
.band--alt{background:var(--section-alt)}

/* Prose container */
.prose{max-width:720px; margin:0 auto; padding:88px 40px}
.prose p{font-weight:300; font-size:1.0625rem; line-height:1.75; color:var(--body); margin-bottom:20px}
.prose p:last-child{margin-bottom:0}
.prose p.lead{
  font-size:1.25rem; font-weight:300; line-height:1.55; color:var(--heading);
  margin-bottom:32px; text-wrap:balance;
}
.prose h2{
  font-weight:400; font-size:1.75rem; line-height:1.25; letter-spacing:-.015em;
  color:var(--heading); margin-top:56px; margin-bottom:18px;
}
.prose h3{
  font-weight:600; font-size:1.125rem; line-height:1.35;
  color:var(--heading); margin-top:36px; margin-bottom:12px;
}
.prose a{color:var(--heading); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--border)}
.prose a:hover{text-decoration-color:var(--heading)}
.prose ul, .prose ol{padding-left:1.4em; margin-bottom:20px}
.prose ul li, .prose ol li{font-weight:300; font-size:1rem; line-height:1.7; color:var(--body); margin-bottom:6px}
.prose blockquote{
  margin:32px 0; padding:20px 24px;
  border-left:2px solid var(--sauna); background:var(--surface);
  font-style:italic; color:var(--heading); font-size:1.0625rem; line-height:1.6;
  border-radius:0 var(--r-lg) var(--r-lg) 0;
}
.prose figure{margin:32px 0}
.prose figure img{border-radius:var(--r-lg); width:100%}
.prose figcaption{font-size:.82rem; color:var(--muted); margin-top:10px; text-align:center; font-style:italic}
.prose table{width:100%; border-collapse:collapse; margin:24px 0; font-size:.92rem}
.prose th{text-align:left; padding:12px 14px; background:var(--surface); color:var(--heading); font-weight:600; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; border-bottom:1px solid var(--border)}
.prose td{padding:12px 14px; border-bottom:1px solid var(--hairline); color:var(--body)}
.prose .callout{
  margin:32px 0; padding:22px 26px; border-radius:var(--r-lg);
  background:var(--surface); border:1px solid var(--hairline);
  display:flex; gap:14px; align-items:flex-start;
}
.prose .callout svg{width:20px; height:20px; flex:none; color:var(--heading); margin-top:2px; stroke-width:1.6; fill:none; stroke:currentColor}
.prose .callout .text{font-size:.95rem; line-height:1.65; color:var(--body)}
.prose .callout b{color:var(--heading); font-weight:600}

/* FAQ accordion (NEW COMPONENT — per brief) */
.faq-acc{border-top:1px solid var(--hairline)}
.faq-acc .faq{border-bottom:1px solid var(--hairline)}
.faq-acc .faq > summary{
  list-style:none; cursor:pointer; padding:22px 8px 22px 0;
  display:flex; justify-content:space-between; align-items:center;
  gap:24px; font-family:var(--f); font-weight:500; font-size:1rem;
  color:var(--heading); line-height:1.4; transition:color .12s;
}
.faq-acc .faq > summary::-webkit-details-marker{display:none}
.faq-acc .faq > summary:hover{color:var(--sauna-text)}
.faq-acc .faq > summary::after{
  content:""; width:32px; height:32px; flex:none;
  border:1px solid var(--border); border-radius:50%;
  background:no-repeat center/14px 14px url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1F24' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  transition:transform .25s ease, background-color .15s, border-color .15s;
}
.faq-acc .faq > summary:hover::after{ border-color:var(--heading); }
.faq-acc .faq[open] > summary::after{
  transform:rotate(45deg);
  background-color:var(--nav);
  border-color:var(--nav);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
.faq-acc .faq[open] > summary{color:var(--heading)}
.faq-acc .faq > .answer{
  padding:0 0 24px 0; color:var(--body); font-size:.95rem;
  line-height:1.7; max-width:68ch; font-weight:300;
}
.faq-acc .faq > .answer p + p{margin-top:14px}
.faq-acc .faq > .answer a{color:var(--heading); text-decoration:underline; text-underline-offset:3px}

/* Responsive */
@media (max-width:900px){
  .wrap{padding:0 22px}
  .page-hero--editorial-wrap{ padding:14px 22px 0; }
  .page-hero{padding:44px 32px}
  .page-hero--compact{ padding:28px 24px; }
  .band{padding:64px 0}
  .cta-band{padding:64px 0}
  .prose{padding:64px 22px}
}

/* FAQ-specific */
.faq-intro{
  max-width:1080px; margin:0 auto; padding:72px 40px 24px;
  text-align:center;
}
.faq-intro p{
  font-weight:300; font-size:1.0625rem; line-height:1.65;
  color:var(--body); max-width:none; margin:0 auto; text-wrap:balance;
}

/* Lane toggle (segmented) — NEW COMPONENT */
.faq-toggle-wrap{
  display:flex; justify-content:center;
  padding:8px 22px 0; margin-bottom:40px;
}
.faq-toggle{
  display:inline-flex; background:#fff;
  border:1px solid var(--border); padding:4px; border-radius:999px;
  box-shadow:var(--shadow-card);
}
.faq-toggle button{
  padding:11px 22px; font-size:.875rem; font-weight:500;
  color:var(--muted); border-radius:999px; transition:background .14s, color .14s;
  font-family:var(--f); display:inline-flex; align-items:center; gap:8px;
}
.faq-toggle button .dot{
  width:7px; height:7px; border-radius:50%; opacity:0;
  transition:opacity .14s, background .14s;
}
.faq-toggle button.is-active{background:var(--nav); color:#fff}
.faq-toggle button.is-active .dot{opacity:1}
.faq-toggle button[data-lane="sauna"].is-active .dot{background:var(--sauna)}
.faq-toggle button[data-lane="ice"].is-active .dot{background:var(--ice)}

/* CTA h2 on this page — allow on one line */
.cta-band h2{ max-width:none; }

/* FAQ groups */
/* Note: brand.css applies `section { padding:120px 0 }` globally. The CD
   design for this page expects no top padding on .faq-body — the
   .faq-toggle-wrap above already provides 40px margin-bottom which is
   the intended gap. Override the inherited top padding here. */
.faq-body{padding:0 0 48px}
.faq-body .wrap{max-width:880px}
.faq-pane[hidden]{display:none}
.faq-group{margin-bottom:48px}
.faq-group:last-child{margin-bottom:0}
.faq-group .group-head{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:24px; margin-bottom:8px; padding-bottom:14px;
  border-bottom:1px solid var(--hairline);
}
.faq-group .group-head h2{
  font-family:var(--f); font-weight:600; font-size:1.2rem;
  letter-spacing:-.005em; color:var(--heading);
}
.faq-group .group-head .count{
  font-size:.74rem; color:var(--muted); letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}
.faq-group .faq-acc{border-top:0}

/* Search */
.faq-search{
  margin:0 auto 32px; max-width:520px; position:relative;
}
.faq-search input{
  width:100%; padding:14px 16px 14px 44px;
  background:#fff; border:1px solid var(--border); border-radius:var(--r-lg);
  font-family:var(--f); font-weight:300; font-size:.95rem; color:var(--heading);
  transition:border-color .12s, box-shadow .12s;
}
.faq-search input::placeholder{color:var(--placeholder); font-weight:300}
.faq-search input:focus{outline:none; border-color:var(--nav); box-shadow:0 0 0 3px rgba(37,45,53,.08)}
.faq-search svg{
  position:absolute; left:16px; top:50%; transform:translateY(-50%);
  width:18px; height:18px; color:var(--placeholder); pointer-events:none;
  stroke:currentColor; stroke-width:1.8; fill:none;
}
.faq-empty{
  text-align:center; padding:48px 20px; color:var(--muted);
  font-size:.95rem; display:none;
}
.faq-empty.is-visible{display:block}
