/* Bestel- en briefingpagina's (gebruikt de tokens en ws-* componenten van het thema). */
.ws-flow-page .wp-site-blocks{min-height:100vh}
.ws-flow-header{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:50}
.admin-bar .ws-flow-header{top:var(--wp-admin--admin-bar--height,32px)}
.ws-flow-header__inner{height:64px;display:flex;align-items:center;gap:20px}
.ws-flow-header__right{margin-left:auto;display:inline-flex;gap:8px;align-items:center;font-size:var(--fs-xs);color:var(--text-muted)}
.ws-flow-header__ctx{padding-left:20px;border-left:1px solid var(--border-default);font-size:var(--fs-small);color:var(--text-muted)}
.ws-flow-header__later{margin-left:8px}
.ws-flow-save{display:inline-flex;gap:6px;align-items:center}
.ws-flow-progress{padding:0 var(--gutter) 12px;display:grid;gap:8px;max-width:var(--container);margin:0 auto}
.ws-flow-progress[hidden]{display:none}
.ws-flow-progress__row{display:flex;justify-content:space-between;font-size:var(--fs-xs)}
.ws-flow-progress__row strong{color:var(--text-strong)}
.ws-flow-progress__bar{height:4px;border-radius:2px;background:var(--sand-200);overflow:hidden}
.ws-flow-progress__bar i{display:block;height:100%;background:var(--ink-900);border-radius:2px;transition:width var(--dur-slow) var(--ease-out)}
@media (max-width:999px){.ws-flow-header__ctx,.ws-flow-header__later{display:none}}
@media (max-width:359px){.ws-flow-header__right{display:none}}
.ws-flow-main{padding-top:clamp(24px,4vw,48px);padding-bottom:64px}
.ws-flow-page .ws-main{padding:0}
.ws-h1{font-size:var(--fs-h1)}.ws-h2{font-size:var(--fs-h2)}

/* Knoppen (ws-btn uit het ontwerpsysteem) */
.ws-btn--arrow::after,.ws-btn--back::before{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:var(--ws-icon) center/contain no-repeat;mask:var(--ws-icon) center/contain no-repeat;transition:transform var(--dur-base) var(--ease-out)}
.ws-btn--lg.ws-btn--arrow::after{width:20px;height:20px}
.ws-btn--arrow:hover::after{transform:translateX(3px)}
.ws-btn.is-loading::after{animation:ws-spin .7s linear infinite;-webkit-mask:none;mask:none;background:transparent;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;width:1em;height:1em}
.ws-iconbtn .ws-icon{width:20px;height:20px}
.ws-iconbtn--sm .ws-icon{width:18px;height:18px}

