/* Static-site additions (footer bottom bar). Bump ?v= in clean.py on change. */
.ast-footer-copyright.wj-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #3a3a3a;
}
.wj-footer p { margin: 0; }
.wj-footer a { color: inherit; text-decoration: none; }
.wj-footer a:hover span,
.wj-footer > p > a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.wj-footer a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 4px; }

/* Thinner bottom bar: Astra uses 20px padding + 80px min-height */
.site-below-footer-wrap[data-section="section-below-footer-builder"] { padding-top: 14px; padding-bottom: 14px; min-height: 0; }
.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row { min-height: 0; }
.site-below-footer-wrap[data-section="section-below-footer-builder"] .site-footer-section { margin-bottom: 0; }

/* Footer columns: Contact / Locatie / Openingstijden (background #a0b1c2) */
/* Shorter: Astra uses 50px top/bottom padding */
.site-primary-footer-wrap[data-section="section-primary-footer-builder"] { padding-top: 44px; padding-bottom: 44px; }
.site-primary-footer-wrap { --fc-ink: #1f2a37; --fc-accent: #e7111d; color: var(--fc-ink); }
.site-primary-footer-wrap .widget-title {
  font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--fc-ink); margin: 0 0 1.1rem;
}
.fc { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; }
.fc__row { display: flex; align-items: flex-start; gap: 0.75rem; margin: 0; font-size: 1rem; line-height: 1.5; }
.fc__row address { font-style: normal; margin: 0; }
.fc__row strong { font-weight: 600; }
.fc__icon { flex: none; width: 1.25rem; height: 1.25rem; margin-top: 0.15rem; fill: var(--fc-ink); }
.fc__label { display: block; font-size: 0.875rem; opacity: 0.8; }
.site-footer .fc a { color: var(--fc-ink); font-weight: 600; text-decoration: none; }
.site-footer .fc a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
@media (min-width: 1200px) {
  /* 3 columns, as wide as their content with a fixed gap, centred */
  .site-footer .site-primary-footer-wrap[data-section] .ast-builder-grid-row {
    grid-template-columns: repeat(3, max-content); column-gap: 8rem; justify-content: center;
  }
}
@media (min-width: 769px) and (max-width: 1199px) {
  /* Tablet: 3 in a row with a smaller gap */
  .site-footer .site-primary-footer-wrap[data-section] .ast-builder-grid-row {
    grid-template-columns: repeat(3, max-content); column-gap: 3rem; justify-content: center;
  }
}
@media (max-width: 768px) {
  /* Astra keeps 3 columns on tablet: too narrow for the headings, so stack them */
  .site-footer .site-primary-footer-wrap[data-section] .ast-builder-grid-row { grid-template-columns: 1fr; }
  /* Astra centres the columns on tablet/mobile; keep them left-aligned in a centred block */
  .site-footer .site-primary-footer-wrap .footer-widget-area .footer-widget-area-inner {
    text-align: left; max-width: 20rem; margin-left: auto; margin-right: auto;
  }
  .site-footer .site-primary-footer-wrap[data-section] .site-footer-section { margin-bottom: 1.5rem; }
  .site-footer .site-primary-footer-wrap[data-section] .site-footer-section:last-child { margin-bottom: 0; }
}

