/** Shopify CDN: Minification failed

Line 3675:0 Unexpected "}"

**/
/* Groeiwonder — premium typography & merk-touches.
   Geladen na base.css zodat selectors zonder !important overrulen. */

/* Playfair Display: tight tracking, ruime line-height voor sierlijke headings */
h1, h2, h3, h4, h5, h6,
.h0, .h1, .h2, .h3, .h4, .h5 {
  letter-spacing: -0.01em;
  line-height: 1.15;
}

.h0 {
  line-height: 1.05;
}

/* DM Sans is geometric sans; standaard Dawn 0.06rem letter-spacing oogt te luchtig */
body {
  letter-spacing: 0;
}

/* Announcement bar — kleine caps, premium feel */
.announcement-bar__message {
  font-family: var(--font-body-family);
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media screen and (min-width: 750px) {
  .announcement-bar__message {
    font-size: 1.35rem;
  }
}

/* Header nav: body font (DM Sans), medium gewicht, subtiele tracking */
.header__menu-item,
.header__active-menu-item,
.list-menu__item--link,
.header__menu-item .header__active-menu-item {
  font-family: var(--font-body-family);
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
}

/* Alle nav-items op 1 regel: compactere padding + iets kleinere tekst */
@media screen and (min-width: 990px) {
  .header__menu-item {
    padding: 1.2rem 0.65rem;
    font-size: 1.35rem;
  }

  .header__menu {
    padding: 0 0.4rem;
  }

  .header__heading-link {
    padding-right: 1.2rem;
  }
}

/* Buttons: rustige transitions, past bij premium tempo */
.button,
.shopify-payment-button__button {
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

/* Focus ring in sage ipv hard zwart */
*:focus-visible {
  outline-color: rgb(125, 155, 118);
}

/* Subtiele kaart-lift bij hover (alleen op devices met hover) */
@media (hover: hover) {
  .card-wrapper {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }

  .card-wrapper:hover {
    transform: translateY(-3px);
  }
}

/* Productprijs: numeric tabular voor strakke uitlijning */
.price__regular .price-item,
.price__sale .price-item {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* Sale-badge in goud verdient extra premium uitstraling */
.badge {
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 1.1rem;
}

/* ======================================================================
   Sage accent — subtiel sage-streepje onder major section headings.
   Geeft brand-rhythme over de hele homepage zonder schreeuwerig te worden.
   Slaat hero-headings (.banner__heading) over, omdat die op foto staan.
   ====================================================================== */

.collection__title .title,
.title-wrapper-with-link .blog__title,
.collection-list-title,
.section-brands-strip .brands-strip__heading {
  position: relative;
  display: inline-block;
}

.collection__title .title::after,
.title-wrapper-with-link .blog__title::after,
.collection-list-title::after,
.section-brands-strip .brands-strip__heading::after {
  content: '';
  display: block;
  width: 4rem;
  height: 2px;
  background: rgb(125, 155, 118);
  margin: 1.4rem auto 0;
  border-radius: 2px;
}

/* Op section met text-alignment center: streepje gecentreerd; op left-aligned title-wrappers staat het toch centered onder de h2 (die is inline-block dus de width = content-width) */

/* ======================================================================
   Free shipping progress bar (in cart drawer en op cart pagina)
   ====================================================================== */

.shipping-bar {
  margin: 0 1.5rem 1.5rem;
  padding: 1.4rem 1.6rem;
  background: rgba(var(--color-foreground), 0.04);
  border-radius: 0.8rem;
}

@media screen and (min-width: 750px) {
  .shipping-bar {
    margin: 0 2.4rem 1.6rem;
  }
}

.shipping-bar__text {
  margin: 0 0 0.8rem;
  font-size: 1.3rem;
  letter-spacing: 0.02em;
  text-align: center;
  color: rgb(var(--color-foreground));
}

.shipping-bar__text strong {
  color: rgb(125, 155, 118);
  font-weight: 600;
}

.shipping-bar__success {
  color: rgb(125, 155, 118);
  font-weight: 600;
}

.shipping-bar__track {
  height: 4px;
  background: rgba(var(--color-foreground), 0.08);
  border-radius: 999px;
  overflow: hidden;
}

.shipping-bar__fill {
  height: 100%;
  background: rgb(125, 155, 118);
  border-radius: 999px;
  transition: width 0.4s ease;
}

/* Op cart pagina iets ruimer */
#main-cart-items + .shipping-bar,
.cart-items > .shipping-bar,
.cart__contents + .shipping-bar {
  margin: 1.6rem 0;
}

/* ======================================================================
   USP-strip — modern, clean, professioneel.
   Geen cirkels, geen "decoratie". Tone-on-tone met body voor naadloze flow
   onder de hero. Enkele subtiele goud accent: verticale dividers tussen items.
   ====================================================================== */

.section-usp-strip {
  position: relative;
}

/* Subtiele sage top-border alleen — bottom is natuurlijk via volgende section */
.section-usp-strip > div {
  border-top: 1px solid rgba(125, 155, 118, 0.18);
}

.section-usp-strip .usp-strip {
  display: grid;
  gap: 3.6rem 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

@media screen and (min-width: 990px) {
  .section-usp-strip .usp-strip {
    gap: 0;
  }
}

.usp-strip__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.4rem;
  padding: 0 1.6rem;
  position: relative;
}

/* Verticale dividers tussen items op desktop (4-kolommen) */
@media screen and (min-width: 990px) {
  .usp-strip__item {
    padding: 0 3.2rem;
  }

  .usp-strip__item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 60%;
    width: 1px;
    background: rgba(125, 155, 118, 0.22);
  }
}

/* Op tablet: dividers tussen 2-koloms grid */
@media screen and (min-width: 750px) and (max-width: 989px) {
  .usp-strip__item:nth-child(odd):not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 60%;
    width: 1px;
    background: rgba(125, 155, 118, 0.18);
  }
}

/* Icon wrap = enkel een flex-container, geen cirkel */
.usp-strip__icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  padding: 0;
}

.usp-strip__icon-wrap::before {
  display: none;
}

.usp-strip__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  color: rgb(125, 155, 118);
  transition: color 0.25s ease, transform 0.25s ease;
}

.usp-strip__icon svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.4;
}

.usp-strip__item:hover .usp-strip__icon {
  color: rgb(101, 128, 96);
  transform: translateY(-2px);
}

/* Title — modern sans-serif, niet Playfair (te formeel voor mini-USPs) */
.usp-strip__title {
  font-family: var(--font-body-family);
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  line-height: 1.3;
  margin: 0;
  color: rgb(var(--color-foreground));
}

@media screen and (min-width: 750px) {
  .usp-strip__title {
    font-size: 1.5rem;
  }
}

.usp-strip__text {
  font-size: 1.3rem;
  line-height: 1.55;
  margin: 0;
  color: rgba(var(--color-foreground), 0.6);
  max-width: 26ch;
  letter-spacing: 0.005em;
}

.usp-strip__text p {
  margin: 0;
}

.usp-strip__heading {
  margin: 0 0 4rem;
}

/* ======================================================================
   Slideshow hero — herorder zodat subheading boven heading staat (eyebrow)
   en zelfde premium typografie als image-banner.
   Slideshow gebruikt .banner__media/.banner__content/.banner__box dus mijn
   bestaande hero-CSS (gradient, banner__heading text-shadow) werkt al.
   ====================================================================== */

.slideshow__text.banner__box {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  max-width: 60rem;
}

@media screen and (min-width: 990px) {
  .slideshow__text.banner__box {
    max-width: 64rem;
  }
}

.slideshow__text .banner__text { order: 1; }
.slideshow__text .banner__heading { order: 2; margin-top: 0.8rem !important; }
.slideshow__text .banner__buttons { order: 3; margin-top: 2.4rem !important; }

@media screen and (min-width: 750px) {
  .slideshow__text .banner__buttons { margin-top: 3.2rem !important; }
}

/* Subheading wordt eyebrow */
.slideshow__text .banner__text {
  position: relative;
  font-family: var(--font-body-family);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #FFFFFF;
  padding-left: 4.4rem;
  margin: 0 !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
}

.slideshow__text .banner__text p {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
}

.slideshow__text .banner__text::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3.2rem;
  height: 2px;
  background: rgb(125, 155, 118);
  box-shadow: 0 0 10px rgba(125, 155, 118, 0.55);
}

@media screen and (min-width: 750px) {
  .slideshow__text .banner__text {
    font-size: 1.3rem;
  }
}

/* Slideshow dots — sage, primaire brand-kleur */
.slider-counter__link--dots .dot {
  background-color: rgba(255, 255, 255, 0.45);
  width: 8px;
  height: 8px;
  transition: background-color 0.25s ease, transform 0.25s ease;
}

.slider-counter__link--active.slider-counter__link--dots .dot,
.slider-counter__link--dots:not(.slider-counter__link--active):hover .dot {
  background-color: rgb(125, 155, 118);
  transform: scale(1.2);
  box-shadow: 0 0 12px rgba(125, 155, 118, 0.6);
}

/* Autoplay-knop subtieler */
.slideshow__autoplay {
  opacity: 0.55;
  transition: opacity 0.2s ease;
}
.slideshow__autoplay:hover {
  opacity: 1;
}

/* ======================================================================
   Merken-strip — grayscale logos, kleur op hover, grid layout
   ====================================================================== */

.section-brands-strip .brands-strip__header {
  text-align: center;
  margin-bottom: 4.8rem;
}

.section-brands-strip .brands-strip__heading {
  margin: 0 0 0.8rem;
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  letter-spacing: -0.01em;
}

.section-brands-strip .brands-strip__subheading {
  font-size: 1.4rem;
  color: rgba(var(--color-foreground), 0.65);
  margin: 0;
  letter-spacing: 0.005em;
}

