/*
Theme Name:   Tartelier Child
Theme URI:    https://tartelier.be
Description:  Child theme van Hello Elementor voor Tartelier — artisan bakery in Deinze.
Author:       Tartelier
Author URI:   https://tartelier.be
Template:     hello-elementor
Version:      3.3.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  tartelier-child
Tags:         elementor, artisan, bakery
*/

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');

/* =========================================================
   WORDPRESS & ELEMENTOR — GLOBALE RESETS
   ========================================================= */

/* 1. Overschrijf WordPress 800px content-size */
:root {
  --wp--style--global--content-size: 100%;
  --wp--style--global--wide-size: 100%;
}

/* 2. Verwijder alle WordPress layout beperkingen */
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 100% !important;
}
.is-layout-constrained,
.is-layout-flow,
.is-layout-flex,
.is-layout-grid,
.wp-block,
.wp-site-blocks {
  max-width: 100% !important;
}

/* 3. Elementor e-con (nieuw containersysteem) — reset gap en breedte */
.e-con {
  --grid-auto-flow: initial;
}

/* Top-level section containers — full-width achtergrond, maar inner padding behouden */
.e-con.e-parent {
  --container-max-width: 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  margin-inline: 0 !important;
}

/* Nested containers — laat Elementor de breedte bepalen (boxed layout) */

/* Elementor page wrapper */
.elementor.elementor-page,
.elementor-inner,
[data-elementor-type="wp-page"] {
  max-width: 100% !important;
  width: 100% !important;
}

/* 4. Reset de automatische 24px gap van WordPress flex-layout */
:root :where(.is-layout-flex) { gap: 0 !important; }
:root :where(.is-layout-grid) { gap: 0 !important; }

/* 5. Elementor widget spacing reset */
.elementor-widget:not(:last-child) {
  margin-bottom: 0;
}

/* 6. Body en page wrappers */
body, #page, .site, #content, .site-content,
.site-main, .page-content, .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* =========================================================
   DESIGN TOKENS
   ========================================================= */

:root {
  /* ── Static fallbacks (used when outside .elementor-kit-5) ── */
  --color-primary:      #B65A39;
  --color-secondary:    #879E7E;
  --color-tertiary:     #312317;
  --color-foreground:   #2B2B2B;

  /* Derived / static tokens */
  --color-primary-dark: hsl(15, 52%, 38%);
  --color-primary-light:hsl(15, 52%, 92%);
  --color-sage:         hsl(105, 11%, 57%);
  --color-cream:        hsl(33, 38%, 89%);
  --color-background:     hsl(30, 33%, 97%);
  --color-background-rgb: 250, 247, 242; /* for rgba() backdrop fallbacks */
  --color-muted:        hsl(0, 0%, 45%);
  --color-card:         hsl(0, 0%, 100%);
  --color-border:       hsl(33, 20%, 88%);
  --color-charcoal:     hsl(0, 0%, 17%);
  --color-offwhite:     hsl(30, 33%, 97%);
  --color-sidebar:      hsl(35, 35%, 50%);
  --color-surface:      rgb(250, 247, 245);
  --color-label:        rgba(44, 34, 22, 0.5);   /* label text — brunch + contact */
  --color-input-border: rgba(52, 36, 25, 0.15);  /* default input border */
  --color-input-focus:  rgba(52, 36, 25, 0.85);  /* focus border */

  /* Typography */
  --font-serif: "Cormorant Garamond", Georgia, serif;
  --font-body:  "DM Sans", system-ui, sans-serif;

  /* Spacing */
  --section-py: 80px;
  --container-max: 1200px;
  --container-px: 24px;
}

/* ── Elementor global colour bridge ─────────────────────────
   Elementor scopes its --e-global-color-* vars to
   .elementor-kit-5 (on <body>). We re-map our tokens here
   so a single Elementor Global Colour change propagates
   everywhere in the theme automatically.
   ─────────────────────────────────────────────────────────── */
.elementor-kit-5 {
  --color-primary:    var(--e-global-color-primary,    #B65A39);
  --color-secondary:  var(--e-global-color-secondary,  #879E7E);
  --color-foreground: var(--e-global-color-text,       #2B2B2B);
  /* Tertiary = custom dark brown (#312317) in Elementor */
  --color-tertiary:   var(--e-global-color-f64f69f,    #312317);
}

/* =========================================================
   BASE RESET & BODY
   ========================================================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  background-color: var(--color-background);
  color: var(--color-foreground);
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 300;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* =========================================================
   UTILITY CLASSES
   ========================================================= */

.tartelier-container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.tartelier-label {
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-primary);
  display: block;
}

.tartelier-label--muted {
  color: var(--color-muted);
}

/* =========================================================
   BUTTONS
   ========================================================= */

.tartelier-btn,
.tartelier-btn--primary .elementor-button,
.tartelier-btn--secondary .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  border: 1.5px solid transparent !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
  text-decoration: none !important;
  padding: 14px 36px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

/* ── Primary — terracotta, pill, hover: primary border + tekst */
.tartelier-btn--primary,
.tartelier-btn--primary .elementor-button {
  background-color: var(--color-primary) !important;
  color: #fff !important;
  border-color: transparent !important;
  border-radius: 100px !important;
}
.tartelier-btn--primary:hover,
.tartelier-btn--primary .elementor-button:hover {
  background-color: transparent !important;
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

/* ── Secondary — donker, pill, hover: donker border + tekst */
.tartelier-btn--secondary,
.tartelier-btn--secondary .elementor-button {
  background-color: #2b2b2b !important;
  color: #fff !important;
  border-color: transparent !important;
  border-radius: 100px !important;
}
.tartelier-btn--secondary:hover,
.tartelier-btn--secondary .elementor-button:hover {
  background-color: transparent !important;
  color: #2b2b2b !important;
  border-color: #2b2b2b !important;
}

/* ── Tertiary — wit, pill, hover: witte achtergrond + donkere tekst */
.tartelier-btn--tertiary,
.tartelier-btn--tertiary .elementor-button {
  background-color: transparent !important;
  color: #fff !important;
  border-color: #fff !important;
  border-radius: 100px !important;
}
.tartelier-btn--tertiary:hover,
.tartelier-btn--tertiary .elementor-button:hover {
  background-color: #fff !important;
  color: #2b2b2b !important;
  border-color: #fff !important;
}

.tartelier-btn--outline {
  background-color: transparent;
  border-color: rgba(0, 0, 0, 0.3);
  color: var(--color-foreground);
  border-radius: 0;
}

.tartelier-btn--outline:hover {
  background-color: var(--color-foreground);
  color: var(--color-offwhite);
}

.tartelier-btn--sage {
  background-color: var(--color-sage);
  color: #fff;
  border-color: var(--color-sage);
  border-radius: 4px;
}

.tartelier-btn--sage:hover {
  transform: scale(1.04);
  box-shadow: 0 8px 24px hsla(105, 11%, 57%, 0.35);
}

/* =========================================================
   NAVBAR
   ========================================================= */

.tartelier-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  transition: margin 0.3s ease, border-radius 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;

  /* Default: pill, transparant — andere pagina's dan home */
  margin: 16px 24px 0;
  border-radius: 100px;
  background-color: transparent;
  box-shadow: none;
}

/* Home pagina: altijd wit (ook mobiel, ook zonder scroll) */
.tartelier-nav--home {
  background-color: #fff;
  box-shadow: none;
}

/* Winkel / product / checkout — subtiele pill (zichtbaar op witte pagina) */
.tartelier-nav--light {
  background-color: var(--color-surface);
  box-shadow: none;
}

/* Bij scrollen op ALLE pagina's: wit + geen pill */
.tartelier-nav--scrolled {
  margin: 0;
  border-radius: 0;
  background-color: #fff;
  box-shadow: 0 1px 8px rgba(0,0,0,0.08);
}

/* Als mobiel menu open is → afgeronde rechthoek + wit */
.tartelier-nav:has(.tartelier-nav__mobile.is-open) {
  border-radius: 16px;
  margin: 8px 16px 0;
  background-color: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,0.10);
}
/* Bij scroll + menu open: geen pill */
.tartelier-nav--scrolled:has(.tartelier-nav__mobile.is-open) {
  border-radius: 0;
  margin: 0;
}

.tartelier-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 28px;
  transition: padding 0.3s ease;
}

/* Desktop: 3-kolom grid → links exact gecentreerd */
@media (min-width: 1024px) {
  .tartelier-nav__inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
  }
}

.tartelier-nav--scrolled .tartelier-nav__inner {
  padding: 12px 24px;
}

.tartelier-nav__logo {
  text-decoration: none;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.tartelier-nav__logo-img {
  display: block !important;
  height: 34px !important;
  width: auto !important;
  max-width: 130px !important;
  max-height: 34px !important;
  object-fit: contain !important;
}

@media (max-width: 767px) {
  .tartelier-nav__logo-img {
    height: 28px !important;
    max-height: 28px !important;
    max-width: 110px !important;
  }
}

/* Desktop links — gecentreerd via grid kolom 2 */
.tartelier-nav__links {
  display: none;
  align-items: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.tartelier-nav__links a {
  color: var(--color-muted);
  transition: color 0.2s;
  text-decoration: none;
}

.tartelier-nav__links a:hover,
.tartelier-nav__links a.active {
  color: var(--color-primary);
}

/* Actions (cart + hamburger) */
.tartelier-nav__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto; /* mobiel: rechts uitlijnen */
}

@media (min-width: 1024px) {
  .tartelier-nav__actions {
    margin-left: 0;
    justify-self: end; /* grid kolom 3 — rechts uitlijnen */
  }
}

.tartelier-nav__cart,
.tartelier-nav__account {
  position: relative;
  color: var(--color-foreground);
  cursor: pointer;
  transition: color 0.2s;
  background: none;
  border: none;
  padding: 4px;
  line-height: 1;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.tartelier-nav__cart:hover,
.tartelier-nav__account:hover,
.tartelier-nav__account.is-active {
  color: var(--color-primary);
}

.tartelier-nav__cart-count {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  background-color: var(--color-primary);
  color: #fff;
  font-size: 10px;
  border-radius: 8px;
  display: none;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-weight: 600;
  line-height: 1;
}

.tartelier-nav__cart-count.is-visible {
  display: flex;
}

/* Hamburger — puur klikbaar icoon (span, geen button) */
.tartelier-nav__hamburger {
  cursor: pointer;
  color: var(--color-primary);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
}
.tartelier-nav__hamburger:hover {
  color: var(--color-primary-dark);
}

/* Mobile menu */
.tartelier-nav__mobile {
  display: none;
  border-top: 1px solid var(--color-border);
  list-style: none;
  margin: 0;
  padding: 0;
}

.tartelier-nav__mobile.is-open {
  display: block;
}

.tartelier-nav__mobile li {
  border-bottom: 1px solid var(--color-border);
}

.tartelier-nav__mobile li:last-child {
  border-bottom: none;
}

.tartelier-nav__mobile a {
  display: block;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-foreground);
  text-decoration: none;
  padding: 16px 28px;
  transition: color 0.2s;
}

.tartelier-nav__mobile a:hover,
.tartelier-nav__mobile a.active {
  color: var(--color-primary);
}

@media (min-width: 1024px) {
  .tartelier-nav__links {
    display: flex;
  }
  .tartelier-nav__hamburger {
    display: none;
  }
}

/* =========================================================
   HERO SECTION
   ========================================================= */

.tartelier-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
}

.tartelier-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scaleX(-1); /* flipped horizontally like the original */
}

.tartelier-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(252,250,248,0.15) 0%, transparent 60%);
}

.tartelier-hero__content {
  position: relative;
  z-index: 10;
  height: 100%;
  display: flex;
  align-items: center;
  padding-inline: var(--container-px);
  max-width: var(--container-max);
  margin-inline: auto;
}

.tartelier-hero__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 420px;
  margin-left: 32px;
}

.tartelier-hero__tagline {
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(44,44,44,0.5);
  margin-bottom: 24px;
  animation: fadeSlideUp 0.8s ease-out 0.2s both;
}

.tartelier-hero__title {
  font-family: var(--font-serif);
  font-size: clamp(44px, 6vw, 72px);
  font-weight: 300;
  line-height: 1.1;
  color: var(--color-foreground);
  margin: 0 0 16px;
  animation: fadeSlideUp 0.8s ease-out 0.4s both;
}

.tartelier-hero__subtitle {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: var(--color-muted);
  margin: 0 0 40px;
  animation: fadeSlideUp 0.8s ease-out 0.6s both;
}

.tartelier-hero__cta {
  animation: fadeSlideUp 0.8s ease-out 0.8s both;
}

.tartelier-hero__scroll {
  position: absolute;
  bottom: 64px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  animation: bounce 2s infinite;
  color: var(--color-muted);
}

.tartelier-hero__scroll svg {
  width: 20px;
  height: 20px;
}

/* =========================================================
   BOOK TABLE (reservation bar)
   ========================================================= */

.tartelier-booktable {
  position: relative;
  z-index: 20;
  margin-top: -44px;
}

.tartelier-booktable__inner {
  max-width: 980px;
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.tartelier-booktable__card {
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background-color: rgba(255,255,255,0.92);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
  border: 1px solid rgba(255,255,255,0.4);
  padding: 28px 32px 24px;
}

/* Titel boven het formulier */
.tartelier-booktable__title {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 300;
  color: var(--color-foreground);
  margin: 0 0 20px;
  letter-spacing: 0.01em;
}

.tartelier-booktable__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: end;
}

.tartelier-booktable__field label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-bottom: 8px;
}

.tartelier-booktable__field label svg {
  width: 16px;
  height: 16px;
}

.tartelier-booktable__input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--color-border);
  background: #fff;
  color: var(--color-foreground);
  font-family: var(--font-body);
  font-size: 13px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
}

.tartelier-booktable__input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(180,90,57,0.08);
  outline: none;
}

/* Submit knop — kleiner + consistent met andere buttons */
.tartelier-booktable__form .tartelier-btn {
  padding: 10px 20px !important;
  font-size: 12px !important;
  border-radius: 8px !important;
  white-space: nowrap;
  align-self: flex-end;
}

/* Feedback message */
.tartelier-booktable__msg {
  margin-top: 12px;
  font-size: 14px;
  text-align: center;
  font-family: var(--font-body);
}
.tartelier-booktable__msg--success { color: var(--color-muted); }
.tartelier-booktable__msg--error   { color: var(--color-primary); }

@media (min-width: 640px) {
  .tartelier-booktable__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 1024px) {
  .tartelier-booktable__grid {
    grid-template-columns: repeat(5, 1fr) auto;
  }
}

/* =========================================================
   HOW IT WORKS
   ========================================================= */

.tartelier-how {
  padding-block: var(--section-py);
  background-color: var(--color-card);
}

.tartelier-how__header {
  text-align: center;
  margin-bottom: 64px;
  max-width: 780px;
  margin-inline: auto;
}

.tartelier-how__header h2 {
  font-family: var(--font-serif);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 300;
  line-height: 1.2;
  color: var(--color-foreground);
  margin: 16px 0 0;
}

.tartelier-how__items {
  display: flex;
  flex-direction: column;
  gap: 64px;
  max-width: 980px;
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.tartelier-how__item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: center;
}

.tartelier-how__item-img {
  display: flex;
  justify-content: center;
}

.tartelier-how__item-img img {
  max-width: 420px;
  width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 20px 40px rgba(0,0,0,0.12));
}

.tartelier-how__item-number {
  font-family: var(--font-serif);
  font-size: 80px;
  font-weight: 300;
  line-height: 1;
  color: rgba(188, 101, 69, 0.08);
  user-select: none;
  display: block;
  margin-bottom: 16px;
}

.tartelier-how__item-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background-color: hsla(15, 52%, 47%, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: var(--color-primary);
}

.tartelier-how__item-icon svg {
  width: 20px;
  height: 20px;
}

.tartelier-how__item h3 {
  font-family: var(--font-serif);
  font-size: clamp(22px, 2.5vw, 30px);
  font-weight: 300;
  line-height: 1.3;
  color: var(--color-foreground);
  margin: 0 0 16px;
}

.tartelier-how__item p {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-muted);
  max-width: 420px;
  margin: 0;
}

@media (min-width: 1024px) {
  .tartelier-how__item {
    grid-template-columns: 1fr 1fr;
    gap: 64px;
  }

  /* Even items: image left, odd items: image right */
  .tartelier-how__item:nth-child(even) .tartelier-how__item-img {
    order: 2;
  }
  .tartelier-how__item:nth-child(even) .tartelier-how__item-content {
    order: 1;
  }
}

/* =========================================================
   FEATURED PRODUCTS
   ========================================================= */

.tartelier-products {
  padding-block: var(--section-py);
}

.tartelier-products__header {
  text-align: center;
  margin-bottom: 56px;
}

.tartelier-products__header h2 {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 300;
  color: var(--color-foreground);
  margin: 12px 0 0;
}

.tartelier-products__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  max-width: 980px;
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.tartelier-product-card {
  text-align: center;
  cursor: pointer;
}

.tartelier-product-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 60% 40% 55% 45% / 55% 50% 50% 45%;
  margin-bottom: 16px;
}

.tartelier-product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.tartelier-product-card:hover .tartelier-product-card__image img {
  transform: scale(1.1);
}

.tartelier-product-card h3 {
  font-family: var(--font-serif);
  font-size: clamp(17px, 2vw, 20px);
  font-weight: 300;
  line-height: 1.3;
  color: var(--color-foreground);
  margin: 0 0 4px;
}

.tartelier-product-card__price {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-primary);
  font-weight: 500;
}

@media (min-width: 1024px) {
  .tartelier-products__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
  }
}

/* =========================================================
   BRUNCH BLOCK
   ========================================================= */

.tartelier-brunch {
  padding-block: var(--section-py);
  background-color: hsla(33, 38%, 89%, 0.3);
}

.tartelier-brunch__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.tartelier-brunch__image-wrap {
  position: relative;
}

.tartelier-brunch__image {
  overflow: hidden;
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
}

.tartelier-brunch__image img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.tartelier-brunch__image:hover img {
  transform: scale(1.05);
}

.tartelier-brunch__blob-1 {
  position: absolute;
  top: -24px;
  left: -24px;
  width: 128px;
  height: 128px;
  border-radius: 50%;
  background-color: hsla(15, 52%, 47%, 0.08);
  filter: blur(24px);
  z-index: -1;
}

.tartelier-brunch__blob-2 {
  position: absolute;
  bottom: -24px;
  right: -24px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background-color: hsla(105, 11%, 57%, 0.08);
  filter: blur(24px);
  z-index: -1;
}

.tartelier-brunch__content {
  text-align: center;
}

.tartelier-brunch__content h2 {
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.5vw, 40px);
  font-weight: 300;
  color: var(--color-foreground);
  margin: 12px 0 24px;
}

.tartelier-brunch__content p {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-muted);
  margin: 0 0 16px;
}

.tartelier-brunch__price-card {
  display: inline-block;
  background-color: var(--color-card);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 32px;
  border: 1px solid var(--color-border);
}

.tartelier-brunch__price {
  font-family: var(--font-serif);
  font-size: 28px;
  color: var(--color-primary);
  font-weight: 300;
  display: block;
  margin-bottom: 4px;
}

.tartelier-brunch__price-note {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  letter-spacing: 0.05em;
}

.tartelier-brunch__note {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-muted);
  font-style: italic;
  margin-bottom: 24px !important;
}

@media (min-width: 1024px) {
  .tartelier-brunch__grid {
    grid-template-columns: 1fr 1fr;
  }

  .tartelier-brunch__image img {
    height: 500px;
  }

  .tartelier-brunch__content {
    text-align: left;
  }
}

/* Brunch Elementor section — constrain title column so prices/button stay visible */
.brunch-content > .e-con:first-child {
  width: 40% !important;
  max-width: 40% !important;
  flex-shrink: 1 !important;
  box-sizing: border-box;
}

/* =========================================================
   GIFT VOUCHER
   ========================================================= */

.tartelier-gift {
  padding-block: var(--section-py);
}

.tartelier-gift__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.tartelier-gift__card {
  border-radius: 24px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  min-height: 400px;
}

.tartelier-gift__visual {
  background-color: hsla(15, 52%, 47%, 0.1);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 64px 32px;
}

.tartelier-gift__deco-ring-1 {
  position: absolute;
  top: 32px;
  left: 32px;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 2px solid hsla(15, 52%, 47%, 0.2);
}

.tartelier-gift__deco-blob {
  position: absolute;
  bottom: 48px;
  right: 48px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background-color: hsla(15, 52%, 47%, 0.1);
}

.tartelier-gift__deco-ring-2 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 192px;
  height: 192px;
  border-radius: 50%;
  border: 1px solid hsla(15, 52%, 47%, 0.1);
}

.tartelier-gift__icon-wrap {
  position: relative;
  z-index: 10;
  text-align: center;
}

.tartelier-gift__icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-color: hsla(15, 52%, 47%, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  color: var(--color-primary);
}

.tartelier-gift__icon svg {
  width: 36px;
  height: 36px;
}

.tartelier-gift__visual-text-1 {
  font-family: var(--font-serif);
  font-size: clamp(52px, 6vw, 72px);
  font-weight: 300;
  color: hsla(15, 52%, 47%, 0.8);
  line-height: 1;
  margin: 0;
}

.tartelier-gift__visual-text-2 {
  font-family: var(--font-serif);
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 300;
  color: hsla(15, 52%, 47%, 0.5);
  margin: 4px 0 0;
}

.tartelier-gift__content {
  background-color: var(--color-card);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px 40px;
  border: 1px solid var(--color-border);
  border-radius: 0 24px 24px 0;
}

.tartelier-gift__content h2 {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 300;
  line-height: 1.3;
  color: var(--color-foreground);
  margin: 16px 0;
}

.tartelier-gift__content h2 span {
  color: var(--color-primary);
}

.tartelier-gift__content p {
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-muted);
  margin: 0 0 16px;
}

.tartelier-gift__meta {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  margin-bottom: 32px !important;
}

@media (min-width: 1024px) {
  .tartelier-gift__card {
    grid-template-columns: 1fr 1fr;
  }

  .tartelier-gift__content {
    padding: 64px;
  }
}

/* =========================================================
   NEWSLETTER
   ========================================================= */

.tartelier-newsletter {
  padding-block: var(--section-py);
  position: relative;
  overflow: hidden;
}

.tartelier-newsletter::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, hsla(15, 52%, 47%, 0.05) 0%, transparent 50%, hsla(33, 38%, 89%, 0.2) 100%);
  pointer-events: none;
}

.tartelier-newsletter__inner {
  max-width: 640px;
  margin-inline: auto;
  padding-inline: var(--container-px);
  text-align: center;
  position: relative;
  z-index: 10;
}

.tartelier-newsletter__icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: hsla(15, 52%, 47%, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  color: var(--color-primary);
}

.tartelier-newsletter__icon svg {
  width: 24px;
  height: 24px;
}

.tartelier-newsletter__inner h2 {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 300;
  color: var(--color-foreground);
  margin: 0 0 12px;
}

.tartelier-newsletter__inner p {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-muted);
  max-width: 400px;
  margin: 0 auto 40px;
}

/* ── MC4WP (Mailchimp for WordPress) — newsletter form ───── */

