:root{
      --ink:#0C2B2A;
      --ink-soft:#3B5551;
      --ink-faint:#6B827E;
      --mist:#F4F9F7;
      --paper:#FFFFFF;
      --line:#E2ECE8;
      --teal:#12A594;
      --teal-deep:#0B7A6E;
      --teal-ink:#083B36;
      --mint:#DCEFEA;
      --mint-soft:#EAF5F1;
      --amber:#E9A23B;
      --shadow-sm:0 1px 2px rgba(8,59,54,.06), 0 2px 6px rgba(8,59,54,.05);
      --shadow-md:0 12px 30px -12px rgba(8,59,54,.20), 0 6px 14px -8px rgba(8,59,54,.14);
      --shadow-lg:0 40px 80px -32px rgba(8,59,54,.30), 0 16px 40px -20px rgba(8,59,54,.18);
      --radius:20px;
      --radius-sm:12px;
      --radius-lg:28px;
      --maxw:1180px;
      --ease:cubic-bezier(.22,.61,.36,1);
    }

    *,*::before,*::after{box-sizing:border-box}
    html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
    @media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}

    body{
      margin:0;
      font-family:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
      color:var(--ink);
      background:var(--mist);
      line-height:1.6;
      font-size:17px;
      -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility;
      overflow-x:hidden;
    }

    h1,h2,h3{
      font-family:"Bricolage Grotesque",system-ui,sans-serif;
      font-weight:600;
      line-height:1.08;
      letter-spacing:-.02em;
      margin:0;
      color:var(--ink);
    }

    a{color:inherit;text-decoration:none}
    img,svg{display:block;max-width:100%}
    p{margin:0}

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

    /* --- Buttons --- */
    .btn{
      display:inline-flex;align-items:center;gap:.55rem;
      font-family:"Instrument Sans",sans-serif;
      font-weight:600;font-size:1rem;line-height:1;
      padding:15px 26px;border-radius:999px;border:1px solid transparent;
      cursor:pointer;transition:transform .18s var(--ease), box-shadow .18s var(--ease), background-color .18s var(--ease);
      white-space:nowrap;
    }
    .btn-primary{background:var(--teal);color:#fff;box-shadow:0 10px 22px -10px rgba(18,165,148,.7)}
    .btn-primary:hover{background:var(--teal-deep);transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(18,165,148,.75)}
    .btn-ghost{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow-sm)}
    .btn-ghost:hover{border-color:#CBDDD7;transform:translateY(-2px)}
    .btn:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(18,165,148,.5);outline-offset:2px}

    /* --- Header --- */
    header.site{position:sticky;top:0;z-index:50;background:rgba(244,249,247,.82);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,background-color .3s}
    header.site.scrolled{border-color:var(--line);background:rgba(244,249,247,.92)}
    .nav{display:flex;align-items:center;justify-content:space-between;height:74px}
    .logo{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.42rem;letter-spacing:-.02em;color:var(--ink);display:inline-flex;align-items:center;gap:.5rem}
    .logo .mark{width:30px;height:30px;flex:0 0 auto}
    .logo b{font-weight:600}
    .logo .accent{color:var(--teal)}
    .nav .badge{display:none}
    @media(min-width:640px){.nav .badge{display:inline-flex}}

    .pill{
      display:inline-flex;align-items:center;gap:.5rem;
      font-size:.86rem;font-weight:500;color:var(--teal-deep);
      background:var(--mint);border:1px solid #C6E4DB;
      padding:7px 14px;border-radius:999px;
    }
    .pill .dot{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(18,165,148,.5);animation:pulse 2.4s var(--ease) infinite}
    @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(18,165,148,.45)}70%{box-shadow:0 0 0 9px rgba(18,165,148,0)}100%{box-shadow:0 0 0 0 rgba(18,165,148,0)}}
    @media (prefers-reduced-motion: reduce){.pill .dot{animation:none}}

    /* --- Hero --- */
    .hero{padding:56px 0 40px;position:relative}
    .hero::before{
      content:"";position:absolute;inset:-200px 0 auto;height:640px;z-index:-1;
      background:radial-gradient(60% 70% at 78% 30%, rgba(18,165,148,.14), transparent 70%),
                 radial-gradient(50% 60% at 12% 8%, rgba(59,130,196,.10), transparent 70%);
      pointer-events:none;
    }
    .hero-grid{display:grid;gap:44px;align-items:center}
    @media(min-width:960px){.hero-grid{grid-template-columns:1.02fr .98fr;gap:56px}.hero{padding:76px 0 64px}}

    .hero h1{font-size:clamp(2.35rem,6.2vw,4rem);margin:22px 0 0}
    .hero .lead{font-size:clamp(1.12rem,2.4vw,1.32rem);color:var(--ink-soft);margin-top:22px;max-width:36ch}
    .hero .sub{color:var(--ink-faint);margin-top:16px;max-width:44ch;font-size:1.02rem}
    .hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:32px}
    .hero-cta .note{font-size:.92rem;color:var(--ink-faint)}

    /* --- Dashboard mock --- */
    .mock{position:relative;perspective:1400px}
    .card-dash{
      background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
      box-shadow:var(--shadow-lg);padding:26px;position:relative;
    }
    .card-dash .win{display:flex;gap:6px;margin-bottom:18px}
    .card-dash .win i{width:11px;height:11px;border-radius:50%;background:#E5EDEB;display:block}
    .card-dash .win i:nth-child(1){background:#F2C4C0}
    .card-dash .win i:nth-child(2){background:#F3DDB1}
    .card-dash .win i:nth-child(3){background:#BFE3D3}
    .dash-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
    .dash-head .eyebrow{font-size:.82rem;color:var(--ink-faint);font-weight:500}
    .dash-head h3{font-size:1.5rem;margin-top:3px}
    .dash-head .date{text-align:right;font-size:.82rem;color:var(--ink-faint)}
    .dash-head .date b{display:block;color:var(--teal-deep);font-family:"Bricolage Grotesque";font-size:1.05rem;font-weight:600}

    .progress-row{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px;font-size:.9rem;color:var(--ink-soft);font-weight:500}
    .progress-row .count{color:var(--ink);font-weight:600}
    .bar{height:9px;border-radius:999px;background:var(--mint-soft);overflow:hidden}
    .bar span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--teal),#3FC3A9);transition:width 1.1s var(--ease)}
    .bar.filled span{width:57%}

    .tasks{margin-top:22px;display:flex;flex-direction:column;gap:2px}
    .task{display:flex;align-items:center;gap:13px;padding:11px 8px;border-radius:12px;transition:background-color .18s}
    .task:hover{background:var(--mint-soft)}
    .task .tick{width:23px;height:23px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;border:2px solid #D3E1DC;color:transparent;transition:.2s}
    .task.done .tick{background:var(--teal);border-color:var(--teal);color:#fff}
    .task .label{font-size:.98rem;color:var(--ink)}
    .task.done .label{color:var(--ink-soft)}
    .task .tick svg{width:13px;height:13px}

    .float-chip{
      position:absolute;right:26px;bottom:-20px;left:auto;background:var(--paper);
      border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-md);
      padding:12px 16px;display:flex;align-items:center;gap:11px;
    }
    .float-chip .ic{width:34px;height:34px;border-radius:10px;background:var(--mint);display:grid;place-items:center;color:var(--teal-deep)}
    .float-chip .ic svg{width:18px;height:18px}
    .float-chip .t{font-size:.72rem;color:var(--ink-faint);line-height:1.3}
    .float-chip .t b{display:block;color:var(--ink);font-size:.92rem;font-family:"Bricolage Grotesque";font-weight:600}
    @media(max-width:420px){.float-chip{display:none}}

    @media(max-width:480px){
      .cat{padding:18px 15px;gap:12px}
      .cat span:not(.ic){font-size:.95rem}
      .cat .ic{width:40px;height:40px}
      .card-dash{padding:22px}
      .dash-head{flex-direction:column;gap:4px}
      .dash-head .date{text-align:left;margin-top:6px}
      .dash-head .date b{white-space:nowrap}
      .float-chip{display:none}
    }

    /* --- generic section --- */
    section{padding:64px 0}
    @media(min-width:768px){section{padding:92px 0}}
    .sec-head{max-width:58ch}
    .sec-head .kicker{color:var(--teal-deep);font-weight:600;font-size:.95rem;margin-bottom:12px}
    .sec-head h2{font-size:clamp(1.8rem,4vw,2.65rem)}
    .sec-head p{color:var(--ink-soft);margin-top:16px;font-size:1.08rem}

    /* --- Steps --- */
    .steps{display:grid;gap:20px;margin-top:48px}
    @media(min-width:820px){.steps{grid-template-columns:repeat(3,1fr);gap:24px}}
    .step{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
    .step .num{font-family:"Bricolage Grotesque";font-weight:700;font-size:1rem;color:var(--teal);width:38px;height:38px;border-radius:11px;background:var(--mint);display:grid;place-items:center;margin-bottom:20px}
    .step h3{font-size:1.28rem}
    .step p{color:var(--ink-soft);margin-top:11px;font-size:1rem}
    .step .line{position:absolute;top:49px;right:-6px;color:#CFE1DB;display:none}
    @media(min-width:820px){.step:not(:last-child) .line{display:block}}

    /* --- Grid categories --- */
    .cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:48px}
    @media(min-width:600px){.cat-grid{grid-template-columns:repeat(3,1fr)}}
    @media(min-width:900px){.cat-grid{grid-template-columns:repeat(4,1fr);gap:16px}}
    .cat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px 20px;display:flex;flex-direction:column;gap:14px;min-width:0;transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}
    .cat span:not(.ic){overflow-wrap:break-word}
    .cat:hover{transform:translateY(-3px);border-color:#CBDDD7;box-shadow:var(--shadow-md)}
    .cat .ic{width:44px;height:44px;border-radius:12px;background:var(--mint-soft);display:grid;place-items:center;color:var(--teal-deep)}
    .cat .ic svg{width:23px;height:23px;stroke-width:1.7}
    .cat span{font-weight:600;font-size:1.02rem}

    /* --- Personal split --- */
    .split{display:grid;gap:44px;align-items:center}
    @media(min-width:920px){.split{grid-template-columns:1fr 1fr;gap:60px}}
    .profile{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:30px}
    .profile .ptitle{font-size:.82rem;color:var(--ink-faint);font-weight:500;margin-bottom:20px;display:flex;align-items:center;gap:8px}
    .field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
    .field label{font-size:.82rem;color:var(--ink-faint);font-weight:500}
    .field .val{background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-weight:600;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px}
    .field .val .route{display:flex;align-items:center;gap:10px}
    .field .val .route svg{width:18px;height:18px;color:var(--teal)}
    .field .val .chev{color:var(--ink-faint)}
    .profile .result{margin-top:22px;padding:16px 18px;border-radius:14px;background:linear-gradient(120deg,var(--teal-ink),var(--teal-deep));color:#EAF9F5;font-size:.96rem;display:flex;gap:12px;align-items:center}
    .profile .result svg{flex:0 0 auto;width:22px;height:22px;color:#7FE3CF}
    .fieldset-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    @media(max-width:640px){.fieldset-2{grid-template-columns:1fr}}

    /* --- Signup band --- */
    .band-wrap{padding:0 0 24px}
    .band{
      background:linear-gradient(135deg,var(--teal-ink) 0%, #0C6357 55%, var(--teal-deep) 100%);
      border-radius:var(--radius-lg);padding:56px 32px;text-align:center;position:relative;overflow:hidden;
      box-shadow:var(--shadow-lg);
    }
    .band::after{content:"";position:absolute;inset:0;background:radial-gradient(50% 80% at 80% 10%,rgba(127,227,207,.22),transparent 60%),radial-gradient(40% 70% at 10% 90%,rgba(59,130,196,.18),transparent 60%);pointer-events:none}
    .band .pill{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#CFF3EA;position:relative}
    .band .pill .dot{background:#7FE3CF}
    .band h2{color:#fff;font-size:clamp(1.9rem,4.4vw,2.9rem);margin-top:20px;position:relative}
    .band p{color:#C9E9E1;max-width:46ch;margin:16px auto 0;position:relative;font-size:1.08rem}

    form.subscribe{position:relative;margin:32px auto 0;max-width:480px}
    .input-row{display:flex;gap:10px;background:#fff;border-radius:999px;padding:7px;box-shadow:0 20px 50px -20px rgba(0,0,0,.4)}
    @media(max-width:520px){.input-row{flex-direction:column;border-radius:22px;padding:12px}}
    .input-row input[type=email]{flex:1;border:0;background:transparent;padding:12px 18px;font-size:1rem;font-family:inherit;color:var(--ink);min-width:0}
    .input-row input::placeholder{color:#8CA39E}
    .input-row .btn{padding:14px 24px}
    @media(max-width:520px){.input-row .btn{justify-content:center}}
    .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
    .form-msg{min-height:24px;margin-top:14px;font-size:.95rem;color:#DFF6EF;position:relative;font-weight:500}
    .form-msg.error{color:#FFD9C7}
    .form-msg.ok{color:#B7F0DD}
    .band small{display:block;color:#9FCFC4;font-size:.82rem;margin-top:10px;position:relative}

    /* --- Footer --- */
    footer.site{padding:52px 0 40px;border-top:1px solid var(--line);background:var(--mist)}
    .foot{display:flex;flex-direction:column;gap:22px}
    @media(min-width:720px){.foot{flex-direction:row;justify-content:space-between;align-items:flex-start}}
    .foot .brand .logo{font-size:1.25rem}
    .foot .brand p{color:var(--ink-faint);font-size:.92rem;margin-top:12px;max-width:34ch}
    .foot nav{display:flex;gap:26px;font-size:.95rem;color:var(--ink-soft)}
    .foot nav a{transition:color .15s}
    .foot nav a:hover{color:var(--teal-deep)}
    .foot .copy{color:var(--ink-faint);font-size:.86rem;margin-top:26px;border-top:1px solid var(--line);padding-top:20px}

    /* --- Reveal animation --- */
    .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
    .reveal.in{opacity:1;transform:none}
    @media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}

    /* subtle float on hero card */
    @media (prefers-reduced-motion: no-preference){
      .mock .card-dash{animation:floaty 7s ease-in-out infinite}
      @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
    }

/* --- Checklist-voorproefje (accordeon) --- */
.checklist{max-width:760px;margin-top:44px;display:flex;flex-direction:column;gap:12px}
.ph{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.ph.open{border-color:#CBDDD7;box-shadow:var(--shadow-md)}
.ph-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;background:transparent;border:0;cursor:pointer;font-family:"Instrument Sans",sans-serif;text-align:left;padding:18px 20px;color:var(--ink)}
.ph-title{display:flex;align-items:center;gap:14px;font-weight:600;font-size:1.08rem;min-width:0}
.ph-n{flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:var(--mint);color:var(--teal-deep);font-family:"Bricolage Grotesque";font-weight:700;font-size:.95rem;display:grid;place-items:center}
.ph-meta{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.ph-count{font-size:.85rem;font-weight:600;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.ph-count.complete{color:var(--teal-deep)}
.ph-chev{width:20px;height:20px;color:var(--ink-faint);transition:transform .3s var(--ease)}
.ph.open .ph-chev{transform:rotate(180deg)}
.ph-body{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.ph-bar{height:6px;border-radius:999px;background:var(--mint-soft);overflow:hidden;margin:0 20px 4px}
.ph-bar span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--teal),#3FC3A9);transition:width .4s var(--ease)}
.ci-list{padding:6px 12px 14px;display:flex;flex-direction:column;gap:2px}
.ci{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:transparent;border:0;cursor:pointer;font-family:inherit;padding:10px 8px;border-radius:10px;transition:background-color .16s}
.ci:hover{background:var(--mint-soft)}
.ci-tick{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:2px solid #D3E1DC;color:transparent;transition:.18s}
.ci.done .ci-tick{background:var(--teal);border-color:var(--teal);color:#fff}
.ci-tick svg{width:12px;height:12px}
.ci .lbl{font-size:1rem;color:var(--ink);line-height:1.45}
.ci.done .lbl{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:#B7CCC5}
@media (prefers-reduced-motion: reduce){.ph-body{transition:none}.ph-chev{transition:none}.ph-bar span{transition:none}}

/* --- Preview-balk (alleen zichtbaar in besloten modus, ingelogd) --- */
.preview-bar{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;
  background:var(--teal-ink);color:#EAF9F5;font-size:.88rem;padding:9px 16px;text-align:center}
.preview-bar strong{color:#fff}
.preview-bar a{color:#9FE7D7;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.preview-bar a:hover{color:#fff}