/* Checkout */
.ws-checkout{display:grid;gap:clamp(24px,4vw,40px)}
.ws-checkout__stepper{max-width:760px}
.ws-checkout__layout{display:flex;flex-wrap:wrap;gap:32px clamp(32px,4vw,64px);align-items:flex-start}
/* Gridkolommen met minimum 0: anders groeit de kolom mee met de min-content van een pakketkaart (prijs + btw-suffix) en wordt de pagina op 320–390 px breder dan het venster. Flex-basis begrensd op 100%, zodat de kolommen op smalle schermen niet breder willen zijn dan de container. */
.ws-checkout__main{flex:1.8 1 min(100%,480px);min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.ws-checkout__aside{flex:1 1 min(100%,320px);min-width:0;position:sticky;top:96px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.admin-bar .ws-checkout__aside{top:128px}
.ws-checkout__title{display:grid;gap:8px}
.ws-checkout__title h1{font-size:var(--fs-h2)}
.ws-radio-group{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.ws-check--card .ws-check__text{flex:1;min-width:0}
.ws-check__aside{font-weight:600;color:var(--text-strong);white-space:nowrap}
/* Smalle schermen: prijs + btw-suffix onder de tekst (uitgelijnd met de tekst), zodat een pakketkaart nooit breder wordt dan het venster. */
@media (max-width:480px){.ws-check--card{flex-wrap:wrap}.ws-check--card .ws-check__aside{flex:1 0 100%;padding-left:32px;white-space:normal;line-height:1.3}}
.ws-addon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.ws-addon-included{padding:18px;border:1px dashed var(--border-default);border-radius:var(--radius-card);display:flex;gap:12px;align-items:flex-start}
.ws-addon-included .ws-icon{color:var(--polder-600);margin-top:2px}
.ws-addon-included span{display:grid;gap:4px;flex:1}
.ws-addon-card{display:grid;gap:12px;cursor:default}
.ws-addon-card label{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.ws-addon-card__row{display:flex;justify-content:space-between;gap:12px}
.ws-addon-card__row strong{font-weight:600}
.ws-addon-card__row span{font-weight:600;white-space:nowrap}
.ws-qty{display:flex;align-items:center;gap:8px;padding-left:34px}
.ws-qty output{min-width:28px;text-align:center;font-weight:600;color:var(--text-strong)}
.ws-qty .ws-small{color:var(--text-muted)}
.ws-zorg-box{background:var(--bg-subtle);border-radius:var(--radius-card);padding:20px 22px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.ws-zorg-box__text{display:grid;gap:4px;max-width:440px}
.ws-zorg-box__text>span:first-child{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ws-zorg-box__text strong{color:var(--text-strong)}
.ws-form-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:clamp(20px,3vw,32px);display:grid;gap:22px}
.ws-form-card .ws-field{display:grid;gap:8px}
.ws-form-card__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:22px}
.ws-form-card__grid--sm{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
.ws-form-card__rule{height:1px;background:var(--border-subtle)}
.ws-control--icon .ws-icon{position:absolute;left:14px;color:var(--text-muted);pointer-events:none}
.ws-checkout__nav{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-top:4px}
.ws-checkout__nav .ws-spacer{flex:1}
.ws-review-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ws-review-row .ws-linkbtn{background:none;border:0;padding:0;font:inherit;font-size:var(--fs-small);height:fit-content;cursor:pointer;color:var(--text-strong);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.22em}
.ws-review-row .ws-linkbtn:hover{color:var(--signal-700)}
.ws-terms a{color:var(--text-strong)}
/* Let op: het thema kent ook een .ws-summary (kaartenraster, theme.css); hier expliciet één kolom afdwingen. */
.ws-checkout .ws-summary{background:var(--bg-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-md);padding:28px;display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.ws-summary__lines{display:grid;gap:10px}
.ws-summary__line{display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-small);color:var(--text-strong)}
.ws-summary__line span:last-child{white-space:nowrap}
.ws-summary__line--muted{color:var(--text-muted)}
.ws-summary__rule{height:1px;background:var(--border-subtle)}
.ws-summary__total{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-weight:600;color:var(--text-strong)}
.ws-summary__total span:last-child{font-size:1.125rem}
.ws-summary__today{background:var(--sand-100);border-radius:10px;padding:14px 16px;display:grid;gap:8px}
.ws-summary__today-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.ws-summary__today-row strong{font-weight:600;color:var(--text-strong)}
.ws-summary__today-row strong small{font-weight:400;color:var(--text-muted);font-size:1em}
.ws-summary__amount{font-family:var(--font-display);font-weight:600;font-size:1.5rem;letter-spacing:-.02em;color:var(--text-strong)}
/* Bedragen nooit afbreken tussen euroteken en getal; bij weinig ruimte gaat het hele bedrag naar een eigen regel. */
.ws-summary__amount,.ws-summary__total span:last-child,.ws-summary__rest span:last-child,.ws-summary__line span:last-child,.ws-project-card__dl dd,.ws-flow-bottombar__text span:last-child{white-space:nowrap}
.ws-summary__today-row,.ws-summary__total,.ws-summary__rest{flex-wrap:wrap}
.ws-summary__line--discount{color:var(--polder-700)}
.ws-summary__line--discount span:first-child{display:inline-flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ws-summary .ws-linkbtn{background:none;border:0;padding:0;font:inherit;font-size:var(--fs-xs);cursor:pointer;color:var(--text-muted);text-decoration:underline;text-underline-offset:.2em}
.ws-summary .ws-linkbtn:hover{color:var(--text-strong)}
.ws-coupon{display:grid;gap:8px}
.ws-coupon__toggle{background:none;border:0;padding:0;font:inherit;font-size:var(--fs-small);cursor:pointer;color:var(--text-strong);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.22em;justify-self:start}
.ws-coupon__toggle:hover{color:var(--signal-700)}
.ws-coupon__row{display:flex;gap:8px;align-items:stretch}
.ws-coupon__row .ws-input{flex:1;min-width:0;text-transform:uppercase}
.ws-coupon__row .ws-input::placeholder{text-transform:none}
.ws-coupon__row .ws-btn{flex:none}
.ws-coupon .ws-error{font-size:var(--fs-xs)}
.ws-coupon .ws-help{font-size:var(--fs-xs)}
.ws-coupon__remove{justify-self:start;font-size:var(--fs-xs)}
.ws-summary__rest{display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-small)}
.ws-summary__usps{list-style:none;margin:0;padding:0 4px;display:grid;gap:10px;font-size:var(--fs-small)}
.ws-summary__usps li{display:flex;gap:10px;align-items:center}
.ws-summary__usps .ws-icon{color:var(--polder-600);width:18px;height:18px}
.ws-flow-bottombar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--bg-surface);border-top:1px solid var(--border-subtle);box-shadow:0 -8px 24px -12px rgba(16,27,48,.18);padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px}
.ws-flow-bottombar[hidden]{display:none}
.ws-flow-bottombar__text{display:grid;line-height:1.25;flex:1;min-width:0}
.ws-flow-bottombar__text span:first-child{font-size:var(--fs-xs);color:var(--text-muted)}
.ws-flow-bottombar__text span:last-child{font-weight:600;color:var(--text-strong);font-size:1.0625rem}
.ws-flow-bottombar .ws-btn--full{flex:1}
@media (max-width:767px){
  .ws-checkout__stepper,.ws-checkout__nav{display:none}
  .ws-checkout__aside{position:static;order:2}
  .ws-checkout{padding-bottom:96px}
  .ws-briefing{padding-bottom:88px}
}
@media (min-width:768px){.ws-flow-bottombar{display:none}}
.ws-form-error{font-size:var(--fs-small);color:var(--text-danger);font-weight:500;display:flex;gap:8px;align-items:flex-start}
.ws-form-error::before{content:"";width:16px;height:16px;flex:none;margin-top:2px;background:currentColor;-webkit-mask:var(--ws-icon) center/contain no-repeat;mask:var(--ws-icon) center/contain no-repeat}
.ws-payment-note{font-size:var(--fs-xs);color:var(--text-muted)}
.ws-sim-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--radius-pill);background:var(--warning-100);color:var(--warning-700);font-size:11px;font-weight:600;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}

/* Simulatie en bevestiging */
.ws-sim-banner{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-md);background:var(--warning-100);color:var(--warning-700);border:1px solid var(--warning-500);font-size:var(--fs-small)}
.ws-sim-banner .ws-icon{flex:none;margin-top:2px}
.ws-sim-banner--sm{margin-bottom:24px}
.ws-sim-form{display:flex;flex-wrap:wrap;gap:12px}
.ws-onboarding{display:grid;gap:40px;padding-top:clamp(40px,7vw,96px);padding-bottom:96px}
.ws-onboarding__head{justify-items:start}
.ws-icon-tile--56{width:56px;height:56px;border-radius:14px}
.ws-icon-tile--success{background:var(--polder-100);color:var(--polder-700)}
.ws-icon-tile--danger{background:var(--danger-100);color:var(--danger-700)}
.ws-project-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-card);overflow:hidden}
.ws-project-card__head{padding:24px 28px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--border-subtle)}
.ws-project-card__name{font-weight:600;color:var(--text-strong);font-size:var(--fs-h4)}
.ws-project-card__dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
.ws-project-card__dl>div{padding:20px 28px;display:grid;gap:4px}
.ws-project-card__dl>div+div{border-left:1px solid var(--border-subtle)}
.ws-project-card__dl dt{font-size:var(--fs-xs);color:var(--text-muted)}
.ws-project-card__dl dd{margin:0;font-weight:600;color:var(--text-strong);font-size:1.25rem}
.ws-project-card__dl dd.is-paid{color:var(--polder-700)}
.ws-project-card__dl dd.ws-xs{font-size:var(--fs-xs);font-weight:400}
.ws-project-card__foot{padding:0 28px 20px;margin:0}
.ws-onboarding__next{padding-top:32px;border-top:1px solid var(--border-subtle)}
@media (max-width:640px){.ws-project-card__dl>div+div{border-left:0;border-top:1px solid var(--border-subtle)}}