/* Webjongens credit (no typewriter) */
.credit { --credit-heart: #e7111d; }
.credit__link { display: inline-flex; align-items: center; gap: 0.35rem; letter-spacing: 0.02em; }
.credit__link strong { font-weight: 700; }
.credit__heart {
  width: 1rem; height: 1rem; fill: var(--credit-heart);
  transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
.credit__link:hover .credit__heart { transform: scale(1.2); }
@media (prefers-reduced-motion: reduce) { .credit__heart { transition: none; } }

/* Image carousels (home "Onze producten" + De Reuze Aardbei page): same layout,
   modern finish. Each carousel becomes a white card: photo, caption, dots. */
.elementor-widget-image-carousel { --car-ink: #1f2a37; --car-accent: #e7111d; }
.elementor-widget-image-carousel .elementor-image-carousel-wrapper.swiper {
  container-type: inline-size;
  background: #fff; border-radius: 6px;
  box-shadow: 0 1px 2px rgb(31 42 55 / 0.08), 0 10px 28px -12px rgb(31 42 55 / 0.35);
  padding-bottom: 2.25rem;
}
.elementor-widget-image-carousel .swiper-slide-inner { margin: 0; }
.elementor-widget-image-carousel .swiper-slide-image {
  display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
}
.elementor-widget-image-carousel .elementor-image-carousel-caption {
  min-height: calc(0.85rem + 2.7em); margin: 0; padding: 0.85rem 1rem 0; /* room for 2 lines */
  font-size: 1rem; font-weight: 600; line-height: 1.35; color: var(--car-ink); text-align: center;
}
/* Arrows: white round buttons, centred on the photo (the photo is square, so 50cqw) */
/* Elementor centres them on the whole card (top: 50% - 15px, translateY(-50%)) */
.elementor-element.elementor-widget-image-carousel .swiper .elementor-swiper-button { top: 50cqw; }
.elementor-widget-image-carousel .swiper .elementor-swiper-button {
  width: 2.5rem; height: 2.5rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgb(255 255 255 / 0.9); color: var(--car-ink); font-size: 1rem;
  box-shadow: 0 2px 8px rgb(31 42 55 / 0.25);
  opacity: 0; transition: opacity 200ms ease, background-color 150ms ease, color 150ms ease;
}
.elementor-widget-image-carousel .swiper .elementor-swiper-button-prev { left: 0.75rem; }
.elementor-widget-image-carousel .swiper .elementor-swiper-button-next { right: 0.75rem; }
.elementor-widget-image-carousel .swiper:hover .elementor-swiper-button,
.elementor-widget-image-carousel .swiper .elementor-swiper-button:focus-visible { opacity: 1; }
.elementor-widget-image-carousel .swiper .elementor-swiper-button:hover { background: var(--car-accent); color: #fff; }
.elementor-widget-image-carousel .swiper .elementor-swiper-button:focus-visible { outline: 2px solid var(--car-ink); outline-offset: 2px; }
.elementor-widget-image-carousel .swiper .elementor-swiper-button i { color: inherit; font-size: inherit; }
@media (hover: none) { .elementor-widget-image-carousel .swiper .elementor-swiper-button { opacity: 1; } }
/* Dots: plain round dots, the active one red */
.elementor-widget-image-carousel .swiper .swiper-pagination { bottom: 0.9rem; line-height: 0; }
.elementor-widget-image-carousel .swiper .swiper-pagination-bullet {
  width: 8px; height: 8px; margin: 0 4px; border-radius: 50%;
  background: var(--car-ink); opacity: 0.25; transition: opacity 200ms ease;
}
.elementor-widget-image-carousel .swiper .swiper-pagination-bullet-active { opacity: 1; background: var(--car-accent); }
@media (prefers-reduced-motion: reduce) {
  .elementor-widget-image-carousel .swiper .elementor-swiper-button,
  .elementor-widget-image-carousel .swiper .swiper-pagination-bullet { transition: none; }
}

/* Home "Onze producten" section: Elementor gives it 175px bottom padding on desktop
   (tablet 70px, mobile 78px). Trim the desktop value. */
@media (min-width: 1025px) {
  .elementor-1328 .elementor-element.elementor-element-5156eaf { padding-bottom: 60px; }
}

/* Home intro (chalkboard background): photo + a real welcome heading */
.intro-photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px;
  box-shadow: 0 12px 30px -12px rgb(0 0 0 / 0.6); }
.elementor-widget-text-editor .intro-title {
  margin: 0 0 1.1rem; color: #fff; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); font-weight: 700; line-height: 1.15;
  letter-spacing: -0.01em;
}
.intro-title::after { content: ""; display: block; width: 3rem; height: 3px; margin-top: 0.9rem; border-radius: 2px; background: #fff; }

/* Home "Onze producten" heading + line under it: white instead of black/grey */
.elementor-1328 .elementor-element.elementor-element-8621daa .elementor-heading-title { color: #fff; }
.elementor-1328 .elementor-element.elementor-element-1965438 { --divider-color: #fff; }

/* Home intro: photo vertically centred against the text column */
.elementor-1328 .elementor-element.elementor-element-3e91860 > .elementor-container { align-items: center; }

/* Home hero (desktop/tablet photo is a compressed WhatsApp image): cleaned-up copy,
   and no fixed background (it scaled the photo to the window and breaks on iOS).
   Phones keep Elementor's own, sharper photo. */
@media (min-width: 768px) {
  .elementor-1328 .elementor-element.elementor-element-e358d0c:not(.elementor-motion-effects-element-type-background) {
    background-image: url("/assets/hero-clean-1200.jpg"); background-attachment: scroll;
  }
}
@media (min-width: 1200px) {
  .elementor-1328 .elementor-element.elementor-element-e358d0c:not(.elementor-motion-effects-element-type-background) {
    background-image: url("/assets/hero-clean-2040.jpg");
  }
}
.hero-logo { width: 200px; height: auto; }
