@charset "UTF-8";
:root {
  color-scheme: dark light; /* page manages both themes itself — prevents browser from applying its own auto-dark */
  /* Brand / accent */
  /* Primary = the CTA / highlight colour (amber-copper) */
  --color-primary: #C8955C;
  --color-primary-dark: #A67840;
  /* Secondary = warm muted tone for meta text, secondary actions */
  --color-secondary: #9A8C7E;
  --color-secondary-dark: #7A6C60;
  /* Accent colours */
  --color-accent-tan: #C8955C; /* same family as primary */
  --color-accent-eco: #7A9B62; /* sage green - ecological elements */
  --color-accent-gold: #D4A843; /* warm gold - prices, premium labels */
  /* Surfaces */
  --color-surface: #14110F; /* near-black warm - app background */
  --color-surface-card: #1E1A16; /* raised card surface */
  --color-surface-input: #2A231D; /* input fields - slightly lifted */
  --color-surface-overlay:#0E0C0A; /* darkest - modal backdrops */
  /* Borders */
  --color-border: #3A3028; /* default separator */
  --color-border-strong: #4A3E33; /* more visible separator */
  --color-border-focus: #C8955C; /* amber focus ring */
  /* Typography */
  --color-text-primary: #F0E8DC; /* warm ivory - main body text */
  --color-text-muted: #9A8C7E; /* warm grey - secondary / meta */
  --color-text-faint: #6A5E55; /* very dim - placeholders, disabled */
  --color-text-inverse: #14110F; /* dark-on-light (inside CTA buttons) */
  --color-text-accent: #C8955C; /* amber - emphasis, active states */
  /* Navigation on dark photo header — same in both modes since photo never changes */
  --color-nav-text: #F0E8DC;
  /* Navigation bar links (category + subcategory nav — always on dark brown bar) */
  --color-nav-bar-text: #9A8C7E;
  --color-nav-bar-text-hover: #F0E8DC;
  --color-nav-bar-active: #C8955C;
  /* Navigation bar backgrounds (webshop category nav) */
  --color-nav-bg: #1E1A16;
  --color-nav-bg-hover: #2A231D;
  --color-nav-secondary-bg: #252019;
  --color-nav-secondary-bg-hover: #3A3028;
  /* Type scale */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 2rem;
  --text-4xl: 2.75rem;
  --leading-tight: 1.2;
  --leading-normal: 1.5;
  --leading-relaxed: 1.6;
  --leading-loose: 1.7;
  /* Spacing (8-point grid) */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  /* Border radii */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;
  /* Shadows (dark UI = deep black shadows, amber glow for CTAs) */
  --shadow-card: 0 2px 12px rgba(0, 0, 0, 0.55);
  --shadow-raised: 0 4px 24px rgba(0, 0, 0, 0.65);
  --shadow-float: 0 8px 40px rgba(0, 0, 0, 0.75);
  --shadow-glow: 0 0 28px rgba(200, 149, 92, 0.18); /* amber CTA glow */
  /* State colours */
  --color-error: #E07070; /* warm red - validation errors */
  /* Transitions */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 400ms ease;
}

/* Light theme — warm parchment, amber accent preserved as brand signature */
[data-theme=light] {
  color-scheme: only light; /* 'only' prevents browser Auto Dark from overriding explicit light mode */
  --color-primary: #B0701E; /* amber, deeper for contrast on cream */
  --color-primary-dark: #8A5410;
  --color-secondary: #8A7060;
  --color-secondary-dark: #6E5848;
  --color-accent-tan: #C09060;
  --color-accent-eco: #4E7A30; /* richer sage green */
  --color-accent-gold: #C09A18;
  --color-surface: #F0E6D2; /* warm parchment */
  --color-surface-card: #FAF5EB; /* cream near-white */
  --color-surface-input: #EDE4D6;
  --color-surface-overlay:#E0D4C0;
  --color-border: #C8B090;
  --color-border-strong: #B09070;
  --color-border-focus: #B0701E;
  --color-text-primary: #1A100A; /* rich dark chocolate */
  --color-text-muted: #6B4A30;
  --color-text-faint: #9A7A60;
  --color-text-inverse: #FAF5EB;
  --color-text-accent: #B0701E;
  --color-error: #C0392B;
  --color-nav-bg: #443b36; /* old site $base-primary */
  --color-nav-bg-hover: #2b2521; /* old site $base-primary-highlighted */
  --color-nav-secondary-bg: #726056; /* old site $base-secondary */
  --color-nav-secondary-bg-hover: #584a43; /* old site $base-secondary-highlighted */
  /* nav bar links stay white-ish on these dark brown bars */
  --color-nav-bar-text: #F0E8DC;
  --color-nav-bar-text-hover: #FFFFFF;
  --color-nav-bar-active: #F0E8DC;
  --shadow-card: 0 2px 8px rgba(50, 25, 8, 0.09);
  --shadow-raised: 0 4px 16px rgba(50, 25, 8, 0.13);
  --shadow-float: 0 8px 32px rgba(50, 25, 8, 0.19);
  --shadow-glow: 0 0 24px rgba(180, 120, 40, 0.35);
}

[data-theme=dark] {
  color-scheme: dark; /* explicit dark override — locks native elements to dark even if OS is light */
}

@font-face {
  font-family: "fontello";
  src: url("/fonts/fontello.eot");
  src: url("/fonts/fontello.eot") format("embedded-opentype"), url("/fonts/fontello.woff") format("woff"), url("/fonts/fontello.ttf") format("truetype"), url("/fonts/fontello.svg") format("svg");
  font-weight: normal;
  font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'fontello';
    src: url('../font/fontello.svg?4692204#fontello') format('svg');
  }
}
*/
[class^=icon-]:before, [class*=" icon-"]:before {
  font-family: "fontello";
  font-style: normal;
  font-weight: lighter;
  speak: none;
  font-size: 80px;
  opacity: 0.7;
  color: #ffffff;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: 0.2em;
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}

.icon-twitter:before {
  content: "\f099";
} /* '' */
.icon-facebook:before {
  content: "\f09a";
} /* '' */
.icon-instagram:before {
  content: "\f16d";
} /* '' */
/*MAIN*/
.top-menu {
  background-image: url("/images/header-groot-68ad63156a816f786d90ab45438e997f.jpg");
  border-bottom: solid #cccccc 1px;
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  overflow: hidden;
}

.mobile-menu-links {
  display: none;
}

.logo-veeakker {
  margin: 25px;
  display: block;
  float: left;
}
.logo-veeakker img {
  height: 50px;
}

#veeakker-menu {
  float: right;
  margin: auto 2%;
  margin-top: 40px;
}

@media screen and (max-width: 1024px) {
  #veeakker-menu #mobile-menu {
    font-size: 20px;
    display: inline;
  }
  #veeakker-menu a {
    display: none;
  }
  #veeakker-menu .theme-toggle {
    display: none;
  }
  .mobile-open {
    width: 100%;
    display: inline-block;
    background-color: var(--color-surface-card);
    display: flex;
    flex-direction: column;
  }
  .mobile-open a {
    padding: 10px;
    text-align: center;
    color: var(--color-text-primary);
    border-bottom: solid 1px var(--color-border);
    margin: 0 5px;
  }
  .mobile-open a.active {
    color: var(--color-primary);
    font-weight: 600;
  }
}
@media screen and (min-width: 1024px) {
  .top-menu {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    overflow: hidden;
  }
  .logo-veeakker {
    float: none;
    display: flex;
    align-items: center;
  }
  #veeakker-menu {
    float: none;
    margin: 0 2% 0 0;
    display: flex;
    align-items: stretch;
  }
  #veeakker-menu #mobile-menu {
    display: none;
  }
  #veeakker-menu a {
    font-size: 20px;
    /* always on dark photo — use fixed light colour regardless of theme */
    color: var(--color-nav-text);
    margin-right: 40px;
    display: flex;
    align-items: center;
    border-bottom: 3px solid transparent;
  }
  #veeakker-menu a.active {
    border-bottom: 3px solid var(--color-primary);
  }
  #veeakker-menu .theme-toggle {
    color: var(--color-nav-text);
    margin-right: var(--space-4);
  }
}
/* Theme toggle — shared base */
.theme-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--space-2);
  display: flex;
  align-items: center;
  transition: color var(--transition-fast);
  line-height: 1;
}
.theme-toggle:hover {
  opacity: 0.8;
}

/* Mobile menu toggle — full-width row with label */
.theme-toggle--mobile {
  width: 100%;
  justify-content: center;
  gap: var(--space-2);
  color: var(--color-text-primary);
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-sm);
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-border);
  margin: 0 5px;
}

/* Product image sits on a dark card. The ::after vignette harmonises
   inconsistent photo backgrounds by darkening all four edges equally. */
.product-image {
  width: 100%;
  display: block;
}

.product-image.product-image-default {
  background-color: var(--color-surface-card);
}

