/* ==========================================================================
   MijnGaragedeur — homepagina + configurator
   Design tokens uit het MijnGaragedeur design system.
   Volgorde: tokens → reset/basis → componenten → secties → responsive
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens — kleur
   -------------------------------------------------------------------------- */
:root{
  /* graphite */
  --ink-900:#14181a;--ink-800:#1e2426;--ink-700:#293133;--ink-600:#3d4649;--ink-500:#5c6669;
  --ink-400:#8a9397;--ink-300:#b7bec0;--ink-200:#d8dcdd;--ink-100:#ebeeee;--ink-050:#f5f6f6;
  --white:#ffffff;
  /* brass */
  --brass-700:#6e5326;--brass-600:#8a6a32;--brass-500:#a17e3e;--brass-400:#be9c5c;
  --brass-300:#d8be8c;--brass-200:#e8d8ba;--brass-100:#f4ecdc;
  /* paper */
  --paper-000:#ffffff;--paper-050:#faf9f6;--paper-100:#f2f0ea;--paper-200:#e5e2d9;
  /* status */
  --green-600:#2e6b4f;--green-100:#e4efe9;
  --amber-600:#b4781f;--amber-100:#f8efdd;
  --red-600:#a32626;--red-100:#f7e6e6;
  --blue-600:#3e5c76;--blue-100:#e6ebf0;

  /* tekst */
  --text-strong:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-subtle:var(--ink-400);
  --text-inverse:var(--white);
  --text-accent:var(--brass-600);
  --text-link:var(--ink-900);
  --text-link-hover:var(--brass-600);

  /* vlakken */
  --surface-page:var(--white);
  --surface-card:var(--white);
  --surface-sunken:var(--ink-050);
  --surface-tint:var(--paper-050);
  --surface-tint-strong:var(--paper-100);
  --surface-inverse:var(--ink-900);

  /* randen */
  --border-hairline:var(--ink-200);
  --border-quiet:var(--ink-100);
  --border-medium:var(--ink-300);
  --border-strong:var(--ink-700);
  --border-accent:var(--brass-500);

  /* acties */
  --action-primary-bg:var(--ink-900);
  --action-primary-bg-hover:var(--ink-700);
  --action-primary-bg-active:var(--ink-800);
  --action-primary-fg:var(--white);
  --action-accent-bg:var(--brass-500);
  --action-accent-bg-hover:var(--brass-600);
  --action-accent-bg-active:var(--brass-700);
  --action-accent-fg:var(--white);
  --action-secondary-fg:var(--ink-900);
  --action-secondary-border:var(--ink-300);
  --action-secondary-border-hover:var(--ink-900);
  --action-secondary-bg-hover:var(--ink-050);
  --action-disabled-bg:var(--ink-100);
  --action-disabled-fg:var(--ink-400);
  --focus-ring:var(--brass-500);
  --focus-ring-width:2px;
  --focus-ring-offset:2px;

  --status-success-fg:var(--green-600);--status-success-bg:var(--green-100);
  --status-danger-fg:var(--red-600);--status-danger-bg:var(--red-100);
}

/* Deurkleuren — CarTeck kleurenkaart. Alleen voor swatches en deurweergave. */
:root{
  --ral-9016:#f1f1f1; --ral-9002:#e7ebda; --ral-7016:#293133; --ral-7039:#6b665f;
  --ral-7040:#9da3a6; --ral-9007:#878581; --ral-8014:#4a3b31; --ral-6009:#27352a;
  --ral-5011:#232c3f;
  --decor-golden-oak:#b4762e; --decor-winchester:#8a6a52; --decor-mahogany:#5a2b22;
}

/* Inverse scope: hero, CTA-band, footer. */
.mgd-inverse{
  --text-strong:var(--white);
  --text-body:rgba(255,255,255,.88);
  --text-muted:var(--ink-300);
  --text-subtle:var(--ink-400);
  --surface-page:var(--ink-900);
  --surface-card:var(--ink-800);
  --surface-sunken:var(--ink-800);
  --border-hairline:rgba(255,255,255,.14);
  --border-medium:rgba(255,255,255,.28);
  --border-strong:var(--white);
  --action-primary-bg:var(--white);
  --action-primary-bg-hover:var(--ink-100);
  --action-primary-fg:var(--ink-900);
  --action-secondary-fg:var(--white);
  --action-secondary-border:rgba(255,255,255,.34);
  --action-secondary-border-hover:var(--white);
  --action-secondary-bg-hover:rgba(255,255,255,.08);
  --text-link:var(--white);
  --text-link-hover:var(--brass-300);
  --text-accent:var(--brass-300);
}

