/* =========================================================
   CHRISTINE DE WINTER — ENHANCE LAYER
   Versie: 20260812-1100

   Deze file wordt NA style.css geladen en verfijnt het bestaande
   ontwerp. Er wordt niets uit style.css verwijderd — alles hier is
   een verrijking: meer diepte, meer beweging, meer verfijning.

   Volgorde in de <head>:
       style.css   -> basis (blijft zoals hij is)
       enhance.css -> deze file
   ========================================================= */


/* =========================================================
   01. UITGEBREIDE DESIGN TOKENS
   ========================================================= */

:root {
    /* Diepere inkt voor contrast en schaduwen */
    --cdw-ink-deep: #161D1A;
    --cdw-ink-soft: rgba(41, 51, 47, .62);

    /* Blush-familie, uitgebreid */
    --cdw-blush-mist: rgba(248, 195, 208, .28);
    --cdw-blush-deep: #E38FA6;

    /* Warm accent naast het bestaande goud */
    --cdw-champagne: #EBDCC0;

    /* Glasoppervlak voor kaarten en panelen */
    --cdw-glass: rgba(255, 255, 255, .74);
    --cdw-glass-line: rgba(255, 255, 255, .58);

    /* Schaduwtrap — zacht, roze getint, nooit grijs */
    --cdw-shadow-xs: 0 1px 2px rgba(41, 51, 47, .05);
    --cdw-shadow-sm: 0 4px 14px -4px rgba(41, 51, 47, .10);
    --cdw-shadow-md: 0 18px 40px -18px rgba(41, 51, 47, .22);
    --cdw-shadow-lg: 0 40px 90px -34px rgba(74, 44, 57, .34);
    --cdw-shadow-glow: 0 30px 70px -30px rgba(227, 143, 166, .55);

    /* Bewegingscurves */
    --cdw-ease: cubic-bezier(.22, 1, .36, 1);
    --cdw-ease-soft: cubic-bezier(.2, .7, .2, 1);
    --cdw-ease-back: cubic-bezier(.34, 1.4, .64, 1);

    /* Snelheden */
    --cdw-fast: .22s;
    --cdw-mid: .45s;
    --cdw-slow: .85s;
}


/* =========================================================
   02. BASIS — TYPOGRAFIE, SELECTIE, SCROLLBAR, FOCUS
   ========================================================= */

body {
    /* Iets rustiger leesritme + betere cijferweergave */
    font-feature-settings: "ss01", "cv01", "tnum" 0;
    letter-spacing: -.008em;
    text-rendering: optimizeLegibility;
}

::selection {
    background: var(--site-blush);
    color: var(--cdw-ink-deep);
}

/* Scrollbar in huisstijl (WebKit + Firefox) */
html {
    scrollbar-color: var(--site-blush-strong) transparent;
    scrollbar-width: thin;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: rgba(41, 51, 47, .05);
}

::-webkit-scrollbar-thumb {
    border: 3px solid transparent;
    border-radius: 999px;
    background: rgba(41, 51, 47, .28);
    background-clip: content-box;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--site-blush-strong);
    background-clip: content-box;
}

/* Zichtbare toetsenbordfocus op de hele site */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--site-blush-strong);
    outline-offset: 3px;
    border-radius: 6px;
}

/* Muis-focus geeft géén ring — alleen toetsenbord */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
summary:focus:not(:focus-visible) {
    outline: none;
}


/* =========================================================
   03. SFEERLAAG — DRIJVENDE GLOED + FILMGRAIN
   Dit is de signatuur van de site: een langzaam bewegend,
   zacht licht achter de content, met een fijne filmkorrel
   eroverheen. Nooit opdringerig, altijd voelbaar.
   ========================================================= */

body::before {
    content: "";
    position: fixed;
    z-index: 0;
    inset: -20vmax;
    pointer-events: none;
    background:
        radial-gradient(38vmax 38vmax at 18% 12%, rgba(248, 195, 208, .55), transparent 62%),
        radial-gradient(32vmax 32vmax at 84% 26%, rgba(235, 220, 192, .48), transparent 64%),
        radial-gradient(42vmax 42vmax at 62% 88%, rgba(227, 143, 166, .30), transparent 66%);
    filter: blur(14px);
    opacity: .85;
}