/* Form wrapper reset */
#mc4wp-form-1,
.mc4wp-form {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Flex rij: velden naast elkaar */
#mc4wp-form-1 .mc4wp-form-fields,
.mc4wp-form .mc4wp-form-fields {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  gap: 10px !important;
  max-width: 520px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
}

/* <p> wrappers — als flex items, geen eigen marges */
#mc4wp-form-1 .mc4wp-form-fields p,
.mc4wp-form .mc4wp-form-fields p {
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: stretch !important;
}

/* Input <p>: neemt alle ruimte */
#mc4wp-form-1 .mc4wp-form-fields p:first-child,
.mc4wp-form .mc4wp-form-fields p:first-child {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* Knop <p>: krimpt naar inhoud */
#mc4wp-form-1 .mc4wp-form-fields p:last-child,
.mc4wp-form .mc4wp-form-fields p:last-child {
  flex: 0 0 auto !important;
}

/* ── E-mail input ────────────────────────────────────────── */
#mc4wp-form-1 input[type="email"],
.mc4wp-form input[type="email"] {
  width: 100% !important;
  padding: 10px 12px 10px 38px !important;
  border-radius: 8px !important;
  border: 1px solid var(--color-border, #e0d8ce) !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23aaa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E") no-repeat 12px center !important;
  color: var(--color-foreground, #2c2c2c) !important;
  font-family: var(--font-body, 'DM Sans', sans-serif) !important;
  font-size: 13px !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
  min-height: 40px !important;
  height: auto !important;
  margin: 0 !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

#mc4wp-form-1 input[type="email"]:focus,
.mc4wp-form input[type="email"]:focus {
  border-color: var(--color-primary, #c0703a) !important;
  box-shadow: 0 0 0 3px rgba(180, 90, 57, 0.08) !important;
  outline: none !important;
}

#mc4wp-form-1 input[type="email"]::placeholder,
.mc4wp-form input[type="email"]::placeholder {
  color: var(--color-muted, #aaa) !important;
  opacity: 0.7;
}

/* ── Submit knop ─────────────────────────────────────────── */
#mc4wp-form-1 input[type="submit"],
.mc4wp-form input[type="submit"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 20px !important;
  background-color: var(--color-primary, #c0703a) !important;
  background-image: none !important;
  color: #fff !important;
  border: 1.5px solid var(--color-primary, #c0703a) !important;
  border-radius: 8px !important;
  font-family: var(--font-body, 'DM Sans', sans-serif) !important;
  font-size: 12px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  min-height: 40px !important;
  height: auto !important;
  margin: 0 !important;
  width: auto !important;
  transition: background-color 0.3s ease, color 0.3s ease !important;
}

#mc4wp-form-1 input[type="submit"]:hover,
.mc4wp-form input[type="submit"]:hover {
  background-color: transparent !important;
  color: var(--color-primary, #c0703a) !important;
}

/* ── Foutmelding / bevestiging ───────────────────────────── */
.mc4wp-alert,
.mc4wp-error,
.mc4wp-success,
.mc4wp-notice {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  margin-top: 12px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

.mc4wp-success { color: #166534 !important; }
.mc4wp-error   { color: var(--color-primary, #c0703a) !important; }

/* ── Disclaimer ──────────────────────────────────────────── */
.tartelier-newsletter__disclaimer {
  font-family: var(--font-body);
  font-size: 11px;
  color: rgba(68,68,68,0.5);
  margin-top: 16px;
}

/* ── Mobiel: gestapeld ───────────────────────────────────── */
@media (max-width: 600px) {
  #mc4wp-form-1 .mc4wp-form-fields,
  .mc4wp-form .mc4wp-form-fields {
    flex-direction: column !important;
  }
  #mc4wp-form-1 .mc4wp-form-fields p,
  .mc4wp-form .mc4wp-form-fields p {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
  #mc4wp-form-1 input[type="submit"],
  .mc4wp-form input[type="submit"] {
    width: 100% !important;
  }
}

/* =========================================================
   KLAVIYO FORM — strip margins, match site styleguide
   ========================================================= */

/* Verwijder alle wrapper padding/margin van het Klaviyo iframe/div */
.klaviyo-form-embed,
[data-testid="klaviyo-form"],
.klaviyo_form_wrapper,
#klaviyo-form-embed,
.kl-private-reset-css-Xuajs1 {
  margin: 0 !important;
  padding: 0 !important;
}

/* Formulier zelf — generiek + specifieke embed ID */
.klaviyo-form,
.klaviyo-form-TCfwSu {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Interne rijen/wrappers van Klaviyo — verwijder extra spacing */
.klaviyo-form > div,
.klaviyo-form-TCfwSu > div,
.klaviyo-form [data-testid],
.klaviyo-form-TCfwSu [data-testid],
.klaviyo-form .go3958508488,
.klaviyo-form-TCfwSu .go3958508488 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Ruimte tussen de rijen (input → knop) */
.klaviyo-form-TCfwSu > div + div,
.klaviyo-form > div + div {
  margin-top: 10px !important;
}

/* Inputs */
.klaviyo-form input[type="email"],
.klaviyo-form input[type="text"],
.klaviyo-form input[type="tel"],
.klaviyo-form-TCfwSu input[type="email"],
.klaviyo-form-TCfwSu input[type="text"] {
  width: 100% !important;
  padding: 10px 12px !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--color-foreground) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
}

.klaviyo-form input:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(180, 90, 57, 0.08) !important;
}

/* Submit button — .tartelier-btn--primary stijl */
.klaviyo-form button[type="submit"],
.klaviyo-form-TCfwSu button[type="submit"],
.klaviyo-form [data-testid="klaviyo-form-submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 28px !important;
  background-color: var(--color-primary) !important;
  color: #fff !important;
  border: 1.5px solid transparent !important;
  border-radius: 100px !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  background-image: none !important;
  box-shadow: none !important;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}

.klaviyo-form button[type="submit"]:hover,
.klaviyo-form-TCfwSu button[type="submit"]:hover,
.klaviyo-form [data-testid="klaviyo-form-submit"]:hover {
  background-color: transparent !important;
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

@media (min-width: 640px) {
  .tartelier-newsletter__form {
    flex-direction: row;
  }
}

/* ── Newsletter: knop onder input op mobiel ──────────────── */
@media (max-width: 639px) {
  .mc4wp-form .tartelier-newsletter,
  #mc4wp-form-1 .tartelier-newsletter {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .mc4wp-form .tartelier-newsletter input[type="email"],
  #mc4wp-form-1 .tartelier-newsletter input[type="email"] {
    width: 100% !important;
  }
  .mc4wp-form .tartelier-newsletter input[type="submit"],
  #mc4wp-form-1 .tartelier-newsletter input[type="submit"] {
    width: 100% !important;
  }
  #mc4wp-form-1 .mc4wp-form-fields,
  .mc4wp-form .mc4wp-form-fields {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  #mc4wp-form-1 .mc4wp-form-fields p,
  .mc4wp-form .mc4wp-form-fields p {
    width: 100% !important;
  }
}

/* =========================================================
   404 PAGINA
   ========================================================= */

/* Standalone 404 — geen nav/footer, body reset */
.tartelier-404-page {
  margin: 0 !important;
  padding: 0 !important;
  background-color: var(--color-background, hsl(33, 30%, 95%)) !important;
}

.tartelier-404 {
  min-height: 100vh;
  background-color: var(--color-background, hsl(33, 30%, 95%));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
}

.tartelier-404__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 560px;
  width: 100%;
}

.tartelier-404__image-wrap {
  margin-bottom: 16px;
}

.tartelier-404__image {
  width: 360px;
  height: 360px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.08));
}

@media (max-width: 480px) {
  .tartelier-404__image {
    width: 260px;
    height: 260px;
  }
}

.tartelier-404__number {
  font-family: var(--font-serif);
  font-size: clamp(80px, 15vw, 120px);
  font-weight: 300;
  line-height: 1;
  color: var(--color-foreground);
  margin: 0 0 20px;
  letter-spacing: -0.02em;
}

.tartelier-404__title {
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 500;
  color: var(--color-foreground);
  margin: 0 0 10px;
  line-height: 1.4;
}

.tartelier-404__sub {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-muted);
  margin: 0 0 40px;
  line-height: 1.6;
}

.tartelier-404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-charcoal, #2c2c2c);
  color: #fff;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-decoration: none;
  padding: 16px 40px;
  border-radius: 100px;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.tartelier-404__btn:hover {
  background-color: var(--color-foreground);
  transform: translateY(-1px);
}

/* =========================================================
   FOOTER
   ========================================================= */

.tartelier-footer {
  position: relative;
  background-color: var(--color-tertiary);
  color: rgba(252,250,248,0.8);
  padding-top: 64px;
  padding-bottom: 32px;
  margin-top: 80px;
}

.tartelier-footer__wave path {
  fill: var(--color-tertiary);
}

.tartelier-footer__wave {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: translateY(calc(-100% + 1px));
  line-height: 0;
}

.tartelier-footer__wave svg {
  width: 100%;
  height: 64px;
  display: block;
}

.tartelier-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  margin-bottom: 48px;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.tartelier-footer__logo {
  display: block;
  width: 160px;
  height: auto;
  margin-bottom: 16px;
}

.tartelier-footer__brand p {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}

.tartelier-footer__col h4 {
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-offwhite);
  margin: 0 0 16px;
}

.tartelier-footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--font-body);
  font-size: 14px;
}

.tartelier-footer__col ul li + li {
  margin-top: 8px;
}

.tartelier-footer__col ul li a {
  color: rgba(252,250,248,0.8);
  text-decoration: none;
  transition: color 0.2s;
}

.tartelier-footer__col ul li a:hover {
  color: var(--color-offwhite);
}

.tartelier-footer__contact-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 14px;
}

.tartelier-footer__contact-item + .tartelier-footer__contact-item {
  margin-top: 12px;
}

.tartelier-footer__contact-item a {
  color: rgba(252,250,248,0.8);
  text-decoration: none;
  transition: color 0.2s;
}
.tartelier-footer__contact-item a:hover {
  color: var(--color-offwhite);
}
.tartelier-footer__contact-item a[href^="mailto:"] {
  color: var(--color-primary);
}
.tartelier-footer__contact-item a[href^="mailto:"]:hover {
  color: var(--color-primary);
  opacity: 0.8;
}

.tartelier-footer__contact-item svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 2px;
}

.tartelier-footer__social {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.tartelier-footer__social a {
  color: rgba(252,250,248,0.8);
  transition: color 0.2s;
  line-height: 1;
}

.tartelier-footer__social a:hover {
  color: var(--color-offwhite);
}

.tartelier-footer__social svg {
  width: 20px;
  height: 20px;
}

.tartelier-footer__bottom {
  border-top: 1px solid rgba(252,250,248,0.1);
  padding-top: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 12px;
  color: rgba(252,250,248,0.5);
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}

@media (min-width: 768px) {
  .tartelier-footer__grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .tartelier-footer__bottom {
    flex-direction: row;
    justify-content: space-between;
  }
}

/* =========================================================
   PAGE-SPECIFIC: HIDE FOOTER
   ========================================================= */
.no-footer .tartelier-footer { display: none !important; }

/* Brunch page — tag pills */
.brunch-tag {
  display: inline-block;
  background: #faf8f6;
  border-radius: 50px;
  padding: 6px 14px;
  font-size: 11px;
  font-family: var(--font-body);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(43, 43, 43, 0.8);
  margin: 0 4px 6px 0;
  white-space: nowrap;
}

/* =========================================================
   SCROLL REVEAL ANIMATIONS
   ========================================================= */

.reveal {
  opacity: 0;
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal.from-bottom {
  transform: translateY(28px);
}

.reveal.from-left {
  transform: translateX(-32px);
}

.reveal.from-right {
  transform: translateX(32px);
}

.reveal.from-scale {
  transform: scale(0.95);
}

.reveal.is-visible {
  opacity: 1 !important;
  transform: none !important;
}

/* Prefers-reduced-motion: skip animations */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================================================
   KEYFRAME ANIMATIONS
   ========================================================= */

@keyframes fadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(-8px); }
}

/* =========================================================
   ELEMENTOR — FULL WIDTH & LAYOUT FIXES
   ========================================================= */

/* 1. Verwijder alle wrapper-beperkingen van Hello Elementor / WordPress */
#page, .site, #content, .site-content, .site-main,
.page-content, .entry-content, .container, .wp-site-blocks {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* 2. Elementor top-level secties altijd full-width */
.elementor-section {
  width: 100% !important;
  max-width: 100% !important;
}

.elementor-section.elementor-section-stretched {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
}

/* 3. Elementor inner container — geen boxed max-width */
.elementor-section > .elementor-container {
  max-width: 100% !important;
  width: 100% !important;
}

/* 4. Flexbox containers (Elementor 3.6+) */
.e-con { max-width: 100% !important; width: 100% !important; }

/* 5. Verwijder Elementor default column padding */
.elementor-column > .elementor-widget-wrap {
  padding: 0 !important;
}

/* =========================================================
   WOOCOMMERCE — TARTELIER PRODUCT GRID
   ========================================================= */

.tartelier-products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  max-width: 900px;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .tartelier-products-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.tartelier-product-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: inherit;
  gap: 12px;
}

.tartelier-product-card__blob {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 60% 40% 55% 45% / 55% 50% 50% 45%;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.tartelier-product-card:hover .tartelier-product-card__blob {
  transform: scale(1.05);
}

.tartelier-product-card__blob img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.tartelier-product-card:hover .tartelier-product-card__blob img {
  transform: scale(1.08);
}

.tartelier-product-card__name {
  font-family: var(--font-serif);
  font-size: clamp(16px, 2vw, 20px);
  font-weight: 300;
  color: var(--color-foreground);
  margin: 0;
  line-height: 1.3;
}

.tartelier-product-card__price {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-primary);
  font-weight: 500;
}

/* WooCommerce resets — prevent default WC styles from interfering */
.tartelier-product-card__price .woocommerce-Price-amount {
  color: inherit;
}

/* =========================================================
   WOOCOMMERCE — SHOP ARCHIVE (Bestellen)
   Targets WooCommerce default output classes directly.
   ========================================================= */

/* Page wrapper */
.woocommerce #page,
/* WooCommerce pagina's — crème achtergrond door hele structuur */
.woocommerce-page #page { background: var(--color-background); }

body.woocommerce-cart,
body.woocommerce-checkout {
  background-color: var(--color-background) !important;
}
body.woocommerce-cart #page,
body.woocommerce-cart #content,
body.woocommerce-cart #primary,
body.woocommerce-cart main,
body.woocommerce-cart .site-main,
body.woocommerce-cart article,
body.woocommerce-cart .entry-content,
body.woocommerce-checkout #page,
body.woocommerce-checkout #content,
body.woocommerce-checkout #primary,
body.woocommerce-checkout main,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout article,
body.woocommerce-checkout .entry-content,
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout {
  background: var(--color-background) !important;
  background-color: var(--color-background) !important;
}

/* Main content + sidebar layout */
.woocommerce #primary,
.woocommerce-page #primary {
  max-width: 1200px;
  margin-inline: auto;
  padding: 110px 24px 80px; /* 110px = nav hoogte + marge */
  display: flex;
  gap: 48px;
  align-items: flex-start;
}
@media (max-width: 1023px) {
  .woocommerce #primary,
  .woocommerce-page #primary { flex-direction: column; }
}

/* Sidebar */
.woocommerce #secondary,
.woocommerce-page #secondary {
  width: 240px;
  flex-shrink: 0;
  position: sticky;
  top: 100px;
}
@media (max-width: 1023px) {
  .woocommerce #secondary,
  .woocommerce-page #secondary { width: 100%; position: static; }
}

/* Sidebar widget titles */
.woocommerce .widget-title,
.woocommerce-page .widget-title,
.woocommerce .widgettitle {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--color-muted) !important;
  margin: 0 0 16px !important;
  border: none !important;
  padding: 0 !important;
}

/* Category widget links */
.woocommerce .widget_product_categories ul,
.woocommerce-page .widget_product_categories ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 32px !important;
}
.woocommerce .widget_product_categories li,
.woocommerce-page .widget_product_categories li { margin: 0 !important; }
.woocommerce .widget_product_categories a,
.woocommerce-page .widget_product_categories a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  color: var(--color-foreground) !important;
  text-decoration: none !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  transition: background 0.15s !important;
}
.woocommerce .widget_product_categories a:hover,
.woocommerce-page .widget_product_categories a:hover {
  background: var(--color-cream) !important;
}
.woocommerce .widget_product_categories .current-cat > a,
.woocommerce-page .widget_product_categories .current-cat > a {
  background: color-mix(in srgb, var(--color-primary) 12%, transparent) !important;
  color: var(--color-primary) !important;
  font-weight: 500 !important;
}
/* Product count badge */
.woocommerce .widget_product_categories .count,
.woocommerce-page .widget_product_categories .count {
  font-size: 11px !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  background: var(--color-cream) !important;
  color: var(--color-muted) !important;
}

/* Main content area */
.woocommerce #main-content,
.woocommerce-page #main-content,
.woocommerce div.woocommerce,
.woocommerce-page div.woocommerce { flex: 1; min-width: 0; }

/* Toolbar: result count + ordering */
.woocommerce .woocommerce-products-header { display: none; }
.woocommerce nav.woocommerce-breadcrumb { display: none; }

.woocommerce .woocommerce-result-count {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-muted) !important;
  margin: 0 !important;
  float: none !important;
}
.woocommerce .woocommerce-ordering {
  float: none !important;
  margin: 0 !important;
}
.woocommerce .woocommerce-ordering select {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  background: var(--color-card) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  color: var(--color-foreground) !important;
}

/* Toolbar wrapper */
.woocommerce .woocommerce-notices-wrapper + *,
.woocommerce-page .woocommerce .woocommerce-result-count {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Fake toolbar row */
.woocommerce ul.products,
.woocommerce-page ul.products { clear: both; }

/* Product grid */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
  width: 100% !important;
}
@media (min-width: 1024px) {
  .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}

/* Product card */
.woocommerce ul.products li.product {
  background: var(--color-card) !important;
  border-radius: 12px !important;
  border: 1px solid var(--color-border) !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: auto !important;
  transition: box-shadow 0.3s, transform 0.3s !important;
}
.woocommerce ul.products li.product:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.08) !important;
  transform: translateY(-2px) !important;
}

/* Product image */
.woocommerce ul.products li.product a img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  transition: transform 0.5s ease !important;
}
.woocommerce ul.products li.product:hover a img {
  transform: scale(1.05) !important;
}

/* Card body */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--font-serif) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  padding: 16px 20px 4px !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}
.woocommerce ul.products li.product .price {
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  color: var(--color-muted) !important;
  padding: 0 20px 8px !important;
  display: block !important;
}
.woocommerce ul.products li.product .price .woocommerce-Price-amount {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--color-primary) !important;
}

/* Add to cart / Bekijk button — primary stijl */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  background: var(--color-primary, #c0703a) !important;
  color: #fff !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 12px 20px !important;
  margin: 8px 20px 16px !important;
  border-radius: 100px !important;
  text-decoration: none !important;
  border: 1.5px solid transparent !important;
  width: calc(100% - 40px) !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}