/* --------------------------------------------------------------------------
   2. Tokens — typografie, ruimte, vorm, schaduw, beweging
   -------------------------------------------------------------------------- */
:root{
  --font-sans:"Figtree","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-display:"Figtree","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;

  --weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;
  --weight-bold:700;--weight-extrabold:800;--weight-black:900;

  --size-display-1:4.5rem;  --lh-display-1:1.02; --ls-display-1:-0.035em;
  --size-display-2:3.25rem; --lh-display-2:1.06; --ls-display-2:-0.03em;
  --size-display-3:2.5rem;  --lh-display-3:1.1;  --ls-display-3:-0.025em;
  --size-h1:2rem;     --lh-h1:1.15; --ls-h1:-0.02em;
  --size-h2:1.5rem;   --lh-h2:1.2;  --ls-h2:-0.015em;
  --size-h3:1.25rem;  --lh-h3:1.3;  --ls-h3:-0.01em;
  --size-h4:1.0625rem;--lh-h4:1.4;  --ls-h4:-0.005em;
  --size-body-lg:1.125rem;--lh-body-lg:1.6;
  --size-body:1rem;       --lh-body:1.65;
  --size-body-sm:0.875rem;--lh-body-sm:1.6;
  --size-caption:0.8125rem;--lh-caption:1.5;
  --size-overline:0.6875rem;--ls-overline:0.18em;--lh-overline:1.2;
  --size-spec:0.8125rem;--ls-spec:0.02em;
  --measure-prose:66ch;--measure-narrow:46ch;

  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;
  --space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;
  --space-11:80px;--space-12:96px;--space-13:128px;
  --section-y:96px;--section-y-tight:64px;
  --container-max:1280px;--container-narrow:820px;
  --control-h-sm:34px;--control-h-md:44px;--control-h-lg:54px;--control-pad-x:20px;

  --radius-none:0px;--radius-hair:2px;--radius-pill:999px;
  --radius-card:0px;--radius-control:0px;--radius-image:0px;

  --shadow-card:0 1px 2px rgba(20,24,26,.05), 0 10px 28px -16px rgba(20,24,26,.16);
  --shadow-raised:0 2px 4px rgba(20,24,26,.06), 0 18px 40px -20px rgba(20,24,26,.22);
  --scrim-bottom:linear-gradient(to top,rgba(20,24,26,.78) 0%,rgba(20,24,26,.45) 38%,rgba(20,24,26,0) 78%);
  --scrim-left:linear-gradient(to right,rgba(20,24,26,.74) 0%,rgba(20,24,26,.28) 46%,rgba(20,24,26,0) 80%);
  --blur-glass:saturate(120%) blur(14px);
  --glass-bg:rgba(255,255,255,.72);

  --dur-instant:80ms;--dur-fast:140ms;--dur-base:220ms;--dur-slow:380ms;
  --ease-standard:cubic-bezier(.2,.6,.2,1);
  --lift-hover:-2px;--press-scale:0.99;
}
@media (prefers-reduced-motion:reduce){
  :root{--dur-instant:1ms;--dur-fast:1ms;--dur-base:1ms;--dur-slow:1ms}
  *{scroll-behavior:auto !important}
}

