/* =========================================================================
   't Trostomaatje Maasbree – huisstijl (nieuwe website 2026)
   Kleuren: tomaatrood #D8291F · bladgroen #3E7A2E · geel #F2C331
   Crème #FDF8EE · zand #F2EBDB · inkt #26221B · tekstgrijs #5F594D
   ========================================================================= */
:root {
  --tt-red: #D8291F; --tt-red-dark: #A81E16; --tt-red-soft: #FBE9E7; --tt-red-ink: #B4231A;
  --tt-green: #3E7A2E; --tt-green-dark: #2F5E22; --tt-green-soft: #EDF4E8; --tt-green-tint: #E8F1E3;
  --tt-yellow: #F2C331; --tt-yellow-soft: #FBF3D6; --tt-gold: #8A6A0E; --tt-gold-2: #C9931A; --tt-gold-3: #B4870E;
  --tt-cream: #FDF8EE; --tt-sand: #F2EBDB; --tt-canvas: #EBE5D8; --tt-line: #E4DCC9;
  --tt-ink: #26221B; --tt-text: #5F594D; --tt-muted: #8B8577; --tt-white: #fff;
  --tt-xmas: #1E3F2A;
  --tt-font-display: 'Bricolage Grotesque', 'Instrument Sans', sans-serif;
  --tt-font-body: 'Instrument Sans', sans-serif;
  --tt-font-hand: 'Caveat', cursive;
  --tt-shadow-sm: 0 3px 12px rgba(38,34,27,.07);
  --tt-shadow-md: 0 4px 16px rgba(38,34,27,.09);
  --tt-shadow-lg: 0 14px 34px rgba(38,34,27,.14);
  --tt-shadow-xl: 0 10px 30px rgba(38,34,27,.12);
  --tt-shadow-red: 0 6px 16px rgba(216,41,31,.3);
  --tt-radius-sm: 16px; --tt-radius: 18px; --tt-radius-lg: 24px;
  --tt-gutter: 56px;
}
@media (max-width: 1024px) { :root { --tt-gutter: 32px; } }
@media (max-width: 767px)  { :root { --tt-gutter: 20px; } }

/* ---- Basis ------------------------------------------------------------ */
body.tt-site { background: var(--tt-cream); color: var(--tt-ink); font-family: var(--tt-font-body); -webkit-font-smoothing: antialiased; }
body.tt-site #main-container { background: var(--tt-cream); }
body.tt-site h1, body.tt-site h2, body.tt-site h3, body.tt-site h4, body.tt-site h5, body.tt-site h6,
body.tt-site .elementor-heading-title { font-family: var(--tt-font-display); font-weight: 800; letter-spacing: -.01em; line-height: 1.08; color: var(--tt-ink); }
body.tt-site a { color: var(--tt-red); text-decoration: none; transition: color .15s ease; }
body.tt-site a:hover { color: var(--tt-red-dark); }
body.tt-site p { line-height: 1.6; }
body.tt-site .elementor-widget-text-editor { color: var(--tt-text); font-size: 16px; line-height: 1.65; }
body.tt-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body.tt-site .elementor-widget-text-editor b, body.tt-site .elementor-widget-text-editor strong { color: var(--tt-ink); font-weight: 700; }
body.tt-site .elementor-widget-heading > .elementor-heading-title { margin: 0; }
.tt-site .elementor-element.e-con { --margin-top: 0; }
.tt-site .e-con, .tt-site .e-con-inner { box-sizing: border-box; }
.tt-site .elementor-widget:not(:last-child) { margin-block-end: 0; }
.tt-site img { max-width: 100%; height: auto; }
.tt-site main { padding: 0; }
.tt-site .ct-container, .tt-site .ct-container-fluid { max-width: none; padding: 0; }
.tt-site .ct-container[data-vertical-spacing] { --has-vertical-spacing: 0; }
.tt-site article.post, .tt-site .entry-content, .tt-site .hentry { margin: 0; padding: 0; }
.tt-site .entry-content > .elementor { width: 100%; }

/* Breedte en gutter: elke top-container is 'boxed' op 1360px met gutter-padding (gezet in Elementor) */
.tt-section { padding-left: var(--tt-gutter) !important; padding-right: var(--tt-gutter) !important; }