[data-theme=light] .product-image-default {
  filter: invert(1);
  background-color: transparent; /* let picture-info's light bg show through instead of inverting the card colour */
}

.product-card {
  width: 280px;
  margin: var(--space-3);
  overflow: hidden;
  height: 360px;
  position: relative;
  background-color: var(--color-surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255, 255, 255, 0.014) 3px, rgba(255, 255, 255, 0.014) 4px), repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(255, 255, 255, 0.009) 5px, rgba(255, 255, 255, 0.009) 6px);
  transition: height 0.5s ease-out, transform 0.5s ease-out, box-shadow 0.5s ease-out, border-color 0.5s ease-out;
}
.product-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-raised);
  border-color: var(--color-border-strong);
}
.product-card .picture-info, .product-card .description {
  margin: 0;
}
.product-card {
  /* Photo container - dark background absorbs inconsistent photo BGs */
}
.product-card .picture-info {
  height: 280px;
  padding: 0;
  position: relative;
  overflow: hidden;
  background-color: var(--color-surface-overlay, #0E0C0A);
  cursor: pointer;
  transition: height 0.5s ease-out;
}
.product-card .picture-info::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 55%, rgba(14, 11, 9, 0.45) 100%), linear-gradient(to bottom, rgba(14, 11, 9, 0.12) 0%, transparent 25%, transparent 65%, rgba(14, 11, 9, 0.28) 100%);
  pointer-events: none;
  z-index: 1;
}
.product-card .picture-info .picture {
  width: 100%;
  height: 100%;
}
.product-card .picture-info .picture img:not(.product-image-default) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: contrast(1.06) saturate(0.88);
}
.product-card .picture-info .picture .product-image-default {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.product-card .picture-info .icons {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  z-index: 2;
}
.product-card .picture-info .icons .icon {
  position: relative;
}
.product-card .picture-info .icons .icon img {
  width: 24px;
  height: 24px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface-card);
  filter: invert(1) sepia(1) saturate(0.5) hue-rotate(10deg) brightness(0.9);
}
.product-card .description {
  padding: var(--space-4);
  min-height: 80px; /* fills card bottom so amounts never bleed through */
  text-align: left;
  color: var(--color-text-primary);
  font-family: "Open Sans", sans-serif;
}
.product-card .description .product-title {
  font-size: var(--text-base);
  font-weight: 700;
  line-height: var(--leading-tight);
  margin: 0 0 var(--space-1);
}
.product-card .description .alternative-terms {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  display: block;
  margin: 0;
}
.product-card {
  /* Golden corner fold when this product is already in the basket */
}
.product-card.product-card--in-basket::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 32px 32px 0;
  border-color: transparent var(--color-primary) transparent transparent;
  z-index: 4;
}
.product-card {
  /* Expanded / detail mode - same card height, picture shrinks to reveal ordering UI */
}
.product-card.detail .picture-info {
  height: 90px;
}
.product-card.detail .description {
  padding: var(--space-2) var(--space-4);
  min-height: 50px;
}
.product-card.detail .description .alternative-terms {
  display: none;
}
.product-card.detail .amounts {
  padding: var(--space-1) var(--space-3) 0;
}
.product-card.detail .amounts .image-of-packages {
  height: 44px;
  padding: 0 var(--space-2);
  margin-top: var(--space-2);
  margin-bottom: var(--space-1);
}
.product-card.detail {
  /* All-caps micro-labels for Per pakje / Pakjes - label above input */
}
.product-card.detail .per-pakje,
.product-card.detail .pakjes {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 600;
  color: var(--color-text-muted);
  font-family: "Open Sans", sans-serif;
}
.product-card.detail .teste {
  margin-top: var(--space-1);
  margin-bottom: var(--space-1);
  font-size: var(--text-sm);
}
.product-card.detail .actions {
  margin-top: var(--space-1);
}

/* Product amounts + configurator */
.amounts {
  min-width: 230px;
  padding: 0 var(--space-4) var(--space-4);
}
.amounts .configuration {
  display: flex;
  align-items: flex-end;
  justify-content: space-evenly;
  color: var(--color-text-primary);
}
.amounts .configuration .per-pakje-input {
  display: flex;
  align-items: flex-end;
}
.amounts .configuration .per-pakje-input .number-input {
  user-select: none;
}
.amounts .configuration .per-pakje-input .number-input .number-value {
  min-width: 4ex;
}
.amounts .configuration .select-eenheid {
  background-color: var(--color-surface-input);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  margin-left: 2px;
  height: 28px;
  color: var(--color-text-primary);
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-sm);
}
.amounts .configuration .select-eenheid:disabled {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 0 var(--space-3);
  opacity: 0.6;
}
.amounts .image-of-packages {
  display: flex;
  padding: var(--space-2) var(--space-4);
  padding-left: 0;
  margin-top: 3em;
  height: 50px;
  margin-bottom: var(--space-5);
  overflow: hidden;
}
.amounts .image-of-packages .image-spacing-wrapper {
  flex: 1;
  max-width: 60%;
  min-width: 15%;
  overflow: hidden;
}
.amounts .image-of-packages .image-spacing-wrapper:not(:last-child) {
  margin-right: -10%;
}
.amounts .image-of-packages .image-spacing-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: brightness(0.85) sepia(0.3);
}

/* Price display */
.teste {
  margin-top: calc(-1 * var(--space-8));
  margin-bottom: var(--space-8);
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-accent-gold);
  text-align: center;
}

/* Actions bar */
.actions {
  display: flex;
  justify-content: space-evenly;
  margin-top: calc(-1 * var(--space-10));
}

.basket-fold-badge {
  position: absolute;
  top: 0;
  right: 0;
  width: 32px;
  height: 32px;
  z-index: 5;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.basket-fold-badge__count {
  font-size: 11px;
  font-weight: 700;
  color: white;
  font-family: "Open Sans", sans-serif;
  line-height: 1;
  transform: rotate(45deg);
  position: relative;
  text-align: center;
  left: 7px;
  top: -6px;
}

.button-product {
  max-width: 40%;
  margin-top: var(--space-2);
  border-radius: var(--radius-sm);
  display: inline-block;
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  font-size: var(--text-sm);
  font-family: "Open Sans", sans-serif;
  padding: var(--space-2) var(--space-5);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}

.button-product:hover {
  background-color: var(--color-primary-dark);
  box-shadow: var(--shadow-glow);
}

[data-theme=light] .product-card {
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(0, 0, 0, 0.018) 3px, rgba(0, 0, 0, 0.018) 4px), repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(0, 0, 0, 0.012) 5px, rgba(0, 0, 0, 0.012) 6px);
}

.number-input {
  display: inline-flex;
}

.number-button {
  margin-top: 1px;
  background-color: var(--color-surface-input);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  height: 28px;
  overflow: hidden;
  color: var(--color-text-primary);
}

.minus-button,
.plus-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--space-2);
  height: 100%;
  border: none;
  background: transparent;
  color: var(--color-text-primary);
  cursor: pointer;
  font-size: var(--text-base);
  line-height: 1;
  transition: background var(--transition-fast), color var(--transition-fast);
}
.minus-button:hover:not([disabled]),
.plus-button:hover:not([disabled]) {
  background: var(--color-primary);
  color: var(--color-text-inverse);
}

.minus-button[disabled],
.plus-button[disabled] {
  color: var(--color-text-faint);
  cursor: default;
}

.number-value {
  display: inline-block;
  user-select: none;
  text-align: center;
  padding: 0 var(--space-1);
  font-size: var(--text-sm);
  min-width: 2ch;
}

.containerCheck {
  display: block;
  position: relative;
  padding-left: 30px;
  margin-bottom: 24px;
  cursor: pointer;
  font-size: 14px !important;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.containerCheck input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 15px;
  width: 15px;
  /*background-color: #E1DBD5;*/
  border: 1px solid #443B36;
}

.checkmarkPay {
  position: absolute;
  top: 9px;
  left: 0;
  height: 15px;
  width: 15px;
  /*background-color: #E1DBD5;*/
  border: 1px solid #443B36;
}

.containerCheck:hover input ~ .checkmark {
  /*background-color: #443B36;*/
}

.containerCheck input:checked ~ .checkmark {
  /*background-color: #443B36;*/
}

.checkmark:after, .checkmarkPay:after {
  content: "";
  position: absolute;
  display: none;
}

.containerCheck input:checked ~ .checkmark:after, .containerCheck input:checked ~ .checkmarkPay:after {
  display: block;
}

.containerCheck .checkmark:after, .containerCheck .checkmarkPay:after {
  left: 3px;
  top: 0px;
  width: 5px;
  height: 9px;
  border: solid #443B36;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

.checkout-progress {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: var(--space-8) var(--space-4) var(--space-6);
  margin: 0 auto;
  max-width: 560px;
}

.checkout-progress__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.checkout-progress__circle {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-sm);
  font-weight: 700;
  border: 2px solid var(--color-border);
  background: var(--color-surface-card);
  color: var(--color-text-muted);
  transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base);
  line-height: 1;
}