/* --------------------------------------------------------------------------
   3. Reset en basis
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{
  margin:0;background:var(--surface-page);color:var(--text-body);
  font-family:var(--font-sans);font-size:var(--size-body);line-height:var(--lh-body);
  font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;text-wrap:pretty;
  overflow-x:hidden;
}
h1,h2,h3,h4{color:var(--text-strong);font-family:var(--font-display);margin:0;text-wrap:balance}
p{margin:0}
img,svg{display:block;max-width:100%}
a{color:var(--text-link);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}
a:hover{color:var(--text-link-hover)}
button{font-family:inherit}
:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}

.container{max-width:var(--container-max);margin:0 auto;padding-left:var(--space-7);padding-right:var(--space-7);width:100%}
.spec{font-family:var(--font-mono);font-size:var(--size-spec);letter-spacing:var(--ls-spec);font-variant-numeric:tabular-nums}
.overline{
  font-size:var(--size-overline);letter-spacing:var(--ls-overline);line-height:var(--lh-overline);
  text-transform:uppercase;font-weight:var(--weight-semibold);color:var(--text-muted);display:block;
}
.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;
}
.skip-link{
  position:absolute;left:var(--space-4);top:-100px;z-index:100;background:var(--ink-900);color:#fff;
  padding:var(--space-3) var(--space-5);font-size:var(--size-body-sm);font-weight:600;
}
.skip-link:focus{top:var(--space-4);color:#fff}

/* --------------------------------------------------------------------------
   4. Componenten — knoppen
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:var(--control-h-md);padding:0 var(--control-pad-x);
  font-family:var(--font-sans);font-size:var(--size-body-sm);font-weight:var(--weight-semibold);
  letter-spacing:-0.005em;border-radius:var(--radius-control);border:1px solid transparent;
  background:var(--action-primary-bg);color:var(--action-primary-fg);
  cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:background var(--dur-fast) var(--ease-standard),
             border-color var(--dur-fast) var(--ease-standard),
             color var(--dur-fast) var(--ease-standard),
             transform var(--dur-instant) var(--ease-standard);
}
.btn:hover{background:var(--action-primary-bg-hover);color:var(--action-primary-fg)}
.btn:active{background:var(--action-primary-bg-active);transform:scale(var(--press-scale))}
.btn--accent{background:var(--action-accent-bg);color:var(--action-accent-fg)}
.btn--accent:hover{background:var(--action-accent-bg-hover);color:var(--action-accent-fg)}
.btn--accent:active{background:var(--action-accent-bg-active)}
.btn--secondary{background:transparent;color:var(--action-secondary-fg);border-color:var(--action-secondary-border)}
.btn--secondary:hover{background:var(--action-secondary-bg-hover);color:var(--action-secondary-fg);border-color:var(--action-secondary-border-hover)}
.btn--ghost{background:transparent;color:var(--action-secondary-fg);border-color:transparent}
.btn--ghost:hover{background:var(--action-secondary-bg-hover);color:var(--action-secondary-fg)}
.btn--sm{height:var(--control-h-sm);padding:0 14px;font-size:var(--size-caption);gap:8px}
.btn--lg{height:var(--control-h-lg);padding:0 28px;font-size:var(--size-body);gap:12px}
.btn--block{display:flex;width:100%}
.btn[disabled],.btn[aria-disabled="true"]{cursor:not-allowed;background:var(--action-disabled-bg);color:var(--action-disabled-fg);border-color:transparent}

.icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:var(--control-h-sm);height:var(--control-h-sm);flex:none;
  background:transparent;border:1px solid transparent;color:var(--text-strong);cursor:pointer;
  border-radius:var(--radius-control);transition:background var(--dur-fast) var(--ease-standard);
}
.icon-btn:hover{background:var(--action-secondary-bg-hover)}

/* --------------------------------------------------------------------------
   5. Componenten — wordmark
   -------------------------------------------------------------------------- */
.wordmark{display:inline-flex;flex-direction:column;gap:3px;line-height:1;color:var(--text-strong);border:0}
.wordmark:hover{color:var(--text-strong)}
.wordmark__name{font-family:var(--font-display);font-size:21px;letter-spacing:-0.035em;white-space:nowrap}
.wordmark__name span:first-child{font-weight:var(--weight-light)}
.wordmark__name span:last-child{font-weight:var(--weight-extrabold)}
.wordmark__parent{
  font-size:8px;letter-spacing:0.16em;text-transform:uppercase;
  font-weight:var(--weight-medium);opacity:.6;white-space:nowrap;
}
.wordmark--sm .wordmark__name{font-size:18px}
.wordmark--light{color:var(--white)}

/* --------------------------------------------------------------------------
   6. Componenten — formulier
   -------------------------------------------------------------------------- */