.section-brands-strip .brands-strip {
  display: grid;
  gap: 2.4rem 1.6rem;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-items: center;
}

@media screen and (min-width: 750px) {
  .section-brands-strip .brands-strip {
    gap: 2.4rem 2.4rem;
  }
}

.brands-strip__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 9rem;
  padding: 0 1.6rem;
}

.brands-strip__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.brands-strip__logo {
  max-width: 20rem;
  max-height: 9rem;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: none;
  opacity: 1;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

@media screen and (min-width: 750px) {
  .brands-strip__logo {
    max-width: 26rem;
    max-height: 12rem;
  }
}

.brands-strip__name {
  font-family: var(--font-heading-family);
  font-size: 2.2rem;
  font-style: italic;
  letter-spacing: 0.01em;
  color: rgba(var(--color-foreground), 0.72);
  filter: none;
  opacity: 1;
  transition: color 0.3s ease, transform 0.3s ease;
}

.brands-strip__item:hover .brands-strip__logo,
.brands-strip__link:hover .brands-strip__logo {
  transform: scale(1.05);
  opacity: 0.85;
}

.brands-strip__item:hover .brands-strip__name,
.brands-strip__link:hover .brands-strip__name {
  color: rgb(125, 155, 118);
  transform: scale(1.02);
}

/* ======================================================================
   Newsletter Premium — minimal elegant. Off-white achtergrond, Playfair
   heading met inline goud accent (€5 in <em>). Geen schreeuwende band,
   wel premium gewicht via typografie en subtiele decoratieve lijnen.
   ====================================================================== */

.newsletter-premium-section {
  position: relative;
  border-top: 1px solid rgba(125, 155, 118, 0.16);
}

.newsletter-premium {
  max-width: 60rem;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Eyebrow met sage lijntjes aan beide kanten */
.newsletter-premium__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  font-family: var(--font-body-family);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  margin: 0 0 2.4rem;
}

.newsletter-premium__eyebrow-line {
  display: inline-block;
  width: 2.4rem;
  height: 1px;
  background: rgb(125, 155, 118);
}

/* Heading — Playfair, met inline <em> als goud accent voor "€5 korting" */
.newsletter-premium__heading {
  margin: 0 0 1.6rem;
  letter-spacing: -0.015em;
  line-height: 1.08;
  color: rgb(var(--color-foreground));
  text-wrap: balance;
}

.newsletter-premium__heading em {
  font-style: italic;
  color: rgb(45, 45, 45);
  background: linear-gradient(
    180deg,
    transparent 0%,
    transparent 62%,
    rgba(232, 213, 176, 0.85) 62%,
    rgba(232, 213, 176, 0.85) 100%
  );
  padding: 0 0.15em;
  white-space: nowrap;
}

/* Beschrijvende tekst */
.newsletter-premium__text {
  max-width: 44rem;
  font-size: 1.55rem;
  line-height: 1.55;
  margin: 0 0 3.2rem;
  color: rgba(var(--color-foreground), 0.7);
}

.newsletter-premium__text p {
  margin: 0;
}

/* Formulier — pill-style met sage button binnenin */
.newsletter-premium__form {
  width: 100%;
  max-width: 48rem;
  margin: 0 0 1.6rem;
}

.newsletter-premium__field {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

@media screen and (min-width: 600px) {
  .newsletter-premium__field {
    flex-direction: row;
    gap: 0.5rem;
    background: #FFFFFF;
    padding: 0.5rem;
    border-radius: 999px;
    border: 1px solid rgba(45, 45, 45, 0.1);
    box-shadow: 0 2px 12px rgba(45, 45, 45, 0.05);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
  }

  .newsletter-premium__field:focus-within {
    border-color: rgba(125, 155, 118, 0.55);
    box-shadow: 0 0 0 4px rgba(125, 155, 118, 0.1);
  }
}

.newsletter-premium__input {
  flex: 1;
  width: 100%;
  font-family: var(--font-body-family);
  font-size: 1.5rem;
  letter-spacing: 0.005em;
  padding: 1.6rem 2.2rem;
  border: 1px solid rgba(45, 45, 45, 0.15);
  border-radius: 999px;
  background: #FFFFFF;
  color: #2D2D2D;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

@media screen and (min-width: 600px) {
  .newsletter-premium__input {
    border: 0;
    box-shadow: none;
    padding: 1.2rem 2rem;
    background: transparent;
  }
}

.newsletter-premium__input::placeholder {
  color: rgba(45, 45, 45, 0.45);
}

.newsletter-premium__input:focus {
  outline: none;
  border-color: rgb(125, 155, 118);
  box-shadow: 0 0 0 3px rgba(125, 155, 118, 0.15);
}

@media screen and (min-width: 600px) {
  .newsletter-premium__input:focus {
    box-shadow: none;
    border: 0;
  }
}

.newsletter-premium__button {
  flex-shrink: 0;
  font-family: var(--font-body-family);
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 1.4rem 2.8rem;
  border-radius: 999px;
  background: rgb(125, 155, 118);
  color: #FFFFFF;
  border: 0;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}

.newsletter-premium__button:hover {
  background: rgb(101, 128, 96);
  transform: translateY(-1px);
}

.newsletter-premium__button:focus-visible {
  outline: 2px solid rgb(201, 168, 76);
  outline-offset: 2px;
}

/* Statusbericht */
.newsletter-premium__message {
  width: 100%;
  margin: 1.2rem 0 0;
  padding: 0.8rem 1.6rem;
  font-size: 1.4rem;
  border-radius: 8px;
  text-align: center;
}

.newsletter-premium__message--error {
  background: rgba(220, 80, 60, 0.1);
  color: rgb(180, 60, 50);
}

.newsletter-premium__message--success {
  background: rgba(125, 155, 118, 0.12);
  color: rgb(101, 128, 96);
  font-weight: 600;
}

/* Kleine print */
.newsletter-premium__small {
  font-size: 1.25rem;
  letter-spacing: 0.02em;
  color: rgba(var(--color-foreground), 0.5);
  margin: 0.8rem 0 0;
  max-width: 40rem;
  line-height: 1.5;
}

/* ======================================================================
   Blog — artikel pagina + blog-overzicht premium styling
   ====================================================================== */

/* === Breadcrumb op artikel === */
.article-template__breadcrumb {
  padding-top: 2.4rem;
  padding-bottom: 0;
}

/* === Hero afbeelding — full-bleed, geen witte randen === */
.article-template__hero-container {
  margin-bottom: 0;
}

.article-template__hero-large {
  height: 60vh;
  min-height: 44rem;
  max-height: 72rem;
}

.article-template__hero-large img,
.article-template__hero-medium img,
.article-template__hero-adapt img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

/* === Artikel header (categorie + titel + meta) === */
.article-template__header {
  padding-top: 5.6rem;
  padding-bottom: 3.2rem;
}

/* Categorie badges boven de titel */
.article-template__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 2rem;
}

.article-template__category-tag {
  display: inline-block;
  font-family: var(--font-body-family);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  background: rgba(125, 155, 118, 0.1);
  border: 1px solid rgba(125, 155, 118, 0.25);
  border-radius: 999px;
  padding: 0.4rem 1.2rem;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.article-template__category-tag:hover {
  background: rgba(125, 155, 118, 0.2);
  color: rgb(101, 128, 96);
}

/* Artikel titel — groot, Karla bold */
.article-template__title {
  font-size: 3.6rem;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 2.4rem;
  text-wrap: balance;
}

@media screen and (min-width: 750px) {
  .article-template__title {
    font-size: 4.8rem;
  }
}

/* Meta: datum + leestijd */
.article-template__meta {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  flex-wrap: wrap;
}

.article-template__date,
.article-template__read-time,
.article-template__author {
  font-family: var(--font-body-family);
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(var(--color-foreground), 0.58);
}

.article-template__read-time {
  color: rgb(125, 155, 118);
  font-weight: 600;
}

.article-template__meta > * + * {
  padding-left: 1.6rem;
  border-left: 1px solid rgba(var(--color-foreground), 0.15);
}

/* === Artikel body — premium typografie === */
.article-template__content {
  font-size: 1.7rem;
  line-height: 1.85;
  color: rgba(var(--color-foreground), 0.85);
  padding-top: 0;
  padding-bottom: 3.2rem;
}

.article-template__content p {
  margin: 0 0 1.8rem;
}

.article-template__content h2 {
  font-size: 2.4rem;
  letter-spacing: -0.015em;
  margin: 4rem 0 1.6rem;
  line-height: 1.2;
}

.article-template__content h3 {
  font-size: 2rem;
  letter-spacing: -0.01em;
  margin: 3.2rem 0 1.2rem;
}

.article-template__content ul,
.article-template__content ol {
  padding-left: 2em;
  margin: 1.8rem 0;
}

.article-template__content li {
  margin: 0.6rem 0;
}

.article-template__content li::marker {
  color: rgb(125, 155, 118);
}

/* Eerste alinea iets groter — premium editorial touch */
.article-template__content > p:first-child {
  font-size: 1.9rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground), 0.9);
}

/* Blockquote — pull quote styling */
.article-template__content blockquote {
  margin: 3.2rem 0;
  padding: 2.4rem 2.8rem;
  border-left: 3px solid rgb(125, 155, 118);
  background: rgba(125, 155, 118, 0.06);
  border-radius: 0 8px 8px 0;
  font-size: 1.85rem;
  line-height: 1.65;
  font-style: italic;
  color: rgb(var(--color-foreground));
}

.article-template__content blockquote p {
  margin: 0;
}

/* Afbeeldingen in artikel — afgerond */
.article-template__content img {
  border-radius: 8px;
  max-width: 100%;
  height: auto;
  margin: 2.4rem 0;
}

/* Sterke tekst */
.article-template__content strong {
  font-weight: 700;
  color: rgb(var(--color-foreground));
}

/* Links in artikel */
.article-template__content a {
  color: rgb(125, 155, 118);
  text-decoration: underline;
  text-decoration-color: rgba(125, 155, 118, 0.4);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.2s ease;
}

.article-template__content a:hover {
  text-decoration-color: rgb(125, 155, 118);
}

/* HR in artikel */
.article-template__content hr {
  border: 0;
  height: 1px;
  background: rgba(125, 155, 118, 0.2);
  margin: 4rem 0;
}

/* === Visuele FAQ sectie — rendert automatisch van custom.faq_schema metafield === */
.article-faq {
  margin-top: 4.8rem;
  margin-bottom: 2.4rem;
  padding-top: 4.8rem;
  border-top: 1px solid rgba(125, 155, 118, 0.16);
}

/* Heading met sage underline — consistent met andere section headings */
.article-faq__heading {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  font-size: 2.4rem;
  letter-spacing: -0.015em;
  margin: 0 0 3.2rem;
  position: relative;
  display: inline-block;
}

.article-faq__heading::after {
  content: '';
  display: block;
  width: 4rem;
  height: 2px;
  background: rgb(125, 155, 118);
  border-radius: 2px;
  margin: 1.2rem 0 0;
}

/* Accordion items */
.article-faq__list {
  display: flex;
  flex-direction: column;
}

.article-faq__item {
  border-bottom: 1px solid rgba(125, 155, 118, 0.14);
}

.article-faq__item:first-child {
  border-top: 1px solid rgba(125, 155, 118, 0.14);
}

/* Vraag summary — clean, DM Sans bold */
.article-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.8rem 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-body-family);
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.005em;
  line-height: 1.35;
  color: rgb(var(--color-foreground));
  transition: color 0.2s ease;
  user-select: none;
}