.woocommerce ul.products li.product .button:hover {
  background: transparent !important;
  color: var(--color-primary, #c0703a) !important;
  border-color: var(--color-primary, #c0703a) !important;
}
@media (max-width: 767px) {
  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product a.button {
    padding: 16px 20px !important;
  }
}

/* Sale badge */
.woocommerce ul.products li.product .onsale {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  background: var(--color-primary) !important;
  color: var(--color-background) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1.5 !important;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
  display: flex !important;
  gap: 8px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 48px 0 0 !important;
  border: none !important;
}
.woocommerce nav.woocommerce-pagination ul li { border: none !important; padding: 0 !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  padding: 8px 14px !important;
  border-radius: 8px !important;
  border: 1px solid var(--color-border) !important;
  color: var(--color-foreground) !important;
  text-decoration: none !important;
  display: block !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--color-primary) !important;
  color: var(--color-background) !important;
  border-color: var(--color-primary) !important;
}

/* =========================================================
   WOOCOMMERCE — SHOP ARCHIVE (winkel)
   Matches Bestellen.tsx exactly:
   editorial header → sticky filter bar → 3-col grid
   ========================================================= */

/* Reset Hello Elementor's .site-main padding on the shop page */
body.woocommerce-page .site-main,
body.woocommerce .site-main,
body.post-type-archive-product .site-main {
  padding: 0 !important;
  margin: 0 !important;
}

.tartelier-shop {
  background: var(--color-background);
  min-height: 100vh;
  width: 100%;
}

/* Italic em colours */
.tartelier-shop__title .tart-em-primary {
  color: var(--color-primary);
  font-style: italic;
}

/* ── Editorial header ────────────────────────────────────── */
.tartelier-shop__header {
  padding-top: 128px;  /* pt-32 */
  padding-bottom: 48px;
}
.tartelier-shop__header-inner {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 40px;
}
@media (max-width: 767px) {
  .tartelier-shop__header { padding-top: 100px; padding-bottom: 32px; }
  .tartelier-shop__header-inner { padding-inline: 20px; }
}

.tartelier-shop__hero {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 48px;
  align-items: end;
}
@media (max-width: 1023px) {
  .tartelier-shop__hero {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.tartelier-shop__title {
  font-family: var(--font-serif) !important;
  font-size: clamp(40px, 6vw, 72px) !important;
  font-weight: 300 !important;
  line-height: 0.95 !important;
  color: var(--color-foreground) !important;
  margin: 0 !important;
  letter-spacing: 0 !important;
}
/* "oven" — italic + primary (class set in PHP) */
.tartelier-shop__title .tart-em-primary {
  color: var(--color-primary);
}
/* "tafel" — italic, foreground */
.tartelier-shop__title em {
  font-style: italic;
}

.tartelier-shop__desc {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-muted);
  line-height: 1.65;
  max-width: 420px;
  margin: 0;
}
@media (min-width: 1024px) {
  .tartelier-shop__desc { justify-self: end; }
}

/* ── Sticky filter bar ───────────────────────────────────── */
.tartelier-shop__filterbar {
  position: sticky;
  top: 60px;
  z-index: 30;
  background: rgba(var(--color-background-rgb, 250, 247, 242), 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
.tartelier-shop__filterbar-inner {
  max-width: 1280px;
  margin-inline: auto;
  padding: 16px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
@media (max-width: 767px) {
  .tartelier-shop__filterbar-inner {
    padding: 12px 20px;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}

/* ── Category filter tabs ────────────────────────────────── */
.tartelier-shop__tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* Tabs are <a> links — reset link styles */
a.tartelier-shop__tab,
a.tartelier-shop__tab:visited,
a.tartelier-shop__tab:hover,
a.tartelier-shop__tab:active {
  text-decoration: none !important;
}

.tartelier-shop__tab {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 8px 16px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(44, 34, 22, 0.15) !important;
  background: transparent !important;
  color: rgba(44, 34, 22, 0.7) !important;
  cursor: pointer !important;
  transition: background 0.2s, color 0.2s, border-color 0.2s !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
  width: auto !important;
  line-height: 1 !important;
}
.tartelier-shop__tab:hover {
  border-color: rgba(44, 34, 22, 0.4) !important;
}
.tartelier-shop__tab.is-active {
  background: var(--color-foreground) !important;
  color: var(--color-background) !important;
  border-color: var(--color-foreground) !important;
}

.tartelier-shop__tab-count {
  font-size: 9px;
  opacity: 0.6;
  font-weight: 400;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.tartelier-shop__tab.is-active .tartelier-shop__tab-count { opacity: 0.6; }

/* ── Controls (search + sort) ────────────────────────────── */
.tartelier-shop__controls {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .tartelier-shop__controls {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}

/* ── Search form ─────────────────────────────────────────── */
.tartelier-shop__search-form {
  display: flex;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}

/* ── Search ──────────────────────────────────────────────── */
.tartelier-shop__search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid rgba(44, 34, 22, 0.2);
  padding-bottom: 2px;
}
.tartelier-shop__search-icon {
  flex-shrink: 0;
  color: var(--color-muted);
  pointer-events: none;
}
.tartelier-shop__search,
input#tart-search {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  color: var(--color-foreground) !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 2px 0 !important;
  width: 140px !important;
  min-height: 0 !important;
  height: auto !important;
  border-radius: 0 !important;
  transition: width 0.2s ease !important;
}
.tartelier-shop__search:focus { width: 190px !important; }
@media (max-width: 767px) {
  .tartelier-shop__search-form { width: 100%; }
  .tartelier-shop__search-wrap { width: 100%; }
  .tartelier-shop__search,
  input#tart-search { width: 100% !important; }
  .tartelier-shop__search:focus { width: 100% !important; }
}
.tartelier-shop__search::placeholder {
  color: rgba(44, 34, 22, 0.35) !important;
  font-size: 11px !important;
}
/* Override any global search input styles */
.tartelier-shop__search[type="search"]::-webkit-search-cancel-button { display: none; }
/* Global focus rule must not add border on the input itself — the wrap has the underline */
.tartelier-shop__search:focus,
input#tart-search:focus {
  border: none !important;
  border-bottom: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.tartelier-shop__search-clear {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  cursor: pointer !important;
  color: var(--color-muted) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
  width: auto !important;
  opacity: 0.6;
  transition: opacity 0.15s !important;
  flex-shrink: 0 !important;
}
.tartelier-shop__search-clear:hover { opacity: 1 !important; }
a.tartelier-shop__search-clear,
a.tartelier-shop__search-clear:visited {
  text-decoration: none !important;
}

/* ── Sort ────────────────────────────────────────────────── */
.tartelier-shop__sort-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.tartelier-shop__sort-label {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-muted);
  white-space: nowrap;
}
.tartelier-shop__sort-wrap .woocommerce-ordering { margin: 0 !important; }
.woocommerce-ordering select,
.tartelier-shop__sort-wrap select {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  color: var(--color-foreground) !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(44, 34, 22, 0.2) !important;
  border-radius: 0 !important;
  padding: 4px 20px 4px 0 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
  outline: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 2px center !important;
}
.woocommerce-ordering select:focus,
.tartelier-shop__sort-wrap select:focus {
  border-bottom-color: var(--color-foreground) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* ── Product grid ────────────────────────────────────────── */
.tartelier-shop__grid-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding: 48px 40px 80px;
}
@media (max-width: 767px) {
  .tartelier-shop__grid-wrap { padding: 32px 20px 60px; }
}

.tartelier-shop__grid {
  display: grid !important;
  grid-template-columns: repeat(1, 1fr) !important;
  column-gap: 24px !important;   /* gap-x-6 */
  row-gap: 48px !important;       /* gap-y-12 */
  margin: 0 !important;
  padding: 0 !important;
}
@media (min-width: 600px) {
  .tartelier-shop__grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 1024px) {
  .tartelier-shop__grid {
    grid-template-columns: repeat(3, 1fr) !important;
    row-gap: 64px !important;  /* gap-y-16 */
  }
}

/* ── Product card — card is the positioning context ──── */
.tartelier-shop-card {
  display: block !important;
  position: relative !important;
  text-decoration: none !important;
  color: inherit !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  background: var(--color-cream) !important;
}

/* Image wrap fills the card and sets its height via aspect-ratio */
.tartelier-shop-card__img-wrap {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 0;
  background: var(--color-cream);
}
.tartelier-shop-card__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.7s ease;
}
.tartelier-shop-card:hover .tartelier-shop-card__img {
  transform: scale(1.04);
}

/* Price pill + badge — top right */
.tartelier-shop-card__top-right {
  position: absolute;
  top: 14px;
  right: 14px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  z-index: 3;
}
.tartelier-shop-card__price-pill {
  background: rgba(250, 248, 245, 0.95);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  color: var(--color-foreground, #2b2b2b);
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  padding: 5px 13px;
  border-radius: 100px;
  box-shadow: 0 4px 20px -6px rgba(0, 0, 0, 0.2);
  outline: 1px solid rgba(43, 43, 43, 0.06);
  white-space: nowrap;
}
.tartelier-shop-card__price-pill .woocommerce-Price-amount { font-size: inherit; color: inherit; }

/* Badge */
.tartelier-shop-card__badge {
  background: var(--color-foreground, #2b2b2b);
  color: var(--color-background, #faf8f5);
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  padding: 5px 11px;
  border-radius: 100px;
}

/* Bottom panel — frosted glass, name + arrow only */
.tartelier-shop-card__body {
  position: absolute !important;
  bottom: 14px !important;
  left: 14px !important;
  right: 14px !important;
  background: rgba(250, 248, 245, 0.95) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  backdrop-filter: blur(20px) !important;
  border-radius: 16px !important;
  padding: 10px 8px 10px 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  box-shadow: 0 8px 30px -12px rgba(0, 0, 0, 0.25) !important;
  outline: 1px solid rgba(43, 43, 43, 0.06) !important;
  z-index: 2 !important;
  margin: 0 !important;
}

.tartelier-shop-card__name {
  font-family: var(--font-serif) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  color: var(--color-foreground, #2b2b2b) !important;
  margin: 0 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-width: 0 !important;
  flex: 1 !important;
}

/* Arrow button */
.tartelier-shop-card__arrow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  border-radius: 50% !important;
  background: var(--color-foreground, #2b2b2b) !important;
  color: #fff !important;
  flex-shrink: 0 !important;
  transition: background 0.3s ease, transform 0.3s ease !important;
}
.tartelier-shop-card:hover .tartelier-shop-card__arrow {
  background: var(--color-primary, #c0703a) !important;
  transform: scale(1.1) rotate(-12deg) !important;
}

/* ── Legacy __meta HTML: full-card overlay so price pill goes top-right ── */
/* __meta spans the whole card; flex-column space-between puts price top, name bottom */
.tartelier-shop-card__meta {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  flex-direction: column-reverse !important;
  justify-content: space-between !important;
  align-items: stretch !important;
  padding: 14px !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  z-index: 2 !important;
  gap: 0 !important;
}

/* Top row: price pill floated to the right */
.tartelier-shop-card__meta-right {
  align-self: flex-end !important;
  background: rgba(250, 248, 245, 0.95) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  backdrop-filter: blur(20px) !important;
  border-radius: 100px !important;
  padding: 5px 13px !important;
  box-shadow: 0 4px 20px -6px rgba(0, 0, 0, 0.2) !important;
  outline: 1px solid rgba(43, 43, 43, 0.06) !important;
  white-space: nowrap !important;
  width: auto !important; height: auto !important; min-width: 0 !important;
  display: block !important;
  font-size: 0 !important; /* hide stray text nodes, only show __price child */
}
.tartelier-shop-card__meta-right .tartelier-shop-card__price {
  display: inline !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
  color: var(--color-foreground, #2b2b2b) !important;
}
.tartelier-shop-card__meta-right .tartelier-shop-card__price .woocommerce-Price-amount {
  font-size: inherit !important; color: inherit !important;
}
.tartelier-shop-card__meta-right::after { content: none !important; }

/* Bottom row: frosted name panel with arrow via ::after */
.tartelier-shop-card__meta-left {
  background: rgba(250, 248, 245, 0.95) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  backdrop-filter: blur(20px) !important;
  border-radius: 16px !important;
  padding: 10px 8px 10px 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  box-shadow: 0 8px 30px -12px rgba(0, 0, 0, 0.25) !important;
  outline: 1px solid rgba(43, 43, 43, 0.06) !important;
  min-width: 0 !important;
  flex: none !important;
}
.tartelier-shop-card__meta-left::after {
  content: '›' !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important; height: 36px !important;
  border-radius: 50% !important;
  background: var(--color-foreground, #2b2b2b) !important;
  color: #fff !important;
  font-size: 20px !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
  transition: background 0.3s ease, transform 0.3s ease !important;
}
.tartelier-shop-card:hover .tartelier-shop-card__meta-left::after {
  background: var(--color-primary, #c0703a) !important;
  transform: scale(1.1) rotate(-12deg) !important;
}

.tartelier-shop-card__cat,
.tartelier-shop-card__desc,
.tartelier-shop-card__vanaf,
.tartelier-shop-card__price {
  display: none !important;
}

/* Dietary icons — above the overlay panel */
.tartelier-shop-card__dietary {
  position: absolute;
  bottom: 90px;
  left: 16px;
  display: flex;
  gap: 6px;
  z-index: 3;
}
.tartelier-shop-card__dietary-icon {
  width: 28px;
  height: 28px;
  background: var(--color-foreground, #2c2420);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-background, #faf8f5);
}

/* Hover CTA — dark circle, bottom RIGHT */
.tartelier-shop-card__cta {
  position: absolute;
  bottom: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--color-foreground);
  color: var(--color-background);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.tartelier-shop-card:hover .tartelier-shop-card__cta {
  opacity: 1;
  transform: translateY(0);
}

/* Meta below image */

.tartelier-shop__empty {
  font-family: var(--font-serif);
  font-size: 22px;
  font-style: italic;
  color: var(--color-muted);
  text-align: center;
  padding: 80px 0;
}
.tartelier-shop__empty-reset {
  display: block;
  margin-top: 16px;
  font-family: var(--font-body);
  font-size: 12px;
  font-style: normal;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-primary) !important;
  text-decoration: none !important;
}

/* ── Pagination ──────────────────────────────────────────── */
.woocommerce-pagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}
.woocommerce-pagination ul {
  display: flex;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  font-family: var(--font-body);
  font-size: 14px;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid var(--color-border);
  color: var(--color-foreground);
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.woocommerce-pagination ul li a:hover { background: var(--color-cream); }
.woocommerce-pagination ul li span.current {
  background: var(--color-primary);
  color: var(--color-background);
  border-color: var(--color-primary);
}

/* =========================================================
   WOOCOMMERCE — SINGLE PRODUCT PAGE
   ========================================================= */

/* Single product pagina achtergrond */
body.single-product,
body.single-product #page,
body.single-product .site-content,
body.single-product .site-main {
  background: var(--color-background) !important;
}

.tartelier-product-single {
  width: 100%;
  background: var(--color-background);
}

/* Breadcrumb + terug-link: witte balk bovenaan */
.tartelier-product-single__breadcrumb,
.tartelier-product-single__back {
  display: block;
}

.tartelier-product-single__header-bar {
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  padding-top: 110px;
  padding-bottom: 20px;
  margin-bottom: 0;
  width: 100%;
}

/* Beide centreringswrappers — zelfde kolom, zelfde uitlijning */
.tartelier-product-single__header-bar .tartelier-product-single__breadcrumb,
.tartelier-product-single__header-bar .tartelier-product-single__back {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 24px;
  display: flex !important; /* block-level zodat margin-inline: auto werkt */
  width: 100%;
  box-sizing: border-box;
}

/* Breadcrumb */
.tartelier-product-single__breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  margin-bottom: 24px;
}
.tartelier-product-single__breadcrumb a {
  color: var(--color-muted);
  text-decoration: none;
  transition: color 0.2s;
}
.tartelier-product-single__breadcrumb a:hover { color: var(--color-primary); }
.tartelier-product-single__breadcrumb span { color: var(--color-foreground); }

/* Back link */
.tartelier-product-single__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--color-muted);
  text-decoration: none;
  margin-bottom: 32px;
  transition: color 0.2s;
}
.tartelier-product-single__back:hover { color: var(--color-foreground); }

/* 2-column layout — foto loopt naar de linkerrand */
.tartelier-product-single__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-bottom: 0;
  width: 100%;
}
@media (min-width: 1024px) {
  .tartelier-product-single__layout {
    grid-template-columns: 1fr 1fr;
    min-height: calc(100vh - 70px); /* vul scherm onder nav */
    align-items: stretch;
  }
}

/* ── Gallery wrapper ── */
.tartelier-product-single__gallery {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Main image */
.tartelier-product-single__image {
  position: relative;
  overflow: hidden;
  background: var(--color-surface);
  aspect-ratio: 1 / 1;
  border-radius: 0;
  flex: 1;
}
@media (min-width: 1024px) {
  .tartelier-product-single__image {
    aspect-ratio: auto;
    min-height: 500px;
    max-height: 620px;
    border-radius: 0;
  }
}
.tartelier-product-single__img {
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  transition: opacity 0.25s ease;
}

/* Thumbnail strip */
.tartelier-product-single__thumbs {
  display: flex;
  gap: 8px;
  padding: 0;
  margin: 0 !important;
  background: transparent;
  overflow-x: auto;
  scrollbar-width: none;
}
.tartelier-product-single__thumbs::-webkit-scrollbar { display: none; }

.tartelier-product-single__thumb {
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  border-radius: 8px;
  overflow: hidden;
  border: 2px solid transparent !important;
  outline: none;
  padding: 0;
  margin: 0 !important;
  background: var(--color-surface) !important;
  background-color: var(--color-surface) !important;
  cursor: pointer;
  transition: opacity 0.2s ease, border-color 0.2s ease;
  opacity: 0.55;
}
.tartelier-product-single__thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}
.tartelier-product-single__thumb:hover,
.tartelier-product-single__thumb:focus {
  opacity: 0.85;
  background: var(--color-surface) !important;
  background-color: var(--color-surface) !important;
  outline: none;
}
.tartelier-product-single__thumb.is-active {
  opacity: 1;
  border-color: var(--color-primary) !important;
}
.tartelier-product-single__thumb:focus { outline: none; }
.tartelier-product-single__badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--color-primary);
  color: var(--color-background);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  padding: 6px 16px;
  border-radius: 999px;
  letter-spacing: 0.05em;
}

/* Info column — top-aligned, eigen padding */
.tartelier-product-single__info {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 48px 48px 48px 56px;
  max-width: 640px;
  overflow-y: auto;
}
@media (max-width: 1023px) {
  .tartelier-product-single__info {
    padding: 32px 24px;
    max-width: 100%;
  }
}
.tartelier-product-single__cat {
  font-family: var(--font-body);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-muted);
  margin: 0 0 8px;
}
.tartelier-product-single__title {
  font-family: var(--font-serif);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 300;
  color: var(--color-foreground);
  margin: 0 0 16px;
  line-height: 1.15;
}

/* Dietary badges */
.tartelier-product-single__dietary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.tartelier-product-single__dietary-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  padding: 5px 12px;
  border-radius: 6px;
  border: 1px solid currentColor;
}
.tartelier-badge--vegan    { color: #166534; background: #dcfce7; border-color: #bbf7d0; }
.tartelier-badge--gluten   { color: #92400e; background: #fef3c7; border-color: #fde68a; }
.tartelier-badge--lactose  { color: #1e40af; background: #dbeafe; border-color: #bfdbfe; }

/* Description */
.tartelier-product-single__desc {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-muted);
  line-height: 1.7;
  margin-bottom: 24px;
}

/* Price & cart — hide the range (e.g. €25,00 – €32,00) on variable products;
   the per-button price already shows the correct amount */
.tartelier-product-single__cart .price {
  display: none !important;
}
/* Add to cart knop — primary stijl */
.tartelier-product-single__cart .button,
.tartelier-product-single__cart button[type="submit"],
.tartelier-product-single__cart .single_add_to_cart_button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--color-primary, #c0703a) !important;
  color: #fff !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 14px 36px !important;
  border: 1.5px solid transparent !important;
  border-radius: 100px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  line-height: 1 !important;
  width: auto !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}
.tartelier-product-single__cart .button:hover,
.tartelier-product-single__cart button[type="submit"]:hover {
  background: transparent !important;
  color: var(--color-primary, #c0703a) !important;
  border-color: var(--color-primary, #c0703a) !important;
}

/* Verberg: dubbele prijs, Wissen link, quantity */
.tartelier-product-single__cart .woocommerce-variation-price,
.tartelier-product-single__cart .reset_variations,
.tartelier-product-single__cart .quantity {
  display: none !important;
}

/* Verwijder grijze border/container rond variations tabel */
.tartelier-product-single__cart .variations_form,
.tartelier-product-single__cart table.variations {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Tabel → verticaal blok zodat label boven de knoppen staat */
.tartelier-product-single__cart table.variations,
.tartelier-product-single__cart table.variations tbody,
.tartelier-product-single__cart table.variations tr {
  display: block !important;
}
.tartelier-product-single__cart table.variations td,
.tartelier-product-single__cart table.variations th {
  display: block !important;
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* Label "FORMAAT" / "GROOTTE" boven de knoppen — altijd links */
.tartelier-product-single__cart table.variations .label,
.tartelier-product-single__cart table.variations td.label {
  margin-bottom: 10px !important;
  text-align: left !important;
}
.tartelier-product-single__cart table.variations .label label {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--color-muted) !important;
  font-weight: 700 !important;
  text-align: left !important;
  display: block !important;
}
.tartelier-product-single__cart table.variations td.value {
  margin-bottom: 24px !important;
}

/* Verberg de standaard select dropdown */
.tartelier-product-single__cart .variations select {
  display: none !important;
}

/* ── Sticky add-to-cart button on mobile ───────────────── */
@media (max-width: 767px) {
  /* Full-width sticky bar with generous inner padding */
  .tartelier-product-single__cart .button,
  .tartelier-product-single__cart button[type="submit"],
  .tartelier-product-single__cart .single_add_to_cart_button {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    border-radius: 0 !important;
    z-index: 9999 !important;
    padding: 22px 24px !important;
    text-align: center !important;
    justify-content: center !important;
    box-shadow: 0 -4px 24px rgba(44, 34, 22, 0.12) !important;
    margin: 0 !important;
  }
  /* Add bottom padding to product page so content doesn't hide behind the bar */
  body.single-product .tartelier-product-single {
    padding-bottom: 88px !important;
  }
}

/* Knoppenrij — gegenereerd via JS hieronder */
.tartelier-size-btns {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-bottom: 24px !important;
}
.tartelier-size-btn {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px 24px !important;
  border: 2px solid var(--color-border) !important;
  border-radius: 10px !important;
  background: var(--color-card) !important;
  cursor: pointer !important;
  font-family: var(--font-body) !important;
  transition: border-color 0.2s, background 0.2s !important;
  min-width: 120px !important;
  line-height: 1.4 !important;
}
.tartelier-size-btn__label {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--color-foreground) !important;
}
.tartelier-size-btn__price {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--color-primary) !important;
  margin-top: 4px !important;
}
.tartelier-size-btn.is-selected {
  border-color: var(--color-primary) !important;
  background: color-mix(in srgb, var(--color-primary) 6%, transparent) !important;
}
.tartelier-size-btn:hover {
  border-color: color-mix(in srgb, var(--color-primary) 50%, transparent) !important;
}

/* Ingredients */
.tartelier-product-single__ingredients {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--color-border);
}
.tartelier-product-single__ingredients-label {
  font-family: var(--font-body);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  font-weight: 600;
  margin: 0 0 8px;
}
.tartelier-product-single__ingredients-text {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--color-muted);
  line-height: 1.6;
  margin: 0;
}

/* ── Related products ─────────────────────────────────── */
.tartelier-related {
  margin-top: 64px;
  padding-top: 48px;
  padding-bottom: 80px;
  border-top: 1px solid var(--color-border);
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 24px;
}
.tartelier-related__title {
  font-family: var(--font-serif);
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 300;
  color: var(--color-foreground);
  margin: 0 0 32px;
}
.tartelier-related__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 640px)  { .tartelier-related__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tartelier-related__grid { grid-template-columns: repeat(3, 1fr); } }

.tartelier-related__card {
  display: block;
  background: var(--color-card);
  border-radius: 12px;
  border: 1px solid var(--color-border);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.3s, transform 0.3s;
}
.tartelier-related__card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.tartelier-related__card-img {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.tartelier-related__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.tartelier-related__card:hover .tartelier-related__card-img img {
  transform: scale(1.05);
}
.tartelier-related__card-body {
  padding: 20px;
}
.tartelier-related__card-name {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 300;
  color: var(--color-foreground);
  margin: 0 0 6px;
}
.tartelier-related__card-desc {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--color-muted);
  margin: 0 0 10px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.tartelier-related__card-price {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
}

/* WooCommerce global resets for single product page */
.woocommerce div.product { margin: 0; padding: 0; }
.woocommerce div.product form.cart { margin: 0; }
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button { border-radius: 8px; }

/* =========================================================
   ELEMENTOR — BLOB IMAGES (producten)
   ========================================================= */

/* Blob op de afbeelding zelf — werkt voor alle Elementor versies */
.tartelier-blob-img img,
.tartelier-blob-img .elementor-widget-container img,
.tartelier-blob-img .elementor-image-box-img img,
.tartelier-blob-img .elementor-image img {
  border-radius: 60% 40% 55% 45% / 55% 50% 50% 45% !important;
  overflow: hidden !important;
  object-fit: cover !important;
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  display: block !important;
  transition: transform 0.7s ease !important;
}

/* Blob ook op de container voor overflow: hidden */
.tartelier-blob-img .elementor-widget-container,
.tartelier-blob-img .elementor-image,
.tartelier-blob-img figure {
  border-radius: 60% 40% 55% 45% / 55% 50% 50% 45% !important;
  overflow: hidden !important;
  aspect-ratio: 1 / 1 !important;
  display: block !important;
}

.tartelier-blob-img:hover img {
  transform: scale(1.1) !important;
}

/* =========================================================
   ELEMENTOR — MARGIN & SPACING RESETS
   ========================================================= */

/* Elementor reset — koppen mogen geen extra margin erven */
.elementor-widget-heading .elementor-heading-title {
  margin-top: 0;
  margin-bottom: 0;
}

/* Elementor reset — paragrafen */
.elementor-widget-text-editor p {
  margin-top: 0;
}

/* Elementor widget button — alleen font, zodat Elementor colors/size zelf beheert */
.elementor-widget-button .elementor-button {
  font-family: var(--font-body) !important;
  letter-spacing: 0.2em !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}

/* =========================================================
   HERO SECTION — achtergrond GIF via CSS-class
   ========================================================= */

.tartelier-hero-section {
  position: relative !important;
  overflow: hidden !important;
  min-height: 100vh !important;
}

/* De GIF widget staat absoluut achteraan */
.tartelier-hero-section .tartelier-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scaleX(-1);
  z-index: 0;
}

.tartelier-hero-section .tartelier-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(252,250,248,0.15) 0%, transparent 60%);
  z-index: 1;
}

/* Alle widgets in de hero-kolom boven de GIF */
.tartelier-hero-section .elementor-widget-wrap {
  position: relative;
  z-index: 2;
}

/* =========================================================
   EAT IN PAGINA
   ========================================================= */

/* ── Gedeelde knoppen ─────────────────────────────────── */
/* .tartelier-btn base is defined globally above — only overrides here */
.tartelier-btn--ghost {
  background: transparent;
  color: var(--color-foreground);
  border-color: rgba(0,0,0,0.18);
}
.tartelier-btn--ghost:hover { background: rgba(0,0,0,0.04); }

/* ── Hero ─────────────────────────────────────────────── */
.tartelier-eatin__hero {
  position: relative;
  min-height: 80vh;
  background: var(--color-background);
  overflow: hidden;
  display: flex;
  align-items: center;
}

.tartelier-eatin__hero-arcs {
  position: absolute;
  top: 0;
  right: 0;
  width: 55%;
  height: 100%;
  pointer-events: none;
  opacity: 0.07;
  color: var(--color-foreground);
}

.tartelier-eatin__hero-inner {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 24px;
  padding-top: 120px;
  padding-bottom: 60px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}
@media (min-width: 1024px) {
  .tartelier-eatin__hero-inner {
    grid-template-columns: 1fr 1fr;
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

.tartelier-eatin__eyebrow {
  font-family: var(--font-body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--color-muted);
  margin-bottom: 20px;
}

.tartelier-eatin__h1 {
  font-family: var(--font-serif);
  font-size: clamp(56px, 10vw, 96px);
  font-weight: 300;
  font-style: italic;
  color: var(--color-foreground);
  line-height: 1;
  margin-bottom: 28px;
}

.tartelier-eatin__lead {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--color-muted);
  line-height: 1.7;
  max-width: 440px;
  margin-bottom: 32px;
}

.tartelier-eatin__hero-btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* Cirkelfoto */
.tartelier-eatin__hero-img-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 40px;
}
@media (min-width: 1024px) {
  .tartelier-eatin__hero-img-wrap { padding-bottom: 0; }
}

.tartelier-eatin__hero-img {
  width: clamp(240px, 38vw, 480px);
  height: clamp(240px, 38vw, 480px);
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 32px 64px rgba(0,0,0,0.12);
  position: relative;
  z-index: 1;
}
.tartelier-eatin__hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tartelier-eatin__hero-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid;
  pointer-events: none;
}
.tartelier-eatin__hero-ring--a {
  inset: -16px;
  border-color: rgba(180,90,60,0.15);
}
.tartelier-eatin__hero-ring--b {
  inset: -40px;
  border-color: rgba(0,0,0,0.04);
}

/* ── Wavy divider ─────────────────────────────────────── */
.tartelier-eatin__wave {
  margin-top: -1px;
  line-height: 0;
}
.tartelier-eatin__wave svg {
  display: block;
  width: 100%;
  height: 60px;
}

/* ── Seizoensbadge ────────────────────────────────────── */
.tartelier-eatin__season-badge {
  background: var(--color-card);
  text-align: center;
  padding: 8px 0 0;
}
.tartelier-eatin__season-badge span {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  padding: 4px 14px;
}

/* ── Menu blokken ─────────────────────────────────────── */
.tartelier-menu-block {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1px solid var(--color-border);
  background: var(--color-card);
}
@media (min-width: 1024px) {
  .tartelier-menu-block {
    grid-template-columns: 1fr 1fr;
    min-height: 540px;
  }
}

/* Foto */
.tartelier-menu-block__img {
  height: 260px;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  order: 0;
}
@media (min-width: 1024px) {
  .tartelier-menu-block__img { height: auto; order: 1; }
  .tartelier-menu-block__img--right { order: 2; }
}

/* Inhoud */
.tartelier-menu-block__content {
  display: flex;
  align-items: flex-start;
  order: 1;
}
@media (min-width: 1024px) {
  .tartelier-menu-block__content { order: 1; }
  .tartelier-menu-block__content--left { order: 2; }
}

.tartelier-menu-block__inner {
  width: 100%;
  max-width: 560px;
  padding: 48px 28px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .tartelier-menu-block__inner { padding: 56px 48px; }
}
@media (min-width: 1024px) {
  .tartelier-menu-block__inner { padding: 64px 56px; margin-inline: 0; }
}

.tartelier-menu-block__heading {
  font-family: var(--font-serif);
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-foreground);
  margin-bottom: 8px;
}

.tartelier-menu-block__rule {
  width: 40px;
  height: 2px;
  background: var(--color-primary);
  margin-bottom: 32px;
}

/* ── Menu secties ─────────────────────────────────────── */
.tartelier-menu-section {
  margin-bottom: 32px;
}
.tartelier-menu-section:last-child { margin-bottom: 0; }

.tartelier-menu-section__title {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  margin-bottom: 14px;
}

.tartelier-menu-section__items {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tartelier-menu-section__note {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  font-style: italic;
  margin-top: 10px;
}

/* ── Menu items ───────────────────────────────────────── */
.tartelier-menu-item__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}

.tartelier-menu-item__name {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-foreground);
}

.tartelier-menu-item__price {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  flex-shrink: 0;
}

.tartelier-menu-item__desc {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  font-style: italic;
  margin-top: 2px;
}

/* ── Allergie disclaimer ──────────────────────────────── */
.tartelier-eatin__allergy {
  padding: 40px 24px;
  border-top: 1px solid var(--color-border);
  text-align: center;
}
.tartelier-eatin__allergy p {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  line-height: 1.7;
  max-width: 680px;
  margin-inline: auto;
}

/* ── Info strip ───────────────────────────────────────── */
.tartelier-eatin__info {
  padding: 64px 24px;
  background: var(--color-card);
  border-top: 1px solid var(--color-border);
}
.tartelier-eatin__info-inner {
  max-width: 860px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  text-align: center;
}
@media (min-width: 768px) {
  .tartelier-eatin__info-inner { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}

.tartelier-eatin__info-item svg {
  color: var(--color-primary);
  margin-inline: auto;
  margin-bottom: 12px;
  display: block;
}
.tartelier-eatin__info-item h3 {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 300;
  color: var(--color-foreground);
  margin-bottom: 8px;
}
.tartelier-eatin__info-item p,
.tartelier-eatin__info-item a {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--color-muted);
  display: block;
  text-decoration: none;
  line-height: 1.6;
}
.tartelier-eatin__info-item a {
  color: var(--color-primary);
  font-weight: 500;
  margin-top: 4px;
}
.tartelier-eatin__info-item a:hover { text-decoration: underline; }
.tartelier-eatin__info-item .small {
  font-size: 11px;
  margin-top: 6px;
}

/* ── Take Away CTA ────────────────────────────────────── */
.tartelier-eatin__cta {
  padding: 64px 24px;
  border-top: 1px solid var(--color-border);
  text-align: center;
}
.tartelier-eatin__cta-inner {
  max-width: 600px;
  margin-inline: auto;
}
.tartelier-eatin__cta h2 {
  font-family: var(--font-serif);
  font-size: clamp(22px, 3.5vw, 32px);
  font-weight: 300;
  color: var(--color-foreground);
  margin-bottom: 16px;
}
.tartelier-eatin__cta p {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-muted);
  line-height: 1.7;
  margin-bottom: 28px;
}

/* =========================================================
   [tartelier_eat_in_menu] SHORTCODE
   Embed in Elementor → Shortcode widget
   ========================================================= */

.tartelier-menu-shortcode__season {
  font-family: var(--font-body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  display: inline-block;
  padding: 4px 14px;
  margin-bottom: 40px;
}

.tartelier-menu-shortcode__block {
  margin-bottom: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--color-border);
}
.tartelier-menu-shortcode__block:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.tartelier-menu-shortcode__block-title {
  font-family: var(--font-serif);
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-foreground);
  margin-bottom: 8px;
}

.tartelier-menu-shortcode__block-rule {
  width: 36px;
  height: 2px;
  background: var(--color-primary);
  margin-bottom: 24px;
}

.tartelier-menu-shortcode__section {
  margin-bottom: 28px;
}
.tartelier-menu-shortcode__section:last-child { margin-bottom: 0; }

.tartelier-menu-shortcode__section-title {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  margin-bottom: 12px;
}

.tartelier-menu-shortcode__items {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tartelier-menu-shortcode__note {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  font-style: italic;
  margin-top: 10px;
}

/* =========================================================
   ELEMENTOR EAT IN — hero cirkel + menu items
   ========================================================= */

/* Hero cirkel */
.eatin-hero-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.eatin-hero-img {
  width: clamp(240px, 36vw, 460px);
  height: clamp(240px, 36vw, 460px);
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 32px 64px rgba(0,0,0,0.12);
  position: relative;
  z-index: 1;
}
.eatin-hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.eatin-hero-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid;
  pointer-events: none;
}
.eatin-hero-ring--a {
  inset: 4px;
  border-color: rgba(180,90,60,0.15);
}
.eatin-hero-ring--b {
  inset: -20px;
  border-color: rgba(0,0,0,0.04);
}

/* Menu item rijen (in HTML widgets) */
.ei-item {
  margin-bottom: 10px;
}
.ei-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}
.ei-name {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-foreground);
}
.ei-price {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  flex-shrink: 0;
}
.ei-desc {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  font-style: italic;
  margin: 2px 0 0;
}
.ei-note {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--color-muted);
  font-style: italic;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--color-border);
}
.ei-sec-lbl {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  margin: 20px 0 10px;
}
.ei-sec-lbl:first-child { margin-top: 0; }

/* ═══════════════════════════════════════════════════════════════
   CATERING PAGE
   ═══════════════════════════════════════════════════════════════ */

/* Decorative SVG arcs — top-right of hero */
.catering-hero-wrap {
  position: relative;
  overflow: hidden;
}
.catering-hero-wrap::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 60%; height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 600 800' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='400' cy='400' r='350' stroke='%232C2216' stroke-width='1' opacity='0.08'/%3E%3Ccircle cx='420' cy='380' r='280' stroke='%232C2216' stroke-width='1' opacity='0.08'/%3E%3Ccircle cx='440' cy='360' r='200' stroke='%232C2216' stroke-width='0.5' opacity='0.08'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right center;
  pointer-events: none;
  z-index: 0;
}
.catering-hero-wrap > .e-con-inner { position: relative; z-index: 1; }

/* ── Circular hero image ─────────────────────────────────────── */
/* The box-shadow creates 2 ring borders around the circle.
   overflow:visible is critical — otherwise rings get clipped. */

.catering-hero-img-wrap,
.catering-hero-img-wrap.e-con,
.catering-hero-img-wrap > .e-con-inner {
  overflow: visible !important;
}

.elementor-widget.catering-hero-img,
.catering-hero-img.elementor-widget,
.catering-hero-img .elementor-widget-container,
.catering-hero-img .elementor-image {
  overflow: visible !important;
}

.elementor-widget.catering-hero-img img,
.catering-hero-img img {
  border-radius: 50% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  width: min(420px, 72vw) !important;
  height: min(420px, 72vw) !important;
  display: block !important;
  margin: auto !important;
  /* drop shadow + inner terracotta ring + outer subtle ring */
  box-shadow:
    0 25px 70px rgba(44, 34, 22, .16),
    0 0 0 16px rgba(180, 90, 57, 0.13),
    0 0 0 40px rgba(44, 34, 22, 0.05) !important;
}


/* ── Menu item rows ───────────────────────────────────────────── */
.c-menu-item-row {
  border-bottom: 1px solid rgba(44, 34, 22, 0.07);
}
.c-menu-item-row:last-child,
.c-menu-item-wrap:last-child .c-menu-item-row {
  border-bottom: none;
}

/* ── Nested Tabs ─────────────────────────────────────────────── */
.e-n-tabs-heading {
  border-bottom: 1px solid rgba(44, 34, 22, 0.10) !important;
  gap: 0 !important;
}
.e-n-tab-title {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--color-muted) !important;
  padding: 12px 18px !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -1px;
  transition: color 0.2s, border-color 0.2s;
  background: transparent !important;
}
.e-n-tab-title.e-active,
.e-n-tab-title[aria-selected="true"] {
  color: var(--color-primary) !important;
  border-bottom-color: var(--color-primary) !important;
}
.e-n-tab-title:hover { color: var(--color-foreground) !important; }
.e-n-tabs-content { padding-top: 0 !important; }

/* Tabs altijd naast elkaar, ook op mobiel
   Elementor zet --n-tabs-heading-display:contents op mobile wat
   de heading als flex container breekt → we forceren terug flex */
@media (max-width: 767px) {
  .elementor-widget-n-tabs.e-n-tabs-mobile {
    --n-tabs-heading-display: flex !important;
    --n-tabs-content-display: block !important;
  }
  .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tabs-heading {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }
  .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tabs-heading::-webkit-scrollbar {
    display: none !important;
  }
  .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tab-title {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-align: center !important;
    order: unset !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
  }
  .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tab-title[aria-selected="true"] {
    margin-block-end: 0 !important;
  }
  .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tabs-content > .e-con {
    order: unset !important;
    display: none !important;
  }
  .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tabs-content > .e-con.e-active,
  .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tabs-content > .e-con[aria-hidden="false"] {
    display: flex !important;
  }
}