.checkout-progress__step--completed .checkout-progress__circle {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-inverse);
}

/* completed steps render as <a> via LinkTo; advance step renders as <button> */
a.checkout-progress__step,
button.checkout-progress__step {
  text-decoration: none;
  cursor: pointer;
}
a.checkout-progress__step:hover .checkout-progress__circle,
button.checkout-progress__step:hover .checkout-progress__circle {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}
a.checkout-progress__step:hover .checkout-progress__label,
button.checkout-progress__step:hover .checkout-progress__label {
  text-decoration: underline;
}

button.checkout-progress__step {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
}

.checkout-progress__step--active .checkout-progress__circle {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-inverse);
  box-shadow: 0 0 0 4px rgba(200, 149, 92, 0.28), var(--shadow-glow);
}

.checkout-progress__label {
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  text-align: center;
  white-space: nowrap;
  line-height: var(--leading-tight);
}

.checkout-progress__step--completed .checkout-progress__label,
.checkout-progress__step--active .checkout-progress__label {
  color: var(--color-text-primary);
  font-weight: 600;
}

.checkout-progress__connector {
  flex: 1;
  height: 2px;
  background: var(--color-border);
  margin-top: 17px; /* center on circle: 36px / 2 − 1px */
  transition: background var(--transition-base);
  min-width: var(--space-6);
}

.checkout-progress__connector--done {
  background: var(--color-primary);
}

@media (max-width: 480px) {
  .checkout-progress__label {
    display: none;
  }
  .checkout-progress__circle {
    width: 28px;
    height: 28px;
    font-size: var(--text-xs);
  }
  .checkout-progress__connector {
    margin-top: 13px;
    min-width: var(--space-4);
  }
}
.delivery-methods {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin: var(--space-6) 0;
}

.delivery-method-card {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  width: 100%;
  padding: var(--space-4) var(--space-5);
  background: var(--color-surface-card);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  text-align: left;
  font-family: "Open Sans", sans-serif;
  transition: border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
}

.delivery-method-card:hover {
  border-color: var(--color-accent-tan);
  box-shadow: var(--shadow-card);
}

.delivery-method-card:focus-visible {
  outline: 3px solid var(--color-accent-tan);
  outline-offset: 2px;
}

.delivery-method-card--selected {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-raised), var(--shadow-glow);
  background: rgba(200, 149, 92, 0.07);
}

.delivery-method-card__icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
  filter: grayscale(1) brightness(1.8);
}

.delivery-method-card__content {
  flex: 1;
  min-width: 0;
}

.delivery-method-card__title {
  display: block;
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-text-primary);
  margin-bottom: var(--space-1);
}

.delivery-method-card__description {
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  margin: 0 0 var(--space-1);
}

.delivery-method-card__detail {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin: 0;
  font-style: italic;
}

.delivery-method-card__price {
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-text-accent);
  flex-shrink: 0;
  align-self: center;
  margin-left: var(--space-2);
}

@media (max-width: 600px) {
  .delivery-method-card {
    padding: var(--space-3) var(--space-4);
    gap: var(--space-3);
  }
}
.delivery-map-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  align-items: stretch;
}

.pickup-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  height: 32rem;
  background: var(--color-surface-card);
  border-left: 1px solid var(--color-border);
}
.pickup-list li:last-child .pickup-list-item {
  border-bottom: none;
}

.pickup-list-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  width: 100%;
  text-align: left;
  padding: var(--space-3) var(--space-4);
  background: none;
  border: none;
  border-bottom: 1px solid var(--color-border);
  border-left: 3px solid transparent;
  cursor: pointer;
  font-family: "Open Sans", sans-serif;
  transition: background var(--transition-fast), border-color var(--transition-fast);
}
.pickup-list-item:hover {
  background: rgba(200, 149, 92, 0.08);
}
.pickup-list-item--selected {
  background: rgba(200, 149, 92, 0.12);
  border-left-color: var(--color-primary);
}
.pickup-list-item--selected .pickup-list-item__name {
  color: var(--color-text-accent);
}
.pickup-list-item__name {
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-text-primary);
}
.pickup-list-item__meta {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.home-location-marker {
  /* Always inverted — same warm look as all other standalone map markers */
  filter: invert(1) sepia(0.25) brightness(1) !important;
}

@media (max-width: 600px) {
  .delivery-map-layout {
    grid-template-columns: 1fr;
  }
  .pickup-list {
    height: auto;
    max-height: none;
    overflow-y: visible;
    border-left: none;
    border-top: 1px solid var(--color-border);
  }
}
.map-title {
  text-align: center;
}

/*GALLERY*/
.gallery {
  margin: 0 auto;
  max-width: 1000px;
  display: flex;
  flex-wrap: wrap;
  display: grid;
  grid-gap: 20px;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-flow: dense;
  margin-bottom: 20px;
}

.gallery > * {
  flex: 1 1 300px;
}

.gallery img {
  width: 100%;
  display: block;
  object-fit: cover;
  height: 100%;
}

.image {
  margin: 0 auto;
  width: 320px;
  height: 200px;
}

.image-groot {
  margin: 0 auto;
  max-width: 1000px;
}

.image-groot img {
  width: 100%;
}

.textbook {
  padding: 2rem;
}
.textbook h1, .textbook h2, .textbook h3, .textbook h4, .textbook p {
  max-width: 1024px;
  margin: 0 auto;
  padding: 0;
  color: var(--color-text-primary);
}
.textbook a {
  color: var(--color-primary);
  text-decoration: underline;
  transition: color var(--transition-fast);
}
.textbook a:hover {
  color: var(--color-text-accent);
}
.textbook h1, .textbook h2, .textbook h3, .textbook h4 {
  margin-top: 2em;
  margin-bottom: 1em;
}
.textbook p {
  margin-bottom: 1em;
}

.collection-ponts {
  max-width: 1024px;
  margin: 0 auto;
  padding: 2rem;
}
.collection-ponts h1, .collection-ponts h2, .collection-ponts h3, .collection-ponts h4, .collection-ponts p {
  max-width: 1024px;
  margin: 0 auto;
  padding: 0;
  color: var(--color-text-primary);
}
.collection-ponts h1, .collection-ponts h2, .collection-ponts h3, .collection-ponts h4 {
  margin-top: 2em;
  margin-bottom: 1em;
}
.collection-ponts .PostNL {
  width: 250px;
}
.collection-ponts p {
  margin-bottom: 1em;
}

/* Leaflet map - theme-aware defaults
   Targets .leaflet-map, our custom class on <DeliveryLocationsMap>.
   Does NOT affect veeakker-home-map (no leaflet-map class there). */
.leaflet-map {
  background: var(--color-surface-card); /* prevents light-grey flash before tiles arrive */
  /* Dark mode: invert CartoDB light tiles → high-contrast dark map.
     hue-rotate(180deg) partially un-shifts the inverted colours so
     water/parks look less garish; saturate tones down the remainder.
     This gives far better readability than dark_all tiles. */
}
.leaflet-map .leaflet-tile-pane {
  filter: invert(1) hue-rotate(180deg) saturate(1.5) brightness(1.1) sepia(0.3);
}
.leaflet-map {
  /* Dark mode: img-based icons - invert to make visible, pull brightness
     back so they don't float above tile labels.
     div-icons (home marker) are excluded: they carry their own colours. */
}
.leaflet-map .leaflet-marker-icon:not(.leaflet-div-icon) {
  filter: invert(1) sepia(0.25) brightness(0.65);
}
.leaflet-map {
  /* Selected place: add amber glow on top of the dark-mode filter */
}
.leaflet-map .leaflet-marker-icon.marker-selected:not(.leaflet-div-icon) {
  filter: invert(1) sepia(0.25) brightness(0.65) drop-shadow(0 0 6px #C8955C) drop-shadow(0 0 3px #C8955C);
}
.leaflet-map {
  /* div-icon container: strip Leaflet's default white box */
}
.leaflet-map .leaflet-div-icon {
  background: none !important;
  border: none !important;
}

[data-theme=light] .leaflet-map .leaflet-tile-pane {
  filter: sepia(0.1);
}
[data-theme=light] .leaflet-map .leaflet-marker-icon:not(.leaflet-div-icon) {
  filter: none;
}
[data-theme=light] .leaflet-map .leaflet-marker-icon.marker-selected:not(.leaflet-div-icon) {
  filter: drop-shadow(0 0 6px #C8955C) drop-shadow(0 0 3px #C8955C);
}

.veeakker-home-map__leaflet-map .leaflet-map {
  height: 400px;
  width: 100%;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-raised);
}

/* Light mode: apply the same invert filter the dark mode already uses,
   so the blue default marker reads as warm/gold in both themes. */
[data-theme=light] .veeakker-home-map__leaflet-map .leaflet-map .leaflet-marker-icon:not(.leaflet-div-icon) {
  filter: invert(1) sepia(0.25) brightness(1);
}

.productentopbanner {
  height: 250px;
  background-image: url("/images/ondergrond-social-extra-cb8d289d675523fe7d176caaab495ea0.jpg");
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}
.productentopbanner h1 {
  margin: 0 auto;
  font-size: 18px;
  font-weight: 600;
  margin-top: 76px;
  color: #F0E8DC;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.gallery {
  margin-top: 4rem;
}

.producten p {
  text-align: justify;
}

.producten .extra-menu {
  margin: 0 auto;
  margin-top: 50px;
  text-align: center;
  min-height: 155px;
  max-width: 1040px;
}

.extra-menu a {
  text-transform: uppercase;
  display: inline-block;
  width: 150px;
  border-bottom: 3px solid var(--color-border);
  text-align: center;
  margin: 8px;
  color: var(--color-text-primary);
  transition: background-color var(--transition-base), color var(--transition-base);
}
.extra-menu a img {
  width: 150px;
  background-color: var(--color-border);
}
.extra-menu a h5 {
  padding: 10px;
  margin: 0px;
}
.extra-menu a:hover {
  background-color: var(--color-primary-dark);
  cursor: pointer;
  color: var(--color-text-inverse);
}
.extra-menu a.active {
  border-bottom: 3px solid var(--color-primary);
  cursor: pointer;
}
.extra-menu a.active img {
  background-color: var(--color-primary);
  cursor: pointer;
}
.extra-menu a.active:hover {
  background-color: var(--color-primary);
  cursor: pointer;
}

.locaties .extra-menu a {
  transition: background-color var(--transition-base), color var(--transition-base);
  text-transform: uppercase;
  display: block;
  float: left;
  width: 184px;
  border-bottom: 3px solid var(--color-border);
  margin-top: 0px;
  padding: 10px 10px 7px 10px;
  color: var(--color-text-primary);
  font-size: 83%;
  font-weight: bold;
}
.locaties .extra-menu a:hover {
  background-color: var(--color-primary-dark);
  color: var(--color-text-inverse);
}
.locaties .extra-menu a.active {
  border-bottom: 3px solid var(--color-primary);
}
.locaties .extra-menu a.active:hover {
  background-color: var(--color-primary);
}

.locaties .extra-menu {
  padding-top: 2rem;
  padding-bottom: 2rem;
  margin: 0 auto;
  min-height: 56px;
  overflow: hidden;
  text-align: center;
}

.extra-menu {
  width: fit-content;
}

@media screen and (min-width: 600px) and (max-width: 1040px) {
  .locaties .extra-menu {
    max-width: 600px;
  }
  .locaties .extra-menu a {
    width: 170px;
  }
}
@media screen and (max-width: 600px) {
  .locaties .extra-menu {
    max-width: 1020px;
    margin-bottom: 10px;
  }
  .locaties .extra-menu a {
    width: 100%;
    margin: 0;
    margin-top: 10px;
  }
  .extra-menu {
    width: 100%;
  }
}
.locaties .maps .leaflet-container {
  height: 800px;
  margin: 0 1em;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-raised);
}

/*LOCATIES*/
.locatiestopbanner {
  height: 250px;
  background-image: url("/images/locaties-789ddeff85d15e340c2f3ab11191cad8.jpg");
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}

.locaties h1 {
  margin: 0 auto;
  font-size: 18px;
  font-weight: 600;
  margin-top: 76px;
  color: #F0E8DC;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.locaties h5 {
  margin: 0px;
}

.locaties .extra-menu {
  margin: 0 auto;
  min-height: 56px;
  overflow: hidden;
}

.winkel, .toeren, .natuurwinkels, .buurderijen, .webshop {
  display: block;
  float: left;
  width: 184px;
  border-bottom: 3px solid var(--color-border);
  text-align: center;
  margin: 10px;
  color: var(--color-text-primary);
  transition: background-color var(--transition-base), color var(--transition-base);
}

.winkel:hover, .toeren:hover, .natuurwinkels:hover, .buurderijen:hover, .webshop:hover {
  background-color: var(--color-primary-dark);
  cursor: pointer;
  color: var(--color-text-inverse);
}

.winkel.active, .toeren.active, .natuurwinkels.active, .buurderijen.active, .webshop.active {
  border-bottom: 3px solid var(--color-primary);
  cursor: pointer;
}

.winkel.active:hover, .toeren.active:hover, .natuurwinkels.active:hover, .buurderijen.active:hover, .webshop.active:hover {
  background-color: var(--color-primary);
  cursor: pointer;
}

.winkel h5, .toeren h5, .natuurwinkels h5, .buurderijen h5, .webshop h5 {
  padding: 10px;
  margin-top: 0px !important;
}

.locaties p {
  margin: 0 auto;
  max-width: 1040px;
  color: var(--color-text-primary);
  text-align: justify;
  padding: 0px 20px 30px 20px;
}

#winkel, #toeren, #natuurwinkels, #buurderijen, #webshop {
  display: none;
}

