:root {
  --bg:#f6f2ee;
  --ink:#2b2a2a;
  --muted:#6e6a67;
  --card:#ffffff;
  --shadow:0 10px 30px rgba(0,0,0,.08);
  --radius:1.5rem;

  --cta-bg:#efe9e3;
  --cta-text-color: var(--ink);
	
	--navbar-height: 100px;
}
html,body{background:var(--bg); color:var(--ink);}
.font-display{font-family:"Playfair Display",serif;}
.font-body{font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;}
.container-wide{max-width:1200px;}

/* voorkom te ver doorscrollen op algemene voorwaarden pagina */
h2[id],
h3[id] {
    scroll-margin-top: var(--navbar-height);
}



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

.site-header {
    position: sticky;
    top: 0;
    z-index: 1030; /* boven cards, onder modals */
    background: var(--bg);
    padding-top: 1.25rem;
    padding-bottom: 0.75rem;

    /* subtiele scheiding zoals preview */
    border-bottom: 1px solid rgba(0,0,0,0.04);
}

/* Bootstrap navbar reset / verfijning */
.site-header .navbar {
    padding: 0;              /* wij regelen spacing zelf */
    background: transparent; /* geen Bootstrap achtergrond */
}

/* Zorgt dat header even breed is als main */
.site-header .container-wide {
    max-width: 1200px;
}

/* Logo */
.navbar-brand {
    padding: 0;
    margin-right: 1.5rem;
    display: flex;
    align-items: center;
}

.nav-logo-img {
    height: 28px;     /* bewust kleiner dan nu */
    width: auto;
    display: block;
}

/* Iets groter logo op desktop */
@media (min-width: 992px) {
    .nav-logo-img {
        height: 32px;
    }
}

/* Menu-items */
.navbar-nav {
    align-items: center;
}

/* Pills (menu buttons) */

.navbar .pill {
	--pill-bg: #fffbf8;
	--pill-border: #fdeddd;
	--pill-text: #8f857c;
	--pill-bg-hover: #ebe4dd;
	--pill-text-hover: #6f665f;
	
    display: inline-flex;
    align-items: center;

    padding: 10px 30px;
    font-size: 18px;
    background: #eee;
    border-radius: 999px;

	font-weight: var(--bs-nav-link-font-weight);
    color: var(--bs-nav-link-color);
    text-decoration: none;

	border: 1px solid var(--pill-border);
	background-color: var(--pill-bg);
	color: var(--pill-text);
	
	transition: background .2s ease, transform .15s ease;
}

.navbar .pill:hover {
    background: #ddd;
    transform: translateY(-1px);
}

/* Hamburger knop subtieler */
.navbar-toggler {
    border: 0;
    padding: 6px 8px;
}

.navbar-toggler:focus {
    box-shadow: none;
}

/* Mobile menu: iets meer lucht */
@media (max-width: 991.98px) {
    .navbar-collapse {
        margin-top: 1rem;
    }

    .navbar-nav {
        gap: 0.75rem;
    }
}