.field{display:flex;flex-direction:column;gap:6px;width:100%}
.field__label{
  font-size:var(--size-caption);font-weight:var(--weight-semibold);
  color:var(--text-body);letter-spacing:-0.005em;
}
.field__label .req{color:var(--brass-600)}
.field__control{
  display:flex;align-items:center;gap:10px;height:var(--control-h-md);padding:0 14px;
  background:var(--surface-page);border:1px solid var(--border-medium);border-radius:var(--radius-hair);
  transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard);
}
.field__control:focus-within{border-color:var(--ink-900);box-shadow:0 0 0 3px rgba(161,126,62,.18)}
.field__control input{
  flex:1;min-width:0;border:none;outline:none;background:transparent;font:inherit;
  font-size:var(--size-body-sm);color:var(--text-strong);padding:0;
}
.field__control input::-webkit-outer-spin-button,
.field__control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.field__control input[type=number]{-moz-appearance:textfield}
.field__suffix{font-family:var(--font-mono);font-size:var(--size-spec);color:var(--text-subtle)}
.field__hint{font-size:var(--size-caption);color:var(--text-subtle)}
.field--invalid .field__control{border-color:var(--status-danger-fg)}
.field--invalid .field__hint{color:var(--status-danger-fg)}

/* keuzekaart: radio en checkbox */
.choice{
  display:flex;gap:12px;align-items:flex-start;cursor:pointer;position:relative;
  transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard);
}
.choice input{position:absolute;opacity:0;width:0;height:0}
.choice--card{
  padding:var(--space-4);border:1px solid var(--border-hairline);
  background:var(--surface-page);border-radius:var(--radius-control);
}
.choice--card:hover{border-color:var(--ink-500)}
.choice--card:has(input:checked){border-color:var(--ink-900);background:var(--surface-sunken)}
.choice--card:has(input:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}
.choice__mark{
  width:20px;height:20px;flex:0 0 auto;margin-top:1px;background:var(--surface-page);
  border:1px solid var(--border-medium);display:flex;align-items:center;justify-content:center;
  transition:all var(--dur-fast) var(--ease-standard);
}
.choice__mark--radio{border-radius:var(--radius-pill)}
.choice__mark--check{border-radius:var(--radius-hair);color:var(--white)}
.choice__mark--check svg{opacity:0;width:14px;height:14px}
.choice:hover .choice__mark{border-color:var(--ink-900)}
.choice input:checked ~ .choice__mark--radio{border:6px solid var(--ink-900)}
.choice input:checked ~ .choice__mark--check{background:var(--ink-900);border-color:var(--ink-900)}
.choice input:checked ~ .choice__mark--check svg{opacity:1}
.choice__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.choice__label{font-size:var(--size-body-sm);color:var(--text-body);font-weight:var(--weight-medium)}
.choice__desc{font-size:var(--size-caption);color:var(--text-subtle)}

/* kleurstaal */
.swatch{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0;
  background:transparent;border:none;cursor:pointer;text-align:left;position:relative;
}
.swatch__chip{
  width:48px;height:48px;border-radius:var(--radius-hair);
  box-shadow:inset 0 0 0 1px rgba(20,24,26,.16);
  transition:box-shadow var(--dur-fast) var(--ease-standard);
}
.swatch:hover .swatch__chip{box-shadow:inset 0 0 0 1px rgba(20,24,26,.28),0 0 0 1px var(--surface-page),0 0 0 2px var(--border-medium)}
.swatch:has(input:checked) .swatch__chip{box-shadow:0 0 0 1px var(--surface-page),0 0 0 3px var(--ink-900)}
.swatch:has(input:focus-visible) .swatch__chip{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:3px}
.swatch__meta{display:flex;flex-direction:column;gap:1px}
.swatch__name{font-size:var(--size-caption);font-weight:var(--weight-medium);color:var(--text-body)}
.swatch__code{font-family:var(--font-mono);font-size:var(--size-spec);color:var(--text-subtle)}

/* deurweergave (SVG) */
.door{display:block;width:100%;height:100%}