.article-faq__question:hover {
  color: rgb(125, 155, 118);
}

.article-faq__question::-webkit-details-marker,
.article-faq__question::marker {
  display: none;
  content: '';
}

/* Caret icoon */
.article-faq__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(var(--color-foreground), 0.45);
  transition: transform 0.3s ease, color 0.2s ease;
}

.article-faq__icon svg {
  width: 1.4rem;
  height: 1.4rem;
  display: block;
  flex-shrink: 0;
}

.article-faq__item[open] .article-faq__icon {
  transform: rotate(180deg);
  color: rgb(125, 155, 118);
}

.article-faq__item[open] .article-faq__question {
  color: rgb(125, 155, 118);
}

/* Antwoord — ruime typografie */
.article-faq__answer {
  padding: 0.4rem 0 2.4rem;
  font-size: 1.55rem;
  line-height: 1.72;
  color: rgba(var(--color-foreground), 0.78);
  max-width: 68ch;
}

.article-faq__answer p {
  margin: 0 0 1rem;
}

.article-faq__answer p:last-child {
  margin: 0;
}

.article-faq__answer ul {
  padding-left: 1.6em;
  margin: 0.8rem 0;
}

.article-faq__answer li::marker {
  color: rgb(125, 155, 118);
}

/* === Tags footer === */
.article-template__tags-footer {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  padding-top: 2.4rem;
  padding-bottom: 2.4rem;
  border-top: 1px solid rgba(125, 155, 118, 0.14);
  margin-bottom: 1.6rem;
}

.article-template__tags-label {
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.55);
  margin-right: 0.8rem;
}

.article-template__tag-pill {
  display: inline-block;
  font-family: var(--font-body-family);
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(var(--color-foreground), 0.72);
  background: rgba(var(--color-foreground), 0.06);
  border: 1px solid rgba(var(--color-foreground), 0.1);
  border-radius: 999px;
  padding: 0.4rem 1.2rem;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.article-template__tag-pill:hover {
  background: rgba(125, 155, 118, 0.1);
  color: rgb(125, 155, 118);
  border-color: rgba(125, 155, 118, 0.3);
}

/* === Delen knop === */
.article-template__social-sharing {
  padding-top: 1.6rem;
  padding-bottom: 2.4rem;
}

/* === Terug naar blog link === */
.article-template__back {
  padding: 3.2rem 0 5.6rem;
  border-top: 1px solid rgba(125, 155, 118, 0.12);
  margin-top: 1.6rem;
}

.article-template__back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-family: var(--font-body-family);
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgb(125, 155, 118);
  text-decoration: none;
  transition: gap 0.2s ease;
}

.article-template__back-link:hover {
  gap: 1.2rem;
}

.article-template__back-link .svg-wrapper svg {
  width: 1.2rem;
  transform: rotate(180deg);
  color: rgb(125, 155, 118);
}

/* === Blog-overzicht (blog.json) === */
.blog .article-card {
  border-radius: 8px;
  overflow: hidden;
}

.blog .article-card__image-wrapper img {
  transition: transform 0.5s ease;
}

.blog .article-card:hover .article-card__image-wrapper img {
  transform: scale(1.03);
}

.blog .article-card__information {
  padding: 2rem 0.4rem 0;
}

.blog .article-card__title {
  font-size: 1.9rem;
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0 0 1rem;
}

.blog .article-card__date {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
}

/* ======================================================================
   Over ons pagina — brand story, waarden, manifesto
   ====================================================================== */

/* Waarden-kolommen — premium card-look */
.page-over-ons .multicolumn-card,
.section-over-ons .multicolumn-card {
  padding: 2.8rem 0 2.4rem;
  border-top: 2px solid rgba(125, 155, 118, 0.22);
}

.page-over-ons .multicolumn-card .multicolumn-card__title,
.section-over-ons .multicolumn-card .multicolumn-card__title {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  font-size: 1.9rem;
  letter-spacing: -0.01em;
  margin: 0 0 1.2rem;
  color: rgb(var(--color-foreground));
}

.page-over-ons .multicolumn-card .rte,
.section-over-ons .multicolumn-card .rte {
  font-size: 1.4rem;
  line-height: 1.65;
  color: rgba(var(--color-foreground), 0.72);
}

/* "Waar wij voor staan" heading — sage accent under title */
.page-over-ons .multicolumn .title-wrapper-with-link .title::after,
.section-over-ons .multicolumn .title-wrapper-with-link .title::after,
.page-over-ons .multicolumn .collection-list-title::after {
  content: '';
  display: block;
  width: 4rem;
  height: 2px;
  background: rgb(125, 155, 118);
  margin: 1.4rem auto 0;
  border-radius: 2px;
}

/* Manifesto quote styling */
.page-over-ons .section.rich-text.color-scheme-3 h2,
.page-over-ons .rich-text__heading {
  max-width: 72rem;
  margin: 0 auto 2.4rem;
}

/* Hero caption styling */
.page-over-ons .rich-text .caption-with-letter-spacing {
  color: rgb(125, 155, 118);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.2em;
}

/* ======================================================================
   Klantenservice pagina — premium FAQ + quick-info + contact
   ====================================================================== */

/* Quick-info kolommen (3 tegels: verzending/retour/contact) */
.section-klantenservice .multicolumn__item,
.page-klantenservice .multicolumn__item {
  background: rgba(248, 246, 242, 0.8);
  border: 1px solid rgba(125, 155, 118, 0.14);
  border-radius: 12px;
  padding: 3.2rem 2.4rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.section-klantenservice .multicolumn__item:hover,
.page-klantenservice .multicolumn__item:hover {
  border-color: rgba(125, 155, 118, 0.35);
  box-shadow: 0 4px 20px rgba(125, 155, 118, 0.1);
}

/* Quick-info titel */
.section-klantenservice .multicolumn__item .multicolumn-card__title,
.page-klantenservice .multicolumn__item .multicolumn-card__title,
.multicolumn__item .multicolumn-card__title {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-size: 2rem;
  letter-spacing: -0.01em;
  margin: 0 0 1.2rem;
  color: rgb(var(--color-foreground));
}

/* Quick-info link */
.multicolumn__item .multicolumn-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 1.4rem;
  font-weight: 600;
  color: rgb(125, 155, 118);
  text-decoration: none;
  margin-top: 1.6rem;
  letter-spacing: 0.02em;
  transition: gap 0.2s ease;
}

.multicolumn__item .multicolumn-card__link:hover {
  gap: 0.8rem;
}

/* FAQ heading section */
.collapsible-content__header {
  text-align: center;
  margin-bottom: 4rem;
}

/* FAQ accordion rows — sage styling */
.collapsible-content details {
  border-top: 1px solid rgba(125, 155, 118, 0.16);
}

.collapsible-content details:last-of-type {
  border-bottom: 1px solid rgba(125, 155, 118, 0.16);
}

.collapsible-content details summary {
  padding: 2rem 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  transition: color 0.2s ease;
  list-style: none;
}

.collapsible-content details summary:hover {
  color: rgb(125, 155, 118);
}

.collapsible-content details summary::-webkit-details-marker {
  display: none;
}

/* Icon in FAQ row */
.collapsible-content details summary .icon-accordion {
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  color: rgb(125, 155, 118);
}

/* FAQ heading text */
.collapsible-content .collapsible-content__heading {
  font-family: var(--font-body-family);
  font-weight: 600;
  font-size: 1.6rem;
  letter-spacing: 0.005em;
  line-height: 1.3;
  margin: 0;
  flex: 1;
}

/* Caret rotation on open */
.collapsible-content details[open] summary svg.icon-caret,
.collapsible-content details[open] summary .icon-caret {
  transform: rotate(180deg);
}

.collapsible-content details summary svg.icon-caret,
.collapsible-content details summary .icon-caret {
  flex-shrink: 0;
  transition: transform 0.3s ease;
  color: rgba(var(--color-foreground), 0.5);
}