.motion-ready body::before,
html.motion-ready body::before {
    animation: cdw-aurora 34s var(--cdw-ease-soft) infinite alternate;
}

@keyframes cdw-aurora {
    0% {
        transform: translate3d(0, 0, 0) scale(1);
    }

    50% {
        transform: translate3d(2.5%, -2%, 0) scale(1.06);
    }

    100% {
        transform: translate3d(-2%, 2.5%, 0) scale(1.02);
    }
}

/* Filmkorrel over de hele pagina — geeft de vlakken textuur */
body::after {
    content: "";
    position: fixed;
    z-index: 9998;
    inset: 0;
    pointer-events: none;
    opacity: .06;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

/* Content boven de sfeerlaag houden */
main,
.site-header,
.site-footer {
    position: relative;
    z-index: 1;
}

.site-header {
    z-index: 50;
}

/* Sectie-eigen gloed voor de witte blokken, zodat ook daar
   diepte zit zonder de leesbaarheid aan te tasten. */
.availability,
.contact-section {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(70% 55% at 88% 6%, rgba(248, 195, 208, .20), transparent 60%),
        radial-gradient(60% 50% at 4% 96%, rgba(235, 220, 192, .26), transparent 62%),
        var(--site-white);
}

/* Haarlijn bovenaan witte secties — subtiele scheiding */
.availability::before,
.contact-section::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 0;
    right: 0;
    top: 0;
    height: 1px;
    background: linear-gradient(90deg,
            transparent,
            rgba(198, 161, 91, .38) 22%,
            rgba(227, 143, 166, .55) 50%,
            rgba(198, 161, 91, .38) 78%,
            transparent);
}


/* =========================================================
   04. HEADER — SCROLLSTAAT, VOORTGANGSLINT, WOORDMERK
   ========================================================= */

.site-header {
    background: rgba(247, 244, 245, .72);
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    border-bottom-color: transparent;
    transition:
        background var(--cdw-mid) var(--cdw-ease),
        box-shadow var(--cdw-mid) var(--cdw-ease),
        border-color var(--cdw-mid) var(--cdw-ease);
}

.site-header.is-scrolled {
    background: rgba(247, 244, 245, .92);
    border-bottom-color: rgba(41, 51, 47, .07);
    box-shadow: 0 12px 34px -22px rgba(41, 51, 47, .34);
}

.site-header-shell {
    transition: min-height var(--cdw-mid) var(--cdw-ease);
}

.site-header.is-scrolled .site-header-shell {
    min-height: 74px;
}

/* Scrollvoortgang als blush/goud lint onder de header */
.cdw-progress {
    position: absolute;
    z-index: 3;
    left: 0;
    bottom: -1px;
    height: 2px;
    width: 100%;
    transform: scaleX(var(--cdw-scroll, 0));
    transform-origin: left center;
    background: linear-gradient(90deg,
            var(--site-blush),
            var(--cdw-blush-deep) 45%,
            var(--site-gold));
    pointer-events: none;
}

/* Woordmerk: de tweede regel schuift zacht op bij hover */
.site-wordmark span {
    display: block;
    transition: transform var(--cdw-mid) var(--cdw-ease), color var(--cdw-fast) ease;
}

.site-wordmark:hover span:last-child {
    transform: translateX(5px);
    color: var(--cdw-blush-deep);
}

/* Navigatie-onderstreping van links naar rechts, iets ronder */
.site-nav-link::after {
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--site-blush-strong), var(--site-gold));
    transition: right .34s var(--cdw-ease);
}

/* CTA met satijnveeg */
.site-nav-cta {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.site-nav-cta::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(115deg,
            transparent 22%,
            rgba(255, 255, 255, .34) 47%,
            transparent 66%);
    transform: translateX(-120%);
    transition: transform .78s var(--cdw-ease);
}

.site-nav-cta:hover::before,
.site-nav-cta:focus-visible::before {
    transform: translateX(120%);
}

.site-nav-cta:hover {
    box-shadow: var(--cdw-shadow-glow);
}


/* =========================================================
   05. KNOPPEN — SATIJNVEEG, PIJLBEWEGING, DIEPTE
   ========================================================= */