/* --------------------------------------------------------------------------
   7. Header
   -------------------------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:40;background:var(--glass-bg);
  -webkit-backdrop-filter:var(--blur-glass);backdrop-filter:var(--blur-glass);
  border-bottom:1px solid var(--border-hairline);
}
.site-header__inner{
  max-width:var(--container-max);margin:0 auto;padding:0 var(--space-7);height:76px;
  display:flex;align-items:center;gap:var(--space-8);
}
.site-nav{display:flex;gap:var(--space-6);margin-left:var(--space-4);font-size:var(--size-body-sm);font-weight:500}
.site-nav a{color:var(--text-muted)}
.site-nav a:hover,.site-nav a.is-active{color:var(--text-strong)}
.site-header__actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-4)}
.site-header__phone{font-family:var(--font-mono);font-size:var(--size-spec);color:var(--text-muted)}
.site-header__phone:hover{color:var(--text-strong)}
.nav-toggle{display:none}

/* --------------------------------------------------------------------------
   8. Hero
   -------------------------------------------------------------------------- */
.hero{
  position:relative;min-height:600px;display:flex;align-items:flex-end;
  background:var(--ink-800);overflow:hidden;
}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__scrim{position:absolute;inset:0;pointer-events:none}
.hero__scrim--left{background:var(--scrim-left)}
.hero__scrim--bottom{background:var(--scrim-bottom)}
.hero__inner{
  position:relative;max-width:var(--container-max);margin:0 auto;width:100%;
  padding:var(--space-12) var(--space-7) var(--space-10);
}
.hero__title{
  margin:var(--space-4) 0 0;font-size:var(--size-display-1);line-height:var(--lh-display-1);
  letter-spacing:var(--ls-display-1);font-weight:var(--weight-extrabold);color:#fff;max-width:16ch;
}
.hero__lead{
  margin:var(--space-5) 0 0;font-size:var(--size-body-lg);line-height:var(--lh-body-lg);
  color:rgba(255,255,255,.88);max-width:var(--measure-narrow);
}
.hero__actions{margin-top:var(--space-8);display:flex;gap:var(--space-3);flex-wrap:wrap}
.hero__facts{
  margin-top:var(--space-7);display:flex;gap:var(--space-6);flex-wrap:wrap;
  font-size:var(--size-body-sm);color:rgba(255,255,255,.88);
}
.hero__facts .sep{color:var(--ink-400)}
.hero .overline{color:#fff}

/* --------------------------------------------------------------------------
   9. USP-strip
   -------------------------------------------------------------------------- */
.usps{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--border-hairline);border-bottom:1px solid var(--border-hairline);
}
.usps__item{
  padding:var(--space-7);border-right:1px solid var(--border-hairline);
  display:flex;flex-direction:column;gap:var(--space-2);
}
.usps__item:last-child{border-right:none}
.usps__item h3{font-size:var(--size-h4);font-weight:var(--weight-bold)}
.usps__item p{font-size:var(--size-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}

/* --------------------------------------------------------------------------
   10. Sectiekoppen
   -------------------------------------------------------------------------- */
.section{padding:var(--section-y) 0}
.section--tight{padding:var(--section-y-tight) 0}
.section--tint{background:var(--surface-tint)}
.section--page{background:var(--surface-page)}
.section__head{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8);max-width:var(--measure-prose)}
.section__title{font-size:var(--size-display-2);line-height:var(--lh-display-2);letter-spacing:var(--ls-display-2);font-weight:var(--weight-extrabold)}
.section__title--sm{font-size:var(--size-display-3);line-height:var(--lh-display-3);letter-spacing:var(--ls-display-3)}
.section__lead{font-size:var(--size-body-lg);line-height:var(--lh-body-lg);color:var(--text-muted)}

/* --------------------------------------------------------------------------
   11. Configurator
   -------------------------------------------------------------------------- */
.config{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:var(--space-7);align-items:start}
.config__form{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}

.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface-card);border:1px solid var(--border-hairline)}
.steps__btn{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:var(--space-5);
  background:var(--surface-card);border:none;border-right:1px solid var(--border-hairline);
  border-bottom:2px solid transparent;cursor:pointer;text-align:left;
  transition:background var(--dur-fast) var(--ease-standard);
}
.steps__btn:last-child{border-right:none}
.steps__btn:hover{background:var(--surface-tint)}
.steps__num{font-family:var(--font-mono);font-size:var(--size-spec);letter-spacing:var(--ls-spec);color:var(--text-subtle)}
.steps__label{font-size:var(--size-body-sm);font-weight:var(--weight-semibold);color:var(--text-muted)}
.steps__btn.is-done .steps__num{color:var(--status-success-fg)}
.steps__btn.is-done .steps__label{color:var(--text-strong)}
.steps__btn.is-active{background:var(--surface-tint);border-bottom-color:var(--ink-900)}
.steps__btn.is-active .steps__num{color:var(--brass-600)}
.steps__btn.is-active .steps__label{color:var(--text-strong)}