/* FAQ antwoord content */
.collapsible-content .accordion__content,
.collapsible-content details .content-container {
  padding: 0.4rem 0 2rem;
  padding-left: 3.6rem;
  font-size: 1.5rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground), 0.76);
}

.collapsible-content .accordion__content p,
.collapsible-content details .content-container p {
  margin: 0 0 1rem;
}

.collapsible-content .accordion__content p:last-child,
.collapsible-content details .content-container p:last-child {
  margin: 0;
}

/* Contact form sectie op zand achtergrond */
.contact-form__wrapper {
  max-width: 64rem;
  margin: 0 auto;
}

.contact-form h2,
.contact-form .title {
  text-align: center;
  margin-bottom: 4rem;
}

/* ======================================================================
   Globale kleine UI-details — search, active nav, quantity, links
   ====================================================================== */

/* Actieve nav-link indicator — subtiele sage onderstreping */
.header__active-menu-item {
  border-bottom: 2px solid rgb(125, 155, 118);
  padding-bottom: 2px;
}

/* Search-overlay input — sage focus */
.search-modal .search-form__input:focus {
  border-color: rgb(125, 155, 118) !important;
  box-shadow: 0 0 0 3px rgba(125, 155, 118, 0.12) !important;
}

/* Predictive search resultaten — sage accent op hover */
.predictive-search__item:hover,
.predictive-search__item:focus {
  background-color: rgba(125, 155, 118, 0.06);
}

.predictive-search__item-heading {
  font-family: var(--font-body-family);
  font-weight: 600;
  font-size: 1.4rem;
}

/* Quantity input — sage border op focus */
.quantity__input:focus {
  border-color: rgb(125, 155, 118);
  outline: none;
}

.quantity__button:hover {
  background: rgba(125, 155, 118, 0.08);
}

/* Cart icon bubble — sage badge */
.cart-count-bubble {
  background: rgb(125, 155, 118) !important;
  color: #FFFFFF !important;
}

/* Alle text-links in RTE blocks — sage */
.rte a {
  color: rgb(125, 155, 118);
  text-decoration: underline;
  text-decoration-color: rgba(125, 155, 118, 0.4);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.2s ease;
}

.rte a:hover {
  text-decoration-color: rgb(125, 155, 118);
}

/* Tag / badge elementen in beschrijvingen */
.product__description strong {
  font-weight: 600;
  color: rgb(var(--color-foreground));
}

/* Collapsible content (klantenservice FAQ) accordion arrows */
.collapsible-content__header .icon-caret {
  transition: transform 0.3s ease;
}

.collapsible-content__header[aria-expanded="true"] .icon-caret {
  transform: rotate(180deg);
}

/* Border-radius op alle form elementen — consistent met rest van design */
.field__input,
.select__select,
textarea.field__input {
  border-radius: 4px;
}

/* Breadcrumbs op collection pagina — voeg toe via collectionbanner */
.collection-hero + .page-width .breadcrumb,
nav.product-breadcrumb {
  font-size: 1.25rem;
}

/* Skip to content link — sage */
.skip-to-content-link:focus {
  background: rgb(125, 155, 118);
  color: #FFFFFF;
  border-color: rgb(125, 155, 118);
}

/* ======================================================================
   Collection pages — premium banner + uniforme cards + filter-bar polish
   ====================================================================== */

/* === Banner — geen afbeelding (tekst-only) === */
.collection-hero {
  padding: 6.4rem 0 5.6rem;
  border-bottom: 1px solid rgba(125, 155, 118, 0.14);
}

@media screen and (min-width: 750px) {
  .collection-hero {
    padding: 8rem 0 7.2rem;
  }
}

.collection-hero__inner {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  align-items: center;
}

@media screen and (min-width: 750px) {
  .collection-hero--with-image .collection-hero__inner {
    flex-direction: row;
    align-items: center;
    gap: 6.4rem;
  }
}

.collection-hero__text-wrapper {
  text-align: center;
  max-width: 64rem;
  width: 100%;
}

@media screen and (min-width: 750px) {
  .collection-hero--with-image .collection-hero__text-wrapper {
    text-align: left;
    flex: 1;
  }
}

/* Eyebrow met product-count + sage lijntjes */
.collection-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  font-family: var(--font-body-family);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  margin: 0 0 2rem;
}

.collection-hero__eyebrow-line {
  display: inline-block;
  width: 2.4rem;
  height: 1px;
  background: rgb(125, 155, 118);
}

/* Collection titel in Playfair, groot + tight */
.collection-hero__title {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  font-size: 4rem;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0 0 2rem;
  color: rgb(var(--color-foreground));
  text-wrap: balance;
}

@media screen and (min-width: 750px) {
  .collection-hero__title {
    font-size: 5.6rem;
  }
}

/* Sage accent-streepje onder titel */
.collection-hero__title::after {
  content: '';
  display: block;
  width: 4rem;
  height: 2px;
  background: rgb(125, 155, 118);
  border-radius: 2px;
  margin: 1.8rem auto 0;
}

@media screen and (min-width: 750px) {
  .collection-hero--with-image .collection-hero__title::after {
    margin-left: 0;
  }
}

/* Collection description — leesbaar + max-width */
.collection-hero__description {
  font-size: 1.55rem;
  line-height: 1.65;
  color: rgba(var(--color-foreground), 0.72);
  max-width: 52rem;
  margin: 0 auto;
}

@media screen and (min-width: 750px) {
  .collection-hero--with-image .collection-hero__description {
    margin: 0;
  }
}

.collection-hero__description p {
  margin: 0 0 1rem;
}

.collection-hero__description p:last-child {
  margin: 0;
}

/* Collection image — full-width op mobile, rechterzijde op desktop */
.collection-hero__image-container {
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
  width: 100%;
  height: 24rem;
}

@media screen and (min-width: 750px) {
  .collection-hero__image-container {
    width: 40%;
    height: auto;
    max-width: 56rem;
    aspect-ratio: 4 / 3;
  }
}

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

/* === Horizontal filter-bar — premium styling === */
.facets-horizontal {
  padding: 2.4rem 0 !important;
  border-bottom: 1px solid rgba(125, 155, 118, 0.14);
  margin-bottom: 3.2rem;
}

/* Filter label "Filter:" */
.mobile-facets__open-label,
.facets__heading {
  font-family: var(--font-body-family);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.72);
}

/* Filter disclosure (dropdown toggles) */
.facets__summary {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 0.8rem 1.6rem;
  border: 1px solid rgba(125, 155, 118, 0.3);
  border-radius: 999px;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
  gap: 0.6rem;
}

.facets__summary:hover,
.facets__summary[aria-expanded="true"] {
  border-color: rgb(125, 155, 118);
  background: rgba(125, 155, 118, 0.06);
  color: rgb(125, 155, 118);
}

/* Active filters — sage pill */
.active-facets__button {
  font-size: 1.3rem;
  font-weight: 500;
  border-radius: 999px;
  padding: 0.5rem 1.2rem;
  background: rgba(125, 155, 118, 0.1);
  border: 1px solid rgba(125, 155, 118, 0.3);
  color: rgb(125, 155, 118);
  gap: 0.6rem;
}

.active-facets__button:hover {
  background: rgba(125, 155, 118, 0.2);
  border-color: rgb(125, 155, 118);
}

/* Sort-by dropdown */
.facet-filters__sort .select__select,
.collection-sort select {
  font-family: var(--font-body-family);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}

/* Product count ("4 producten") */
.product-count__text,
.product-count {
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(var(--color-foreground), 0.6);
}

/* === Product cards op collection pagina === */

/* Cards hebben portrait ratio (2:3) — afbeeldingen altijd gelijke hoogte */
.card__media {
  border-radius: 8px 8px 0 0;
}

/* Vendor label — sage small caps */
.card__vendor {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  margin: 0 0 0.4rem;
}

/* Card tekst-gebied — meer lucht */
.card__content .card__information {
  padding: 1.6rem 0.4rem 1.6rem;
}

/* Product naam op card */
.card__heading {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.005em;
}

@media screen and (min-width: 750px) {
  .card__heading {
    font-size: 1.6rem;
  }
}

/* Prijs op card */
.card__information .price__regular .price-item--regular {
  font-size: 1.6rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.005em;
}

/* Quick-add knop — verschijnt on hover, sage styled */
.quick-add:not(.hidden) .quick-add__submit,
.quick-add .quick-add__submit {
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  border-radius: 0 0 8px 8px;
  transition: background 0.2s ease;
}

/* EUR-suffix weghalen (optioneel) */
.price__regular .price-item bdi::after {
  content: '';
}

/* ======================================================================
   Single product page — premium uitwerking
   ====================================================================== */

/* ---- Breadcrumb ---- */
.product-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
  font-size: 1.25rem;
  letter-spacing: 0.02em;
  color: rgba(var(--color-foreground), 0.55);
  margin: 0 0 2rem;
}

.product-breadcrumb__link {
  color: rgba(var(--color-foreground), 0.55);
  text-decoration: none;
  transition: color 0.2s ease;
}

.product-breadcrumb__link:hover {
  color: rgb(125, 155, 118);
}

.product-breadcrumb__link--inactive {
  color: rgba(var(--color-foreground), 0.55);
}

.product-breadcrumb__sep {
  color: rgba(var(--color-foreground), 0.35);
  font-size: 1.1rem;
}

.product-breadcrumb__current {
  color: rgba(var(--color-foreground), 0.82);
  font-weight: 500;
}

/* ---- Stacked gallery — geen witte ruimte rondom, smooth scrolling ---- */
.product__media-list.slider.slider--mobile {
  scroll-snap-type: y mandatory;
}

.product__media-list .product__media-item {
  scroll-snap-align: start;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 1.2rem;
}

.product__media-list .product__media-item:last-child {
  margin-bottom: 0;
}