/* Hero */
.hero{position:relative; overflow:hidden; border-radius:var(--radius); background:#f0ece8; box-shadow:var(--shadow);}
.hero-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:.85;}
.hero-content{position:relative; padding: clamp(2rem, 4vw, 3rem);}
.display-title{font-size: clamp(2.8rem, 6vw, 6rem); line-height: .95;}
.display-sub{letter-spacing:.2em; text-transform:uppercase; color:var(--muted); font-weight:600; font-size:.9rem;}
.ghost-pill{display:inline-flex; align-items:center; gap:.6rem; background:#ffffffd0; border-radius:999px; padding:.7rem 1.1rem; box-shadow:var(--shadow);}
.ghost-pill span{font-weight:600;}

/* Subtitle/header image (2346 x 418) */
.page-subtitle-img{ width: 100%; aspect-ratio: 2346 / 418; overflow: hidden; /* mobile first: niet te hoog */ height: clamp(54px, 12vw, 110px); /* optioneel, ziet er vaak nice uit */ border-radius: 14px;}

/* laat aspect-ratio de hoogte sturen op grotere schermen */
@media (min-width: 768px){
  .page-subtitle-img{ height: auto; /* dan pakt aspect-ratio het over */ }
}

.page-subtitle-img__img{ width: 100%; height: 100%; display: block; object-fit: cover; object-position: center;}


/* Cards */
.soft-card{border-radius:var(--radius); overflow:hidden; background:var(--card); box-shadow:var(--shadow);}
.ratio-img{object-fit:cover; width:100%; height:100%;}
.overlay-title{position:absolute; left:0; right:0; bottom:0; padding:1.5rem; color:#fff; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 100%);}
.overlay-title h3{font-size: clamp(1.4rem, 2.3vw, 2rem); margin:0;}
.overlay-badge{display:inline-block; background:#ffffffcc; color:#1f1f1f; padding:.5rem 1rem; border-radius:999px; font-weight:600; font-size:.9rem;}
.overlay-center {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.overlay-center h3 {margin: 0; font-size: clamp(1.4rem, 2vw, 2rem);}
.overlay-pill {
  background: rgba(255,255,255,0.85); /* lichte achtergrond */
  color: var(--ink);
  padding: 0.6rem 1.2rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1.1rem;
  box-shadow: var(--shadow);
}

/* Features grid */
.feature{background:var(--card); border-radius:1.25rem; box-shadow:var(--shadow); padding:1rem;}
.feature .img-wrap{border-radius:1rem; overflow:hidden;}
.lead-muted{color:var(--muted);}

/* CTA */
.cta{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow);}
.cta .cta-pill{display:inline-block; padding:.9rem 1.2rem; border-radius:999px; background:#efe9e3; font-weight:600;}

/* Footer – zachter, ronder, minder contrast */
.site-footer { 
  background: var(--card);
  border-radius: calc(var(--radius) + .5rem);     /* rond alle hoeken, incl. onder */
  box-shadow: var(--shadow);
  color: var(--muted);                             /* zachte basistekst */
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* Typografie */
.striked { text-decoration: line-through }
.footer-card h5, .footer-card h6 { color: var(--ink); }
.footer-text { color: var(--muted); line-height: 1.6; }

/* Links subtieler */
.footer-list a{
  color: var(--ink);
  text-decoration: none;
  opacity: .9;
}
.footer-list a:hover{ opacity: 1; text-decoration: underline; }

/* Items in lijst consistent stylen */
.footer-list li{ margin-bottom: .25rem; color: var(--muted); }

/* Onderbalk subtiel */
.footer-bottom{
  border-top: 1px solid #e9e5e1;
}

/* Extra lucht rondom kolommen op mobiel */
@media (max-width: 575.98px){
  .footer-card{ padding: 1.5rem; }
}



/* --- DESKTOP & TABLET --- */

.calendar-card {
    border-radius: 1.25rem;
    border: 1px solid #eee;
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(0,0,0,0.04);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.calendar-wrapper {
    display: flex;
    align-items: stretch; /* belangrijk: kinderen rekken mee in hoogte */
}

/* Datumblok en afbeelding nemen de volledige hoogte van de wrapper */
.calendar-date-badge,
.calendar-image-wrapper {
    height:100%;
}

/* Datumblok: inhoud centreren in het blok */
.calendar-date-badge {
	aspect-ratio: 1 / 1;
	width: 148px;
    min-width: 148px;
    border-radius: 1.25rem;
    background: linear-gradient(135deg, #f3d5ff, #ffe5f2);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: #5d3a6b;
    margin-right: 1.25rem;
}

.calendar-date-day {
    font-size: 1.7rem;
    line-height: 1;
}

.calendar-date-month {
    font-size: 0.8rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* Afbeelding vult de hoogte van de kaart */
.calendar-image-wrapper {
    aspect-ratio: 1 / 1;
    width: 148px;
    min-width: 148px;
    height: 148px;
    border-radius: 1.25rem;
    overflow: hidden;
    background: #f8f9fa;
    margin-right: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.calendar-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;            /* dit trimt de afbeelding perfect in het vierkant */
}
/* Meta-informatie */
.calendar-meta {
    font-size: 0.9rem;
    color: #6c757d;
}

.calendar-meta i {
    margin-right: 0.25rem;
}

.calendar-meta span {
    margin-right: 1rem;
}

.calendar-type-badge {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    background: #f8f3ff;
    color: #6c3f86;
}


/* ===== OVERZICHTPAGINA'S HOVER & CLICK ===== */

.card-link {
    text-decoration: none;
    color: inherit;
}
.activity-card {
    transition: 
        background-color .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}
.card-link:hover .activity-card,
.card-link:focus-visible .activity-card {
    background-color: #f8f5f2;
    box-shadow: 0 12px 30px rgba(0,0,0,.08);
    transform: translateY(-2px);
}
.card-link:focus-visible {
    outline: none;
}
.card-link:focus-visible .activity-card {
    outline: 2px solid rgba(0,0,0,.15);
    outline-offset: 4px;
}
.activity-image-wrapper{
    background: #f8f9fa;
}




/* ===== AGENDA HOVER & CLICK ===== */

.agenda-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.calendar-card {
    transition: 
        background-color .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}

.agenda-link:hover .calendar-card,
.agenda-link:focus-visible .calendar-card {
    background-color: #f8f5f2;
    box-shadow: 0 12px 30px rgba(0,0,0,.08);
    transform: translateY(-2px);
}

.agenda-link:focus-visible {
    outline: none;
}

.agenda-link:focus-visible .calendar-card {
    outline: 2px solid rgba(0,0,0,.15);
    outline-offset: 4px;
}



/* =========================
   AGENDA – MAANDKLEUREN
========================= */
/*
.calendar-date-badge {
    transition: background-color .3s ease;
}
*/

/* Winter */

.month-1  { /*background: #e8f0f7;*/ } /* januari – koel blauw */
.month-2  { /*background: #efe8f7;*/ } /* februari – lila */

/* Lente */
.month-3  { /*background: #eaf6ef;*/ } /* maart – fris groen */
.month-4  { /*background: #f3f9e8;*/ } /* april – licht lime */
.month-5  { /*background: #fff3e6;*/ } /* mei – perzik */

/* Zomer */
.month-6  { /*background: #fff7e0;*/ } /* juni – zacht geel */
.month-7  { /*background: #fff1f1;*/ } /* juli – pastel roze */
.month-8  { /*background: #ffeef6;*/ } /* augustus – warm roze */

/* Herfst */
.month-9  { /*background: #f6efe6;*/ } /* september – beige */
.month-10 { /*background: #f4e8dc;*/ } /* oktober – zand */
.month-11 { /*background: #efe6dc;*/ } /* november – taupe */

/* December */
.month-12 { /*background: #e6f0ef;*/ } /* december – winter mint */



/* --- MOBILE OPTIMALISATIE --- */
@media (max-width: 767.98px) {

    .calendar-card {
        padding: 1.75rem !important;
        border-radius: 1.5rem;
    }

    .calendar-wrapper {
        flex-direction: column;
        align-items: center; /* alles in het midden */
    }

    /* Datumblok groter en gecentreerd */
    .calendar-date-badge {
		aspect-ratio: 1/1;
        width: 100px;
        min-width: 100px;
        height: 100px;
        border-radius: 1.75rem;
        margin: 0 0 1rem 0;
    }

    .calendar-date-day {
        font-size: 2.1rem;
    }

    .calendar-date-month {
        font-size: 1rem;
    }

    /* Afbeelding breed en prominent eronder */
    .calendar-image-wrapper {
        width: 80%;
        max-width: 320px;
        height: 220px;
        margin: 0 0 1rem 0;
    }

    .calendar-image-wrapper img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .calendar-type-badge {
        font-size: 0.85rem;
        padding: 0.35rem 0.8rem;
    }

    h2.h5 {
        font-size: 1.35rem;
        margin-top: 0.5rem;
        text-align: center;
    }

    .calendar-meta {
        font-size: 1rem;
        text-align: center;
    }

    .calendar-meta span {
        display: inline-block;
        margin-bottom: 0.25rem;
    }

    .calendar-meta i {
        font-size: 1.1rem;
    }
}

/* ==================================
	AGENDA TICKER OP HOMEPAGE
===================================*/
/* =========================
   AGENDA TICKER (1 item per view)
========================= */

#agendaTicker{
  /* layout: horizontale rij */
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;

  /* scroll container */
  overflow-x: hidden;          /* we scrollen via JS, geen scrollbar */
  overflow-y: visible;         /* voorkom “afkappen” in hoogte */
  -webkit-overflow-scrolling: touch;

  /* optioneel: iets ruimte zodat shadows niet worden afgesneden */
  padding: .25rem .25rem 1rem;

  /* snap zodat scrollTo per item lekker “pakt” */
  scroll-snap-type: x mandatory;

  /* anti-glitch */
  position: relative;
}

/* elk item is 1 “pagina” breed en mag NIET shrinken */
#agendaTicker > .ticker-item{
  flex: 0 0 100%;
  min-width: 100%;
  scroll-snap-align: start;

  /* anchor als blok zodat ‘ie netjes klikt en hoogte pakt */
  display: block;

  /* voorkomt rare stacking issues als je elders absolute posities hebt */
  position: relative;
  z-index: 1;

  /* geen onderstreping */
  text-decoration: none;
}

/* als je cards schaduwen gebruikt: laat ze niet afkappen */
#agendaTicker > .ticker-item .calendar-card{
  position: relative;
  height: auto;
}

/* wrapper: hou ‘m in de normale flow */
#agendaTicker > .ticker-item .calendar-wrapper{
  position: relative;
  height: auto;
}

/* image-wrapper: ook in de flow (als je ‘m ooit absolute had gezet) */
#agendaTicker > .ticker-item .calendar-image-wrapper{
  position: relative;
}

/* scrollbar verstoppen (voor het geval je overflow-x later op auto zet) */
#agendaTicker{
  scrollbar-width: none; /* Firefox */
}
#agendaTicker::-webkit-scrollbar{
  display: none; /* Chrome/Safari */
}

/* optioneel: iets “hover” zodat het aanvoelt als interactief */
#agendaTicker > .ticker-item:hover{
  transform: translateY(-1px);
}