.panel{background:var(--surface-card);border:1px solid var(--border-hairline);padding:var(--space-7)}
.panel__head{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-5)}
.panel__num{font-family:var(--font-mono);font-size:var(--size-spec);letter-spacing:var(--ls-spec);color:var(--brass-600)}
.panel__title{font-size:var(--size-h3);font-weight:var(--weight-bold)}
.panel__note{margin:var(--space-5) 0 0;font-size:var(--size-caption);color:var(--text-subtle)}
.panel-stack{display:grid;gap:var(--space-6)}
.step-pane[hidden]{display:none}

.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-5)}
.grid-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-5)}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-3)}
.grid-rows{display:grid;gap:var(--space-3)}

.presets{margin-top:var(--space-5);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.presets__label{font-size:var(--size-caption);color:var(--text-muted)}
.presets__list{display:flex;gap:var(--space-2);flex-wrap:wrap}
.preset{
  padding:6px 12px;background:var(--surface-page);border:1px solid var(--border-medium);
  border-radius:var(--radius-hair);color:var(--text-body);cursor:pointer;
  font-family:var(--font-mono);font-size:var(--size-spec);letter-spacing:var(--ls-spec);
  transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard);
}
.preset:hover{background:var(--ink-050);border-color:var(--ink-900)}
.preset.is-active{border-color:var(--ink-900);background:var(--ink-050)}

.swatches{display:flex;gap:var(--space-6);flex-wrap:wrap}
.divider-top{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-quiet)}

.config__nav{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}
.config__progress{font-family:var(--font-mono);font-size:var(--size-spec);color:var(--text-muted);margin-left:auto}

.form-actions{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.form-actions__note{font-size:var(--size-caption);color:var(--text-subtle);max-width:34ch}
.form-error{
  margin:var(--space-4) 0 0;font-size:var(--size-body-sm);color:var(--status-danger-fg);
  background:var(--status-danger-bg);padding:var(--space-3) var(--space-4);
}

/* samenvatting */
.summary{position:sticky;top:96px;min-width:0}
.summary__card{background:var(--surface-card);border:1px solid var(--border-hairline);box-shadow:var(--shadow-card)}
.summary__media{position:relative;height:230px;background:var(--surface-sunken);overflow:hidden}
.summary__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 87%}
.summary__caption{
  padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-quiet);
  display:flex;align-items:center;gap:var(--space-3);
}
.summary__chip{width:100%;max-width:56px;height:8px;display:block;flex:none}
.summary__caption span:last-child{font-family:var(--font-mono);font-size:var(--size-spec);color:var(--text-muted)}
.summary__lines{padding:var(--space-6);display:grid;gap:var(--space-3)}
.summary__line{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4)}
.summary__line dt{font-size:var(--size-body-sm);color:var(--text-muted)}
.summary__line dd{
  margin:0;font-family:var(--font-mono);font-size:var(--size-spec);letter-spacing:var(--ls-spec);
  font-variant-numeric:tabular-nums;color:var(--text-strong);text-align:right;
}
.summary__price{padding:var(--space-6);border-top:1px solid var(--border-hairline);background:var(--surface-tint)}
.summary__price-row{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4)}
.summary__amount{
  font-family:var(--font-mono);font-size:36px;font-weight:var(--weight-semibold);
  color:var(--text-strong);letter-spacing:-0.02em;margin-top:6px;font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.summary__vat{font-size:var(--size-caption);color:var(--text-muted);text-align:right}
.summary__disclaimer{margin:var(--space-4) 0 0;font-size:var(--size-caption);line-height:1.5;color:var(--text-muted)}
.summary__status{padding:var(--space-6);border-top:1px solid var(--border-hairline);display:flex;flex-direction:column;gap:var(--space-3)}
.summary__status p{font-size:var(--size-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}

/* --------------------------------------------------------------------------
   12. Modellen
   -------------------------------------------------------------------------- */
.models{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-6)}
.model{border:1px solid var(--border-hairline);background:var(--surface-card);display:flex;flex-direction:column}
.model__media{height:180px;background:var(--surface-sunken);overflow:hidden}
.model__body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}
.model__spec{font-family:var(--font-mono);font-size:var(--size-spec);color:var(--text-muted)}
.model__body h3{font-size:var(--size-h4);font-weight:var(--weight-bold)}
.model__body p{font-size:var(--size-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}

/* --------------------------------------------------------------------------
   13. Werkwijze
   -------------------------------------------------------------------------- */
.howto{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border-hairline)}
.howto__step{
  padding:var(--space-7);border-right:1px solid var(--border-hairline);
  display:flex;flex-direction:column;gap:var(--space-3);
}
.howto__step:first-child{padding-left:0}
.howto__step:last-child{border-right:none}
.howto__num{font-family:var(--font-mono);font-size:var(--size-spec);letter-spacing:var(--ls-spec);color:var(--brass-600)}
.howto__step h3{font-size:var(--size-h4);font-weight:var(--weight-bold)}
.howto__step p{font-size:var(--size-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}

/* --------------------------------------------------------------------------
   14. Beoordelingen
   -------------------------------------------------------------------------- */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-7)}