@media (max-width: 1024px) {
  .elementor-widget.catering-hero-img img,
  .catering-hero-img img {
    width: min(320px, 72vw) !important;
    height: min(320px, 72vw) !important;
  }
}
@media (max-width: 767px) {
  .elementor-widget.catering-hero-img img,
  .catering-hero-img img {
    width: min(260px, 68vw) !important;
    height: min(260px, 68vw) !important;
    box-shadow:
      0 15px 40px rgba(44, 34, 22, .14),
      0 0 0 10px rgba(180, 90, 57, 0.12),
      0 0 0 24px rgba(44, 34, 22, 0.04) !important;
  }
  .tartelier-boxed,
  .tartelier-boxed.e-con {
    max-width: 100% !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   CONTACT PAGE
   ═══════════════════════════════════════════════════════════════ */

/* Hero — "praten." italic in primary color */
.contact-hero-heading .elementor-heading-title em,
.contact-hero-heading em {
  color: var(--color-primary);
  font-style: italic;
}

/* Info strip — vertical dividers between columns */
.contact-info-strip > .e-con-inner > .e-con + .e-con,
.contact-info-strip > .e-con + .e-con {
  border-left: 1px solid rgba(44, 34, 22, 0.10);
  padding-left: 40px !important;
}
.contact-info-strip > .e-con-inner > .e-con,
.contact-info-strip > .e-con {
  flex: 1;
}

/* Form — centered max-width */
.contact-form-wrap {
  max-width: 700px;
  margin-inline: auto;
}

/* ── Form fields — checkout-stijl (crème, geen rand, afgerond) ── */

/* Contact form fields — checkout-stijl (crème, geen rand, afgerond)
   Covers: Elementor Pro Form, WPForms, Contact Form 7             */

/* ── Input / textarea / select — border-bottom stijl ── */
.wpforms-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpforms-form textarea,
.wpforms-form select,
.wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7-form textarea,
.wpcf7-form select {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--color-input-border, rgba(52, 36, 25, 0.15)) !important;
  border-radius: 0 !important;
  padding: 10px 0 !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-foreground) !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color 0.2s ease;
  width: 100% !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

.wpforms-form input::placeholder,
.wpforms-form textarea::placeholder,
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder {
  font-size: 12px !important;
  color: rgba(120, 120, 120, 0.55) !important;
}

/* ── Focus ── */
.wpforms-form input:focus,
.wpforms-form textarea:focus,
.wpforms-form select:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--color-input-focus, rgba(52, 36, 25, 0.85)) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ── Labels ── */
.elementor-form .elementor-field-group .elementor-field-label,
.wpforms-form .wpforms-field-label,
.wpcf7-form label {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.18em !important;
  color: var(--color-label, rgba(44, 34, 22, 0.5)) !important;
  margin: 0 !important;
  margin-bottom: 0 !important;
}

/* ── Field spacing ── */
.elementor-form .elementor-field-group,
.wpforms-form .wpforms-field,
.wpcf7-form p {
  margin-bottom: 20px !important;
}

/* ── WPForms: verwijder standaard padding per field ── */
.wpforms-container .wpforms-field {
  padding: 0 !important;
}

/* ── WPForms: labels — zelfde als contact pagina ── */
.wpforms-container .wpforms-field-label {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2em !important;
  color: var(--color-muted, #8a7d6e) !important;
  margin-bottom: 8px !important;
  display: block !important;
}

/* ── WPForms submit (brunch + contact) — secondary stijl ── */
.wpforms-form .wpforms-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #2b2b2b !important;
  color: #fff !important;
  border: 1.5px solid transparent !important;
  border-radius: 100px !important;
  padding: 14px 36px !important;
  line-height: 1 !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
  width: auto !important;
}
.wpforms-form .wpforms-submit:hover {
  background: transparent !important;
  color: #2b2b2b !important;
  border-color: #2b2b2b !important;
}

/* ── Elementor form + CF7 submit — primary stijl ── */
.elementor-form .elementor-button,
.wpcf7-form input[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  border: 1.5px solid transparent !important;
  border-radius: 100px !important;
  padding: 14px 36px !important;
  line-height: 1 !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
  width: auto !important;
}
.elementor-form .elementor-button:hover,
.wpcf7-form input[type="submit"]:hover {
  background: transparent !important;
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

/* ── "Bekijk winkelwagen" (na toevoegen aan winkelwagen) — secondary ── */
a.added_to_cart.wc-forward,
.woocommerce-notices-wrapper a.button,
.wc-block-components-notice-banner a.wc-forward {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #2b2b2b !important;
  color: #fff !important;
  border: 1.5px solid transparent !important;
  border-radius: 100px !important;
  padding: 10px 20px !important;
  line-height: 1 !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}
a.added_to_cart.wc-forward:hover,
.woocommerce-notices-wrapper a.button:hover,
.wc-block-components-notice-banner a.wc-forward:hover {
  background: transparent !important;
  color: #2b2b2b !important;
  border-color: #2b2b2b !important;
}

/* FAQ — left heading sticky on desktop */
@media (min-width: 768px) {
  .faq-heading-col {
    position: sticky;
    top: 120px;
  }
}

/* Contact FAQ — border-top separator */
.contact-faq {
  border-top: 1px solid rgba(44, 34, 22, 0.10);
}

/* Accordion — no top border on first item */
.faq-accordion-col .elementor-accordion-item:first-child {
  border-top: none;
}

/* Mobile adjustments */
@media (max-width: 767px) {
  .contact-hero-inner {
    padding-top: 120px !important;
  }
  .contact-hero-heading .elementor-heading-title {
    font-size: clamp(3rem, 14vw, 5rem) !important;
  }
  .contact-info-strip > .e-con-inner > .e-con + .e-con,
  .contact-info-strip > .e-con + .e-con {
    border-left: none;
    border-top: 1px solid rgba(44, 34, 22, 0.10);
    padding-left: 0 !important;
    padding-top: 24px;
    margin-top: 8px;
  }
}

/* =========================================================
   WINKELWAGEN & AFREKENEN — WooCommerce Blocks
   ========================================================= */

/* ── Pagina-header (Winkelwagen / Afrekenen) ─────────────── */
.tartelier-page-header {
  padding-top: 140px;
  padding-bottom: 32px;
  padding-inline: 70px;
  max-width: none;
  margin-inline: 0;
}
.tartelier-page-header h1 {
  font-family: var(--font-serif) !important;
  font-size: clamp(36px, 5vw, 56px) !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  margin: 0 0 8px !important;
}
.tartelier-page-header p {
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  color: var(--color-muted) !important;
  margin: 0 !important;
}

/* ── Header clearance + pagina spacing ───────────────────── */
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout {
  padding-top: 70px;  /* nav hoogte + kleine marge */
  padding-bottom: 80px;
  padding-inline: 70px;
  max-width: none !important;
  margin-inline: 0;
}

/* ── Typografie reset + achtergrond transparant ───────────── */
.wc-block-cart,
.wc-block-cart *,
.wc-block-checkout,
.wc-block-checkout * {
  font-family: var(--font-body) !important;
  box-sizing: border-box;
}
/* Laat de pagina-achtergrond (crème) doorschijnen */
.wc-block-cart,
.wc-block-cart__main,
.wc-block-checkout,
.wc-block-checkout__main,
.wc-block-checkout__form,
.wc-block-components-checkout-step {
  background: transparent !important;
  background-color: transparent !important;
}

/* ── Cart: kolomhoofden — verborgen ──────────────────────── */
.wc-block-cart-items__header {
  display: none !important;
}

/* ── Cart: product rijen ──────────────────────────────────── */
.wc-block-cart-items .wc-block-cart-item {
  border-bottom: 1px solid var(--color-border) !important;
  padding-block: 20px !important;
}
.wc-block-cart-items .wc-block-cart-item:last-child {
  border-bottom: none !important;
}

/* Thumbnail — groter, minimale radius */
.wc-block-cart-item__image img {
  border-radius: 4px !important;
  width: 140px !important;
  height: 140px !important;
  object-fit: cover !important;
}

/* Product naam */
.wc-block-components-product-name,
.wc-block-components-product-name a {
  font-family: var(--font-serif) !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  text-decoration: none !important;
}
.wc-block-components-product-name a:hover {
  color: var(--color-primary) !important;
}

/* Variatie */
.wc-block-components-product-metadata__description p,
.wc-block-components-product-details__item {
  font-size: 12px !important;
  color: var(--color-muted) !important;
  margin: 2px 0 0 !important;
}

/* Prijs onder naam — terracotta */
.wc-block-components-product-price .woocommerce-Price-amount,
.wc-block-cart-item .wc-block-components-product-price {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-primary) !important;
}

/* Hoeveelheid — borderless, clean –/1/+ stijl */
.wc-block-components-quantity-selector {
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  display: inline-flex !important;
  align-items: center !important;
  background: transparent !important;
  box-shadow: none !important;
  gap: 4px !important;
}
.wc-block-components-quantity-selector__button {
  background: transparent !important;
  border: none !important;
  color: var(--color-foreground) !important;
  width: 28px !important;
  height: 28px !important;
  cursor: pointer !important;
  font-size: 18px !important;
  transition: color 0.2s !important;
  padding: 0 !important;
}
.wc-block-components-quantity-selector__button:hover {
  color: var(--color-primary) !important;
  background: transparent !important;
}
.wc-block-components-quantity-selector__input,
.wc-block-components-quantity-selector input {
  border: none !important;
  border-radius: 0 !important;
  font-size: 15px !important;
  text-align: center !important;
  background: transparent !important;
  color: var(--color-foreground) !important;
  width: 38px !important;
  height: 34px !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Verwijder — × icoon rechtsboven in de rij */
.wc-block-cart-item__remove-link,
.wc-block-components-product-remove-button {
  color: var(--color-muted) !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 4px !important;
  cursor: pointer !important;
  line-height: 1 !important;
  text-decoration: none !important;
  opacity: 0.6 !important;
  transition: opacity 0.2s !important;
}
.wc-block-cart-item__remove-link:hover,
.wc-block-components-product-remove-button:hover {
  opacity: 1 !important;
  color: var(--color-foreground) !important;
}
/* SVG ×-icoon schalen */
.wc-block-components-product-remove-button svg {
  width: 16px !important;
  height: 16px !important;
  stroke: currentColor !important;
}

/* ── Cart sidebar — caramel kaart + witte tekst ──────────── */
.wp-block-woocommerce-cart-order-summary-block {
  background: var(--color-sidebar) !important;
  border: none !important;
  border-radius: 16px !important;
  padding: 28px !important;
  overflow: hidden !important;
  color: #fff !important;
}
/* Alle tekst in de cart sidebar wit */
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-cart-order-summary-block * {
  color: #fff !important;
}
/* Coupon input tekst ook wit */
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-coupon__input input {
  color: #fff !important;
  border-bottom-color: rgba(255,255,255,0.4) !important;
}
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-coupon__input input::placeholder {
  color: rgba(255,255,255,0.55) !important;
}
/* Alle inner wrappers zijn transparant — geen geneste kaarten */
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-order-summary-coupon-block,
.wp-block-woocommerce-cart-order-summary-subtotal-block,
.wp-block-woocommerce-cart-order-summary-fees-block,
.wp-block-woocommerce-cart-order-summary-shipping-block,
.wp-block-woocommerce-cart-order-summary-taxes-block,
.wp-block-woocommerce-cart-order-summary-totals-block {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Cart sidebar heading — wit op caramel */
.wc-block-cart__totals-title {
  font-family: var(--font-serif) !important;
  font-size: 26px !important;
  font-weight: 300 !important;
  color: #fff !important;
  padding-bottom: 16px !important;
  margin-bottom: 12px !important;
  border-bottom: 1px solid rgba(255,255,255,0.3) !important;
  border-radius: 0 !important;
}

/* ── Checkout sidebar — caramel kaart + witte tekst ─────── */
.wc-block-checkout__sidebar {
  background: var(--color-sidebar) !important;
  border: none !important;
  border-radius: 16px !important;
  padding: 28px !important;
  overflow: hidden !important;
  color: #fff !important;
}
.wc-block-checkout__sidebar,
.wc-block-checkout__sidebar * {
  color: #fff !important;
}
.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
}
/* Lijn na de productlijst */
.wc-block-checkout__sidebar .wc-block-components-order-summary {
  padding-bottom: 20px !important;
  margin-bottom: 16px !important;
  border-bottom: 1px solid rgba(255,255,255,0.3) !important;
}

/* ── Totalen rijen — geen individual borders ─────────────── */
.wc-block-components-totals-item {
  font-size: 14px !important;
  padding-block: 8px !important;
  border: none !important;
  border-radius: 0 !important;
}
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
  font-size: 14px !important;
}
/* Totaal rij — lijn erboven + grotere/vette tekst */
.wc-block-components-totals-item.wc-block-components-totals-total {
  border-top: 1px solid rgba(255,255,255,0.3) !important;
  padding-top: 14px !important;
  margin-top: 8px !important;
}
.wc-block-components-totals-item.wc-block-components-totals-total .wc-block-components-totals-item__label {
  font-size: 15px !important;
  font-weight: 700 !important;
}
.wc-block-components-totals-item.wc-block-components-totals-total .wc-block-components-totals-item__value {
  font-size: 18px !important;
  font-weight: 700 !important;
}

/* Coupon tekstveld */
.wc-block-components-totals-coupon details summary {
  font-size: 13px !important;
  color: var(--color-primary) !important;
  cursor: pointer !important;
  list-style: none !important;
}
.wc-block-components-totals-coupon__input input {
  font-size: 13px !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  padding: 8px 0 !important;
  color: var(--color-foreground) !important;
  outline: none !important;
  width: 100% !important;
}
.wc-block-components-totals-coupon__input input:focus {
  border-bottom-color: var(--color-foreground) !important;
}

/* ── Cart "Afrekenen" knop — terracotta, rounded (niet pill) ─ */
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
.wc-block-cart__submit-container .wc-block-components-button,
.wc-block-components-button--fill {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  text-transform: none !important;
  background-color: var(--color-primary) !important;
  color: var(--color-background) !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 14px 24px !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  box-shadow: none !important;
}
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover,
.wc-block-components-button--fill:hover {
  background-color: var(--color-primary-dark) !important;
  color: var(--color-background) !important;
}

/* Coupon apply-knop — ghost stijl */
.wc-block-components-totals-coupon .wc-block-components-button {
  background: transparent !important;
  color: var(--color-foreground) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 8px !important;
  padding: 8px 18px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  width: auto !important;
  cursor: pointer !important;
}
.wc-block-components-totals-coupon .wc-block-components-button:hover {
  background: var(--color-foreground) !important;
  color: var(--color-background) !important;
}

/* ── Checkout: stap-containers — geen border-radius ─────── */
.wc-block-components-checkout-step,
.wc-block-checkout__main,
.wc-block-checkout__form {
  border-radius: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Stap scheider */
.wc-block-components-checkout-step {
  padding-bottom: 32px !important;
  margin-bottom: 32px !important;
  border-bottom: 1px solid var(--color-border) !important;
}
.wc-block-components-checkout-step:last-child {
  border-bottom: none !important;
}

/* Stap-titel — uppercase body font zoals in screenshot */
.wc-block-components-checkout-step__title {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--color-foreground) !important;
  margin-bottom: 24px !important;
  padding-bottom: 0 !important;
  border: none !important;
}

/* Inactieve stap: titeltekst lichter */
.wc-block-components-checkout-step[aria-expanded="false"] .wc-block-components-checkout-step__title,
.wc-block-components-checkout-step:not(.is-active) .wc-block-components-checkout-step__title {
  color: var(--color-muted) !important;
}

/* Stap-nummer cirkel — actief: donker */
.wc-block-components-checkout-step__heading-number {
  background: var(--color-foreground) !important;
  color: var(--color-background) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  border-radius: 50% !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}
/* Inactief stap-nummer: outline stijl */
.wc-block-components-checkout-step[aria-expanded="false"] .wc-block-components-checkout-step__heading-number,
.wc-block-components-checkout-step:not(.is-active) .wc-block-components-checkout-step__heading-number {
  background: transparent !important;
  color: var(--color-muted) !important;
  border: 1.5px solid var(--color-border) !important;
}

/* ── Checkout: formuliervelden — stacked labels, full-border ─
   WC block DOM order: <input> dan <label>
   Gebruik flex + order:-1 zodat label visueel BOVEN input staat
   zonder de DOM te wijzigen.
   ─────────────────────────────────────────────────────────── */
.wc-block-components-text-input,
.wc-block-components-select,
.wc-block-components-textarea {
  display: flex !important;
  flex-direction: column !important;
  padding-top: 0 !important;
  gap: 8px !important;
}
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-textarea label,
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input.has-error label {
  order: -1 !important;          /* Visueel voor de input plaatsen */
  position: static !important;
  transform: none !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  margin: 0 !important;
  transition: none !important;
  pointer-events: none !important;
  width: 100% !important;
}
/* Input — full-border stijl */
.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-block-components-textarea textarea {
  order: 0 !important;
  font-size: 14px !important;
  color: var(--color-foreground) !important;
  background: #fff !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 6px !important;
  padding: 12px 14px !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  width: 100% !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus,
.wc-block-components-textarea textarea:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(180,90,57,0.08) !important;
  outline: none !important;
}
/* Validatiefout — altijd onder het input */
.wc-block-components-validation-error,
.wc-block-validation-error {
  order: 1 !important;
  font-size: 12px !important;
  color: var(--color-primary) !important;
  margin: 0 !important;
}
/* Field groups — ruimte tussen velden */
.wc-block-components-form .wc-block-components-form__field,
.wc-block-components-address-form .wc-block-components-form__field {
  margin-bottom: 20px !important;
}

/* ── Factuuradres — verberg adresvelden, hou naam ────────── */
/* Verberg de "FACTUURADRES" sectie-heading */
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-checkout-step__heading {
  display: none !important;
}
/* Verberg adres-specifieke velden */
.wc-block-components-address-form__company,
.wc-block-components-address-form__address_1,
.wc-block-components-address-form__address_2,
.wc-block-components-address-form__address_2-toggle,
.wc-block-components-address-form__city,
.wc-block-components-address-form__postcode,
.wc-block-components-address-form__country,
.wc-block-components-address-form__state {
  display: none !important;
}

/* Checkbox */
.wc-block-components-checkbox input[type="checkbox"] {
  accent-color: var(--color-primary) !important;
  border-radius: 2px !important;
}

/* ── Checkout-specifiek: underline inputs (override full-border) ─ */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-select select,
.wc-block-checkout .wc-block-components-textarea textarea {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
  padding: 12px 0 !important;
  font-size: 15px !important;
  box-shadow: none !important;
  transition: border-color 0.2s !important;
}
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-select select:focus,
.wc-block-checkout .wc-block-components-textarea textarea:focus {
  border-bottom-color: var(--color-foreground) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Step content + actions: inspringen om te aligneren met heading-tekst */
.wc-block-components-checkout-step__content,
.wc-block-components-checkout-step__actions {
  padding-left: 38px !important;
  margin-top: 4px !important;
}

/* ── "VERDER" stap-knop: donker/charcoal (niet terracotta) ── */
.wc-block-components-checkout-step__actions .wc-block-components-button,
.wc-block-components-checkout-step__actions button:not(.wc-block-components-checkout-place-order-button) {
  background: var(--color-foreground) !important;
  color: var(--color-background) !important;
  border: 1.5px solid var(--color-foreground) !important;
  border-radius: 8px !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  cursor: pointer !important;
  transition: background 0.2s, color 0.2s !important;
  box-shadow: none !important;
  width: auto !important;
}
.wc-block-components-checkout-step__actions .wc-block-components-button:hover,
.wc-block-components-checkout-step__actions button:not(.wc-block-components-checkout-place-order-button):hover {
  background: transparent !important;
  color: var(--color-foreground) !important;
}

/* ── Betaalmethodes ───────────────────────────────────────── */
.wc-block-components-payment-methods__container {
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
.wc-block-components-radio-control__option {
  background: #fff !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 6px !important;
  padding: 14px 16px !important;
  margin-bottom: 8px !important;
  cursor: pointer !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.wc-block-components-radio-control__option:hover {
  border-color: var(--color-primary) !important;
}
.wc-block-components-radio-control__option:has(input:checked) {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(180,90,57,0.08) !important;
}
.wc-block-components-radio-control__option input[type="radio"] {
  accent-color: var(--color-primary) !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}
.wc-block-components-payment-method-label__name,
.wc-block-components-radio-control__label {
  font-size: 14px !important;
  color: var(--color-foreground) !important;
  font-weight: 500 !important;
}
.wc-block-components-payment-method-label__secondary-value {
  font-size: 12px !important;
  color: var(--color-muted) !important;
}
/* Betaalmethode logo */
.wc-block-components-payment-method-label__logo {
  max-height: 24px !important;
  width: auto !important;
}

/* ── Checkout sidebar — order summary (inner wrappers transparent) ── */
.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
/* "Je bestelling" heading — wit op caramel */
.wc-block-components-order-summary__button-text,
.wc-block-components-panel__button {
  font-family: var(--font-serif) !important;
  font-size: 26px !important;
  font-weight: 300 !important;
  color: #fff !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 0 16px !important;
  margin-bottom: 16px !important;
  border-bottom: 1px solid rgba(255,255,255,0.3) !important;
  width: 100% !important;
  text-align: left !important;
}
/* Verberg de toggle-chevron */
.wc-block-components-panel__button svg {
  display: none !important;
}
.wc-block-components-order-summary-item__description {
  font-family: var(--font-serif) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
}
.wc-block-components-order-summary-item__quantity {
  background: var(--color-foreground) !important;
  color: var(--color-background) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  border-radius: 50% !important;
}
.wc-block-components-order-summary-item__individual-prices {
  font-size: 12px !important;
  color: var(--color-muted) !important;
}

/* ── Flatpickr — site theme override ─────────────────────── */
.flatpickr-calendar {
  font-family: var(--font-body) !important;
  border-radius: 8px !important;
  border: 1px solid var(--color-border) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.10) !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-background) !important;
}
.flatpickr-day:hover:not(.selected):not(.flatpickr-disabled) {
  background: var(--color-primary-light) !important;
  border-color: var(--color-primary-light) !important;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
  color: var(--color-border) !important;
  cursor: not-allowed !important;
}
.flatpickr-day.tartelier-day--few-left {
  border-bottom: 2px solid var(--color-primary) !important;
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
  fill: var(--color-foreground) !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
  font-family: var(--font-serif) !important;
  font-weight: 300 !important;
}

/* Totalen in sidebar — wit op caramel */
.wc-block-checkout__sidebar .wc-block-components-totals-item {
  font-size: 14px !important;
  color: rgba(255,255,255,0.85) !important;
  border-radius: 0 !important;
}
.wc-block-checkout__sidebar .wc-block-components-totals-total .wc-block-components-totals-item__label,
.wc-block-checkout__sidebar .wc-block-components-totals-total .wc-block-components-totals-item__value {
  font-weight: 700 !important;
  font-size: 16px !important;
  color: #fff !important;
}

/* Bestelling plaatsen */
.wc-block-components-checkout-place-order-button {
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  background-color: var(--color-primary) !important;
  color: var(--color-background) !important;
  border: 1.5px solid var(--color-primary) !important;
  border-radius: 8px !important;
  padding: 18px 32px !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: background 0.2s, color 0.2s !important;
  box-shadow: none !important;
}
.wc-block-components-checkout-place-order-button:hover {
  background-color: transparent !important;
  color: var(--color-primary) !important;
}

/* ── Checkboxes — terracotta huisstijl ───────────────────── */
input[type="checkbox"] {
  accent-color: var(--color-primary) !important;
  width: 16px !important;
  height: 16px !important;
  cursor: pointer !important;
}

/* ── Radio buttons — terracotta huisstijl ────────────────── */
input[type="radio"] {
  accent-color: var(--color-primary) !important;
  width: 16px !important;
  height: 16px !important;
  cursor: pointer !important;
}

/* ── "Verwijder" als stijlvolle tekst-link ───────────────── */
.wc-block-cart-item__remove-link,
.wc-block-components-product-remove-button {
  display: inline-block !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  color: var(--color-muted) !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  opacity: 1 !important;
  cursor: pointer !important;
  margin-top: 6px !important;
}
.wc-block-cart-item__remove-link:hover,
.wc-block-components-product-remove-button:hover {
  color: var(--color-primary) !important;
  opacity: 1 !important;
}
/* Verberg het SVG × icoon (al getoond als tekst) */
.wc-block-components-product-remove-button svg {
  display: none !important;
}

/* ── Cart item rijen — meer ruimte ───────────────────────── */
.wc-block-cart-items .wc-block-cart-item {
  border-bottom: 1px solid var(--color-border) !important;
  padding-block: 28px !important;
}

/* Notices — geen border-radius */
.wc-block-store-notice,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.wc-block-components-notice {
  font-size: 13px !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
}

/* Privacy / voorwaarden */
.wc-block-checkout__privacy-policy,
.wc-block-checkout__terms {
  font-size: 12px !important;
  color: var(--color-muted) !important;
}
.wc-block-checkout__privacy-policy a,
.wc-block-checkout__terms a {
  color: var(--color-primary) !important;
}

/* Cross-sells */
.wc-block-cart__cross-sells-title {
  font-family: var(--font-serif) !important;
  font-size: 22px !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  margin-bottom: 16px !important;
  border-radius: 0 !important;
}

/* ── Sidebar: verberg lege rijen (verzending €0, lege belasting) ── */
.wc-block-components-totals-shipping:empty,
.wc-block-components-totals-taxes:empty,
.wc-block-components-totals-fees:empty,
.wp-block-woocommerce-cart-order-summary-shipping-block:empty,
.wp-block-woocommerce-cart-order-summary-taxes-block:empty,
.wp-block-woocommerce-cart-order-summary-fees-block:empty {
  display: none !important;
}
/* Verberg shipping block als prijs nul/leeg is */
.wc-block-components-totals-shipping .wc-block-components-totals-item:has(.wc-block-components-totals-item__value:empty) {
  display: none !important;
}

/* ── Sidebar: PRODUCT / SUBTOTAAL kolomkoppen ────────────── */
.wp-block-woocommerce-cart-order-summary-block::before,
.wc-block-checkout__sidebar::before {
  content: '';
  display: block;
}
/* Kolomkoppen als een tabel-header rij boven de producten */
.wc-block-components-order-summary-item:first-of-type,
.wc-block-components-order-summary {
  margin-top: 0 !important;
}
/* "PRODUCT / SUBTOTAAL" header — pseudo-element op het order-summary panel */
.wc-block-checkout__sidebar .wc-block-components-order-summary::before,
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-wrapper:first-of-type::before {
  content: 'PRODUCT' !important;
  display: block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  color: rgba(255,255,255,0.7) !important;
  text-transform: uppercase !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(255,255,255,0.3) !important;
  margin-bottom: 16px !important;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 767px) {
  .woocommerce-cart .wp-block-woocommerce-cart,
  .woocommerce-checkout .wp-block-woocommerce-checkout {
    padding-top: 100px;
    padding-inline: 16px;
  }
}

/* =========================================================
   WOOCOMMERCE — CLASSIC CHECKOUT (afrekenen)
   ========================================================= */

/* ── Pagina achtergrond ──────────────────────────────────── */
body.woocommerce-checkout #page,
body.woocommerce-checkout #content,
body.woocommerce-checkout main,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout article,
body.woocommerce-checkout .entry-content {
  background: var(--color-background) !important;
}

/* ── Wrapper ─────────────────────────────────────────────── */
body.woocommerce-checkout .woocommerce {
  max-width: 1280px !important;
  margin-inline: auto !important;
  padding: 80px 48px 100px !important;
  font-family: var(--font-body) !important;
}

/* ── Twee-koloms layout ──────────────────────────────────── */
form.woocommerce-checkout.checkout {
  display: grid !important;
  grid-template-columns: 1fr 400px !important;
  gap: 48px !important;
  align-items: start !important;
}

#customer_details {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

/* ── Terugkerende klant link ─────────────────────────────── */
.woocommerce-info {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  letter-spacing: 0.05em !important;
  background: transparent !important;
  border: none !important;
  padding: 0 0 32px !important;
  margin: 0 !important;
  color: var(--color-muted) !important;
}

.woocommerce-info a {
  color: var(--color-primary) !important;
  text-decoration: none !important;
  font-weight: 500 !important;
}

.woocommerce-info::before { display: none !important; }

/* ── Sectie-koppen (links) ───────────────────────────────── */
body.woocommerce-checkout #customer_details h3 {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: none !important;
}

