/* ============ DESIGN TOKENS ============ */
  :root{
    --ink:#232B36;
    --ink-soft:#525E6E;
    --paper:#FAFAF7;
    --paper-raised:#FFFFFF;
    --sage:#E9EEF3;
    --sage-line:#CBD7E2;
    --forest:#1F3A5F;
    --forest-dark:#152A45;
    --footer-bg:#EDF1F6;
    --ochre:#F4A261;
    --ochre-dark:#D9863F;
    --green:#4CAF50;
    --green-dark:#3C8C40;
    --purple:#9C27B0;
    --purple-dark:#7A1E8C;
    --focus:#1F3A5F;
    --error:#9C3B2E;
    --error-bg:#FBEAE6;
    --success-bg:#E7F5E8;
    --success-ink:#2E6B32;
    --radius:14px;
    --max:1180px;
    --serif:'Arial', 'Helvetica Neue', Helvetica, sans-serif;
    --sans:'Atkinson Hyperlegible', Arial, sans-serif;
    --step-line:#9CC6A0;
    --motion:1;
  }
  [data-contrast="high"]{
    --ink:#000000;
    --ink-soft:#000000;
    --paper:#FFFFFF;
    --paper-raised:#FFFFFF;
    --sage:#EFEFEF;
    --sage-line:#000000;
    --forest:#0F2036;
    --forest-dark:#081222;
    --footer-bg:#DCE3EA;
    --ochre:#8A4E15;
    --ochre-dark:#6B3B0F;
    --green:#276B2A;
    --purple:#6A1878;
  }
  [data-motion="off"]{ --motion:0; }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  [data-motion="off"] html{ scroll-behavior:auto; }
  body{
    margin:0;
    font-family:var(--sans);
    background:var(--paper);
    color:var(--ink);
    line-height:1.6;
    font-size:18px;
  }

  h1,h2,h3,h4{
    font-family:var(--serif);
    color:var(--forest);
    line-height:1.15;
    margin:0 0 .5em;
    font-weight:600;
  }
  h1{ font-size:clamp(2.1rem, 4vw, 3.4rem); font-weight:600; }
  h2{ font-size:clamp(1.6rem, 3vw, 2.3rem); }
  h3{ font-size:1.3rem; }
  p{ margin:0 0 1em; color:var(--ink-soft); max-width:65ch; }
  a{ color:var(--forest); }
  img{ max-width:100%; display:block; }

  /* Focus visibility - never remove */
  a:focus-visible, button:focus-visible, input:focus-visible,
  textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible{
    outline:3px solid var(--focus);
    outline-offset:3px;
    border-radius:4px;
  }

  .skip-link{
    position:absolute; left:-9999px; top:0;
    background:var(--forest); color:#fff; padding:12px 20px;
    z-index:1000; border-radius:0 0 8px 0; font-weight:700;
  }
  .skip-link:focus{ left:0; }

  .wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }

  /* ============ ACCESS BAR ============ */
  .access-bar{
    background:var(--forest-dark); color:#EFEFE9;
    font-size:14px;
  }
  .access-bar .wrap{
    display:flex; align-items:center; justify-content:flex-end;
    gap:18px; padding:8px 24px; flex-wrap:wrap;
  }
  .access-bar button{
    background:transparent; border:1px solid rgba(255,255,255,.4);
    color:#EFEFE9; border-radius:20px; padding:4px 12px;
    font-family:var(--sans); font-size:13px; cursor:pointer;
  }
  .access-bar button:disabled{
    opacity:.4; cursor:not-allowed;
  }
  .access-bar button[aria-pressed="true"]{
    background:var(--ochre); border-color:var(--ochre); color:#152A45; font-weight:700;
  }
  .access-group{ display:flex; align-items:center; gap:6px; }
  .access-group span{ opacity:.85; }

  /* ============ HEADER / NAV ============ */
  header.site{
    background:var(--paper-raised);
    border-bottom:1px solid var(--sage-line);
    position:sticky; top:0; z-index:100;
  }
  .site-header-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 24px; gap:16px;
  }
  .brand{ display:flex; align-items:center; text-decoration:none; }
  .brand-logo{ height:88px; width:auto; display:block; }
  @media (min-width:1400px){ .brand-logo{ height:clamp(88px, 6vw, 120px); } }
  @media (max-width:700px){ .brand-logo{ height:60px; } }
  @media (max-width:420px){ .brand-logo{ height:48px; } }

  nav.primary{ display:flex; align-items:center; gap:2px; flex-wrap:nowrap; }
  nav.primary button.navlink{
    background:none; border:none; font-family:var(--sans); font-size:14px;
    color:var(--ink); padding:9px 10px; border-radius:8px; cursor:pointer;
    font-weight:700; white-space:nowrap;
  }
  nav.primary button.navlink:hover{ background:var(--sage); }
  nav.primary button.navlink[aria-current="page"]{ color:var(--forest); background:var(--sage); }
  .nav-cta{
    background:var(--ochre); color:#fff !important; border-radius:30px !important;
    padding:9px 16px !important; margin-left:4px;
  }
  .nav-cta:hover{ background:var(--ochre-dark) !important; }

  .menu-toggle{ display:none; background:var(--forest); color:#fff; border:none; border-radius:8px; padding:10px 14px; font-weight:700; cursor:pointer; }

  @media (max-width:1340px){
    nav.primary{
      display:none; position:absolute; left:0; right:0; top:100%;
      background:var(--paper-raised); border-bottom:1px solid var(--sage-line);
      flex-direction:column; align-items:stretch; padding:8px 16px 16px;
    }
    nav.primary.open{ display:flex; }
    nav.primary button.navlink{ text-align:left; padding:12px; }
    .menu-toggle{ display:block; }
  }

  /* ============ HERO ============ */
  .hero{
    position:relative; overflow:hidden;
    background:linear-gradient(180deg, var(--sage) 0%, var(--paper) 100%);
    padding:64px 0 40px;
  }
  .hero .wrap{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
  @media (max-width:860px){ .hero .wrap{ grid-template-columns:1fr; } }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--paper-raised); border:1px solid var(--sage-line);
    color:var(--forest); font-weight:700; font-size:.82rem;
    letter-spacing:.03em; padding:6px 14px; border-radius:30px; margin-bottom:18px;
  }
  .eyebrow .dot{ width:8px; height:8px; border-radius:50%; background:var(--ochre); }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top:26px; }
  .btn{
    display:inline-block; font-family:var(--sans); font-weight:700; font-size:16px;
    padding:14px 26px; border-radius:30px; text-decoration:none; cursor:pointer;
    border:2px solid transparent; transition:transform .15s ease;
  }
  [data-motion="off"] .btn{ transition:none; }
  .btn:hover{ transform:translateY(-2px); }
  .btn-primary{ background:var(--ochre); color:#fff; }
  .btn-primary:hover{ background:var(--ochre-dark); }
  .btn-outline{ background:transparent; border-color:var(--forest); color:var(--forest); }
  .btn-outline:hover{ background:var(--forest); color:#fff; }
  .btn-block{ display:block; width:100%; text-align:center; }

  .hero-art{
    background:var(--paper-raised); border:1px solid var(--sage-line);
    border-radius:var(--radius); padding:28px; box-shadow:0 18px 40px -22px rgba(36,70,61,.35);
  }
  .hero-art h2{ font-size:1.2rem; margin-bottom:14px; }

  /* ============ PATHWAY (signature element) ============ */
  .pathway{
    display:flex; gap:0; margin:12px 0 6px; position:relative;
  }
  .pathway-step{
    flex:1; text-align:center; position:relative; padding:0 8px;
  }
  .pathway-step .node{
    width:46px; height:46px; border-radius:50%; background:var(--forest);
    color:#fff; display:flex; align-items:center; justify-content:center;
    margin:0 auto 10px; font-family:var(--serif); font-weight:700; font-size:1.1rem;
    position:relative; z-index:2;
  }
  .pathway-step:nth-child(1) .node{ background:var(--forest); }
  .pathway-step:nth-child(2) .node{ background:var(--green); }
  .pathway-step:nth-child(3) .node{ background:var(--ochre); }
  .pathway-step:nth-child(4) .node{ background:var(--purple); }
  .pathway-step .track{
    position:absolute; top:23px; left:-50%; width:100%; height:3px;
    background:repeating-linear-gradient(90deg, var(--step-line) 0 8px, transparent 8px 14px);
    z-index:1;
  }
  .pathway-step:first-child .track{ display:none; }
  .pathway-step h4{ font-size:.95rem; margin-bottom:4px; color:var(--forest); }
  .pathway-step p{ font-size:.85rem; margin:0; }
  @media (max-width:700px){
    .pathway{ flex-direction:column; gap:22px; }
    .pathway-step .track{ display:none; }
  }

  /* ============ SECTIONS GENERAL ============ */
  section.page{ display:none; padding:56px 0 72px; }
  section.page.active{ display:block; }
  #page-home{ padding-top:0; padding-bottom:0; }
  .section-band{ padding:56px 0; }
  .band-alt{ background:var(--sage); }
  .kicker{
    color:var(--ochre-dark); font-weight:700; text-transform:uppercase;
    letter-spacing:.05em; font-size:1.02rem; margin-bottom:8px; display:block;
  }
  .section-head{ max-width:720px; margin-bottom:36px; }

  /* ============ CARDS / GRIDS ============ */
  .grid{ display:grid; gap:24px; }
  .grid-3{ grid-template-columns:repeat(3,1fr); }
  .grid-2{ grid-template-columns:repeat(2,1fr); }
  @media (max-width:860px){ .grid-3{ grid-template-columns:1fr 1fr; } .grid-2{ grid-template-columns:1fr; } }
  @media (max-width:600px){ .grid-3{ grid-template-columns:1fr; } }

  .card{
    background:var(--paper-raised); border:1px solid var(--sage-line);
    border-radius:var(--radius); padding:26px;
  }
  .card .icon{
    width:48px; height:48px; border-radius:12px; background:var(--sage);
    display:flex; align-items:center; justify-content:center; margin-bottom:14px;
  }
  .card .icon svg{ width:26px; height:26px; }
  .card h3{ margin-bottom:8px; }
  .card p{ font-size:.96rem; margin-bottom:0; }
  .card ul{ padding-left:20px; margin:10px 0 0; font-size:.92rem; color:var(--ink-soft); }

  .badge-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
  .badge{
    background:var(--paper-raised); border:1px solid var(--sage-line); border-radius:10px;
    padding:10px 16px; font-size:.85rem; font-weight:700; color:var(--forest);
    display:flex; align-items:center; gap:8px;
  }

  blockquote.testimonial{
    background:var(--paper-raised); border-left:5px solid var(--purple);
    border-radius:0 var(--radius) var(--radius) 0; padding:22px 24px; margin:0;
  }
  blockquote.testimonial p{ font-style:italic; margin-bottom:10px; font-size:1.02rem; color:var(--ink); }
  blockquote.testimonial cite{ font-style:normal; font-weight:700; font-size:.85rem; color:var(--ink-soft); }

  /* ============ FORMS ============ */
  .form-shell{
    background:var(--paper-raised); border:1px solid var(--sage-line);
    border-radius:var(--radius); padding:32px; max-width:680px;
  }
  .field{ margin-bottom:20px; }
  .field label{ display:block; font-weight:700; margin-bottom:6px; }
  .field .hint{ font-size:.85rem; color:var(--ink-soft); margin-bottom:6px; display:block; }
  .field input, .field select, .field textarea{
    width:100%; font-family:var(--sans); font-size:16px; padding:12px 14px;
    border:2px solid var(--sage-line); border-radius:10px; background:var(--paper);
    color:var(--ink);
  }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--forest); }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:600px){ .field-row{ grid-template-columns:1fr; } }
  fieldset{ border:2px solid var(--sage-line); border-radius:10px; padding:14px 16px; margin:0 0 20px; }
  legend{ font-weight:700; padding:0 6px; }
  .radio-option, .checkbox-option{ display:flex; align-items:flex-start; gap:10px; margin:8px 0; font-size:.95rem; }
  .radio-option input, .checkbox-option input{ width:auto; margin-top:4px; }
  .required-mark{ color:var(--error); }
  .form-success{
    background:var(--success-bg); color:var(--success-ink); border-radius:10px;
    padding:16px 18px; font-weight:700; display:none; margin-bottom:20px;
  }
  .form-success.show{ display:block; }

  /* ============ FAQ ============ */
  .faq-item{ border-bottom:1px solid var(--sage-line); }
  .faq-item button.faq-q{
    width:100%; text-align:left; background:none; border:none; cursor:pointer;
    padding:18px 4px; font-family:var(--sans); font-weight:700; font-size:1.02rem;
    color:var(--ink); display:flex; justify-content:space-between; align-items:center; gap:16px;
  }
  .faq-item .faq-icon{ flex-shrink:0; font-size:1.3rem; color:var(--ochre-dark); transition:transform .2s; }
  [data-motion="off"] .faq-item .faq-icon{ transition:none; }
  .faq-item[data-open="true"] .faq-icon{ transform:rotate(45deg); }
  .faq-a{ padding:0 4px 18px; display:none; }
  .faq-item[data-open="true"] .faq-a{ display:block; }

  /* ============ TRUST STRIP ============ */
  .trust-strip{
    background:var(--sage); border-top:1px solid var(--sage-line); border-bottom:1px solid var(--sage-line);
    overflow:hidden; padding:14px 0;
  }
  .trust-track{
    display:flex; width:max-content;
    animation:trust-scroll 52s linear infinite;
  }
  [data-motion="off"] .trust-track{ animation:none; }
  @media (prefers-reduced-motion: reduce){ .trust-track{ animation:none; } }
  .trust-set{ display:flex; align-items:center; flex-shrink:0; }
  .trust-item{
    display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
    font-family:var(--sans); font-weight:700; font-size:.92rem; color:var(--forest);
    padding:0 32px; border-right:1px solid var(--sage-line);
  }
  @keyframes trust-scroll{
    from{ transform:translateX(0); }
    to{ transform:translateX(-50%); }
  }

  /* ============ FOOTER ============ */
  footer.site{ background:var(--footer-bg); color:var(--ink-soft); padding:56px 0 28px; margin-top:40px; border-top:1px solid var(--sage-line); }
  footer.site a{ color:var(--forest); }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:32px; margin-bottom:36px; }
  @media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
  footer.site h4{ color:var(--forest); font-size:1rem; margin-bottom:14px; font-family:var(--sans); }
  footer.site button.navlink{ font-family:var(--sans); font-size:1rem; }
  .footer-brand{ display:flex; align-items:center; margin-bottom:16px; background:transparent; text-decoration:none; cursor:pointer; border:none; padding:0; }
  .footer-logo{ height:62px; width:auto; display:block; background:transparent; }
  footer.site ul{ list-style:none; padding:0; margin:0; }
  footer.site li{ margin-bottom:9px; }
  footer.site p{ color:var(--ink-soft); font-size:.92rem; }
  .newsletter-inline{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .newsletter-inline input{
    flex:1; min-width:180px; padding:11px 14px; border-radius:8px; border:2px solid var(--sage-line);
    background:var(--paper-raised); color:var(--ink); font-family:var(--sans);
  }
  .newsletter-inline input::placeholder{ color:var(--ink-soft); }
  .footer-bottom{
    border-top:1px solid var(--sage-line); padding-top:22px; display:flex; justify-content:space-between;
    flex-wrap:wrap; gap:12px; font-size:.85rem; color:var(--ink-soft);
  }
  .footer-bottom a{ color:var(--forest); text-decoration:underline; }

  .visually-hidden{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }

  .page-lead{ max-width:760px; }
  .two-col{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
  @media (max-width:860px){ .two-col{ grid-template-columns:1fr; } }

  .info-list{ list-style:none; padding:0; margin:0; }
  .info-list li{ display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--sage-line); }
  .info-list .info-icon{ flex-shrink:0; width:26px; height:26px; color:var(--forest); }

  .map-box{
    width:100%; height:220px; border-radius:var(--radius); border:1px solid var(--sage-line);
    background:
      linear-gradient(var(--sage) 1px, transparent 1px) 0 0/24px 24px,
      linear-gradient(90deg, var(--sage) 1px, transparent 1px) 0 0/24px 24px,
      var(--paper-raised);
    display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-size:.9rem;
  }
  .map-embed{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--sage-line); }

  .step-num{
    display:inline-flex; align-items:center; justify-content:center;
    width:32px; height:32px; border-radius:50%; background:var(--forest);
    color:#fff; font-weight:700; font-family:var(--serif); flex-shrink:0; margin-right:12px;
  }
  .step-list li{ display:flex; align-items:flex-start; margin-bottom:16px; }
  .step-list p{ margin:0; }
  .step-list{ list-style:none; padding:0; }

  /* ============ RESPONSIVE FINE-TUNING (phones / small tablets) ============ */
  @media (max-width:700px){
    .wrap{ padding:0 18px; }
    .site-header-row{ padding:12px 18px; gap:10px; }
    .access-bar .wrap{ padding:8px 18px; gap:10px; justify-content:center; }
    section.page{ padding:36px 0 48px; }
    .section-band{ padding:36px 0; }
    .card{ padding:20px; }
    .form-shell{ padding:22px; }
    h1{ font-size:clamp(1.7rem, 8vw, 2.3rem); }
    .hero{ padding:40px 0 28px; }
    .btn{ text-align:center; }
    .hero-ctas{ flex-direction:column; align-items:stretch; }
    .hero-ctas .btn{ width:100%; }
    .badge-row{ justify-content:center; }
  }
  @media (max-width:420px){
    .wrap{ padding:0 14px; }
    .eyebrow{ font-size:.75rem; padding:5px 10px; }
    .kicker{ font-size:.9rem; }
  }

  /* Respect the user's OS-level reduced motion preference by default */
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    .btn, .faq-item .faq-icon{ transition:none; }
  }


  /* ============ LEGAL / POLICY PAGES ============ */