/* ---- Add-to-cart knop — sage gevuld ook al is show_dynamic_checkout aan ---- */
/* Dawn maakt de ATC button--secondary wanneer dynamic checkout actief is.
   Alleen de actieve (niet-disabled) staat overschrijven — Dawn's eigen
   disabled-state management niet aanraken zodat variant-switches correct werken. */
.product-form__submit.button--secondary:not([disabled]):not(.loading) {
  background: rgb(125, 155, 118) !important;
  color: #FFFFFF !important;
  border-color: rgb(125, 155, 118) !important;
}

.product-form__submit.button--secondary:not([disabled]):not(.loading):hover {
  background: rgb(101, 128, 96) !important;
  border-color: rgb(101, 128, 96) !important;
  color: #FFFFFF !important;
}

/* Shop Pay — iets subtieler, visueel duidelijk secundair */
.shopify-payment-button__button--unbranded,
.shopify-payment-button__button {
  border-radius: 4px !important;
  margin-top: 0.8rem !important;
  font-size: 1.4rem !important;
  font-family: var(--font-body-family) !important;
}

/* "Meer betalingsopties" link */
.shopify-payment-button__more-options {
  font-size: 1.25rem !important;
  color: rgba(var(--color-foreground), 0.6) !important;
  text-underline-offset: 3px;
}

/* ---- Variant pills — sage selected, hover state ---- */
.variant-input-wrapper .product-form__input input.product-variant-pill__input:checked
  + .product-variant-pill__label {
  background: rgb(125, 155, 118) !important;
  border-color: rgb(125, 155, 118) !important;
  color: #FFFFFF !important;
}

.variant-input-wrapper .product-form__input input.product-variant-pill__input:not(:checked)
  + .product-variant-pill__label:hover {
  border-color: rgb(125, 155, 118) !important;
  color: rgb(125, 155, 118) !important;
}

/* Swatch cirkels (kleur-opties) */
.swatch-input__input:checked + .swatch-input__thumbnail {
  outline-color: rgb(125, 155, 118) !important;
  outline-offset: 2px;
}

/* ---- Trust strip — prominenter, grotere iconen ---- */
.product__info-container .icon-with-text {
  margin: 3.2rem 0 2rem;
  padding: 2.4rem 0;
  border-top: 1px solid rgba(125, 155, 118, 0.18);
  border-bottom: 1px solid rgba(125, 155, 118, 0.18);
}

/* icon-with-text__item-wrapper voor horizontale layout */
.icon-with-text__items.icon-with-text__items--horizontal {
  gap: 0.8rem;
  justify-content: space-between;
}

.icon-with-text__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  text-align: center;
  padding: 0 0.4rem;
}

.icon-with-text__icon-wrapper {
  width: 3.2rem;
  height: 3.2rem;
  color: rgb(125, 155, 118);
}

.icon-with-text__icon-wrapper svg {
  width: 100%;
  height: 100%;
}

.icon-with-text .icon-with-text-with-icon .h4,
.icon-with-text .icon-with-text__heading.h4 {
  font-family: var(--font-body-family) !important;
  font-size: 1.3rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
  line-height: 1.3;
  margin: 0;
  color: rgb(var(--color-foreground));
}

/* ---- Sticky product CTA — desktop top / mobile bottom ---- */

.sticky-product-cta {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  gap: 2rem;
  background: rgba(248, 246, 242, 0.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.3s ease;
}

/* === Mobile: bottom bar — twee rijen === */
@media screen and (max-width: 989px) {
  .sticky-product-cta {
    bottom: 0;
    top: auto;
    padding: 1.2rem 1.6rem 1.4rem;
    border-top: 1px solid rgba(125, 155, 118, 0.16);
    transform: translateY(100%);
    box-shadow: 0 -4px 20px rgba(45, 45, 45, 0.08);
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }

  .sticky-product-cta.is-visible {
    transform: translateY(0);
  }

  .sticky-product-cta__image {
    display: none;
  }

  /* Rij 1: titel links + prijs rechts */
  .sticky-product-cta__info {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
    min-width: 0;
    flex: unset;
  }

  .sticky-product-cta__title {
    font-size: 1.35rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
  }

  .sticky-product-cta__price {
    font-size: 1.5rem;
    flex-shrink: 0;
  }

  /* Rij 2: volledige breedte knop */
  .sticky-product-cta__button {
    width: 100%;
    padding: 1.3rem 1.6rem;
    font-size: 1.4rem;
    border-radius: 6px;
    white-space: nowrap;
    text-align: center;
  }
}

/* === Desktop: top bar (onder header) === */
@media screen and (min-width: 990px) {
  .sticky-product-cta {
    top: 0;
    bottom: auto;
    padding: 1.2rem 3.2rem;
    border-bottom: 1px solid rgba(125, 155, 118, 0.16);
    transform: translateY(-100%);
    box-shadow: none;
    gap: 2.4rem;
    max-width: 100%;
  }

  .sticky-product-cta.is-visible {
    transform: translateY(0);
    box-shadow: 0 4px 20px rgba(45, 45, 45, 0.07);
  }
}

/* === Gedeelde elementen === */

/* Thumbnail — alleen zichtbaar op desktop */
.sticky-product-cta__image {
  display: none;
  width: 5.2rem;
  height: 5.2rem;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
  border: 1px solid rgba(45, 45, 45, 0.08);
}

@media screen and (min-width: 990px) {
  .sticky-product-cta__image {
    display: block;
  }
}

.sticky-product-cta__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Info kolom */
.sticky-product-cta__info {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 2rem;
  min-width: 0;
}

@media screen and (min-width: 990px) {
  .sticky-product-cta__info {
    gap: 2.4rem;
  }
}

.sticky-product-cta__title {
  font-family: var(--font-body-family);
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgb(var(--color-foreground));
  flex: 1;
  min-width: 0;
}

.sticky-product-cta__price {
  font-family: var(--font-body-family);
  font-size: 1.7rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: rgb(var(--color-foreground));
  white-space: nowrap;
  flex-shrink: 0;
}

.sticky-product-cta__button {
  background: rgb(125, 155, 118);
  color: #FFFFFF;
  border: 0;
  border-radius: 4px;
  padding: 1.2rem 2.4rem;
  font-family: var(--font-body-family);
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.2s ease, transform 0.2s ease;
  -webkit-appearance: none;
}

.sticky-product-cta__button:hover {
  background: rgb(101, 128, 96);
  transform: translateY(-1px);
}

/* ======================================================================
   Bundel / Complementary products — "Vaak samen gekocht" sectie
   ====================================================================== */

/* Callout-balk boven complementary section */
.bundle-callout {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  background: rgba(125, 155, 118, 0.08);
  border: 1px solid rgba(125, 155, 118, 0.25);
  border-radius: 8px;
  padding: 1.6rem 2rem;
  margin: 2.4rem 0 0;
}

.bundle-callout__badge {
  display: inline-block;
  font-family: var(--font-body-family);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  padding: 0.3rem 1rem;
  background: rgba(125, 155, 118, 0.15);
  border-radius: 999px;
  width: fit-content;
}

.bundle-callout__text {
  font-size: 1.4rem;
  line-height: 1.55;
  color: rgba(var(--color-foreground), 0.78);
  margin: 0;
}

/* "Vaak samen gekocht" heading */
.complementary-products {
  margin-top: 0;
  padding-top: 2.4rem;
}

.complementary-products__title {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  font-size: 1.9rem;
  letter-spacing: -0.01em;
  margin: 0 0 1.6rem;
  color: rgb(var(--color-foreground));
}

/* Product cards in de complementary row */
.complementary-slide {
  background: rgb(var(--color-background));
  border: 1px solid rgba(125, 155, 118, 0.14);
  border-radius: 8px;
  overflow: hidden;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.complementary-slide:hover {
  box-shadow: 0 4px 16px rgba(45, 45, 45, 0.08);
  transform: translateY(-2px);
}

/* Quick-add button in complementary */
.complementary-products .quick-add .quick-add__submit {
  font-family: var(--font-body-family);
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  background: rgb(125, 155, 118);
  color: #FFFFFF;
  border-color: rgb(125, 155, 118);
  transition: background 0.2s ease;
}

.complementary-products .quick-add .quick-add__submit:hover {
  background: rgb(101, 128, 96);
  border-color: rgb(101, 128, 96);
}

/* ======================================================================
   Single product page — premium uitwerking (vervolg — hieronder)
   ====================================================================== */

/* Vendor (uppercase eyebrow) — sage tinted */
.product .product__text.caption-with-letter-spacing,
.product__info-container .caption-with-letter-spacing {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  margin: 0 0 1.2rem;
}

/* Title in Playfair, tighter */
.product__title h1,
.product__title .h1 {
  font-size: 3.2rem;
  letter-spacing: -0.015em;
  line-height: 1.1;
  margin: 0;
}

@media screen and (min-width: 750px) {
  .product__title h1,
  .product__title .h1 {
    font-size: 3.8rem;
  }
}

/* Price prominenter, met tabular-nums */
.product__info-container .price__regular .price-item--regular,
.product__info-container .price__sale .price-item--regular,
.product__info-container .price__sale .price-item--sale {
  font-size: 2.2rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.005em;
}

@media screen and (min-width: 750px) {
  .product__info-container .price__regular .price-item--regular,
  .product__info-container .price__sale .price-item--regular,
  .product__info-container .price__sale .price-item--sale {
    font-size: 2.6rem;
  }
}

/* Inventory indicator subtiel */
.product__inventory {
  font-size: 1.3rem !important;
  font-weight: 500;
  letter-spacing: 0.02em;
  margin: 1.2rem 0 !important;
}

/* Variant picker — pills met sage selected/hover */
.product-form__input fieldset.variant-input-wrapper,
.product-form__input.product-form__input--pill {
  margin-bottom: 1.8rem;
}

.product-form__input legend.form__label {
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 1rem;
  color: rgb(var(--color-foreground));
}

.product-form__input--pill input[type='radio']:checked + label {
  background-color: rgb(125, 155, 118);
  border-color: rgb(125, 155, 118);
  color: #FFFFFF;
}

.product-form__input--pill input[type='radio']:not(:checked) + label:hover {
  border-color: rgb(125, 155, 118);
  color: rgb(125, 155, 118);
}

/* Buy buttons */
.product-form__buttons {
  margin: 1.6rem 0 0.8rem;
}

.product-form__submit {
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  padding: 1.6rem 2.4rem !important;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease !important;
}

.product-form__submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(125, 155, 118, 0.25);
}

/* Trust icons strip op productpagina — dedicated styling */
.product__info-container .icon-with-text-wrapper,
.product__info-container .product-icon-with-text {
  margin: 2.8rem 0;
  padding: 2rem 0;
  border-top: 1px solid rgba(125, 155, 118, 0.18);
  border-bottom: 1px solid rgba(125, 155, 118, 0.18);
}

.product__info-container .icon-with-text {
  gap: 1.6rem;
}

.product__info-container .icon-with-text__item-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.6rem;
}