.reviews__score{display:flex;flex-direction:column;gap:var(--space-3)}
.reviews__score .figure{font-family:var(--font-mono);font-size:28px;font-weight:var(--weight-semibold);color:var(--text-strong)}
.reviews__score p{font-size:var(--size-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}
.review{border-left:1px solid var(--border-hairline);padding-left:var(--space-7);display:flex;flex-direction:column;gap:var(--space-3)}
.review p{font-size:var(--size-body);line-height:var(--lh-body);color:var(--text-body)}
.review footer{font-size:var(--size-caption);color:var(--text-muted)}

/* --------------------------------------------------------------------------
   15. CTA-band en footer
   -------------------------------------------------------------------------- */
.cta-band{background:var(--ink-900);padding:var(--section-y-tight) 0}
.cta-band__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-9);flex-wrap:wrap}
.cta-band__text{max-width:var(--measure-narrow)}
.cta-band__text .overline{color:var(--brass-300)}
.cta-band__text h2{margin:var(--space-3) 0 0;font-size:var(--size-display-3);line-height:var(--lh-display-3);letter-spacing:var(--ls-display-3);font-weight:var(--weight-extrabold);color:#fff}
.cta-band__text p{margin:var(--space-4) 0 0;color:rgba(255,255,255,.88);font-size:var(--size-body)}
.cta-band__actions{display:flex;gap:var(--space-3);flex-wrap:wrap}

.site-footer{background:var(--ink-900)}
.site-footer__inner{
  padding:var(--space-8) var(--space-7);display:flex;justify-content:space-between;align-items:center;
  gap:var(--space-6);flex-wrap:wrap;border-top:1px solid var(--border-hairline);
  max-width:var(--container-max);margin:0 auto;
}
.site-footer__claims{font-size:var(--size-caption);color:var(--ink-300)}

/* --------------------------------------------------------------------------
   16. Mobiele prijsbalk
   -------------------------------------------------------------------------- */
.price-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:30;
  background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-glass);backdrop-filter:var(--blur-glass);
  border-top:1px solid var(--border-hairline);padding:var(--space-4) var(--space-5);
  align-items:center;gap:var(--space-4);
}
.price-bar__amount{font-family:var(--font-mono);font-size:20px;font-weight:var(--weight-semibold);color:var(--text-strong)}
.price-bar .btn{margin-left:auto;flex:none}