/* ── Kolommen binnen customer_details ───────────────────── */
#customer_details .col-1,
#customer_details .col-2 {
  float: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 0 36px !important;
}

#customer_details .col-2:last-child { margin-bottom: 0 !important; }

/* ── Velden als 2-koloms grid ────────────────────────────── */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 20px 20px !important;
}

/* Volle breedte velden */
p.form-row-wide,
#billing_company_field,
#billing_address_1_field,
#billing_address_2_field,
#billing_phone_field,
#billing_email_field,
#order_comments_field {
  grid-column: 1 / -1 !important;
}

/* ── Individueel veld ────────────────────────────────────── */
.woocommerce-checkout .form-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ── Labels ──────────────────────────────────────────────── */
.woocommerce-checkout .form-row > label {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  font-weight: 400 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
}

.woocommerce-checkout .required {
  color: var(--color-primary) !important;
  text-decoration: none !important;
}

/* ── Inputs — crème achtergrond, geen border, grote radius ── */
.woocommerce-checkout .input-text,
.woocommerce-checkout select {
  width: 100% !important;
  padding: 12px 16px !important;
  border-radius: 12px !important;
  border: none !important;
  background: var(--color-cream, hsl(33, 38%, 89%)) !important;
  color: var(--color-foreground) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
  min-height: 44px !important;
  height: auto !important;
  margin: 0 !important;
  transition: background-color 0.2s ease, box-shadow 0.2s ease !important;
  line-height: 1.4 !important;
}

.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus {
  background: hsl(33, 45%, 86%) !important;
  box-shadow: 0 0 0 3px rgba(180, 90, 57, 0.12) !important;
  outline: none !important;
}

.woocommerce-checkout .input-text::placeholder {
  color: var(--color-muted) !important;
  opacity: 0.55 !important;
}

/* Textarea opmerking */
.woocommerce-checkout textarea {
  width: 100% !important;
  padding: 12px 16px !important;
  border-radius: 12px !important;
  border: none !important;
  background: var(--color-cream, hsl(33, 38%, 89%)) !important;
  color: var(--color-foreground) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  outline: none !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  min-height: 80px !important;
  resize: vertical !important;
  margin: 0 !important;
  transition: background-color 0.2s ease !important;
}

/* Select pijltje (donkerder voor op crème) */
.woocommerce-checkout select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 36px !important;
  cursor: pointer !important;
}

/* Validatie */
.woocommerce-checkout .woocommerce-invalid .input-text,
.woocommerce-checkout .woocommerce-invalid select {
  box-shadow: 0 0 0 2px var(--color-primary) inset !important;
}

.woocommerce-checkout .woocommerce-validated .input-text {
  box-shadow: 0 0 0 2px #22c55e inset !important;
}

/* Inline validatie-iconen verbergen */
.woocommerce-checkout .woocommerce-input-wrapper abbr { display: none !important; }
#billing_phone_field abbr { display: none !important; }
#tartelier_afhaaldatum_field abbr { display: none !important; }

/* ── Afstand tussen Telefoon en Afhaaldatum ─────────────── */
.tart-dd-wrap {
  margin-top: 28px !important;
}

/* Foutmelding inline */
.woocommerce-checkout .woocommerce-error li {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  color: var(--color-primary) !important;
  background: transparent !important;
  border: none !important;
  padding: 4px 0 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

/* ── Account aanmaken ────────────────────────────────────── */
.woocommerce-account-fields label,
.create-account label {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--color-foreground) !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHTER PANEEL — caramel kaart (zelfde als cart sidebar)
   ═══════════════════════════════════════════════════════════ */
#order_review {
  grid-column: 2 !important;
  grid-row: 1 !important;
  position: sticky !important;
  top: 90px !important;
  background: var(--color-sidebar, hsl(35, 35%, 50%)) !important;
  border-radius: 20px !important;
  padding: 32px 32px 28px !important;
  color: #fff !important;
}

/* Heading "Jouw Bestelling" — groot serif, wit */
#order_review_heading {
  font-family: var(--font-serif) !important;
  font-size: clamp(24px, 2.5vw, 32px) !important;
  font-weight: 300 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #fff !important;
  margin: 0 0 28px !important;
  padding: 0 !important;
  border: none !important;
}

/* Alle tekst in het paneel wit */
#order_review,
#order_review * {
  color: #fff !important;
}

/* ── Tabel — alle borders nucleair verwijderen ───────────── */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table tr,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td,
.shop_table.woocommerce-checkout-review-order-table {
  border: none !important;
  border-collapse: collapse !important;
  width: 100% !important;
  font-family: var(--font-body) !important;
}

/* Kolomkoppen */
.woocommerce-checkout-review-order-table thead th {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.6) !important;
  padding: 0 0 16px !important;
  border: none !important;
  text-align: left !important;
}

.woocommerce-checkout-review-order-table thead th.product-total {
  text-align: right !important;
}

/* Product rijen */
.woocommerce-checkout-review-order-table tbody tr.cart_item td {
  padding: 12px 0 !important;
  font-size: 13px !important;
  vertical-align: middle !important;
  border: none !important;
}

.woocommerce-checkout-review-order-table td.product-total {
  text-align: right !important;
  white-space: nowrap !important;
  vertical-align: top !important;
  padding-top: 16px !important;
}

/* ── Product thumbnail + badge ───────────────────────────── */
.tartelier-checkout__item-wrap {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
}

/* Wrapper rond afbeelding zodat badge absoluut gepositioneerd kan worden */
.tartelier-checkout__img-wrap {
  position: relative !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
}

.tartelier-checkout__thumb {
  width: 56px !important;
  height: 56px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  display: block !important;
}

/* Aantal-badge rechtsbovenop de afbeelding */
.tartelier-checkout__badge {
  position: absolute !important;
  top: -7px !important;
  right: -7px !important;
  width: 20px !important;
  height: 20px !important;
  background: var(--color-foreground, #2c2c2c) !important;
  color: #fff !important;
  border-radius: 50% !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.tartelier-checkout__item-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  padding-top: 4px !important;
}

/* Variatie tekst */
.woocommerce-checkout-review-order-table .variation {
  font-size: 11px !important;
  color: rgba(255,255,255,0.65) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin: 4px 0 0 !important;
}

.woocommerce-checkout-review-order-table .variation dt,
.woocommerce-checkout-review-order-table .variation dd {
  display: inline !important;
  margin: 0 !important;
}

/* ── Subtotaal / Verzending ──────────────────────────────── */
.woocommerce-checkout-review-order-table tfoot tr th,
.woocommerce-checkout-review-order-table tfoot tr td {
  padding: 8px 0 !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.75) !important;
  border: none !important;
}

.woocommerce-checkout-review-order-table tfoot tr td {
  text-align: right !important;
}

/* Subtotaal: stippellijn bovenaan + extra padding */
.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal th,
.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td {
  padding-top: 20px !important;
  border-top: 1px dashed rgba(255,255,255,0.35) !important;
}

/* Totaalrij: stippellijn bovenaan + groter */
.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #fff !important;
  padding-top: 20px !important;
  padding-bottom: 4px !important;
  border-top: 1px dashed rgba(255,255,255,0.35) !important;
  letter-spacing: 0.08em !important;
}

/* ── Betalingsmethoden ───────────────────────────────────── */
#payment {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid rgba(255,255,255,0.2) !important;
}

#payment ul.wc_payment_methods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 20px !important;
  border: none !important;
  background: transparent !important;
}

#payment ul.wc_payment_methods li {
  margin: 0 0 10px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

#payment ul.wc_payment_methods li label {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  cursor: pointer !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

/* Betaling logo's (Mollie e.d.) */
#payment ul.wc_payment_methods li label img {
  height: 20px !important;
  width: auto !important;
  border-radius: 3px !important;
  margin-left: auto !important;
  opacity: 0.9 !important;
}

#payment ul.wc_payment_methods input[type="radio"] {
  accent-color: #fff !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}

/* Betaalbox — geen achtergrond op de parent li */
#payment ul.wc_payment_methods li,
#payment ul.wc_payment_methods li.wc_payment_method {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Betaalbox (beschrijving) — geen indentatie, transparant */
#payment .payment_box {
  background: rgba(0,0,0,0.15) !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  margin: 6px 0 0 0 !important;  /* geen linker indent */
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  color: rgba(255,255,255,0.75) !important;
  border: none !important;
}

#payment .payment_box::before,
#payment .payment_box::after { display: none !important; }

/* ── Bestelling plaatsen knop ────────────────────────────── */
#place_order,
.woocommerce-checkout #place_order {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 13px 24px !important;
  background-color: var(--color-foreground, #2c2c2c) !important;
  color: #fff !important;
  border: 1.5px solid var(--color-foreground, #2c2c2c) !important;
  border-radius: 10px !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-shadow: none !important;
  background-image: none !important;
  transition: background-color 0.3s ease, color 0.3s ease !important;
  margin-top: 4px !important;
  min-height: 46px !important;
  height: auto !important;
}

#place_order:hover,
.woocommerce-checkout #place_order:hover {
  background-color: transparent !important;
  color: var(--color-foreground, #2c2c2c) !important;
}

/* ── Voorwaarden checkbox ────────────────────────────────── */
.woocommerce-terms-and-conditions-wrapper {
  margin-bottom: 16px !important;
}

.woocommerce-terms-and-conditions-wrapper label {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  color: rgba(255,255,255,0.7) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
}

.woocommerce-terms-and-conditions-wrapper a {
  color: rgba(255,255,255,0.9) !important;
  text-decoration: underline !important;
}

/* Privacy policy tekst — kleiner */
.woocommerce-privacy-policy-text,
.woocommerce-privacy-policy-text p {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  color: rgba(255,255,255,0.5) !important;
  margin-top: 10px !important;
  line-height: 1.5 !important;
}

.woocommerce-privacy-policy-text a {
  color: rgba(255,255,255,0.7) !important;
  text-decoration: underline !important;
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 960px) {
  form.woocommerce-checkout.checkout {
    grid-template-columns: 1fr !important;
  }
  #customer_details,
  #order_review {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  #order_review { position: static !important; }
  body.woocommerce-checkout .woocommerce {
    padding: 80px 24px 80px !important;
  }
}

@media (max-width: 600px) {
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr !important;
  }
  p.form-row-first,
  p.form-row-last { grid-column: 1 !important; }
  body.woocommerce-checkout .woocommerce {
    padding: 80px 16px 80px !important;
  }
}

/* =========================================================
   BEVESTIGINGSPAGINA (Order Received / Thank You)
   ========================================================= */

/* Pagina achtergrond — crème */
body.woocommerce-order-received #page,
body.woocommerce-order-received #content,
body.woocommerce-order-received article,
body.woocommerce-order-received .entry-content {
  background: var(--color-background) !important;
}

/* Buitenste wrapper */
body.woocommerce-order-received .woocommerce {
  max-width: 1100px !important;
  margin-inline: auto !important;
  padding: 140px 70px 80px !important;
  font-family: var(--font-body) !important;
}

/* "Bedankt. Je bestelling is ontvangen." */
.woocommerce-thankyou-order-received {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  color: var(--color-muted) !important;
  margin-bottom: 32px !important;
}

/* Order overview balk — bestelnummer / datum / email / totaal / methode */
.woocommerce-order-overview {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  list-style: none !important;
  padding: 28px 0 !important;
  margin: 0 0 40px !important;
  border-top: 1px solid var(--color-border) !important;
  border-bottom: 1px solid var(--color-border) !important;
}
.woocommerce-order-overview li {
  flex: 1 !important;
  min-width: 140px !important;
  padding: 0 24px 0 0 !important;
  border: none !important;
  font-size: 12px !important;
}
.woocommerce-order-overview li strong {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-foreground) !important;
  margin-top: 6px !important;
}
/* Labels boven de waarden */
.woocommerce-order-overview li::before {
  content: attr(class) !important;
}
.woocommerce-order-overview__order.order,
.woocommerce-order-overview__date.date,
.woocommerce-order-overview__email.email,
.woocommerce-order-overview__total.total,
.woocommerce-order-overview__payment-method.method {
  color: var(--color-muted) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
}

/* Bevestigingstekst */
.woocommerce-thankyou-order-details + p,
.wc-bacs-bank-details + p,
.woocommerce-order p {
  font-size: 14px !important;
  color: var(--color-muted) !important;
  line-height: 1.7 !important;
  margin-bottom: 32px !important;
}

/* "Bestelgegevens" / "Order details" sectie-titel */
.woocommerce-order-details__title,
h2.woocommerce-order-details__title {
  font-family: var(--font-serif) !important;
  font-size: 36px !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  margin-bottom: 24px !important;
}

/* Order details tabel */
.woocommerce-table--order-details {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 14px !important;
  margin-bottom: 0 !important;
}
/* Tabel header: PRODUCT / TOTAAL */
.woocommerce-table--order-details thead th {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--color-foreground) !important;
  border-bottom: 1px solid var(--color-border) !important;
  border-top: 1px solid var(--color-border) !important;
  padding: 12px 0 !important;
  background: transparent !important;
}
/* Tabel rijen */
.woocommerce-table--order-details tbody tr {
  border-bottom: 1px solid var(--color-border) !important;
}
.woocommerce-table--order-details tbody td {
  padding: 16px 0 !important;
  border: none !important;
  vertical-align: middle !important;
  background: transparent !important;
}
/* Product naam — terracotta link */
.woocommerce-table--order-details .woocommerce-table__product-name a {
  color: var(--color-primary) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  font-family: var(--font-body) !important;
}
.woocommerce-table--order-details .woocommerce-table__product-name a:hover {
  text-decoration: underline !important;
}
/* Prijs kolom rechts */
.woocommerce-table--order-details .woocommerce-table__product-total,
.woocommerce-table--order-details tfoot td:last-child {
  text-align: right !important;
  font-size: 14px !important;
  color: var(--color-foreground) !important;
}
/* Tabel footer: Subtotaal / Totaal */
.woocommerce-table--order-details tfoot tr {
  border-top: 1px solid var(--color-border) !important;
}
.woocommerce-table--order-details tfoot td,
.woocommerce-table--order-details tfoot th {
  padding: 14px 0 !important;
  border: none !important;
  font-size: 14px !important;
  background: transparent !important;
}
.woocommerce-table--order-details tfoot .woocommerce-Price-amount {
  font-size: 14px !important;
}
/* Subtotaal label */
.woocommerce-table--order-details tfoot tr:first-child th,
.woocommerce-table--order-details tfoot tr:first-child td {
  font-weight: 600 !important;
  color: var(--color-foreground) !important;
}
/* Totaal label + prijs — vet */
.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-table--order-details tfoot tr:last-child td {
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--color-foreground) !important;
}

/* Klantgegevens / factureringsadres */
.woocommerce-customer-details address {
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  color: var(--color-foreground) !important;
  line-height: 1.8 !important;
  border: none !important;
  padding: 0 !important;
}

/* Block-based order confirmation (nieuwere WC) */
.wc-block-order-confirmation-summary-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  padding: 28px 0 !important;
  border-top: 1px solid var(--color-border) !important;
  border-bottom: 1px solid var(--color-border) !important;
  margin-bottom: 40px !important;
}
.wc-block-order-confirmation-summary-list-item {
  flex: 1 !important;
  min-width: 140px !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  font-weight: 600 !important;
}
.wc-block-order-confirmation-summary-list-item__value {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-foreground) !important;
  margin-top: 6px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
/* "Bedankt" heading */
.wc-block-order-confirmation-summary__title,
.wc-block-order-confirmation__status {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  color: var(--color-muted) !important;
  font-weight: 400 !important;
  margin-bottom: 32px !important;
}
/* Bevestigingstekst */
.wc-block-order-confirmation-status {
  font-size: 14px !important;
  color: var(--color-muted) !important;
  line-height: 1.7 !important;
  margin-bottom: 32px !important;
}
/* "Bestelgegevens" heading */
.wc-block-order-confirmation-totals__title,
.wc-block-order-confirmation-order-summary__title {
  font-family: var(--font-serif) !important;
  font-size: 36px !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  margin-bottom: 24px !important;
}
/* Product tabel in block confirmation */
.wc-block-order-confirmation-totals-wrapper table {
  width: 100% !important;
  border-collapse: collapse !important;
}
.wc-block-order-confirmation-totals-wrapper th,
.wc-block-order-confirmation-totals-wrapper td {
  padding: 14px 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--color-border) !important;
  font-size: 14px !important;
  background: transparent !important;
}
.wc-block-order-confirmation-totals-wrapper a {
  color: var(--color-primary) !important;
  text-decoration: none !important;
  font-size: 15px !important;
}
.wc-block-order-confirmation-totals-wrapper a:hover {
  text-decoration: underline !important;
}
/* Totaal rij vet */
.wc-block-order-confirmation-totals-wrapper tfoot tr:last-child th,
.wc-block-order-confirmation-totals-wrapper tfoot tr:last-child td {
  font-weight: 700 !important;
  font-size: 15px !important;
}

/* Volledige bevestigingspagina — padding top voor navbar */
body.woocommerce-order-received .wc-block-order-confirmation,
body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-status {
  padding-top: 140px !important;
  padding-inline: 70px !important;
  max-width: none !important;
  padding-bottom: 80px !important;
}

/* =========================================================
   RTB (Five Star Restaurant Reservations) BOOKING FORM
   — gestyled als de tartelier-booktable__card
   ========================================================= */

/* Card wrapper — zelfde look als de HTML booktable */
.elementor-widget-shortcode .rtb-booking-form {
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background-color: rgba(255,255,255,0.92);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
  border: 1px solid rgba(255,255,255,0.4);
  padding: 28px 32px 24px;
}

/* Titel boven het formulier */
.elementor-widget-shortcode .rtb-booking-form::before {
  content: 'Tafel of brunch reserveren?';
  display: block;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 300;
  color: var(--color-foreground);
  margin-bottom: 10px;
  letter-spacing: 0.01em;
}

/* Verberg plugin's eigen fieldset-opmaak */
.rtb-booking-form fieldset {
  border: none;
  margin: 0;
  padding: 0;
}
/* reservation + contact: transparant in flex → children worden directe flex-items */
.rtb-booking-form fieldset.reservation,
.rtb-booking-form fieldset.rtb-contact {
  display: contents;
}
/* rtb-form-footer: gewone flex-item zodat margin-left: auto werkt */
.rtb-booking-form fieldset.rtb-form-footer {
  display: flex;
  align-items: flex-end;
  margin-left: auto;
  flex-shrink: 0;
}
.rtb-booking-form legend {
  display: none !important;
}

/* Form = één horizontale flex-rij */
.rtb-booking-form-form {
  display: flex !important;
  align-items: flex-end !important;
  gap: 14px !important;
  flex-wrap: nowrap !important;
}

/* Volgorde: naam → email → personen → tijd → datum → submit */
.rtb-booking-form .name    { order: 1; }
.rtb-booking-form .email   { order: 2; }
.rtb-booking-form .party   { order: 3; }
.rtb-booking-form .time    { order: 4; }
.rtb-booking-form .date    { order: 5; }
.rtb-booking-form .rtb-form-submit { display: flex; align-items: flex-end; }

/* Verberg telefoon, bericht, add-message toggle */
.rtb-booking-form .phone,
.rtb-booking-form .message,
.rtb-booking-form .add-message,
.rtb-booking-form #rtb_recaptcha {
  display: none !important;
}