/* Footer */
.muted-small{font-size:.875rem; color:var(--muted);}



/* Forms */
.form-field {
    width: 100%;
    padding: 0.75rem 1rem;

    border-radius: 12px;
    border: 1px solid #e5e5e5;
    background-color: #fff;

    font: inherit;
    color: #222;

    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-field:focus {
    outline: none;
    border-color: #f3c1cf;
    box-shadow: 0 0 0 3px rgba(243, 193, 207, 0.25);
}
.form-field::placeholder {
    color: #aaa;
}

.form-field:disabled {
    background-color: #f7f7f7;
    color: #999;
    cursor: not-allowed;
}
.form-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.9rem;
    font-weight: 500;
    color: #444;
}





/* button styling */
.cta-button-pill {
    appearance: none;
    border: none;
    background: var(--cta-bg);
    color: var(--ink);

    padding: 1rem 1.25rem;
    border-radius: 999px;

    font: inherit;
	font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.cta-button-pill:hover {
    filter: brightness(0.95);
}

.cta-button-pill:focus-visible {
    outline: 2px solid rgba(255,255,255,.6);
    outline-offset: 2px;
}

/* roze variant */
button.cta-button-pill--rose {
    background-color: #f3c1cf;   /* subtiel roze */
    color: #3a1f2a;
}
button.cta-button-pill--rose:hover {
    background-color: #ecadbf;
}

button.cta-button-pill--rose:focus-visible {
    outline: 2px solid rgba(243, 193, 207, 0.6);
    outline-offset: 2px;
}


a.cta-link-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 1rem 1.25rem;
    border-radius: 999px;

    font-weight: 600;
    text-decoration: none;

    background-color: var(--cta-bg);
    color: var(--ink);

    transition: background-color .2s ease, filter .2s ease;
    -webkit-appearance: none;
    appearance: none;
}