.hero-button,
.location-whatsapp-button,
.contact-submit,
.cdw-top-button {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition:
        transform var(--cdw-fast) var(--cdw-ease-back),
        background var(--cdw-fast) ease,
        color var(--cdw-fast) ease,
        box-shadow var(--cdw-mid) var(--cdw-ease);
}

.hero-button::before,
.location-whatsapp-button::before,
.contact-submit::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(115deg,
            transparent 20%,
            rgba(255, 255, 255, .40) 48%,
            transparent 68%);
    transform: translateX(-125%);
    transition: transform .8s var(--cdw-ease);
}

.hero-button:hover::before,
.location-whatsapp-button:hover::before,
.contact-submit:hover::before,
.hero-button:focus-visible::before,
.contact-submit:focus-visible::before {
    transform: translateX(125%);
}

.hero-button-primary {
    background: linear-gradient(135deg, var(--cdw-ink-deep), #313D38);
    box-shadow: var(--cdw-shadow-md);
}

.hero-button-primary:hover {
    background: linear-gradient(135deg, var(--site-blush-strong), var(--site-blush));
    box-shadow: var(--cdw-shadow-glow);
}

/* Nieuwe variant: transparante 'ghost'-knop naast de primaire.
   Gebruikt voor de tweede advertentielink. */
.hero-button-ghost {
    border: 1px solid rgba(41, 51, 47, .18);
    background: var(--cdw-glass);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--site-ink);
    box-shadow: var(--cdw-shadow-sm);
}

.hero-button-ghost:hover {
    transform: translateY(-3px);
    border-color: var(--site-blush-strong);
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--cdw-shadow-md);
}

/* Pijl schuift mee en de knop drukt in bij klik */
.button-arrow,
.hero-button span[aria-hidden="true"],
.location-whatsapp-button span[aria-hidden="true"],
.contact-submit span[aria-hidden="true"] {
    display: inline-block;
    transition: transform var(--cdw-mid) var(--cdw-ease-back);
}

.hero-button:hover .button-arrow,
.hero-button:hover span[aria-hidden="true"],
.location-whatsapp-button:hover span[aria-hidden="true"],
.contact-submit:hover span[aria-hidden="true"] {
    transform: translate(4px, -4px);
}

.hero-button:active,
.location-whatsapp-button:active,
.contact-submit:active {
    transform: translateY(-1px) scale(.985);
}


/* =========================================================
   06. KAARTSYSTEEM — CURSORLICHT EN ZACHTE KANTELING
   De cursorpositie wordt door enhance.js in --mx / --my gezet.
   ========================================================= */

.location-card,
.contact-form-card,
.fv-card,
.blog-post,
.hero-card {
    position: relative;
    transition:
        transform var(--cdw-mid) var(--cdw-ease),
        box-shadow var(--cdw-mid) var(--cdw-ease),
        border-color var(--cdw-mid) var(--cdw-ease);
}

/* Zachte lichtvlek die de cursor volgt.
   enhance.js voegt hiervoor een <span class="cdw-glow"> toe, zodat de
   bestaande ::before/::after decoraties uit style.css intact blijven. */
.cdw-glow {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: block;
    border-radius: inherit;
    pointer-events: none;
    opacity: 0;
    background: radial-gradient(340px circle at var(--mx, 50%) var(--my, 50%),
            rgba(248, 195, 208, .30),
            transparent 68%);
    transition: opacity var(--cdw-mid) var(--cdw-ease);
}

.is-hovered > .cdw-glow {
    opacity: 1;
}

/* Donkere kaarten krijgen een warmer, goudachtig licht */
.location-card-dark > .cdw-glow,
.hero-card > .cdw-glow {
    background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%),
            rgba(198, 161, 91, .26),
            transparent 66%);
}

/* Content boven de lichtvlek houden */
.location-card > *:not(.cdw-glow),
.contact-form-card > *:not(.cdw-glow),
.hero-card > *:not(.cdw-glow) {
    position: relative;
    z-index: 1;
}

/* Kanteling — zeer subtiel, alleen op apparaten met muis */
@media (hover: hover) and (pointer: fine) {
    .cdw-tilt {
        transform-style: preserve-3d;
        will-change: transform;
    }

    .cdw-tilt.is-hovered {
        transform:
            perspective(1200px)
            rotateX(var(--rx, 0deg))
            rotateY(var(--ry, 0deg))
            translateY(-6px);
    }
}