/* Elk veld — zelfde flex-basis */
.rtb-booking-form .rtb-text,
.rtb-booking-form .rtb-select {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Labels — uppercase small muted met icoon via ::before */
.rtb-booking-form label {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  margin-bottom: 8px !important;
  white-space: nowrap !important;
}

/* Icoon vóór label via ::before — inline SVG als background */
.rtb-booking-form .name label::before {
  content: '';
  display: inline-block;
  width: 14px; height: 14px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") center/contain no-repeat;
}
.rtb-booking-form .email label::before {
  content: '';
  display: inline-block;
  width: 14px; height: 14px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.rtb-booking-form .party label::before {
  content: '';
  display: inline-block;
  width: 14px; height: 14px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/svg%3E") center/contain no-repeat;
}
.rtb-booking-form .time label::before {
  content: '';
  display: inline-block;
  width: 14px; height: 14px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center/contain no-repeat;
}
.rtb-booking-form .date label::before {
  content: '';
  display: inline-block;
  width: 14px; height: 14px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Alle inputs + selects — zelfde border box stijl */
.rtb-booking-form input[type="text"],
.rtb-booking-form input[type="email"],
.rtb-booking-form input[type="tel"],
.rtb-booking-form select {
  width: 100% !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 8px !important;
  padding: 8px 10px !important;
  background: #fff !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-foreground) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.rtb-booking-form input[type="text"]:focus,
.rtb-booking-form input[type="email"]:focus,
.rtb-booking-form select:focus {
  border-color: var(--color-primary) !important;
}
.rtb-booking-form input::placeholder {
  color: var(--color-muted) !important;
  opacity: 0.7 !important;
}

/* Submit knop — terracotta, consistent met site-knoppen */
.rtb-form-submit {
  display: flex !important;
  align-items: flex-end !important;
}
.rtb-form-submit button,
.rtb-form-submit input[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  border: 1.5px solid transparent !important;
  border-radius: 100px !important;
  padding: 14px 28px !important;
  line-height: 1 !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
  outline: none !important;
  box-shadow: none !important;
}
.rtb-form-submit button:hover,
.rtb-form-submit input[type="submit"]:hover {
  background: transparent !important;
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

/* RTB foutmeldingen */
.rtb-booking-form .rtb-error {
  font-size: 11px !important;
  color: var(--color-primary) !important;
  margin-top: 4px !important;
  font-family: var(--font-body) !important;
}

/* RTB bevestigingsbericht */
.rtb-booking-form .rtb-response {
  margin-top: 12px !important;
  padding: 8px 12px !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  font-family: var(--font-body) !important;
  color: var(--color-foreground) !important;
  background: transparent !important;
  border-left: 3px solid var(--color-primary) !important;
  border-radius: 0 !important;
  /* Reset any plugin-injected background/colour */
  background-color: transparent !important;
}

/* ── Pickadate — modern redesign ─────────────────────────── */

/* Popup container */
.picker__holder {
  font-family: var(--font-body) !important;
  border: none !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 40px rgba(0,0,0,0.14) !important;
  overflow: hidden !important;
}
.picker__frame { margin: 0 !important; }
.picker__wrap  { margin: 0 !important; }
.picker__box   { padding: 0 !important; border: none !important; background: #fff !important; }

/* Header: maand + jaar */
.picker__header {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 20px 24px 12px !important;
  border-bottom: 1px solid var(--color-border) !important;
}
.picker__month,
.picker__year {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--color-foreground) !important;
  margin: 0 !important;
}
.picker__year {
  font-weight: 400 !important;
  color: var(--color-muted) !important;
}

/* Nav pijlen */
.picker__nav--prev,
.picker__nav--next {
  position: static !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 6px !important;
  border: 1px solid var(--color-border) !important;
  background: transparent !important;
  color: var(--color-foreground) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
  font-size: 16px !important;
  padding: 0 !important;
}
.picker__nav--prev { order: -1; }
.picker__nav--next { margin-left: auto; }
.picker__nav--prev:hover,
.picker__nav--next:hover {
  background: var(--color-primary-light) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

/* Kalender tabel — geen zware borders */
.picker__table {
  width: 100% !important;
  border-collapse: collapse !important;
  padding: 8px 16px !important;
  border: none !important;
}
.picker__table td,
.picker__table th {
  border: none !important;
  padding: 0 !important;
  text-align: center !important;
}

/* Weekdag headers */
.picker__weekday {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  padding: 8px 0 !important;
}

/* Dag cellen */
.picker__day {
  width: 36px !important;
  height: 36px !important;
  line-height: 36px !important;
  border-radius: 50% !important;
  font-size: 13px !important;
  cursor: pointer !important;
  transition: background 0.15s, color 0.15s !important;
  border: none !important;
  margin: 2px auto !important;
  display: block !important;
}
.picker__day--infocus {
  color: var(--color-foreground) !important;
}
.picker__day--outfocus {
  color: var(--color-muted) !important;
  opacity: 0.4 !important;
}
.picker__day--infocus:hover {
  background: var(--color-primary-light) !important;
  color: var(--color-primary) !important;
}
.picker__day--today {
  font-weight: 700 !important;
  color: var(--color-primary) !important;
  background: transparent !important;
}
.picker__day--today::after {
  content: '' !important;
  display: block !important;
  width: 4px !important;
  height: 4px !important;
  border-radius: 50% !important;
  background: var(--color-primary) !important;
  margin: -4px auto 0 !important;
}
.picker__day--selected,
.picker__day--selected:hover,
.picker--focused .picker__day--selected {
  background: var(--color-primary) !important;
  color: #fff !important;
  border-radius: 50% !important;
}
.picker__day--disabled,
.picker__day--disabled:hover {
  background: transparent !important;
  color: var(--color-border) !important;
  cursor: default !important;
}

/* Footer: vandaag / wissen / sluiten */
.picker__footer {
  display: flex !important;
  justify-content: center !important;
  gap: 24px !important;
  padding: 12px 16px 16px !important;
  border-top: 1px solid var(--color-border) !important;
}
.picker__button--today,
.picker__button--clear,
.picker__button--close {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  padding: 6px 12px !important;
  border-radius: 6px !important;
  transition: background 0.15s !important;
}
.picker__button--today { color: var(--color-primary) !important; }
.picker__button--clear { color: var(--color-muted) !important; }
.picker__button--close { color: var(--color-muted) !important; }
.picker__button--today:hover { background: var(--color-primary-light) !important; }
.picker__button--clear:hover,
.picker__button--close:hover { background: var(--color-border) !important; }

/* ── Pickadate tijdlijst — modern ────────────────────────── */
.picker__list {
  list-style: none !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  max-height: 240px !important;
  overflow-y: auto !important;
}
.picker__list::-webkit-scrollbar { width: 4px; }
.picker__list::-webkit-scrollbar-thumb {
  background: var(--color-border);
  border-radius: 2px;
}
.picker__list-item {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-foreground) !important;
  padding: 10px 20px !important;
  cursor: pointer !important;
  border: none !important;
  border-bottom: 1px solid var(--color-border) !important;
  transition: background 0.12s !important;
}
.picker__list-item:last-child { border-bottom: none !important; }
.picker__list-item:hover {
  background: var(--color-primary-light) !important;
  color: var(--color-primary) !important;
}
.picker__list-item--highlighted {
  background: var(--color-primary-light) !important;
  color: var(--color-primary) !important;
}
.picker__list-item--selected,
.picker__list-item--selected:hover,
.picker--focused .picker__list-item--selected {
  background: var(--color-primary) !important;
  color: #fff !important;
}
.picker__list-item--disabled,
.picker__list-item--disabled:hover {
  background: transparent !important;
  color: var(--color-border) !important;
  cursor: default !important;
}

/* Mobiel: vertical stack */
@media (max-width: 1023px) {
  .rtb-booking-form-form {
    flex-wrap: wrap !important;
  }
  .rtb-booking-form .rtb-text,
  .rtb-booking-form .rtb-select {
    flex: 1 1 100% !important;
    min-width: 0 !important;
  }
  .rtb-booking-form fieldset.rtb-form-footer {
    flex: 1 1 100% !important;
    margin-left: 0 !important;
  }
  .rtb-booking-form input[type="text"],
  .rtb-booking-form input[type="email"],
  .rtb-booking-form input[type="tel"],
  .rtb-booking-form select {
    width: 100% !important;
  }
  /* Kalender responsive */
  .picker__holder {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: calc(100vw - 32px) !important;
    max-width: 340px !important;
  }
  .picker__frame {
    width: 100% !important;
    min-width: 0 !important;
  }
  .picker__table {
    width: 100% !important;
  }
  .picker__day {
    width: 36px !important;
    height: 36px !important;
  }
  /* Tijdlijst responsive */
  .picker__list {
    max-height: 200px !important;
  }
}
/* =========================================================
   WOOCOMMERCE — CLASSIC CART (winkelwagen)
   Consistent met de Classic Checkout (afrekenen)
   ========================================================= */

/* ── Pagina achtergrond ──────────────────────────────────── */
body.woocommerce-cart #page,
body.woocommerce-cart #content,
body.woocommerce-cart main,
body.woocommerce-cart .site-main,
body.woocommerce-cart article,
body.woocommerce-cart .entry-content {
  background: var(--color-background) !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Wrapper — ruimte en max-width ───────────────────────── */
body.woocommerce-cart .woocommerce {
  max-width: 1280px !important;
  margin-inline: auto !important;
  padding: 100px 48px 100px !important;
  font-family: var(--font-body) !important;
  display: grid !important;
  grid-template-columns: 1fr 400px !important;
  grid-template-rows: auto auto auto auto !important;
  gap: 0 48px !important;
  align-items: start !important;
}

/* ── Paginatitel Winkelwagen ─────────────────────────────── */
.tartelier-cart-title {
  grid-column: 1 / -1 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(28px, 4vw, 48px) !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  margin: 0 0 40px !important;
  padding: 0 !important;
}

/* ── Notices — verborgen op winkelwagen (persistente berichten) ── */
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  display: none !important;
}

/* ── Paginatitel ─────────────────────────────────────────── */
body.woocommerce-cart .woocommerce > h1,
body.woocommerce-cart .woocommerce > .page-title,
body.woocommerce-cart .woocommerce > h2:first-of-type {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  margin: 0 0 36px !important;
  padding: 0 !important;
  border: none !important;
}

/* ── Cart form — linkerkolom ─────────────────────────────── */
body.woocommerce-cart .woocommerce-cart-form {
  grid-column: 1 !important;
  grid-row: 3 !important;
  min-width: 0 !important;
}

/* ── Cart totals — rechterkolom ──────────────────────────── */
body.woocommerce-cart .cart-collaterals {
  grid-column: 2 !important;
  grid-row: 3 !important;
  position: sticky !important;
  top: 90px !important;
  width: 100% !important;
  float: none !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals {
  width: 100% !important;
  float: none !important;
  box-sizing: border-box !important;
}

/* ── Tabel — geen standaard WooCommerce borders ─────────── */
.woocommerce-cart-form .shop_table {
  border: none !important;
  border-collapse: collapse !important;
  width: 100% !important;
  background: transparent !important;
}
.woocommerce-cart-form .shop_table thead { display: none !important; }
.woocommerce-cart-form .shop_table tr,
.woocommerce-cart-form .shop_table th,
.woocommerce-cart-form .shop_table td {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* ── Productrij — hogere specificiteit om tr-reset te overtreffen ── */
body.woocommerce-cart .woocommerce-cart-form .shop_table tbody .cart_item {
  display: grid !important;
  grid-template-columns: 120px 1fr auto auto !important;
  align-items: center !important;
  gap: 0 20px !important;
  padding: 20px 0 !important;
  border-top: 1px dashed var(--color-border) !important;
  border-bottom: none !important;
  margin: 0 !important;
}
body.woocommerce-cart .woocommerce-cart-form .shop_table tbody .cart_item:last-child {
  border-bottom: 1px dashed var(--color-border) !important;
}

/* Verwijder — col 0 (verborgen, tonen als link in name) */
.woocommerce-cart-form .product-remove {
  display: none !important;
}

/* Thumbnail */
.woocommerce-cart-form .product-thumbnail {
  grid-column: 1 !important;
  width: 120px !important;
  height: 120px !important;
}
.woocommerce-cart-form .product-thumbnail img {
  width: 120px !important;
  height: 120px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  display: block !important;
}
.woocommerce-cart-form .product-thumbnail a { display: block; }

/* Productnaam + variatie + verwijder-link */
.woocommerce-cart-form .product-name {
  grid-column: 2 !important;
}
.woocommerce-cart-form .product-name a {
  font-family: var(--font-serif) !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--color-foreground) !important;
  text-decoration: none !important;
  display: block !important;
  line-height: 1.3 !important;
  margin-bottom: 4px !important;
}
.woocommerce-cart-form .product-name a:hover { color: var(--color-primary) !important; }

/* Variatie (bv. Formaat: Klein) */
.woocommerce-cart-form .product-name .variation {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  margin: 0 0 6px !important;
  display: block !important;
}
.woocommerce-cart-form .product-name .variation dt,
.woocommerce-cart-form .product-name .variation dd {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 11px !important;
}
.woocommerce-cart-form .product-name .variation dt::after { content: ' '; }
.woocommerce-cart-form .product-name .variation dd::after { content: ''; }

/* Prijs onder naam */
.woocommerce-cart-form .product-name .woocommerce-Price-amount {
  color: var(--color-primary) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  display: block !important;
  margin-bottom: 6px !important;
}

/* Verwijder-link */
.woocommerce-cart-form .product-name .remove {
  display: inline-block !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  color: var(--color-muted) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  cursor: pointer !important;
  transition: color 0.2s !important;
}
.woocommerce-cart-form .product-name .remove:hover { color: var(--color-primary) !important; }

/* Verberg × tekst / standaard prijs kolom */
.woocommerce-cart-form .product-price { display: none !important; }

/* Aantal — − input + ──────────────────────────────────────── */
.woocommerce-cart-form .product-quantity {
  grid-column: 3 !important;
}
.woocommerce-cart-form .product-quantity .quantity {
  display: flex !important;
  align-items: center !important;
}
.woocommerce-cart-form .product-quantity .qty {
  width: 44px !important;
  height: 44px !important;
  text-align: center !important;
  border: none !important;
  border-radius: 0 !important;
  outline: none !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-foreground) !important;
  background: hsl(33, 38%, 89%) !important;
  padding: 0 !important;
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}
.woocommerce-cart-form .product-quantity .qty::-webkit-outer-spin-button,
.woocommerce-cart-form .product-quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none !important; }

/* Subtotaal (rij totaal) */
.woocommerce-cart-form .product-subtotal {
  grid-column: 4 !important;
  text-align: right !important;
}
.woocommerce-cart-form .product-subtotal .woocommerce-Price-amount {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--color-foreground) !important;
}

/* ── Actiebalk (coupon + bijwerken) ──────────────────────── */
.woocommerce-cart-form .actions {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 24px 0 0 !important;
  border: none !important;
  flex-wrap: wrap !important;
}
.woocommerce-cart-form .coupon {
  display: flex !important;
  gap: 10px !important;
  align-items: center !important;
  flex: 1 1 auto !important;
}
.woocommerce-cart-form .coupon #coupon_code {
  padding: 10px 14px !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 8px !important;
  background: #fff !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-foreground) !important;
  outline: none !important;
  width: 160px !important;
  transition: border-color 0.2s !important;
}
.woocommerce-cart-form .coupon #coupon_code:focus { border-color: var(--color-primary) !important; }
.woocommerce-cart-form .coupon #coupon_code::placeholder { color: var(--color-muted) !important; opacity: 0.6 !important; }

/* Coupon toepassen + bijwerken — zelfde ghost button stijl */
.woocommerce-cart-form .coupon [name="apply_coupon"],
.woocommerce-cart-form [name="update_cart"] {
  display: inline-flex !important;
  align-items: center !important;
  padding: 10px 18px !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--color-foreground) !important;
  cursor: pointer !important;
  transition: border-color 0.2s, color 0.2s !important;
  white-space: nowrap !important;
}
.woocommerce-cart-form .coupon [name="apply_coupon"]:hover,
.woocommerce-cart-form [name="update_cart"]:hover {
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}
/* Bijwerken rechts */
.woocommerce-cart-form [name="update_cart"] {
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

/* ═══════════════════════════════════════════════════════════
   RECHTER PANEEL — caramel kaart (identiek aan checkout)
   ═══════════════════════════════════════════════════════════ */
.cart_totals {
  background: var(--color-sidebar, hsl(35, 35%, 50%)) !important;
  border-radius: 20px !important;
  padding: 32px 32px 28px !important;
  color: #fff !important;
}

/* Heading */
.cart_totals h2 {
  font-family: var(--font-serif) !important;
  font-size: clamp(22px, 2vw, 28px) !important;
  font-weight: 300 !important;
  color: #fff !important;
  margin: 0 0 24px !important;
  padding: 0 0 16px !important;
  border-bottom: 1px solid rgba(255,255,255,0.25) !important;
  border-radius: 0 !important;
  background: none !important;
}

/* Tabel met subtotaal / totaal */
.cart_totals .shop_table {
  width: 100% !important;
  border: none !important;
  border-collapse: collapse !important;
  background: transparent !important;
}
.cart_totals .shop_table tr { border: none !important; background: transparent !important; }
.cart_totals .shop_table th,
.cart_totals .shop_table td {
  border: none !important;
  background: transparent !important;
  padding: 10px 0 !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  color: rgba(255,255,255,0.85) !important;
}
.cart_totals .shop_table th { font-weight: 400 !important; text-align: left !important; }
.cart_totals .shop_table td { text-align: right !important; }
.cart_totals .shop_table .woocommerce-Price-amount { color: #fff !important; }

/* Totaal-rij — iets dikker */
.cart_totals .order-total th,
.cart_totals .order-total td {
  font-weight: 600 !important;
  font-size: 16px !important;
  color: #fff !important;
  padding-top: 16px !important;
  border-top: 1px dashed rgba(255,255,255,0.30) !important;
}
.cart_totals .order-total .woocommerce-Price-amount { font-size: 16px !important; }

/* Verberg lege verzending/belasting rijen */
.cart_totals .shipping,
.cart_totals .tax-rate { display: none !important; }

/* ── "Verder naar afrekenen" knop ─────────────────────────── */
.wc-proceed-to-checkout { margin-top: 24px !important; padding: 0 !important; }
.wc-proceed-to-checkout .checkout-button {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 14px 24px !important;
  background: #fff !important;
  color: var(--color-sidebar, hsl(35, 35%, 50%)) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  border-radius: 10px !important;
  border: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: opacity 0.2s !important;
}
.wc-proceed-to-checkout .checkout-button:hover { opacity: 0.88 !important; }

/* ═══════════════════════════════════════════════════════════
   WC PRODUCT ADD-ONS — Tartelier styleguide
   Plugin: WooCommerce Product Add-Ons (wc-pao-* prefix)
   ═══════════════════════════════════════════════════════════ */

/* ── Addon container spacing ─────────────────────────────── */
.wc-pao-addons-container {
  margin-top: 24px !important;
}

.wc-pao-addon-container {
  margin-bottom: 20px !important;
}

/* ── Label — same style as variation attribute labels ─────── */
.wc-pao-addon-name {
  display: block !important;
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--color-muted, #8a7d6e) !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  cursor: default !important;
}

/* ── Price next to label ─────────────────────────────────── */
.wc-pao-addon-price,
.wc-pao-addon-price .woocommerce-Price-amount {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  color: var(--color-muted, #8a7d6e) !important;
}

/* ── Textarea & text inputs — border-bottom stijl ──────── */
.wc-pao-addon-wrap textarea.wc-pao-addon-field,
.wc-pao-addon-wrap input.wc-pao-addon-field:not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--color-input-border, rgba(52, 36, 25, 0.15)) !important;
  border-radius: 0 !important;
  padding: 8px 0 !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-foreground, #2b2b2b) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.wc-pao-addon-wrap textarea.wc-pao-addon-field {
  min-height: 100px !important;
  resize: vertical !important;
}
.wc-pao-addon-wrap textarea.wc-pao-addon-field::placeholder,
.wc-pao-addon-wrap input.wc-pao-addon-field::placeholder {
  font-size: 12px !important;
  color: rgba(120, 120, 120, 0.6) !important;
}
.wc-pao-addon-wrap textarea.wc-pao-addon-field:focus,
.wc-pao-addon-wrap input.wc-pao-addon-field:focus {
  border-bottom-color: var(--color-input-focus, rgba(52, 36, 25, 0.85)) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* ── Checkbox & Radio row layout ─────────────────────────── */
/* Real structure: fieldset.wc-pao-fieldset > .wc-pao-addon-wrap > div > input + label */
.wc-pao-fieldset .wc-pao-addon-wrap > div {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 8px !important;
}
.wc-pao-fieldset .wc-pao-addon-wrap label {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  color: var(--color-foreground, #2b2b2b) !important;
  cursor: pointer !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* ── Custom checkbox ─────────────────────────────────────── */
.wc-pao-fieldset input[type="checkbox"].wc-pao-addon-field {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  background: hsl(33, 38%, 89%) !important;
  border: 1.5px solid rgba(44, 34, 22, 0.25) !important;
  border-radius: 5px !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  transition: background 0.15s, border-color 0.15s !important;
}
.wc-pao-fieldset input[type="checkbox"].wc-pao-addon-field:checked {
  background-color: var(--color-foreground, #2b2b2b) !important;
  border-color: var(--color-foreground, #2b2b2b) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M4 10l4 4 8-8'/%3E%3C/svg%3E") !important;
  background-size: 14px 14px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* ── Custom radio ────────────────────────────────────────── */
.wc-pao-fieldset input[type="radio"].wc-pao-addon-field {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  background: hsl(33, 38%, 89%) !important;
  border: 1.5px solid rgba(44, 34, 22, 0.25) !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  transition: background 0.15s, border-color 0.15s !important;
}
.wc-pao-fieldset input[type="radio"].wc-pao-addon-field:checked {
  background-color: var(--color-foreground, #2b2b2b) !important;
  border-color: var(--color-foreground, #2b2b2b) !important;
  box-shadow: inset 0 0 0 4px hsl(33, 38%, 89%) !important;
}
.wc-pao-fieldset input[type="radio"].wc-pao-addon-field:focus {
  outline: none !important;
}
.wc-pao-fieldset input[type="radio"].wc-pao-addon-field:checked:focus {
  background-color: var(--color-foreground, #2b2b2b) !important;
  border-color: var(--color-foreground, #2b2b2b) !important;
  box-shadow: inset 0 0 0 4px hsl(33, 38%, 89%) !important;
  outline: none !important;
}

/* ═══════════════════════════════════════════════════════════
   QUANTITY STEPPER — product single page
   ========================================================== */
.single-product .quantity {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
}
/* Spacing between qty stepper and ATC button — scoped to form.cart only */
.single-product form.cart .quantity {
  margin-bottom: 16px !important;
}
.single-product .quantity input.qty {
  width: 56px !important;
  text-align: center !important;
  border: none !important;
  background: hsl(33, 38%, 89%) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--color-foreground, #2b2b2b) !important;
  padding: 0 !important;
  height: 44px !important;
  border-radius: 0 !important;
  -moz-appearance: textfield !important;
  box-shadow: none !important;
  outline: none !important;
}
.single-product .quantity input.qty::-webkit-inner-spin-button,
.single-product .quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
}
.tart-qty-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  background: hsl(33, 38%, 89%) !important;
  border: none !important;
  color: var(--color-foreground, #2b2b2b) !important;
  font-size: 20px !important;
  font-weight: 300 !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  line-height: 1 !important;
  transition: background 0.15s !important;
  padding: 0 !important;
}
.tart-qty-btn:first-child { border-radius: 10px 0 0 10px !important; }
.tart-qty-btn:last-child  { border-radius: 0 10px 10px 0 !important; }
.tart-qty-btn:hover { background: rgba(44, 34, 22, 0.12) !important; }

/* ── Hide the price summary table below the button ──────── */
#product-addons-total,
.product-addon-totals {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════
   WPC COMPOSITE PRODUCTS (wooco)
   ========================================================== */

/* Hide composite summary bar and count */
.wooco-summary,
.wooco_summary,
.wooco-summary-bar,
.wooco-total,
.wooco_total,
.wooco-total-wrap,
.wooco-count-wrap,
.wooco-count,
.wooco_count,
.wooco-price-table,
.wpc-summary,
.wpc-composite-summary {
  display: none !important;
}

/* Hide main product qty on composite products — components handle their own qty */
.product-type-wooco form.cart .quantity {
  display: none !important;
}

/* Qty stepper — container clips children so WPC's own border-radius can't show */
span.wooco-qty-input {
  display: inline-flex !important;
  align-items: stretch !important;
  height: 40px !important;
  gap: 0 !important;
  vertical-align: middle !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}

/* Use parent selector for higher specificity than WPC's own stylesheet */
span.wooco-qty-input span.wooco-minus,
span.wooco-qty-input span.wooco_component_product_qty_minus,
span.wooco-qty-input span.wooco-plus,
span.wooco-qty-input span.wooco_component_product_qty_plus {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  background: hsl(33, 38%, 89%) !important;
  color: var(--color-foreground, #2b2b2b) !important;
  font-size: 20px !important;
  font-weight: 300 !important;
  cursor: pointer !important;
  user-select: none !important;
  line-height: 1 !important;
  transition: background 0.15s !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  flex-shrink: 0 !important;
  border: none !important;
}
span.wooco-qty-input span.wooco-minus:hover,
span.wooco-qty-input span.wooco_component_product_qty_minus:hover,
span.wooco-qty-input span.wooco-plus:hover,
span.wooco-qty-input span.wooco_component_product_qty_plus:hover {
  background: rgba(44, 34, 22, 0.12) !important;
}

span.wooco-qty-input input.wooco_qty,
span.wooco-qty-input input.wooco_component_product_qty_input {
  width: 48px !important;
  height: 40px !important;
  text-align: center !important;
  border: none !important;
  background: hsl(33, 38%, 89%) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--color-foreground, #2b2b2b) !important;
  padding: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  -moz-appearance: textfield !important;
  box-shadow: none !important;
  outline: none !important;
}
span.wooco-qty-input input.wooco_qty::-webkit-inner-spin-button,
span.wooco-qty-input input.wooco_qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
}

/* Vertically center product name within the info cell */
.wooco_component_product_selection_list_item_info {
  display: flex !important;
  align-items: center !important;
}

/* Hide placeholder thumbnail in WPC component rows (no image = no blank box) */
.wooco_component_product_selection_list_item_image img.woocommerce-placeholder {
  display: none !important;
}
.wooco_component_product_selection_list_item_image:has(img.woocommerce-placeholder) {
  display: none !important;
}

/* Hide empty WPC component description div */
.wooco_component_product_selection_list_item_info > *:empty,
.wooco-product-desc:empty,
.wooco-desc:empty,
.wooco_component_product_description:empty {
  display: none !important;
}

/* ── Validation message ──────────────────────────────────── */
.wc-pao-addon-container .validation_message {
  background: hsl(33, 38%, 93%) !important;
  border: none !important;
  border-left: 3px solid var(--color-primary) !important;
  border-radius: 0 8px 8px 0 !important;
  padding: 10px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-foreground, #2b2b2b) !important;
  margin: 6px 0 12px !important;
  box-shadow: none !important;
}

/* ── Mobiel: één kolom ───────────────────────────────────── */
@media (max-width: 1023px) {
  body.woocommerce-cart .woocommerce {
    grid-template-columns: 1fr !important;
    padding: 100px 20px 60px !important;
    gap: 40px 0 !important;
  }
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals {
    grid-column: 1 !important;
    grid-row: auto !important;
    position: static !important;
  }
  .woocommerce-cart-form .cart_item {
    grid-template-columns: 70px 1fr auto !important;
  }
  .woocommerce-cart-form .product-subtotal { display: none !important; }
}

/* ==========================================================
   CART — CROSS-SELLS (right column, above cart totals)
   ========================================================== */

/* Hide any leftover WooCommerce default cross-sells */
body.woocommerce-cart .cart-collaterals .cross-sells {
  display: none !important;
}

/* Card panel — sits inside .cart-collaterals above cart_totals */
.tartelier-cart-crosssells {
  background: #fff;
  border: 1px solid var(--color-border, rgba(44,34,22,0.10));
  border-radius: 16px;
  padding: 28px 24px 20px;
  margin-bottom: 20px;
  width: 100%;
  box-sizing: border-box;
}

/* Heading */
.tartelier-cart-crosssells__title {
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 300;
  color: var(--color-foreground, #2b2b2b);
  margin: 0 0 4px;
  padding: 0;
  border: none;
  line-height: 1.2;
}

/* Sub text */
.tartelier-cart-crosssells__sub {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--color-muted, #8a7d6e);
  margin: 0 0 20px;
}

/* Product list */
.tartelier-cart-crosssells__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Row */
.tartelier-crosssell-row {
  border-top: 1px solid var(--color-border, rgba(44,34,22,0.08));
}
.tartelier-crosssell-row:first-child { border-top: none; }

.tartelier-crosssell-row__inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  text-decoration: none;
  color: var(--color-foreground, #2b2b2b);
  transition: opacity 0.15s ease;
}
.tartelier-crosssell-row__inner:hover { opacity: 0.8; }

/* Thumbnail */
.tartelier-crosssell-row__img-wrap {
  flex-shrink: 0;
  width: 68px;
  height: 68px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--color-cream, hsl(33,38%,89%));
}
.tartelier-crosssell-row__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Text */
.tartelier-crosssell-row__info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tartelier-crosssell-row__name {
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 300;
  color: var(--color-foreground, #2b2b2b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.tartelier-crosssell-row__price {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--color-muted, #8a7d6e);
}
.tartelier-crosssell-row__price .woocommerce-Price-amount {
  color: var(--color-muted, #8a7d6e);
  font-weight: 400;
}

/* "+" button */
.tartelier-crosssell-row__btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid var(--color-primary, #b65a39);
  color: var(--color-primary, #b65a39);
  font-size: 20px;
  font-weight: 300;
  line-height: 1;
  transition: background 0.15s ease, color 0.15s ease;
}
.tartelier-crosssell-row__inner:hover .tartelier-crosssell-row__btn {
  background: var(--color-primary, #b65a39);
  color: #fff;
}

/* Mobile: full-width inside stacked collaterals */
@media (max-width: 1023px) {
  .tartelier-cart-crosssells {
    border-radius: 12px;
    padding: 22px 18px 16px;
  }
}

/* ==========================================================
   AANBOD PRODUCT SLIDER  (v1.9.7)
   ========================================================== */

/* Wrapper */
.tart-slider-wrap {
  width: 100%;
}

/* The scrollable track */
.tart-slider {
  display: flex;
  flex-direction: row;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 8px 40px 40px;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
}
.tart-slider.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}
.tart-slider::-webkit-scrollbar { display: none; }

/* Individual slide card — transparent, no white box */
.tart-slide {
  flex: 0 0 390px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  text-decoration: none;
  color: var(--color-foreground, #2b2b2b);
  transition: transform 0.2s ease;
  height: 500px;
}
.tart-slide:hover {
  transform: translateY(-2px);
}

/* Featured (first) card is wider */
.tart-slide--featured {
  flex: 0 0 490px;
}

/* Image area: rounded, covers fully */
.tart-slide__img-wrap {
  position: relative;
  flex: 1 1 0%;
  min-height: 0;
  overflow: hidden;
  border-radius: 12px;
}
/* Override WordPress explicit width/height attrs on img */
.tart-slide__img-wrap img.tart-slide__img,
.tart-slide__img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.4s ease;
}
.tart-slide:hover .tart-slide__img { transform: scale(1.04); }

/* Index counter — top left */
.tart-slide__index {
  position: absolute;
  top: 14px;
  left: 16px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 10px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: #fff;
  mix-blend-mode: difference;
  font-variant-numeric: tabular-nums;
  z-index: 2;
  pointer-events: none;
}

/* Price pill + badge group — top right */
.tart-slide__top-right {
  position: absolute;
  top: 14px;
  right: 14px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  z-index: 2;
}
.tart-slide__price-pill {
  background: rgba(250, 248, 245, 0.95);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  color: var(--color-foreground, #2b2b2b);
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  padding: 5px 13px;
  border-radius: 100px;
  box-shadow: 0 4px 20px -6px rgba(0, 0, 0, 0.2);
  outline: 1px solid rgba(43, 43, 43, 0.06);
  white-space: nowrap;
}
.tart-slide__price-pill .woocommerce-Price-amount { font-size: inherit; color: inherit; }

/* Badge */
.tart-slide__badge {
  background: var(--color-foreground, #2b2b2b);
  color: var(--color-background, #faf8f5);
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  padding: 5px 11px;
  border-radius: 100px;
}

/* Card body — frosted glass panel at bottom */
.tart-slide__body {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  background: rgba(250, 248, 245, 0.95);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 16px;
  padding: 10px 8px 10px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  box-shadow: 0 8px 30px -12px rgba(0, 0, 0, 0.25);
  outline: 1px solid rgba(43, 43, 43, 0.06);
  z-index: 2;
}
.tart-slide__name {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 18px;
  font-weight: 300;
  color: var(--color-foreground, #2b2b2b);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 1;
  line-height: 1.2;
}
.tart-slide--featured .tart-slide__name { font-size: 20px; }
.tart-slide__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  background: var(--color-foreground, #2b2b2b);
  color: #fff;
  flex-shrink: 0;
  transition: background 0.3s ease, transform 0.3s ease;
}
.tart-slide:hover .tart-slide__arrow {
  background: var(--color-primary, #c0703a);
  transform: scale(1.1) rotate(-12deg);
}

/* Arrow buttons — in section 6 header (`.tart-aanbod-arrows`) */
.tart-aanbod-arrows {
  display: flex;
  flex-direction: row;
  gap: 8px;
  align-items: center;
  padding-bottom: 4px;
}

/* Arrow buttons */
.tart-slider-nav__btn,
button.tart-slider-nav__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  border: 1.5px solid rgba(44, 34, 22, 0.30) !important;
  background: transparent !important;
  cursor: pointer !important;
  color: #2b2b2b !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-family: inherit !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
  flex-shrink: 0 !important;
  text-decoration: none !important;
}
.tart-slider-nav__btn:hover,
button.tart-slider-nav__btn:hover {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #fff !important;
}

/* Mobile */
@media (max-width: 767px) {
  .tart-slider {
    gap: 14px;
    padding: 8px 20px 32px;
  }
  .tart-slide {
    flex: 0 0 220px;
    height: 340px;
  }
  .tart-slide--featured {
    flex: 0 0 290px;
  }
  .tart-slide__name { font-size: 15px; }
  .tart-slide--featured .tart-slide__name { font-size: 17px; }
}

/* =====================================================
   THANK YOU / ORDER CONFIRMATION
   ===================================================== */

.tart-thankyou {
  max-width: 900px;
  padding: 48px 0 80px;
}

.tart-thankyou__intro {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--color-foreground);
  margin: 0 0 32px;
}

/* Meta strip — 5-column grid */
.tart-thankyou__meta {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--color-border, rgba(43,43,43,0.12));
  border-bottom: 1px solid var(--color-border, rgba(43,43,43,0.12));
  padding: 24px 0;
  margin-bottom: 40px;
  gap: 16px;
}
@media (max-width: 767px) {
  .tart-thankyou__meta {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
.tart-thankyou__meta-item {
  padding-right: 16px;
}
.tart-thankyou__meta-label {
  display: block;
  font-family: var(--font-body);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-muted, #8a7d6e);
  margin-bottom: 4px;
}
.tart-thankyou__meta-value {
  display: block;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--color-foreground);
  line-height: 1.3;
}

.tart-thankyou__copy {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-muted, #8a7d6e);
  margin: 0 0 8px;
  line-height: 1.6;
}

.tart-thankyou__heading {
  font-family: var(--font-serif);
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 300;
  color: var(--color-foreground);
  margin: 32px 0 20px;
}

/* Table */
.tart-thankyou__table {
  border: 1px solid var(--color-border, rgba(43,43,43,0.12));
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 48px;
}
.tart-thankyou__table-header {
  display: grid;
  grid-template-columns: 1fr auto;
  background: var(--color-cream, #f5f0e8);
}
.tart-thankyou__table-header span {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-foreground);
  padding: 12px 20px;
}
.tart-thankyou__table-header span:last-child { text-align: right; }

.tart-thankyou__table-row {
  display: grid;
  grid-template-columns: 1fr auto;
  border-top: 1px solid var(--color-border, rgba(43,43,43,0.12));
}
.tart-thankyou__table-product {
  font-family: var(--font-body);
  font-size: 14px;
  padding: 16px 20px;
}
.tart-thankyou__table-name {
  color: var(--color-primary, #c0703a);
  font-weight: 500;
}
.tart-thankyou__table-qty {
  color: var(--color-muted, #8a7d6e);
}
.tart-thankyou__table-price {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-foreground);
  padding: 16px 20px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.tart-thankyou__table-subtotal {
  display: grid;
  grid-template-columns: 1fr auto;
  border-top: 1px solid var(--color-border, rgba(43,43,43,0.12));
  background: rgba(43,43,43,0.025);
}
.tart-thankyou__table-subtotal span {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--color-foreground);
  padding: 12px 20px;
  font-variant-numeric: tabular-nums;
}
.tart-thankyou__table-subtotal span:last-child { text-align: right; }

.tart-thankyou__table-total {
  display: grid;
  grid-template-columns: 1fr auto;
  border-top: 2px solid rgba(43,43,43,0.15);
  background: var(--color-cream, #f5f0e8);
}
.tart-thankyou__table-total span {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-foreground);
  padding: 16px 20px;
  font-variant-numeric: tabular-nums;
}
.tart-thankyou__table-total span:last-child { text-align: right; }

/* Actions */
.tart-thankyou__actions {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.tart-thankyou__btn-shop {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--color-foreground, #2b2b2b);
  color: #fff;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 100px;
  text-decoration: none;
  transition: background 0.25s ease;
}
.tart-thankyou__btn-shop:hover { background: var(--color-primary, #c0703a); color: #fff; }
.tart-thankyou__btn-text {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-muted, #8a7d6e);
  text-decoration: none;
  transition: color 0.2s ease;
}
.tart-thankyou__btn-text:hover { color: var(--color-foreground); }

/* =====================================================
   CART DRAWER
   ===================================================== */

/* Overlay */
.tart-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(43, 35, 22, 0.45);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.tart-drawer-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

/* Drawer panel */
.tart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 420px;
  max-width: 100vw;
  height: 100%;
  background: hsl(33, 30%, 96%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  transform: translateX(105%);
  transition: transform 0.38s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: -6px 0 48px rgba(43, 35, 22, 0.14);
  overflow: hidden;
}
.tart-drawer.is-open {
  transform: translateX(0);
}
body.tart-drawer-open {
  overflow: hidden;
}

/* ── Header ── */
.tart-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(44, 34, 22, 0.10);
  flex-shrink: 0;
  background: hsl(33, 30%, 96%);
}
.tart-drawer__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 20px;
  font-weight: 500;
  color: var(--color-foreground, #2b2b2b);
  margin: 0;
}
.tart-drawer__close {
  background: none !important;
  border: none !important;
  padding: 6px;
  cursor: pointer;
  color: var(--color-foreground, #2b2b2b) !important;
  opacity: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  line-height: 1;
  transition: background 0.2s;
  box-shadow: none !important;
}
.tart-drawer__close:hover,
.tart-drawer__close:focus {
  background: rgba(44, 34, 22, 0.08) !important;
  color: var(--color-foreground, #2b2b2b) !important;
  opacity: 1;
}

/* ── Body (scrollable) ── */
.tart-drawer__body {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  /* Custom scrollbar */
  scrollbar-width: thin;
  scrollbar-color: rgba(44,34,22,0.18) transparent;
}
.tart-drawer__body::-webkit-scrollbar { width: 4px; }
.tart-drawer__body::-webkit-scrollbar-track { background: transparent; }
.tart-drawer__body::-webkit-scrollbar-thumb { background: rgba(44,34,22,0.18); border-radius: 4px; }

/* ── Empty state ── */
.tart-drawer__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 48px 32px;
  text-align: center;
  gap: 16px;
  color: var(--color-muted, #8a7d6e);
}
/* Override the flex:1 / width:100% that .tart-drawer__btn gets in the footer */
.tart-drawer__empty .tart-drawer__btn {
  flex: none !important;
  width: auto !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
}
.tart-drawer__empty p {
  font-size: 15px;
  margin: 0;
  color: var(--color-muted, #8a7d6e);
}

/* ── Items list ── */
.tart-drawer__items {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Item row */
.tart-drawer-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 24px;
  border-bottom: 1px solid rgba(44, 34, 22, 0.08);
  position: relative;
  transition: opacity 0.25s ease;
}
.tart-drawer-item.is-removing {
  opacity: 0.35;
  pointer-events: none;
}

/* Thumbnail */
.tart-drawer-item__thumb {
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  background: hsl(33, 38%, 89%);
}
.tart-drawer-item__thumb .tart-drawer-item__img-el,
.tart-drawer-item__thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Info block */
.tart-drawer-item__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tart-drawer-item__name {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-foreground, #2b2b2b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}
.tart-drawer-item__variant {
  font-size: 11px;
  color: var(--color-muted, #8a7d6e);
  line-height: 1.3;
}

/* Qty + price row inside item */
.tart-drawer-item__row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}
.tart-drawer-item__qty {
  display: inline-flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}
.tart-drawer-item__qty-btn {
  background: hsl(33, 38%, 89%) !important;
  border: none !important;
  width: 34px !important;
  height: 36px !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  color: var(--color-foreground, #2b2b2b) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.15s !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}
.tart-drawer-item__qty-minus {
  border-radius: 8px 0 0 8px !important;
}
.tart-drawer-item__qty-plus {
  border-radius: 0 8px 8px 0 !important;
}
.tart-drawer-item__qty-btn:hover {
  background: rgba(44, 34, 22, 0.14) !important;
  color: var(--color-foreground, #2b2b2b) !important;
}
.tart-drawer-item__qty-num {
  font-size: 14px !important;
  font-weight: 500 !important;
  width: 38px !important;
  height: 36px !important;
  text-align: center !important;
  color: var(--color-foreground, #2b2b2b) !important;
  background: hsl(33, 38%, 89%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.tart-drawer-item__price {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-primary);
  margin-left: auto;
  white-space: nowrap;
}
.tart-drawer-item__price .woocommerce-Price-amount,
.tart-drawer-item__price bdi { color: inherit; font-size: inherit; }

/* Remove button */
.tart-drawer-item__remove {
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--color-muted, #8a7d6e);
  flex-shrink: 0;
  align-self: flex-start;
  transition: color 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.tart-drawer-item__remove:hover { color: var(--color-primary); }

/* ── Cross-sells ── */
.tart-drawer__cross-sells {
  padding: 20px 24px;
  border-top: 1px solid rgba(44, 34, 22, 0.08);
  background: hsl(33, 25%, 93%);
}
.tart-drawer__cs-title {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-muted, #8a7d6e);
  margin: 0 0 14px;
}
.tart-drawer__cs-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tart-drawer-cs {
  display: flex;
  align-items: center;
  gap: 12px;
}
.tart-drawer-cs__img {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  background: hsl(33, 38%, 89%);
}
.tart-drawer-cs__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.tart-drawer-cs__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tart-drawer-cs__name {
  font-size: 13px;
  font-weight: 500;
  color: var(--color-foreground, #2b2b2b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tart-drawer-cs__price,
.tart-drawer-cs__price .woocommerce-Price-amount,
.tart-drawer-cs__price bdi {
  font-size: 12px;
  color: var(--color-primary) !important;
}
.tart-drawer-cs__btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1.5px solid rgba(44, 34, 22, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-foreground, #2b2b2b);
  font-size: 16px;
  text-decoration: none;
  flex-shrink: 0;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.tart-drawer-cs__btn:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* ── Subtotal row — sticky at bottom of scroll area ── */
.tart-drawer__subtotal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-top: 1px solid rgba(44, 34, 22, 0.10);
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 15px;
  font-weight: 500;
  color: var(--color-foreground, #2b2b2b);
  margin-top: auto;
  position: sticky;
  bottom: 0;
  background: hsl(33, 30%, 96%);
  z-index: 1;
}
.tart-drawer__subtotal-price,
.tart-drawer__subtotal-price .woocommerce-Price-amount,
.tart-drawer__subtotal-price bdi {
  color: var(--color-primary) !important;
  font-weight: 600;
}

/* ── Footer buttons ── */
.tart-drawer__footer {
  display: flex;
  gap: 10px;
  padding: 14px 24px 28px;
  border-top: 1px solid rgba(44, 34, 22, 0.10);
  flex-shrink: 0;
  background: hsl(33, 30%, 96%);
}
.tart-drawer__btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 13px 16px;
  border-radius: 100px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none !important;
  white-space: nowrap;
  border: 1.5px solid transparent;
  text-align: center;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  line-height: 1.2;
}
.tart-drawer__btn--outline {
  border-color: rgba(44, 34, 22, 0.28);
  color: var(--color-foreground, #2b2b2b) !important;
  background: transparent;
}
.tart-drawer__btn--outline:hover {
  border-color: var(--color-foreground, #2b2b2b);
}
.tart-drawer__btn--fill {
  background: var(--color-primary);
  color: #fff !important;
  border-color: var(--color-primary);
}
.tart-drawer__btn--fill:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}

/* ── Mobile ── */
@media (max-width: 480px) {
  .tart-drawer {
    width: 100%;
    border-radius: 0;
  }
  .tart-drawer__footer {
    flex-direction: column;
    gap: 8px;
  }
}

/* =========================================================
   GLOBAL INPUT / SELECT / TEXTAREA STYLING
   ========================================================= */
/* ── Global input / textarea styling ───────────────────── */
input[type="text"]:not([class*="search"]):not([class*="wc-"]):not([class*="woocommerce"]):not([class*="flatpickr"]),
input[type="email"]:not([class*="wc-"]):not([class*="woocommerce"]),
input[type="tel"],
input[type="password"],
input[type="number"],
input[type="url"],
select:not([class*="wc-"]):not([class*="woocommerce"]):not([class*="orderby"]):not([class*="country"]):not([class*="state"]),
textarea:not([class*="wc-"]):not([class*="woocommerce"]) {
  border: none !important;
  border-bottom: 1px solid var(--color-input-border, rgba(52, 36, 25, 0.15)) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--color-foreground) !important;
  font-size: 13px !important;
  font-family: var(--font-body) !important;
  padding: 8px 0 !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s !important;
  margin: 0 !important;
}

input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="tel"]::placeholder,
input[type="password"]::placeholder,
input[type="number"]::placeholder,
input[type="url"]::placeholder,
textarea::placeholder {
  font-size: 12px !important;
  color: rgba(120, 120, 120, 0.55) !important;
}

/* Focus — keep underline style, suppress Elementor's full-border */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="url"]:focus,
select:focus:not([class*="wc-"]):not([class*="woocommerce"]):not([class*="orderby"]):not([class*="country"]):not([class*="state"]),
textarea:focus,
.elementor-kit-5 input:focus:not([type="button"]):not([type="submit"]),
.elementor-kit-5 textarea:focus,
.elementor-kit-5 .elementor-field-textual:focus {
  border: none !important;
  border-bottom: 1px solid var(--color-input-focus, rgba(52, 36, 25, 0.85)) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Labels — 0 margin everywhere */
label,
.elementor-field-label,
.wpforms-field-label,
.wpcf7-form label,
.tart-brunch-field > label,
.tartelier-res-field > label {
  margin: 0 !important;
  margin-bottom: 0 !important;
}

/* ============================================================
   FAQ ACCORDION — tart-faq-accordion
   Scoped to frontend only (editor body has .elementor-editor-active)
   ============================================================ */

/* Remove all item borders, re-add only top + bottom */
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-accordion-item,
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item {
  border: none !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* ── Old widget (.elementor-accordion) ── */
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-accordion { counter-reset: faq-item; }
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-accordion-item { counter-increment: faq-item; }

body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-title {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 22px 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(44, 44, 44, 0.12) !important;
  background: transparent !important;
  cursor: pointer;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-accordion-item:first-child .elementor-tab-title {
  border-top: 1px solid rgba(44, 44, 44, 0.12) !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-title::before {
  content: counter(faq-item, decimal-leading-zero);
  font-family: 'DM Sans', sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.2em;
  color: rgba(44, 44, 44, 0.35);
  flex-shrink: 0;
  min-width: 24px;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-accordion-title,
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-accordion-title * {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 19px !important;
  font-weight: 300 !important;
  font-style: normal !important;
  color: #2b2b2b !important;
  flex: 1 !important;
  line-height: 1.3 !important;
  transition: font-style 0.15s;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-title,
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-title * {
  font-style: italic !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-accordion-icon {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(44, 44, 44, 0.22) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  font-size: 11px !important;
  order: 99 !important;
  margin-left: auto !important;
  color: rgba(44, 44, 44, 0.45) !important;
  transition: background 0.25s, border-color 0.25s, color 0.25s;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon {
  background: #3d5a3e !important;
  border-color: #3d5a3e !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon,
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon * {
  color: #fff !important;
  fill: #fff !important;
  stroke: #fff !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .elementor-tab-content {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: #737373 !important;
  line-height: 1.75 !important;
  padding: 16px 0 24px 44px !important;
  border: none !important;
  border-bottom: 1px solid rgba(44, 44, 44, 0.12) !important;
  background: transparent !important;
}

/* ── New widget (.e-n-accordion) ── */
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion { counter-reset: faq-item; }
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item { counter-increment: faq-item; }

body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item-title {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 22px 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(44, 44, 44, 0.12) !important;
  background: transparent !important;
  cursor: pointer;
  list-style: none;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item:first-child .e-n-accordion-item-title {
  border-top: 1px solid rgba(44, 44, 44, 0.12) !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item-title::before {
  content: counter(faq-item, decimal-leading-zero);
  font-family: 'DM Sans', sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.2em;
  color: rgba(44, 44, 44, 0.35);
  flex-shrink: 0;
  min-width: 24px;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item-title-text,
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item-title-text * {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 19px !important;
  font-weight: 300 !important;
  font-style: normal !important;
  color: #2b2b2b !important;
  flex: 1 !important;
  line-height: 1.3 !important;
  transition: font-style 0.15s;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-text,
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-text * {
  font-style: italic !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item-title-icon {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(44, 44, 44, 0.22) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  order: 99 !important;
  margin-left: auto !important;
  color: rgba(44, 44, 44, 0.45) !important;
  fill: rgba(44, 44, 44, 0.45) !important;
  transition: background 0.25s, border-color 0.25s;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item-title-icon * {
  color: rgba(44, 44, 44, 0.45) !important;
  fill: rgba(44, 44, 44, 0.45) !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
  background: #3d5a3e !important;
  border-color: #3d5a3e !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon,
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon * {
  color: #fff !important;
  fill: #fff !important;
  stroke: #fff !important;
}
body:not(.elementor-editor-active) .tart-faq-accordion .e-n-accordion-item-body-inner {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: #737373 !important;
  line-height: 1.75 !important;
  padding: 16px 0 24px 44px !important;
  border: none !important;
  border-bottom: 1px solid rgba(44, 44, 44, 0.12) !important;
  background: transparent !important;
}

/* ============================================================
   BRUNCH BANNER — tart-brunch-block
   ============================================================ */
.tart-brunch-block .tart-brunch-heading em {
  font-style: italic;
  color: rgba(250, 248, 244, 0.5);
}
.tart-brunch-line {
  width: 40px;
  height: 1px;
  background: rgba(250, 248, 244, 0.25);
  flex-shrink: 0;
}
.tart-brunch-vdivider {
  width: 1px;
  height: 40px;
  background: rgba(250, 248, 244, 0.15);
  flex-shrink: 0;
}

/* Brunch banner column widths */
.elementor-element.tart-bb-left {
  width: 50% !important;
  flex: 0 0 50% !important;
  max-width: 50% !important;
}
.elementor-element.tart-bb-pricing {
  width: 33.33% !important;
  flex: 0 0 33.33% !important;
  max-width: 33.33% !important;
}
.elementor-element.tart-bb-cta {
  width: 16.67% !important;
  flex: 0 0 16.67% !important;
  max-width: 16.67% !important;
}
@media (max-width: 767px) {
  .elementor-element.tart-bb-left,
  .elementor-element.tart-bb-pricing,
  .elementor-element.tart-bb-cta {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}

/* ============================================================
   MIJN ACCOUNT
   ============================================================ */
.tart-myaccount {
  min-height: 100vh;
  background: var(--color-bg, #faf8f5);
}

/* Breadcrumb */
.tart-myaccount__breadcrumb-wrap {
  padding-top: 160px;
  padding-bottom: 16px;
  background: #fff;
  border-bottom: 1px solid var(--color-border, #ece8e2);
}
.tart-myaccount__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
.tart-myaccount__breadcrumb {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #9a8f85);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.tart-myaccount__breadcrumb a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.tart-myaccount__breadcrumb a:hover {
  color: var(--color-primary, #c0703a);
}

/* Heading */
.tart-myaccount__inner {
  padding-top: 48px;
  padding-bottom: 80px;
}
.tart-myaccount__heading-wrap {
  margin-bottom: 40px;
}
.tart-myaccount__title {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0 0 8px;
  line-height: 1.2;
}
.tart-myaccount__subtitle {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  margin: 0;
}
.tart-myaccount__subtitle strong {
  color: var(--color-fg, #2c2420);
  font-weight: 500;
}

/* Layout grid */
.tart-myaccount__layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 40px;
  align-items: start;
}

/* Sidebar */
.tart-myaccount__sidebar {
  position: sticky;
  top: 112px;
}
.tart-myaccount__nav {
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 8px;
  display: flex;
  flex-direction: column;
}

/* WooCommerce outputs a <ul> inside our nav — flatten it */
.tart-myaccount__nav ul,
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: contents;
}
.tart-myaccount__nav ul li,
.woocommerce-MyAccount-navigation ul li {
  display: contents;
}

/* Nav items */
.tart-myaccount__nav-item,
.woocommerce-MyAccount-navigation-link a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 8px;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
  width: 100%;
  box-sizing: border-box;
}
.tart-myaccount__nav-item:hover,
.woocommerce-MyAccount-navigation-link a:hover {
  background: rgba(44, 36, 32, 0.05);
  color: var(--color-fg, #2c2420);
}
.tart-myaccount__nav-item.is-active,
.woocommerce-MyAccount-navigation-link.is-active a {
  background: var(--color-primary, #c0703a);
  color: #fff;
}
.tart-myaccount__nav-item.is-active svg,
.woocommerce-MyAccount-navigation-link.is-active a svg {
  stroke: #fff;
}

/* Logout link — sits after the nav list with border-top */
.tart-myaccount__nav-logout {
  margin-top: 4px;
  border-top: 1px solid var(--color-border, #ece8e2);
  padding-top: 16px !important;
}

/* Content area */
.tart-myaccount__content {
  min-width: 0;
}

/* WooCommerce injects its own wrapper — inherit the content styling */
.woocommerce-MyAccount-content {
  font-family: var(--font-body, 'Lato', sans-serif);
}
.tart-myaccount__content .woocommerce-MyAccount-content p {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  line-height: 1.7;
  margin: 0 0 12px;
}
.tart-myaccount__content .woocommerce-MyAccount-content p:last-child {
  margin-bottom: 0;
}
.tart-myaccount__content .woocommerce-MyAccount-content p a {
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.tart-myaccount__content .woocommerce-MyAccount-content p a:hover {
  text-decoration: underline;
}

/* ---- Orders table ---- */
.woocommerce-orders-table,
.shop_table.shop_table_responsive {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  overflow: hidden;
}
.woocommerce-orders-table thead,
.shop_table.shop_table_responsive thead {
  background: rgba(44, 36, 32, 0.04);
}
.woocommerce-orders-table th,
.shop_table.shop_table_responsive th {
  padding: 12px 24px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-muted, #9a8f85);
  font-weight: 500;
  text-align: left;
  border-bottom: 1px solid var(--color-border, #ece8e2);
}
.woocommerce-orders-table td,
.shop_table.shop_table_responsive td {
  padding: 16px 24px;
  color: var(--color-fg, #2c2420);
  border-bottom: 1px solid var(--color-border, #ece8e2);
  vertical-align: middle;
}
.woocommerce-orders-table tr:last-child td,
.shop_table.shop_table_responsive tr:last-child td {
  border-bottom: none;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a,
.shop_table .button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: var(--color-primary, #c0703a);
  text-decoration: none;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a:hover,
.shop_table .button:hover {
  text-decoration: underline;
  background: transparent !important;
}

/* Order status badges */
.woocommerce-orders-table .wc-item-meta,
mark.order-status {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 500;
  background: rgba(44, 36, 32, 0.07);
  color: var(--color-fg, #2c2420);
}
mark.order-status.status-completed { background: #d1fae5; color: #065f46; }
mark.order-status.status-processing { background: #fef3c7; color: #92400e; }
mark.order-status.status-on-hold { background: #fef3c7; color: #92400e; }
mark.order-status.status-cancelled { background: #fee2e2; color: #991b1b; }
mark.order-status.status-refunded { background: #f3f4f6; color: #374151; }
mark.order-status.status-failed { background: #fee2e2; color: #991b1b; }
mark.order-status.status-pending { background: #e0e7ff; color: #3730a3; }

/* ---- Account & address forms ---- */
.woocommerce-EditAccountForm,
.edit-account,
.woocommerce-address-fields,
.woocommerce-address-fields__field-wrapper {
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 32px;
  max-width: 680px;
}
.woocommerce-EditAccountForm fieldset {
  border: none;
  padding: 0;
  margin: 24px 0 0;
  border-top: 1px solid var(--color-border, #ece8e2);
  padding-top: 24px;
}
.woocommerce-EditAccountForm fieldset legend {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: 16px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  padding: 0 8px 0 0;
}
.woocommerce-EditAccountForm .form-row,
.woocommerce-address-fields .form-row {
  margin-bottom: 20px;
}
.woocommerce-EditAccountForm label,
.woocommerce-address-fields label {
  display: block;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-muted, #9a8f85);
  margin-bottom: 8px;
}
.woocommerce-EditAccountForm input,
.woocommerce-address-fields input,
.woocommerce-EditAccountForm select,
.woocommerce-address-fields select {
  width: 100%;
  background: var(--color-bg, #faf8f5);
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 14px;
  font-family: var(--font-body, 'Lato', sans-serif);
  color: var(--color-fg, #2c2420);
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
}
.woocommerce-EditAccountForm input:focus,
.woocommerce-address-fields input:focus,
.woocommerce-EditAccountForm select:focus,
.woocommerce-address-fields select:focus {
  border-color: var(--color-primary, #c0703a);
}
.woocommerce-EditAccountForm .woocommerce-Button,
.woocommerce-EditAccountForm [type="submit"],
.woocommerce-address-fields ~ * [type="submit"],
.woocommerce-address-fields [type="submit"] {
  background: var(--color-primary, #c0703a) !important;
  color: #fff !important;
  font-family: var(--font-body, 'Lato', sans-serif) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 12px 24px !important;
  border-radius: 8px !important;
  border: none !important;
  cursor: pointer;
  transition: opacity 0.2s;
  box-shadow: none !important;
}
.woocommerce-EditAccountForm .woocommerce-Button:hover,
.woocommerce-EditAccountForm [type="submit"]:hover,
.woocommerce-address-fields [type="submit"]:hover {
  opacity: 0.9;
}

/* ---- Downloads empty state ---- */
.woocommerce-MyAccount-downloads-title,
.woocommerce-info {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 48px 32px;
  text-align: center;
}
.woocommerce-info::before {
  display: none;
}

/* ---- Addresses page ---- */
.woocommerce-Addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.woocommerce-Address {
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 28px 32px;
}
.woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.woocommerce-Address-title h3 {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: 18px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0;
}
.woocommerce-Address-title .edit {
  font-size: 12px;
  font-family: var(--font-body, 'Lato', sans-serif);
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.woocommerce-Address-title .edit:hover {
  text-decoration: underline;
}
.woocommerce-Address address {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  line-height: 1.7;
  font-style: normal;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
  .tart-myaccount__layout {
    grid-template-columns: 220px 1fr;
    gap: 24px;
  }
}
@media (max-width: 768px) {
  .tart-myaccount__breadcrumb-wrap {
    padding-top: 100px;
  }
  .tart-myaccount__layout {
    grid-template-columns: 1fr;
  }
  .tart-myaccount__sidebar {
    position: static;
  }
  .tart-myaccount__nav {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 4px;
  }
  .tart-myaccount__nav-item,
  .woocommerce-MyAccount-navigation-link a {
    width: auto;
    flex: 1 1 auto;
    justify-content: center;
    padding: 10px 12px;
    font-size: 13px;
  }
  .tart-myaccount__nav-logout {
    width: 100%;
    border-top: 1px solid var(--color-border, #ece8e2);
    margin-top: 4px;
    padding-top: 12px !important;
    justify-content: center;
  }
  .woocommerce-Addresses {
    grid-template-columns: 1fr;
  }
  .woocommerce-EditAccountForm,
  .woocommerce-Address {
    padding: 20px;
  }
  .woocommerce-orders-table th,
  .woocommerce-orders-table td {
    padding: 12px 16px;
  }
}

/* ---- Password reset confirmation card ---- */
.tart-pw-confirm {
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 48px 32px;
  text-align: center;
}
.tart-pw-confirm__icon {
  width: 56px;
  height: 56px;
  background: #dcfce7;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  color: #16a34a;
}
.tart-pw-confirm__title {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: 24px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0 0 12px;
}
.tart-pw-confirm__text {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  line-height: 1.7;
  margin: 0 0 8px;
}
.tart-pw-confirm__back {
  display: inline-block;
  margin-top: 20px;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 13px;
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.tart-pw-confirm__back:hover { text-decoration: underline; }

/* ---- Lost / reset password forms ---- */

/* Self-spacing when rendered outside our custom wrapper
   (e.g. WooCommerce bypasses the my-account.php template).
   The override selectors below remove the margin when inside the wrapper. */
.woocommerce-LostPassword,
.woocommerce-ResetPassword {
  margin-top: 180px !important;
  margin-bottom: 80px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 480px;
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 32px;
  box-sizing: border-box;
}
/* Inside our wrapper the breadcrumb already provides top spacing */
.tart-myaccount__content .woocommerce-LostPassword,
.tart-myaccount__content .woocommerce-ResetPassword,
.tart-pw-wrap .woocommerce-LostPassword,
.tart-pw-wrap .woocommerce-ResetPassword {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100%;
}

.tart-pw-wrap {
  max-width: 480px;
  margin: 0 auto;
}

.woocommerce-LostPassword > p:first-child,
.woocommerce-ResetPassword > p:first-child {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  line-height: 1.7;
  margin: 0 0 24px;
}

/* Force column layout — WC / Hello Elementor can apply flex-row to the form */
.woocommerce-LostPassword,
.woocommerce-ResetPassword {
  display: block !important;
}
.woocommerce-LostPassword > *,
.woocommerce-ResetPassword > * {
  display: block !important;
  float: none !important;
  width: 100% !important;
  clear: both;
  box-sizing: border-box;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Stack rows vertically (WC default floats them 50/50) */
.woocommerce-LostPassword .form-row,
.woocommerce-ResetPassword .form-row {
  float: none !important;
  width: 100% !important;
  clear: both;
  margin: 0 0 20px !important;
  padding: 0 !important;
}

.woocommerce-LostPassword label,
.woocommerce-ResetPassword label {
  display: block;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-muted, #9a8f85);
  margin-bottom: 8px;
  font-weight: 500;
}
.woocommerce-LostPassword input[type="text"],
.woocommerce-LostPassword input[type="email"],
.woocommerce-LostPassword input[type="password"],
.woocommerce-ResetPassword input[type="text"],
.woocommerce-ResetPassword input[type="email"],
.woocommerce-ResetPassword input[type="password"] {
  width: 100%;
  background: var(--color-bg, #faf8f5);
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 8px;
  padding: 11px 16px;
  font-size: 14px;
  font-family: var(--font-body, 'Lato', sans-serif);
  color: var(--color-fg, #2c2420);
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
}
.woocommerce-LostPassword input:focus,
.woocommerce-ResetPassword input:focus {
  border-color: var(--color-primary, #c0703a);
}
.woocommerce-LostPassword [type="submit"],
.woocommerce-ResetPassword [type="submit"] {
  display: block;
  width: 100%;
  background: var(--color-primary, #c0703a) !important;
  color: #fff !important;
  font-family: var(--font-body, 'Lato', sans-serif) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 13px 28px !important;
  border-radius: 8px !important;
  border: none !important;
  cursor: pointer;
  transition: opacity 0.2s;
  box-shadow: none !important;
  text-align: center;
  margin-top: 8px;
}
.woocommerce-LostPassword [type="submit"]:hover,
.woocommerce-ResetPassword [type="submit"]:hover {
  opacity: 0.9;
}
.woocommerce-LostPassword p:last-child a,
.woocommerce-ResetPassword p:last-child a {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 13px;
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.woocommerce-LostPassword p:last-child a:hover,
.woocommerce-ResetPassword p:last-child a:hover {
  text-decoration: underline;
}

/* ============================================================
   DASHBOARD TEMPLATE
   ============================================================ */
.tart-dashboard {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Welcome card */
.tart-dashboard__welcome {
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 32px;
}
.tart-dashboard__hello {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  margin: 0 0 16px;
  line-height: 1.6;
}
.tart-dashboard__hello strong {
  color: var(--color-fg, #2c2420);
  font-weight: 600;
}
.tart-dashboard__not {
  color: var(--color-muted, #9a8f85);
}
.tart-dashboard__not a {
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.tart-dashboard__not a:hover {
  text-decoration: underline;
}
.tart-dashboard__desc {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  margin: 0;
  line-height: 1.7;
}
.tart-dashboard__desc a {
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.tart-dashboard__desc a:hover {
  text-decoration: underline;
}

/* Stat cards */
.tart-dashboard__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: flex-start;
}
.tart-dashboard__stat {
  flex: 0 0 auto;
  width: calc(50% - 8px);
  display: block;
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 24px;
  text-decoration: none;
  transition: border-color 0.2s;
}
.tart-dashboard__stat:hover {
  border-color: rgba(192, 112, 58, 0.4);
}
.tart-dashboard__stat-label {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted, #9a8f85);
  margin: 0;
}
.tart-dashboard__stat-value {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: 36px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 8px 0 12px;
  line-height: 1;
}
.tart-dashboard__stat-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 12px;
  color: var(--color-primary, #c0703a);
  margin: 0;
  transition: gap 0.2s;
}
.tart-dashboard__stat:hover .tart-dashboard__stat-link {
  gap: 8px;
}

@media (max-width: 768px) {
  .tart-dashboard__stats {
    grid-template-columns: 1fr;
  }
  .tart-dashboard__welcome {
    padding: 20px;
  }
}

/* ============================================================
   ORDERS TEMPLATE
   ============================================================ */
.tart-orders {
  display: block !important;
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  overflow: hidden;
  width: 100%;
  box-sizing: border-box;
}
.tart-orders__head {
  display: block;
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-border, #ece8e2);
}
.tart-orders__title {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: 22px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0;
}
.tart-orders__table-wrap {
  display: block;
  overflow-x: auto;
  width: 100%;
}
.tart-orders__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  table-layout: auto;
}
/* thead — white, no background */
.tart-orders__table thead,
.tart-orders__table thead tr,
.tart-orders__table thead th {
  background: transparent !important;
}
.tart-orders__table th {
  padding: 14px 24px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-muted, #9a8f85);
  font-weight: 500;
  text-align: left;
  border-top: none;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid var(--color-border, #ece8e2);
  white-space: nowrap;
}
.tart-orders__th-right {
  text-align: right !important;
}
/* Row dividers only — no cell borders */
.tart-orders__table tbody tr {
  background: #fff !important;
  border-bottom: 1px solid var(--color-border, #ece8e2);
}
.tart-orders__table tbody tr:last-child {
  border-bottom: none;
}
.tart-orders__table td {
  padding: 20px 24px;
  vertical-align: middle;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  background: transparent !important;
}
.tart-orders__td-number {
  font-weight: 600;
  color: var(--color-fg, #2c2420);
}
.tart-orders__td-date {
  color: var(--color-muted, #9a8f85);
  white-space: nowrap;
}
.tart-orders__td-total {
  color: var(--color-fg, #2c2420);
  white-space: nowrap;
}
.tart-orders__td-items {
  font-size: 12px;
  color: var(--color-muted, #9a8f85);
  margin-left: 4px;
}
.tart-orders__td-actions {
  text-align: right;
}

/* Status badges */
.tart-orders__status {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  background: rgba(44, 36, 32, 0.07);
  color: var(--color-fg, #2c2420);
}
.tart-orders__status--completed   { background: #d1fae5; color: #065f46; }
.tart-orders__status--processing  { background: #fef3c7; color: #92400e; }
.tart-orders__status--on-hold     { background: #fef3c7; color: #92400e; }
.tart-orders__status--cancelled   { background: #fee2e2; color: #991b1b; }
.tart-orders__status--refunded    { background: #f3f4f6; color: #374151; }
.tart-orders__status--failed      { background: #fee2e2; color: #991b1b; }
.tart-orders__status--pending     { background: #e0e7ff; color: #3730a3; }

/* View button */
.tart-orders__view-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-primary, #c0703a);
  text-decoration: none;
  font-family: var(--font-body, 'Lato', sans-serif);
}
.tart-orders__view-btn:hover {
  text-decoration: underline;
}

/* Pagination */
.tart-orders__pagination {
  padding: 16px 24px;
  border-top: 1px solid var(--color-border, #ece8e2);
  display: flex;
  gap: 12px;
}
.tart-orders__page-btn {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 13px;
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.tart-orders__page-btn:hover { text-decoration: underline; }

/* Empty state */
.tart-orders__empty {
  padding: 64px 32px;
  text-align: center;
  color: var(--color-muted, #9a8f85);
}
.tart-orders__empty svg {
  stroke: var(--color-muted, #9a8f85);
  margin-bottom: 16px;
}
.tart-orders__empty-title {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: 20px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0 0 8px;
}
.tart-orders__empty-desc {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  margin: 0 0 20px;
}
.tart-orders__shop-btn {
  display: inline-block;
  background: var(--color-primary, #c0703a);
  color: #fff;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  font-weight: 500;
  padding: 10px 24px;
  border-radius: 8px;
  text-decoration: none;
}
.tart-orders__shop-btn:hover { opacity: 0.9; }

@media (max-width: 768px) {
  .tart-orders__table th,
  .tart-orders__table td {
    padding: 12px 16px;
  }
}

/* ============================================================
   CHECKOUT — LOGIN FORM
   ============================================================ */

/* Toggle link */
.tart-checkout-login {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 32px;
  width: 100%;
}
.tart-checkout-login__toggle {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  margin: 0 0 20px;
}
.tart-checkout-login__toggle-link {
  color: var(--color-primary, #c0703a);
  font-weight: 600;
  text-decoration: none;
}
.tart-checkout-login__toggle-link:hover {
  text-decoration: underline;
}

/* Panel card */
.tart-checkout-login__panel {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 12px;
  padding: 32px;
}
.tart-checkout-login__desc {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-fg, #2c2420);
  margin: 0 0 28px;
  line-height: 1.7;
}

/* Two-column fields */
.tart-checkout-login__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 20px;
}
.tart-checkout-login__field-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tart-checkout-login__label {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-muted, #9a8f85);
}
.tart-checkout-login__input {
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
  color: var(--color-fg, #2c2420);
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--color-border, #ece8e2);
  border-radius: 0;
  padding: 10px 0;
  outline: none;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
.tart-checkout-login__input:focus {
  border-bottom-color: var(--color-primary, #c0703a);
  box-shadow: none;
}

/* Password field with toggle */
.tart-checkout-login__pw-wrap {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}
.tart-checkout-login__pw-wrap .tart-checkout-login__input {
  flex: 1;
  min-width: 0;
  padding-right: 36px;
}
.tart-checkout-login__pw-toggle {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--color-muted, #9a8f85);
  display: flex;
  align-items: center;
}
.tart-checkout-login__pw-toggle:hover {
  color: var(--color-fg, #2c2420);
}

/* Remember me */
.tart-checkout-login__remember {
  margin-bottom: 20px;
}
.tart-checkout-login__remember-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-muted, #9a8f85);
  cursor: pointer;
}
.tart-checkout-login__checkbox {
  width: 16px;
  height: 16px;
  accent-color: var(--color-primary, #c0703a);
  flex-shrink: 0;
}

/* Submit */
.tart-checkout-login__submit {
  display: block;
  width: 100%;
  background: var(--color-primary, #c0703a) !important;
  color: #fff !important;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 15px;
  font-weight: 600;
  padding: 14px 24px;
  border: none !important;
  border-radius: 8px;
  cursor: pointer;
  transition: opacity 0.2s;
  text-align: center;
  box-shadow: none !important;
  margin-bottom: 16px;
}
.tart-checkout-login__submit:hover {
  opacity: 0.9;
  background: var(--color-primary, #c0703a) !important;
  color: #fff !important;
}

/* Forgot password */
.tart-checkout-login__lost-pw {
  margin: 0;
  font-family: var(--font-body, 'Lato', sans-serif);
  font-size: 14px;
}
.tart-checkout-login__lost-pw a {
  color: var(--color-primary, #c0703a);
  text-decoration: none;
}
.tart-checkout-login__lost-pw a:hover {
  text-decoration: underline;
}

@media (max-width: 768px) {
  .tart-checkout-login__fields {
    grid-template-columns: 1fr;
  }
  .tart-checkout-login__panel {
    padding: 20px;
  }
}

/* =========================================================
   TART ORDER DETAIL — view-order.php
   ========================================================= */

/* Login wrap on my-account for guests */
.tart-myaccount__login-wrap {
  max-width: 560px;
}

/* Container */
.tart-order-detail {
  display: flex !important;
  flex-direction: column !important;
  width: 100%;
  box-sizing: border-box;
  padding-bottom: 80px;
  /* Neutralise any parent flex/grid that might push children sideways */
  align-items: stretch;
}

/* Topbar (back link) */
.tart-order-detail__topbar {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 24px;
  flex-shrink: 0;
}

.tart-order-detail__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted, #888);
  text-decoration: none;
  transition: color 0.2s;
}
.tart-order-detail__back:hover {
  color: var(--color-fg, #111);
}

/* Header row */
.tart-order-detail__header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 40px;
  width: 100%;
  box-sizing: border-box;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .tart-order-detail__header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.tart-order-detail__number {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 11px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-muted, #888);
  margin: 0 0 8px;
}

.tart-order-detail__title {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 30px;
  font-weight: 300;
  color: var(--color-fg, #111);
  margin: 0;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .tart-order-detail__title {
    font-size: 36px;
  }
}

/* Status badge */
.tart-order-detail__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  font-weight: 500;
  border: 1px solid transparent;
  white-space: nowrap;
  align-self: flex-start;
}
.tart-order-detail__status--completed  { background: #d1fae5; color: #065f46; border-color: #a7f3d0; }
.tart-order-detail__status--processing { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.tart-order-detail__status--on-hold    { background: #e0f2fe; color: #075985; border-color: #bae6fd; }
.tart-order-detail__status--cancelled  { background: #ffe4e6; color: #9f1239; border-color: #fecdd3; }
.tart-order-detail__status--refunded   { background: #f3e8ff; color: #6b21a8; border-color: #e9d5ff; }
.tart-order-detail__status--pending    { background: #f3f4f6; color: #374151; border-color: #e5e7eb; }

/* 2-column layout */
.tart-order-detail__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 1024px) {
  .tart-order-detail__layout {
    grid-template-columns: 1fr 360px;
    align-items: start;
  }
}

/* Main column */
.tart-order-detail__main {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Card */
.tart-order-detail__card {
  background: var(--color-card, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 12px;
  padding: 24px;
}
@media (min-width: 768px) {
  .tart-order-detail__card {
    padding: 32px;
  }
}
.tart-order-detail__card--flush {
  padding: 0;
  overflow: hidden;
}

.tart-order-detail__card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 18px;
  font-weight: 300;
  color: var(--color-fg, #111);
  margin: 0 0 24px;
}
.tart-order-detail__card-title svg {
  color: var(--color-primary, #c0703a);
  flex-shrink: 0;
}

/* Timeline */
.tart-order-detail__timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 24px;
  position: relative;
}
.tart-order-detail__timeline::before {
  content: '';
  position: absolute;
  left: 7px;
  top: 6px;
  bottom: 6px;
  width: 1px;
  background: var(--color-border, #e5e7eb);
}

.tart-order-detail__timeline-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}
.tart-order-detail__timeline-item:last-child {
  margin-bottom: 0;
}

.tart-order-detail__timeline-dot {
  position: absolute;
  left: -24px;
  top: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid var(--color-border, #e5e7eb);
  background: var(--color-card, #fff);
  flex-shrink: 0;
}
.tart-order-detail__timeline-dot.is-done {
  background: var(--color-primary, #c0703a);
  border-color: var(--color-primary, #c0703a);
}

.tart-order-detail__timeline-label {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-fg, #111);
  margin: 0;
}
.tart-order-detail__timeline-date {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #888);
  margin: 2px 0 0;
}

/* Items card header */
.tart-order-detail__items-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}
@media (min-width: 768px) {
  .tart-order-detail__items-head {
    padding: 20px 32px;
  }
}

.tart-order-detail__reorder {
  display: none;
}
@media (min-width: 768px) {
  .tart-order-detail__reorder {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--color-primary, #c0703a);
    color: #fff;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: 12px;
    font-weight: 500;
    padding: 8px 16px;
    border-radius: 8px;
    text-decoration: none;
    transition: opacity 0.2s;
  }
  .tart-order-detail__reorder:hover {
    opacity: 0.9;
    color: #fff;
  }
}

/* Items list */
.tart-order-detail__items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tart-order-detail__item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.tart-order-detail__item:last-child {
  border-bottom: none;
}
@media (min-width: 768px) {
  .tart-order-detail__item {
    padding: 24px 32px;
  }
}

.tart-order-detail__item-img-wrap {
  flex-shrink: 0;
}
.tart-order-detail__item-img {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  object-fit: cover;
  border: 1px solid var(--color-border, #e5e7eb);
  display: block;
}

.tart-order-detail__item-info {
  flex: 1;
  min-width: 0;
}
.tart-order-detail__item-name {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 16px;
  font-weight: 300;
  color: var(--color-fg, #111);
  margin: 0 0 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tart-order-detail__item-meta {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #888);
  margin: 2px 0;
}
.tart-order-detail__item-meta dl,
.tart-order-detail__item-meta dt,
.tart-order-detail__item-meta dd {
  display: inline;
  margin: 0;
  padding: 0;
}
.tart-order-detail__item-qty {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #888);
  margin: 4px 0 0;
}
.tart-order-detail__item-qty span {
  color: var(--color-fg, #111);
  font-variant-numeric: tabular-nums;
}

.tart-order-detail__item-price {
  text-align: right;
  flex-shrink: 0;
}
.tart-order-detail__item-total {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-fg, #111);
  font-variant-numeric: tabular-nums;
  margin: 0;
}
.tart-order-detail__item-unit {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #888);
  font-variant-numeric: tabular-nums;
  margin: 4px 0 0;
}

/* Address + payment 2-col */
.tart-order-detail__meta-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 640px) {
  .tart-order-detail__meta-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.tart-order-detail__meta-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-muted, #888);
  margin: 0 0 16px;
}

.tart-order-detail__address {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  color: var(--color-fg, #111);
  line-height: 1.7;
  font-style: normal;
  margin: 0;
}
.tart-order-detail__address-phone {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #888);
  margin: 12px 0 0;
}

.tart-order-detail__payment-list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
}
.tart-order-detail__payment-list > div {
  display: flex;
  justify-content: space-between;
}
.tart-order-detail__payment-list dt {
  color: var(--color-muted, #888);
}
.tart-order-detail__payment-list dd {
  color: var(--color-fg, #111);
  margin: 0;
}

/* Sidebar */
.tart-order-detail__sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (min-width: 1024px) {
  .tart-order-detail__sidebar {
    position: sticky;
    top: 112px;
  }
}

.tart-order-detail__summary {
  background: var(--color-card, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 12px;
  padding: 24px;
}

.tart-order-detail__summary-title {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 18px;
  font-weight: 300;
  color: var(--color-fg, #111);
  margin: 0 0 20px;
}

.tart-order-detail__summary-list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
}
.tart-order-detail__summary-list > div {
  display: flex;
  justify-content: space-between;
}
.tart-order-detail__summary-list dt {
  color: var(--color-muted, #888);
}
.tart-order-detail__summary-list dd {
  color: var(--color-fg, #111);
  font-variant-numeric: tabular-nums;
  margin: 0;
}
.tart-order-detail__summary-total {
  border-top: 1px solid var(--color-border, #e5e7eb);
  padding-top: 12px;
  font-size: 16px;
}
.tart-order-detail__summary-total dt,
.tart-order-detail__summary-total dd {
  color: var(--color-fg, #111);
  font-weight: 500;
}
.tart-order-detail__summary-total dd {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 18px;
}

.tart-order-detail__reorder-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 24px;
  background: var(--color-primary, #c0703a);
  color: #fff;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  font-weight: 500;
  padding: 12px 16px;
  border-radius: 8px;
  text-decoration: none;
  text-align: center;
  transition: opacity 0.2s;
  box-sizing: border-box;
}
.tart-order-detail__reorder-btn:hover {
  opacity: 0.9;
  color: #fff;
}

.tart-order-detail__summary-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}
.tart-order-detail__action-btn--full {
  width: 100%;
  justify-content: center;
}

.tart-order-detail__action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid var(--color-border, #e5e7eb);
  color: var(--color-fg, #111);
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  font-weight: 500;
  padding: 10px 12px;
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.2s;
}
.tart-order-detail__action-btn:hover {
  background: var(--color-secondary, #f9f5f1);
  color: var(--color-fg, #111);
}

/* =========================================================
   TART LOGIN — myaccount/form-login.php
   ========================================================= */

.tart-login {
  max-width: 900px;
  margin: 0 auto;
  padding: 64px 24px 80px;
  background: transparent;
}

/* Heading */
.tart-login__head {
  text-align: center;
  margin-bottom: 40px;
}
.tart-login__title {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(28px, 5vw, 40px);
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0 0 10px;
}
.tart-login__subtitle {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  margin: 0;
}

/* Tabs */
.tart-login__tabs {
  display: flex;
  justify-content: center;
  margin-bottom: 40px;
  background: var(--color-card, #fff);
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 999px;
  padding: 3px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
.tart-login__tab {
  padding: 6px 14px;
  border-radius: 999px;
  border: none;
  background: transparent;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: var(--color-muted, #9a8f85);
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  line-height: 1;
}
.tart-login__tab.is-active {
  background: var(--color-primary, #B65A39);
  color: #fff;
  border-radius: 999px;
}
.tart-login__tab.is-active:hover {
  background: var(--color-primary, #B65A39);
  color: #fff;
}
.tart-login__tab:not(.is-active):hover {
  background: rgba(182, 90, 57, 0.07);
  color: var(--color-fg, #2c2420);
}

/* Grid */
.tart-login__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 900px) {
  .tart-login__grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Form card */
.tart-login__card {
  background: var(--color-card, #fff);
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 20px;
  padding: 36px 40px;
}
@media (max-width: 600px) {
  .tart-login__card { padding: 28px 24px; }
}

.tart-login__form-title {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 24px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0 0 6px;
}
.tart-login__form-sub {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  margin: 0 0 28px;
}

/* Form */
.tart-login__form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* Field */
.tart-login__field {
  display: block;
}
.tart-login__label {
  display: block;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-muted, #9a8f85);
  margin-bottom: 8px;
}
/* Icon + input as inline flex row — avoids absolute-positioning fights with WC CSS */
.tart-login__input-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--color-input-border, rgba(52, 36, 25, 0.18));
  transition: border-color 0.2s;
}
.tart-login__input-wrap:focus-within {
  border-bottom-color: var(--color-primary, #B65A39);
}
.tart-login__input-icon {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--color-muted, #9a8f85);
  pointer-events: none;
  display: block;
}
.tart-login__input {
  flex: 1;
  min-width: 0;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 12px 0 !important;
  margin: 0 !important;
  font-family: var(--font-body, 'DM Sans', sans-serif) !important;
  font-size: 14px !important;
  color: var(--color-fg, #2c2420) !important;
  outline: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  width: auto !important;
}
.tart-login__input::placeholder {
  color: rgba(154, 143, 133, 0.6);
}
.tart-login__eye {
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--color-muted, #9a8f85);
  display: flex;
  align-items: center;
  transition: color 0.2s;
}
.tart-login__eye:hover { color: var(--color-fg, #2c2420); }

/* Remember + lost password row */
.tart-login__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.tart-login__remember {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  color: var(--color-muted, #9a8f85);
  cursor: pointer;
}
.tart-login__remember input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-primary, #B65A39);
  flex-shrink: 0;
  cursor: pointer;
}
.tart-login__forgot {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  color: var(--color-primary, #B65A39);
  text-decoration: none;
  white-space: nowrap;
}
.tart-login__forgot:hover { text-decoration: underline; }

/* Newsletter checkbox */
.tart-login__newsletter {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  color: var(--color-fg, #2c2420);
  cursor: pointer;
  line-height: 1.5;
}
.tart-login__newsletter input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-primary, #B65A39);
  flex-shrink: 0;
  margin-top: 2px;
  cursor: pointer;
}

/* Auto-password notice */
.tart-login__auto-pw {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  color: var(--color-muted, #9a8f85);
  margin: 0;
  padding: 12px 16px;
  background: var(--color-bg, #faf8f5);
  border-radius: 8px;
}

/* Privacy */
.tart-login__privacy {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #9a8f85);
  line-height: 1.6;
  margin: 0;
}
.tart-login__privacy a {
  color: var(--color-primary, #B65A39);
  text-decoration: none;
}
.tart-login__privacy a:hover { text-decoration: underline; }

/* Submit — matches site-wide button style */
.tart-login__submit {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  background: var(--color-primary, #B65A39) !important;
  color: #fff !important;
  font-family: var(--font-body, 'DM Sans', sans-serif) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 14px 36px !important;
  border: 1.5px solid transparent !important;
  border-radius: 100px !important;
  cursor: pointer !important;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
  text-align: center !important;
  box-shadow: none !important;
  line-height: 1 !important;
}
.tart-login__submit:hover {
  background: transparent !important;
  color: var(--color-primary, #B65A39) !important;
  border-color: var(--color-primary, #B65A39) !important;
}

/* Switch link */
.tart-login__switch {
  text-align: center;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #9a8f85);
  margin: 0;
  padding-top: 4px;
}
.tart-login__switch-btn {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0;
  font-family: inherit;
  font-size: inherit;
  color: var(--color-primary, #B65A39);
  cursor: pointer;
  text-decoration: none;
}
.tart-login__switch-btn:hover {
  background: none !important;
  box-shadow: none !important;
  text-decoration: underline;
  color: var(--color-primary, #B65A39);
}

/* Benefits panel */
.tart-login__benefits {
  background: var(--color-cream, hsl(33, 38%, 89%));
  border: 1px solid var(--color-border, #ece8e2);
  border-radius: 20px;
  padding: 36px 40px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 600px) {
  .tart-login__benefits { padding: 28px 24px; }
}
@media (max-width: 899px) {
  .tart-login__benefits { display: none; }
}

.tart-login__benefits-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(182, 90, 57, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary, #B65A39);
  margin-bottom: 24px;
  flex-shrink: 0;
}
.tart-login__benefits-title {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 24px;
  font-weight: 300;
  color: var(--color-fg, #2c2420);
  margin: 0 0 12px;
}
.tart-login__benefits-desc {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  color: var(--color-muted, #9a8f85);
  line-height: 1.7;
  margin: 0 0 28px;
}
.tart-login__benefits-list {
  list-style: none;
  margin: 0 0 auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tart-login__benefits-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  color: var(--color-fg, #2c2420);
  line-height: 1.5;
}
.tart-login__benefits-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-primary, #B65A39);
  flex-shrink: 0;
  margin-top: 8px;
}
.tart-login__benefits-footer {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  color: var(--color-muted, #9a8f85);
  padding-top: 24px;
  margin-top: 32px;
  border-top: 1px solid var(--color-border, #ece8e2);
}
.tart-login__benefits-footer a {
  color: var(--color-primary, #B65A39);
  text-decoration: none;
}
.tart-login__benefits-footer a:hover { text-decoration: underline; }

/* WooCommerce notices within login wrapper */
.tart-login .woocommerce-error,
.tart-login .woocommerce-message,
.tart-login .woocommerce-info {
  margin-bottom: 20px;
  border-radius: 10px;
}
