/* Nieuwe configurator, stap 1 tot 3. Waarden volgen de mock-up (canvas "Configurator stap 1-2 mock-up").
   Huisstijl: #004438 donkergroen, #6CCA98 groen, #F0F3DE lichtgroen, #EADE98 geel, #F9B5C3 roze.
   Neutrale tinten uit de mock-up: rand #D9DFC4, scheidingslijn #E3E8CF, gedempte tekst #4D6E66.
   Lettertype: League Spartan. Mobiel is alles tot 767px breed. */

/* ---------- Basis ---------- */
.cfg-page { position: relative; overflow: hidden; overflow: clip; background: #F0F3DE; color: #004438; font-family: 'League Spartan', sans-serif; padding-bottom: 8px; }
.cfg-page *, .cfg-page *::before, .cfg-page *::after { box-sizing: border-box; }
.cfg-page *:not(svg):not(svg *) { font-family: inherit; }
.cfg-page a { color: #004438; }
.cfg-page a:hover { color: #002a22; }
.cfg-page button, .cfg-page input { font-family: inherit; }
.cfg-page legend { float: none; width: auto; font-size: inherit; line-height: inherit; }
.cfg-page h1, .cfg-page h2 { font-family: inherit; color: #004438; }
.cfg-i { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cfg-deco-ring { position: absolute; left: -260px; top: 150px; width: 560px; height: 560px; border-radius: 50%; border: 150px solid #EADE98; pointer-events: none; }
.cfg-deco-pink { position: absolute; right: -90px; top: 560px; width: 300px; height: 420px; background: #F9B5C3; transform: rotate(-14deg); pointer-events: none; }
.cfg-main { position: relative; max-width: 1120px; margin: 20px auto 0; padding: 0 24px 48px; }
.cfg-main.wide { max-width: 1180px; }
.cfg-section { background: #FFFFFF; border-radius: 20px; }
.cfg-error { color: #b3354f; font-weight: 700; margin: 4px 0; }

/* ---------- Stappenbalk (ook op de andere stappen van de configurator) ---------- */
.cfg-nav, .cfg-nav-mobile { font-family: 'League Spartan', sans-serif; color: #004438; box-sizing: border-box; }
.cfg-nav *, .cfg-nav-mobile * { box-sizing: border-box; }
.cfg-nav a, .cfg-nav-item { color: inherit; }
.cfg-nav { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; padding: 22px 24px 8px; font-size: 15px; }
.cfg-nav-item { display: flex; align-items: center; gap: 8px; text-decoration: none; }
.cfg-nav-dot { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid #4D6E66; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.cfg-nav-item.todo { color: #4D6E66; }
.cfg-nav-item.active { font-weight: 700; }
.cfg-nav-item.active .cfg-nav-dot { width: 28px; height: 28px; border: 0; background: #004438; color: #FFFFFF; }
.cfg-nav-item.done { font-weight: 500; }
.cfg-nav-item.done .cfg-nav-dot { width: 28px; height: 28px; border: 0; background: #6CCA98; color: #004438; }
.cfg-nav-item.done .cfg-i { width: 16px; height: 16px; stroke-width: 3; }
.cfg-nav-item.done:hover .cfg-nav-label { text-decoration: underline; }

.cfg-nav-mobile { display: none; position: relative; padding: 14px 16px 0; }
.cfg-nav-mobile-text { display: flex; justify-content: space-between; font-size: 14px; }
.cfg-nav-mobile-bar { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin-top: 8px; }
.cfg-nav-mobile-bar span { height: 6px; border-radius: 3px; background: #D9DFC4; }
.cfg-nav-mobile-bar span.on { background: #004438; }

/* ---------- Stap 1: type kaarten ---------- */
.cfg-step1-section { padding: 44px 48px 40px; }
.cfg-title { margin: 0; text-align: center; font-size: 38px; font-weight: 800; line-height: 1.1; }
.cfg-subtitle { margin: 12px auto 0; max-width: 640px; text-align: center; font-size: 18px; line-height: 1.45; }
.cfg-type-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; margin: 36px 0 0; padding: 0; list-style: none; }
.cfg-type-grid > li { display: flex; }
.cfg-card { position: relative; display: flex; flex-direction: column; width: 100%; text-align: left; background: #FFFFFF; border: 2px solid #D9DFC4; border-radius: 16px;
    padding: 0; cursor: pointer; color: #004438; overflow: hidden; font-size: 16px; transition: border-color .15s, box-shadow .15s; }
.cfg-card:hover, .cfg-card:focus-visible { border-color: #004438; box-shadow: 0 6px 18px rgba(0, 68, 56, .12); outline: none; }
.cfg-card.is-selected { border-color: #004438; }
.cfg-card-img { position: relative; display: flex; align-items: center; justify-content: center; height: 190px; width: 100%; background: #F0F3DE; }
.cfg-card-img.pink { background: #FCE3E8; }
.cfg-card-img.yellow { background: #F6F0CF; }
.cfg-card-img img { width: 240px; max-width: 90%; height: auto; display: block; }
.cfg-card-img.yellow img { width: 230px; }
.cfg-card-badge { position: absolute; top: 14px; left: 14px; z-index: 2; background: #004438; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 6px 10px; border-radius: 999px; }
.cfg-card-play { position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%); width: 54px; height: 54px; border-radius: 50%; background: #004438; color: #FFFFFF; display: flex; align-items: center; justify-content: center; }
.cfg-card-play .cfg-i { width: 22px; height: 22px; }
.cfg-card-body { display: flex; flex-direction: column; gap: 14px; padding: 22px; flex-grow: 1; }
.cfg-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.cfg-card-name { font-size: 24px; font-weight: 700; }
.cfg-card-label { font-size: 15px; font-weight: 600; white-space: nowrap; }
.cfg-card-label.free { color: #2F6B4E; }
.cfg-card-text { font-size: 16px; line-height: 1.4; }
.cfg-card-facts { display: flex; flex-direction: column; gap: 9px; font-size: 15px; }
.cfg-card-fact { display: flex; gap: 10px; align-items: center; }
.cfg-card-cta { margin-top: auto; display: flex; align-items: center; justify-content: center; gap: 8px; background: #004438; color: #FFFFFF; border-radius: 10px; height: 48px; font-size: 16px; font-weight: 600; }
.cfg-card-cta .cfg-i { width: 18px; height: 18px; stroke-width: 2.2; }
.cfg-card-arrow { display: none; }
.cfg-moreinfo { margin: 22px 0 0; text-align: center; font-size: 15px; }
.cfg-moreinfo summary { cursor: pointer; display: inline-block; text-decoration: underline; list-style: none; }
.cfg-moreinfo summary::-webkit-details-marker { display: none; }
.cfg-moreinfo p { margin: 8px auto 0; max-width: 760px; font-size: 14px; text-align: left; }
.cfg-reassure { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 36px; margin: 24px 0 0; padding: 0; list-style: none; font-size: 15px; font-weight: 500; }
.cfg-reassure li { display: flex; gap: 8px; align-items: center; }
.cfg-reassure .only-mobile { display: none; }
.cfg-b2b-note { margin: 18px 0 0; text-align: center; font-size: 15px; }
.cfg-b2b-note a { font-weight: 600; }

/* ---------- Stap 2: waarde en aantal ---------- */
.cfg-main2 { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.cfg-form-section { flex: 999 1 560px; min-width: 0; padding: 40px 44px; display: flex; flex-direction: column; gap: 34px; }
.cfg-h1 { margin: 0; font-size: 36px; font-weight: 800; line-height: 1.1; }
.cfg-fieldset { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cfg-legend { padding: 0; margin: 0 0 12px; font-size: 20px; font-weight: 700; }
.cfg-block { display: flex; flex-direction: column; gap: 14px; }
.cfg-h2 { margin: 0; font-size: 20px; font-weight: 700; }
.cfg-typechip { display: none; }
.cfg-segmented { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cfg-choice { position: relative; display: flex; }
.cfg-choice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; cursor: pointer; margin: 0; z-index: 2; }
.cfg-choice label { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 12px 16px; border: 2px solid #D9DFC4; background: #FFFFFF; border-radius: 12px; color: #004438; text-align: left; cursor: pointer; margin: 0; }
.cfg-choice label .cfg-i { width: 22px; height: 22px; }
.cfg-choice label .txt { display: flex; flex-direction: column; }
.cfg-choice label .t1 { font-size: 17px; font-weight: 700; }
.cfg-choice label .t2 { font-size: 14px; }
.cfg-choice input:checked + label { border-color: #004438; background: #F0F3DE; }
.cfg-choice input:focus-visible + label { outline: 3px solid #6CCA98; outline-offset: 2px; }

.cfg-amount-box { margin: 0; border: 2px solid #004438; border-radius: 14px; padding: 18px; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.cfg-amount-box > legend { padding: 0 6px; margin: 0; font-size: 15px; font-weight: 600; }
.cfg-amount-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.cfg-amount-btn { height: 56px; border: 2px solid #D9DFC4; background: #FFFFFF; border-radius: 12px; font-size: 19px; font-weight: 600; color: #004438; cursor: pointer; }
.cfg-amount-btn:hover { border-color: #004438; }
.cfg-amount-btn.is-on { border-color: #004438; background: #004438; color: #FFFFFF; font-weight: 700; }
.cfg-amount-btn:focus-visible { outline: 3px solid #6CCA98; outline-offset: 2px; }
.cfg-amount-btn.other { display: none; border: 2px dashed #4D6E66; font-size: 16px; }
.cfg-amount-btn.other.is-on { border-style: solid; }
.cfg-other-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cfg-field { display: flex; flex-direction: column; gap: 6px; }
.cfg-field label { font-size: 15px; margin: 0; }
.cfg-other-line { display: flex; align-items: center; gap: 10px; }
.cfg-euro { display: flex; align-items: center; height: 48px; border: 2px solid #D9DFC4; border-radius: 10px; padding: 0 14px; gap: 6px; width: 140px; background: #FFFFFF; }
.cfg-euro:focus-within, .cfg-euro.is-on { border-color: #004438; }
.cfg-euro span { font-size: 17px; }
.cfg-euro input { border: 0; outline: 0; font-size: 17px; width: 100%; color: #004438; background: transparent; padding: 0; -moz-appearance: textfield; }
.cfg-hint { font-size: 14px; color: #4D6E66; }
.cfg-hint-mobile { display: none; font-size: 13px; color: #4D6E66; }
.cfg-qty { display: flex; align-items: center; width: 160px; height: 48px; border: 2px solid #D9DFC4; border-radius: 10px; overflow: hidden; background: #FFFFFF; }
.cfg-qty button { width: 48px; height: 100%; border: 0; background: #F0F3DE; color: #004438; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.cfg-qty button:hover { background: #e3ebc8; }
.cfg-qty button .cfg-i { width: 18px; height: 18px; stroke-width: 2.4; }
.cfg-qty input { width: 60px; border: 0; text-align: center; font-size: 19px; font-weight: 700; color: #004438; padding: 0; background: #FFFFFF; -moz-appearance: textfield; }
.cfg-euro input::-webkit-outer-spin-button, .cfg-euro input::-webkit-inner-spin-button, .cfg-qty input::-webkit-outer-spin-button, .cfg-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cfg-info { margin: 0; display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; background: #F0F3DE; border-radius: 10px; padding: 12px 14px; }
.cfg-info .cfg-i { margin-top: 1px; }
.cfg-info.lg { gap: 12px; font-size: 15px; border-radius: 12px; padding: 14px 16px; }
.cfg-info.lg .cfg-i { width: 22px; height: 22px; }
.cfg-quote { display: flex; gap: 14px; align-items: flex-start; border: 2px solid #6CCA98; border-radius: 14px; padding: 16px 18px; }
.cfg-quote .cfg-i { width: 24px; height: 24px; margin-top: 2px; }
.cfg-quote-body { display: flex; flex-direction: column; gap: 6px; font-size: 15px; line-height: 1.45; }
.cfg-quote-body .t { font-weight: 700; font-size: 16px; }
.cfg-quote-body a { font-weight: 600; }
.cfg-excel { margin-top: 4px; }
.cfg-excel > summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }

.cfg-aside { flex: 1 1 320px; background: #FFFFFF; border-radius: 20px; padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.cfg-aside-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cfg-aside h2 { margin: 0; font-size: 22px; font-weight: 700; }
.cfg-pill { display: none; font-size: 13px; font-weight: 600; background: #F0F3DE; border-radius: 999px; padding: 5px 10px; }
.is-zakelijk .cfg-pill { display: inline-block; }
.cfg-aside-type { display: flex; gap: 14px; align-items: center; }
.cfg-aside-thumb { width: 92px; height: 64px; border-radius: 10px; background: #F0F3DE; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.cfg-aside-thumb.yellow { background: #F6F0CF; }
.cfg-aside-thumb img { width: 84px; height: auto; }
.cfg-aside-type .name { display: flex; flex-direction: column; gap: 2px; }
.cfg-aside-type .name strong { font-size: 17px; font-weight: 700; }
.cfg-aside-type .name a { font-size: 14px; }
.cfg-rows { display: flex; flex-direction: column; gap: 10px; font-size: 16px; border-top: 1px solid #E3E8CF; padding-top: 16px; }
.cfg-row { display: flex; justify-content: space-between; gap: 12px; }
.cfg-rows .biz-label { font-size: 13px; font-weight: 600; color: #4D6E66; text-transform: uppercase; }
.cfg-rows .biz-label.second { margin-top: 6px; }
.cfg-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-top: 1px solid #E3E8CF; padding-top: 12px; font-size: 20px; font-weight: 700; }
.cfg-total .amt { display: flex; flex-direction: column; align-items: flex-end; }
.cfg-total small { display: none; font-size: 13px; font-weight: 400; }
.is-zakelijk .cfg-total small { display: block; }
.cfg-price-private, .cfg-price-business { display: contents; }
.cfg-price-business { display: none; }
.is-zakelijk .cfg-price-private { display: none; }
.is-zakelijk .cfg-price-business { display: contents; }
.cfg-btn { display: flex; align-items: center; justify-content: center; gap: 8px; height: 54px; padding: 0 28px; border: 0; border-radius: 12px; background: #004438; color: #FFFFFF; font-size: 17px; font-weight: 600; cursor: pointer; width: 100%; }
.cfg-btn:hover { background: #002a22; color: #FFFFFF; }
.cfg-btn .cfg-i { width: 18px; height: 18px; stroke-width: 2.2; }
.cfg-back { display: flex; align-items: center; gap: 6px; font-size: 15px; text-decoration: none; min-height: 44px; }
.cfg-back .cfg-i { width: 16px; height: 16px; stroke-width: 2.2; }
.cfg-note { margin: 0; font-size: 14px; line-height: 1.4; background: #F0F3DE; border-radius: 10px; padding: 12px 14px; }
.cfg-mobilebar { display: none; }

/* ---------- Stap 3: thema en lay-out ---------- */
.cfg-thema-section { padding: 26px 36px 0; display: flex; flex-direction: column; gap: 16px; }
.cfg-thema-section .cfg-h1 { font-size: 30px; }
.cfg-thema-section .cfg-h2 { font-size: 17px; }
.cfg-thema-head p { margin: 6px 0 0; font-size: 15px; }
/* Een rij tegels met een horizontale scrollbalk. Op gsm is de balk verborgen en swipe je (zie onderaan). */
.cfg-themes { display: flex; flex-wrap: nowrap; gap: 12px; overflow-x: auto; padding: 5px 5px 14px; margin: -5px -5px 0; list-style: none; scroll-snap-type: x proximity; scroll-padding: 0 5px;
    -webkit-overflow-scrolling: touch; --s: .5; }
.cfg-themes::-webkit-scrollbar { height: 10px; }
.cfg-themes::-webkit-scrollbar-track { background: #E3E8CF; border-radius: 4px; }
.cfg-themes::-webkit-scrollbar-thumb { background: #004438; border-radius: 4px; }
.cfg-themes > li { flex: 0 0 auto; }
.cfg-tile { display: flex; flex-direction: column; align-items: center; gap: 8px; background: transparent; border: 0; padding: 0; color: #004438; cursor: pointer; scroll-snap-align: start; min-height: 44px; }
.cfg-tile-img { position: relative; width: calc(112px * var(--s)); height: calc(112px * var(--s)); border-radius: calc(14px * var(--s)); overflow: hidden; display: flex; align-items: center; justify-content: center; background: #F0F3DE; }
.cfg-tile-name { font-size: 12px; font-weight: 600; text-align: center; max-width: calc(112px * var(--s) + 14px); line-height: 1.2; }
.cfg-ti { position: relative; width: calc(48px * var(--s)); height: calc(48px * var(--s)); min-width: 24px; min-height: 24px; fill: none; stroke: #004438; stroke-width: 2.200; stroke-linecap: round; stroke-linejoin: round; }
/* Zes kleurcombinaties uit de mock-up, de vorm in de hoek verschilt per tegel */
.cfg-tile-img.c0 { background: #EADE98; }
.cfg-tile-img.c1 { background: #F9B5C3; }
.cfg-tile-img.c2 { background: #6CCA98; }
.cfg-tile-img.c3 { background: #F0F3DE; }
.cfg-tile-img.c4 { background: #EADE98; }
.cfg-tile-img.c5 { background: #F9B5C3; }
.cfg-tile-img[class*=" c"]::before { content: ""; position: absolute; }
.cfg-tile-img.c0::before { right: calc(-18px * var(--s)); top: calc(-18px * var(--s)); width: calc(56px * var(--s)); height: calc(56px * var(--s)); border-radius: 50%; background: #F9B5C3; }
.cfg-tile-img.c1::before { left: calc(-16px * var(--s)); bottom: calc(-16px * var(--s)); width: calc(50px * var(--s)); height: calc(50px * var(--s)); background: #EADE98; transform: rotate(45deg); }
.cfg-tile-img.c2::before { right: calc(-14px * var(--s)); bottom: calc(-14px * var(--s)); width: calc(48px * var(--s)); height: calc(48px * var(--s)); border-radius: 50%; border: calc(10px * var(--s)) solid #F0F3DE; }
.cfg-tile-img.c3::before { left: calc(-20px * var(--s)); top: calc(-20px * var(--s)); width: calc(60px * var(--s)); height: calc(60px * var(--s)); border-radius: 50%; background: #F9B5C3; }
.cfg-tile-img.c4::before { left: calc(-10px * var(--s)); bottom: calc(-22px * var(--s)); width: calc(70px * var(--s)); height: calc(40px * var(--s)); border-radius: calc(20px * var(--s)); background: #6CCA98; }
.cfg-tile-img.c5::before { right: calc(-14px * var(--s)); top: calc(-14px * var(--s)); width: calc(44px * var(--s)); height: calc(44px * var(--s)); border-radius: 50%; background: #F0F3DE; }
.cfg-tile.own .cfg-tile-img { border: 2px dashed #4D6E66; background: transparent; }
.cfg-tile.own .cfg-ti { width: calc(30px * var(--s)); height: calc(30px * var(--s)); }
.cfg-tile.all .cfg-tile-img { background: #F0F3DE; }
.cfg-tile:hover .cfg-tile-img { box-shadow: 0 0 0 2px #6CCA98; }
.cfg-tile:focus-visible { outline: none; }
.cfg-tile:focus-visible .cfg-tile-img { box-shadow: 0 0 0 3px #6CCA98; }
.cfg-tile.is-on .cfg-tile-img { outline: 3px solid #004438; outline-offset: 3px; box-shadow: none; }
.cfg-tile.is-on .cfg-tile-name { font-weight: 700; }
.cfg-tile.own.is-on .cfg-tile-img { background: #F0F3DE; }
.cfg-tile.is-on .cfg-tile-img::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 20px; height: 20px; border-radius: 50%; background: #004438 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5 9-10'/></svg>") center no-repeat; }
.cfg-tile.own.is-on .cfg-tile-img::after { right: 2px; bottom: 2px; }

.cfg-layout-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; padding: 12px; margin: -12px;
    content-visibility: auto; contain-intrinsic-size: auto 520px; }
.cfg-layout-grid + .cfg-layout-grid { margin-top: 8px; }
.cfg-layout-grid > .col { width: auto; max-width: none; padding: 0; flex: none; position: relative; isolation: isolate; }
.cfg-layout-grid .kies-tukadoo { display: flex; flex-direction: column; gap: 10px; width: 100%; padding: 13px; border: 2px solid #D9DFC4; border-radius: 14px; background: #FFFFFF; cursor: pointer; position: relative; text-align: left; overflow: visible; }
.cfg-layout-grid .kies-tukadoo:hover { border-color: #004438; }
.cfg-layout-grid .parent .imgbgchk:checked + label, .cfg-layout-grid .imgbgchk:checked + label.kies-tukadoo { border: 3px solid #004438; padding: 12px; background: #FFFFFF; }
.cfg-layout-grid .imgbgchk:checked + label.kies-tukadoo::after { content: ""; position: absolute; right: -10px; top: -10px; width: 30px; height: 30px; border-radius: 50%; z-index: 10000;
    background: #004438 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5 9-10'/></svg>") center no-repeat; }
.cfg-layout-grid .tick_container { display: none; }
.cfg-stage { position: relative; display: block; width: 100%; }
.cfg-stage > img { display: block; width: 100%; height: auto; }
/* Fotovak van de TUKADOOkaart: exact op het transparante venster van /images/tukadoo-card-new(-fr).png (800x935, venster x 103 tot 696,
   y 592 tot 907). Dezelfde waarden als op production (commit d4730dd1), zodat de crop overal gelijk is. */
.cfg-layout-grid .stap2-img-tukadoosje { top: 63.316%; bottom: 2.888%; left: 12.875%; right: 12.875%; overflow: hidden; }
.cfg-layout-grid .stap2-img-tukadoosje img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cfg-layout-caption { display: block; font-size: 15px; font-weight: 600; }
.cfg-layout-caption::first-letter { text-transform: uppercase; }
.imgbgchk:checked + label .cfg-layout-caption { font-weight: 700; }
.cfg-own-photo { width: 100%; height: 100%; min-height: 60px; border: 2px dashed #4D6E66; border-radius: 6px; background: #F0F3DE; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #004438; font-weight: 700; font-size: 14px; text-align: center; }
.cfg-own-photo .cfg-i { width: 26px; height: 26px; }
.cfg-scrollhint { margin: 24px 0 0; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 15px; color: #4D6E66; }
.cfg-loading { margin: 0; text-align: center; font-size: 14px; }
#cfg-sentinel { height: 1px; }
.cfg-layouts-wrap { position: relative; min-height: 220px; }
.cfg-layouts-wrap.is-busy #cfg-layouts { opacity: .35; pointer-events: none; transition: opacity .15s; }
.cfg-spinner { position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: 5; pointer-events: none; }
.cfg-spinner[hidden] { display: none; }
.cfg-spin { display: block; position: sticky; top: calc(50vh - 22px); margin: 80px auto 0; width: 44px; height: 44px; border-radius: 50%; border: 4px solid #D9DFC4; border-top-color: #004438; animation: cfg-spin .8s linear infinite; background: transparent; }
@keyframes cfg-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cfg-spin { animation-duration: 2.4s; } }
.cfg-bottombar { position: sticky; bottom: 0; z-index: 900; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 0 -44px; padding: 14px 44px;
    background: #FFFFFF; border-top: 1px solid #E3E8CF; border-radius: 0 0 20px 20px; box-shadow: 0 -6px 16px rgba(0, 68, 56, .08); }
.cfg-bottombar .back { display: flex; align-items: center; gap: 6px; font-size: 16px; text-decoration: none; min-height: 44px; }
.cfg-bottombar .back .cfg-i { width: 16px; height: 16px; stroke-width: 2.2; }
.cfg-bottom-right { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.cfg-bottom-summary { margin: 0; font-size: 15px; }
.cfg-bottombar .cfg-btn { width: auto; }

/* ---------- Gsm (tot 767px) ---------- */
@media (max-width: 767.98px) {
    .cfg-deco-ring { display: none; }
    .cfg-deco-pink { right: -70px; top: auto; bottom: 0; width: 200px; height: 260px; }
    .cfg-main { margin: 0; padding: 16px 16px 32px; }
    .cfg-main.wide { padding: 18px 0 120px; }
    .cfg-section { background: transparent; border-radius: 0; }

    /* stappenbalk */
    .cfg-nav { display: none; }
    .cfg-nav-mobile { display: block; }

    /* stap 1 */
    .cfg-step1-section { padding: 4px 0 0; }
    .cfg-title { text-align: left; font-size: 28px; }
    .cfg-subtitle { margin: 14px 0 0; max-width: none; text-align: left; font-size: 16px; line-height: 1.4; }
    .cfg-type-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
    .cfg-card { display: grid; grid-template-columns: 104px 1fr auto; column-gap: 12px; row-gap: 12px; align-items: center; padding: 14px; }
    .cfg-card-img { grid-column: 1; grid-row: 1; width: 104px; height: 78px; border-radius: 10px; }
    .cfg-card-img img { width: 96px; }
    .cfg-card-img.yellow img { width: 94px; }
    .cfg-card-play { width: 30px; height: 30px; top: 44%; }
    .cfg-card-play .cfg-i { width: 14px; height: 14px; }
    .cfg-card-body { display: contents; }
    .cfg-card-head { grid-column: 2; grid-row: 1; flex-direction: column; align-items: flex-start; gap: 4px; }
    .cfg-card-badge { position: static; align-self: flex-start; font-size: 11px; padding: 3px 8px; }
    .cfg-card-name { font-size: 20px; line-height: 1.1; }
    .cfg-card-label { font-size: 14px; }
    .cfg-card-arrow { display: block; grid-column: 3; grid-row: 1; }
    .cfg-card-arrow .cfg-i { width: 22px; height: 22px; }
    .cfg-card-text { grid-column: 1 / -1; font-size: 15px; }
    .cfg-card-facts { grid-column: 1 / -1; gap: 7px; font-size: 14px; }
    .cfg-card-fact { gap: 8px; }
    .cfg-card-fact:nth-child(n+3) { display: none; }
    .cfg-card-cta { display: none; }
    .cfg-moreinfo { margin: 14px 0 0; }
    .cfg-moreinfo summary { padding: 8px 0; }
    .cfg-reassure { flex-direction: column; justify-content: flex-start; gap: 9px; background: #FFFFFF; border-radius: 14px; padding: 14px 16px; margin-top: 14px; font-size: 14px; font-weight: 400; }
    .cfg-reassure li.desk { display: none; }
    .cfg-reassure .only-mobile { display: flex; }
    .cfg-b2b-note { font-size: 14px; line-height: 1.5; margin-top: 12px; }
    .cfg-b2b-note a { display: inline-block; padding: 8px 0; }

    /* stap 2 */
    .cfg-main2 { flex-direction: column; align-items: stretch; gap: 22px; }
    .cfg-form-section { flex: none; padding: 0; gap: 22px; }
    .cfg-typechip { display: flex; align-items: center; gap: 10px; background: #FFFFFF; border-radius: 12px; padding: 8px 12px; }
    .cfg-typechip .thumb { width: 56px; height: 40px; border-radius: 8px; background: #F0F3DE; display: flex; align-items: center; justify-content: center; }
    .cfg-typechip .thumb.yellow { background: #F6F0CF; }
    .cfg-typechip .thumb img { width: 50px; height: auto; }
    .cfg-typechip .name { flex-grow: 1; font-size: 16px; font-weight: 700; }
    .cfg-typechip a { font-size: 15px; padding: 10px 4px; }
    .cfg-h1 { font-size: 28px; }
    .cfg-legend { font-size: 18px; margin-bottom: 10px; }
    .cfg-h2 { font-size: 18px; margin-bottom: -8px; }
    .cfg-block { gap: 22px; }
    .cfg-segmented { gap: 0; background: #FFFFFF; border: 2px solid #D9DFC4; border-radius: 12px; padding: 4px; }
    .cfg-choice label { min-height: 0; height: 48px; justify-content: center; border: 0; border-radius: 8px; background: transparent; padding: 0; }
    .cfg-choice label .cfg-i, .cfg-choice label .t2 { display: none; }
    .cfg-choice label .t1 { font-size: 16px; font-weight: 600; }
    .cfg-choice input:checked + label { background: #004438; color: #FFFFFF; border: 0; }
    .cfg-choice input:checked + label .t1 { font-weight: 700; }
    .cfg-amount-box { padding: 14px; gap: 14px; background: #FFFFFF; }
    .cfg-amount-box > legend { font-size: 14px; }
    .cfg-amount-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cfg-amount-btn.other { display: block; }
    .cfg-other-row { display: contents; }
    .cfg-field.other { display: none; }
    .cfg-amount-box.other-open .cfg-field.other { display: flex; }
    .cfg-hint { display: none; }
    .cfg-hint-mobile { display: block; }
    .cfg-field.qty { flex-direction: row; align-items: center; justify-content: space-between; }
    .cfg-field.qty label { font-size: 16px; font-weight: 600; }
    .cfg-qty { height: 52px; width: auto; border-radius: 12px; }
    .cfg-qty button { width: 52px; }
    .cfg-qty input { width: 52px; }
    .cfg-info { background: #FFFFFF; border-radius: 12px; }
    .cfg-info.lg { font-size: 14px; padding: 12px 14px; gap: 10px; }
    .cfg-info.lg .cfg-i { width: 20px; height: 20px; }
    .cfg-quote { background: #FFFFFF; border-radius: 12px; padding: 14px; gap: 10px; }
    .cfg-quote-body { font-size: 14px; }
    .cfg-quote-body .t { font-size: 15px; }
    .cfg-aside { display: none; padding: 14px 16px; border-radius: 14px; gap: 8px; flex: none; }
    .is-zakelijk .cfg-aside { display: flex; order: 5; }
    .cfg-aside-head .cfg-pill, .cfg-aside-type, .cfg-aside .cfg-btn, .cfg-aside .cfg-back, .cfg-aside .cfg-note, .cfg-aside .cfg-total { display: none; }
    .cfg-aside h2 { font-size: 17px; margin: 0 0 4px; }
    .cfg-rows { border-top: 0; padding-top: 0; gap: 8px; font-size: 15px; }
    .cfg-rows .biz-label { font-size: 12px; }
    .cfg-rows .biz-label.second { margin-top: 4px; }
    .cfg-mobilebar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; align-items: center; gap: 14px; background: #FFFFFF;
        box-shadow: 0 -4px 16px rgba(0, 68, 56, .12); padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
    .cfg-mobilebar .tot { display: flex; flex-direction: column; }
    .cfg-mobilebar .tot small { font-size: 13px; }
    .cfg-mobilebar .tot strong { font-size: 22px; font-weight: 800; }
    .cfg-mobilebar .cfg-btn { flex-grow: 1; width: auto; padding: 0 16px; }

    /* stap 3 */
    .cfg-thema-section { padding: 0; gap: 20px; }
    .cfg-thema-head { padding: 0 16px; }
    .cfg-thema-head p { font-size: 15px; line-height: 1.4; margin-top: 8px; }
    .cfg-thema-block > .cfg-h2 { margin: 0 16px 10px; }
    .cfg-themes { flex-wrap: nowrap; overflow-x: auto; gap: 12px; padding: 4px 16px 6px; margin: 0; scroll-snap-type: x proximity; scroll-padding: 0 16px; -webkit-overflow-scrolling: touch; scrollbar-width: none; --s: .5; }
    .cfg-themes::-webkit-scrollbar { display: none; }
    .cfg-themes > li { flex: 0 0 auto; }
    .cfg-tile { gap: 6px; }
    .cfg-tile-name { font-size: 11px; }
    .cfg-tile.is-on .cfg-tile-img { outline-offset: 2px; }
    .cfg-tile.own .cfg-tile-img { background: #FFFFFF; }
    .cfg-layout-block { padding: 0 16px; }
    .cfg-layout-block > .cfg-h2 { margin: 0 0 10px; }
    .cfg-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .cfg-layout-grid .kies-tukadoo { padding: 8px; gap: 8px; border-radius: 12px; }
    .cfg-layout-grid .imgbgchk:checked + label.kies-tukadoo { padding: 7px; }
    .cfg-layout-caption { font-size: 14px; }
    .cfg-scrollhint { margin: 18px 0 0; font-size: 14px; gap: 6px; }
    .cfg-bottombar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; margin: 0; border-radius: 0; background: #FFFFFF; border-top: 0; box-shadow: 0 -4px 16px rgba(0, 68, 56, .12);
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); flex-wrap: nowrap; gap: 12px; }
    .cfg-bottombar .back { width: 52px; height: 52px; border: 2px solid #D9DFC4; border-radius: 12px; justify-content: center; font-size: 0; gap: 0; flex: 0 0 auto; }
    .cfg-bottombar .back .cfg-i { width: 20px; height: 20px; }
    .cfg-bottom-right { flex: 1; }
    .cfg-bottom-summary { display: none; }
    .cfg-bottombar .cfg-btn { flex-grow: 1; width: auto; }
}