/* =========================================================
   07. HERO — DIEPTE, LANGZAME ZOOM, VERFIJNDE VEEG
   ========================================================= */

.hero-kicker span {
    text-wrap: balance;
}

/* Het kicker-lijntje groeit bij binnenkomst */
.hero-kicker-line {
    transform-origin: left center;
    animation: cdw-line-grow 1.1s .35s var(--cdw-ease) both;
}

@keyframes cdw-line-grow {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

/* Titel krijgt fijnere optische afstelling */
.hero-title {
    text-wrap: balance;
}

.hero-title-accent {
    background: linear-gradient(100deg,
            var(--site-blush-strong) 0%,
            var(--cdw-blush-deep) 38%,
            var(--site-gold) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 200% 100%;
    animation: cdw-accent-shift 12s var(--cdw-ease-soft) infinite alternate;
}

@keyframes cdw-accent-shift {
    from {
        background-position: 0% 50%;
    }

    to {
        background-position: 100% 50%;
    }
}

/* De premium kaart krijgt meer gewicht en een randgloed */
.hero-card {
    box-shadow: var(--cdw-shadow-lg);
}

.hero-card-pill {
    transition:
        background var(--cdw-fast) ease,
        color var(--cdw-fast) ease,
        letter-spacing var(--cdw-mid) var(--cdw-ease);
}

.hero-card-pill:hover {
    letter-spacing: .22em;
}

/* Langzame zoom op de actieve foto — filmisch, niet druk */
.motion-ready .hero-photo-slide.is-active {
    animation: cdw-kenburns 9s var(--cdw-ease-soft) forwards;
}

@keyframes cdw-kenburns {
    from {
        transform: scale(1);
    }

    to {
        transform: scale(1.055);
    }
}

/* Fotokader krijgt een dunne binnenrand voor extra afwerking */
.hero-card--gallery .hero-photo-stage::after {
    content: "";
    position: absolute;
    z-index: 4;
    inset: 8px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: inherit;
    pointer-events: none;
}

/* Paginatiepunten: actieve punt krijgt een zachte puls */
.hero-photo-dot {
    transition:
        color var(--cdw-fast) ease,
        background var(--cdw-fast) ease,
        transform var(--cdw-fast) var(--cdw-ease-back),
        border-color var(--cdw-fast) ease;
}

.hero-photo-dot:hover {
    transform: translateY(-2px);
}

/* Kaartlinks onderaan: pijl beweegt, lijn licht op */
.hero-card-link {
    position: relative;
    transition:
        padding var(--cdw-mid) var(--cdw-ease),
        color var(--cdw-fast) ease,
        background var(--cdw-mid) var(--cdw-ease);
}

.hero-card-link::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, var(--site-blush), var(--site-gold));
    transform: scaleY(0);
    transform-origin: bottom center;
    transition: transform var(--cdw-mid) var(--cdw-ease);
}

.hero-card-link:hover {
    padding-left: 16px;
    background: rgba(255, 255, 255, .04);
}

.hero-card-link:hover::before {
    transform: scaleY(1);
    transform-origin: top center;
}

.card-link-arrow {
    display: inline-block;
    transition: transform var(--cdw-mid) var(--cdw-ease-back);
}

.hero-card-link:hover .card-link-arrow {
    transform: translate(4px, -4px);
}


/* =========================================================
   08. BESCHIKBAARHEID — KAARTEN MET MEER KARAKTER
   ========================================================= */

.availability-title {
    text-wrap: balance;
}

.location-card {
    box-shadow: var(--cdw-shadow-sm);
}

.location-card:hover {
    box-shadow: var(--cdw-shadow-md);
}

.location-card-dark:hover {
    box-shadow: var(--cdw-shadow-lg);
}

/* Statusstip pulseert zacht — 'live beschikbaar' */
.location-status::before {
    animation: cdw-pulse 2.6s var(--cdw-ease-soft) infinite;
}

@keyframes cdw-pulse {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .45;
        transform: scale(.72);
    }
}