.legal-page {
  padding: 64px 0 80px;
}

.legal-header {
  max-width: 800px;
  margin-bottom: 42px;
}

.legal-header h1 {
  margin-bottom: 14px;
}

.legal-header p {
  font-size: 1.05rem;
}

.legal-content {
  max-width: 850px;
  background: var(--paper-raised);
  border: 1px solid var(--sage-line);
  border-radius: var(--radius);
  padding: 40px;
}

.legal-content h2 {
  font-size: 1.55rem;
  margin-top: 36px;
  margin-bottom: 12px;
}

.legal-content h2:first-child {
  margin-top: 0;
}

.legal-content p {
  max-width: 75ch;
}

.legal-content ul {
  color: var(--ink-soft);
  padding-left: 24px;
  margin: 10px 0 20px;
}

.legal-content li {
  margin-bottom: 8px;
}

.legal-content a {
  color: var(--forest);
  font-weight: 700;
}

.legal-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    color: var(--forest);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.legal-back:hover {
    opacity: 0.75;
}

.legal-updated {
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--sage-line);
  font-size: .9rem;
  color: var(--ink-soft);
}

@media (max-width: 700px) {
  .legal-page {
    padding: 40px 0 55px;
  }

  .legal-content {
    padding: 24px 20px;
  }

  .legal-content h2 {
    font-size: 1.35rem;
    margin-top: 30px;
  }
}

/* Footer Explore & Support links */
.site .footer-grid ul li a {
    text-decoration: none;
}

.site .footer-grid ul li a:hover {
    text-decoration: none;
}
