/* Shared footer and responsive refinements across the static site. */
.foot { background:#f5f7f8; padding-block:56px 24px; }
.foot__top { display:grid; grid-template-columns:1.3fr 1fr 1.15fr .85fr 1.25fr; gap:32px; align-items:start; }
.foot__top > * { min-width:0; }
.foot__line { max-width:26ch; font-size:15px; line-height:1.65; margin-top:18px; }
.foot__col h3 { font-family:var(--font); font-size:13px; font-weight:700; letter-spacing:.025em; text-transform:none; color:var(--ink-2); margin:0 0 14px; }
.foot__col ul { display:grid; gap:3px; }
.foot__col li + li { margin:0; }
.foot__col a { min-height:32px; line-height:1.5; padding-block:4px; }
.foot__col a:hover { text-decoration:underline; text-underline-offset:4px; }
.foot__contact { display:grid; gap:4px; }
.foot__contact p { margin:0 0 6px; }
.foot__contact a { overflow-wrap:anywhere; }
.foot__social a { gap:10px; }
.ico--solid { fill:currentColor; stroke:none; }
.foot__social .ico--solid { width:14px; height:14px; }
.foot__bot { justify-content:space-between; margin-top:40px; padding-top:20px; font-family:var(--font); font-size:12px; letter-spacing:0; text-transform:none; }
.mobile-menu { display:none; }
.address-fields { margin:8px 0; padding:20px 0; border:0; border-block:1px solid var(--line); min-width:0; display:grid; gap:16px; }
.address-fields legend { padding:0 8px 0 0; font-weight:600; }
.address-street { display:grid; gap:16px; }
[hidden] { display:none !important; }
.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.form-row--location { grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); }
.field, .form, .split > * { min-width:0; }
.form__submit:disabled { opacity:.65; cursor:wait; }
.form__note { line-height:1.6; }
.about-purpose { padding-top:32px; border-top:1px solid var(--line); }
.about-purpose .h2 { color:var(--teal-ink); margin-top:0; }
#je-rechten { scroll-margin-top:90px; }
.privacy-actions { display:flex; flex-wrap:wrap; gap:12px; }
@media (min-width:768px) and (max-width:1099px) {
  .foot__top { grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 24px; }
  .foot__brand { grid-column:1/-1; display:flex; align-items:center; gap:32px; padding-bottom:24px; border-bottom:1px solid var(--line); }
  .foot__line { margin:0; }
}
@media (max-width:767px) {
  :root { --gut:20px; }
  .mast__nav, .mast__right { display:none; }
  .mast__logo img { height:34px; }
  .mobile-menu { display:block; margin-left:auto; }
  .mobile-menu summary { list-style:none; min-height:44px; min-width:84px; padding:8px 14px; display:flex; align-items:center; justify-content:center; gap:10px; border:1px solid var(--teal-line); border-radius:9px; cursor:pointer; font-size:14px; font-weight:600; color:var(--teal-ink); background:var(--paper); }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary::after { content:'+'; font-size:20px; font-weight:400; }
  .mobile-menu[open] summary::after { content:'−'; }
  .mobile-menu nav { position:absolute; top:63px; left:0; right:0; display:grid; gap:10px; padding:20px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 16px 24px rgb(29 37 48 / .08); max-height:calc(100dvh - 64px); overflow:auto; }
  .mobile-menu nav > a { display:flex; align-items:center; min-height:46px; text-decoration:none; padding:10px 16px; border-radius:10px; }
  .mobile-menu nav > a:hover { background:var(--teal-tint); color:var(--teal-ink); }
  .foot { padding-top:36px; }
  .foot__top { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
  .foot__brand { grid-column:1/-1; padding-bottom:24px; border-bottom:1px solid var(--line); }
  .foot__line { margin-top:14px; }
  .foot__col h3 { margin-bottom:8px; }
  .foot__col a { min-height:44px; font-size:14px; }
  .foot__contact-col { grid-column:1/-1; }
  .foot__contact { gap:0; }
  .foot__bot { margin-top:28px; gap:8px; }
  .foot__bot span { flex-basis:100%; }
  .page { padding-top:100px; gap:36px; }
  .lead { font-size:18px; }
  .seg { border-radius:14px; }
  .seg button { border-radius:10px; font-size:14px; padding:10px 8px; }
  .close { min-height:0; padding-block:88px 64px; }
  .close__acts, .hero__acts { display:grid; width:100%; grid-template-columns:1fr; }
  .close__acts .btn, .hero__acts .btn { width:100%; min-height:50px; }
  .cal { max-width:none; padding:10px; }
  .cal__nav { width:44px; height:44px; }
  .chips button { min-height:48px; }
  .when__row { grid-template-columns:1fr; }
  .chips--stack { flex-direction:row; flex-wrap:wrap; }
  .privacy-actions .btn { white-space:normal; width:100%; }
}
@media (max-width:359px) {
  .foot__top { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
}
.form-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.field [aria-invalid="true"] { border-color:#b42318; outline-color:#b42318; }
.form.is-sent .field input, .form.is-sent .field textarea { color:var(--ink-2); background:var(--surface); }

/* The desktop thread needs its own gutter. Stacked sections use space instead. */
@media (max-width:1079px) {
  .home .shot > :is(.spine, .beatdot, .beatrail, .tend) { display:none; }
}
@media (max-width:999px) {
  .home .psc__read { display:grid; gap:28px; min-width:0; }
  .home .psc__head { max-width:none; }
  .home .psc__p { max-width:64ch; }
}
@media (max-width:767px) {
  .home { --beat-y:56px; }
  .home .h2 { font-size:clamp(27px,7vw,34px); line-height:1.15; text-wrap:balance; }
  .home .hero { min-height:0; padding-block:96px 36px; }
  .home .hero__grid { gap:32px; }
  .home .hero__copy { min-width:0; gap:20px; padding-bottom:0; }
  .home .hero .h1 { font-size:clamp(22px,8.7cqi,50px); line-height:1.1; }
  .home .hero .h1 > span { white-space:normal; }
  .home .hero__logo { width:min(250px,85%); margin-bottom:4px; }
  .home .hero .mission { max-width:100%; margin:0; font-size:16px; line-height:1.6; }
  .home .hero__acts { margin-top:4px; }
  .home #probleem { padding-block:56px; }
  .home .psc { gap:28px; margin:0; }
  .home .psc__causes { border-top:0; }
  .home .psc__item { padding-block:22px; }
  .home .psc__item:first-child { padding-top:0; }
  .home .psc__item:last-child { padding-bottom:0; border-bottom:0; }
  .home .psc__ct { padding:0 0 10px; font-size:20px; line-height:1.3; }
  .home .psc__p { max-width:none; padding:0; line-height:1.65; }

  .home .flowcarousel__shell { border-radius:16px; }
  .home .flowcarousel { min-width:0; }
  .home .swap__inner { gap:32px; }
  .home .swaplist { gap:28px; }
  .home .swapitem { grid-template-columns:30px minmax(0,1fr); gap:10px; }
  .home .swapitem__copy { display:contents; }
  .home .swapitem h3 { align-self:center; font-size:20px; line-height:1.3; }
  .home .swapitem p { grid-column:1/-1; max-width:none; line-height:1.65; }
  .home .swapside__label { font-size:13px; letter-spacing:.08em; }
  .home .close { padding-block:56px; }
  .home .close__t { font-size:30px; line-height:1.2; }
  .home .close__soon { letter-spacing:.08em; line-height:1.6; }
  .home .foot__contact a { min-height:44px; }
  .home [data-reveal], .home [data-reveal].is-in { opacity:1; transform:none; transition:none; }
}
@media (max-width:619px) {
  .home .flowpane { min-height:0; padding:24px 16px 88px; gap:24px; }
  .home .flowpane__copy h3 { font-size:22px; line-height:1.25; text-align:left; text-wrap:pretty; }
  .home .flowscene--publish { height:auto; min-height:0; padding:0; }
  .home .flowscene--publish .flow-phone { display:none; }
  .home .flow-uploadform { padding:16px; min-height:0; }
  .home .flow-uploadform__steps { margin-top:0; }
  .home .flow-uploadform__photo { grid-template-columns:52px minmax(0,1fr); }
  .home .flow-uploadform__photo img { width:52px; height:52px; }
  .home .flowscene--shop .laptop__screen { padding:8px; border-radius:12px 12px 0 0; aspect-ratio:16/10; overflow:hidden; }
  .home .flowscene--shop .hero-browser { width:100%; height:100%; min-height:0; aspect-ratio:auto; }
  .home .flowscene--shop .hero-browser__bar { height:26px; }
  .home .flowscene--shop .hero-browser__url { height:20px; font-size:9px; }
  .home .flowscene--shop .hero-categories { padding:8px; }
  .home .flowscene--shop .hero-categories__row, .home .flowscene--shop .hero-mobile-tools { display:none; }
  .home .flowscene--shop .hero-site img { height:18px; }
  .home .flow-shopmap { position:relative; right:auto; bottom:auto; width:100%; height:92px; margin-top:18px; }
  .home .flowscene--pickup { height:340px; min-height:340px; }
  .home .flow-pickupphone { left:0; width:172px; min-height:0; }
  .home .flow-pickupspeaker { right:-20px; width:160px; }
  .home .flowscene--impact { height:auto; min-height:0; }
  .home .flow-impact__stats { grid-template-columns:1fr; }
  .home .flow-impact__stat { display:grid; grid-template-columns:24px 66px 1fr; align-items:center; gap:8px; text-align:left; padding:10px; }
  .home .flow-impact__stat i, .home .flow-impact__stat strong, .home .flow-impact__stat span { margin:0; }
  .home .flow-impact__stat strong { font-size:13px; }
  .home .flow-impact__stat span { font-size:12px; line-height:1.4; }
  .home #flowStatus { position:static; width:auto; max-width:100%; min-width:0; height:auto; margin:0; clip-path:none; white-space:normal; overflow:visible; overflow-wrap:anywhere; font-size:13px; line-height:1.5; color:var(--ink-2); }
}

/* One desktop catalog, fitted inside every laptop rather than enlarged crops. */
.home .hero__screen .laptop__screen, .home .flowscene--shop .laptop__screen { aspect-ratio:16/10; overflow:hidden; }
.home .laptop__screen.is-fitted > .catalog-preview { position:absolute; left:var(--catalog-left); top:var(--catalog-top); width:960px; height:600px; min-height:0; aspect-ratio:auto; transform:scale(var(--catalog-scale)); transform-origin:top left; }
.home .catalog-preview .hero-browser__bar { height:40px; }
.home .catalog-preview .hero-browser__url { height:27px; font-size:11px; }
.home .catalog-preview .hero-categories { padding:12px; }
.home .catalog-preview .hero-site img { height:24px; }
.home .catalog-preview .hero-categories__row { display:flex; flex-wrap:nowrap; }
.home .catalog-preview .hero-category { min-height:30px; padding:6px 10px; font-size:12px; }
.home .catalog-preview .hero-mobile-tools { display:none; }
.home .catalog-preview .hero-catalog { display:grid; grid-template-columns:170px minmax(0,1fr); gap:12px; padding:12px; }
.home .catalog-preview .hero-filter { display:block; }
.home .catalog-preview .hero-results { padding:0; }
.home .catalog-preview .hero-results__bar { display:flex; min-height:32px; margin-bottom:8px; }
.home .catalog-preview .hero-sort { display:inline-flex; }
.home .catalog-preview .hero-products { gap:10px; }
.home .catalog-preview .hero-product__media { height:100px; }
.home .catalog-preview .hero-product__body { min-height:68px; padding:8px 10px; }
.home .catalog-preview .hero-product__title { font-size:12px; }
.home .catalog-preview .hero-product__seller, .home .catalog-preview .hero-product__expiry, .home .catalog-preview .hero-product__stock { font-size:11px; }
.home .catalog-preview .hero-product__foot { padding:6px 10px; }
.home .catalog-preview .ak-price__now { font-size:15px; }
@media (min-width:1100px) {
  .home .hero__phone { width:190px; bottom:24px; }
  .home .hero-phone__screen { min-height:0; aspect-ratio:9/17; padding:26px 8px 10px; overflow:hidden; }
  .home .hero-phone__card { grid-template-columns:44px minmax(0,1fr); gap:6px; padding:6px; }
  .home .hero-phone__card img { width:44px; height:52px; }
}

/* Hidden steps still size the grid; visibility keeps their contents inaccessible. */
.home .flowcarousel__viewport { grid-template-columns:minmax(0,1fr); }
.home .flowpane { grid-area:1/1; min-height:0; height:600px; }
.home .flowpane[hidden] { display:grid !important; visibility:hidden; pointer-events:none; }
.home .flow-visual { position:relative; min-width:0; width:100%; height:480px; }
.home .flow-visual > .flowscene { position:absolute; top:50%; left:0; transform:translateY(-50%) scale(var(--scene-scale,1)); transform-origin:center; }
.home #flowStatus { min-height:3em; }
@media (max-width:899px) {
  .home .flowpane { height:560px; grid-template-columns:minmax(0,1fr); grid-template-rows:64px 360px; padding:24px 24px 88px; gap:16px; align-items:start; }
  .home .flow-visual { height:360px; }
  .home .flowpane__copy { max-width:none; }
  .home .flowcarousel__arrow { width:48px; height:48px; top:auto; bottom:18px; }
  .home .flowcarousel__arrow--prev { left:calc(50% - 56px); transform:none; }
  .home .flowcarousel__arrow--next { right:calc(50% - 56px); transform:none; }
  .home .flowcarousel__arrow:hover:not(:disabled) { transform:none; }
}
@media (max-width:479px) {
  .home .flowpane { padding-inline:16px; }
}
.home .hubstack { display:none; }
@media (max-width:699px) {
  .home .eco__canvas { display:block; padding:0; }
  .home .eco-switch__label { padding-inline:8px; font-size:12px; }
  .home .hub .eco-node rect { stroke-width:2; }
  .home .hub .eco-node text { font-size:27px; }
  .home .hub .side-label { font-size:21px; }
  .home .hub .eco-link { stroke-width:3; }
  .home .hub .dots circle { r:5px; }
}
.no-js.home .flowpane[hidden] { visibility:visible; grid-area:auto; }