.product__info-container .icon-with-text .h4 {
  font-family: var(--font-body-family);
  font-size: 1.25rem !important;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.3;
  margin: 0;
}

.product__info-container .icon-with-text svg {
  color: rgb(125, 155, 118);
  width: 2rem;
  height: 2rem;
}

/* === Full-width productbeschrijving sectie (onder product layout) === */

.section-product-description {
  border-top: 1px solid rgba(125, 155, 118, 0.14);
}

.product-description-section__inner {
  max-width: 80rem;
  margin: 0 auto;
}

.product-description-section__heading-wrap {
  margin-bottom: 3.2rem;
  padding-bottom: 2.4rem;
  border-bottom: 1px solid rgba(125, 155, 118, 0.14);
}

.product-description-section__heading {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  letter-spacing: -0.01em;
  margin: 0;
}

/* Beschrijving in full-width sectie — ruimere typografie */
.product-description-section__body {
  font-size: 1.55rem;
  line-height: 1.75;
  color: rgba(var(--color-foreground), 0.82);
}

.product-description-section__body p {
  margin: 0 0 1.6rem;
}

.product-description-section__body p:last-child {
  margin: 0;
}

.product-description-section__body ul,
.product-description-section__body ol {
  padding-left: 1.8em;
  margin: 1.6rem 0;
}

.product-description-section__body li {
  margin: 0.6rem 0;
}

.product-description-section__body li::marker {
  color: rgb(125, 155, 118);
}

.product-description-section__body h2,
.product-description-section__body h3 {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  margin: 2.4rem 0 1.2rem;
}

.product-description-section__body strong {
  font-weight: 600;
  color: rgb(var(--color-foreground));
}

/* Fix: li > p in full-width description */
.product-description-section__body li > p {
  display: inline;
  margin: 0;
}

/* Description typography — premium leesbaar */
.product__description {
  font-size: 1.5rem !important;
  line-height: 1.7 !important;
  color: rgba(var(--color-foreground), 0.82) !important;
  margin: 2.4rem 0 !important;
}

.product__description p {
  margin: 0 0 1.4rem;
}

.product__description p:last-child {
  margin-bottom: 0;
}

.product__description ul,
.product__description ol {
  padding-left: 1.6em;
  margin: 1.4rem 0;
}

.product__description li {
  margin: 0.4rem 0;
  padding-left: 0.4em;
}

.product__description li::marker {
  color: rgb(125, 155, 118);
}

/* Verberg lege/wit-only list-items en paragrafen (band-aid voor scheve admin-HTML) */
.product__description li:empty,
.product__description p:empty,
.product__description ul:empty,
.product__description ol:empty,
.accordion__content li:empty,
.accordion__content p:empty,
.rte li:empty,
.rte p:empty,
.rte ul:empty,
.rte ol:empty {
  display: none !important;
}

/* Fix bullets-boven-tekst probleem: <p> in <li> rendert als block waardoor
   bullet en tekst op verschillende regels komen. Forceer inline. */
.product__description li > p,
.accordion__content li > p,
.rte li > p {
  display: inline;
  margin: 0;
}

.product__description li > p + p,
.accordion__content li > p + p,
.rte li > p + p {
  display: block;
  margin-top: 0.4rem;
}

/* Premium accordion (collapsible tabs) — sage borders, smooth caret rotation */
.product__accordion {
  border: 0 !important;
  border-bottom: 1px solid rgba(125, 155, 118, 0.18) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.product__accordion:first-of-type {
  border-top: 1px solid rgba(125, 155, 118, 0.18) !important;
  margin-top: 1.6rem !important;
}

.product__accordion summary {
  padding: 1.8rem 0 !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  transition: color 0.2s ease;
}

.product__accordion summary:hover {
  color: rgb(125, 155, 118);
}

.product__accordion .summary__title {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}

.product__accordion .accordion__title {
  font-family: var(--font-body-family) !important;
  font-weight: 600 !important;
  font-size: 1.55rem !important;
  letter-spacing: 0.005em !important;
  margin: 0 !important;
  color: rgb(var(--color-foreground)) !important;
}

.product__accordion .summary__title svg {
  width: 1.8rem;
  height: 1.8rem;
  color: rgb(125, 155, 118);
}

.product__accordion summary > svg.icon-caret,
.product__accordion summary .icon-caret {
  width: 1rem;
  flex-shrink: 0;
  color: rgba(var(--color-foreground), 0.6);
  transition: transform 0.3s ease;
}

.product__accordion details[open] summary > svg.icon-caret,
.product__accordion details[open] summary .icon-caret {
  transform: rotate(180deg);
}

.product__accordion .accordion__content {
  padding: 0.4rem 0 2rem !important;
  font-size: 1.45rem !important;
  line-height: 1.7 !important;
  color: rgba(var(--color-foreground), 0.78);
}

.product__accordion .accordion__content p {
  margin: 0 0 1rem;
}

.product__accordion .accordion__content p:last-child {
  margin: 0;
}

.product__accordion .accordion__content ul {
  padding-left: 1.6em;
  margin: 0.8rem 0;
}

.product__accordion .accordion__content li {
  margin: 0.4rem 0;
}

.product__accordion .accordion__content li::marker {
  color: rgb(125, 155, 118);
}

.product__accordion .accordion__content strong {
  color: rgb(var(--color-foreground));
  font-weight: 600;
}

/* Product gallery — subtiele afronding + sage hint */
.product__media-wrapper .product__media-list .product__media-item {
  border-radius: 8px;
  overflow: hidden;
}

.product__media-item .product__media,
.product__media-item .deferred-media {
  border-radius: 8px;
  overflow: hidden;
}

/* Share button subtieler */
.share-button {
  margin-top: 1.6rem;
}

.share-button__button {
  font-size: 1.3rem !important;
  color: rgba(var(--color-foreground), 0.6) !important;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: color 0.2s ease;
}

.share-button__button:hover {
  color: rgb(125, 155, 118) !important;
}

/* Related products centered title (overrides eerdere left-aligned) */
.related-products .title-wrapper-with-link {
  justify-content: center;
  text-align: center;
}

.related-products .blog__title,
.related-products .title-wrapper-with-link h2 {
  display: inline-block;
}

/* ======================================================================
   Footer — clean, evenwichtig 4-koloms layout met sage accents.
   ====================================================================== */

.footer {
  border-top: 1px solid rgba(125, 155, 118, 0.16);
}

/* Block-headings — Karla 600 uppercase, sage onderlijntje */
.footer-block__heading {
  font-family: var(--font-body-family) !important;
  font-weight: 600 !important;
  font-size: 1.4rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: rgb(var(--color-foreground)) !important;
  margin: 0 0 1.8rem !important;
  position: relative;
  padding-bottom: 1.2rem;
}

.footer-block__heading::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.4rem;
  height: 2px;
  background: rgb(125, 155, 118);
  border-radius: 2px;
}

/* Brand-block special — heading is logo of "Groeiwonder", iets ruimer */
.footer-block-image .footer-block__heading,
.footer-block .footer-block__heading.rte {
  font-family: var(--font-heading-family) !important;
  font-weight: 500 !important;
  font-size: 2.2rem !important;
  letter-spacing: -0.005em !important;
  text-transform: none;
  padding-bottom: 0.4rem;
}

.footer-block-image .footer-block__heading::after,
.footer-block .footer-block__heading.rte::after {
  display: none;
}

/* Brand-block tekst */
.footer-block__brand-info {
  max-width: 32rem;
}

.footer-block__brand-info p,
.footer-block__brand-info .rte {
  font-size: 1.4rem;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.7);
  margin: 0 0 1.6rem;
}

/* Footer links — subtiel met sage hover + lichte translate */
.footer-block__details-content a,
.footer-block__details-content .link {
  text-decoration: none;
  color: rgba(var(--color-foreground), 0.72);
  font-size: 1.45rem;
  line-height: 2;
  letter-spacing: 0.005em;
  transition: color 0.2s ease, transform 0.2s ease;
  display: inline-block;
}

.footer-block__details-content a:hover,
.footer-block__details-content .link:hover {
  color: rgb(125, 155, 118);
  transform: translateX(3px);
}

/* Contact-tekst block */
.footer-block .rte p {
  font-size: 1.4rem;
  line-height: 1.65;
  color: rgba(var(--color-foreground), 0.72);
  margin: 0 0 0.8rem;
}

.footer-block .rte a {
  color: rgb(125, 155, 118);
  text-decoration: none;
  border-bottom: 1px solid rgba(125, 155, 118, 0.4);
  transition: border-color 0.2s ease;
}