.maps {
  margin-bottom: 10px;
}

.maps img {
  width: 100%;
}

.legende {
  width: 100%;
  display: flex;
  justify-content: center;
}
.legende table {
  border-collapse: collapse;
}
.legende th {
  padding: var(--space-3) var(--space-6);
  text-align: center;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  font-weight: 400;
  letter-spacing: 0.04em;
}
.legende p {
  margin: var(--space-1) 0 0;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}
.legende img {
  filter: invert(1) sepia(0.2) brightness(0.88);
  display: block;
  margin: 0 auto;
}

[data-theme=light] .legende img {
  filter: none;
}

/* .four-columns {
   display: relative;
   width: 100%;

   background-color: yellow;

   .column {
   color: red;
   }
   } */
/* Page layout */
.basket-page {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 0 var(--space-4) var(--space-12);
}

.basket-page__title {
  font-size: var(--text-3xl);
  color: var(--color-text-primary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: var(--space-8) 0 var(--space-2);
  text-align: center;
  font-family: "Varela Round", sans-serif;
}

/* Card container */
.basket-card {
  background-color: var(--color-surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
  overflow: hidden; /* clips banner + row backgrounds to rounded corners */
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255, 255, 255, 0.014) 3px, rgba(255, 255, 255, 0.014) 4px), repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(255, 255, 255, 0.009) 5px, rgba(255, 255, 255, 0.009) 6px);
}

/* Unavailability banner (full-bleed inside card) */
.basket-unavailable-banner {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  background: rgba(200, 149, 92, 0.1);
  border-bottom: 1px solid rgba(200, 149, 92, 0.28);
  padding: var(--space-4) var(--space-6);
  font-family: "Open Sans", sans-serif;
}
.basket-unavailable-banner .basket-unavailable-banner__icon {
  font-size: var(--text-base);
  flex-shrink: 0;
  line-height: 1.5;
}
.basket-unavailable-banner p {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  margin: 0;
  line-height: var(--leading-normal);
}

/* Empty basket */
.empty-shop {
  margin-top: var(--space-8);
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.empty-shop p {
  text-align: center;
  color: var(--color-text-muted);
  padding: var(--space-6);
  font-size: var(--text-lg);
  font-family: "Open Sans", sans-serif;
}

/* Cart items */
.cart-item {
  font-family: "Open Sans", sans-serif;
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--color-border);
  transition: background var(--transition-fast);
}
.cart-item:last-child {
  border-bottom: none;
}
.cart-item .cart-thumbnail {
  width: 100px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  position: relative;
  background: var(--color-surface-overlay, #0E0C0A);
  align-self: flex-start;
  /* Corner vignette that harmonises inconsistent photo backgrounds */
}
.cart-item .cart-thumbnail::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 52%, rgba(14, 11, 9, 0.45) 100%);
  pointer-events: none;
}
.cart-item .cart-thumbnail img {
  display: block;
  width: 100%;
  filter: contrast(1.05) saturate(0.88);
}

/* Disabled product (offering turned off in system) */
.cart-item.product-disabled {
  opacity: 0.45;
}
.cart-item.product-disabled * {
  text-decoration: line-through;
}
.cart-item.product-disabled .product-disabled-message {
  text-decoration: none;
  color: var(--color-text-faint);
  font-size: var(--text-sm);
  font-style: italic;
}

/* Unavailable at chosen location */
.cart-item.not-available-at-location {
  background: rgba(200, 149, 92, 0.05);
  border-left: 2px solid rgba(200, 149, 92, 0.4);
}
.cart-item.not-available-at-location .product-unavailable-message {
  font-size: var(--text-xs);
  color: var(--color-text-accent);
  font-style: italic;
  margin: var(--space-2) 0 0;
  text-decoration: none;
}