/* Datumblokken reageren op hover */
.location-date {
    transition:
        transform var(--cdw-fast) var(--cdw-ease-back),
        background var(--cdw-fast) ease,
        box-shadow var(--cdw-fast) ease;
}

.location-date:hover {
    transform: translateY(-3px);
    box-shadow: var(--cdw-shadow-sm);
}

.date-number {
    font-variant-numeric: tabular-nums;
}

/* Plaatsnaam krijgt een oplichtende onderlijn bij hover op de kaart */
.location-name {
    position: relative;
    display: inline-block;
}

.location-name::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -6px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--site-blush-strong), var(--site-gold));
    transition: right .55s var(--cdw-ease);
}

.location-card:hover .location-name::after {
    right: 0;
}


/* =========================================================
   09. LINTBAND — DOORLOPENDE TEKSTLOOP TUSSEN SECTIES
   Signatuurdetail: een rustige, doorlopende regel die het
   ritme van de pagina breekt zonder te schreeuwen.
   ========================================================= */

.cdw-marquee {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: clamp(22px, 2.6vw, 34px) 0;
    overflow: hidden;
    border-top: 1px solid rgba(41, 51, 47, .08);
    border-bottom: 1px solid rgba(41, 51, 47, .08);
    background: linear-gradient(90deg,
            rgba(248, 195, 208, .22),
            rgba(235, 220, 192, .26),
            rgba(248, 195, 208, .22));
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.cdw-marquee-track {
    display: flex;
    width: max-content;
    align-items: center;
    gap: clamp(28px, 3vw, 52px);
}

.motion-ready .cdw-marquee-track {
    animation: cdw-marquee 38s linear infinite;
}

.cdw-marquee:hover .cdw-marquee-track {
    animation-play-state: paused;
}

@keyframes cdw-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

.cdw-marquee-item {
    display: inline-flex;
    align-items: center;
    gap: clamp(28px, 3vw, 52px);
    font-family: "Rubik Mono One", sans-serif;
    font-size: clamp(13px, 1.5vw, 20px);
    letter-spacing: -.02em;
    color: rgba(41, 51, 47, .72);
    white-space: nowrap;
}

.cdw-marquee-item::after {
    content: "◆";
    font-family: "Manrope", sans-serif;
    font-size: .55em;
    color: var(--site-gold);
}


/* =========================================================
   10. CONTACT — PANEEL, VELDEN, VERZENDKNOP
   ========================================================= */

.contact-panel {
    position: relative;
}

.contact-form-card {
    box-shadow: var(--cdw-shadow-md);
}

.contact-form-card:hover {
    box-shadow: var(--cdw-shadow-lg);
}

.contact-field input,
.contact-field textarea {
    transition:
        border-color var(--cdw-fast) ease,
        background var(--cdw-fast) ease,
        box-shadow var(--cdw-fast) ease,
        transform var(--cdw-fast) var(--cdw-ease);
}

.contact-field input:focus,
.contact-field textarea:focus {
    outline: none;
    border-color: var(--site-blush-strong);
    box-shadow: 0 0 0 4px var(--cdw-blush-mist);
}

.contact-field label {
    transition: color var(--cdw-fast) ease;
}

.contact-field:focus-within label {
    color: var(--cdw-blush-deep);
}

.contact-submit {
    box-shadow: var(--cdw-shadow-md);
}

.contact-submit:hover {
    box-shadow: var(--cdw-shadow-glow);
}

/* Directe contactlinks: regel licht op */
.contact-direct-link {
    position: relative;
    transition:
        padding-left var(--cdw-mid) var(--cdw-ease),
        color var(--cdw-fast) ease;
}

.contact-direct-link::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12%;
    bottom: 12%;
    width: 2px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--site-blush-strong), var(--site-gold));
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform var(--cdw-mid) var(--cdw-ease);
}

.contact-direct-link:hover {
    padding-left: 16px;
}

.contact-direct-link:hover::before {
    transform: scaleY(1);
}

.contact-direct-arrow {
    display: inline-block;
    transition: transform var(--cdw-mid) var(--cdw-ease-back);
}

.contact-direct-link:hover .contact-direct-arrow {
    transform: translate(4px, -4px);
}