.footer-block .rte a:hover {
  border-bottom-color: rgb(125, 155, 118);
}

/* Social-media iconen */
.footer__list-social {
  margin-top: 1.6rem;
}

.footer__list-social .list-social__link {
  color: rgba(var(--color-foreground), 0.55);
  transition: color 0.2s ease, transform 0.2s ease;
  padding: 0.6rem;
}

.footer__list-social .list-social__link:hover {
  color: rgb(125, 155, 118);
  transform: translateY(-2px);
}

/* Bottom bar — subtle separator + balanced layout */
.footer__content-bottom {
  border-top: 1px solid rgba(125, 155, 118, 0.12);
  margin-top: 4.8rem;
  padding-top: 2.4rem;
}

.footer__content-bottom-wrapper {
  align-items: center;
}

.footer__copyright {
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: rgba(var(--color-foreground), 0.5);
}

.footer__copyright .copyright__content {
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: rgba(var(--color-foreground), 0.5);
}

.footer__copyright a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer__copyright a:hover {
  color: rgb(125, 155, 118);
}

/* Payment-iconen subtieler */
.footer__payment .list-payment {
  gap: 0.6rem;
}

.footer__payment .list-payment__item {
  opacity: 0.55;
  transition: opacity 0.2s ease;
}

.footer__payment .list-payment__item:hover {
  opacity: 1;
}

/* Policy-links onderaan */
.policies {
  gap: 2rem !important;
  flex-wrap: wrap;
  justify-content: center;
}

.policies li a {
  font-size: 1.2rem !important;
  letter-spacing: 0.04em;
  color: rgba(var(--color-foreground), 0.5) !important;
  text-decoration: none;
  transition: color 0.2s ease;
}

.policies li a:hover {
  color: rgb(125, 155, 118) !important;
}

/* ======================================================================
   Announcement bar — pijltjes zichtbaar op sage achtergrond
   ====================================================================== */

.utility-bar .slider-button .icon-caret,
.utility-bar .slider-button svg {
  color: currentColor;
}

.utility-bar .slider-button {
  opacity: 0.7;
  transition: opacity 0.2s ease;
}

.utility-bar .slider-button:hover {
  opacity: 1;
}

/* ======================================================================
   Header — premium spacing, sticky shadow, subtiele border
   ====================================================================== */

.header {
  align-items: center;
}

.header__heading-link {
  padding: 0;
}

@media screen and (min-width: 990px) {
  .header__heading-link {
    padding-right: 2rem;
  }
}

.header-wrapper {
  border-bottom: 1px solid rgba(125, 155, 118, 0.12);
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.shopify-section-header-sticky.scrolled-past-header .header-wrapper {
  box-shadow: 0 4px 20px rgba(45, 45, 45, 0.06);
  border-bottom-color: transparent;
}

/* ======================================================================
   Mega menu — premium typografie + ruimere panel
   ====================================================================== */

@media screen and (min-width: 990px) {
  .mega-menu__content {
    padding: 4rem 0 4.8rem;
    border-top: 1px solid rgba(125, 155, 118, 0.16);
    box-shadow: 0 12px 24px rgba(45, 45, 45, 0.06);
  }

  .mega-menu__list {
    column-gap: 4rem;
    row-gap: 2.4rem;
  }

  /* Level 2 = categorie kop in Playfair */
  .mega-menu__link--level-2 {
    font-family: var(--font-heading-family);
    font-style: var(--font-heading-style);
    font-weight: var(--font-heading-weight);
    font-size: 1.7rem;
    letter-spacing: -0.005em;
    margin-bottom: 1.2rem;
    color: rgb(var(--color-foreground));
  }

  /* Level 3 = sub-links in DM Sans */
  .mega-menu__list .list-unstyled .mega-menu__link {
    font-family: var(--font-body-family);
    font-weight: 400;
    font-size: 1.4rem;
    letter-spacing: 0.01em;
    line-height: 1.9;
    text-transform: none;
    color: rgba(var(--color-foreground), 0.78);
    transition: color 0.2s ease, transform 0.2s ease;
    padding: 0.2rem 0;
  }

  .mega-menu__list .list-unstyled .mega-menu__link:hover {
    color: rgb(125, 155, 118);
    transform: translateX(2px);
  }
}

/* Mega menu inner — default kolom-layout, met image = 2-koloms grid */
.mega-menu__inner {
  display: flex;
  flex-direction: column;
  gap: 0;
}

@media screen and (min-width: 990px) {
  .mega-menu__content--with-image .mega-menu__inner {
    display: grid;
    grid-template-columns: 1fr 28rem;
    gap: 5.6rem;
    align-items: start;
  }
}

/* Linkerkolom: links + footer */
.mega-menu__links-column {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

/* === Rechterkolom: single featured image === */
.mega-menu__feature {
  display: none;
  text-decoration: none;
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  align-self: center;
}

@media screen and (min-width: 990px) {
  .mega-menu__feature {
    display: block;
  }
}

.mega-menu__feature-image-wrap {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 10px;
}

.mega-menu__feature-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.mega-menu__feature:hover .mega-menu__feature-image {
  transform: scale(1.04);
}

.mega-menu__feature-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 2rem 1.6rem 1.6rem;
  background: linear-gradient(to top, rgba(45, 45, 45, 0.55), transparent);
  border-radius: 0 0 10px 10px;
}

.mega-menu__feature-label {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  font-size: 1.8rem;
  letter-spacing: -0.01em;
  color: #FFFFFF;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

/* === Rechterkolom: grid van meerdere afbeeldingen (Merken, Op leeftijd) === */
.mega-menu__image-grid {
  display: none;
  align-self: center;
}

@media screen and (min-width: 990px) {
  .mega-menu__image-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.8rem;
    width: 28rem;
  }
}

/* 2 afbeeldingen → 2 grote items */
.mega-menu__image-grid--2-items {
  grid-template-columns: repeat(2, 1fr);
}

/* 3 afbeeldingen → 3 gelijke kolommen */
.mega-menu__image-grid--3-items {
  grid-template-columns: repeat(3, 1fr);
  width: 34rem;
}

/* 4 afbeeldingen → 2×2 */
.mega-menu__image-grid--4-items {
  grid-template-columns: repeat(2, 1fr);
}

/* 5-6 afbeeldingen (Merken) → 3×2 */
.mega-menu__image-grid--5-items,
.mega-menu__image-grid--6-items,
.mega-menu__image-grid--7-items {
  grid-template-columns: repeat(3, 1fr);
  width: 36rem;
}

.mega-menu__image-grid-item {
  text-decoration: none;
  display: block;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.mega-menu__image-grid-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(45, 45, 45, 0.12);
}

.mega-menu__image-grid-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 8px;
  background: rgba(125, 155, 118, 0.06);
}

.mega-menu__image-grid-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.mega-menu__image-grid-item:hover .mega-menu__image-grid-photo {
  transform: scale(1.06);
}

/* Label onderaan elk grid-item */
.mega-menu__image-grid-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.4rem 0.8rem 0.8rem;
  background: linear-gradient(to top, rgba(45, 45, 45, 0.6), transparent);
  font-family: var(--font-body-family);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #FFFFFF;
  text-align: center;
  line-height: 1.2;
}

/* "Bekijk alle [categorie]" footer link */
.mega-menu__footer {
  padding-top: 2rem;
  border-top: 1px solid rgba(125, 155, 118, 0.14);
}

.mega-menu__view-all {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--font-body-family);
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  color: rgb(125, 155, 118);
  transition: gap 0.2s ease, color 0.2s ease;
}

.mega-menu__view-all:hover {
  color: rgb(101, 128, 96);
  gap: 1rem;
}

.mega-menu__view-all-arrow {
  font-size: 1.2rem;
  transition: transform 0.2s ease;
}

.mega-menu__view-all:hover .mega-menu__view-all-arrow {
  transform: translateX(3px);
}

/* Caret wijzigen wanneer geopend */
header-menu details[open] > summary svg.icon-caret {
  transform: rotate(180deg);
  transition: transform 0.2s ease;
}

header-menu summary svg.icon-caret {
  transition: transform 0.2s ease;
}

/* ======================================================================
   Hero (image-banner) — gradient overlay + asymmetrisch + premium typo
   ====================================================================== */

/* Gradient overlay — donker linksonder (waar content staat), licht rechtsboven */
.banner::after,
.banner__media::after {
  background: linear-gradient(
    to top,
    rgba(20, 20, 20, 0.7) 0%,
    rgba(20, 20, 20, 0.4) 35%,
    rgba(20, 20, 20, 0.1) 70%,
    rgba(20, 20, 20, 0) 100%
  ) !important;
  opacity: 1 !important;
}

@media screen and (min-width: 750px) {
  .banner::after,
  .banner__media::after {
    background: linear-gradient(
      to top right,
      rgba(20, 20, 20, 0.7) 0%,
      rgba(20, 20, 20, 0.45) 25%,
      rgba(20, 20, 20, 0.18) 55%,
      rgba(20, 20, 20, 0) 80%
    ) !important;
  }
}

/* Hero content — bottom-left positionering met max-width */
.banner--content-align-left .banner__box {
  text-align: left;
  align-items: flex-start;
  max-width: 60rem;
}

@media screen and (min-width: 990px) {
  .banner--content-align-left .banner__box {
    max-width: 64rem;
  }

  .banner__content--bottom-left .banner__box,
  .banner__content--bottom-center .banner__box,
  .banner__content--bottom-right .banner__box {
    padding-bottom: 2rem;
  }
}

/* Hero tekst altijd helder wit voor maximaal contrast */
.banner__box,
.banner__box .banner__heading,
.banner__box .caption-with-letter-spacing,
.banner__box .banner__text {
  color: #FFFFFF;
}