/* Order info (product name + quantity) */
.order-info {
  flex: 1;
  min-width: 0;
}
.order-info h3 {
  margin: 0 0 var(--space-1);
}
.order-info h3 a {
  color: var(--color-text-primary);
  text-decoration: none;
  font-size: var(--text-base);
  font-weight: 700;
  line-height: var(--leading-tight);
  transition: color var(--transition-fast);
}
.order-info h3 a:hover {
  color: var(--color-primary);
}
.order-info h4 {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  font-weight: 400;
  margin: 0;
}
.order-info .order-comment {
  display: block;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  font-style: italic;
  margin-top: var(--space-1);
}

/* Order extra (price + remove) */
.order-extra {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-2);
  flex-shrink: 0;
  text-align: right;
}

.order-price-per-unit {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.order-total-price {
  display: block;
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-accent-gold);
}

/* Remove button */
.remove-button {
  border: none;
  background: transparent;
  color: var(--color-text-faint);
  cursor: pointer;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
  font-size: var(--text-sm);
  line-height: 1;
  transition: color var(--transition-fast), background var(--transition-fast);
}
.remove-button:hover {
  color: #E07070;
  background: rgba(200, 100, 80, 0.12);
}

/* Comment button */
.add-comment-button {
  color: var(--color-text-muted);
  border: none;
  background: transparent;
  font-size: var(--text-sm);
  font-family: "Open Sans", sans-serif;
  cursor: pointer;
  padding: 0;
  margin-top: var(--space-2);
  transition: color var(--transition-fast);
}
.add-comment-button:hover {
  color: var(--color-primary);
}

/* Cart total */
.cart-total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-1);
  padding: var(--space-5) var(--space-6);
  border-top: 1px solid var(--color-border-strong);
  background: rgba(200, 149, 92, 0.04);
}

.cart-price {
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--color-text-primary);
  margin: 0;
  font-family: "Varela Round", sans-serif;
}
.cart-price .money {
  color: var(--color-accent-gold);
}

.cart-message {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin: 0 0 var(--space-3);
  font-family: "Open Sans", sans-serif;
  letter-spacing: 0.02em;
}

/* Buttons */
.button-product {
  text-align: center;
  margin: var(--space-2) auto;
  max-width: fit-content;
}
.button-product a {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  text-decoration: none;
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-base);
  font-weight: 700;
  padding: var(--space-3) var(--space-10);
  display: inline-block;
  border-radius: var(--radius-sm);
  letter-spacing: 0.05em;
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}
.button-product a:hover {
  background-color: var(--color-primary-dark);
  box-shadow: var(--shadow-glow);
}

.button-product-cart {
  margin-top: var(--space-2);
}
.button-product-cart a, .button-product-cart button {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  font-size: var(--text-base);
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  padding: var(--space-3) var(--space-8);
  text-decoration: none;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: inline-block;
  letter-spacing: 0.05em;
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}
.button-product-cart a:hover, .button-product-cart button:hover {
  background-color: var(--color-primary-dark);
  box-shadow: var(--shadow-glow);
}
.button-product-cart a[disabled], .button-product-cart button[disabled] {
  background-color: var(--color-border);
  color: var(--color-text-faint);
  cursor: not-allowed;
  box-shadow: none;
}

/* Mobile */
@media (max-width: 600px) {
  .basket-page {
    padding: 0 0 var(--space-12);
  }
  .basket-card {
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
}
@media (max-width: 480px) {
  .cart-item {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-4);
    align-items: start;
  }
  .cart-item .cart-thumbnail {
    grid-row: 1/3;
    align-self: start;
    width: 100%;
  }
  .cart-item .order-info {
    grid-column: 2;
  }
  .cart-item .order-extra {
    grid-column: 2;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .cart-item .product-unavailable-message {
    grid-column: 1/-1;
  }
  .basket-unavailable-banner,
  .cart-total {
    padding: var(--space-4);
  }
}
/* Order history table (baskets/index) */
.my-account table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-sm);
}

.my-account thead th {
  text-align: left;
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 600;
  color: var(--color-text-muted);
  border-bottom: 1px solid var(--color-border-strong);
}

.my-account tbody tr {
  border-bottom: 1px solid var(--color-border);
  transition: background var(--transition-fast);
}
.my-account tbody tr:last-child {
  border-bottom: none;
}
.my-account tbody tr:hover {
  background: rgba(200, 149, 92, 0.05);
}

.my-account tbody td {
  padding: var(--space-4);
  color: var(--color-text-primary);
  vertical-align: middle;
}

/* Status badge */
.my-account .status-confirmed,
.my-account td:nth-child(2) {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Basket card container */
.baskets-card {
  background-color: var(--color-surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
  overflow: hidden;
  margin: var(--space-6) var(--space-12);
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255, 255, 255, 0.014) 3px, rgba(255, 255, 255, 0.014) 4px), repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(255, 255, 255, 0.009) 5px, rgba(255, 255, 255, 0.009) 6px);
}

/* Breadcrumb (baskets/show) */
.breadcrumb-cart {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  padding: var(--space-4) var(--space-12);
  margin: 0;
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
.breadcrumb-cart li {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.breadcrumb-cart li::after {
  content: "›";
  color: var(--color-text-faint);
}
.breadcrumb-cart li:last-child::after {
  display: none;
}
.breadcrumb-cart a {
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.breadcrumb-cart a:hover {
  color: var(--color-primary);
}
.breadcrumb-cart {
  /* Current page item */
}
.breadcrumb-cart li:last-child a {
  color: var(--color-text-accent);
  font-weight: 600;
}

/* Order detail section (baskets/show) */
.order {
  max-width: 800px;
  margin: var(--space-6) auto var(--space-12);
  padding: 0 var(--space-4);
}
.order h2 {
  font-size: var(--text-xl);
  color: var(--color-text-primary);
  font-family: "Varela Round", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 var(--space-4);
}
.order {
  /* Re-order card container matching basket-card */
}
.order .basket-card {
  margin: 0;
}

/* Already-in-basket note under re-order button */
.already-in-basket-note {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-primary);
  font-family: "Open Sans", sans-serif;
  margin-top: var(--space-1);
}

/* "Add to current basket" button in order lines */
.order .cart-item .order-extra button {
  background: transparent;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text-muted);
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-xs);
  padding: var(--space-1) var(--space-3);
  cursor: pointer;
  transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);
}
.order .cart-item .order-extra button:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: rgba(200, 149, 92, 0.08);
}
.order .cart-item .order-extra button i {
  margin-right: var(--space-1);
  font-size: var(--text-xs);
}

@media (max-width: 600px) {
  .breadcrumb-cart {
    padding: var(--space-3) var(--space-4);
  }
  .baskets-card {
    margin: var(--space-4) 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
}
.webshop-header {
  width: 100%;
  margin: 0;
}

/* Navigation */
.account-header {
  width: 100%;
  display: inline-block;
  overflow: hidden;
}
.account-header div {
  float: right;
  padding: var(--space-2) var(--space-3);
  min-width: 320px;
}
.account-header a, .account-header button {
  text-decoration: none;
  text-align: center;
  color: var(--color-text-muted);
  font-size: 22px;
  padding: var(--space-2) var(--space-3);
  margin: 0;
  border: none;
  background-color: transparent;
  transition: color var(--transition-fast);
}
.account-header a:hover, .account-header button:hover {
  color: var(--color-primary);
  cursor: pointer;
}
.account-header a.basket-nav--filled {
  color: var(--color-primary);
}
.account-header a.basket-nav--filled:hover {
  color: var(--color-primary-dark);
}
.account-header .basket-nav__count {
  font-size: var(--text-sm);
  font-weight: 700;
  font-family: "Open Sans", sans-serif;
  vertical-align: middle;
}
.account-header .basket-nav__price {
  font-size: var(--text-sm);
  font-family: "Open Sans", sans-serif;
  vertical-align: middle;
}

.menu-header {
  background-color: var(--color-nav-bg);
  background-image: repeating-linear-gradient(105deg, transparent, transparent 8px, rgba(255, 255, 255, 0.008) 8px, rgba(255, 255, 255, 0.008) 9px);
  border-bottom: 1px solid var(--color-border);
}
.menu-header a:hover {
  background-color: var(--color-nav-bg-hover);
}
.menu-header a.active {
  border-bottom: 2px solid var(--color-nav-bar-active);
  color: var(--color-nav-bar-text);
}

.submenu-header {
  width: 100%;
  background-color: var(--color-nav-secondary-bg);
  border-bottom: 1px solid var(--color-border);
}
.submenu-header a:hover {
  background-color: var(--color-nav-secondary-bg-hover);
}
.submenu-header a.active {
  border-bottom: 2px solid var(--color-nav-bar-active);
}

.scrollable-header {
  overflow: auto;
  white-space: nowrap;
  justify-content: center;
  text-align: center;
}
.scrollable-header a {
  display: inline-block;
  text-decoration: none;
  text-align: center;
  color: var(--color-nav-bar-text);
  font-size: var(--text-base);
  font-family: "Varela Round", sans-serif;
  padding: var(--space-4);
  transition: color var(--transition-fast);
}
.scrollable-header a:hover {
  color: var(--color-nav-bar-text-hover);
}

/* Page-level heading used across multiple shop pages */
.tab-title {
  font-size: var(--text-3xl);
  color: var(--color-text-primary);
  margin: var(--space-8) 0 var(--space-4);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: "Varela Round", sans-serif;
}

/* Product grid */
.products {
  padding: var(--space-6) 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

#product {
  padding: 5%;
}
#product .fav-button {
  display: none;
  text-decoration: none;
  text-align: center;
  color: var(--color-text-primary);
  font-size: 22px;
  padding: 10px;
  margin: 0 5px;
  border: none;
  background-color: transparent;
}
#product .fav-button:hover {
  color: var(--color-text-muted);
  cursor: pointer;
}
#product i {
  font-size: 25px;
  margin: 30px;
}