/* --------------------------------------------------------------------------
   17. Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1180px){
  :root{--size-display-1:3.5rem;--size-display-2:2.75rem}
  .config{grid-template-columns:minmax(0,1fr)}
  .summary{position:static}
  .summary__card{max-width:560px}
}
@media (max-width:900px){
  .usps{grid-template-columns:1fr 1fr}
  .usps__item:nth-child(2n){border-right:none}
  .usps__item:nth-child(-n+2){border-bottom:1px solid var(--border-hairline)}
  .howto{grid-template-columns:1fr 1fr}
  .howto__step{padding-left:var(--space-7)}
  .howto__step:first-child{padding-left:var(--space-7)}
  .howto__step:nth-child(2n){border-right:none}
  .howto__step:nth-child(-n+2){border-bottom:1px solid var(--border-hairline)}
  .review{border-left:none;padding-left:0;border-top:1px solid var(--border-hairline);padding-top:var(--space-5)}
}
@media (max-width:760px){
  :root{
    --size-display-1:34px;--lh-display-1:1.08;--ls-display-1:-0.03em;
    --size-display-2:28px;--lh-display-2:1.12;--ls-display-2:-0.025em;
    --size-display-3:24px;--lh-display-3:1.15;
    --section-y:48px;--section-y-tight:40px;
  }
  .container{padding-left:var(--space-5);padding-right:var(--space-5)}
  html{scroll-padding-top:70px}

  .site-header__inner{height:60px;padding:0 var(--space-5);gap:var(--space-3)}
  .site-header__phone,.site-header .btn--accent{display:none}
  .site-nav{
    display:none;position:absolute;left:0;right:0;top:60px;flex-direction:column;gap:0;
    background:var(--surface-page);border-bottom:1px solid var(--border-hairline);
    padding:var(--space-2) var(--space-5) var(--space-5);
  }
  .site-nav.is-open{display:flex}
  .site-nav a{padding:var(--space-3) 0;font-size:var(--size-body);border-bottom:1px solid var(--border-quiet)}
  .nav-toggle{display:inline-flex}
  .site-header__actions{gap:var(--space-2)}

  .hero{min-height:480px}
  .hero__inner{padding:var(--space-6) var(--space-5)}
  .hero__scrim--left{background:none}
  .hero__scrim--bottom{background:linear-gradient(to top,rgba(20,24,26,.9) 0%,rgba(20,24,26,.88) 45%,rgba(20,24,26,.4) 66%,rgba(20,24,26,0) 88%)}
  .hero__title{margin-top:var(--space-3);max-width:none}
  .hero__lead{font-size:var(--size-body-sm);line-height:var(--lh-body-sm);margin-top:var(--space-4)}
  .hero__actions{margin-top:var(--space-5);display:grid;gap:var(--space-3)}
  .hero__facts{margin-top:var(--space-4);font-family:var(--font-mono);font-size:var(--size-spec);gap:var(--space-3)}
  /* op een telefoon één bewijsregel in plaats van vier */
  .hero__facts > *:nth-child(n+2){display:none}

  .usps__item{padding:var(--space-5)}
  .usps__item p{display:none}

  .panel{padding:var(--space-5)}
  .panel__title{font-size:var(--size-h4)}
  .steps__btn{padding:var(--space-4) var(--space-3)}
  .steps__label{font-size:var(--size-caption)}
  .grid-cards{grid-template-columns:1fr}
  .swatches{gap:var(--space-4)}
  .swatch__chip{width:40px;height:40px}
  .swatch__name{display:none}

  .summary__media{height:180px}
  .summary__amount{font-size:28px}

  .models{grid-template-columns:1fr 1fr;gap:var(--space-4)}
  .model__media{height:120px}
  .model__body{padding:var(--space-4);gap:var(--space-1)}
  .model__body p{display:none}

  .howto{grid-template-columns:1fr;border-top:1px solid var(--border-hairline)}
  .howto__step{
    flex-direction:row;gap:var(--space-4);padding:var(--space-5) 0;
    border-right:none;border-bottom:1px solid var(--border-hairline);
  }
  .howto__step:first-child,.howto__step:nth-child(2n){padding-left:0;border-right:none}
  .howto__step:last-child{border-bottom:none}
  .howto__body h3{font-size:var(--size-body-sm)}

  .cta-band__inner{gap:var(--space-6)}
  .cta-band__actions{display:grid;width:100%;gap:var(--space-3)}
  .cta-band__actions .btn{width:100%}

  .price-bar{display:flex}
  body{padding-bottom:84px}
  .site-footer__inner{padding:var(--space-7) var(--space-5);flex-direction:column;align-items:flex-start;gap:var(--space-4)}
}

/* --------------------------------------------------------------------------
   18. Fieldset-reset (panelen in de configurator)
   -------------------------------------------------------------------------- */
fieldset.panel{margin:0;min-width:0}
fieldset.panel > legend.panel__head{
  display:flex;align-items:baseline;gap:var(--space-3);
  padding:0;margin-bottom:var(--space-5);float:none;
}