/* Eyebrow (text block met caption-with-letter-spacing) — wit met gouden lijn */
.banner__box .caption-with-letter-spacing {
  position: relative;
  font-family: var(--font-body-family);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #FFFFFF;
  padding-left: 4.4rem;
  margin-bottom: 0 !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
}

.banner__box .caption-with-letter-spacing::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3.2rem;
  height: 2px;
  background: rgb(125, 155, 118);
  box-shadow: 0 0 10px rgba(125, 155, 118, 0.55);
}

@media screen and (min-width: 750px) {
  .banner__box .caption-with-letter-spacing {
    font-size: 1.3rem;
  }
}

/* Hero heading — Playfair, helder wit, gebalanceerde wrap, soft drop-shadow */
.banner__heading {
  font-size: 4rem;
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0;
  color: #FFFFFF;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45), 0 1px 4px rgba(0, 0, 0, 0.25);
  text-wrap: balance;
}

@media screen and (min-width: 750px) {
  .banner__heading {
    font-size: 6rem;
  }
}

@media screen and (min-width: 1200px) {
  .banner__heading {
    font-size: 7.2rem;
  }
}

/* Hero CTA — meer body + transitions, beter contrast op foto */
.banner__buttons .button {
  padding: 1.6rem 3.2rem;
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

@media screen and (min-width: 750px) {
  .banner__buttons .button {
    padding: 1.8rem 3.6rem;
    font-size: 1.6rem;
  }
}

.banner__buttons .button:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
}

/* Iets meer ademruimte tussen blokken in hero */
.banner__box > * + * {
  margin-top: 1.6rem;
}

@media screen and (min-width: 750px) {
  .banner__box > * + * {
    margin-top: 2rem;
  }
}

.banner__box .button {
  margin-top: 2.4rem !important;
}

@media screen and (min-width: 750px) {
  .banner__box .button {
    margin-top: 3.2rem !important;
  }
}

/* ======================================================================
   Bundel sectie — sections/bundle-products.liquid
   ====================================================================== */

/* Sectie header */
.bundle-section__header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 5.6rem;
}

.bundle-section__eyebrow {
  font-family: var(--font-body-family);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  margin: 0 0 1.2rem;
}

.bundle-section__heading {
  margin: 0 0 1.4rem;
  letter-spacing: -0.02em;
}

.bundle-section__subtext {
  font-size: 1.5rem;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.68);
  margin: 0;
}

/* Tweekoloms layout: items links, perks+CTA rechts */
.bundle-section__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
}

@media screen and (min-width: 990px) {
  .bundle-section__layout {
    grid-template-columns: 1fr 380px;
    gap: 6.4rem;
    align-items: start;
  }
}

/* Items kolom label */
.bundle-section__items-label {
  font-family: var(--font-body-family);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.45);
  margin: 0 0 2rem;
}

/* Productenlijst */
.bundle-section__list {
  list-style: none;
  padding: 0;
  margin: 0 0 2.4rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Enkel bundel item */
.bundle-item {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  align-items: center;
  gap: 1.6rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid rgba(var(--color-foreground), 0.08);
}

.bundle-item:first-child {
  border-top: 1px solid rgba(var(--color-foreground), 0.08);
}

/* Afbeelding */
.bundle-item__image-wrap {
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(var(--color-foreground), 0.04);
  flex-shrink: 0;
}

.bundle-item__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bundle-item__image-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(var(--color-foreground), 0.3);
}

/* Naam + subtitle */
.bundle-item__info {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.bundle-item__title {
  font-family: var(--font-body-family);
  font-size: 1.5rem;
  font-weight: 600;
  color: rgb(var(--color-foreground));
  line-height: 1.35;
}

.bundle-item__qty {
  font-weight: 400;
  color: rgba(var(--color-foreground), 0.55);
  margin-left: 0.4rem;
}

.bundle-item__subtitle {
  font-size: 1.3rem;
  color: rgba(var(--color-foreground), 0.55);
  line-height: 1.4;
}

/* Originele prijs per item */
.bundle-item__price {
  text-align: right;
}

.bundle-item__original-price {
  font-size: 1.4rem;
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.55);
  text-decoration: line-through;
}

/* Besparing blok */
.bundle-savings {
  background: rgba(125, 155, 118, 0.08);
  border: 1px solid rgba(125, 155, 118, 0.22);
  border-radius: 10px;
  padding: 1.6rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.bundle-savings__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1.4rem;
}

.bundle-savings__label {
  color: rgba(var(--color-foreground), 0.65);
}

.bundle-savings__original {
  color: rgba(var(--color-foreground), 0.55);
  text-decoration: line-through;
  font-weight: 500;
}

.bundle-savings__row--total .bundle-savings__label {
  font-weight: 700;
  color: rgb(var(--color-foreground));
  font-size: 1.55rem;
}

.bundle-savings__price {
  font-size: 1.8rem;
  font-weight: 700;
  color: rgb(125, 155, 118);
  letter-spacing: -0.01em;
}

.bundle-savings__badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.3rem;
  font-weight: 700;
  color: rgb(125, 155, 118);
  padding-top: 0.8rem;
  border-top: 1px solid rgba(125, 155, 118, 0.2);
  margin-top: 0.4rem;
}

/* Rechterkolom: perks */
.bundle-perks {
  list-style: none;
  padding: 0;
  margin: 0 0 3.2rem;
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.bundle-perk {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  font-size: 1.45rem;
  line-height: 1.45;
  color: rgba(var(--color-foreground), 0.85);
}

.bundle-perk__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(125, 155, 118, 0.12);
  color: rgb(125, 155, 118);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.1rem;
}

.bundle-perk__text {
  padding-top: 0.7rem;
  font-weight: 500;
}

/* Prijs display boven CTA knop */
.bundle-section__price-display {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: 1.6rem;
  flex-wrap: wrap;
}

.bundle-price__compare {
  font-size: 1.6rem;
  color: rgba(var(--color-foreground), 0.45);
  text-decoration: line-through;
}

.bundle-price__current {
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: rgb(var(--color-foreground));
}

.bundle-price__save-badge {
  display: inline-block;
  background: rgb(125, 155, 118);
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.3rem 0.9rem;
  border-radius: 999px;
}

/* CTA knop + notitie */
.bundle-section__cta-btn {
  width: 100%;
  text-align: center;
}

.bundle-section__cta-note {
  font-size: 1.25rem;
  color: rgba(var(--color-foreground), 0.5);
  text-align: center;
  margin: 1rem 0 0;
  letter-spacing: 0.01em;
}

/* Sticky rechterkolom op desktop */
@media screen and (min-width: 990px) {
  .bundle-section__cta-col {
    position: sticky;
    top: 12rem;
  }
}

/* Mobile: compactere items */
@media screen and (max-width: 749px) {
  .bundle-item {
    grid-template-columns: 56px 1fr auto;
    gap: 1.2rem;
    padding: 1.2rem 0;
  }

  .bundle-item__image-wrap {
    width: 56px;
    height: 56px;
  }

  .bundle-item__title {
    font-size: 1.4rem;
  }

  .bundle-section__header {
    margin-bottom: 4rem;
  }
}

/* ======================================================================
   Bundle upsell block — "Ook verkrijgbaar als voordeelset" accordion
   op de losse productpagina (main-product.liquid block_type: bundle_upsell)
   ====================================================================== */

/* Icoon in de accordion summary — sage kleur */
.bundle-upsell .summary__title .bundle-upsell__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: rgba(125, 155, 118, 0.12);
  color: rgb(125, 155, 118);
  flex-shrink: 0;
  margin-right: 0.4rem;
}

/* Kaart — klikbaar blok met foto, info, pijl */
.bundle-upsell__card {
  display: grid;
  grid-template-columns: 80px 1fr 32px;
  align-items: center;
  gap: 1.6rem;
  padding: 1.6rem;
  background: rgba(125, 155, 118, 0.06);
  border: 1px solid rgba(125, 155, 118, 0.2);
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  margin-top: 0.8rem;
}

.bundle-upsell__card:hover {
  background: rgba(125, 155, 118, 0.1);
  border-color: rgba(125, 155, 118, 0.4);
  transform: translateY(-1px);
  text-decoration: none;
  color: inherit;
}

/* Productafbeelding */
.bundle-upsell__image-wrap {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  background: rgb(var(--color-background));
  flex-shrink: 0;
}

.bundle-upsell__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Tekst info kolom */
.bundle-upsell__info {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

.bundle-upsell__eyebrow {
  font-family: var(--font-body-family);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgb(125, 155, 118);
  margin: 0;
}

.bundle-upsell__title {
  font-family: var(--font-body-family);
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.35;
  color: rgb(var(--color-foreground));
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Prijs rij */
.bundle-upsell__pricing {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-top: 0.2rem;
}

.bundle-upsell__compare {
  font-size: 1.25rem;
  color: rgba(var(--color-foreground), 0.45);
  text-decoration: line-through;
}

.bundle-upsell__price {
  font-size: 1.5rem;
  font-weight: 700;
  color: rgb(var(--color-foreground));
  letter-spacing: -0.01em;
}

.bundle-upsell__save {
  display: inline-block;
  font-size: 1.1rem;
  font-weight: 700;
  color: rgb(125, 155, 118);
  background: rgba(125, 155, 118, 0.12);
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
}

/* Pijl rechts */
.bundle-upsell__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgb(125, 155, 118);
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.bundle-upsell__card:hover .bundle-upsell__cta {
  transform: translateX(3px);
}

/* Mobile: iets compacter */
@media screen and (max-width: 749px) {
  .bundle-upsell__card {
    grid-template-columns: 64px 1fr 24px;
    gap: 1.2rem;
    padding: 1.2rem;
  }

  .bundle-upsell__image-wrap {
    width: 64px;
    height: 64px;
  }

  .bundle-upsell__title {
    font-size: 1.35rem;
  }
}
}