.product-info {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  width: 100%;
}

dl.general-product-information {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-1) var(--space-4);
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
  font-size: var(--text-sm);
}
dl.general-product-information dt {
  text-align: right;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-text-muted);
  padding: 0;
  margin: 0;
}
dl.general-product-information dt::after {
  content: ":";
  margin-right: 5px;
}
dl.general-product-information dd {
  text-align: left;
  color: var(--color-text-primary);
  padding: 0;
  margin: 0;
}

/* Tab outlet container */
.product-tab-content {
  max-width: 680px;
  margin: 0 auto var(--space-8);
  padding: 0 var(--space-4);
  color: var(--color-text-primary);
  font-family: "Open Sans", sans-serif;
}

/* Prose content from backend HTML */
.prose-content {
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-text-primary);
  padding: var(--space-3) 0 var(--space-2);
}
.prose-content p {
  margin: 0 0 var(--space-3);
}
.prose-content ul, .prose-content ol {
  margin: 0 0 var(--space-3) var(--space-5);
  padding: 0;
}
.prose-content li {
  margin-bottom: var(--space-1);
}
.prose-content strong {
  color: var(--color-text-accent);
}

/* Allergens and ingredients as inline pills */
.allergen-content,
.ingredient-content {
  padding: var(--space-3) 0;
}
.allergen-content ul,
.ingredient-content ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.allergen-content li,
.ingredient-content li {
  background: rgba(200, 149, 92, 0.06);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: var(--space-1) var(--space-3);
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  font-family: "Open Sans", sans-serif;
}
.allergen-content p,
.ingredient-content p {
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-text-primary);
  margin: 0 0 var(--space-2);
}

.allergen-content ul {
  justify-content: center;
}

/* Uppercase micro-label above tab content sections */
.tab-section-label {
  display: block;
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
  font-family: "Open Sans", sans-serif;
}

/* Supplier name heading */
.tab-supplier-name {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-text-accent);
  margin: 0 0 var(--space-3);
  padding-top: var(--space-3);
  font-family: "Varela Round", sans-serif;
}

.info-img {
  margin: 2.5%;
  float: left;
  max-width: 600px;
  min-width: 350px;
}

.info-txt {
  margin: 2.5%;
  color: var(--color-text-primary);
  text-align: left;
  width: 600px;
}
.info-txt .image-of-packages {
  height: 100px;
}
.info-txt h3 {
  font-size: 20px;
  font-family: "Open Sans";
  text-transform: uppercase;
}
.info-txt p {
  padding: 2%;
}
.info-txt .pakjes {
  margin-left: 30px;
}
.info-txt .configuration {
  justify-content: flex-start;
}

.no-padding {
  padding: 20px 0px !important;
}

#product-labels {
  margin-bottom: 20px;
}

.extra-menu-product {
  max-width: 1020px;
  margin: 0 auto;
  min-height: 56px;
  overflow: hidden;
  padding-top: 30px;
  text-align: center;
}
.extra-menu-product a {
  display: inline-block;
  width: 180px;
  border-bottom: 3px solid var(--color-border);
  text-align: center;
  margin: 8px;
  color: var(--color-text-primary);
  transition: background-color var(--transition-base), color var(--transition-base);
}
.extra-menu-product a:hover {
  background-color: var(--color-primary-dark);
  cursor: pointer;
  color: var(--color-text-inverse);
}
.extra-menu-product a.active {
  border-bottom: 3px solid var(--color-primary);
  cursor: pointer;
}
.extra-menu-product a.active:hover {
  background-color: var(--color-primary);
  cursor: pointer;
  color: var(--color-text-inverse);
}
.extra-menu-product h5 {
  padding: 10px;
  margin: 0px !important;
}
.extra-menu-product p {
  margin: 20px 0;
  color: var(--color-text-primary);
}

.checkout-contact {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: var(--space-6);
}

.contact-info {
  width: 100%;
  max-width: 560px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
  padding: var(--space-8);
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255, 255, 255, 0.014) 3px, rgba(255, 255, 255, 0.014) 4px), repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(255, 255, 255, 0.009) 5px, rgba(255, 255, 255, 0.009) 6px);
}
.contact-info h2 {
  color: var(--color-text-primary);
  font-size: var(--text-xl);
  margin: 0 0 var(--space-6);
  display: block;
  text-align: left;
  letter-spacing: 0.04em;
}
.contact-info p {
  color: var(--color-text-primary);
  font-size: var(--text-sm);
  margin: 0 0 var(--space-6);
  line-height: var(--leading-normal);
  display: block;
}
.contact-info p a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
}
.contact-info .error {
  color: var(--color-primary);
  font-size: var(--text-sm);
  padding-left: var(--space-4);
  margin: var(--space-4) 0;
  list-style: disc;
}

/* Auth notice (logged-in confirmation) */
.auth-notice {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  background: rgba(122, 155, 98, 0.1);
  border: 1px solid rgba(122, 155, 98, 0.35);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-6);
  font-family: "Open Sans", sans-serif;
}
.auth-notice .auth-notice__icon {
  width: 22px;
  height: 22px;
  border-radius: var(--radius-full);
  background: var(--color-accent-eco);
  color: var(--color-text-inverse);
  font-size: var(--text-xs);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}
.auth-notice strong {
  display: block;
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-accent-eco);
  margin-bottom: var(--space-1);
}
.auth-notice p {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin: 0;
  line-height: var(--leading-normal);
}

/* Login prompt (guest) */
.login-prompt {
  background: rgba(200, 149, 92, 0.06);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-6);
  font-size: var(--text-sm);
  font-family: "Open Sans", sans-serif;
  color: var(--color-text-muted);
}
.login-prompt a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
}

/* Error messages */
.error-message {
  color: var(--color-primary);
  font-size: var(--text-sm);
  font-family: "Open Sans", sans-serif;
  margin-bottom: var(--space-4);
}
.error-message ul {
  padding-left: var(--space-4);
  list-style: disc;
  margin: 0;
}

/* Divider */
.contact-info hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: var(--space-6) 0;
}

/* Form layout */
.form-field {
  display: flex;
  flex-direction: column;
  margin-bottom: var(--space-4);
}
.form-field input {
  margin-bottom: 0;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
}

/* Inputs */
.contact-info input,
.contact-info-different input {
  padding: var(--space-3);
  margin-bottom: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text-primary);
  font-size: var(--text-base);
  background: var(--color-surface-input);
  font-family: "Open Sans", sans-serif;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.contact-info input::placeholder,
.contact-info-different input::placeholder {
  color: var(--color-text-faint);
}
.contact-info input:focus,
.contact-info-different input:focus {
  outline: none;
  border-color: var(--color-border-focus);
  box-shadow: 0 0 0 3px rgba(200, 149, 92, 0.18);
}