/* Verzendstatus */
.contact-form-feedback {
    border-radius: 14px;
    padding: 14px 18px;
    font-size: 14px;
    animation: cdw-fade-up .5s var(--cdw-ease) both;
}

.contact-form-feedback--success {
    border: 1px solid rgba(198, 161, 91, .40);
    background: rgba(235, 220, 192, .28);
}

.contact-form-feedback--error {
    border: 1px solid rgba(227, 143, 166, .45);
    background: rgba(248, 195, 208, .22);
}

@keyframes cdw-fade-up {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

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


/* =========================================================
   11. BLOGPAGINA — ARCHIEF DAT UITNODIGT
   ========================================================= */

.blog-title,
.blog-index-title {
    text-wrap: balance;
}

.blog-profile-note--image {
    box-shadow: var(--cdw-shadow-lg);
    transition: transform var(--cdw-slow) var(--cdw-ease);
}

.blog-profile-photo {
    transition: transform 1.6s var(--cdw-ease-soft);
}

.blog-profile-note--image:hover .blog-profile-photo {
    transform: scale(1.045);
}

/* Onderwerptags als klikbare pillen-look */
.blog-intro-tags span {
    transition:
        transform var(--cdw-fast) var(--cdw-ease-back),
        background var(--cdw-fast) ease,
        color var(--cdw-fast) ease;
}

.blog-intro-tags span:hover {
    transform: translateY(-2px);
    background: var(--site-blush);
    color: var(--cdw-ink-deep);
}

/* Accordeon: rustiger hover, duidelijker open-staat */
.blog-post {
    box-shadow: var(--cdw-shadow-xs);
}

.blog-post:hover {
    box-shadow: var(--cdw-shadow-md);
}

.blog-post[open] {
    box-shadow: var(--cdw-shadow-md);
}

.blog-post-summary {
    position: relative;
    transition: background var(--cdw-mid) var(--cdw-ease);
}

.blog-post-summary::-webkit-details-marker {
    display: none;
}

.blog-post-summary::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--site-blush-strong), var(--site-gold));
    transform: scaleY(0);
    transform-origin: bottom center;
    transition: transform var(--cdw-mid) var(--cdw-ease);
}

.blog-post-summary:hover::before,
.blog-post[open] .blog-post-summary::before {
    transform: scaleY(1);
    transform-origin: top center;
}

.blog-post-number {
    font-variant-numeric: tabular-nums;
    transition: color var(--cdw-fast) ease, transform var(--cdw-mid) var(--cdw-ease);
}

.blog-post-summary:hover .blog-post-number {
    color: var(--cdw-blush-deep);
    transform: translateY(-2px);
}

.blog-post-title em {
    font-style: italic;
    background: linear-gradient(100deg, var(--site-blush-strong), var(--site-gold));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Plus/min-teken van de accordeon */
.blog-post-toggle span {
    transition: transform var(--cdw-mid) var(--cdw-ease-back);
}

.blog-post[open] .blog-post-toggle span:last-child {
    transform: rotate(90deg) scaleX(0);
}

.blog-post[open] .blog-post-toggle span:first-child {
    transform: rotate(180deg);
}

/* Verhaalbeelden ademen bij hover */
.blog-post-article figure img,
.blog-media-duo img,
.blog-photo-story-grid img {
    transition: transform 1.4s var(--cdw-ease-soft), filter var(--cdw-mid) ease;
}

.blog-post-article figure:hover img {
    transform: scale(1.035);
}

/* Leesbaarheid van lange verhalen */
.blog-prose-narrow p {
    text-wrap: pretty;
}


/* =========================================================
   12. FOOTER
   ========================================================= */

.site-footer {
    position: relative;
    overflow: hidden;
}

.site-footer::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    top: -60%;
    width: min(120vw, 1400px);
    aspect-ratio: 2 / 1;
    transform: translateX(-50%);
    pointer-events: none;
    background: radial-gradient(closest-side, rgba(248, 195, 208, .20), transparent 72%);
}

.site-footer-grid,
.site-footer-bottom {
    position: relative;
    z-index: 1;
}

.site-footer-link {
    position: relative;
    display: inline-block;
    transition: transform var(--cdw-fast) var(--cdw-ease), color var(--cdw-fast) ease;
}