/* Briefing */
.ws-briefing{padding-top:clamp(20px,4vw,48px);display:flex;gap:clamp(32px,4vw,64px);align-items:flex-start}
.ws-briefing__aside{flex:0 0 280px;position:sticky;top:104px;display:grid;gap:24px}
.admin-bar .ws-briefing__aside{top:136px}
.ws-briefing__main{flex:1 1 0;min-width:0;max-width:760px;padding-bottom:80px}
@media (max-width:999px){.ws-briefing__aside{display:none}}
.ws-bprog{display:grid;gap:10px}
.ws-bprog__row{display:flex;justify-content:space-between;align-items:baseline}
.ws-bprog__pct{font-family:var(--font-display);font-weight:600;font-size:1.75rem;letter-spacing:-.02em;color:var(--text-strong)}
.ws-bprog__bar{height:6px;border-radius:3px;background:var(--sand-200);overflow:hidden}
.ws-bprog__bar i{display:block;height:100%;background:var(--ink-900);transition:width var(--dur-slow) var(--ease-out)}
.ws-bnav{display:grid;gap:2px}
.ws-bnav__item{all:unset;box-sizing:border-box;display:flex;gap:12px;align-items:center;min-height:44px;padding:6px 10px;border-radius:10px;cursor:pointer;font-size:var(--fs-small);font-weight:500;color:var(--text-muted)}
.ws-bnav__item:hover{background:var(--sand-100)}
.ws-bnav__item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.ws-bnav__item.is-current{background:var(--bg-surface);font-weight:600;color:var(--text-strong)}
.ws-bnav__item.is-done{color:var(--text-strong)}
.ws-bnav__dot{width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;background:var(--bg-surface);color:var(--text-muted);box-shadow:inset 0 0 0 1.5px var(--border-default)}
.ws-bnav__item.is-current .ws-bnav__dot{background:var(--signal-500);color:var(--ink-950);box-shadow:0 0 0 4px var(--signal-100)}
.ws-bnav__item.is-done .ws-bnav__dot{background:var(--ink-900);color:#fff;box-shadow:none}
.ws-bnav__dot .ws-icon{width:14px;height:14px}
.ws-btip{background:var(--bg-subtle);border-radius:var(--radius-card);padding:18px;display:grid;gap:6px}
.ws-btip strong{color:var(--text-strong);font-size:var(--fs-small)}
.ws-btip span{font-size:var(--fs-xs);color:var(--text-body)}
.ws-bstep__head{display:grid;gap:12px;padding-bottom:8px}
.ws-bstep__kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--text-accent);text-transform:uppercase}
.ws-bstep__head h1{font-size:var(--fs-h2)}
.ws-bq{display:grid;gap:14px;padding:28px 0;border-top:1px solid var(--border-subtle)}
.ws-bq__label{font-weight:600;font-size:1.125rem;line-height:1.35;color:var(--text-strong);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.ws-bq__help{font-size:var(--fs-small);color:var(--text-muted)}
.ws-bq.has-error .ws-input,.ws-bq.has-error .ws-textarea{border-color:var(--danger-600)}
.ws-chips{display:flex;flex-wrap:wrap;gap:8px}
.ws-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--border-strong);background:var(--bg-surface);color:var(--text-strong);font-family:inherit;font-size:var(--fs-small);font-weight:500;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
.ws-chip:hover{border-color:var(--ink-900)}
.ws-chip[aria-pressed="true"]{border-color:var(--ink-900);background:var(--ink-900);color:#fff;padding-left:12px}
.ws-chip[aria-pressed="true"] .ws-icon{width:16px;height:16px}
.ws-chip:disabled{opacity:.42;cursor:not-allowed}
.ws-chip:disabled:hover{border-color:var(--border-strong)}
.ws-radio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.ws-empty-note{font-size:var(--fs-small);color:var(--text-muted);padding:14px 16px;border:1px dashed var(--border-default);border-radius:var(--radius-input)}
.ws-blist{display:grid;gap:8px}
.ws-blist__row{display:flex;gap:8px;align-items:center}
.ws-blist__num{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);width:22px;flex:none}
.ws-blist__row .ws-control{flex:1;min-width:0}
.ws-blist__add{padding-left:30px}
.ws-dropzone{display:grid;justify-items:center;gap:8px;text-align:center;padding:28px 20px;border:1.5px dashed var(--border-input);border-radius:var(--radius-card);background:var(--bg-subtle);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out);position:relative}
.ws-dropzone:hover,.ws-dropzone.is-over{border-color:var(--ink-900)}
.ws-dropzone.is-over{background:var(--signal-50)}
.ws-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ws-dropzone__icon{width:44px;height:44px;border-radius:10px;background:var(--bg-surface);display:grid;place-items:center;box-shadow:var(--shadow-xs)}
.ws-dropzone__icon .ws-icon{width:22px;height:22px}
.ws-dropzone strong{color:var(--text-strong);font-size:var(--fs-small)}
.ws-dropzone span{font-size:var(--fs-xs);color:var(--text-muted)}
.ws-files{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ws-files li{display:flex;gap:12px;align-items:center;padding:8px 8px 8px 10px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px}
.ws-files img,.ws-files__ph{width:40px;height:40px;border-radius:6px;object-fit:cover;flex:none}
.ws-files__ph{background:var(--sand-100);display:grid;place-items:center}
.ws-files__ph .ws-icon{width:18px;height:18px}
.ws-files__meta{display:grid;flex:1;min-width:0;line-height:1.3}
.ws-files__meta span:first-child{font-size:var(--fs-small);font-weight:500;color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-files__meta span:last-child{font-size:var(--fs-xs);color:var(--text-muted)}
.ws-files li.is-uploading{opacity:.7}
.ws-bnav-foot{display:flex;gap:12px;align-items:center;padding-top:28px;border-top:1px solid var(--border-subtle);flex-wrap:wrap}
.ws-bnav-foot .ws-spacer{flex:1}
.ws-bnav-foot .ws-hint{font-size:var(--fs-xs);color:var(--text-muted)}
@media (max-width:767px){.ws-bnav-foot{display:none}}
.ws-review-list{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--border-subtle)}
.ws-review-list li{display:flex;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--border-subtle)}
.ws-review-list__num{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);width:24px}
.ws-review-list__text{flex:1;display:grid;gap:2px}
.ws-review-list__text strong{color:var(--text-strong)}
.ws-review-list__status{font-size:var(--fs-xs)}
.ws-review-list__status.is-ok{color:var(--polder-600)}.ws-review-list__status.is-open{color:var(--text-accent)}
.ws-review-list .ws-linkbtn{background:none;border:0;padding:10px 0;font:inherit;font-size:var(--fs-small);cursor:pointer;color:var(--text-strong);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.22em}
.ws-toast-wrap{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);z-index:110;width:min(400px,calc(100% - 32px))}
.ws-toast-wrap[hidden]{display:none}
.ws-toast .ws-icon{width:20px;height:20px}
@media (min-width:768px){.ws-flow-progress{display:none}}
.ws-badge--success{background:var(--polder-100);color:var(--polder-700)}

/* Zakelijk bestellen: melding, zakelijke verklaring en voorwaardenakkoord (beide standaard uit) */
.ws-biz-note{font-size:var(--fs-small);color:var(--text-muted);display:flex;gap:8px;align-items:center;margin:0}
.ws-biz-note::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.ws-checkout__biz{margin-bottom:12px}
.ws-terms-group{display:grid;gap:12px}
.ws-terms-group .ws-help{font-size:var(--fs-small)}
.ws-terms-group .ws-help a{color:var(--text-strong)}
.ws-terms .ws-check__text{font-size:var(--fs-small)}
