/**
 * The Villa Antwerp, frisse look. 1-10-2026, eerst op de staging.
 *
 * Huisstijl van The Villa blijft: roze #CD1962, paars #5A00A0, Poppins, het druipende
 * logo, ronde knoppen, de eigen clubfoto's. Wat verandert is de uitvoering:
 *
 *   - de agenda is de hoofdrol, vlak onder de hero, met de datum als grafisch element
 *   - grote, strakke Poppins in kapitalen in plaats van kleine koppen in kaarten
 *   - ritme van nacht (donker) en papier (warm licht) in plaats van overal witte kaarten
 *   - neon als licht (gloed achter affiches) en niet als vlak (geen verloopknoppen meer)
 *   - één beweging met betekenis: de band met de openingsuren
 *
 * Referenties (onderzoek 1-10-2026): fuse.be (agenda met grote datum), clubvaag.be
 * (datumblok op affiche), fabriclondon.com en pacha.com (affiches onaangetast, één
 * ticketactie per event), shelteramsterdam.nl (agenda meteen onder de hero).
 */

body.villa-fris {
  --f-nacht: #0B0A0F;
  --f-nacht-2: #15121C;
  --f-papier: #F5F1F0;
  --f-papier-2: #ECE6E5;
  --f-licht: #F7F3F6;
  --f-licht-zacht: rgba(247, 243, 246, .74);
  --f-inkt: #0B0A0F;
  --f-inkt-zacht: rgba(11, 10, 15, .70);
  --f-lijn-licht: rgba(247, 243, 246, .14);
  --f-lijn-donker: rgba(11, 10, 15, .12);
  --f-roze: #CD1962;
  --f-roze-hover: #E0306F;
  --f-paars: #5A00A0;
  --f-wrap: 1236px;          /* inhoud 1140 + 2x48, gelijk aan de Elementor-houders van de binnenpagina's */
  --f-sectie: clamp(64px, 9vw, 120px);
  --f-gutter: clamp(16px, 4vw, 48px);
  --f-kop-h: 76px;

  /* de bestaande lagen (design.css, weeztix.css) lezen deze variabelen */
  --villa-grond: var(--f-papier);
  --villa-vlak: #FFFFFF;
  --villa-lijn: var(--f-lijn-donker);
  --villa-inkt: var(--f-inkt);
  --villa-zacht: var(--f-inkt-zacht);

  font-family: "Poppins", Arial, sans-serif;
  background: var(--f-papier);
  color: var(--f-inkt);
  -webkit-font-smoothing: antialiased;
}
body.villa-fris *:focus-visible { outline: 3px solid var(--f-roze); outline-offset: 3px; }

.fris-wrap { width: 100%; max-width: var(--f-wrap); margin-inline: auto; padding-inline: var(--f-gutter); box-sizing: border-box; }
.fris-main, .fris-main *, .fris-kop, .fris-kop *, .fris-voet, .fris-voet *, .fris-partners, .fris-partners * { box-sizing: border-box; }
.fris-main img, .fris-voet img, .fris-partners img, .fris-kop img { max-width: 100%; height: auto; display: block; }
.fris-main h1, .fris-main h2, .fris-main h3, .fris-main p, .fris-voet h2, .fris-voet p, .fris-partners h2 { margin: 0; }

/* ── typografie ────────────────────────────────────────────────────────── */
.fris-label {
  font-size: 12px; line-height: 1.2; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
  color: var(--f-roze);
}
.fris-titel {
  font-size: clamp(40px, 6.2vw, 92px); line-height: .9; font-weight: 800;
  letter-spacing: -.035em; text-transform: uppercase; text-wrap: balance;
}
.fris-onder { margin-top: 12px !important; font-size: 17px; color: var(--f-inkt-zacht); }
.fris-groot { font-size: clamp(22px, 2.4vw, 32px); line-height: 1.3; font-weight: 500; letter-spacing: -.01em; text-wrap: pretty; }

/* ── knoppen: rond zoals de huisstijl, maar vlak en zonder verloop ───────── */
.fris-knop {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 12px 26px; border-radius: 100px;
  font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.fris-knop:hover { transform: translateY(-1px); }
.fris-knop-vol { background: var(--f-roze); color: #fff !important; border: 1px solid var(--f-roze); }
.fris-knop-vol:hover { background: var(--f-roze-hover); border-color: var(--f-roze-hover); }
.fris-knop-vol.is-uit { background: transparent; color: var(--f-licht-zacht) !important; border-color: var(--f-lijn-licht); }
.fris-knop-lijn { background: transparent; color: var(--f-licht) !important; border: 1px solid rgba(247, 243, 246, .5); }
.fris-knop-lijn:hover { background: var(--f-licht); color: var(--f-inkt) !important; border-color: var(--f-licht); }
.fris-knop-donker { background: var(--f-inkt); color: var(--f-licht) !important; border: 1px solid var(--f-inkt); }
.fris-knop-donker:hover { background: var(--f-roze); border-color: var(--f-roze); }

.fris-pijllink {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
  font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  color: inherit; border-bottom: 1px solid currentColor;
}
.fris-pijllink span { transition: transform .2s ease; }
.fris-pijllink:hover { color: var(--f-roze); }
.fris-pijllink:hover span { transform: translateX(4px); }

.fris-badge {
  display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 100px;
  font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  background: var(--f-roze); color: #fff;
}
.fris-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: fris-puls 1.6s ease-in-out infinite; }
@keyframes fris-puls { 50% { opacity: .25; } }

/* ═══ DE KOP ═════════════════════════════════════════════════════════════ */
.fris-kop {
  position: sticky; top: 0; z-index: 900;
  background: rgba(11, 10, 15, .92);
  -webkit-backdrop-filter: saturate(140%) blur(14px); backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--f-lijn-licht);
  color: var(--f-licht);
  transition: background-color .3s ease, border-color .3s ease;
}
.admin-bar .fris-kop { top: 32px; }
@media (max-width: 782px) { .admin-bar .fris-kop { top: 0; } }
/* Op de voorpagina en de pagina's met eigen hero ligt de kop over de foto, tot je scrolt. */
.fris-overlay .fris-kop { position: fixed; left: 0; right: 0; background: linear-gradient(180deg, rgba(11,10,15,.6), rgba(11,10,15,0)); border-color: transparent;
  -webkit-backdrop-filter: none; backdrop-filter: none; }
.fris-overlay .fris-kop.is-gescrold, .fris-overlay .fris-kop.is-open { background: rgba(11, 10, 15, .92); border-color: var(--f-lijn-licht);
  -webkit-backdrop-filter: saturate(140%) blur(14px); backdrop-filter: saturate(140%) blur(14px); }

.fris-kop-binnen {
  max-width: 1400px; margin-inline: auto; padding-inline: var(--f-gutter);
  height: var(--f-kop-h); display: flex; align-items: center; gap: 28px;
}
.fris-logo { flex: 0 0 auto; display: block; }
.fris-logo img { width: 112px; height: auto; }
.fris-nav { margin-left: auto; }
.fris-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.fris-nav a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
  font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  color: var(--f-licht); position: relative;
}
.fris-nav a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 8px; height: 2px; background: var(--f-roze);
  transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.fris-nav a:hover::after, .fris-nav a.is-actief::after { transform: scaleX(1); }