.site-footer-link:hover {
    transform: translateX(4px);
}

.site-footer-bottom a {
    transition: transform var(--cdw-fast) var(--cdw-ease), color var(--cdw-fast) ease;
}

.site-footer-bottom a:hover {
    transform: translateY(-2px);
}


/* =========================================================
   13. TERUG-NAAR-BOVEN KNOP
   ========================================================= */

.cdw-top-button {
    position: fixed;
    z-index: 60;
    right: clamp(16px, 2.4vw, 34px);
    bottom: clamp(16px, 2.4vw, 34px);
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(41, 51, 47, .12);
    border-radius: 999px;
    background: rgba(255, 255, 255, .82);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: var(--site-ink);
    font-size: 18px;
    cursor: pointer;
    opacity: 0;
    transform: translateY(14px) scale(.9);
    pointer-events: none;
    box-shadow: var(--cdw-shadow-md);
}

.cdw-top-button.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.cdw-top-button:hover {
    background: var(--site-blush);
    border-color: var(--site-blush-strong);
}


/* =========================================================
   14. MOTIONSYSTEEM — VERFIJNDE REVEALS EN WOORDANIMATIE
   ========================================================= */

/* Rijkere reveal dan alleen verschuiven: ook een lichte
   scherptediepte, zodat elementen 'inzoomen' op de pagina. */
.reveal-item,
[data-reveal] {
    transform: translateY(28px) scale(.995);
    filter: blur(6px);
    transition:
        opacity var(--cdw-slow) var(--cdw-ease),
        transform var(--cdw-slow) var(--cdw-ease),
        filter var(--cdw-slow) var(--cdw-ease);
    transition-delay: var(--reveal-delay, 0ms);
}

.reveal-item.is-visible,
[data-reveal].is-visible {
    transform: translateY(0) scale(1);
    filter: blur(0);
}

/* Woord-voor-woord onthulling van koppen */
.cdw-word {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
    padding-bottom: .14em;
    margin-bottom: -.14em;
}

.cdw-word>span {
    display: inline-block;
    transform: translateY(108%);
    transition: transform .95s var(--cdw-ease);
    transition-delay: var(--cdw-word-delay, 0ms);
}

.cdw-split.is-revealed .cdw-word>span {
    transform: translateY(0);
}

/* Afbeeldingen faden in zodra ze geladen zijn */
img.cdw-img {
    opacity: 0;
    transition: opacity .7s var(--cdw-ease);
}

img.cdw-img.is-loaded {
    opacity: 1;
}


/* =========================================================
   15. RESPONSIEF — MOBIELE VERFIJNING
   ========================================================= */