/* Labels */
.contact-info label,
.contact-info-different label {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  font-weight: 600;
  margin-bottom: var(--space-1);
  font-family: "Open Sans", sans-serif;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* Alternate delivery address section */
.contact-info-different {
  width: 100%;
  display: flex;
  flex-direction: column;
  max-width: 500px;
  margin-top: var(--space-6);
}
.contact-info-different h2 {
  margin-bottom: var(--space-4);
}

/* CTA buttons */
.button-product-cart {
  text-align: right;
  margin: var(--space-4) 0 0;
}
.button-product-cart a, .button-product-cart button {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  font-size: var(--text-base);
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  padding: var(--space-3) var(--space-8);
  text-decoration: none;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: inline-block;
  letter-spacing: 0.04em;
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}
.button-product-cart a:hover, .button-product-cart button:hover {
  background-color: var(--color-primary-dark);
  box-shadow: var(--shadow-glow);
}
.button-product-cart a[disabled], .button-product-cart button[disabled] {
  background-color: var(--color-border);
  color: var(--color-text-faint);
  cursor: not-allowed;
  box-shadow: none;
}

/* Confirmation page contact details */
.contactDetails {
  color: var(--color-text-primary);
  margin-bottom: var(--space-6);
}
.contactDetails .frost-div {
  margin-top: var(--space-6);
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: var(--space-2);
}
.contactDetails .frost-div p {
  margin: 0;
  font-size: var(--text-sm);
}
.contactDetails .frost {
  height: 25px;
  width: 25px;
  flex-shrink: 0;
  filter: invert(1) sepia(1) saturate(0.4) brightness(0.85);
}

@media (max-width: 600px) {
  .form-row {
    grid-template-columns: 1fr;
  }
  .contact-info {
    padding: var(--space-6) var(--space-4);
  }
}
.delivery-contact {
  color: var(--color-text-primary);
  width: 100%;
  display: flex;
  justify-content: center;
}

/* Delivery page needs more room for maps */
.delivery-contact .contact-info {
  max-width: 1100px;
}

/* Finish page */
/* Step down from delivery (1100px) toward basket (800px) */
.finish-page .contact-info {
  max-width: 800px;
}

/* Full-bleed success banner at the top of the card */
.finish-banner {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  /* bleed to card edges - undoes the card's var(--space-8) padding */
  margin: calc(-1 * var(--space-8)) calc(-1 * var(--space-8)) var(--space-6);
  padding: var(--space-5) var(--space-8);
  background: rgba(200, 149, 92, 0.1);
  border-bottom: 1px solid rgba(200, 149, 92, 0.25);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
@media (max-width: 600px) {
  .finish-banner {
    margin: calc(-1 * var(--space-6)) calc(-1 * var(--space-4)) var(--space-6);
    padding: var(--space-4);
    border-radius: 0;
  }
}

.finish-banner__icon {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  background: var(--color-primary);
  color: var(--color-text-inverse);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-base);
  font-weight: 700;
  flex-shrink: 0;
}

.finish-banner strong {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-text-accent);
  font-family: "Varela Round", sans-serif;
  letter-spacing: 0.04em;
}

/* Labeled summary sections (Levering, Contactgegevens) */
.finish-section {
  margin-bottom: var(--space-5);
  padding-bottom: var(--space-5);
  border-bottom: 1px solid var(--color-border);
}
.finish-section:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

.finish-section__label {
  display: block;
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
  margin-bottom: var(--space-2);
  font-family: "Open Sans", sans-serif;
}

.finish-section p {
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  margin: 0;
  line-height: var(--leading-normal);
}

.finish-section__sub {
  margin-top: var(--space-2) !important;
  color: var(--color-text-muted) !important;
}

/* "Bestelde producten" card on finish page — matches .contact-info width */
.finish-page ~ .order {
  padding: 0;
}

/* LFW upsell - sits below the order receipt */
.finish-upsell {
  max-width: 800px;
  margin: var(--space-4) auto var(--space-8);
  padding: var(--space-4) var(--space-6);
  background: rgba(200, 149, 92, 0.04);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: "Open Sans", sans-serif;
}
.finish-upsell p {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin: 0;
  line-height: var(--leading-normal);
}
.finish-upsell strong {
  color: var(--color-text-primary);
}
.finish-upsell a {
  color: var(--color-primary);
  text-decoration: underline;
}
.finish-upsell a:hover {
  color: var(--color-primary-dark);
}

/* Map container */
.delivery-map {
  margin: var(--space-4) calc(-1 * var(--space-8));
}
@media (max-width: 600px) {
  .delivery-map {
    margin-left: 0;
    margin-right: 0;
  }
}
.delivery-map .leaflet-map {
  height: 32rem;
  width: 100%;
  left: 0;
  border-left: none;
  border-right: none;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  border-radius: 0;
}

/* Selected pickup place card */
.delivery-place {
  text-align: left;
  padding: var(--space-4);
  background: rgba(200, 149, 92, 0.07);
  border: 1px solid var(--color-border-strong);
  border-left: 3px solid var(--color-primary);
  border-radius: var(--radius-md);
  margin: var(--space-4) 0;
}
.delivery-place h4 {
  color: var(--color-text-accent);
  font-weight: 700;
  margin-bottom: var(--space-2);
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.delivery-place p {
  color: var(--color-text-primary);
  font-size: var(--text-sm);
  margin: 0;
  line-height: var(--leading-normal);
}

/* Info link */
#extra-info {
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: var(--text-sm);
  margin-bottom: var(--space-2);
  display: inline-block;
  transition: color var(--transition-fast);
}
#extra-info:hover {
  text-decoration: underline;
  color: var(--color-text-primary);
}

/* Unavailable items warning */
.unavailable-warning {
  background: rgba(200, 149, 92, 0.08);
  border: 1px solid rgba(200, 149, 92, 0.3);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  margin-top: var(--space-4);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}
.unavailable-warning p {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  margin: 0;
  line-height: var(--leading-normal);
}

.btn-warning {
  background: var(--color-primary);
  color: var(--color-text-inverse);
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-sm);
  font-weight: 700;
  padding: var(--space-2) var(--space-5);
  text-decoration: none;
  border-radius: var(--radius-sm);
  display: inline-block;
  letter-spacing: 0.04em;
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}
.btn-warning:hover {
  background: var(--color-primary-dark);
  box-shadow: var(--shadow-glow);
}

/* Leaflet popup - dark brand overrides */
.leaflet-popup-content-wrapper {
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-strong);
  border-top: 2px solid var(--color-primary);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-float);
  padding: 0;
}

.leaflet-popup-content {
  margin: var(--space-4) var(--space-5);
  font-family: "Open Sans", sans-serif;
  color: var(--color-text-primary);
}
.leaflet-popup-content h3 {
  font-size: var(--text-sm);
  font-weight: 700;
  margin: 0 0 var(--space-2);
  color: var(--color-text-accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.leaflet-popup-content p {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin: 0 0 var(--space-4);
  line-height: var(--leading-normal);
}
.leaflet-popup-content button {
  background: var(--color-primary);
  color: var(--color-text-inverse);
  border: none;
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-sm);
  font-weight: 700;
  padding: var(--space-2) var(--space-5);
  cursor: pointer;
  border-radius: var(--radius-sm);
  letter-spacing: 0.04em;
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}
.leaflet-popup-content button:hover {
  background: var(--color-primary-dark);
  box-shadow: var(--shadow-glow);
}

.popup-selected {
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-text-accent);
  margin: 0;
}

.leaflet-popup-tip {
  background: var(--color-border-strong);
}

.leaflet-popup-close-button {
  color: var(--color-text-muted) !important;
  font-size: 18px;
  padding: var(--space-2) var(--space-3) !important;
  right: var(--space-2) !important;
  top: var(--space-1) !important;
}
.leaflet-popup-close-button:hover {
  color: var(--color-text-primary) !important;
}

#account-name {
  font-size: var(--text-3xl);
  color: var(--color-text-primary);
  margin: var(--space-12) var(--space-12) var(--space-6);
  border-bottom: 1px solid var(--color-border);
  padding-bottom: var(--space-4);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-family: "Varela Round", sans-serif;
}

.my-account {
  max-width: 50em;
  margin: auto;
}

.tab-title a {
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.tab-title a:hover {
  color: var(--color-primary);
}
.tab-title a.active {
  color: var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
}

#account-information {
  display: flex;
  flex-direction: column;
  background-color: var(--color-surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
  margin: var(--space-8) var(--space-12);
  padding: var(--space-8);
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255, 255, 255, 0.014) 3px, rgba(255, 255, 255, 0.014) 4px), repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(255, 255, 255, 0.009) 5px, rgba(255, 255, 255, 0.009) 6px);
}
#account-information h1 {
  text-align: left;
  color: var(--color-text-primary);
  font-size: var(--text-2xl);
  margin: 0 0 var(--space-6);
  letter-spacing: 0.04em;
}
#account-information dl {
  color: var(--color-text-primary);
}
#account-information dl dt {
  margin-top: var(--space-4);
  font-weight: 700;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
}
#account-information dl dt::after {
  content: "";
}
#account-information dl dd {
  margin-left: 0;
  margin-top: var(--space-2);
  display: flex;
}
#account-information dl dd input {
  padding: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background-color: var(--color-surface-input);
  color: var(--color-text-primary);
  font-family: "Open Sans", sans-serif;
  font-size: var(--text-base);
  width: 100%;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
#account-information dl dd input:focus {
  outline: none;
  border-color: var(--color-border-focus);
  box-shadow: 0 0 0 3px rgba(200, 149, 92, 0.18);
}
#account-information dl dd input::placeholder {
  color: var(--color-text-faint);
}

.onstopbanner {
  height: 250px;
  background-image: url("/images/ondergrond-social-extra-cb8d289d675523fe7d176caaab495ea0.jpg");
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}

.onstopbanner h1 {
  margin: 0 auto;
  font-size: 18px;
  font-weight: 600;
  margin-top: 76px;
  color: #F0E8DC;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.overons .gallery {
  margin-top: 4rem;
}

