/* Public website sections added in Phase 12 (homepage journey, calls to action, FAQ and
   404 pages). The approved header lives in styles.css and is not touched here. */

.hero-actions{margin-top:36px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.cta-primary,.cta-secondary{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:13px 20px;border:1.5px solid var(--ink);font-size:14px;font-weight:700;text-decoration:none;color:var(--ink)}
.cta-primary{background:var(--cobalt);color:#fff;box-shadow:3px 3px 0 var(--ink)}
.cta-primary:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}
.cta-secondary{background:#fff}
.cta-secondary:hover{color:var(--cobalt)}
.cta-primary:focus-visible,.cta-secondary:focus-visible,.journey-link:focus-visible,.promise-side a:focus-visible,.faq-list summary:focus-visible,.faq-side a:focus-visible,.not-found a:focus-visible{outline:3px solid var(--lemon);outline-offset:3px}
.hero-note{margin:16px 0 0;color:#6f6c73;font-size:13px;line-height:1.5}

.eyebrow-label{margin:0;color:var(--cobalt);font-size:11px;font-weight:800;letter-spacing:1.45px;text-transform:uppercase}

.journey{padding:110px 7vw 40px}
.journey-intro{max-width:760px}
.journey-intro h2{margin:18px 0 0;font-size:clamp(40px,4.4vw,70px);line-height:.98;letter-spacing:-.05em}
.journey-intro h2 em{font-family:"DM Serif Display",serif;font-weight:400;color:var(--cobalt);letter-spacing:-.03em}
.journey-intro>p:last-child{max-width:560px;margin:22px 0 0;color:#5a5862;font-size:17px;line-height:1.55}
.journey-steps{list-style:none;margin:52px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1.5px solid var(--ink);border-left:1.5px solid var(--ink)}
.journey-steps li{padding:26px 26px 30px;background:#fff;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.step-number{display:block;font-family:"DM Serif Display",serif;font-size:30px;color:var(--cobalt);line-height:1}
.journey-steps h3{margin:18px 0 8px;font-size:19px;letter-spacing:-.02em}
.journey-steps p{margin:0;color:#5f5c66;font-size:14px;line-height:1.6}
.journey-link,.promise-side a{display:inline-flex;gap:6px;margin-top:26px;color:var(--ink);font-weight:700;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.journey-link:hover,.promise-side a:hover{color:var(--cobalt)}
.promise-side a{margin-top:6px;font-size:13px}

/* FAQ page */
.faq-hero{padding:90px 7vw 40px;max-width:1100px}
.faq-hero h1{margin:20px 0 0;font-size:clamp(52px,6vw,96px);line-height:.9;letter-spacing:-.065em}
.faq-hero h1 em{font-family:"DM Serif Display",serif;font-weight:400;color:var(--cobalt);letter-spacing:-.04em}
.faq-hero p{max-width:620px;margin:26px 0 0;color:#5a5862;font-size:17px;line-height:1.6}
.faq-layout{padding:20px 7vw 100px;display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:6vw;align-items:start}
.faq-group+.faq-group{margin-top:46px}
.faq-group h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:1.3px}
.faq-list{border-top:1.5px solid var(--ink)}
.faq-list details{border-bottom:1px solid #c9c6bd}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;gap:18px;padding:20px 0;font-size:18px;font-weight:600;letter-spacing:-.01em;cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";flex:none;font-family:"DM Serif Display",serif;font-size:26px;line-height:.8;color:var(--cobalt)}
.faq-list details[open] summary::after{content:"–"}
.faq-list .answer{padding:0 0 22px;color:#55525c;font-size:15px;line-height:1.65;max-width:68ch}
.faq-list .answer p{margin:0 0 10px}
.faq-list .answer a{color:var(--cobalt)}
.faq-side{position:sticky;top:24px;padding:24px;background:#fff;border:1.5px solid var(--ink)}
.faq-side h2{margin:0 0 8px;font-size:20px;letter-spacing:-.02em}
.faq-side p{margin:0 0 16px;color:#5f5c66;font-size:14px;line-height:1.55}
.faq-side a{color:var(--cobalt);font-weight:700}

/* 404 page */
.not-found{min-height:70vh;padding:110px 7vw 80px;max-width:900px}
.not-found h1{margin:18px 0 0;font-size:clamp(48px,6vw,90px);line-height:.92;letter-spacing:-.06em}
.not-found h1 em{font-family:"DM Serif Display",serif;font-weight:400;color:var(--coral)}
.not-found p{max-width:540px;margin:24px 0 0;color:#5a5862;font-size:17px;line-height:1.6}

@media(max-width:1000px){
  .journey-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-layout{grid-template-columns:1fr}
  .faq-side{position:static}
}
@media(max-width:620px){
  .hero-actions{flex-direction:column;align-items:stretch}
  .cta-primary,.cta-secondary{justify-content:center}
  .journey{padding:80px 22px 20px}
  .journey-steps{grid-template-columns:1fr;margin-top:36px}
  .journey-steps li{padding:22px 20px 24px}
  .faq-hero{padding:60px 22px 24px}
  .faq-layout{padding:12px 22px 70px}
  .faq-list summary{font-size:16px}
  .not-found{padding:70px 22px 60px}
  .site-footer .footer-column a{min-height:24px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cta-primary:hover{transform:none}}
.final-price-note .faq-link{display:inline-block;margin-top:22px;color:#fff;font-size:14px;font-weight:700;text-underline-offset:4px}
.final-price-note .faq-link:focus-visible{outline:3px solid var(--lemon);outline-offset:3px}

/* Legal pages (Terms, Privacy, Cookies) */
.legal-hero{padding:80px 7vw 28px;max-width:1100px}
.legal-hero h1{margin:18px 0 0;font-size:clamp(46px,5.4vw,84px);line-height:.92;letter-spacing:-.06em}
.legal-hero h1 em{font-family:"DM Serif Display",serif;font-weight:400;color:var(--cobalt);letter-spacing:-.04em}
.legal-meta{margin:20px 0 0;color:#5f5c66;font-size:14px}
.legal-draft{margin:22px 0 0;padding:14px 18px;max-width:760px;background:#fff8d6;border:1.5px solid var(--ink);font-size:14px;line-height:1.55}
.legal-draft strong{display:block;margin-bottom:2px}
.legal-layout{padding:20px 7vw 100px;display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:6vw;align-items:start}
.legal-toc{position:sticky;top:24px;font-size:13px}
.legal-toc h2{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:1.3px}
.legal-toc ol{margin:0;padding-left:18px;display:grid;gap:7px;color:#5f5c66}
.legal-toc a{color:inherit;text-decoration:none}
.legal-toc a:hover{color:var(--cobalt);text-decoration:underline}
.legal-body{max-width:72ch;color:#3f3d46;font-size:16px;line-height:1.7}
.legal-body h2{margin:44px 0 10px;color:var(--ink);font-size:24px;letter-spacing:-.02em;scroll-margin-top:20px}
.legal-body h2:first-child{margin-top:0}
.legal-body h3{margin:24px 0 6px;color:var(--ink);font-size:17px}
.legal-body p{margin:0 0 14px}
.legal-body ul{margin:0 0 16px;padding-left:22px}
.legal-body li{margin-bottom:6px}
.legal-body a{color:var(--cobalt)}
.legal-body table{width:100%;margin:6px 0 18px;border-collapse:collapse;font-size:14px}
.legal-body th,.legal-body td{padding:10px 8px;border-top:1px solid #c9c6bd;text-align:left;vertical-align:top}
.legal-body th{color:var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.6px}
.table-scroll{overflow-x:auto}
mark.tbc{padding:1px 4px;background:#fff1a8;color:var(--ink);border-bottom:1.5px dashed #a15c00}
.legal-toc a:focus-visible,.legal-body a:focus-visible{outline:3px solid var(--lemon);outline-offset:2px}
@media(max-width:900px){.legal-layout{grid-template-columns:1fr}.legal-toc{position:static;padding:16px;background:#fff;border:1px solid #c9c6bd}}
@media(max-width:620px){.legal-hero{padding:56px 22px 20px}.legal-layout{padding:10px 22px 70px}.legal-body{font-size:15px}.legal-body h2{font-size:21px}}
@media print{nav,.mobile-menu,.legal-toc,.site-footer{display:none!important}.legal-layout{display:block;padding:0}.legal-hero{padding:0 0 12px}}
.legal-meta{display:flex;flex-wrap:wrap;gap:6px 22px}
.legal-intro{max-width:760px;margin:22px 0 0;padding-left:16px;border-left:3px solid var(--cobalt);color:#3f3d46;font-size:18px;line-height:1.6}
.legal-body section+section{margin-top:4px}
@media(max-width:620px){.legal-intro{font-size:16px}}