a.cta-link-pill:hover {
    filter: brightness(0.95);
}

a.cta-link-pill:focus-visible {
    outline: 2px solid rgba(255,255,255,.6);
    outline-offset: 2px;
}

a.cta-link-pill:active {
    filter: brightness(0.92);
}

/* roze variant */
a.cta-link-pill--rose {
    background-color: #f3c1cf;
    color: #3a1f2a;
}

a.cta-link-pill--rose:hover {
    background-color: #ecadbf;
}

a.cta-link-pill--rose:focus-visible {
    outline: 2px solid rgba(243, 193, 207, 0.6);
}

/* link pill styling */
/*
.cta-link-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 1rem 1.25rem;
    border-radius: 999px;

    font-weight: 600;
    text-decoration: none;

    background-color: var(--cta-bg);
    color: var(--ink);

    transition: background-color .2s ease, filter .2s ease;
}

.cta-link-pill:hover {
    filter: brightness(0.95);
}

.cta-link-pill:focus-visible {
    outline: 2px solid rgba(255,255,255,.6);
    outline-offset: 2px;
}

/* roze variant */
/*
.cta-link-pill--rose {
    background-color: #f3c1cf;
    color: #3a1f2a;
}

.cta-link-pill--rose:hover {
    background-color: #ecadbf;
}

.cta-link-pill--rose:focus-visible {
    outline: 2px solid rgba(243, 193, 207, 0.6);
}

a.cta-link-pill:active{
  filter: brightness(0.92);
}

a.cta-link-pill{
  background-color: var(--cta-bg);
  color: var(--cta-text-color);
}


a.cta-link-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 1rem 1.25rem;
  border-radius: 999px;

  font-weight: 600;
  text-decoration: none;

  background-color: var(--cta-bg);
  color: var(--cta-text-color);

  transition: background-color .2s ease, filter .2s ease;
}

a.cta-link-pill--rose{
  background-color: #f3c1cf;
  color: #3a1f2a;
}
a.cta-link-pill--rose:hover{ background-color: #ecadbf; }
*/