/*NIEUWS*/
.nieuwstopbanner {
  height: 250px;
  background-image: url("/images/ondergrond-social-extra-cb8d289d675523fe7d176caaab495ea0.jpg");
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}

.nieuws h1 {
  margin: 0 auto;
  font-size: 18px;
  font-weight: 100;
  margin-top: 76px;
}

.row {
  display: grid;
  grid-template-columns: auto auto auto;
  margin-left: auto;
  margin-right: auto;
  max-width: 1208px;
}

@media only screen and (max-width: 500px) {
  .row {
    grid-template-columns: auto auto;
  }
}
@media only screen and (max-width: 300px) {
  .row {
    grid-template-columns: auto;
  }
}
.column {
  padding: 0 10px;
  margin-top: 50px;
}

.row:after {
  content: "";
  display: table;
  clear: both;
}

.card {
  text-align: center;
  border: 3px solid var(--color-primary);
  padding-bottom: 30px;
}

.card img {
  width: 100%;
}

.card h3 {
  font-size: 15px;
}

.card h3, .card p {
  padding: 13px 16px;
  color: var(--color-text-primary);
}

.card .newsbutton {
  border-bottom: 3px solid var(--color-primary);
  color: var(--color-text-primary);
  font-size: 12px;
  padding: 8px 15px 5px 15px;
  width: 110px;
  margin: 0 auto;
  transition: background-color var(--transition-base), color var(--transition-base);
}

.card .newsbutton:hover {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
}

#nieuwsitem p {
  margin: 0 auto;
  max-width: 1040px;
  color: var(--color-text-primary);
  text-align: justify;
  padding: 20px 20px 50px 20px;
}

#nieuwsitem h1 {
  margin: 0 auto;
  font-size: 18px;
  font-weight: 100;
  margin-top: 76px;
}

#nieuwsitem h2 {
  margin: 0 auto;
  font-size: 18px;
  margin-top: 50px;
  color: var(--color-text-primary);
  max-width: 1040px;
  padding: 0px 20px;
}

.contact-content {
  max-width: 960px;
  margin: 0 auto;
  padding: var(--space-10) var(--space-6);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--space-10);
  align-items: start;
  font-family: "Open Sans", sans-serif;
}

.contact-section-label {
  display: block;
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
}

.contact-address {
  font-style: normal;
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-text-primary);
  margin: 0 0 var(--space-5);
}

.contact-links {
  list-style: none;
  margin: 0 0 var(--space-5);
  padding: 0;
}
.contact-links li {
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-text-muted);
}
.contact-links a {
  color: var(--color-primary);
}
.contact-links a:hover {
  text-decoration: underline !important;
}

.contact-legal {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-1) var(--space-4);
  font-size: var(--text-xs);
}
.contact-legal dt {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-muted);
}
.contact-legal dd {
  color: var(--color-text-muted);
  margin: 0;
}

@media (max-width: 680px) {
  .contact-content {
    grid-template-columns: 1fr;
    gap: var(--space-6);
    padding: var(--space-6) var(--space-4);
  }
}
body {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  background-color: var(--color-surface);
  font-family: "Varela Round", sans-serif;
  color: var(--color-text-primary);
}

a {
  color: var(--color-primary);
  text-decoration: none !important;
}

h1 {
  text-align: center;
}

.uppercase {
  text-transform: uppercase;
}

.button-style {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  font-size: 16px;
  font-family: "Open Sans";
  text-align: center;
  margin-top: 8px;
  padding: 10px;
}

.button-style:hover {
  background-color: var(--color-primary-dark);
}

.error-message {
  color: var(--color-error);
  text-align: center;
  margin: 20px;
}

.info-message {
  color: var(--color-accent-eco);
  text-align: center;
  margin: 20px;
}

.icons-social {
  height: 80px;
  margin: 0 auto;
  margin-top: 50px;
  width: 300px;
  text-align: center;
}

.icon-social {
  display: block;
  float: left;
  cursor: pointer;
}

.nieuws-datum {
  padding-bottom: 0px !important;
}

/*HOME*/
.top-banner {
  height: 400px;
  background-image: linear-gradient(to bottom, transparent 60%, var(--color-surface) 100%), url("/images/ondergrond-09e936a740830b5de012570bc180e240.jpg");
  background-position: top;
  background-repeat: no-repeat;
  width: 100%;
}

.top-banner-items {
  margin: 0 auto;
  height: 400px;
}

.logo-slo {
  display: block;
  float: right;
}

.logo-slo img {
  max-width: 300px;
  margin-top: 50px;
  margin-right: 50px;
}

.slogan {
  display: block;
  margin-top: 170px;
  margin-right: 20px;
  float: right;
}

.slogan h1 {
  font-size: 28px;
  font-weight: 100;
}

.fork {
  display: block;
  margin-top: 125px;
  margin-right: 75px;
  float: right;
}

.fork img {
  width: 151px;
}

.waarden {
  display: block;
  padding-bottom: 30px;
}

[data-theme=light] .top-banner {
  background-image: linear-gradient(to bottom, transparent 60%, var(--color-nav-bg) 100%), url("/images/ondergrond-09e936a740830b5de012570bc180e240.jpg");
}
[data-theme=light] .waarden {
  background-color: var(--color-nav-bg);
}
[data-theme=light] .waarden h1 {
  color: var(--color-nav-text);
}
[data-theme=light] .section-arrow {
  fill: var(--color-nav-bg);
}

.waarden h1 {
  font-size: 18px;
  font-weight: 100;
  padding-top: 40px;
  margin-top: 0;
}

.waarden3 {
  display: flex;
  margin-top: 20px;
  width: 100%;
  flex-wrap: wrap;
  justify-content: space-evenly;
}

.waarden1 {
  width: 200px;
  display: block;
  margin: 10px;
  background-repeat: no-repeat;
}

.waarden1 img {
  width: 200px;
}

.forks {
  width: 151px;
  margin: 0 auto;
  margin-top: 20px;
}

.arrow {
  width: 100%;
  line-height: 0;
  margin: 0;
}

.section-arrow {
  display: block;
  width: 100%;
  height: 40px;
  overflow: visible;
  fill: var(--color-surface);
}

.section-arrow-border {
  fill: none;
  stroke: var(--color-accent-gold);
  stroke-width: 2;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.social {
  height: 300px;
  background-image: url("/images/ondergrond-social-bd91b24548f06814bebeaf9bc45144a6.jpg");
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}

.social h1 {
  font-size: 18px;
  font-weight: 100;
  margin-top: 40px;
  color: var(--color-nav-text);
}

#contact {
  width: 100%;
  color: var(--color-text-primary);
  font-family: "Open Sans";
}

#contact h1 {
  font-size: 18px;
  font-weight: 500;
  padding-top: 40px;
}

.conditionsPage {
  max-width: 1024px;
  margin: auto;
  color: var(--color-text-primary);
  padding: 32px;
}

/* Global reset / base */
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  background-color: var(--color-surface);
  color: var(--color-text-primary);
  font-family: "Open Sans", sans-serif;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='250' height='250' filter='url(%23n)' opacity='0.055'/%3E%3C/svg%3E");
  background-size: 250px 250px;
  background-repeat: repeat;
  background-attachment: fixed; /* noise stays still while content scrolls */
}

[data-theme=light] body {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='250' height='250' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  background-size: 250px 250px;
  background-repeat: repeat;
}

/* Generic button */
button.button {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  font-size: var(--text-base);
  font-family: "Open Sans", sans-serif;
  padding: var(--space-3) var(--space-10);
  margin: var(--space-4) 0;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}
button.button:hover {
  background-color: var(--color-primary-dark);
  box-shadow: var(--shadow-glow);
}

/* Product state filters */
.product-disabled img.product-image {
  filter: grayscale(1) brightness(0.5);
}

.not-available-at-location img.product-image {
  filter: grayscale(0.5) brightness(0.75);
}

/* Layout shell */
#page-container {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

#content-wrap {
  padding-bottom: 3.5rem;
  flex: 1;
}

/* Footer */
footer {
  width: 100%;
  background-color: var(--color-surface-overlay, #0E0C0A);
  border-top: 1px solid var(--color-border);
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: auto;
  background-image: repeating-linear-gradient(105deg, transparent, transparent 8px, rgba(255, 255, 255, 0.008) 8px, rgba(255, 255, 255, 0.008) 9px);
}
[data-theme=light] footer {
  background-image: repeating-linear-gradient(105deg, transparent, transparent 8px, rgba(0, 0, 0, 0.01) 8px, rgba(0, 0, 0, 0.01) 9px);
}
footer a {
  color: var(--color-text-muted);
  padding: var(--space-6);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color var(--transition-fast);
}
footer a:hover {
  color: var(--color-text-primary);
}

@media only screen and (max-width: 600px) {
  footer {
    flex-direction: column;
  }
  footer a {
    text-align: center;
    padding: var(--space-3) var(--space-6);
  }
}