@media (max-width: 820px) {

    /* Mobiel menu opent als een zachte laag, niet als een sprong */
    .site-nav {
        backdrop-filter: blur(20px) saturate(140%);
        -webkit-backdrop-filter: blur(20px) saturate(140%);
        background: rgba(247, 244, 245, .96);
    }

    .site-nav.is-open .site-nav-link,
    .site-nav.is-open .site-nav-cta {
        animation: cdw-nav-in .5s var(--cdw-ease) both;
    }

    .site-nav.is-open .site-nav-link:nth-child(1) {
        animation-delay: .04s;
    }

    .site-nav.is-open .site-nav-link:nth-child(2) {
        animation-delay: .10s;
    }

    .site-nav.is-open .site-nav-link:nth-child(3) {
        animation-delay: .16s;
    }

    .site-nav.is-open .site-nav-cta {
        animation-delay: .22s;
    }

    @keyframes cdw-nav-in {
        from {
            opacity: 0;
            transform: translateY(14px);
        }

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

    /* Menuknop wordt een duidelijke, tastbare knop */
    .site-nav-toggle {
        transition: background var(--cdw-fast) ease, border-color var(--cdw-fast) ease;
    }

    .site-nav-toggle[aria-expanded="true"] {
        background: var(--site-blush);
        border-color: var(--site-blush-strong);
    }

    /* Op mobiel geen kanteling en een kleinere lichtvlek */
    .cdw-tilt.is-hovered {
        transform: none;
    }

    .cdw-top-button {
        width: 46px;
        height: 46px;
    }

    /* Sfeerlaag rustiger op kleine schermen (batterij + leesbaarheid) */
    body::before {
        filter: blur(24px);
        opacity: .7;
    }

    .cdw-marquee {
        padding: 18px 0;
    }
}

@media (max-width: 560px) {
    .hero-actions {
        gap: 10px;
    }

    .hero-actions .hero-button {
        flex: 1 1 100%;
        justify-content: space-between;
    }
}


/* =========================================================
   16. BEPERKTE BEWEGING — ALLES RUSTIG
   Wie 'reduce motion' aan heeft staan, krijgt hetzelfde
   ontwerp maar zonder animatie.
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }

    .reveal-item,
    [data-reveal] {
        opacity: 1;
        transform: none;
        filter: none;
    }

    .cdw-word>span {
        transform: none;
    }

    .cdw-tilt.is-hovered {
        transform: none;
    }

    .cdw-glow {
        display: none;
    }

    .cdw-marquee-track {
        animation: none;
    }
}


/* =========================================================
   17. PRINT
   ========================================================= */

@media print {

    body::before,
    body::after,
    .site-header,
    .cdw-top-button,
    .cdw-marquee {
        display: none !important;
    }

    .reveal-item,
    [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }
}


/* =========================================================
   18. PARALLAX OP DE DECORATIEVE RINGEN
   enhance.js zet --cdw-parallax; de basispositie uit
   style.css blijft hierdoor intact.
   ========================================================= */

.section-ring {
    transform: translate(-50%, calc(-50% + var(--cdw-parallax, 0px)));
    transition: transform .18s linear;
}

@media (prefers-reduced-motion: reduce) {
    .section-ring {
        transform: translate(-50%, -50%);
    }
}


/* =========================================================
   19. SKIP-LINK — TOEGANKELIJKHEID
   Verschijnt alleen bij navigeren met het toetsenbord.
   ========================================================= */

.cdw-skip-link {
    position: fixed;
    z-index: 999;
    left: 50%;
    top: 12px;
    padding: 12px 22px;
    border-radius: 999px;
    background: var(--cdw-ink-deep);
    color: var(--site-white);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    box-shadow: var(--cdw-shadow-md);
    transform: translate(-50%, -180%);
    transition: transform var(--cdw-mid) var(--cdw-ease-back);
}

.cdw-skip-link:focus-visible {
    transform: translate(-50%, 0);
}


/* =========================================================
   20. ACCENTSCHREEF — FRAUNCES, MET GROTE TERUGHOUDENDHEID
   Alleen daar waar de tekst persoonlijk wordt: citaten,
   cursieve titelwoorden en de introzin bij contact.
   ========================================================= */

.blog-profile-note blockquote,
.blog-post-article blockquote,
.blog-pullquote,
.blog-post-title em,
.contact-lead {
    font-family: "Fraunces", "Manrope", Georgia, serif;
    font-style: italic;
    font-optical-sizing: auto;
    letter-spacing: -.012em;
}

.blog-profile-note blockquote,
.blog-post-article blockquote,
.blog-pullquote {
    font-weight: 400;
    text-wrap: pretty;
}

.contact-lead {
    font-weight: 400;
    font-size: clamp(18px, 1.7vw, 23px);
    line-height: 1.55;
    color: var(--site-ink);
}


/* =========================================================
   21. FOOTER — VIERDE KOLOM VOOR DE ADVERTENTIES
   ========================================================= */

@media (min-width: 768px) {
    .site-footer-grid {
        grid-template-columns: 1.2fr 1fr 1fr 1fr;
    }
}

@media (min-width: 768px) and (max-width: 1050px) {
    .site-footer-grid {
        grid-template-columns: 1fr 1fr;
        row-gap: clamp(30px, 4vw, 48px);
    }
}


/* =========================================================
   22. FIJNAFSTELLING KANTELING
   Kort en direct, zodat de kaart de muis echt lijkt te volgen.
   ========================================================= */

@media (hover: hover) and (pointer: fine) {

    .cdw-tilt,
    .cdw-tilt.is-hovered {
        transition:
            transform .2s ease-out,
            box-shadow var(--cdw-mid) var(--cdw-ease),
            border-color var(--cdw-mid) var(--cdw-ease);
    }
}