/* List styles */
.no-bullets {
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}



/* Agenda - Detail.php */
/* Reservering */
.booking-sidebar {
    padding: 1.25rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #eee;
    box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}

.price-summary {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    font-size: 1.1rem;
}

.price-summary strong {
    font-weight: 600;
}





/* ====================================================
 HOMEPAGE HERO (LOGO + INTRO + CTA)
==================================================== */

.homepage-hero{
  /* 90vh, maar met betere mobiele ondersteuning */
  min-height: 90vh;
  min-height: 90svh;

  display: flex;
	position: relative;
  align-items: center;

  overflow: hidden; /* voorkomt rare scrollbars door anims */
}

.homepage-hero .container{
  width: 100%;
}

.hero-inner{
  width: min(980px, 100%);
}

/* ====================================================
 LOGO BLOK (circle + text)
==================================================== */

.hero-mark{
  width: clamp(240px, 70vw, 760px);
  aspect-ratio: 1 / 1;

  display: grid;
  place-items: center;
  position: relative;
}

.hero-circle,
.hero-logo-text{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* cirkel */
.hero-circle{
  z-index: 1;
  opacity: 0;
  filter: blur(0.2px);
  pointer-events: none;

  animation: fadeInSoft 3s ease forwards;
  animation-delay: 2800ms;
}

/* tekst */
.hero-logo-text{
  z-index: 2;
  opacity: 0;
  transform: translateY(10px);

  animation: fadeUp 1600ms ease forwards;
  animation-delay: 120ms;
}

/* ====================================================
 INTRO TEKST (reveal L->R + fade)
==================================================== */

.hero-sub.hero-reveal{
  margin-top: clamp(-56px, -3vw, -28px); /* desktop iets dichter tegen logo */
  display: grid;
  gap: .35rem;

  text-align: center;
  padding-inline: 8px;

  color: #D8CDC2;
  font-family: 'Poppins', sans-serif;
}

.hero-reveal__line{
  font-weight: 400;
  letter-spacing: .2px;
  font-size: clamp(16px, 2.1vw, 30px);
  line-height: 1.35;

  opacity: 0;

  animation:
    revealLR 2200ms ease forwards,
    fadeIn 900ms ease forwards;
  animation-delay: var(--d, 0ms), var(--d, 0ms);

  /* Reveal met mask */
  -webkit-mask-image: linear-gradient(90deg, #000 0 60%, transparent 60% 100%);
  -webkit-mask-size: 200% 100%;
  -webkit-mask-position: 100% 0;

  mask-image: linear-gradient(90deg, #000 0 60%, transparent 60% 100%);
  mask-size: 200% 100%;
  mask-position: 100% 0;
}

/* ====================================================
 HERO CTA PILLS
==================================================== */

.btn-hero-pill{
  --pill-bg: #fffbf8;
  --pill-border: #fdeddd;
  --pill-text: #8f857c;
  --pill-bg-hover: #ebe4dd;
  --pill-text-hover: #6f665f;

  padding: 1.05rem 3.2rem;
  border-radius: 999px;
  border: 1px solid var(--pill-border);

  background-color: var(--pill-bg);
  color: var(--pill-text);

  font-family: 'Poppins', sans-serif;
  font-size: 1.2rem;
  font-weight: 500;

  text-decoration: none;

  transition:
    background-color .25s ease,
    color .25s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.btn-hero-pill:hover,
.btn-hero-pill:focus{
  background-color: var(--pill-bg-hover);
  color: var(--pill-text-hover);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
}

.btn-hero-pill:active{
  transform: translateY(0);
  box-shadow: none;
}

/* button fade-in */
.btn-fadeUpSoft{
  opacity: 0;
  transform: translateY(6px);

  animation: btnFadeUp 700ms ease forwards;
  animation-delay: var(--d, 400ms);
}

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

@keyframes fadeUp{
  to{ opacity: 1; transform: translateY(0); }
}

@keyframes fadeInSoft{
  to{ opacity: .9; }
}

@keyframes revealLR{
  to{
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
  }
}

@keyframes fadeIn{
  to{ opacity: 1; }
}

@keyframes btnFadeUp{
  to{ opacity: 1; transform: translateY(0); }
}

/* ====================================================
 MASK FALLBACK
==================================================== */

@supports not ((-webkit-mask-image: linear-gradient(#000,#000)) or (mask-image: linear-gradient(#000,#000))){
  .hero-reveal__line{
    clip-path: inset(0 100% 0 0);
    animation:
      clipReveal 1000ms ease forwards,
      fadeIn 700ms ease forwards;
    animation-delay: var(--d, 0ms), var(--d, 0ms);
  }

  @keyframes clipReveal{
    to{ clip-path: inset(0 0 0 0); }
  }
}

/* ====================================================
 MOBILE TUNING
==================================================== */

@media (max-width: 576px){

	.homepage-hero{
		padding-top: 1.25rem;
		padding-bottom: 1.25rem;
	}

	/* logo compacter zodat het echt in het midden blijft */
	.hero-mark{
		width: min(86vw, 420px);
	}

	/* intro dichterbij, maar niet “over elkaar” */
	.hero-sub.hero-reveal{
		margin-top: -22px;
		gap: .45rem;
	}

	/* tekst bewust groter op mobiel */
	.hero-reveal__line{
		font-size: clamp(16px, 4.8vw, 20px);
	}

	/* buttons onder elkaar */
	.hero-cta{
		flex-direction: column;
		align-items: center;
		gap: 12px !important;
	}

	.btn-hero-pill{
		width: min(92%, 340px);
		padding: .95rem 1.6rem;
		font-size: 1.05rem;
	}
}

/* ====================================================
 REDUCED MOTION
==================================================== */

@media (prefers-reduced-motion: reduce){
  .hero-circle,
  .hero-logo-text,
  .hero-reveal__line,
  .btn-fadeUpSoft{
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    clip-path: none !important;
  }
}


/* ====================================================
 HERO SCROLL INDICATOR
==================================================== */

.hero-scroll-indicator{
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  text-decoration: none;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 42px;
  height: 42px;

  opacity: 0;
  animation: fadeInScroll 1s ease forwards;
  animation-delay: 3200ms; /* verschijnt ná buttons */
}

.scroll-chevron{
  width: 36px;
  height: 36px;

  border-right: 4px solid #D8CDC2;
  border-bottom: 4px solid #D8CDC2;

  transform: rotate(45deg);
  animation: bounceChevron 1.6s ease-in-out infinite;
}

/* Fade in */
@keyframes fadeInScroll{
  to{ opacity: .8; }
}

/* Zachte bounce */
@keyframes bounceChevron{
  0%,100%{
    transform: rotate(45deg) translateY(0);
  }
  50%{
    transform: rotate(45deg) translateY(6px);
  }
}

/* Hover iets subtieler */
.hero-scroll-indicator:hover .scroll-chevron{
  opacity: 1;
}

/* Reduced motion respecteren */
@media (prefers-reduced-motion: reduce){
  .hero-scroll-indicator{
    animation: none;
    opacity: .8;
  }
  .scroll-chevron{
    animation: none;
  }
}
@media (max-width: 576px){

	.hero-scroll-indicator{
		position: static;           /* niet meer absolute */
		transform: none;
		margin: 16px auto 0 auto;  /* dit centreert hem */
		display: flex;
		animation-delay: 3000ms;    /* optioneel */
		
		width: 42px;
		height: 42px;
	}

	.homepage-hero{
		min-height: 90vh;
		min-height: 90svh;
	}
}







/* ====================================================
 CONTACTPAGINA
==================================================== */
/*
.contact-page-hero-bg {
    width: 100%;
    aspect-ratio: 4230 / 800;
    min-height: 120px;
    max-height: 420px;

    background-image: url('/assets/img/heroes/stippellijn-send-with-love.webp');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    display: flex;
    align-items: flex-end;
}
*/



/* ====================================================
 HERO HEADER (CONTACT) - stacked images, one-by-one fade
==================================================== */

/* ====================================================
 CONTACT HERO – FULL WIDTH
==================================================== */

.page-hero{
  overflow: hidden;
}

/* Full-width hero */
.hero-header--full{
  position: relative;
  width: 100vw;
  overflow: hidden;
  display: flex;
  align-items: flex-end;

  /* Desktop/tablet default: behoud je mooie ratio */
  aspect-ratio: 4230 / 800;
  height: auto;

  /* Algemene grenzen */
  min-height: 120px;
  max-height: 420px;
}



/* Images vullen volledige hero */
.hero-header__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;

  animation: heroFadeIn 900ms ease forwards;
  animation-delay: var(--d, 0ms);
  z-index: 1;
}


/* Fade keyframe */
@keyframes heroFadeIn{
  to{ opacity: 1; }
}

/* Op hele kleine schermen iets compacter */
@media (max-width: 576px){
  .hero-header--full{
    /* Op mobiel sturen we op hoogte, niet op aspect-ratio */
    aspect-ratio: auto;
    height: clamp(140px, 22vw, 220px);  /* voel je vrij dit te tweaken */
    min-height: 140px;
    max-height: 220px;
  }
	.hero-header{
    border-radius: 14px;
  }
  .hero-header__subtitle{
    max-width: 38ch;
  }
}

/* Respecteer reduce motion */
@media (prefers-reduced-motion: reduce){
  .hero-header__img{
    animation: none !important;
    opacity: 1 !important;
  }
}

/* =========================================
 IMAGE REVEAL: links → rechts (mask)
========================================= */

.hero-header__img--reveal{
  opacity: 1; /* niet faden, maar onthullen */

  /* mask setup */
  -webkit-mask-image: linear-gradient(
    90deg,
    #000 0%,
    #000 50%,
    transparent 50%
  );
  -webkit-mask-size: 200% 100%;
  -webkit-mask-position: 100% 0;

  mask-image: linear-gradient(
    90deg,
    #000 0%,
    #000 50%,
    transparent 50%
  );
  mask-size: 200% 100%;
  mask-position: 100% 0;

  animation:
    heroRevealLR 1.8s ease forwards;
  animation-delay: var(--d, 0ms);
}

/* Keyframe */
@keyframes heroRevealLR{
  to{
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
  }
}