.fris-kop-acties { display: flex; align-items: center; gap: 10px; }
.fris-zoekknop, .fris-menuknop {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-width: 44px; min-height: 44px; padding: 0 10px; border: 0; background: transparent; color: var(--f-licht);
  cursor: pointer; border-radius: 100px; font: inherit;
}
.fris-zoekknop:hover { color: var(--f-roze); }
.fris-kop-cta { min-height: 44px; padding: 10px 22px; }
.fris-menuknop { display: none; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.fris-menuknop-lijnen { width: 22px; height: 12px; position: relative; }
.fris-menuknop-lijnen span { position: absolute; left: 0; right: 0; height: 2px; background: currentColor; transition: transform .25s ease, top .25s ease; }
.fris-menuknop-lijnen span:first-child { top: 0; }
.fris-menuknop-lijnen span:last-child { top: 10px; }
.fris-menuknop[aria-expanded="true"] .fris-menuknop-lijnen span:first-child { top: 5px; transform: rotate(45deg); }
.fris-menuknop[aria-expanded="true"] .fris-menuknop-lijnen span:last-child { top: 5px; transform: rotate(-45deg); }

.fris-zoek { border-top: 1px solid var(--f-lijn-licht); }
.fris-zoek form { max-width: 720px; margin: 0 auto; padding: 16px var(--f-gutter); display: flex; gap: 10px; }
.fris-zoek input, .fris-paneel-zoek input {
  flex: 1; min-height: 48px; padding: 10px 18px; border-radius: 100px; border: 1px solid var(--f-lijn-licht);
  background: rgba(247, 243, 246, .06); color: var(--f-licht); font: inherit; font-size: 16px !important;
}
.fris-zoek input::placeholder, .fris-paneel-zoek input::placeholder { color: var(--f-licht-zacht); }

.fris-paneel { padding: 12px var(--f-gutter) 28px; border-top: 1px solid var(--f-lijn-licht); min-height: calc(100svh - var(--f-kop-h)); }
.fris-paneel ul { list-style: none; margin: 0 0 24px; padding: 0; }
.fris-paneel li { border-bottom: 1px solid var(--f-lijn-licht); }
.fris-paneel li a {
  display: block; padding: 14px 0; font-size: clamp(36px, 11vw, 56px); line-height: 1; font-weight: 800;
  letter-spacing: -.03em; text-transform: uppercase; text-decoration: none; color: var(--f-licht);
}
.fris-paneel li a[aria-current="page"], .fris-paneel li a:hover { color: var(--f-roze); }
.fris-paneel-zoek { display: flex; margin-bottom: 22px; }
.fris-paneel-voet { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 15px; }
.fris-paneel-voet a { color: var(--f-licht-zacht); text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; }

@media (max-width: 960px) {
  .fris-nav, .fris-zoekknop { display: none; }
  .fris-menuknop { display: inline-flex; }
  .fris-kop-acties { margin-left: auto; }
  .fris-logo img { width: 96px; }
}
@media (max-width: 420px) {
  .fris-kop-cta { padding: 10px 16px; letter-spacing: .08em; }
  .fris-menuknop-tekst { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .fris-kop-binnen { gap: 12px; }
}
body.fris-menu-open { overflow: hidden; }

/* ═══ DE VOORPAGINA ══════════════════════════════════════════════════════ */
.fris-main { display: block; background: var(--f-papier); color: var(--f-inkt); overflow-x: clip; }

/* hero */
.fris-hero {
  position: relative; min-height: max(640px, 100svh); display: flex; align-items: flex-end;
  background: var(--f-nacht); color: var(--f-licht); isolation: isolate; overflow: hidden;
}
.fris-hero-beeld { position: absolute; inset: 0; z-index: -2; }
.fris-hero-beeld img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; max-width: none; }
.fris-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(11,10,15,.45) 0%, rgba(11,10,15,.05) 30%, rgba(11,10,15,.35) 60%, rgba(11,10,15,.94) 100%),
    radial-gradient(80% 60% at 0% 100%, rgba(90, 0, 160, .45), transparent 70%);
}
.fris-hero-inhoud {
  position: relative; padding-top: calc(var(--f-kop-h) + 40px); padding-bottom: clamp(36px, 6vw, 72px);
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 28px 40px;
}
.fris-hero-titel {
  grid-column: 1 / -1;
  font-size: clamp(48px, 10.4vw, 168px); line-height: .86; font-weight: 800; letter-spacing: -.045em;
  text-transform: uppercase; text-wrap: balance; max-width: 13ch;
}
.fris-hero-titel span { display: block; color: transparent; -webkit-text-stroke: 2px var(--f-licht); }
@supports not (-webkit-text-stroke: 2px #fff) { .fris-hero-titel span { color: var(--f-licht); } }
.fris-hero-knoppen { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 760px) {
  .fris-hero-inhoud { grid-template-columns: 1fr; }
  .fris-hero-titel span { -webkit-text-stroke-width: 1.5px; }
  .fris-hero-volgend { max-width: none; min-width: 0; }
}

/* agenda */
.fris-agenda {
  position: relative; background: var(--f-nacht); color: var(--f-licht);
  padding-block: clamp(64px, 9vw, 128px);
  background-image: radial-gradient(60% 50% at 85% 0%, rgba(90, 0, 160, .35), transparent 70%),
                    radial-gradient(50% 40% at 0% 100%, rgba(205, 25, 98, .18), transparent 70%);
}
.fris-sectiekop { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: clamp(28px, 4vw, 52px); }
.fris-events { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: clamp(16px, 2vw, 28px); }
.fris-event { position: relative; display: flex; flex-direction: column; gap: 18px; padding-top: 18px; border-top: 1px solid var(--f-lijn-licht); }
.fris-event-link { position: absolute; inset: 0; z-index: 1; border-radius: 6px; }
.fris-event .fris-knop { position: relative; z-index: 2; align-self: flex-start; }
.fris-event-beeld {
  position: relative; order: 2; aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden; background: var(--f-nacht-2);
  isolation: isolate; box-shadow: 0 30px 80px -30px rgba(90, 0, 160, .6);
}
.fris-event-beeld .vwz-affiche { position: absolute; inset: 0; background: transparent; }
.fris-event-beeld .vwz-affiche-beeld, .fris-event-beeld img {
  width: 100%; height: 100%; object-fit: cover; object-position: center; max-width: none; transition: transform .5s ease;
}
.fris-event:hover .fris-event-beeld img { transform: scale(1.03); }
/* tekstaffiche (geen beeld) */
.fris-event-beeld .vwz-affiche-tekst {
  display: flex; flex-direction: column; justify-content: flex-end; padding: 22px; color: var(--f-licht);
  background: linear-gradient(150deg, var(--f-roze), var(--f-paars));
}
.fris-event-beeld .vwz-a-huis { position: absolute; top: 18px; left: 22px; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 600; }
.fris-event-beeld .vwz-a-dag { font-size: 12px; letter-spacing: .22em; font-weight: 600; }
.fris-event-beeld .vwz-a-datum { font-size: 72px; font-weight: 800; letter-spacing: -.04em; line-height: .9; }
.fris-event-beeld .vwz-a-naam { font-size: 18px; font-weight: 700; text-transform: uppercase; }

.fris-event-info { order: 1; display: contents; }
.fris-event-datum { order: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fris-event-datum time { display: flex; align-items: baseline; gap: 12px; }
.fris-event-dag { font-size: 13px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--f-licht-zacht); }
.fris-event-num { font-size: clamp(56px, 6vw, 84px); line-height: .85; font-weight: 800; letter-spacing: -.05em; }
.fris-event-naam { order: 3; font-size: clamp(22px, 2vw, 28px); line-height: 1.1; font-weight: 700; letter-spacing: -.015em; text-transform: uppercase; }
.fris-event-lineup { order: 4; margin-top: -8px !important; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--f-licht-zacht); }
.fris-event .fris-knop { order: 5; }
.fris-event.is-eerst .fris-event-num { color: #FF4F93; }
.fris-leeg { font-size: 19px; color: var(--f-licht-zacht); max-width: 46ch; }
.fris-leeg a { color: #FF8DB8; }
.fris-agenda .fris-pijllink { color: var(--f-licht); }
.fris-agenda .fris-pijllink:hover { color: #FF8DB8; }

/* licht deel */
.fris-licht { background: var(--f-papier); color: var(--f-inkt); }

/* our story */
.fris-verhaal { padding-block: clamp(72px, 10vw, 140px); }
.fris-verhaal-raster { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.fris-verhaal-tekst { display: grid; gap: 22px; justify-items: start; }
.fris-verhaal-tekst > p:not(.fris-groot) { font-size: 17px; line-height: 1.7; color: var(--f-inkt-zacht); max-width: 56ch; }
.fris-verhaal-beelden { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); grid-template-rows: repeat(6, minmax(40px, 1fr)); aspect-ratio: 1 / 1.05; }
.fris-verhaal-beelden figure { margin: 0; overflow: hidden; border-radius: 10px; }
.fris-verhaal-beelden img { width: 100%; height: 100%; object-fit: cover; max-width: none; }
.fris-f1 { grid-column: 1 / 5; grid-row: 1 / 4; }
.fris-f2 { grid-column: 4 / 7; grid-row: 3 / 7; z-index: 1; box-shadow: 0 0 0 8px var(--f-papier); }
.fris-f3 { grid-column: 1 / 4; grid-row: 4 / 7; }

/* statement */
.fris-statement { padding-block: 0 clamp(72px, 10vw, 140px); }
.fris-statement-tekst {
  font-size: clamp(30px, 5.2vw, 76px); line-height: 1.02; font-weight: 800; letter-spacing: -.035em;
  text-transform: uppercase; text-wrap: balance; max-width: 18ch;
  background: linear-gradient(100deg, var(--f-inkt) 55%, var(--f-roze) 80%, var(--f-paars));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* drie ervaringen */
.fris-ervaringen { padding-bottom: clamp(72px, 10vw, 140px); }
.fris-ervaringen-raster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 32px); }
.fris-ervaring { display: grid; gap: 22px; align-content: start; }
.fris-ervaring-beeld { aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; background: var(--f-nacht); }
.fris-ervaring-beeld img { width: 100%; height: 100%; object-fit: cover; max-width: none; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.fris-ervaring:hover .fris-ervaring-beeld img { transform: scale(1.05); }
.fris-ervaring-tekst { display: grid; gap: 12px; justify-items: start; }
.fris-ervaring-nr { font-size: 12px; font-weight: 600; letter-spacing: .2em; color: var(--f-roze); }
.fris-ervaring h3 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.05; font-weight: 800; letter-spacing: -.02em; text-transform: uppercase; }
.fris-ervaring p { font-size: 16px; line-height: 1.65; color: var(--f-inkt-zacht); }
.fris-ervaringen .fris-pijllink { color: var(--f-inkt); }
.fris-ervaringen .fris-pijllink:hover { color: var(--f-roze); }

/* press */
.fris-pers { padding-block: clamp(72px, 10vw, 140px); }
.fris-strook-knoppen { display: flex; gap: 10px; }
.fris-rondknop {
  width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--f-lijn-donker); background: transparent; color: var(--f-inkt);
  font-size: 20px; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.fris-rondknop:hover { background: var(--f-inkt); color: var(--f-licht); border-color: var(--f-inkt); }
.fris-strook {
  list-style: none; margin: 0; display: grid; grid-auto-flow: column; grid-auto-columns: clamp(220px, 26vw, 340px); gap: 16px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 0 var(--f-gutter) 4px; scroll-padding-inline: var(--f-gutter);
  padding-left: max(var(--f-gutter), calc((100vw - var(--f-wrap)) / 2 + var(--f-gutter)));
  scroll-padding-left: max(var(--f-gutter), calc((100vw - var(--f-wrap)) / 2 + var(--f-gutter)));
}
.fris-strook::-webkit-scrollbar { display: none; }
.fris-strook li { scroll-snap-align: start; aspect-ratio: 4 / 5; border-radius: 10px; overflow: hidden; background: var(--f-nacht); }
.fris-strook img { width: 100%; height: 100%; object-fit: cover; max-width: none; }

/* dinner first */
.fris-diner { background: var(--f-nacht); color: var(--f-licht); padding-block: clamp(72px, 10vw, 140px); }
.fris-diner-raster { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.fris-diner-beeld { border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; }
.fris-diner-beeld img { width: 100%; height: 100%; object-fit: cover; max-width: none; }
.fris-diner-tekst { display: grid; gap: 22px; justify-items: start; }
.fris-diner-tekst p { font-size: 18px; line-height: 1.65; color: var(--f-licht-zacht); max-width: 44ch; }

@media (max-width: 900px) {
  .fris-verhaal-raster, .fris-diner-raster { grid-template-columns: 1fr; }
  .fris-ervaringen-raster { grid-template-columns: 1fr; gap: 48px; }
  .fris-ervaring-beeld { aspect-ratio: 4 / 3; }
  .fris-strook-knoppen { display: none; }
}

/* ═══ PARTNERS EN VOET ═══════════════════════════════════════════════════
 * Ronde 4: één donkere band die overloopt in de voet, vier witte logo's op één rij. */
.fris-partners { background: var(--f-nacht); padding-block: clamp(44px, 6vw, 72px); border-top: 1px solid var(--f-lijn-licht); }
.fris-partners .fris-wrap { display: grid; gap: 28px; }
.fris-partners-kop { margin: 0; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--f-licht-zacht); text-align: center; }
.fris-partners-rij { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; }
.fris-partners-rij li { display: flex; justify-content: center; align-items: center; min-height: 96px; }
.fris-partners-rij li + li { border-left: 1px solid var(--f-lijn-licht); }
.fris-partners-rij a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; }
.fris-partners-rij img { width: auto; max-width: 100%; opacity: .78; transition: opacity .25s ease; }
.fris-partners-rij a:hover img, .fris-partners-rij a:focus-visible img { opacity: 1; }
.fris-partners-rij .is-belvedere img    { height: 44px; }
.fris-partners-rij .is-moet-chandon img { height: 54px; }
.fris-partners-rij .is-havana-club img  { height: 70px; }
.fris-partners-rij .is-absolut img      { height: 27px; }
@media (max-width: 700px) {
  .fris-partners-rij { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fris-partners-rij li { min-height: 104px; border-left: 0 !important; }
  .fris-partners-rij li:nth-child(odd) { border-right: 1px solid var(--f-lijn-licht); }
  .fris-partners-rij li:nth-child(-n+2) { border-bottom: 1px solid var(--f-lijn-licht); }
  .fris-partners-rij .is-belvedere img    { height: 36px; }
  .fris-partners-rij .is-moet-chandon img { height: 46px; }
  .fris-partners-rij .is-havana-club img  { height: 60px; }
  .fris-partners-rij .is-absolut img      { height: 22px; }
}
.fris-partners + .fris-voet { border-top: 1px solid var(--f-lijn-licht); }

.fris-voet { background: var(--f-nacht); color: var(--f-licht); padding-block: clamp(56px, 7vw, 96px) 28px; }
.fris-voet-groot { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-bottom: 40px; border-bottom: 1px solid var(--f-lijn-licht); }
.fris-voet-logo img { width: clamp(160px, 22vw, 260px); }
.fris-voet-kolommen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding-block: 40px; }
.fris-voet-lijst { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 2px; font-size: 15px; line-height: 1.5; color: var(--f-licht-zacht); }
.fris-voet-lijst a { color: var(--f-licht); text-decoration: none; display: inline-flex; min-height: 36px; align-items: center; }
.fris-voet-lijst a:hover { color: #FF8DB8; }
.fris-voet-lijst li { min-height: 36px; display: flex; align-items: center; }
.fris-voet-onder { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-top: 22px; border-top: 1px solid var(--f-lijn-licht); font-size: 13px; color: var(--f-licht-zacht); }
.fris-voet-onder a { color: var(--f-licht); }
@media (max-width: 700px) {
  .fris-voet-kolommen { grid-template-columns: 1fr; gap: 28px; }
}

/* ═══ BINNENPAGINA'S (gespiegelde inhoud) ════════════════════════════════
 * De witte kaarten met schaduw en verloopknoppen waren het "afgezaagde". Hier worden ze
 * vlakke vlakken met een fijne lijn, koppen worden groot en strak, knoppen vlak.
 * ════════════════════════════════════════════════════════════════════════ */
body.villa-fris .site-main,
body.villa-fris .page-content { background-color: var(--f-papier); }

body.villa-fris main .villa-kaart {
  background: #FFFFFF;
  border: 1px solid var(--f-lijn-donker);
  border-radius: 14px;
  box-shadow: none;
}

/* paginahero: kop groot, strak, in kapitalen */
body.villa-fris main h1.elementor-heading-title {
  font-family: "Poppins", Arial, sans-serif !important;
  font-weight: 800 !important; letter-spacing: -.04em !important; line-height: .92 !important;
  font-size: clamp(44px, 8vw, 120px) !important; text-transform: uppercase;
}
body.villa-fris main .villa-sectiekop {
  font-weight: 800 !important; letter-spacing: -.03em !important; text-transform: uppercase;
}
body.villa-fris main .villa-sectiekop::after { width: 40px; height: 3px; border-radius: 0; background: var(--f-roze); }

/* knoppen uit de spiegel: vlak roze, kapitalen */
body.villa-fris main a.elementor-button {
  background: var(--f-roze) !important; background-image: none !important; color: #fff !important;
  border: 1px solid var(--f-roze) !important; border-radius: 100px !important; box-shadow: none !important;
  font-family: "Poppins", Arial, sans-serif !important; font-size: 13px !important; font-weight: 600 !important;
  letter-spacing: .12em !important; text-transform: uppercase !important; min-height: 48px; padding: 14px 26px !important;
}
body.villa-fris main a.elementor-button:hover { background: var(--f-roze-hover) !important; border-color: var(--f-roze-hover) !important; transform: translateY(-1px); }

/* beelden: minder rond, geen kaders */
body.villa-fris main .elementor-widget-image img,
body.villa-fris main .sbi_photo,
body.villa-fris main #sb_instagram .sbi_item,
body.villa-fris main .elementor-image-carousel-wrapper .swiper-slide { border-radius: 10px; }

/* Instagram-volgknop in de huisstijl */
body.villa-fris main #sb_instagram .sbi_follow_btn a {
  background: var(--f-inkt) !important; border-radius: 100px !important; padding: 12px 22px !important;
  font-size: 12px !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 600;
}
body.villa-fris main #sb_instagram .sbi_follow_btn a:hover { background: var(--f-roze) !important; box-shadow: none !important; }

/* tarieven op /tables/ */
body.villa-fris main .villa-tarief { border-radius: 10px; box-shadow: none; }
body.villa-fris main .villa-tarief-prijs { color: var(--f-roze); font-weight: 800; }
body.villa-fris main .villa-tarieven-contact a { background: var(--f-roze); background-image: none; box-shadow: none; border-radius: 100px; }

/* ═══ /events/: agenda en detail van villa-weeztix ═══════════════════════ */
body.villa-fris main .vwz {
  --vwz-verloop: var(--f-roze);
  --vwz-schaduw: none;
}
body.villa-fris main .vwz .vwz-kop,
body.villa-fris main .vwz .vwz-detail-titel {
  font-weight: 800; letter-spacing: -.035em; text-transform: uppercase; line-height: .95;
}
body.villa-fris main .vwz .vwz-kop { font-size: clamp(32px, 4.4vw, 60px); margin-bottom: 26px; }
body.villa-fris main .vwz-rij { border-radius: 14px; box-shadow: none; }
body.villa-fris main .vwz-rij:hover { box-shadow: 0 24px 60px -28px rgba(90, 0, 160, .45); border-color: rgba(205, 25, 98, .35); }
body.villa-fris main .vwz .vwz-rij-titel { font-weight: 800; text-transform: uppercase; letter-spacing: -.015em; }
body.villa-fris main .vwz-rij-datum { font-weight: 600; color: var(--f-roze); letter-spacing: .02em; }
body.villa-fris main .vwz-rij.is-voorbij .vwz-rij-datum { color: rgba(11, 10, 15, .45); }
body.villa-fris main .vwz-knop {
  font-size: 13px; letter-spacing: .1em; text-transform: uppercase; min-height: 46px; box-shadow: none;
}
body.villa-fris main .vwz-knop-vol { background: var(--f-roze); box-shadow: none; }
body.villa-fris main .vwz-knop-vol:hover { background: var(--f-roze-hover); box-shadow: none; }
body.villa-fris main .vwz-zijkaart, body.villa-fris main .vwz-rand {
  border: 1px solid var(--f-lijn-donker); background: #fff; box-shadow: none; border-radius: 14px;
}
body.villa-fris main .vwz-zijkaart:first-child { background: var(--f-nacht); border-color: var(--f-nacht); }
body.villa-fris main .vwz-zijkaart:first-child h3 { color: var(--f-licht); }
body.villa-fris main .vwz-zijkaart:first-child p { color: var(--f-licht-zacht); }
body.villa-fris main .vwz-zijkaart:first-child .vwz-icoon { color: #FF8DB8; }
body.villa-fris main .vwz-badge { text-transform: uppercase; letter-spacing: .1em; font-size: 11px; }
body.villa-fris main .vwz-detail-datum { font-weight: 600; color: var(--f-roze); }
body.villa-fris main .vwz-tegel { border-radius: 14px; }

/* ── beweging alleen voor wie dat wil ───────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .fris-badge::before { animation: none; }
  .fris-main *, .fris-kop * { transition: none !important; }
}

/* ── binnenpagina's, ronde 2 (gemeten op /reservations/, 1-10-2026) ─────────
 * De roze hoekkaders rond de foto's zijn Elementor-scheidingslijnen die absoluut over de
 * beelden hangen (6df9301e, 38a0abb7, telkens 2px roze). Zuiver decoratie en het meest
 * gedateerde detail van de site: weg. De korte roze streepjes onder koppen zijn hetzelfde
 * soort widget. */
body.villa-fris main .elementor-widget-divider { display: none !important; }

/* Koppen in de vlakken: zelfde stem als de voorpagina. De MAAT blijft die van de spiegel
 * (anders lopen lange koppen uit smalle kolommen, zie 19-9), enkel gewicht en kast. */
body.villa-fris main h2.elementor-heading-title,
body.villa-fris main h3.elementor-heading-title {
  font-weight: 800 !important; letter-spacing: -.025em !important; text-transform: uppercase; line-height: 1.02 !important;
}
/* Lopende tekst stond op 14 px in de vlakken. */
body.villa-fris main .elementor-widget-text-editor { font-size: 16px !important; line-height: 1.65 !important; }
body.villa-fris main .elementor-blockquote {
  border-left-width: 3px !important; border-left-color: var(--f-roze) !important;
  font-size: 16px !important; line-height: 1.65 !important; font-style: normal;
}
body.villa-fris main .elementor-blockquote__content { font-size: 16px !important; }

/* Pagina's zonder hero (/ladies/, /birthdays/, /tables/) plakten hun eerste vlak tegen de kop. */
body.villa-fris main > .page-content > .elementor > .e-con.e-parent:first-child:has(.villa-kaart) {
  padding-top: clamp(28px, 5vw, 64px) !important;
}

/* De Elementor-kit geeft elke <button> een roze vlak bij hover en focus. Niet voor deze. */
body.villa-fris .fris-zoekknop, body.villa-fris .fris-menuknop,
body.villa-fris .fris-zoekknop:hover, body.villa-fris .fris-menuknop:hover,
body.villa-fris .fris-zoekknop:focus, body.villa-fris .fris-menuknop:focus { background: transparent !important; color: var(--f-licht) !important; box-shadow: none !important; }
body.villa-fris .fris-rondknop:focus:not(:hover) { background: transparent !important; color: var(--f-inkt) !important; }

/* ═══ /events/ IN DE NACHT (1-10-2026, voor IG-post 21 over het eventsysteem) ═══
 * De agenda en de pagina per evenement krijgen dezelfde donkere grond als de agenda op de
 * voorpagina. Rand tot rand via een schaduw + clip-path, zodat de gespiegelde houder van
 * 1140 px blijft staan en er geen horizontale scroll ontstaat. */
body.villa-fris main .vwz {
  --vwz-vlak: var(--f-nacht-2);
  --vwz-lijn: var(--f-lijn-licht);
  --vwz-inkt: var(--f-licht);
  --vwz-zacht: var(--f-licht-zacht);
  position: relative; color: var(--f-licht);
  padding-block: clamp(40px, 6vw, 88px);
  background: var(--f-nacht);
  box-shadow: 0 0 0 100vmax var(--f-nacht);
  clip-path: inset(0 -100vmax);
}
/* ⚠️ Geen gloedlaag op deze houder: hij is 1240 breed en een gloed binnen die doos kapt hard
 * af tegen de rand (gezien op de detailpagina). De affiches en de shop dragen de kleur. */
body.villa-fris main .vwz > * { position: relative; z-index: 1; }
body.villa-fris main .vwz .vwz-kop, body.villa-fris main .vwz .vwz-detail-titel { color: var(--f-licht); }

/* agenda: rijen */
body.villa-fris main .vwz-rij { background: var(--f-nacht-2); border-color: var(--f-lijn-licht); grid-template-columns: 170px minmax(0, 1fr) auto; min-height: 170px; }
body.villa-fris main .vwz-rij .vwz-affiche { min-height: 170px; }
body.villa-fris main .vwz-rij:hover { border-color: rgba(205, 25, 98, .6); box-shadow: 0 30px 70px -30px rgba(205, 25, 98, .45); }
body.villa-fris main .vwz .vwz-rij-titel { color: var(--f-licht); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.05; }
body.villa-fris main .vwz-rij-datum { color: #FF6FA5; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
body.villa-fris main .vwz-rij-extra { color: var(--f-licht-zacht); letter-spacing: .1em; }
body.villa-fris main .vwz-badge { background: rgba(205, 25, 98, .16); color: #FF8DB8; }
body.villa-fris main .vwz-knop { background: transparent; color: var(--f-licht); border-color: rgba(247, 243, 246, .4); }
body.villa-fris main .vwz-knop:hover { background: var(--f-licht); color: var(--f-inkt); }
body.villa-fris main .vwz-knop-vol { background: var(--f-roze); border-color: var(--f-roze); color: #fff; }
body.villa-fris main .vwz-knop-vol:hover { background: var(--f-roze-hover); color: #fff; }
body.villa-fris main .vwz-knop.is-uit { background: transparent; color: var(--f-licht-zacht); border-color: var(--f-lijn-licht); }

/* zijkolom */
body.villa-fris main .vwz-zijkaart, body.villa-fris main .vwz-rand { background: var(--f-nacht-2); border: 1px solid var(--f-lijn-licht); }
body.villa-fris main .vwz-zijkaart:first-child { background: linear-gradient(150deg, var(--f-roze), var(--f-paars)); border-color: transparent; }
body.villa-fris main .vwz-zijkaart:first-child .vwz-icoon { color: #fff; }
body.villa-fris main .vwz-zijkaart:first-child .vwz-knop-vol { background: #fff; border-color: #fff; color: var(--f-inkt); }
body.villa-fris main .vwz-zijkaart:first-child .vwz-knop-vol:hover { background: var(--f-nacht); border-color: var(--f-nacht); color: #fff; }
body.villa-fris main .vwz .vwz-zijkaart h3, body.villa-fris main .vwz .vwz-info h3 { color: var(--f-licht); font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; }
body.villa-fris main .vwz-zijkaart p, body.villa-fris main .vwz-info p { color: var(--f-licht-zacht); }
body.villa-fris main .vwz-zijkaart:first-child p { color: rgba(255, 255, 255, .86); }

/* archief: "You missed this" */
body.villa-fris main .vwz-voorbij { margin-top: clamp(48px, 6vw, 80px); padding-top: clamp(32px, 4vw, 52px); border-top: 1px solid var(--f-lijn-licht); }
body.villa-fris main .vwz-rij.is-voorbij { background: transparent; border-style: dashed; border-color: rgba(247, 243, 246, .18); }
body.villa-fris main .vwz-rij.is-voorbij .vwz-affiche { filter: grayscale(1) contrast(1.05); opacity: .5; transition: filter .3s ease, opacity .3s ease; }
body.villa-fris main .vwz-rij.is-voorbij:hover .vwz-affiche { filter: none; opacity: 1; }
body.villa-fris main .vwz-rij.is-voorbij .vwz-rij-titel { color: rgba(247, 243, 246, .62); }
body.villa-fris main .vwz-rij.is-voorbij .vwz-rij-datum { color: rgba(247, 243, 246, .45); }
body.villa-fris main .vwz-badge.is-grijs { background: rgba(247, 243, 246, .08); color: rgba(247, 243, 246, .7); }
body.villa-fris main .vwz-gemist { padding-top: 36px; }
body.villa-fris main .vwz-gemist p { color: var(--f-licht); font-weight: 800; text-transform: uppercase; letter-spacing: -.02em; font-size: clamp(26px, 3vw, 40px); }
body.villa-fris main .vwz-leeg { background: var(--f-nacht-2); border-color: var(--f-lijn-licht); }
body.villa-fris main .vwz-leeg p { color: var(--f-licht-zacht); }
body.villa-fris main .vwz-leeg a { color: #FF8DB8; }

/* detail */
body.villa-fris main .vwz-terug a { color: var(--f-licht-zacht); letter-spacing: .12em; text-transform: uppercase; font-size: 12px; }
body.villa-fris main .vwz-terug a:hover { color: #FF8DB8; }
body.villa-fris main .vwz .vwz-detail-titel { font-size: clamp(36px, 5.6vw, 80px); }
body.villa-fris main .vwz-detail-datum { color: #FF6FA5; text-transform: uppercase; letter-spacing: .06em; }
body.villa-fris main .vwz-detail-affiche .villa-lineup, body.villa-fris main .vwz-detail-affiche .villa-lineup * { color: var(--f-licht) !important; }
body.villa-fris main .vwz-shop-los { color: var(--f-licht-zacht); }
body.villa-fris main .vwz-shop-los a, body.villa-fris main .vwz-info p a { color: #FF8DB8; }
body.villa-fris main .vwz-shop-leeg p { color: var(--f-licht-zacht); }
body.villa-fris main .vwz .vwz-volgend .vwz-kop { font-size: clamp(28px, 3.4vw, 46px); }
body.villa-fris main .vwz-tegel { border: 1px solid var(--f-lijn-licht); }
body.villa-fris main .vwz-tegel .vwz-badge { background: var(--f-roze); color: #fff; }
@media (max-width: 780px) {
  body.villa-fris main .vwz-rij { grid-template-columns: 110px minmax(0, 1fr); min-height: 0; }
  body.villa-fris main .vwz-rij .vwz-affiche { min-height: 130px; }
  body.villa-fris main .vwz .vwz-rij-titel { font-size: 19px; }
}

/* Tussen de hero van /events/ en de agenda stond een LEGE gespiegelde houder van 70 px
 * (9e5259d): een strook papier tussen de hero en de nacht. Alleen als hij leeg is. */
body.villa-fris main .e-con:has(+ .vwz):not(:has(img, h1, h2, h3, p, a, iframe)) { display: none; }

/* Nog een hoekkader, deze keer als absolute SPACER met een roze rand (/gallery/, 0418bda). */
body.villa-fris main .elementor-widget-spacer.elementor-absolute { display: none !important; }
/* /b2b/: de kop "b2b" stond in #040404 op het roze-paarse vlak (gemeten 1-10-2026). */
body.villa-fris main .elementor-element-48bfc3b4 .elementor-heading-title { color: #fff !important; }

/* ═══ /b2b/, /gallery/, /reservations/ (1-10-2026, ronde 2) ═══════════════ */
.fris-hero-pagina { min-height: max(520px, 74svh); }
.fris-hero-pagina .fris-hero-titel { font-size: clamp(44px, 8.6vw, 136px); max-width: 15ch; }
.fris-hero-label { grid-column: 1 / -1; margin-bottom: -12px !important; color: #FF8DB8; }
.fris-titel-m { font-size: clamp(32px, 4.2vw, 60px); }
.fris-onder-licht { color: var(--f-licht-zacht); font-size: 14px; letter-spacing: .06em; line-height: 1.7; }

/* tekst + beelden naast elkaar */
.fris-split { padding-block: clamp(64px, 9vw, 128px); }
.fris-split + .fris-split { padding-top: 0; }
.fris-split-raster { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.fris-split.is-omgekeerd .fris-split-tekst { order: 2; }
.fris-split-tekst { display: grid; gap: 20px; justify-items: start; }
.fris-split-tekst > p:not(.fris-groot) { font-size: 17px; line-height: 1.7; color: var(--f-inkt-zacht); max-width: 54ch; }
.fris-split-tekst a:not(.fris-knop) { color: var(--f-roze); font-weight: 600; }
.fris-mozaiek { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fris-mozaiek figure, .fris-duo figure { margin: 0; border-radius: 12px; overflow: hidden; background: var(--f-nacht); }
.fris-mozaiek figure { aspect-ratio: 4 / 5; }
.fris-mozaiek figure:nth-child(2), .fris-mozaiek figure:nth-child(4) { transform: translateY(36px); }
.fris-mozaiek img, .fris-duo img { width: 100%; height: 100%; object-fit: cover; max-width: none; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.fris-mozaiek figure:hover img, .fris-duo figure:hover img { transform: scale(1.05); }
.fris-duo { display: grid; grid-template-columns: 1.15fr 1fr; gap: 14px; align-items: end; }
.fris-duo figure:first-child { aspect-ratio: 3 / 4; }
.fris-duo figure:last-child { aspect-ratio: 4 / 5; margin-bottom: -36px; }

/* galerij */
.fris-galerij { padding-block: clamp(48px, 7vw, 96px); }
.fris-galerij-raster { list-style: none; margin: 0; padding: 0; columns: 3 300px; column-gap: 14px; }
.fris-galerij-raster li { break-inside: avoid; margin-bottom: 14px; }
.fris-galerij-item { display: block; border-radius: 10px; overflow: hidden; background: var(--f-nacht); position: relative; }
.fris-galerij-item img { width: 100%; height: auto; transition: transform .6s cubic-bezier(.2,.7,.2,1), opacity .3s ease; }
.fris-galerij-item:hover img { transform: scale(1.04); }
.fris-galerij-item::after { content: ""; position: absolute; inset: 0; border: 2px solid var(--f-roze); border-radius: inherit; opacity: 0; transition: opacity .2s ease; }
.fris-galerij-item:hover::after, .fris-galerij-item:focus-visible::after { opacity: 1; }
@media (max-width: 600px) { .fris-galerij-raster { columns: 2 140px; column-gap: 8px; } .fris-galerij-raster li { margin-bottom: 8px; } }

.fris-lichtbak { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
  background: rgba(11, 10, 15, .96); color: var(--f-licht); }
.fris-lichtbak[open] { display: flex; align-items: center; justify-content: center; }
.fris-lichtbak::backdrop { background: rgba(11, 10, 15, .9); }
.fris-lichtbak img { max-width: min(92vw, 1400px); max-height: 86dvh; width: auto; height: auto; border-radius: 6px; object-fit: contain; }
.fris-lichtbak button { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--f-lijn-licht);
  background: rgba(11, 10, 15, .6) !important; color: var(--f-licht) !important; font-size: 22px; cursor: pointer; }
.fris-lichtbak button:hover { border-color: var(--f-roze); }
.fris-lichtbak-dicht { top: 16px; right: 16px; font-size: 28px !important; }
.fris-lichtbak-pijl.is-vorige { left: 16px; }
.fris-lichtbak-pijl.is-volgende { right: 16px; }

/* tafels en prijzen */
.fris-tafels { background: var(--f-nacht); color: var(--f-licht); padding-block: clamp(64px, 9vw, 128px); }
.fris-tafels .fris-titel { color: var(--f-licht); }
.fris-tafels-raster { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.fris-plattegrond { margin: 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--f-lijn-licht); background: #000; }
.fris-plattegrond a { display: block; }
.fris-prijzen dl { margin: 0 0 28px; display: grid; }
.fris-prijs { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 16px 0; border-bottom: 1px solid var(--f-lijn-licht); }
.fris-prijs:first-child { border-top: 1px solid var(--f-lijn-licht); }
.fris-prijs dt { font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: -.005em; }
.fris-prijs dd { margin: 0; }
.fris-prijs-bedrag { font-size: 18px; font-weight: 800; color: #FF6FA5; text-align: right; white-space: nowrap; }
.fris-prijs-uitleg { grid-column: 1 / -1; font-size: 14px; color: var(--f-licht-zacht); }
.fris-tafels .fris-hero-knoppen .fris-knop { white-space: normal; text-align: center; }

/* instagram */
.fris-insta { padding-block: clamp(64px, 9vw, 120px); border-top: 1px solid var(--f-lijn-donker); }
.fris-insta .fris-titel { margin-bottom: 32px; }
.fris-insta #sb_instagram { padding: 0 !important; }
.fris-insta #sb_instagram #sbi_images { gap: 12px !important; padding: 0 !important; }
.fris-insta #sb_instagram .sbi_item { border-radius: 10px; overflow: hidden; }
.fris-insta #sb_instagram .sbi_follow_btn a { background: var(--f-inkt) !important; border-radius: 100px !important; padding: 12px 22px !important;
  font-size: 12px !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.fris-insta #sb_instagram .sbi_follow_btn a:hover { background: var(--f-roze) !important; }

@media (max-width: 900px) {
  .fris-split-raster, .fris-tafels-raster { grid-template-columns: 1fr; }
  .fris-split.is-omgekeerd .fris-split-tekst { order: 0; }
  .fris-mozaiek figure:nth-child(2), .fris-mozaiek figure:nth-child(4) { transform: none; }
  .fris-duo figure:last-child { margin-bottom: 0; }
}

/* Affiches op /events/ en de eventpagina: overal een VIERKANT met cover (Thierry, 1-10).
 * De plugin zette de detailaffiche op 4:5; daarin houdt HOME (16:9) maar 45% van zijn breedte
 * en valt de tekst eruit. Vierkant houdt 56%, genoeg voor alles wat op het affiche staat. */
body.villa-fris main .vwz-detail-affiche .vwz-affiche { aspect-ratio: 1 / 1; }
body.villa-fris main .vwz-affiche-beeld { object-fit: cover; object-position: center; }
body.villa-fris main .vwz-rij .vwz-affiche { width: 170px; height: 170px; min-height: 0; aspect-ratio: 1 / 1; align-self: center; }
@media (max-width: 780px) {
  body.villa-fris main .vwz-rij { grid-template-columns: 120px minmax(0, 1fr); }
  body.villa-fris main .vwz-rij .vwz-affiche { width: 120px; height: 120px; grid-row: 1 / span 2; }
}
/* Op een drukke foto (fotomuur op /gallery/) las de omlijnde regel slecht: zwaardere sluier. */
.fris-hero-pagina::after {
  background:
    linear-gradient(180deg, rgba(11,10,15,.55) 0%, rgba(11,10,15,.35) 35%, rgba(11,10,15,.7) 70%, rgba(11,10,15,.95) 100%),
    radial-gradient(80% 60% at 0% 100%, rgba(90, 0, 160, .45), transparent 70%);
}
/* De feed van Smash Balloon draagt een witte grond onder de beelden. */
.fris-insta #sb_instagram, .fris-insta #sb_instagram #sbi_images, .fris-insta #sbi_load { background: transparent !important; }

/* ── agenda: raster volgt het aantal events (1-10-2026) ──────────────────── */
.fris-events.is-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fris-events.is-n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 761px) {
  /* Eén event: brede kaart, affiche links, gegevens rechts. */
  .fris-events.is-n1 { grid-template-columns: 1fr; }
  .fris-events.is-n1 .fris-event {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(28px, 4vw, 64px);
    row-gap: 18px; align-content: center;
  }
  .fris-events.is-n1 .fris-event-beeld { grid-column: 1; grid-row: 1 / span 5; }
  .fris-events.is-n1 .fris-event-datum, .fris-events.is-n1 .fris-event-naam,
  .fris-events.is-n1 .fris-event-lineup, .fris-events.is-n1 .fris-knop { grid-column: 2; }
  .fris-events.is-n1 .fris-event-datum { align-self: end; }
  .fris-events.is-n1 .fris-event-num { font-size: clamp(72px, 9vw, 140px); }
  .fris-events.is-n1 .fris-event-naam { font-size: clamp(30px, 3.4vw, 52px); }
  .fris-events.is-n1 .fris-knop { align-self: start; justify-self: start; }
}
@media (max-width: 1000px) { .fris-events.is-n3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .fris-events.is-n2, .fris-events.is-n3 { grid-template-columns: 1fr; } }

/* "Upcoming shows" op de eventpagina: met één tegel bleef de rechterhelft leeg.
 * Dan een brede kaart: affiche als vierkant links, gegevens rechts. */
@media (min-width: 781px) {
  body.villa-fris main .vwz-tegels:has(> .vwz-tegel:only-child) { grid-template-columns: 1fr; grid-auto-rows: 360px; }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child { grid-column: 1 / -1; background: var(--f-nacht-2); }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child .vwz-affiche { right: auto; width: 360px; }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child .vwz-tegel-sluier { display: none; }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child .vwz-tegel-datum { left: 400px; top: 40px; font-size: 18px; color: #FF6FA5; text-transform: uppercase; letter-spacing: .06em; }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child .vwz-badge { left: 400px; right: auto; top: 76px; }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child .vwz-tegel-onder { left: 400px; right: 40px; bottom: 40px; justify-items: start; }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child .vwz-tegel-naam { font-size: clamp(34px, 4vw, 56px); font-weight: 800; text-transform: uppercase; letter-spacing: -.03em; }
  body.villa-fris main .vwz-tegels > .vwz-tegel:only-child .vwz-knop { min-width: 220px; }
}
.fris-badge { white-space: nowrap; }
@media (min-width: 1001px) { .fris-events.is-n3 .fris-event-num { font-size: clamp(48px, 4.6vw, 72px); } }

/* ═══ RONDE 3 (1-10-2026): één raster, sobere hero, subtiel datumlabel ═══════════
 * Thierry: "die roze banner is te cheap. die button op dat event this saturday is lelijk,
 * alles moet beter uitgelijnd worden." Gemeten met een rasteroverlay op 1440 en 390. */

/* Kop op hetzelfde raster als de inhoud: logo en rechterkant vallen op de inhoudsranden. */
.fris-kop-binnen { max-width: var(--f-wrap); }

/* Hero: kop, dan één onderlijn met knoppen links en het volgende event rechts,
 * dan een fijne regel met uren en adres. Alles op dezelfde linkerrand. */
.fris-hero-inhoud { grid-template-columns: minmax(0, 1fr) auto; align-items: end; row-gap: 32px; }
.fris-hero-knoppen { align-self: end; }
.fris-hero-volgend {
  align-self: end; justify-self: end; display: grid; gap: 6px; text-align: right;
  color: var(--f-licht); text-decoration: none; padding: 0; border: 0; background: none;
}
.fris-hero-volgend .fris-label { color: #FF8DB8; }
.fris-hero-volgend-naam { font-size: 20px; line-height: 1.15; font-weight: 700; }
.fris-hero-volgend-naam span { display: inline-block; transition: transform .2s ease; }
.fris-hero-volgend:hover .fris-hero-volgend-naam span { transform: translateX(4px); }
.fris-hero-volgend-datum { font-size: 14px; line-height: 1.2; color: var(--f-licht-zacht); }
.fris-hero-uren {
  grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 0;
  padding-top: 18px; border-top: 1px solid rgba(247, 243, 246, .22);
  font-size: 13px; line-height: 1.4; letter-spacing: .04em; color: var(--f-licht-zacht);
}
.fris-hero-uren span:nth-child(2) { color: var(--f-licht); font-weight: 600; }
@media (max-width: 760px) {
  .fris-hero-inhoud { grid-template-columns: 1fr; row-gap: 24px; }
  .fris-hero-volgend { justify-self: start; text-align: left; }
  .fris-hero-uren { flex-direction: column; gap: 4px; }
}

/* Sectiekop: titel en link op dezelfde basislijn. */
.fris-sectiekop { align-items: last baseline; }

/* Datum: dag en "This Saturday" klein BOVEN het cijfer, zelfde linkerrand. Geen pil, geen stip. */
.fris-event-datum { display: block; }
.fris-event-datum time { display: grid; gap: 6px; justify-items: start; }
.fris-event-dag { display: flex; gap: 10px; align-items: baseline; font-size: 12px; letter-spacing: .18em; }
.fris-event-wanneer { color: #FF6FA5; font-weight: 600; }
.fris-event-num { line-height: .82; }

/* Eventlabels in de agenda van /events/: dezelfde rustige stem. */
body.villa-fris main .vwz-badge { background: none !important; padding: 0; color: #FF6FA5; font-size: 12px; letter-spacing: .14em; }
body.villa-fris main .vwz-badge-punt { display: none; }
body.villa-fris main .vwz-badge.is-grijs { color: rgba(247, 243, 246, .6); }
body.villa-fris main .vwz-tegel .vwz-badge { color: #fff; }

/* Eén sectieritme. */
.fris-agenda, .fris-verhaal, .fris-pers, .fris-diner, .fris-split, .fris-tafels, .fris-insta, .fris-galerij { padding-block: var(--f-sectie); }
.fris-statement, .fris-ervaringen { padding-bottom: var(--f-sectie); }
.fris-split + .fris-split { padding-top: 0; }

/* /events/: dezelfde breedte en gutter als de rest. */
body.villa-fris main .vwz { max-width: var(--f-wrap); padding-inline: var(--f-gutter); }
.fris-enkel { margin: 0; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--f-nacht); }
.fris-enkel img { width: 100%; height: 100%; object-fit: cover; max-width: none; }
/* Eventpagina zonder hero: ruimte onder de vaste kop. */
body.vwz-is-detail .fris-main { background: var(--f-nacht); }
body.villa-fris.vwz-is-detail main .vwz { padding-top: clamp(32px, 5vw, 64px); }
/* ⚠️ `.fris-main img { height: auto }` won sinds /events/ zelf een fris-main is van de
 * affichehoogte van de plugin: HOME (16:9) stond als strook bovenaan een zwart vierkant.
 * Gemeten 1-10: kader 170x170, beeld 170x96. */
.fris-main .vwz-affiche-beeld { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }

/* ═══ RONDE 4 (1-10-2026): FAQ, formulieren, reviews, ticketbalk, WhatsApp ═══ */

/* placeholder voor antwoorden die van The Villa moeten komen (enkel staging) */
.fris-placeholder { display: inline; padding: 1px 6px; border-radius: 4px; background: rgba(205, 25, 98, .12); color: var(--f-roze); font-weight: 600; font-size: .92em; }
.fris-agenda .fris-placeholder, .fris-tafels .fris-placeholder { background: rgba(255, 111, 165, .16); color: #FF8DB8; }
.fris-placeholder-blok { margin: 0; padding: 20px 24px; border: 1px dashed var(--f-roze); border-radius: 12px; color: var(--f-roze); font-weight: 500; }

/* FAQ */
.fris-faq { padding-block: var(--f-sectie); border-top: 1px solid var(--f-lijn-donker); }
.fris-faq-raster { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.fris-faq-zij { display: grid; gap: 18px; justify-items: start; position: sticky; top: calc(var(--f-kop-h) + 24px); }
.fris-faq-lijst { border-top: 1px solid var(--f-lijn-donker); }
.fris-faq-item { border-bottom: 1px solid var(--f-lijn-donker); }
.fris-faq-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 20px; align-items: center;
  min-height: 64px; padding: 16px 0; font-size: clamp(17px, 1.5vw, 20px); font-weight: 600; }
.fris-faq-item summary::-webkit-details-marker { display: none; }
.fris-faq-item summary:hover { color: var(--f-roze); }
.fris-faq-plus { position: relative; flex: 0 0 18px; height: 18px; }
.fris-faq-plus::before, .fris-faq-plus::after { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 2px; background: currentColor; transition: transform .25s ease; }
.fris-faq-plus::after { transform: rotate(90deg); }
.fris-faq-item[open] .fris-faq-plus::after { transform: rotate(0deg); }
.fris-faq-antwoord { padding: 0 0 20px; max-width: 64ch; }
.fris-faq-antwoord p { margin: 0; font-size: 16px; line-height: 1.7; color: var(--f-inkt-zacht); }
.fris-faq-antwoord a { color: var(--f-roze); font-weight: 600; }
.fris-faq-item.is-open-vraag summary span:first-child::after { content: "open"; margin-left: 10px; padding: 1px 6px; border-radius: 4px; font-size: 11px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; vertical-align: middle; background: rgba(205, 25, 98, .12); color: var(--f-roze); }
@media (max-width: 900px) { .fris-faq-raster { grid-template-columns: 1fr; } .fris-faq-zij { position: static; } }

/* formulieren */
.fris-form-houder { margin-top: clamp(32px, 4vw, 56px); }
.fris-split-raster > .fris-form-houder { margin-top: 0; }
.fris-form { background: var(--f-nacht-2); border: 1px solid var(--f-lijn-licht); border-radius: 14px; padding: clamp(20px, 3vw, 36px); color: var(--f-licht); }
.fris-form-kop { margin: 0 0 20px; font-size: clamp(22px, 2.2vw, 30px); font-weight: 800; text-transform: uppercase; letter-spacing: -.02em; }
.fris-velden { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.fris-veld { display: grid; gap: 6px; }
.fris-veld.is-breed { grid-column: 1 / -1; }
.fris-veld label { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--f-licht-zacht); }
.fris-optioneel { text-transform: none; letter-spacing: 0; font-weight: 400; }
.fris-veld input, .fris-veld select, .fris-veld textarea {
  width: 100%; min-height: 48px; padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(247, 243, 246, .22);
  background: rgba(247, 243, 246, .05); color: var(--f-licht); font: inherit; font-size: 16px !important;
}
.fris-veld select option { color: #0B0A0F; }
.fris-veld input:focus, .fris-veld select:focus, .fris-veld textarea:focus { outline: 2px solid var(--f-roze); outline-offset: 1px; border-color: transparent; }
.fris-veld input::-webkit-calendar-picker-indicator { filter: invert(1); }
.fris-vink { display: flex; gap: 10px; align-items: center; margin: 18px 0; font-size: 15px; color: var(--f-licht-zacht); min-height: 44px; cursor: pointer; }
.fris-vink input { width: 20px; height: 20px; accent-color: var(--f-roze); }
.fris-form .fris-knop { width: 100%; }
.fris-form-klein { margin: 12px 0 0; font-size: 13px; color: var(--f-licht-zacht); }
.fris-form-melding { margin: 0 0 18px; padding: 14px 16px; border-radius: 10px; font-weight: 600; }
.fris-form-melding.is-ok { background: rgba(80, 200, 140, .14); color: #8EF0BE; }
.fris-form-melding.is-fout { background: rgba(255, 111, 165, .14); color: #FF8DB8; }
.fris-form-test { margin: -8px 0 18px; font-size: 13px; color: #FF8DB8; }
.fris-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 600px) { .fris-velden { grid-template-columns: 1fr; } }

/* reviews */
.fris-reviews { padding-block: var(--f-sectie); border-top: 1px solid var(--f-lijn-donker); }
.fris-reviews-score { display: grid; justify-items: end; gap: 4px; text-align: right; font-size: 14px; color: var(--f-inkt-zacht); }
.fris-reviews-getal { font-size: 48px; line-height: 1; font-weight: 800; color: var(--f-inkt); }
.fris-reviews-sterren { display: inline-flex; gap: 2px; color: var(--f-roze); }
.fris-reviews-lijst { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fris-review { display: grid; gap: 14px; align-content: start; padding: 24px; background: #fff; border: 1px solid var(--f-lijn-donker); border-radius: 14px; }
.fris-review blockquote { margin: 0; }
.fris-review blockquote p { margin: 0; font-size: 16px; line-height: 1.6; }
.fris-review-wie { display: flex; gap: 10px; align-items: center; margin: 0; font-weight: 600; }
.fris-review-wie img { width: 36px; height: 36px; border-radius: 50%; }
.fris-review-wie span { display: grid; }
.fris-review-wie small { font-weight: 400; color: var(--f-inkt-zacht); }
.fris-review-wie a { color: inherit; }
.fris-reviews-bron { margin: 18px 0 0; font-size: 13px; color: var(--f-inkt-zacht); }
@media (max-width: 900px) { .fris-reviews-lijst { grid-template-columns: 1fr; } .fris-reviews-score { justify-items: start; text-align: left; } }

/* B2B */
.fris-kaarten { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.fris-kaart { display: grid; gap: 12px; align-content: start; padding: 24px; border: 1px solid var(--f-lijn-licht); border-radius: 14px; background: var(--f-nacht-2); }
.fris-kaart h3 { margin: 0; font-size: 20px; font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; color: var(--f-licht); }
.fris-kaart p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--f-licht-zacht); }
.fris-in-lijst { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 32px; margin: 0; }
.fris-in-lijst div { padding-top: 16px; border-top: 2px solid var(--f-inkt); }
.fris-in-lijst dt { font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 8px; }
.fris-in-lijst dd { margin: 0; font-size: 15px; line-height: 1.6; color: var(--f-inkt-zacht); }
.fris-in-lijst a { color: var(--f-roze); font-weight: 600; }
.fris-feiten { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: clamp(32px, 4vw, 56px) 0 0; padding: 20px 0; border-block: 1px solid var(--f-lijn-donker); }
.fris-feiten dt { font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--f-inkt-zacht); margin-bottom: 6px; }
.fris-feiten dd { margin: 0; font-weight: 600; }
.fris-stappen { padding-top: 0; }
.fris-stappen-lijst { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; counter-reset: none; }
.fris-stappen-lijst li { display: grid; gap: 10px; align-content: start; }
.fris-stap-nr { font-size: clamp(56px, 6vw, 88px); line-height: .85; font-weight: 800; color: var(--f-roze); letter-spacing: -.05em; }
.fris-stappen-lijst h3 { margin: 0; font-size: 20px; font-weight: 800; text-transform: uppercase; }
.fris-stappen-lijst p { margin: 0; color: var(--f-inkt-zacht); line-height: 1.6; }
.fris-b2b-form .fris-split-tekst a { color: #FF8DB8; }
@media (max-width: 1000px) { .fris-kaarten { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fris-in-lijst { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fris-feiten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .fris-kaarten, .fris-in-lijst, .fris-stappen-lijst { grid-template-columns: 1fr; } }

/* eventpagina: agenda en delen */
.fris-event-acties { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; }
.fris-event-acties .fris-knop { min-height: 44px; padding: 10px 18px; gap: 8px; }
button.fris-knop-lijn { background: transparent !important; color: var(--f-licht) !important; }
button.fris-knop-lijn:hover { background: var(--f-licht) !important; color: var(--f-inkt) !important; }

/* vaste ticketbalk (enkel mobiel) en de WhatsApp-knop */
.fris-ticketbalk { display: none; }
.fris-wa {
  position: fixed; right: 20px; bottom: 20px; z-index: 950; width: 56px; height: 56px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; background: #25D366; color: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35); transition: transform .2s ease, bottom .25s ease;
}
.fris-wa:hover { transform: scale(1.06); }
.fris-wa:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
@media (max-width: 760px) {
  .fris-ticketbalk {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 940; align-items: center; gap: 12px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(11, 10, 15, .94);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--f-lijn-licht);
    transition: transform .3s ease;
  }
  .fris-ticketbalk.is-weg, body.fris-menu-open .fris-ticketbalk { transform: translateY(110%); }
  .fris-ticketbalk-tekst { flex: 1; min-width: 0; display: grid; text-decoration: none; color: var(--f-licht); }
  .fris-ticketbalk-tekst .fris-label { color: #FF8DB8; font-size: 11px; }
  .fris-ticketbalk-naam { font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .fris-ticketbalk .fris-knop { min-height: 44px; padding: 10px 18px; flex: 0 0 auto; }
  /* De WhatsApp-knop staat BOVEN de balk zolang die zichtbaar is. */
  body.fris-balk-aan .fris-wa { bottom: calc(76px + env(safe-area-inset-bottom)); }
  .fris-wa { right: 16px; bottom: 16px; width: 52px; height: 52px; }
  body.fris-menu-open .fris-wa { display: none; }
  /* ruimte zodat de balk de voet niet bedekt */
  body.fris-balk-aan .fris-voet { padding-bottom: 96px; }
}
@media (prefers-reduced-motion: reduce) { .fris-ticketbalk, .fris-wa { transition: none; } }


/* ═══ Ronde 5 (1-10-2026, feedback Thierry op 390): kaartritme, knoppen, niets bedekt ═══ */
/* Formulierkaart: vaste binnenmarge, kop, ruimte, knoppen. Knoppen even breed en hoog, links uitgelijnd. */
.fris-form { padding: clamp(24px, 3vw, 36px); display: grid; gap: 0; }
.fris-form-kop { margin: 0 0 24px; }
.fris-form > .fris-hero-knoppen { display: grid; grid-template-columns: 1fr; gap: 12px; }
.fris-form > .fris-hero-knoppen .fris-knop { width: 100%; min-height: 52px; justify-content: center; }
@media (min-width: 601px) { .fris-form > .fris-hero-knoppen { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Overal dezelfde regel voor knoppenrijen: gelijk hoog, links uitgelijnd. */
.fris-hero-knoppen .fris-knop { min-height: 48px; }

/* Reviews: Google-logo en letterbol in plaats van foto. */
.fris-reviews-score { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 6px 10px; text-align: left; justify-items: start; }
.fris-reviews-score .fris-pijllink { grid-column: 1 / -1; }
.fris-reviews-score strong { color: var(--f-inkt); font-size: 18px; }
.fris-reviews-lijst { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.fris-review-letter { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--f-nacht); color: var(--f-licht); font-weight: 700; }

/* Zwevende WhatsApp-knop en ticketbalk mogen niets bedekken: ruimte onder de laatste inhoud. */
body.villa-fris .fris-voet { padding-bottom: 104px; }
@media (max-width: 760px) {
  body.villa-fris .fris-voet { padding-bottom: 168px; }
  /* Bij de partnerlogo's en de voet zit de knop boven de band, niet erover. */
  body.villa-fris .fris-wa { width: 48px; height: 48px; right: 12px; }
}
.fris-wa { transition: transform .2s ease, bottom .25s ease, opacity .2s ease; }
.fris-wa.is-weg { opacity: 0; transform: scale(.8); pointer-events: none; }
/* De kop van een formulierkaart verloor zijn marge aan .fris-main h3 { margin: 0 }. */
.fris-main .fris-form .fris-form-kop { margin: 0 0 28px; }
.fris-reviews-bron { margin-top: 24px !important; }

/* Rustiger (Thierry 1-10 avond: "te bombastisch"). Titels en datums een maat kleiner,
   datum in wit: het roze blijft enkel op het kleine label "This Saturday". */
.fris-titel { font-size: clamp(30px, 3.8vw, 54px); line-height: .95; letter-spacing: -.025em; }
.fris-event-num,
.fris-events.is-n1 .fris-event-num,
.fris-events.is-n3 .fris-event-num { font-size: clamp(30px, 2.8vw, 42px); line-height: 1; letter-spacing: -.03em; font-weight: 700; }
.fris-event.is-eerst .fris-event-num { color: var(--f-licht); }
.fris-events.is-n1 .fris-event-naam { font-size: clamp(24px, 2.2vw, 32px); }

/* Eventkaart rustiger (Thierry 1-10 avond: "de afbeelding card is nog steeds te bombastisch").
   Affiche klein links, gegevens rechts, geen paarse gloed. Op telefoon blijft de affiche boven. */
.fris-event-beeld { box-shadow: none; border-radius: 10px; }
.fris-event-naam, .fris-events.is-n1 .fris-event-naam { font-size: clamp(18px, 1.6vw, 22px); }
@media (min-width: 761px) {
  .fris-events .fris-event, .fris-events.is-n1 .fris-event {
    display: grid; grid-template-columns: clamp(150px, 14vw, 200px) minmax(0, 1fr);
    column-gap: 24px; row-gap: 10px; align-content: start;
  }
  .fris-events .fris-event-beeld, .fris-events.is-n1 .fris-event-beeld { grid-column: 1; grid-row: 1 / span 5; align-self: start; }
  .fris-events .fris-event-datum, .fris-events .fris-event-naam,
  .fris-events .fris-event-lineup, .fris-events .fris-knop { grid-column: 2; }
  .fris-events .fris-event-lineup { margin-top: 0 !important; }
  .fris-events .fris-knop { justify-self: start; align-self: start; margin-top: 6px; }
  .fris-events.is-n1 { max-width: 760px; }
}
/* Ook op telefoon compact (Thierry 1-10: "op mobile ook te bombastisch"): kleine affiche links. */
@media (max-width: 760px) {
  .fris-events .fris-event, .fris-events.is-n1 .fris-event {
    display: grid; grid-template-columns: 112px minmax(0, 1fr); column-gap: 16px; row-gap: 6px; align-content: start;
  }
  .fris-events .fris-event-beeld { grid-column: 1; grid-row: 1 / span 5; align-self: start; border-radius: 8px; }
  .fris-events .fris-event-datum, .fris-events .fris-event-naam,
  .fris-events .fris-event-lineup, .fris-events .fris-knop { grid-column: 2; }
  .fris-events .fris-event-num { font-size: 28px; }
  .fris-events .fris-event-naam { font-size: 17px; }
  .fris-events .fris-knop { justify-self: start; padding: 10px 16px; font-size: 11px; }
}

/* Hero voorpagina op telefoon compact (Thierry 14-10-2026: "extreem veel ruimte boven
 * ANTWERP'S PLACE"). De hero was minstens 100svh hoog met de inhoud onderaan
 * (align-items: flex-end), dus op een hoog toestel begon de titel halverwege het scherm
 * (y=357 op 390x844). Op telefoon volgt de hoogte nu de inhoud en staat de titel vlak onder
 * de kop. De link "Our events" van de agenda schuift onder de kaarten, zodat het eerste event
 * met datum en "Buy tickets" boven de vouw en boven de ticketbalk staat op 390x844.
 * Enkel de voorpagina (.fris-home), enkel tot 760 px: tablet en desktop ongewijzigd. */
@media (max-width: 760px) {
  .fris-home .fris-hero { min-height: 0; align-items: flex-start; }
  .fris-home .fris-hero-inhoud { padding-top: calc(var(--f-kop-h) + 32px); padding-bottom: 40px; row-gap: 28px; }
  .fris-home .fris-hero-uren { padding-top: 14px; gap: 2px; font-size: 12px; letter-spacing: .02em; }
  .fris-home .fris-agenda { padding-top: 48px; }
  .fris-home .fris-agenda > .fris-wrap { display: flex; flex-direction: column; }
  .fris-home .fris-agenda .fris-sectiekop { display: contents; }
  .fris-home .fris-agenda .fris-sectiekop .fris-titel { margin-bottom: 20px; }
  .fris-home .fris-agenda .fris-sectiekop .fris-pijllink { order: 2; align-self: flex-start; margin-top: 20px; }
}

/* Titel op drie regels op telefoon (Thierry 14-10-2026 22:12): ANTWERP'S / PLACE + TO BE /
 * AND BE SEEN, gevuld en omlijnd zoals nu. De <br class="fris-hero-br"> in de h1 doen enkel
 * hier iets; op tablet en desktop staan ze uit en blijft de titel zoals hij was.
 * Gemeten op 48px: breedste regel "AND BE SEEN" 280 px, past vanaf 320 breed (inhoud 288).
 * De Reservations-pil uit de kop: reserveren staat in de hero en in het menu. */
.fris-hero-br { display: none; }
@media (max-width: 760px) {
  .fris-home .fris-hero-br { display: inline; }
  .fris-home .fris-hero-titel { white-space: nowrap; max-width: none; }
  .fris-home .fris-hero-titel span { display: inline; }
  .fris-kop-cta { display: none; }
}

/* Ademruimte v4 (regie 14-10-2026 22:20): titelregels niet tegen elkaar, ±40 px tussen de
 * groepen, minder onder de uren. Enkel telefoon. */
@media (max-width: 760px) {
  .fris-home .fris-hero-titel { line-height: 1.05; }
  .fris-home .fris-hero-inhoud { padding-top: calc(var(--f-kop-h) + 36px); padding-bottom: 32px; row-gap: 40px; }
  .fris-home .fris-hero-uren { margin-top: -8px; }
  .fris-home .fris-agenda { padding-top: 32px; }
}

/* Kaarten in de agenda gelijk (Thierry 26-10-2026: "kan dit niet wat mooier? dat alles gelijk staat?").
   Elke kaart in een rij even hoog, de knop altijd onderaan op dezelfde lijn, en de knop past in de
   tekstkolom (bij drie kaarten naast elkaar was die kolom maar 137px en stak de knop eruit). */
@media (min-width: 761px) {
  .fris-events .fris-event, .fris-events.is-n1 .fris-event {
    grid-template-rows: auto auto auto 1fr auto; height: 100%;
  }
  .fris-events .fris-event-beeld, .fris-events.is-n1 .fris-event-beeld { grid-row: 1 / span 5; }
  .fris-events .fris-event-datum { grid-row: 1; }
  .fris-events .fris-event-naam { grid-row: 2; }
  .fris-events .fris-event-lineup { grid-row: 3; }
  .fris-events .fris-knop { grid-row: 5; align-self: end; margin-top: 14px; max-width: 100%; white-space: nowrap; }
}
@media (min-width: 1001px) {
  .fris-events.is-n3 .fris-event { grid-template-columns: clamp(120px, 9.5vw, 150px) minmax(0, 1fr); column-gap: 20px; }
  .fris-events.is-n3 .fris-knop { padding: 13px 20px; font-size: 12px; }
}
