  :root{
    --teal:#1e4c47;
    --green:#478058;
    --mist:#b8c9c4;
    --olive:#949482;
    --ink:#545752;
    --offwhite:#f5f5f2;
    --lightest:#f0f0f0;
    --light:#e8e8e8;
    --mid:#b8b8b2;
    --gold:#c9a84c;
    --rust:#b65c38;
    --red:#a63228;
    --panel:#eef2f0;
    --display:'Aleo', Georgia, serif;
    --body:'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --wrap:1240px;
    --col:var(--wrap);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:70px;}
  body{
    margin:0;
    font-family:var(--body);
    font-weight:400;
    color:var(--ink);
    background:var(--offwhite);
    line-height:1.72;
    font-size:17px;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  p{margin:0 0 1.15em;}
  a{color:var(--green);text-decoration:none;border-bottom:1px solid rgba(71,128,88,.4);transition:color .2s,border-color .2s;}
  a:hover{color:var(--teal);border-color:var(--teal);}
  strong{font-weight:600;color:var(--teal);}

  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px;}
  .col{max-width:var(--col);}
  section{position:relative;}

  h1,h2,h3,h4{font-family:var(--display);color:var(--teal);line-height:1.14;margin:0;font-weight:700;letter-spacing:-.01em;}

  .eyebrow{
    font-family:var(--body);
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.22em;
    font-size:.95rem;
    color:var(--gold);
    margin:0 0 1.1rem;
    display:inline-flex;
    align-items:center;
    gap:.7rem;
  }
  .eyebrow::before{content:"";width:34px;height:1px;background:var(--gold);display:inline-block;}

  /* ---------- NAV ---------- */
  .nav{
    position:sticky;top:0;z-index:50;
    background:rgba(245,245,242,.9);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--light);
  }
  .nav-inner{max-width:var(--wrap);margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
  .brand{display:flex;align-items:center;gap:11px;font-family:var(--display);font-weight:700;color:var(--teal);font-size:1.02rem;letter-spacing:-.01em;border:0;}
  .brand:hover{color:var(--teal);}
  .brand .mk{display:inline-flex;align-items:center;justify-content:center;background:var(--teal);border-radius:7px;padding:6px 8px;flex-shrink:0;}
  .brand .mk img{display:block;height:22px;width:auto;}
  .brand .om-one{font-weight:700;}
  .brand .om-two{font-weight:400;color:var(--green);}
  .navlinks{display:flex;gap:30px;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;}
  .navlinks a{color:var(--ink);border:0;}
  .navlinks a:hover{color:var(--green);}
  @media(max-width:720px){.navlinks{display:none;}}

  /* ---------- HERO ---------- */
  .hero{
    background:var(--teal);
    color:var(--offwhite);
    overflow:hidden;
    position:relative;
    padding:96px 0 82px;
  }
  .hero::before{
    content:"";position:absolute;inset:0;
    background-image:
      repeating-linear-gradient(115deg, rgba(255,255,255,.028) 0 1px, transparent 1px 78px);
    pointer-events:none;
  }
  .ridge{position:absolute;left:0;right:0;bottom:-2px;width:100%;height:120px;opacity:.5;pointer-events:none;}
  .hero .wrap{position:relative;z-index:2;}
  .hero-kicker{font-family:var(--body);text-transform:uppercase;letter-spacing:.32em;font-size:.74rem;color:var(--gold);font-weight:600;margin-bottom:26px;}
  .hero h1{
    color:#fff;
    font-size:clamp(2.7rem,6.6vw,5rem);
    line-height:1.02;
    max-width:16ch;
    margin-bottom:18px;
  }
  .hero-sub{
    font-family:var(--display);
    font-style:italic;
    font-weight:400;
    color:var(--mist);
    font-size:clamp(1.15rem,2.4vw,1.5rem);
    max-width:34ch;
    margin-bottom:40px;
  }
  .hero-lead{max-width:60ch;color:rgba(245,245,242,.9);font-size:1.075rem;}
  .hero-lead p:last-child{margin-bottom:0;}
  .hero a{color:#d6b866;border-color:rgba(214,184,102,.5);}
  .hero a:hover{color:#fff;border-color:#fff;}
  .hero-rocket{position:absolute;right:22%;top:50%;transform:translateY(-50%);width:210px;height:210px;object-fit:contain;opacity:1;z-index:1;filter:drop-shadow(0 12px 30px rgba(0,0,0,.22));}
  @media(max-width:1000px){.hero-rocket{width:140px;height:140px;right:16%;opacity:.7;}}
  @media(max-width:760px){.hero-rocket{display:none;}.hero{padding:70px 0 64px;}}
  /* The ROI calculator headline is considerably longer than the program guide's,
     so the rocket needs to sit further right to clear it at mid widths. */
  .hero-roi .hero-rocket{right:8%;}
  @media(max-width:1000px){.hero-roi .hero-rocket{right:5%;}}

  /* ---------- GENERIC BLOCKS ---------- */
  .band{padding:88px 0;}
  .band.tight{padding:64px 0;}
  .band.white{background:#fff;}
  .band.off{background:var(--offwhite);}
  .band.panel{background:var(--panel);}
  .band.dark{background:var(--teal);color:var(--offwhite);}
  .band.dark h2,.band.dark h3{color:#fff;}
  .band.dark .lead{color:var(--mist);}
  .band.dark a{color:var(--gold);border-color:rgba(201,168,76,.45);}
  .band.dark strong{color:#fff;}

  .h2{font-size:clamp(1.95rem,3.6vw,2.85rem);margin-bottom:.55rem;}
  .section-sub{font-family:var(--display);font-style:italic;color:var(--olive);font-size:1.2rem;margin-bottom:1.9rem;}
  .lead{font-size:1.12rem;}

  .part-head{border-top:2px solid var(--gold);padding-top:30px;margin-bottom:8px;}
  .part-num{font-family:var(--display);font-weight:700;color:var(--gold);font-size:1rem;letter-spacing:.05em;}

  /* ---------- AT A GLANCE ---------- */
  .glance-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
  @media(max-width:820px){.glance-grid{grid-template-columns:1fr;gap:34px;}}


  /* ---------- CALLOUT ---------- */
  .callout{
    background:linear-gradient(180deg,#e7efe9,#dfeae2);
    border:1px solid var(--mist);
    border-radius:16px;
    padding:30px 34px;
    margin:34px 0;
    display:flex;
    gap:20px;
    align-items:flex-start;
  }
  .callout.center{justify-content:center;text-align:center;}
  .callout .ico{flex-shrink:0;width:34px;height:34px;color:var(--green);margin-top:2px;}
  .callout h4{font-family:var(--display);color:var(--teal);font-size:1.15rem;margin-bottom:.5rem;}
  .callout p{margin-bottom:.7rem;color:var(--teal);}
  .callout p:last-child{margin-bottom:0;}
  .callout .big{font-family:var(--display);font-weight:600;font-size:1.35rem;color:var(--teal);line-height:1.35;margin:0;}

  /* ---------- SUBSECTION CARDS ---------- */
  .stack{display:grid;gap:26px;margin-top:34px;}
  .subcard{
    background:#fff;border:1px solid var(--light);border-left:4px solid var(--green);
    border-radius:12px;padding:30px 34px;
  }
  .subcard h3{font-size:1.35rem;margin-bottom:4px;}
  .subcard .role{font-family:var(--display);font-style:italic;color:var(--olive);font-size:1.02rem;margin-bottom:1rem;display:block;}
  .subcard p:last-child{margin-bottom:0;}

  .two{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
  @media(max-width:820px){.two{grid-template-columns:1fr;}}

  .bullets{list-style:none;margin:1em 0 0;padding:0;}
  .bullets li{position:relative;padding:6px 0 6px 26px;}
  .bullets li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:8px;border-radius:50%;background:var(--green);}

  /* ---------- STATS ---------- */
  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:46px;border-top:1px solid rgba(184,201,196,.3);}
  @media(max-width:760px){.stats{grid-template-columns:1fr;}}
  .stat{padding:36px 30px;border-right:1px solid rgba(184,201,196,.25);}
  .stat:last-child{border-right:0;}
  @media(max-width:760px){.stat{border-right:0;border-bottom:1px solid rgba(184,201,196,.25);}.stat:last-child{border-bottom:0;}}
  .stat .num{font-family:var(--display);font-weight:700;font-size:3.6rem;line-height:1;color:var(--gold);}
  .stat .desc{color:var(--offwhite);margin:12px 0 14px;font-size:1.02rem;max-width:26ch;}
  .stat .src{font-size:.78rem;letter-spacing:.04em;color:var(--mist);text-transform:uppercase;font-weight:500;}

  /* ---------- QUOTES ---------- */
  .pullquote{max-width:52ch;margin:40px auto;text-align:center;}
  .pullquote .mark{font-family:var(--display);font-size:2.4rem;color:var(--gold);line-height:.3;display:block;height:18px;}
  .pullquote q{font-family:var(--display);font-weight:600;font-style:normal;font-size:clamp(1.05rem,1.8vw,1.3rem);color:var(--teal);quotes:none;display:block;line-height:1.4;}
  .pullquote .attr{margin-top:12px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--olive);}
  .band.dark .pullquote q{color:#fff;}
  .band.dark .pullquote .attr{color:var(--mist);}

  /* ---------- CHALLENGE CARDS ---------- */
  .chal-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:36px;}
  @media(max-width:820px){.chal-grid{grid-template-columns:1fr;}}
  .chal{background:#fff;border:1px solid var(--light);border-radius:14px;padding:30px 32px;}
  .chal .cnum{font-family:var(--display);font-weight:700;color:var(--gold);font-size:.95rem;}
  .chal h3{font-size:1.3rem;margin:2px 0 6px;}
  .chal .cdesc{font-family:var(--display);font-style:italic;color:var(--olive);font-size:.98rem;margin-bottom:1rem;line-height:1.5;}
  .chal ul{list-style:none;margin:0;padding:0;}
  .chal li{padding:9px 0;border-top:1px solid var(--lightest);font-size:.97rem;line-height:1.55;}

  /* ---------- TESTIMONIALS ---------- */
  .quotes{display:grid;gap:24px;margin-top:36px;}
  .tcard{display:grid;grid-template-columns:74px 1fr;gap:26px;background:#fff;border:1px solid var(--light);border-radius:16px;padding:32px 34px;align-items:start;}
  @media(max-width:640px){.tcard{grid-template-columns:1fr;gap:16px;}}
  .avatar{width:74px;height:74px;border-radius:50%;background:var(--panel);border:2px solid var(--mist);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;color:var(--green);font-size:1.4rem;overflow:hidden;}
  .avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%;}
  .tcard blockquote{margin:0;font-family:var(--display);font-style:italic;font-weight:400;font-size:1.08rem;line-height:1.6;color:var(--ink);}
  .tcard .attr{margin-top:16px;font-family:var(--body);font-style:normal;font-weight:600;color:var(--teal);font-size:.92rem;letter-spacing:.02em;}
  .tcard .attr .r{color:var(--olive);font-weight:400;}

  /* ---------- FEATURES ---------- */
  .feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px;}
  @media(max-width:900px){.feat-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:600px){.feat-grid{grid-template-columns:1fr;}}
  .feat{background:#fff;border:1px solid var(--light);border-radius:12px;padding:26px 24px;transition:transform .25s,box-shadow .25s,border-color .25s;}
  .feat:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(30,76,71,.08);border-color:var(--mist);}
  .feat .fn{width:38px;height:38px;border-radius:9px;background:var(--teal);color:#fff;font-family:var(--display);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:1.05rem;margin-bottom:16px;}
  .feat h3{font-size:1.12rem;margin-bottom:8px;line-height:1.25;}
  .feat p{font-size:.94rem;line-height:1.6;margin:0;}
  .feat-foot{margin-top:34px;font-family:var(--display);font-style:italic;color:var(--olive);font-size:1.05rem;max-width:70ch;line-height:1.6;}

  /* ---------- LOGISTICS ---------- */
  .spec{margin-top:36px;background:#fff;border:1px solid var(--light);border-radius:14px;overflow:hidden;}
  .spec-row{display:grid;grid-template-columns:230px 1fr;border-top:1px solid var(--lightest);}
  .spec-row:first-child{border-top:0;}
  @media(max-width:640px){.spec-row{grid-template-columns:1fr;}}
  .spec-k{padding:18px 26px;background:var(--panel);font-family:var(--display);font-weight:600;color:var(--teal);font-size:.98rem;}
  .spec-v{padding:18px 26px;font-size:.98rem;}

  /* ---------- STRUCTURE TIMELINE ---------- */
  .timeline{margin-top:40px;position:relative;padding-left:0;}
  .phase{
    display:grid;grid-template-columns:150px 1fr;gap:0;
    border-left:2px solid var(--mist);position:relative;
  }
  .phase:last-child{border-left-color:transparent;}
  @media(max-width:720px){.phase{grid-template-columns:1fr;}}
  .phase-tag{padding:0 26px 42px 30px;position:relative;}
  .phase-tag::before{content:"";position:absolute;left:-8px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--green);border:3px solid var(--offwhite);box-shadow:0 0 0 1px var(--green);}
  .band.white .phase-tag::before{border-color:#fff;}
  .phase-tag .pk{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--gold);}
  .phase-body{padding:0 0 42px 34px;}
  @media(max-width:720px){.phase-body{padding:6px 0 40px 30px;}}
  .phase-body h3{font-size:1.22rem;margin-bottom:6px;}
  .phase-body p{font-size:.97rem;margin:0;line-height:1.6;}

  /* ---------- FAQ ---------- */
  .faq{margin-top:38px;border-top:1px solid var(--light);}
  details{border-bottom:1px solid var(--light);}
  summary{
    list-style:none;cursor:pointer;padding:22px 44px 22px 4px;position:relative;
    font-family:var(--display);font-weight:600;color:var(--teal);font-size:1.14rem;line-height:1.4;
  }
  summary::-webkit-details-marker{display:none;}
  summary::after{content:"+";position:absolute;right:8px;top:20px;font-family:var(--body);font-weight:400;font-size:1.7rem;color:var(--gold);transition:transform .25s;line-height:1;}
  details[open] summary::after{transform:rotate(45deg);}
  .faq-a{padding:0 44px 26px 4px;}
  .faq-a p{margin:0;color:var(--ink);}

  /* ---------- COMPARISON TABLE ---------- */
  .ctable{margin-top:34px;background:#fff;border:1px solid var(--light);border-radius:14px;overflow:hidden;}
  .ctable .row{display:grid;grid-template-columns:1.05fr .85fr 1.7fr;border-top:1px solid var(--lightest);}
  .ctable .row:first-child{border-top:0;}
  .ctable .row > div{padding:17px 24px;font-size:.95rem;line-height:1.55;}
  .ctable .row.head{background:var(--panel);}
  .ctable .row.head > div{
    font-family:var(--body);font-weight:700;text-transform:uppercase;
    letter-spacing:.1em;font-size:.7rem;color:var(--teal);padding-top:14px;padding-bottom:14px;
  }
  .ctable .k{font-family:var(--display);font-weight:600;color:var(--teal);}
  .ctable .gap{color:var(--rust);font-weight:600;}
  .ctable .focus{color:var(--green);font-weight:600;}
  .ctable .muted{color:var(--olive);}
  @media(max-width:760px){
    .ctable .row{grid-template-columns:1fr;}
    .ctable .row > div{padding:6px 22px;}
    .ctable .row > div:first-child{padding-top:20px;}
    .ctable .row > div:last-child{padding-bottom:20px;}
    .ctable .row.head{display:none;}
    .ctable .row > div::before{
      content:attr(data-l);display:block;font-family:var(--body);font-weight:700;
      text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;color:var(--olive);margin-bottom:3px;
    }
    .ctable .row > div:first-child::before{content:none;}
  }

  /* ---------- REFERENCES ---------- */
  .reflist{list-style:none;margin:26px 0 0;padding:0;counter-reset:none;}
  .reflist li{padding:12px 0;border-top:1px solid var(--lightest);font-size:.92rem;line-height:1.6;color:var(--ink);}
  .reflist li:first-child{border-top:0;}
  .reflist .sup{color:var(--gold);font-weight:700;margin-right:.45em;}
  .reflist cite{font-style:italic;}

  /* ---------- DOC ACTIONS ---------- */
  .docbar{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
  .btn{
    display:inline-flex;align-items:center;gap:9px;border:0;
    font-family:var(--body);font-weight:600;font-size:.92rem;letter-spacing:.02em;
    padding:13px 22px;border-radius:9px;transition:transform .2s,box-shadow .2s,background .2s;
  }
  .btn svg{width:17px;height:17px;flex-shrink:0;}
  .btn.solid{background:var(--green);color:#fff;}
  .btn.solid:hover{background:var(--teal);color:#fff;transform:translateY(-2px);box-shadow:0 10px 24px rgba(30,76,71,.18);}
  .btn.ghost{background:transparent;color:var(--teal);box-shadow:inset 0 0 0 1.5px var(--mist);}
  .btn.ghost:hover{color:var(--teal);box-shadow:inset 0 0 0 1.5px var(--green);transform:translateY(-2px);}
  .band.dark .btn.solid{background:var(--gold);color:var(--teal);}
  .band.dark .btn.solid:hover{background:#fff;color:var(--teal);}
  .band.dark .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4);}
  .band.dark .btn.ghost:hover{color:#fff;box-shadow:inset 0 0 0 1.5px var(--gold);}
  .hero .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4);}
  .hero .btn.ghost:hover{color:#fff;box-shadow:inset 0 0 0 1.5px var(--gold);}

  /* ---------- FOOTER ---------- */
  .foot{background:var(--teal);color:var(--mist);padding:56px 0;text-align:center;}
  .foot .brand-lg{display:inline-flex;align-items:center;gap:12px;font-family:var(--display);font-weight:700;color:#fff;font-size:1.35rem;margin-bottom:14px;}
  .foot .brand-lg .om-two{color:var(--mist);font-weight:400;}
  .foot p{color:var(--mist);font-size:.9rem;margin:0;letter-spacing:.04em;}

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
  .reveal.in{opacity:1;transform:none;}
  @media(prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }
  :focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px;}

  /* ================= ROI CALCULATOR ================= */

  /* --- chooser cards --- */
  .choose{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:44px;}
  @media(max-width:820px){.choose{grid-template-columns:1fr;}}
  .choice{
    display:block;background:#fff;border:1px solid var(--light);border-left:4px solid var(--green);
    border-radius:16px;padding:34px 34px 30px;text-decoration:none;border-bottom-width:1px;
    transition:transform .25s,box-shadow .25s,border-color .25s;
  }
  .choice:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(30,76,71,.12);border-left-color:var(--gold);color:inherit;}
  .choice .cn{width:46px;height:46px;border-radius:11px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
  .choice .cn svg{width:23px;height:23px;}
  .choice h3{font-size:1.4rem;margin-bottom:8px;color:var(--teal);}
  .choice p{font-size:.97rem;line-height:1.6;margin:0 0 18px;color:var(--ink);}
  .choice .go{font-family:var(--body);font-weight:600;font-size:.9rem;color:var(--green);letter-spacing:.02em;}
  .choice .go::after{content:" \2192";}

  /* --- form shell --- */
  .calcwrap{max-width:800px;margin:0 auto;padding:0 32px;}
  .progress{display:flex;gap:7px;margin-bottom:34px;}
  .progress i{flex:1;height:4px;border-radius:2px;background:var(--lightest);transition:background .35s;}
  .progress i.on{background:var(--green);}
  .stepmeta{font-family:var(--body);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;color:var(--gold);margin-bottom:12px;}
  .step{display:none;}
  .step.on{display:block;animation:stepin .35s ease;}
  @keyframes stepin{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
  @media(prefers-reduced-motion:reduce){.step.on{animation:none;}}
  .step h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:14px;}

  /* --- fields --- */
  .field{margin-bottom:30px;}
  .field > label,.qlabel{display:block;font-family:var(--display);font-weight:600;color:var(--teal);font-size:1.12rem;line-height:1.45;margin-bottom:8px;}
  .qnum{font-family:var(--body);font-weight:700;color:var(--gold);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;display:block;margin-bottom:6px;}
  .help{font-size:.9rem;line-height:1.6;color:var(--olive);margin:0 0 12px;}
  .help br{content:"";display:block;margin-bottom:5px;}
  input[type=text],input[type=email],input[type=number],input[type=password],
  input[type=search],input[type=tel],input[type=url],input:not([type]),textarea{
    width:100%;font-family:var(--body);font-size:1rem;color:var(--ink);background:#fff;
    border:1.5px solid var(--light);border-radius:10px;padding:13px 15px;
    -webkit-appearance:none;appearance:none;
    transition:border-color .2s,box-shadow .2s;
  }
  input[type=search]::-webkit-search-decoration,
  input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;}
  textarea{min-height:118px;resize:vertical;line-height:1.6;}
  input:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(71,128,88,.13);}
  input.err,textarea.err{border-color:var(--red);}
  .money{position:relative;}
  .money input{padding-left:32px;}
  .money::before{content:"$";position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--olive);font-size:1rem;pointer-events:none;}
  .errmsg{display:none;color:var(--red);font-size:.86rem;margin-top:7px;font-weight:500;}
  .errmsg.on{display:block;}

  /* --- radio choices --- */
  .choices{display:grid;gap:10px;}
  .choices label{
    display:flex;align-items:flex-start;gap:12px;cursor:pointer;background:#fff;
    border:1.5px solid var(--light);border-radius:10px;padding:15px 17px;
    font-size:.97rem;line-height:1.5;transition:border-color .2s,background .2s;
  }
  .choices label:hover{border-color:var(--mist);}
  .choices input{appearance:none;-webkit-appearance:none;margin:0;flex-shrink:0;width:19px;height:19px;border:2px solid var(--mist);border-radius:50%;position:relative;top:1px;transition:border-color .2s;}
  .choices input:checked{border-color:var(--green);border-width:6px;}
  .choices label:has(input:checked){border-color:var(--green);background:#f3f8f4;}

  /* --- nav buttons --- */
  .stepnav{display:flex;gap:12px;align-items:center;margin-top:36px;padding-top:26px;border-top:1px solid var(--lightest);}
  .stepnav .spacer{flex:1;}
  button.btn{cursor:pointer;font:inherit;font-weight:600;font-size:.92rem;}
  .btn.lg{padding:15px 30px;font-size:1rem;}
  .btn.back{background:transparent;color:var(--olive);box-shadow:none;padding-left:6px;}
  .btn.back:hover{color:var(--teal);}
  .btn.back::before{content:"\2190  ";}

  /* --- results --- */
  .results-top{padding:32px 0 82px;}
  .results-thanks{margin:0 0 18px;text-align:center;color:var(--teal);font-family:var(--display);font-size:clamp(1.25rem,2.5vw,1.7rem);}
  .results-top > .calcwrap > .headline{margin:0 0 34px;}
  .headline{
    background:linear-gradient(180deg,#e7efe9,#dfeae2);border:1px solid var(--mist);
    border-radius:18px;padding:40px 34px;text-align:center;margin:34px 0;
  }
  .headline .hk{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;color:var(--olive);margin-bottom:12px;}
  .headline .fig{font-family:var(--display);font-weight:700;color:var(--teal);font-size:clamp(2.4rem,7vw,3.8rem);line-height:1;letter-spacing:-.02em;}

  /* The headline box at the very top of the results is solid dark green with white
     text. Lower headline boxes keep the pale treatment above. */
  .results-top > .calcwrap > .headline{
    background:#3a6b49;border-color:#3a6b49;
  }
  .results-top > .calcwrap > .headline .hk{color:rgba(255,255,255,.88);}
  .results-top > .calcwrap > .headline .fig{color:#fff;}
  .results-top > .calcwrap > .headline .per{color:rgba(255,255,255,.85);}
  .headline .per{font-family:var(--body);font-size:.95rem;color:var(--olive);margin-top:10px;letter-spacing:.04em;}
  .mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:26px 0;border:1px solid var(--light);border-radius:14px;overflow:hidden;background:#fff;}
  @media(max-width:820px){.mgrid{grid-template-columns:1fr 1fr;}}
  @media(max-width:480px){.mgrid{grid-template-columns:1fr;}}
  .metric{padding:22px 20px;border-right:1px solid var(--lightest);}
  .metric:last-child{border-right:0;}
  @media(max-width:820px){.metric{border-bottom:1px solid var(--lightest);}}
  .metric .mv{font-family:var(--display);font-weight:700;color:var(--teal);font-size:1.5rem;line-height:1.1;}
  .metric .ml{font-size:.82rem;color:var(--olive);margin-top:5px;line-height:1.4;}
  .note{background:var(--panel);border-radius:12px;padding:24px 28px;margin:28px 0;font-size:.95rem;line-height:1.65;}
  .note p:last-child{margin-bottom:0;}
  .rsec{margin-top:44px;}
  .rsec h3{font-size:1.3rem;margin-bottom:10px;}
  .echo{font-family:var(--display);font-style:italic;color:var(--teal);font-size:1.1rem;line-height:1.5;padding:14px 20px;border-left:3px solid var(--gold);background:#fff;border-radius:0 10px 10px 0;margin:14px 0;}
  /* ---------- ADMIN ---------- */
  .loginwrap{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 320px);padding:20px 0;}
  .login{
    width:100%;max-width:404px;background:#fff;border:1px solid var(--light);
    border-radius:18px;padding:40px 38px 36px;
    box-shadow:0 18px 50px rgba(30,76,71,.09),0 2px 6px rgba(30,76,71,.04);
  }
  .login .lmk{
    width:46px;height:46px;border-radius:12px;background:var(--teal);
    display:flex;align-items:center;justify-content:center;margin-bottom:22px;
  }
  .login .lmk img{height:26px;width:auto;display:block;}
  .login h1{font-size:1.42rem;margin-bottom:5px;letter-spacing:-.01em;}
  .login .sub{color:var(--olive);font-size:.92rem;margin-bottom:26px;}
  /* login fields are compact - override the large question-style labels */
  .login .field{margin-bottom:18px;}
  .login .field > label{
    font-family:var(--body);font-size:.82rem;font-weight:600;color:var(--olive);
    text-transform:uppercase;letter-spacing:.1em;margin-bottom:7px;
  }
  .login input{padding:12px 14px;font-size:.98rem;}
  .login .btn{margin-top:8px;}

  .adminhead{margin-bottom:22px;}
  .adminhead h1{font-size:1.6rem;letter-spacing:-.01em;margin-bottom:3px;}
  .adminhead .sub{color:var(--olive);font-size:.92rem;}
  .adminbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--light);}
  .adminbar .who{font-size:.88rem;color:var(--olive);}
  .adminbar .who b{color:var(--teal);font-weight:600;}
  .adminbar .spacer{flex:1;}
  .adminbar .btn{padding:9px 16px;font-size:.85rem;}
  .tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--light);}
  .tabs button{
    background:none;border:0;cursor:pointer;font:inherit;font-weight:600;font-size:.92rem;color:var(--olive);
    padding:11px 18px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s;
  }
  .tabs button:hover{color:var(--teal);}
  .tabs button.on{color:var(--teal);border-bottom-color:var(--green);}
  .searchbar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;}
  .searchbar input{flex:1;min-width:220px;padding-left:40px;}
  .searchfield{position:relative;flex:1;min-width:220px;display:flex;}
  .searchfield svg{
    position:absolute;left:14px;top:50%;transform:translateY(-50%);
    width:16px;height:16px;color:var(--olive);pointer-events:none;
  }
  .searchbar select{
    font-family:var(--body);font-size:.92rem;padding:12px 38px 12px 14px;border:1.5px solid var(--light);
    border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;
    -webkit-appearance:none;appearance:none;
    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='%23949482' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 13px center;background-size:15px;
    transition:border-color .2s,box-shadow .2s;
  }
  .searchbar select:hover{border-color:var(--mist);}
  .searchbar select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(71,128,88,.13);}

  .stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}
  @media(max-width:760px){.stat-row{grid-template-columns:1fr 1fr;}}
  .stat-box{
    background:#fff;border:1px solid var(--light);border-radius:13px;padding:20px 22px;
    position:relative;overflow:hidden;
  }
  .stat-box::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--mist);}
  .stat-box.accent::before{background:var(--gold);}
  .stat-box .v{font-family:var(--display);font-weight:700;font-size:1.72rem;color:var(--teal);line-height:1.05;letter-spacing:-.01em;}
  .stat-box .l{font-size:.72rem;color:var(--olive);margin-top:6px;text-transform:uppercase;letter-spacing:.11em;font-weight:600;}
  .subs{background:#fff;border:1px solid var(--light);border-radius:14px;overflow:hidden;}
  .sub-row{border-top:1px solid var(--lightest);}
  .sub-row:first-child{border-top:0;}
  /* --- bulk selection --- */
  .selbar{
    display:flex;align-items:center;gap:14px;flex-wrap:wrap;
    background:var(--teal);color:#fff;border-radius:12px;
    padding:13px 18px;margin-bottom:14px;
  }
  .selbar .count{font-weight:600;font-size:.94rem;}
  .selbar .spacer{flex:1;}
  .selbar .btn{padding:9px 16px;font-size:.86rem;}
  .selbar .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4);}
  .selbar .btn.ghost:hover{color:#fff;box-shadow:inset 0 0 0 1.5px #fff;}
  .selbar .btn.danger{background:#fff;color:var(--red);box-shadow:none;}
  .selbar .btn.danger:hover{background:var(--red);color:#fff;}

  .selall{
    display:flex;align-items:center;gap:10px;padding:11px 22px;
    border-bottom:1px solid var(--lightest);background:#fafbfa;
    font-size:.84rem;color:var(--olive);
  }
  .cbx{
    appearance:none;-webkit-appearance:none;margin:0;flex-shrink:0;
    width:18px;height:18px;border:1.5px solid var(--mist);border-radius:5px;
    background:#fff;cursor:pointer;position:relative;transition:border-color .15s,background .15s;
  }
  .cbx:hover{border-color:var(--green);}
  .cbx:checked{background:var(--green);border-color:var(--green);}
  .cbx:checked::after{
    content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;
    border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
  }
  .cbx:indeterminate{background:var(--green);border-color:var(--green);}
  .cbx:indeterminate::after{
    content:"";position:absolute;left:3px;top:7px;width:10px;height:2px;background:#fff;
  }

  .sub-head{
    display:grid;grid-template-columns:18px minmax(0,1.5fr) minmax(0,1.4fr) 130px 160px 24px;
    gap:18px;align-items:center;
    padding:17px 22px;cursor:pointer;transition:background .15s;
    border-left:3px solid transparent;
  }
  .sub-row.picked .sub-head{background:#f2f7f3;}
  .sub-head:hover{background:#fafbfa;border-left-color:var(--mist);}
  .sub-row.open .sub-head{background:#f7faf8;border-left-color:var(--green);}
  @media(max-width:900px){.sub-head{grid-template-columns:18px minmax(0,1fr) 120px 24px;}.sub-head .em{display:none;}}
  @media(max-width:640px){.sub-head{grid-template-columns:18px minmax(0,1fr) 24px;gap:10px;}.sub-head .hide-sm{display:none;}}
  .sub-head .nm{font-family:var(--display);font-weight:600;color:var(--teal);font-size:1.02rem;line-height:1.3;}
  .sub-head .subj{display:block;font-size:.82rem;color:var(--olive);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .sub-head .em{font-size:.86rem;color:var(--olive);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .sub-head .amt{font-family:var(--display);font-weight:700;color:var(--green);font-size:1.06rem;text-align:right;}
  .sub-head .dt{font-size:.82rem;color:var(--olive);text-align:right;}
  .pill{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:3px 9px;border-radius:20px;margin-left:8px;vertical-align:1px;}
  .pill.individual{background:#e8f0ea;color:var(--green);}
  .pill.team{background:#f3ecdc;color:#8a6d1f;}
  .caret{color:var(--olive);transition:transform .2s;text-align:center;}
  .sub-row.open .caret{transform:rotate(90deg);}
  .sub-body{display:none;padding:4px 20px 24px;background:#fafbfa;border-top:1px solid var(--lightest);}
  .sub-row.open .sub-body{display:block;}
  .kv{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:16px;}
  @media(max-width:700px){.kv{grid-template-columns:1fr;}}
  .kv h5{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--gold);margin:0 0 8px;}
  .kv table{width:100%;border-collapse:collapse;font-size:.9rem;}
  .kv td{padding:6px 0;border-top:1px solid var(--lightest);vertical-align:top;}
  .kv td:first-child{color:var(--olive);width:56%;padding-right:12px;}
  .kv td:last-child{color:var(--teal);font-weight:600;text-align:right;}
  .quote-box{background:#fff;border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:12px 16px;margin-top:14px;font-family:var(--display);font-style:italic;color:var(--teal);line-height:1.55;}
  .rowactions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--lightest);}
  .rowactions .spacer{flex:1;}
  @media(max-width:560px){.rowactions .spacer{display:none;}.rowactions{gap:10px;}}
  .empty{text-align:center;padding:56px 24px;color:var(--olive);}
  .empty svg{width:38px;height:38px;opacity:.4;margin-bottom:12px;}
  .adminlist{background:#fff;border:1px solid var(--light);border-radius:14px;overflow:hidden;margin-top:18px;}
  .adminrow{display:flex;align-items:center;gap:14px;padding:14px 20px;border-top:1px solid var(--lightest);}
  .adminrow:first-child{border-top:0;}
  .adminrow .ae{flex:1;font-size:.95rem;color:var(--teal);font-weight:500;word-break:break-all;}
  .adminrow .meta{font-size:.8rem;color:var(--olive);}
  .btn.danger{background:transparent;color:var(--red);box-shadow:inset 0 0 0 1.5px rgba(166,50,40,.3);padding:8px 14px;font-size:.84rem;}
  .btn.danger:hover{background:var(--red);color:#fff;}
  .btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important;}

  .flash{border-radius:10px;padding:14px 18px;margin-bottom:22px;font-size:.94rem;line-height:1.55;}
  .flash.ok{background:#eef5f0;border:1px solid #bfd8c8;color:var(--teal);}
  .flash.warn{background:#fdf3ec;border:1px solid #e8c9ad;color:#8a4b25;}
  @media print{.nav,.stepnav,.docbar,.foot,.flash{display:none!important;}}