/* ---- Typografie-helpers ---------------------------------------------- */
.tt-h1 .elementor-heading-title, .tt-h1 { font-size: 52px; line-height: 1.05; }
.tt-h1-lg .elementor-heading-title { font-size: 82px; line-height: .98; letter-spacing: -.02em; }
.tt-h2 .elementor-heading-title, .tt-h2 { font-size: 40px; line-height: 1.08; }
.tt-h2-lg .elementor-heading-title { font-size: 52px; }
.tt-h2-xl .elementor-heading-title { font-size: 72px; line-height: 1; letter-spacing: -.02em; }
.tt-h3 .elementor-heading-title { font-size: 30px; }
.tt-h3-sm .elementor-heading-title { font-size: 24px; }
.tt-h4 .elementor-heading-title { font-size: 20px; line-height: 1.25; }
.tt-h4-sm .elementor-heading-title { font-size: 18px; line-height: 1.25; }
.tt-h-white .elementor-heading-title { color: #fff; }
.tt-h-red .elementor-heading-title { color: var(--tt-red); }
.tt-h-green .elementor-heading-title { color: var(--tt-green); }
.tt-h-inline .elementor-heading-title .tt-red { color: var(--tt-red); }
.tt-h-mark .elementor-heading-title .tt-mark { display: inline-block; background: var(--tt-red); color: #fff; padding: 0 16px 4px; border-radius: 10px; transform: rotate(-1.5deg); text-shadow: none; }
.tt-lead { font-size: 17px; line-height: 1.65; color: var(--tt-text); }
.tt-lead-lg { font-size: 19px; line-height: 1.6; }
.tt-text-sm { font-size: 14px; line-height: 1.55; }
.tt-text-xs { font-size: 13.5px; line-height: 1.5; color: var(--tt-muted); }
.tt-text-white, .tt-text-white p { color: #fff; }
.tt-text-red-tint, .tt-text-red-tint p { color: #FBE3E1 !important; }
.tt-text-green-tint, .tt-text-green-tint p { color: #E8F1E3 !important; }
.tt-text-xmas-tint, .tt-text-xmas-tint p { color: #CFE0D0 !important; }
.tt-text-footer, .tt-text-footer p { color: #B8B1A2 !important; }
.tt-text-ink, .tt-text-ink p { color: var(--tt-ink) !important; }
.tt-text-muted, .tt-text-muted p { color: var(--tt-muted) !important; }
.tt-bold { font-weight: 700; color: var(--tt-ink); font-size: 17px; }
.tt-strong-ink b, .tt-strong-ink strong { color: var(--tt-ink); }
.tt-strong-white b, .tt-strong-white strong { color: #fff; }
.tt-center { text-align: center; }
.tt-caps { text-transform: uppercase; letter-spacing: .06em; }

/* Handgeschreven accenten (Caveat) */
.tt-hand, .tt-hand .elementor-heading-title, .tt-hand {
  font-family: var(--tt-font-hand) !important; font-weight: 700 !important; letter-spacing: 0 !important; line-height: 1.15 !important; color: var(--tt-red);
}
.tt-hand .elementor-heading-title { display: inline-block; font-size: 29px; transform: rotate(-2deg); transform-origin: left bottom; }
.tt-hand { display: inline-block; font-size: 29px; }
.elementor-widget.tt-hand { display: block; }
.elementor-widget.tt-hand { display: block; }
.tt-hand--xs .elementor-heading-title { font-size: 18px; }
.tt-hand--sm .elementor-heading-title { font-size: 22px; }
.tt-hand--24 .elementor-heading-title { font-size: 24px; }
.tt-hand--26 .elementor-heading-title { font-size: 26px; }
.tt-hand--28 .elementor-heading-title { font-size: 28px; }
.tt-hand--md .elementor-heading-title { font-size: 30px; }
.tt-hand--lg .elementor-heading-title { font-size: 34px; }
.tt-hand--36 .elementor-heading-title { font-size: 36px; }
.tt-hand--xl .elementor-heading-title { font-size: 44px; line-height: 1 !important; }
.tt-hand--red .elementor-heading-title, .tt-hand--red { color: var(--tt-red) !important; }
.tt-hand--green .elementor-heading-title, .tt-hand--green { color: var(--tt-green) !important; }
.tt-hand--yellow .elementor-heading-title, .tt-hand--yellow { color: var(--tt-yellow) !important; }
.tt-hand--gold .elementor-heading-title, .tt-hand--gold { color: var(--tt-gold-2) !important; }
.tt-hand--gold3 .elementor-heading-title { color: var(--tt-gold-3) !important; }
.tt-hand--ink .elementor-heading-title, .tt-hand--ink { color: var(--tt-ink) !important; }
.tt-hand--white .elementor-heading-title { color: #fff !important; }
.tt-rot-0 .elementor-heading-title { transform: none; }
.tt-rot-m1 .elementor-heading-title { transform: rotate(-1deg); }
.tt-rot-m15 .elementor-heading-title { transform: rotate(-1.5deg); }
.tt-rot-m3 .elementor-heading-title { transform: rotate(-3deg); }
.tt-rot-m4 .elementor-heading-title { transform: rotate(-4deg); }

/* Badges / labels */
.tt-badge .elementor-heading-title, .tt-badge {
  display: inline-block; background: var(--tt-yellow); color: var(--tt-ink); font-family: var(--tt-font-body) !important;
  font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 6px 14px; border-radius: 999px; line-height: 1.3;
}
.elementor-widget.tt-badge { display: block; }
.tt-badge--green .elementor-heading-title { background: var(--tt-green); color: #fff; }
.tt-badge--dark .elementor-heading-title { background: var(--tt-ink); color: #fff; }
.tt-badge--red-soft .elementor-heading-title { background: var(--tt-red-soft); color: var(--tt-red-ink); }
.tt-badge--green-soft .elementor-heading-title { background: var(--tt-green-tint); color: var(--tt-green); }
.tt-badge--gold-soft .elementor-heading-title { background: var(--tt-yellow-soft); color: var(--tt-gold); }
.tt-badge--rot .elementor-heading-title { transform: rotate(-2deg); }

/* Gele opmerking-pil */
.tt-note .elementor-heading-title, .tt-note {
  display: inline-block; background: var(--tt-yellow); color: var(--tt-ink); font-family: var(--tt-font-body) !important; letter-spacing: 0;
  font-size: 14.5px; font-weight: 700; padding: 11px 20px; border-radius: 999px; transform: rotate(-.5deg); line-height: 1.3;
}
.elementor-widget.tt-note { display: block; }
.tt-note--xmas .elementor-heading-title { color: var(--tt-xmas); transform: none; }
.tt-note--ghost .elementor-heading-title { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(242,195,49,.6); transform: none; }
.tt-note--sm .elementor-heading-title { font-size: 14px; padding: 9px 16px; transform: none; }

/* Prijs-pil (groen) */
.tt-price-pill .elementor-heading-title, .tt-price-pill { display: inline-block; white-space: nowrap; font-family: var(--tt-font-body) !important; font-weight: 800; font-size: 14.5px; color: var(--tt-green); background: var(--tt-green-soft); padding: 6px 12px; border-radius: 999px; letter-spacing: 0; }
.elementor-widget.tt-price-pill { display: block; }
.tt-price .elementor-heading-title { font-family: var(--tt-font-hand) !important; font-weight: 700; color: var(--tt-red); font-size: 26px; letter-spacing: 0; }

/* ---- Knoppen ----------------------------------------------------------- */
.tt-site .elementor-button, a.tt-btn {
  font-family: var(--tt-font-body); font-weight: 800; font-size: 15.5px; line-height: 1.2; border-radius: 999px;
  background: var(--tt-red); color: #fff; padding: 14px 26px; box-shadow: var(--tt-shadow-red); border: 0; transition: background .15s ease, color .15s ease, box-shadow .15s ease; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none;
}
.tt-site .elementor-button:hover, a.tt-btn:hover { background: var(--tt-red-dark); color: #fff; }
.tt-site .elementor-button-text { font-weight: inherit; }
.tt-btn--lg .elementor-button, .tt-btn--lg { font-size: 17.5px; padding: 17px 32px; }
.tt-btn--outline .elementor-button, .tt-btn--outline { background: transparent; color: var(--tt-green); box-shadow: inset 0 0 0 2.5px var(--tt-green); padding: 12px 24px; font-weight: 700; }
.tt-btn--outline .elementor-button:hover, .tt-btn--outline:hover { background: var(--tt-green); color: #fff; }
.tt-btn--outline.tt-btn--lg .elementor-button { padding: 15px 30px; }
.tt-btn--white .elementor-button, .tt-btn--white { background: #fff; color: var(--tt-red); box-shadow: none; font-weight: 700; }
.tt-btn--white .elementor-button:hover, .tt-btn--white:hover { background: var(--tt-sand); color: var(--tt-red-dark); }
.tt-btn--white-green .elementor-button { background: #fff; color: var(--tt-green); box-shadow: none; font-weight: 700; }
.tt-btn--white-green .elementor-button:hover { background: var(--tt-green-soft); color: var(--tt-green-dark); }
.tt-btn--light .elementor-button { background: rgba(253,248,238,.94); color: var(--tt-ink); box-shadow: none; font-weight: 700; }
.tt-btn--light .elementor-button:hover { background: #fff; color: var(--tt-ink); }
.tt-btn--hero .elementor-button { box-shadow: 0 6px 16px rgba(0,0,0,.35); }
.tt-btn--sm .elementor-button { font-size: 14.5px; padding: 11px 22px; }
.tt-btn--wide .elementor-button { width: 100%; }
.tt-btn--xmas .elementor-button { color: var(--tt-xmas); }
/* Tekstlink met streep */
.tt-link .elementor-button, .tt-link { background: none !important; box-shadow: none !important; padding: 0 0 3px !important; border-radius: 0 !important; color: var(--tt-ink) !important; border-bottom: 2.5px solid var(--tt-red); font-weight: 700; font-size: 16px; }
.tt-link .elementor-button:hover { color: var(--tt-red) !important; }
.tt-link--white .elementor-button, .tt-link--white { color: #fff !important; font-size: 14.5px; border-bottom-width: 2px; }
.tt-link--red .elementor-button, .tt-link--red { color: var(--tt-red) !important; border-bottom: 0; padding: 0 !important; font-size: 14.5px; }
.tt-link--red-white .elementor-button { color: #fff !important; border-bottom: 0; padding: 0 !important; font-size: 15.5px; }
.tt-link--muted .elementor-button, .tt-link--muted { color: var(--tt-muted) !important; border-bottom: 0; padding: 0 !important; font-size: 14.5px; font-weight: 600; }
.tt-link--muted .elementor-button:hover { color: var(--tt-red) !important; }
.tt-site .elementor-widget-button .elementor-button-wrapper { display: inline-block; }

/* ---- Kaarten ------------------------------------------------------------ */
.tt-card { background: #fff; border-radius: var(--tt-radius); box-shadow: var(--tt-shadow-md); }
.tt-card--sm { border-radius: var(--tt-radius-sm); box-shadow: var(--tt-shadow-sm); }
.tt-card--lg { border-radius: var(--tt-radius-lg); box-shadow: var(--tt-shadow-md); }
.tt-card--xl { border-radius: 20px; box-shadow: var(--tt-shadow-xl); }
.tt-card--soft { background: var(--tt-sand); box-shadow: none; }
.tt-card--green { background: var(--tt-green); box-shadow: var(--tt-shadow-lg); color: #fff; }
.tt-card--green-flat { background: var(--tt-green); box-shadow: none; color: #fff; }
.tt-card--red { background: var(--tt-red); box-shadow: 0 14px 34px rgba(216,41,31,.22); color: #fff; }
.tt-card--dark { background: var(--tt-ink); box-shadow: 0 14px 34px rgba(38,34,27,.22); color: #fff; }
.tt-card--xmas { background: radial-gradient(ellipse 60% 80% at 20% 100%, rgba(242,195,49,.18), transparent 70%) var(--tt-xmas); color: #fff; }
.tt-card--green .elementor-heading-title, .tt-card--green-flat .elementor-heading-title, .tt-card--red .elementor-heading-title, .tt-card--dark .elementor-heading-title, .tt-card--xmas .elementor-heading-title { color: #fff; }
.tt-card--green .elementor-widget-text-editor, .tt-card--green-flat .elementor-widget-text-editor { color: #E8F1E3; }
.tt-card--red .elementor-widget-text-editor { color: #FBE3E1; }
.tt-card--dark .elementor-widget-text-editor { color: #D9D3C5; }
.tt-card--xmas .elementor-widget-text-editor { color: #CFE0D0; }
.tt-card--yellow-ring { box-shadow: var(--tt-shadow-xl), inset 0 0 0 2px var(--tt-yellow); }
.tt-card--hover { transition: box-shadow .25s ease, transform .25s ease; }
.tt-card--hover:hover { box-shadow: 0 14px 32px rgba(38,34,27,.16); }
.tt-card--lift:hover { transform: translateY(-6px) rotate(0deg) !important; box-shadow: 0 16px 34px rgba(38,34,27,.16); }
.tt-overflow { overflow: hidden; }

/* Rotaties */
.tt-rot-p05 { transform: rotate(.5deg); }
.tt-rot-p06 { transform: rotate(.6deg); }
.tt-rot-p1 { transform: rotate(1deg); }
.tt-rot-p15 { transform: rotate(1.5deg); }
.tt-rot-p25 { transform: rotate(2.5deg); }
.tt-rot-m1 { transform: rotate(-1deg); }
.tt-rot-m15 { transform: rotate(-1.5deg); }
.tt-rot-m2 { transform: rotate(-2deg); }
.tt-rot-m1.tt-card--hover:hover, .tt-rot-p1.tt-card--hover:hover { transform: rotate(0deg) translateY(-6px); }

/* Stickers (rond) */
.tt-sticker, .tt-sticker .elementor-heading-title {
  font-family: var(--tt-font-display) !important; font-weight: 800; text-transform: uppercase; text-align: center; line-height: 1.1; letter-spacing: 0;
}
.tt-sticker .elementor-heading-title {
  display: flex; align-items: center; justify-content: center; width: 126px; height: 126px; border-radius: 50%; background: var(--tt-yellow); color: var(--tt-ink); font-size: 18px; transform: rotate(9deg); box-shadow: 0 10px 24px rgba(0,0,0,.3); margin: 0;
}
.tt-sticker--red .elementor-heading-title { background: var(--tt-red); color: #fff; box-shadow: none; transform: rotate(8deg); width: 108px; height: 108px; font-size: 15px; }
.tt-sticker--red-lg .elementor-heading-title { width: 112px; height: 112px; }
.tt-sticker--sm .elementor-heading-title { width: 96px; height: 96px; font-size: 13px; line-height: 1.2; transform: rotate(8deg); box-shadow: none; }
.tt-sticker--abs { position: absolute; z-index: 3; }
.tt-sticker--hero { top: 36px; right: 48px; }
.tt-sticker--over { left: 52%; top: 8px; }
.tt-sticker--over2 { left: 56%; top: 16px; }

/* Foto's */
.tt-photo img { border-radius: var(--tt-radius-lg); box-shadow: var(--tt-shadow-lg); width: 100%; object-fit: cover; display: block; }
.tt-photo--400 img { height: 400px; }
.tt-photo--arch img { border-radius: 200px 200px 20px 20px; }
.tt-photo--frame img { border: 8px solid #fff; box-shadow: 0 14px 34px rgba(38,34,27,.16); border-radius: 20px; }
.tt-photo--cover img { height: 100%; min-height: 360px; border-radius: 0; box-shadow: none; }
.tt-photo--cover { height: 100%; }
.tt-photo--card img { height: 190px; border-radius: 0; box-shadow: none; }
.tt-photo--card180 img { height: 180px; border-radius: 0; box-shadow: none; }
.tt-photo--xmas img { border-radius: 0; box-shadow: none; height: 100%; min-height: 260px; object-position: 50% 30%; }
.tt-photo--xmas { height: 100%; }
.tt-photo-sticker { position: absolute; left: -18px; bottom: 26px; z-index: 2; }
.tt-photo-sticker .elementor-heading-title { background: var(--tt-yellow); color: var(--tt-ink); font-family: var(--tt-font-hand) !important; font-size: 24px; font-weight: 700; padding: 10px 20px; border-radius: 999px; transform: rotate(-4deg); box-shadow: 0 6px 16px rgba(38,34,27,.16); display: inline-block; letter-spacing: 0; line-height: 1.1; }
.tt-rel { position: relative; }
/* Collage (over ons) */
.tt-collage { position: relative; min-height: 420px; }
.tt-collage__a { position: absolute; left: 0; top: 0; width: 70%; }
.tt-collage__a img { height: 320px; border-radius: 20px; transform: rotate(-2deg); box-shadow: var(--tt-shadow-lg); }
.tt-collage__b { position: absolute; right: 0; bottom: 0; width: 55%; }
.tt-collage__b img { height: 250px; transform: rotate(2.5deg); }
.tt-collage--tall { min-height: 460px; }
.tt-collage--tall .tt-collage__a { width: 72%; }
.tt-collage--tall .tt-collage__a img { height: 340px; }
.tt-collage--tall .tt-collage__b { width: 52%; }
.tt-collage--tall .tt-collage__b img { height: 260px; }

/* Categoriekaart (container met achtergrondfoto) */
.tt-cat { position: relative; overflow: hidden; border-radius: 22px; min-height: 250px; display: flex; flex-direction: column; justify-content: flex-end; transition: transform .25s ease; }
.tt-cat--tall { min-height: 320px; }
.tt-cat::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,17,12,0) 45%, rgba(20,17,12,.75)); pointer-events: none; z-index: 1; }
.tt-cat--wide::after { background: linear-gradient(90deg, rgba(20,17,12,.72) 0%, rgba(20,17,12,.2) 55%, rgba(20,17,12,0) 75%); }
.tt-cat > .e-con-inner, .tt-cat > * { position: relative; z-index: 2; }
.tt-cat .elementor-heading-title { color: #fff; font-size: 24px; line-height: 1.05; }
.tt-cat--wide .elementor-heading-title { font-size: 38px; line-height: 1; }
.tt-cat .elementor-widget-text-editor { color: #E8E2D6; font-size: 15.5px; }
.tt-cat:hover { transform: translateY(-3px); }
.tt-arrow { width: 38px; height: 38px; border-radius: 50%; background: #fff; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.tt-arrow svg { width: 17px; height: 17px; }
.tt-arrow--lg { width: 44px; height: 44px; } .tt-arrow--lg svg { width: 20px; height: 20px; }
.tt-arrow--xl { width: 46px; height: 46px; } .tt-arrow--xl svg { width: 21px; height: 21px; }
.tt-arrow-wrap { display: flex; }
.tt-cat__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; width: 100%; }

/* Grid helpers (Elementor grid-containers) */
.tt-span-2 { grid-column: span 2; }
.tt-span-3 { grid-column: 1 / -1; }
.tt-span-all { grid-column: 1 / -1; }
@media (max-width: 767px) { .tt-span-2 { grid-column: span 1; } }

/* Nummers in stappen */
.tt-num .elementor-heading-title { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--tt-yellow); color: var(--tt-ink); font-size: 20px; }
.tt-num-hand .elementor-heading-title { font-family: var(--tt-font-hand) !important; font-size: 34px; font-weight: 700; color: var(--tt-red); line-height: 1; letter-spacing: 0; }

/* Vinkjes-lijst & bullets in tekst */
.tt-list ul, .tt-checks ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tt-list li, .tt-checks li { position: relative; padding-left: 24px; line-height: 1.6; }
.tt-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--tt-green); font-weight: 800; }
.tt-checks--white li::before { color: #fff; }
.tt-checks--tight ul { gap: 3px; }
.tt-checks--tight li { padding-left: 20px; font-size: 13.5px; color: var(--tt-ink); line-height: 1.5; }
.tt-bullets li::before { content: "•"; position: absolute; left: 4px; top: 0; color: var(--tt-red); font-weight: 800; }
.tt-bullets ul { gap: 5px; } .tt-bullets li { font-size: 14px; color: var(--tt-text); line-height: 1.45; }
.tt-steps-hand ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; counter-reset: tt; }
.tt-steps-hand li { position: relative; padding-left: 30px; font-size: 15px; line-height: 1.6; color: var(--tt-text); counter-increment: tt; }
.tt-steps-hand li::before { content: counter(tt); position: absolute; left: 0; top: -2px; font-family: var(--tt-font-hand); font-size: 22px; font-weight: 700; color: var(--tt-red); line-height: 1; }
.tt-inline-checks { display: flex; flex-wrap: wrap; gap: 8px 18px; color: #fff; font-size: 14.5px; font-weight: 600; }
.tt-inline-checks span::before { content: "✓ "; }
.tt-inline-checks p { margin: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; color: #fff; }

/* Chips */
.tt-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.tt-chips a, .tt-chip { display: inline-block; border: 2px solid var(--tt-line); background: #fff; color: var(--tt-ink); font-weight: 700; font-size: 14.5px; padding: 10px 20px; border-radius: 999px; transition: border-color .15s, color .15s; }
.tt-chips a:hover { border-color: var(--tt-red); color: var(--tt-red); }
.tt-chips--static span, .tt-chips--static a { border: 2px solid var(--tt-line); background: var(--tt-cream); font-weight: 700; font-size: 13.5px; padding: 7px 14px; border-radius: 999px; display: inline-block; color: var(--tt-ink); }
.tt-chips--static { gap: 8px; }
.tt-chips--scroll { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
.tt-chips--scroll a { border: 0; box-shadow: 0 2px 8px rgba(38,34,27,.08); white-space: nowrap; flex: none; padding: 10px 18px; }

/* Openingstijden-tabel */
.tt-hours { display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.tt-hours__row { display: flex; justify-content: space-between; gap: 16px; }
.tt-hours__row span:first-child { color: var(--tt-text); }
.tt-hours__row span:last-child { font-weight: 700; }
.tt-footer .tt-hours__row span:first-child { color: #B8B1A2; }
.tt-footer .tt-hours__row span:last-child { color: #EFE9DC; font-weight: 400; }

/* Dashed scheiding */
.tt-dashed { border-top: 2px dashed var(--tt-line); }

/* ---- Header ------------------------------------------------------------- */
.tt-topbar { background: var(--tt-red); color: #fff; font-size: 13.5px; font-weight: 600; }
.tt-topbar a { color: #fff; }
.tt-topbar, .tt-topbar p { color: #fff; margin: 0; }
.tt-topbar .elementor-widget-text-editor { font-size: 13.5px; font-weight: 600; color: #fff; }
.tt-header { background: var(--tt-cream); }
.tt-logo img { height: 58px; width: auto; mix-blend-mode: multiply; display: block; }
.tt-nav { display: flex; align-items: center; }
.tt-nav__panel { display: flex; align-items: center; gap: 34px; }
.tt-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 34px; }
.tt-nav__list li { margin: 0; }
.tt-nav__list a { color: var(--tt-ink); font-weight: 700; font-size: 16px; }
.tt-nav__list a:hover, .tt-nav__list .current-menu-item > a, .tt-nav__list .current-menu-ancestor > a, .tt-nav__list .current_page_parent > a { color: var(--tt-red); }
.tt-nav__cta.tt-btn { padding: 14px 28px; font-size: 16px; }
.tt-nav__toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; border-radius: 12px; cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 5px; padding: 0; }
.tt-nav__toggle span { display: block; width: 24px; height: 3px; background: var(--tt-ink); border-radius: 3px; transition: transform .2s, opacity .2s; }
.tt-nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.tt-nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tt-nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
@media (max-width: 1024px) {
  .tt-nav__toggle { display: flex; }
  .tt-nav__panel { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--tt-cream); flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--tt-gutter) 24px; box-shadow: 0 20px 40px rgba(38,34,27,.14); z-index: 60; border-top: 1px solid var(--tt-line); }
  .tt-nav.is-open .tt-nav__panel { display: flex; }
  /* Mobiel menu: paneel over de volle breedte onder de header (Elementor-widget is maar 44px breed) */
  .tt-site-header .elementor-widget-shortcode, .tt-site-header .elementor-widget-shortcode .elementor-widget-container, .tt-site-header .tt-flexrow, .tt-site-header .tt-header, .elementor-location-header .elementor-widget-shortcode, .elementor-location-header .elementor-widget-shortcode .elementor-widget-container, .elementor-location-header .tt-flexrow, .elementor-location-header .tt-header { position: static !important; }
  .tt-site-header, .elementor-location-header { position: relative; }
  .tt-nav__panel { left: 0 !important; right: 0 !important; width: 100%; top: 100%; }
  .tt-nav__list a { white-space: nowrap; }
  .tt-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .tt-nav__list a { display: block; padding: 14px 0; border-bottom: 1px solid var(--tt-line); font-size: 18px; }
  .tt-nav__cta.tt-btn { margin-top: 18px; justify-content: center; }
  .tt-header-row { position: relative; }
  .tt-topbar .tt-topbar__right { display: none; }
}
.tt-site-header, .elementor-location-header { position: relative; z-index: 50; }

/* ---- Hero (home) ---------------------------------------------------------- */
.tt-hero { position: relative; min-height: 700px; overflow: visible; }
.tt-hero__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.tt-hero__bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 62%; display: block; }
.tt-hero__bg img.tt-hero__alt { opacity: 0; object-position: center 35%; animation: ttHeroFade 14s ease-in-out infinite; }
.tt-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(24,20,15,.8) 0%, rgba(24,20,15,.46) 48%, rgba(24,20,15,0) 74%); }
@keyframes ttHeroFade { 0%,42% { opacity: 0 } 52%,90% { opacity: 1 } 100% { opacity: 0 } }
.tt-hero > .e-con-inner, .tt-hero > .elementor-element { position: relative; z-index: 2; }
.tt-hero .tt-hero__title .elementor-heading-title { color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.35); text-wrap: pretty; }
.tt-hero .elementor-widget-text-editor { color: #F1EBDF; font-size: 19px; text-shadow: 0 1px 12px rgba(0,0,0,.4); }
.tt-hero__content { max-width: 760px; }
.tt-jubileum { position: absolute; right: 64px; bottom: -34px; z-index: 5; animation: ttFeest 5s ease-in-out infinite; }
@keyframes ttFeest { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(1.5deg) } }
.tt-jubileum__box { position: relative; display: flex; align-items: center; gap: 18px; background: var(--tt-yellow); border-radius: 20px; padding: 18px 30px 18px 18px; box-shadow: 0 16px 38px rgba(38,34,27,.28); }
.tt-jubileum__box i { position: absolute; border-radius: 50%; }
.tt-jubileum__box i:nth-child(1) { top: -12px; left: 26px; width: 10px; height: 10px; background: var(--tt-red); }
.tt-jubileum__box i:nth-child(2) { top: -18px; left: 98px; width: 8px; height: 8px; background: var(--tt-green); }
.tt-jubileum__box i:nth-child(3) { top: -10px; right: 60px; width: 12px; height: 12px; background: #fff; border: 2px solid var(--tt-ink); }
.tt-jubileum__box i:nth-child(4) { bottom: -12px; right: 26px; width: 9px; height: 9px; background: var(--tt-red); }
.tt-jubileum__box i:nth-child(5) { bottom: -16px; left: 70px; width: 7px; height: 7px; background: var(--tt-green); }
.tt-jubileum__box i:nth-child(6) { top: 14px; right: -14px; width: 10px; height: 10px; background: var(--tt-yellow); border: 2px solid var(--tt-ink); }
.tt-jubileum__stamp { position: relative; width: 76px; height: 76px; flex: 0 0 auto; }
.tt-jubileum__stamp::before { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 2.5px dashed var(--tt-red); transform: rotate(12deg); }
.tt-jubileum__stamp div { width: 76px; height: 76px; border-radius: 50%; background: var(--tt-red); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: var(--tt-font-display); font-weight: 800; line-height: 1; transform: rotate(-8deg); box-shadow: 0 6px 14px rgba(0,0,0,.25); }
.tt-jubileum__stamp div span:first-child { font-size: 30px; }
.tt-jubileum__stamp div span:last-child { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.tt-jubileum__hand { font-family: var(--tt-font-hand); font-size: 34px; font-weight: 700; color: var(--tt-ink); line-height: 1; }
.tt-jubileum__sub { font-size: 14px; font-weight: 800; color: var(--tt-ink); margin-top: 6px; letter-spacing: .02em; }
.tt-jubileum__sub span { background: #fff; border-radius: 999px; padding: 2px 12px; }

/* Statement-sectie (cirkel) */
.tt-statement { position: relative; text-align: center; }
.tt-statement::before { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 380px; height: 380px; border-radius: 50%; background: var(--tt-sand); z-index: 0; }
.tt-statement > * { position: relative; z-index: 1; }
.tt-statement .elementor-heading-title { text-wrap: pretty; }

/* Vandaag-strip (horizontaal scrollen op mobiel) */
.tt-scroll-row { overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.tt-scroll-row::-webkit-scrollbar { display: none; }
.tt-scroll-row > .e-con, .tt-scroll-row > .elementor-element { flex: 0 0 300px; }
.tt-today-card .elementor-heading-title { font-family: var(--tt-font-body) !important; font-weight: 700; font-size: 17px; letter-spacing: 0; }
.tt-today-card .tt-price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.tt-today-card .tt-price-row span:first-child { font-size: 14px; color: var(--tt-muted); }
.tt-today-card .tt-price-row span:last-child { font-family: var(--tt-font-hand); font-size: 26px; font-weight: 700; color: var(--tt-red); }

/* Groene CTA-band met ronde bovenkant */
.tt-band { border-radius: 56px 56px 0 0; }

/* ---- Footer ------------------------------------------------------------- */
.tt-footer { background: var(--tt-ink); color: #EFE9DC; position: relative; }
.tt-footer .elementor-heading-title { color: #fff; }
.tt-footer .elementor-widget-text-editor { color: #B8B1A2; font-size: 15px; line-height: 1.9; }
.tt-footer a { color: #B8B1A2; } .tt-footer a:hover { color: #fff; }
.tt-footer__curve { display: block; width: 100%; height: 70px; }
.tt-footer__curve svg { display: block; width: 100%; height: 70px; }
.tt-footer__title .elementor-heading-title { font-size: 15px; font-family: var(--tt-font-body) !important; font-weight: 800; letter-spacing: 0; }
.tt-footer__rule { border-bottom: 1px solid rgba(255,255,255,.14); }
.tt-footer__bottom { font-size: 13px; color: #8B8577; }
.tt-footer__bottom .elementor-widget-text-editor, .tt-footer__bottom a { color: #8B8577; font-size: 13px; line-height: 1.5; }
.tt-footer__bottom a:hover { color: #fff; }
.tt-footer__social a { display: block; }
.tt-footer .elementor-widget-text-editor ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; line-height: 1.4; }

/* ---- Bestelpagina's / Formidable --------------------------------------- */
.tt-order .frm_forms, .tt-order .frm_forms.with_frm_style { font-family: var(--tt-font-body); color: var(--tt-ink); max-width: none; }
.tt-order .frm_forms fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.tt-order .frm_forms .frm_fields_container { display: flex; flex-direction: column; gap: 10px; }
.tt-order .frm_forms .frm_form_field { margin: 0; width: 100%; }
.tt-order .frm_forms .frm_form_field.frm_half, .tt-order .frm_forms .frm_form_field.frm6, .tt-order .frm_forms .frm_form_field.frm4, .tt-order .frm_forms .frm_form_field.frm3 { width: 100%; float: none; margin-left: 0; }
.tt-order .frm_forms .frm_section_heading { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.tt-order .frm_forms .frm_section_heading:first-child, .tt-order .frm_forms .frm_fields_container > .frm_section_heading:nth-child(-n+7) { margin-top: 0; }
.tt-order .frm_forms h3.frm_pos_top, .tt-order .frm_forms .frm_section_heading h3 { font-family: var(--tt-font-display); font-size: 24px; font-weight: 800; margin: 0 0 4px; padding: 0; border: 0; color: var(--tt-ink); line-height: 1.2; }
.tt-order .frm_forms .frm_section_heading h3 .tt-sec-note { display: inline-block; margin-left: 12px; font-family: var(--tt-font-hand); font-size: 22px; font-weight: 700; color: var(--tt-green); transform: rotate(-1deg); vertical-align: baseline; }
.tt-order .frm_forms .frm_section_heading .frm_description { color: var(--tt-muted); font-size: 13.5px; margin: -4px 0 6px; }
.tt-order .frm_forms .frm_primary_label { font-weight: 700; font-size: 14px; color: var(--tt-ink); margin: 0 0 6px; display: block; padding: 0; }
.tt-order .frm_forms .frm_required { color: var(--tt-red); }
.tt-order .frm_forms input[type="text"], .tt-order .frm_forms input[type="email"], .tt-order .frm_forms input[type="tel"], .tt-order .frm_forms input[type="number"], .tt-order .frm_forms input[type="url"], .tt-order .frm_forms select, .tt-order .frm_forms textarea {
  width: 100%; box-sizing: border-box; border: 2px solid var(--tt-line); border-radius: 11px; padding: 12px 14px; font-size: 15px; font-family: var(--tt-font-body); color: var(--tt-ink); background: #fff; box-shadow: none; outline: none; transition: border-color .15s; height: auto; line-height: 1.4; margin: 0;
}
.tt-order .frm_forms input:focus, .tt-order .frm_forms textarea:focus, .tt-order .frm_forms select:focus { border-color: var(--tt-red); box-shadow: none; }
.tt-order .frm_forms ::placeholder { color: var(--tt-muted); opacity: 1; }
.tt-order .frm_forms textarea { min-height: 110px; resize: vertical; }
.tt-order .frm_forms .frm_description { font-size: 13px; color: var(--tt-muted); margin-top: 4px; }
.tt-order .frm_forms .frm_error { color: var(--tt-red); font-size: 13px; font-weight: 600; margin-top: 4px; }
.tt-order .frm_forms .frm_error_style, .tt-order .frm_forms .frm_message { border-radius: 16px; padding: 16px 20px; font-size: 15px; margin: 0 0 16px; }
.tt-order .frm_forms .frm_error_style { background: var(--tt-red-soft); color: var(--tt-red-ink); border: 0; }
.tt-order .frm_forms .frm_message { background: var(--tt-green-tint); color: var(--tt-green-dark); border: 0; line-height: 1.6; font-size: 16px; }
.tt-order .frm_forms .frm_message p { margin: 0 0 8px; }
.tt-order .frm_forms .frm_submit { margin: 10px 0 0; }
.tt-order .frm_forms .frm_submit button, .tt-order .frm_forms .frm_button_submit { background: var(--tt-red); color: #fff; border: 0; border-radius: 999px; font-family: var(--tt-font-body); font-size: 16.5px; font-weight: 700; padding: 17px 32px; box-shadow: var(--tt-shadow-red); cursor: pointer; width: 100%; transition: background .15s; }
.tt-order .frm_forms .frm_submit button:hover { background: var(--tt-red-dark); }
/* Gegevens-kaart */
.tt-order .frm_forms .tt-gegevens, .tt-order .frm_forms .frm_section_heading.tt-gegevens { background: #fff; border-radius: 16px; padding: 26px; box-shadow: var(--tt-shadow-sm); }
.tt-order .frm_forms .tt-gegevens > .frm_form_field { display: block; }
.tt-order .frm_forms .tt-gegevens .tt-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tt-order .frm_forms .tt-gegevens .tt-fields .frm_form_field.tt-full, .tt-order .frm_forms .tt-gegevens .tt-fields .frm_form_field:has(textarea) { grid-column: 1 / -1; }
@media (max-width: 640px) { .tt-order .frm_forms .tt-gegevens .tt-fields { grid-template-columns: 1fr; } }
/* Product-rij */
.tt-order .tt-row { display: flex; align-items: center; gap: 18px; background: #fff; border-radius: 16px; padding: 16px 22px; box-shadow: var(--tt-shadow-sm); }
.tt-order .tt-row__main { flex: 1; min-width: 0; }
.tt-order .tt-row__head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.tt-order .tt-row__name { font-weight: 700; font-size: 16px; color: var(--tt-ink); }
.tt-order .tt-row__price { font-family: var(--tt-font-hand); color: var(--tt-red); font-weight: 700; font-size: 23px; line-height: 1; }
.tt-order .tt-row__price small { font-family: var(--tt-font-body); font-size: 13px; font-weight: 700; color: var(--tt-muted); margin-left: 4px; }
.tt-order .tt-row__info { color: var(--tt-text); font-size: 13.5px; margin-top: 2px; line-height: 1.45; }
.tt-order .tt-row__sub { font-weight: 800; font-size: 15px; color: var(--tt-red); min-width: 74px; text-align: right; }
.tt-order .tt-row__sub:empty { display: none; }
.tt-order .tt-row.is-active { box-shadow: var(--tt-shadow-sm), inset 0 0 0 2px var(--tt-yellow); }
.tt-order .tt-row--compact { padding: 14px 20px; border-radius: 14px; }
.tt-order .tt-row--compact .tt-row__name { font-size: 15.5px; }
.tt-order .frm_form_field.tt-enhanced > label, .tt-order .frm_form_field.tt-enhanced > .frm_description, .tt-order .frm_form_field.tt-enhanced > input { display: none !important; }
/* Teller */
.tt-counter { display: inline-flex; align-items: center; border: 2px solid var(--tt-line); border-radius: 999px; overflow: hidden; background: #fff; flex: 0 0 auto; }
.tt-counter button { width: 44px; height: 44px; border: 0; background: var(--tt-sand); font-size: 20px; font-weight: 700; color: var(--tt-ink); cursor: pointer; font-family: var(--tt-font-body); line-height: 1; padding: 0; transition: background .15s; }
.tt-counter button:hover { background: #E9E1CD; }
.tt-counter button:disabled { opacity: .4; cursor: default; }
.tt-counter output, .tt-counter .tt-counter__val { min-width: 44px; padding: 0 4px; text-align: center; font-weight: 800; font-size: 16px; color: var(--tt-ink); white-space: nowrap; }
.tt-counter--wide .tt-counter__val { min-width: 82px; }
.tt-counter--sm button { width: 38px; height: 38px; font-size: 18px; }
.tt-counter--sm .tt-counter__val { font-size: 14px; }
.tt-counter--xs button { width: 32px; height: 32px; font-size: 16px; }
.tt-counter--xs .tt-counter__val { min-width: 34px; font-size: 14px; }
/* Keuzekaarten (radio) */
.tt-order .frm_forms .tt-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.tt-order .frm_forms .tt-choices--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tt-order .frm_forms .tt-choices--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .tt-order .frm_forms .tt-choices--3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px) { .tt-order .frm_forms .tt-choices--3, .tt-order .frm_forms .tt-choices--2 { grid-template-columns: 1fr; } }
.tt-order .tt-choice { display: flex; flex-direction: column; gap: 12px; background: #fff; border-radius: 20px; padding: 24px 26px; box-shadow: var(--tt-shadow-sm); border: 3px solid transparent; cursor: pointer; transition: border-color .15s; }
.tt-order .tt-choice.is-selected { border-color: var(--tt-green); }
.tt-order .tt-choice__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.tt-order .tt-choice__name { font-family: var(--tt-font-display); font-weight: 800; font-size: 21px; line-height: 1.15; }
.tt-order .tt-choice__price { font-family: var(--tt-font-hand); color: var(--tt-red); font-weight: 700; font-size: 26px; margin-top: 2px; line-height: 1; }
.tt-order .tt-choice__min { font-size: 13px; font-weight: 700; color: var(--tt-muted); margin-left: 10px; font-family: var(--tt-font-body); }
.tt-order .tt-choice__sub { font-size: 13px; font-weight: 700; color: var(--tt-green); margin-top: 4px; }
.tt-order .tt-choice__check { flex: 0 0 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #fff; color: #fff; font-weight: 800; font-size: 15px; border: 2px solid var(--tt-line); }
.tt-order .tt-choice.is-selected .tt-choice__check { background: var(--tt-green); border-color: var(--tt-green); }
.tt-order .tt-choice.is-selected .tt-choice__check::before { content: "✓"; }
.tt-order .tt-choice__body { color: var(--tt-text); font-size: 13.5px; line-height: 1.65; }
.tt-order .tt-choice__body b { color: var(--tt-ink); display: block; font-size: 14px; margin-bottom: 6px; }
.tt-order .tt-choice__body ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.tt-order .tt-choice__body li::before { content: "✓ "; color: var(--tt-green); font-weight: 800; }
.tt-order .tt-choice__body li { color: var(--tt-ink); }
.tt-order .tt-choice__tag { display: inline-flex; align-self: flex-start; align-items: center; gap: 7px; background: var(--tt-green-tint); color: var(--tt-green); font-size: 12.5px; font-weight: 700; padding: 5px 12px; border-radius: 999px; }
.tt-order .tt-choice__btn { margin-top: auto; background: #fff; color: var(--tt-green); border: 2.5px solid var(--tt-green); font-weight: 700; font-size: 15px; padding: 11px; border-radius: 999px; text-align: center; }
.tt-order .tt-choice.is-selected .tt-choice__btn { background: var(--tt-green); color: #fff; }
.tt-order .frm_form_field.tt-choice-field > .frm_opt_container, .tt-order .frm_form_field.tt-choice-field > .frm_radio, .tt-order .frm_form_field.tt-choice-field > .frm_checkbox, .tt-order .frm_form_field.tt-choice-field > .frm_primary_label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tt-order .frm_form_field.tt-choice-field { position: relative; }
/* Pill-opties (radio klein, bv. borden) */
.tt-order .tt-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.tt-order .tt-pill { border: 2px solid var(--tt-line); background: #fff; color: var(--tt-ink); font-weight: 700; font-size: 13.5px; padding: 9px 16px; border-radius: 999px; cursor: pointer; transition: all .15s; white-space: nowrap; }
.tt-order .tt-pill.is-selected { border-color: var(--tt-green); background: var(--tt-green); color: #fff; }
.tt-order .tt-pill--lg { font-size: 15px; padding: 11px 22px; }
/* Vinkje-rij (checkbox extra) */
.tt-order .tt-check-row { display: flex; align-items: center; gap: 18px; background: #fff; border-radius: 16px; padding: 16px 22px; box-shadow: var(--tt-shadow-sm); cursor: pointer; border: 3px solid transparent; }
.tt-order .tt-check-row.is-selected { border-color: var(--tt-green); }
.tt-order .tt-check-row__box { flex: 0 0 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; color: #fff; font-weight: 800; font-size: 14px; border: 2px solid var(--tt-line); }
.tt-order .tt-check-row.is-selected .tt-check-row__box { background: var(--tt-green); border-color: var(--tt-green); }
.tt-order .tt-check-row.is-selected .tt-check-row__box::before { content: "✓"; }
.tt-order .tt-check-row__main { flex: 1; }
.tt-order .tt-check-row__name { font-weight: 700; font-size: 15.5px; }
.tt-order .tt-check-row__info { color: var(--tt-text); font-size: 13.5px; }
.tt-order .tt-check-row__price { font-family: var(--tt-font-hand); color: var(--tt-red); font-weight: 700; font-size: 23px; }
/* Personen / aantal-rij */
.tt-order .tt-qty-row { display: flex; align-items: center; gap: 18px; background: #fff; border-radius: 16px; padding: 16px 22px; box-shadow: var(--tt-shadow-sm); }
.tt-order .tt-qty-row__info { flex: 1; color: var(--tt-text); font-size: 14px; line-height: 1.5; }
/* Bedrag-kiezer */
.tt-order .tt-amount { background: #fff; border-radius: 16px; padding: 20px 24px; box-shadow: var(--tt-shadow-sm); display: flex; flex-direction: column; gap: 14px; }
.tt-order .tt-amount__row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.tt-order .tt-amount__custom { display: flex; align-items: center; gap: 10px; border: 2px solid var(--tt-line); border-radius: 999px; padding: 0 8px 0 18px; background: #fff; }
.tt-order .tt-amount__custom span { font-weight: 700; font-size: 15px; color: var(--tt-text); }
.tt-order .tt-amount__custom .tt-counter { border: 0; }
.tt-order .tt-amount__custom .tt-counter button { border-radius: 999px; width: 36px; height: 36px; font-size: 17px; }
.tt-order .tt-amount__note { font-size: 13.5px; color: var(--tt-muted); }
/* Salade-maten (feestdagen) */
.tt-order .tt-sizes { display: flex; flex-wrap: wrap; gap: 10px; margin-left: auto; }
.tt-order .tt-size { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 10px 10px; border-radius: 12px; background: var(--tt-cream); box-shadow: inset 0 0 0 2px transparent; }
.tt-order .tt-size.is-active { background: #FFF7DA; box-shadow: inset 0 0 0 2px var(--tt-yellow); }
.tt-order .tt-size__label { font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--tt-text); }
.tt-order .tt-size__price { font-size: 12px; color: var(--tt-muted); }
/* Sectie-koppen / tussentekst in formulier (html-velden) */
.tt-order .frm_forms .frm_html_container { margin: 0; }
.tt-order .tt-form-h2 { font-family: var(--tt-font-display); font-size: 24px; font-weight: 800; margin: 18px 0 4px; }
.tt-order .tt-form-h2 .tt-sec-note { display: inline-block; margin-left: 12px; font-family: var(--tt-font-hand); font-size: 22px; font-weight: 700; color: var(--tt-green); transform: rotate(-1deg); }
.tt-order .tt-form-h2 .tt-sec-note--gold { color: var(--tt-gold-2); }
.tt-order .tt-form-note { display: inline-block; background: var(--tt-yellow); color: var(--tt-ink); font-size: 14px; font-weight: 700; padding: 9px 16px; border-radius: 999px; margin: 4px 0; }
.tt-order .tt-form-hand { font-family: var(--tt-font-hand); font-size: 22px; font-weight: 700; color: var(--tt-green); margin-left: 12px; }
.tt-order .tt-form-info { background: var(--tt-green); color: #fff; border-radius: 20px; padding: 24px 30px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
.tt-order .tt-form-info .tt-hand { color: var(--tt-yellow); font-size: 26px; margin-bottom: 8px; transform: rotate(-2deg); display: inline-block; }
.tt-order .tt-form-info p { color: #fff; font-size: 15px; line-height: 1.6; margin: 0 0 12px; }
.tt-order .tt-form-info small { color: #E8F1E3; font-size: 13.5px; display: block; margin-top: 10px; }
.tt-order .tt-form-info .tt-sticker-inline { width: 96px; height: 96px; border-radius: 50%; background: var(--tt-yellow); display: flex; align-items: center; justify-content: center; transform: rotate(8deg); font-family: var(--tt-font-display); font-weight: 800; font-size: 13px; line-height: 1.2; text-transform: uppercase; text-align: center; color: var(--tt-ink); }
@media (max-width: 640px) { .tt-order .tt-form-info { grid-template-columns: 1fr; } .tt-order .tt-form-info .tt-sticker-inline { display: none; } }
.tt-order .tt-form-soft { background: var(--tt-sand); border-radius: 20px; padding: 24px 26px; transform: rotate(.6deg); }
.tt-order .tt-form-soft .tt-hand { font-size: 28px; color: var(--tt-red); display: inline-block; transform: rotate(-2deg); margin-bottom: 6px; }
.tt-order .tt-form-soft p { color: var(--tt-text); font-size: 14px; line-height: 1.6; margin: 0 0 10px; }
.tt-order .tt-form-soft a.tt-btn-outline { display: inline-block; border: 2.5px solid var(--tt-green); color: var(--tt-green); font-weight: 700; font-size: 14px; padding: 10px 20px; border-radius: 999px; }
/* Datepicker */
.tt-site .ui-datepicker { font-family: var(--tt-font-body); border: 0; border-radius: 16px; box-shadow: var(--tt-shadow-xl); padding: 12px; background: #fff; }
.tt-site .ui-datepicker .ui-datepicker-header { background: var(--tt-sand); border: 0; border-radius: 10px; color: var(--tt-ink); }
.tt-site .ui-datepicker .ui-state-default { border: 0; background: transparent; color: var(--tt-ink); border-radius: 8px; text-align: center; }
.tt-site .ui-datepicker .ui-state-active, .tt-site .ui-datepicker .ui-state-default:hover { background: var(--tt-red); color: #fff; }
.tt-site .ui-datepicker .ui-state-highlight { background: var(--tt-yellow-soft); }
.tt-site .ui-datepicker td.ui-datepicker-unselectable .ui-state-default { color: #CFC8B8; }

/* Besteloverzicht (sidebar) */
.tt-summary { background: #fff; border-radius: 20px; padding: 28px; box-shadow: var(--tt-shadow-xl); transform: rotate(.5deg); position: sticky; top: 24px; }
.tt-summary--xmas { transform: none; box-shadow: var(--tt-shadow-xl), inset 0 0 0 2px var(--tt-yellow); }
.tt-summary__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.tt-summary__title { font-family: var(--tt-font-display); font-size: 21px; font-weight: 800; margin: 0; }
.tt-summary__hand { font-family: var(--tt-font-hand); font-size: 22px; font-weight: 700; color: var(--tt-green); transform: rotate(-3deg); }
.tt-summary__empty { color: var(--tt-muted); font-size: 14.5px; line-height: 1.55; margin-bottom: 16px; }
.tt-summary__list { display: flex; flex-direction: column; gap: 9px; margin-bottom: 16px; }
.tt-summary__list:empty { display: none; }
.tt-summary__line { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; }
.tt-summary__line span:first-child { color: var(--tt-text); }
.tt-summary__line span:last-child { font-weight: 700; white-space: nowrap; }
.tt-summary__total { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0 4px; border-top: 2px dashed var(--tt-line); font-weight: 800; font-size: 17px; }
.tt-summary__total span:last-child { font-family: var(--tt-font-hand); font-size: 30px; color: var(--tt-red); font-weight: 700; }
.tt-summary__note { font-size: 13px; color: var(--tt-muted); margin-bottom: 16px; }
.tt-summary__btn { display: block; width: 100%; border: 0; background: var(--tt-red); color: #fff; font-family: var(--tt-font-body); font-size: 16.5px; font-weight: 700; padding: 17px; border-radius: 999px; text-align: center; cursor: pointer; box-shadow: var(--tt-shadow-red); transition: background .15s; }
.tt-summary__btn:hover { background: var(--tt-red-dark); }
.tt-summary__mail { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; font-size: 13px; color: var(--tt-text); line-height: 1.5; }
.tt-summary__mail::before { content: "✓"; color: var(--tt-green); font-weight: 800; }
.tt-summary__error { font-size: 13.5px; font-weight: 600; color: var(--tt-red); margin-bottom: 10px; }
.tt-summary__error:empty { display: none; }
.tt-summary__done { background: var(--tt-green-tint); color: var(--tt-xmas); border-radius: 14px; padding: 16px 18px; font-size: 14.5px; line-height: 1.5; margin-bottom: 16px; }
.tt-aside { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 24px; }
.tt-aside .tt-summary { position: static; }
/* Mobiele sticky balk */
.tt-mobile-bar { display: none; }
@media (max-width: 1024px) {
  .tt-summary, .tt-aside { position: static; transform: none; }
  .tt-mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--tt-ink); color: #fff; border-top: 3px solid var(--tt-yellow); padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: 14px; box-shadow: 0 -8px 24px rgba(0,0,0,.18); }
  .tt-mobile-bar--xmas { background: var(--tt-xmas); }
  .tt-mobile-bar__count { font-size: 12.5px; color: #CFE0D0; display: block; }
  .tt-mobile-bar__total { font-family: var(--tt-font-hand); font-size: 30px; font-weight: 700; color: var(--tt-yellow); line-height: 1; }
  .tt-mobile-bar a, .tt-site .tt-mobile-bar a, .tt-site .tt-mobile-bar a:hover { flex: none; background: var(--tt-red); color: #fff !important; font-size: 15.5px; font-weight: 800; padding: 14px 22px; border-radius: 999px; box-shadow: 0 6px 16px rgba(216,41,31,.35); }
  body.tt-has-mobile-bar { padding-bottom: 96px; }
}

/* ---- Responsief algemeen ----------------------------------------------- */
@media (max-width: 1024px) {
  .tt-h1-lg .elementor-heading-title { font-size: 56px; }
  .tt-h2-xl .elementor-heading-title { font-size: 52px; }
  .tt-h2-lg .elementor-heading-title { font-size: 40px; }
  .tt-hero { min-height: 600px; }
  .tt-jubileum { right: 24px; bottom: -28px; }
  .tt-collage, .tt-collage--tall { min-height: 360px; }
  .tt-collage__a img, .tt-collage--tall .tt-collage__a img { height: 260px; }
  .tt-collage__b img, .tt-collage--tall .tt-collage__b img { height: 200px; }
}
@media (max-width: 767px) {
  .tt-h1 .elementor-heading-title { font-size: 34px; }
  .tt-h1-lg .elementor-heading-title { font-size: 40px; }
  .tt-h2 .elementor-heading-title { font-size: 28px; }
  .tt-h2-lg .elementor-heading-title { font-size: 32px; }
  .tt-h2-xl .elementor-heading-title { font-size: 38px; }
  .tt-h3 .elementor-heading-title { font-size: 24px; }
  .tt-hand .elementor-heading-title { font-size: 24px; }
  .tt-hand--xl .elementor-heading-title { font-size: 34px; }
  .tt-hand--36 .elementor-heading-title, .tt-hand--lg .elementor-heading-title { font-size: 28px; }
  .tt-lead-lg { font-size: 17px; }
  .tt-hero { min-height: 560px; }
  .tt-hero .elementor-widget-text-editor { font-size: 16px; }
  .tt-sticker--hero { display: none; }
  .tt-jubileum { position: relative; right: auto; bottom: auto; margin: 16px var(--tt-gutter) -20px; animation: none; }
  .tt-jubileum__box { padding: 14px 18px; gap: 14px; }
  .tt-jubileum__hand { font-size: 26px; }
  .tt-jubileum__stamp, .tt-jubileum__stamp div { width: 60px; height: 60px; }
  .tt-jubileum__stamp div span:first-child { font-size: 24px; }
  .tt-statement::before { width: 260px; height: 260px; }
  .tt-cat, .tt-cat--tall { min-height: 220px; }
  .tt-cat--wide .elementor-heading-title { font-size: 28px; }
  .tt-band { border-radius: 32px 32px 0 0; }
  .tt-photo--400 img { height: 260px; }
  .tt-photo-sticker { left: 8px; bottom: 12px; }
  .tt-photo-sticker .elementor-heading-title { font-size: 20px; padding: 8px 16px; }
  .tt-collage, .tt-collage--tall { min-height: 300px; }
  .tt-collage__a img, .tt-collage--tall .tt-collage__a img { height: 210px; }
  .tt-collage__b img, .tt-collage--tall .tt-collage__b img { height: 160px; }
  .tt-sticker--over, .tt-sticker--over2 { left: auto; right: 0; top: -10px; }
  .tt-sticker--red .elementor-heading-title { width: 84px; height: 84px; font-size: 12px; }
  .tt-order .tt-row { flex-wrap: wrap; }
  .tt-order .tt-row .tt-counter { margin-left: auto; }
  .tt-order .tt-row__sub { min-width: 0; }
  .tt-order .tt-sizes { margin-left: 0; width: 100%; }
  .tt-site .elementor-button, a.tt-btn { width: 100%; justify-content: center; }
  .tt-btn-row .elementor-widget-button { width: 100%; }
  .tt-nav__cta.tt-btn { width: auto; }
  .tt-site .elementor-widget-button.tt-btn--inline .elementor-button { width: auto; }
}

/* ---- Aanvullingen formulieren ---- */
.tt-order .frm_form_field.tt-total { display: none !important; }
.tt-order .tt-fixed { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 700; }
.tt-order .tt-fixed__val { font-size: 15px; font-weight: 600; padding: 13px 16px; border-radius: 11px; background: var(--tt-sand); }
.tt-order .frm_forms .frm_html_container.frm_form_field { margin: 0; }
.tt-order .frm_forms .frm_section_heading > .frm_html_container { margin: 0; }
.tt-order .frm_forms .frm_form_field.frm_html_container:has(.tt-fixed) { display: block; }
.tt-order .frm_forms .frm_section_heading .frm_section_spacing { margin: 0; }
.tt-order .frm_forms .frm_hidden, .tt-order .frm_forms .frm_blank_field input { border-color: var(--tt-red); }
.tt-order .frm_forms .frm_blank_field .frm_error { display: block; }
.tt-order .frm_forms .frm_blank_field input, .tt-order .frm_forms .frm_blank_field textarea { border-color: var(--tt-red); }

/* ---- Fixes na eerste controle ---- */
.tt-site .tt-flexrow > .elementor-widget { width: auto; flex-grow: 0; max-width: 100%; }
.tt-site .tt-flexrow > .elementor-widget.tt-grow { flex-grow: 1; }
.tt-site .tt-flexrow > .elementor-widget-text-editor { flex-grow: 1; }
.tt-site .tt-flexrow > .elementor-widget-heading.tt-h-white, .tt-site .tt-flexrow > .elementor-widget-heading.tt-h2, .tt-site .tt-flexrow > .elementor-widget-heading.tt-h3 { flex-grow: 0; }
.tt-logo { width: auto !important; }
.tt-logo img { height: 58px; width: auto; max-width: none; }
.tt-header-row .tt-flexrow, .tt-topbar .tt-flexrow { --flex-wrap-mobile: nowrap; flex-wrap: nowrap; }
.tt-topbar .tt-flexrow > .elementor-widget { white-space: nowrap; }
.tt-hero .elementor-widget-html, .tt-hero .elementor-widget-html { position: static; }
.tt-site .e-con.tt-section.tt-hero { --padding-top: 0; --padding-bottom: 0; }
.tt-today-card .elementor-widget-image, .tt-today-card .elementor-widget-image { width: 100%; }
.tt-site .tt-pagehead .tt-flexrow > .elementor-widget-heading { flex-grow: 0; }

/* ---- Afbeeldingshoogtes (specifieker dan Elementor's .elementor img) ---- */
.tt-site .tt-logo img { height: 58px !important; width: auto !important; }
.tt-site .tt-photo img { width: 100%; object-fit: cover; display: block; }
.tt-site .tt-photo--400 img { height: 400px; }
.tt-site .tt-photo--card img { height: 190px; }
.tt-site .tt-photo--card180 img { height: 180px; }
.tt-site .tt-photo--cover img { height: 100%; min-height: 360px; }
.tt-site .tt-photo--xmas img { height: 100%; min-height: 260px; }
.tt-site .tt-collage__a img { height: 320px; } .tt-site .tt-collage__b img { height: 250px; }
.tt-site .tt-collage--tall .tt-collage__a img { height: 340px; } .tt-site .tt-collage--tall .tt-collage__b img { height: 260px; }
.tt-site .tt-photo--cover, .tt-site .tt-photo--xmas { height: 100%; }
@media (max-width: 1024px) { .tt-site .tt-collage__a img, .tt-site .tt-collage--tall .tt-collage__a img { height: 260px; } .tt-site .tt-collage__b img, .tt-site .tt-collage--tall .tt-collage__b img { height: 200px; } }
@media (max-width: 767px) { .tt-site .tt-photo--400 img { height: 260px; } .tt-site .tt-collage__a img, .tt-site .tt-collage--tall .tt-collage__a img { height: 210px; } .tt-site .tt-collage__b img, .tt-site .tt-collage--tall .tt-collage__b img { height: 160px; } .tt-site .tt-photo--cover img { min-height: 240px; } }

/* ---- Fixes ronde 2 (Elementor 4: geen widget-container wrapper) ---- */
.tt-site .tt-sticker--abs { position: absolute !important; }
.tt-site .tt-sticker--hero { top: 36px !important; right: 48px !important; left: auto !important; bottom: auto !important; }
.tt-site .tt-sticker--over { left: 52% !important; top: 8px !important; }
.tt-site .tt-sticker--over2 { left: 56% !important; top: 16px !important; }
.tt-site .tt-photo-sticker { position: absolute !important; left: -18px !important; bottom: 26px !important; top: auto !important; width: auto !important; }
.tt-site .tt-collage__a, .tt-site .tt-collage__b { position: absolute !important; }
.tt-site .tt-collage__a { left: 0 !important; top: 0 !important; width: 70% !important; }
.tt-site .tt-collage__b { right: 0 !important; bottom: 0 !important; left: auto !important; top: auto !important; width: 55% !important; }
.tt-site .tt-collage--tall .tt-collage__a { width: 72% !important; }
.tt-site .tt-collage--tall .tt-collage__b { width: 52% !important; }
.tt-site .tt-flexrow > .e-con.tt-auto { width: auto; flex: 1 1 auto; min-width: 0; }
.tt-site .tt-flexrow > .e-con.tt-auto.tt-noshrink { flex: 0 0 auto; }
.tt-site .e-con > .e-con { --flex-grow: 0; }
.tt-site .e-con > .e-con.tt-auto { --flex-grow: 1; }
.tt-site .elementor-widget-text-editor > p:last-child { margin-bottom: 0; }
@media (max-width: 767px) { .tt-site .tt-sticker--hero { display: none !important; } .tt-site .tt-photo-sticker { left: 8px !important; bottom: 12px !important; } .tt-site .tt-sticker--over, .tt-site .tt-sticker--over2 { left: auto !important; right: 0 !important; top: -10px !important; } }

/* ---- Fixes ronde 3: kleuren met hogere specificiteit dan body.tt-site .elementor-heading-title ---- */
.tt-site .tt-h-white .elementor-heading-title, .tt-site .tt-cat .elementor-heading-title, .tt-site .tt-card--green .elementor-heading-title, .tt-site .tt-card--green-flat .elementor-heading-title, .tt-site .tt-card--red .elementor-heading-title, .tt-site .tt-card--dark .elementor-heading-title, .tt-site .tt-card--xmas .elementor-heading-title, .tt-site .tt-footer .elementor-heading-title, .tt-site .tt-badge--green .elementor-heading-title, .tt-site .tt-badge--dark .elementor-heading-title, .tt-site .tt-sticker--red .elementor-heading-title, .tt-site .tt-hand--white .elementor-heading-title { color: #fff; }
.tt-site .tt-h-red .elementor-heading-title { color: var(--tt-red); }
.tt-site .tt-h-green .elementor-heading-title { color: var(--tt-green); }
.tt-site .tt-badge--red-soft .elementor-heading-title { color: var(--tt-red-ink); }
.tt-site .tt-badge--green-soft .elementor-heading-title, .tt-site .tt-price-pill .elementor-heading-title { color: var(--tt-green); }
.tt-site .tt-badge--gold-soft .elementor-heading-title { color: var(--tt-gold); }
.tt-site .tt-badge .elementor-heading-title, .tt-site .tt-note .elementor-heading-title, .tt-site .tt-sticker .elementor-heading-title, .tt-site .tt-num .elementor-heading-title, .tt-site .tt-photo-sticker .elementor-heading-title { color: var(--tt-ink); }
.tt-site .tt-num-hand .elementor-heading-title, .tt-site .tt-price .elementor-heading-title { color: var(--tt-red); }
.tt-site .tt-note--xmas .elementor-heading-title { color: var(--tt-xmas); }
.tt-site .tt-note--ghost .elementor-heading-title { color: #fff; }
.tt-site a.tt-btn, .tt-site a.tt-btn:hover, .tt-site .elementor-button, .tt-site .elementor-button:hover { color: #fff; }
.tt-site .tt-btn--outline .elementor-button { color: var(--tt-green); } .tt-site .tt-btn--outline .elementor-button:hover { color: #fff; }
.tt-site .tt-btn--white .elementor-button { color: var(--tt-red); } .tt-site .tt-btn--white .elementor-button:hover { color: var(--tt-red-dark); }
.tt-site .tt-btn--white-green .elementor-button { color: var(--tt-green); } .tt-site .tt-btn--white-green .elementor-button:hover { color: var(--tt-green-dark); }
.tt-site .tt-btn--light .elementor-button, .tt-site .tt-btn--light .elementor-button:hover { color: var(--tt-ink); }
.tt-site .tt-btn--xmas .elementor-button { color: var(--tt-xmas); }
.tt-site .tt-link .elementor-button { color: var(--tt-ink); } .tt-site .tt-link .elementor-button:hover { color: var(--tt-red); }
.tt-site .tt-link--white .elementor-button, .tt-site .tt-link--red-white .elementor-button { color: #fff; }
.tt-site .tt-link--red .elementor-button { color: var(--tt-red); }
.tt-site .tt-link--muted .elementor-button { color: var(--tt-muted); } .tt-site .tt-link--muted .elementor-button:hover { color: var(--tt-red); }
.tt-site .tt-footer a, .tt-site .tt-footer .elementor-widget-text-editor { color: #B8B1A2; } .tt-site .tt-footer a:hover { color: #fff; }
.tt-site .tt-footer__bottom a, .tt-site .tt-footer__bottom .elementor-widget-text-editor { color: #8B8577; }
.tt-site .tt-card--red .elementor-widget-text-editor, .tt-site .tt-text-red-tint { color: #FBE3E1; }
.tt-site .tt-card--green .elementor-widget-text-editor, .tt-site .tt-card--green-flat .elementor-widget-text-editor, .tt-site .tt-text-green-tint { color: #E8F1E3; }
.tt-site .tt-card--dark .elementor-widget-text-editor { color: #D9D3C5; }
.tt-site .tt-card--xmas .elementor-widget-text-editor, .tt-site .tt-text-xmas-tint { color: #CFE0D0; }
.tt-site .tt-cat .elementor-widget-text-editor { color: #E8E2D6; }
.tt-site .tt-hero .elementor-widget-text-editor { color: #F1EBDF; }
.tt-site .tt-topbar .elementor-widget, .tt-site .tt-topbar a { color: #fff; }

/* ---- Tellers: Elementor-kit knopstijl uitschakelen ---- */
.tt-site .tt-counter button, .tt-site .elementor .tt-counter button { background: var(--tt-sand) !important; color: var(--tt-ink) !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; font-size: 20px !important; font-weight: 700 !important; line-height: 1 !important; width: 44px; height: 44px; min-height: 0; }
.tt-site .tt-counter button:hover { background: #E9E1CD !important; color: var(--tt-ink) !important; }
.tt-site .tt-counter--sm button { width: 38px; height: 38px; font-size: 18px !important; }
.tt-site .tt-counter--xs button { width: 32px; height: 32px; font-size: 16px !important; }
.tt-site .tt-amount__custom .tt-counter button { border-radius: 999px !important; width: 36px; height: 36px; font-size: 17px !important; }
.tt-site .tt-nav__toggle { background: transparent !important; box-shadow: none !important; padding: 0 !important; border-radius: 12px !important; }
.tt-site .tt-summary__btn, .tt-site .tt-order .frm_forms .frm_submit button { font-size: 16.5px !important; padding: 17px !important; }

/* ---- Bestelpagina: kolombreedtes ---- */
.tt-site .tt-order-wrap .tt-flexrow > .e-con.tt-order { width: auto !important; flex: 1 1 0% !important; min-width: 0; }
.tt-site .tt-order-wrap .tt-flexrow > .e-con:last-child { flex: 0 0 370px !important; width: 370px !important; }
@media (max-width: 1024px) { .tt-site .tt-order-wrap .tt-flexrow { flex-direction: column; } .tt-site .tt-order-wrap .tt-flexrow > .e-con:last-child, .tt-site .tt-order-wrap .tt-flexrow > .e-con.tt-order { flex: 0 0 auto !important; width: 100% !important; } }

/* ---- Formulier-htmlvelden (autop-veilig) ---- */
.tt-order .tt-form-info p { margin: 0 0 10px; }
.tt-order .tt-form-info p.tt-hand { color: var(--tt-yellow); font-family: var(--tt-font-hand); font-size: 26px; font-weight: 700; transform: rotate(-2deg); display: inline-block; margin: 0 0 8px; }
.tt-order .tt-form-info__list { display: flex; flex-wrap: wrap; gap: 8px 18px; font-weight: 600; font-size: 14.5px; color: #fff; }
.tt-order .tt-form-info__small { color: #E8F1E3 !important; font-size: 13.5px !important; margin: 10px 0 0 !important; }
.tt-order .tt-form-soft p.tt-hand { font-family: var(--tt-font-hand); font-size: 28px; font-weight: 700; color: var(--tt-red); display: inline-block; transform: rotate(-2deg); margin: 0 0 6px; }
.tt-order .tt-form-soft p:last-child { margin-bottom: 0; }
.tt-order .tt-form-notes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0; }
.tt-order .tt-form-notes .tt-form-hand { margin-left: 0; }
.tt-order .tt-fixed p { margin: 0; }
.tt-order .tt-choice__body p { margin: 0 0 8px; }
.tt-order .tt-choice__body p:last-child { margin-bottom: 0; }
.tt-order .tt-choice__body b { display: block; }
.tt-order .frm_forms .frm_html_container p:empty { display: none; }
.tt-order .frm_forms .frm_verify, .tt-order .frm_forms [id$="_container"]:has(> .frm_verify) { position: absolute; left: -9999px; }
.tt-order .frm_forms .frm_section_heading > .frm_html_container { margin-bottom: 8px; }


/* fix6: sticky aside — sticky must sit on the Elementor column, not inside the widget */
@media (min-width: 1025px) {
  .tt-order-wrap .tt-flexrow > .e-con:not(.tt-order) { position: sticky; top: 24px; align-self: flex-start; }
  .tt-order-wrap .tt-aside { position: static; }
}


/* fix7: button variants must beat kit button styles (.elementor-kit-44 .elementor-button) */
.tt-site .elementor-widget-button .elementor-button { background: var(--tt-red) !important; color: #fff !important; }
.tt-site .elementor-widget-button .elementor-button:hover { background: var(--tt-red-dark) !important; color: #fff !important; }
.tt-site .elementor-widget-button.tt-btn--outline .elementor-button { background: transparent !important; color: var(--tt-green) !important; box-shadow: inset 0 0 0 2.5px var(--tt-green); }
.tt-site .elementor-widget-button.tt-btn--outline .elementor-button:hover { background: var(--tt-green) !important; color: #fff !important; }
.tt-site .elementor-widget-button.tt-btn--white .elementor-button { background: #fff !important; color: var(--tt-red) !important; }
.tt-site .elementor-widget-button.tt-btn--white .elementor-button:hover { background: var(--tt-sand) !important; color: var(--tt-red-dark) !important; }
.tt-site .elementor-widget-button.tt-btn--white-green .elementor-button { background: #fff !important; color: var(--tt-green) !important; }
.tt-site .elementor-widget-button.tt-btn--white-green .elementor-button:hover { background: var(--tt-green-soft) !important; color: var(--tt-green-dark) !important; }
.tt-site .elementor-widget-button.tt-btn--light .elementor-button { background: rgba(253,248,238,.94) !important; color: var(--tt-ink) !important; }
.tt-site .elementor-widget-button.tt-btn--light .elementor-button:hover { background: #fff !important; color: var(--tt-ink) !important; }
.tt-site .elementor-widget-button.tt-link .elementor-button, .tt-site .elementor-widget-button.tt-link .elementor-button:hover { background: transparent !important; }
.tt-site .elementor-widget-button.tt-btn--xmas .elementor-button { color: var(--tt-xmas) !important; }
.tt-site .elementor-widget-button.tt-link .elementor-button { color: var(--tt-ink) !important; }
.tt-site .elementor-widget-button.tt-link .elementor-button:hover { color: var(--tt-red) !important; }
.tt-site .elementor-widget-button.tt-link--white .elementor-button, .tt-site .elementor-widget-button.tt-link--red-white .elementor-button, .tt-site .elementor-widget-button.tt-link--white .elementor-button:hover, .tt-site .elementor-widget-button.tt-link--red-white .elementor-button:hover { color: #fff !important; }
.tt-site .elementor-widget-button.tt-link--red .elementor-button, .tt-site .elementor-widget-button.tt-link--red .elementor-button:hover { color: var(--tt-red) !important; }
.tt-site .elementor-widget-button.tt-link--muted .elementor-button { color: var(--tt-muted) !important; }
.tt-site .elementor-widget-button.tt-link--muted .elementor-button:hover { color: var(--tt-red) !important; }


/* fix8: mobile hero — darker overall overlay so the text stays readable over the photo */
@media (max-width: 767px) {
  .tt-hero__bg::after { background: linear-gradient(180deg, rgba(24,20,15,.82) 0%, rgba(24,20,15,.7) 55%, rgba(24,20,15,.55) 100%); }
  .tt-site .tt-hero .elementor-widget-text-editor { color: #fff; }
}
/* fix9: badge styles belong on the heading, not on the Elementor widget wrapper */
.tt-site .elementor-widget.tt-badge { display: block; background: none !important; padding: 0 !important; border-radius: 0; letter-spacing: 0; text-transform: none; }
/* fix10: category cards — stronger bottom gradient, vertical on mobile for the wide card too */
.tt-site .tt-cat::after { background: linear-gradient(180deg, rgba(20,17,12,0) 25%, rgba(20,17,12,.5) 60%, rgba(20,17,12,.9) 100%); }
.tt-site .tt-cat--wide::after { background: linear-gradient(90deg, rgba(20,17,12,.78) 0%, rgba(20,17,12,.3) 55%, rgba(20,17,12,.05) 80%); }
@media (max-width: 767px) {
  .tt-site .tt-cat::after, .tt-site .tt-cat--wide::after { background: linear-gradient(180deg, rgba(20,17,12,.1) 10%, rgba(20,17,12,.55) 55%, rgba(20,17,12,.92) 100%); }
  .tt-site .tt-cat .elementor-heading-title { text-shadow: 0 2px 14px rgba(0,0,0,.55); }
}

/* Hamburger -> kruisje, ook als Elementor transforms overschrijft */
.tt-nav.is-open .tt-nav__toggle span:nth-child(1), .tt-nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg) !important; transform-origin: 50% 50%; }
.tt-nav.is-open .tt-nav__toggle span:nth-child(2), .tt-nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0 !important; }
.tt-nav.is-open .tt-nav__toggle span:nth-child(3), .tt-nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg) !important; transform-origin: 50% 50%; }

/* Footer-golf neemt de kleur van de sectie erboven */
.tt-footer__curve { color: var(--tt-cream); }
body.page-id-1028 .tt-footer__curve { color: var(--tt-sand); }
/* Admin bar: tweede regel netjes donker i.p.v. zwevende tekst */
#wpadminbar { height: auto; min-height: 32px; }

/* Witte tekst op donkere/groene badges (specifieker dan body.tt-site .tt-badge) */
body.tt-site .tt-badge--dark .elementor-heading-title, body.tt-site .tt-badge--green .elementor-heading-title { color: #fff; }

/* Klikbare kaarten */
.tt-clickable, [data-href] { cursor: pointer; }
a.e-con, a.e-con:hover { color: inherit; text-decoration: none; }

/* Knopvarianten: stijl alleen op de <a>, nooit op de Elementor-widgetwrapper (voorkomt dubbele rand/padding) */
.tt-site .elementor-widget-button[class*="tt-btn--"], .tt-site .elementor-widget-button[class*="tt-link"] { background: transparent !important; box-shadow: none !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; color: inherit; }
.tt-site .elementor-widget-button[class*="tt-btn--"]:hover, .tt-site .elementor-widget-button[class*="tt-link"]:hover { background: transparent !important; }
/* Footer-golf: kleur van de groene band op de assortimentpagina */
body.page-id-1026 .tt-footer__curve, body:has(.elementor-page > .e-con.tt-band:last-child) .tt-footer__curve { color: #3E7A2E; }

/* Generieke fix: opmaak van pillen/badges/notes hoort op de inhoud, niet op de Elementor-widgetwrapper */
.tt-site .elementor-widget.tt-note, .tt-site .elementor-widget.tt-badge, .tt-site .elementor-widget.tt-sticker, .tt-site .elementor-widget.tt-num, .tt-site .elementor-widget.tt-pill, .tt-site .elementor-widget.tt-hand, .tt-site .elementor-widget.tt-photo-sticker, .tt-site .elementor-widget.tt-price-pill { display: block; background: none !important; padding: 0 !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
.tt-site .elementor-widget.tt-note { transform: none; }
.tt-site .elementor-widget.tt-note .elementor-widget-container, .tt-site .elementor-widget.tt-badge .elementor-widget-container { display: inline-block; }

/* Brede schermen: inhoud van full-width secties (header, topbalk, hero, banden, footer) uitlijnen op dezelfde 1360px-kolom als de rest */
@media (min-width: 1361px) {
  .tt-site .e-con-full.tt-section { padding-left: max(var(--tt-gutter), calc((100% - 1360px) / 2)) !important; padding-right: max(var(--tt-gutter), calc((100% - 1360px) / 2)) !important; }
  .tt-site .tt-sticker--hero { right: max(48px, calc((100% - 1360px) / 2 + 48px)) !important; }
  .tt-site .tt-jubileum { right: max(64px, calc((100% - 1360px) / 2 + 64px)); }
  .tt-site .tt-hero__content, .tt-site .e-con-full.tt-hero .tt-hero__content { margin-left: 0; }
}

/* Footer-golf van rand tot rand, los van de zijmarges van de footer */
.tt-site .tt-footer { position: relative; padding-top: 118px !important; }
.tt-site .tt-footer .elementor-widget-html:first-child, .tt-site .tt-footer > .elementor-widget:first-child { position: absolute; left: 0; right: 0; top: 0; width: 100%; margin: 0; }
.tt-site .tt-footer__curve { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 70px; margin: 0; }
.tt-site .tt-footer__curve svg { width: 100%; height: 70px; }

/* Badge in categoriekaart (bijv. ZELF GEMAAKT): kleine gele pil, niet de kaarttitel-grootte */
body.tt-site .tt-cat .tt-badge .elementor-heading-title, body.tt-site .tt-cat--wide .tt-badge .elementor-heading-title { display: inline-block; font-size: 12.5px !important; line-height: 1.3 !important; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; color: var(--tt-ink) !important; background: var(--tt-yellow); padding: 6px 14px; border-radius: 999px; margin-bottom: 12px; }
body.tt-site .tt-cat .tt-badge--rot .elementor-heading-title { transform: rotate(-2deg); }

/* Badges zijn overal kleine pillen, ongeacht de kaart waarin ze staan */
body.tt-site .elementor-widget.tt-badge .elementor-heading-title { font-size: 12.5px !important; line-height: 1.3 !important; letter-spacing: .06em; text-transform: uppercase; font-weight: 800; padding: 5px 12px; display: inline-block; }

/* =========================================================================
   KERST 2026 – feestdagen-homepage
   ========================================================================= */
.tt-topbar--xmas { border-bottom: 2px solid var(--tt-yellow); }
.tt-site .tt-topbar--xmas a.tt-topbar__kerst, .tt-site .tt-topbar--xmas a.tt-topbar__kerst:hover { color: var(--tt-yellow); font-weight: 800; font-size: 13.5px; }
.tt-topbar--xmas .tt-contact-line, .tt-topbar--xmas .tt-contact-line a { color: #fff; }

/* Hero */
.tt-site .e-con.tt-hero--xmas { background-color: var(--tt-xmas); }
.tt-hero__bg--xmas .tt-hero__photo { position: absolute; top: 0; bottom: 0; left: 42%; right: 0; overflow: hidden; }
.tt-hero__bg--xmas .tt-hero__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.tt-hero__bg--xmas .tt-hero__photo img.tt-hero__food { opacity: 0; object-position: center 50%; animation: ttHeroFood 16s ease-in-out infinite; }
.tt-hero__bg--xmas .tt-hero__food--1 { animation-delay: 4s; }
.tt-hero__bg--xmas .tt-hero__food--2 { animation-delay: 12s; }
@keyframes ttHeroFood { 0% { opacity: 0; } 7%, 23% { opacity: 1; } 30%, 100% { opacity: 0; } }
.tt-hero__bg--xmas::after { background: linear-gradient(90deg, #1E3F2A 0%, #1E3F2A 42%, rgba(30,63,42,.55) 47%, rgba(30,63,42,0) 56%); }
.tt-sparkles { position: absolute; left: 0; top: 0; width: 60%; height: 100%; color: var(--tt-yellow); pointer-events: none; z-index: 1; }
.tt-sparkles--full { width: 100%; }
.tt-site .tt-sticker--xmas .elementor-heading-title { box-shadow: 0 0 0 4px var(--tt-xmas), 0 0 0 7px var(--tt-yellow), 0 10px 24px rgba(0,0,0,.3); }
@media (max-width: 1024px) {
  .tt-hero__bg--xmas .tt-hero__photo { left: 0; }
  .tt-hero__bg--xmas::after { background: linear-gradient(180deg, rgba(30,63,42,.92) 0%, rgba(30,63,42,.78) 45%, rgba(30,63,42,.55) 100%); }
  .tt-hero__bg--xmas .tt-hero__photo img { object-position: center 20%; }
}

/* Kerstmenu-sectie */
.tt-site .e-con.tt-kerst { position: relative; overflow: hidden; color: #fff; background-image: radial-gradient(ellipse 60% 70% at 75% 55%, rgba(242,195,49,.22), transparent 70%); }
.tt-kerst .tt-kerst__bg { position: absolute; inset: 0; width: 100%; margin: 0; pointer-events: none; }
.tt-kerst .tt-kerst__bg .tt-sparkles { width: 100%; height: 100%; }
.tt-kerst > .e-con-inner > .e-con, .tt-kerst .tt-kerst__row { position: relative; z-index: 2; }
body.tt-site .tt-kerst .elementor-heading-title { color: #fff; }
body.tt-site .tt-kerst .tt-kerst__title .elementor-heading-title { font-size: 64px; line-height: .95; letter-spacing: -.02em; }
body.tt-site .tt-kerst .tt-hand .elementor-heading-title { color: var(--tt-yellow); }
.tt-yellow { color: var(--tt-yellow); }
body.tt-site .tt-kerst .elementor-widget-text-editor { color: #FBE3E1; font-size: 17.5px; line-height: 1.6; max-width: 500px; }
.tt-steps { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; font-size: 16.5px; color: #fff; }
.tt-steps > div { display: flex; align-items: center; gap: 14px; }
.tt-steps .n { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--tt-yellow); color: var(--tt-xmas); font-family: var(--tt-font-display); font-weight: 800; display: grid; place-items: center; }
.tt-site .elementor-widget-button.tt-btn--cream .elementor-button { background: var(--tt-cream) !important; color: #C8231A !important; box-shadow: 0 6px 16px rgba(0,0,0,.25); font-weight: 800; }
.tt-site .elementor-widget-button.tt-btn--cream .elementor-button:hover { background: #fff !important; color: #A81E16 !important; }
.tt-flyers { position: relative; height: 480px; }
.tt-flyers img { width: 100%; height: 100%; display: block; object-fit: contain; }
.tt-flyers__binnen { position: absolute; left: 0; top: 90px; width: 470px; height: 332px; transform: rotate(-6deg); box-shadow: 0 26px 50px rgba(0,0,0,.45); }
.tt-flyers__kaft { position: absolute; right: 30px; top: 0; width: 220px; height: 467px; transform: rotate(6deg); box-shadow: 0 30px 60px rgba(0,0,0,.55); }
@media (max-width: 1200px) { .tt-flyers__binnen { width: 380px; height: 269px; top: 110px; } .tt-flyers__kaft { width: 180px; height: 382px; right: 10px; } }
@media (max-width: 1024px) {
  .tt-flyers { height: auto; display: flex; gap: 28px; justify-content: center; align-items: flex-start; padding: 24px 0 10px; }
  .tt-flyers__binnen, .tt-flyers__kaft { position: static; }
  .tt-flyers__binnen { width: 58%; height: auto; aspect-ratio: 470/332; }
  .tt-flyers__kaft { width: 26%; height: auto; aspect-ratio: 220/467; }
  body.tt-site .tt-kerst .tt-kerst__title .elementor-heading-title { font-size: 44px; }
}
@media (max-width: 767px) { body.tt-site .tt-kerst .tt-kerst__title .elementor-heading-title { font-size: 36px; } }

/* Footer: afhaaldag kerst */
.tt-hours__row--xmas { margin-top: 6px; padding-top: 10px; border-top: 1px dashed rgba(242,195,49,.5); }
.tt-hours__row--xmas span:first-child { color: var(--tt-red); font-weight: 700; }
.tt-footer .tt-hours__row--xmas span:first-child { color: var(--tt-yellow) !important; font-weight: 700; }
.tt-footer .tt-hours__row--xmas span:last-child { color: #EFE9DC; }
/* Hoofdmenu: zwarte links, rood bij hover/actieve pagina */
body.tt-site .tt-nav__list a { color: var(--tt-ink); }
body.tt-site .tt-nav__list a:hover, body.tt-site .tt-nav__list .current-menu-item > a, body.tt-site .tt-nav__list .current-menu-ancestor > a, body.tt-site .tt-nav__list .current_page_parent > a { color: var(--tt-red); }
