/* =====================================================================
   Feestbeest — feest-beest.be
   Built on the Feestbeest design system tokens (colors, type, spacing,
   radius, elevation, motion, decor). Components mirror the design system:
   Button (drop-line), Tag, IconCircle, FeatureTile, PackageCard, CTABanner,
   StatBar, PhotoFrame, ThemeCard, form fields, top bar, header, footer.
   ===================================================================== */

/* ---------- Tokens (verbatim from the design system) ---------- */
:root{
--fb-grape-900:#1B1240;--fb-grape-800:#2A1C5C;--fb-grape-700:#3A2A6E;--fb-grape-500:#5B45A8;--fb-grape-300:#9E8BD8;--fb-grape-100:#E7E0FA;
--fb-bubblegum-800:#B02364;--fb-bubblegum-700:#C42B72;--fb-bubblegum-500:#FF5FA2;--fb-bubblegum-300:#FF9CC6;--fb-bubblegum-100:#FFE3EF;
--fb-sun-800:#8A5A00;--fb-sun-700:#B87A00;--fb-sun-500:#FFC64B;--fb-sun-300:#FFDD91;--fb-sun-100:#FFF3D6;
--fb-mint-800:#0B6650;--fb-mint-700:#0E7A5F;--fb-mint-500:#2FD3A7;--fb-mint-300:#8DEBD1;--fb-mint-100:#DEFAF2;
--fb-sky-700:#0A6C93;--fb-sky-500:#45C7F5;--fb-sky-300:#9BE1FA;--fb-sky-100:#E2F6FE;
--fb-coral-800:#B3391A;--fb-coral-700:#C7401B;--fb-coral-500:#FF7B54;--fb-coral-300:#FFB39B;--fb-coral-100:#FFEAE2;
--fb-cream:#FFF6E9;--fb-sand:#F6EADA;--fb-white:#FFFFFF;
--fb-ink-900:#241B45;--fb-ink-700:#463C6B;--fb-ink-500:#655B87;--fb-ink-300:#A9A2C0;--fb-ink-100:#E4E0EE;
--text-strong:var(--fb-grape-900);--text-body:var(--fb-ink-700);--text-muted:var(--fb-ink-500);
--text-on-dark:var(--fb-cream);--text-on-brand:#FFFFFF;--text-price:var(--fb-bubblegum-800);
--text-link:var(--fb-bubblegum-800);--text-link-hover:var(--fb-grape-700);
--surface-page:var(--fb-cream);--surface-card:var(--fb-white);--surface-sunken:var(--fb-sand);
--surface-night:var(--fb-grape-800);--surface-night-deep:var(--fb-grape-900);
--action-primary:var(--fb-bubblegum-500);--action-primary-hover:var(--fb-bubblegum-700);
--action-secondary:var(--fb-grape-700);--action-secondary-hover:var(--fb-grape-900);
--action-accent:var(--fb-sun-500);--action-accent-hover:var(--fb-sun-700);
--focus-ring:var(--fb-sky-500);
--border-soft:var(--fb-ink-100);--border-strong:var(--fb-grape-900);
--status-success:var(--fb-mint-700);--status-info:var(--fb-sky-700);--status-warning:var(--fb-sun-700);--status-danger:var(--fb-coral-700);
--confetti-1:var(--fb-bubblegum-500);--confetti-2:var(--fb-sun-500);--confetti-3:var(--fb-mint-500);--confetti-4:var(--fb-sky-500);--confetti-5:var(--fb-coral-500);--confetti-6:var(--fb-grape-500);

--font-display:"Baloo 2","Trebuchet MS",system-ui,sans-serif;
--font-body:"Nunito","Segoe UI",system-ui,sans-serif;
--text-hero:clamp(40px,6vw,76px);--text-h1:clamp(34px,4.4vw,56px);--text-h2:clamp(28px,3.2vw,40px);--text-h3:24px;--text-h4:20px;
--text-lead:20px;--text-body-lg:18px;--text-body-md:16px;--text-body-sm:14px;--text-caption:13px;--text-eyebrow:13px;
--weight-regular:400;--weight-semibold:600;--weight-bold:700;--weight-black:800;
--leading-tight:1.05;--leading-snug:1.2;--leading-normal:1.5;--leading-loose:1.7;
--tracking-tight:-0.01em;--tracking-normal:0;--tracking-eyebrow:0.14em;

--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--gap-inline:12px;--gap-stack:16px;--gap-card:24px;--gap-grid:28px;
--section-y:var(--space-9);--section-y-tight:var(--space-8);
--container-max:1180px;--container-narrow:760px;--gutter:24px;

--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-blob:48px;--radius-pill:999px;
--radius-card:var(--radius-lg);--radius-input:var(--radius-pill);--radius-button:var(--radius-pill);--radius-image:var(--radius-xl);--radius-tag:var(--radius-pill);
--border-hairline:1px;--border-regular:2px;--border-chunky:3px;

--shadow-sm:0 2px 0 rgba(36,27,69,.08);--shadow-card:0 10px 24px -12px rgba(36,27,69,.28);--shadow-lift:0 18px 34px -14px rgba(36,27,69,.34);
--shadow-pop:0 4px 0 var(--fb-grape-900);--shadow-pop-pink:0 4px 0 var(--fb-bubblegum-700);--shadow-inset-soft:inset 0 2px 0 rgba(255,255,255,.7);
--ring-focus:0 0 0 3px rgba(69,199,245,.55);

--ease-bounce:cubic-bezier(.34,1.56,.64,1);--ease-out:cubic-bezier(.22,.61,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);
--dur-fast:120ms;--dur-base:200ms;--dur-slow:400ms;--dur-float:6s;--hover-lift:translateY(-3px);--press-squish:scale(.97);

--dots-pattern:radial-gradient(7px 3px at 16px 24px,var(--fb-bubblegum-100) 99%,transparent 100%),radial-gradient(3px 7px at 70px 50px,var(--fb-sun-100) 99%,transparent 100%),radial-gradient(6px 3px at 104px 14px,var(--fb-mint-100) 99%,transparent 100%),radial-gradient(3px 6px at 44px 100px,var(--fb-sky-100) 99%,transparent 100%),radial-gradient(7px 3px at 118px 86px,var(--fb-coral-100) 99%,transparent 100%),radial-gradient(3px 6px at 24px 68px,var(--fb-grape-100) 99%,transparent 100%);
--dots-size:132px 132px;
--stars-pattern:radial-gradient(circle at 18px 30px,rgba(255,255,255,.95) 1.6px,transparent 2px),radial-gradient(circle at 92px 16px,rgba(255,255,255,.55) 1px,transparent 1.6px),radial-gradient(circle at 148px 62px,rgba(255,255,255,.9) 2px,transparent 2.6px),radial-gradient(circle at 56px 88px,rgba(255,255,255,.5) 1.1px,transparent 1.7px),radial-gradient(circle at 122px 132px,rgba(255,255,255,.85) 1.5px,transparent 2px),radial-gradient(circle at 30px 152px,rgba(255,255,255,.45) 1px,transparent 1.6px),radial-gradient(circle at 168px 108px,rgba(255,255,255,.6) 1.2px,transparent 1.8px),radial-gradient(circle at 148px 62px,rgba(255,221,145,.22) 7px,transparent 9px),radial-gradient(circle at 18px 30px,rgba(255,255,255,.16) 6px,transparent 8px);
--stars-size:180px 180px;
--night-sky:linear-gradient(180deg,var(--fb-grape-900) 0%,var(--fb-grape-700) 100%);
--sunrise:linear-gradient(120deg,var(--fb-sun-300) 0%,var(--fb-bubblegum-300) 100%);
--overlay-photo:linear-gradient(180deg,rgba(27,18,64,0) 35%,rgba(27,18,64,.72) 100%);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--leading-loose)}
main{overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--text-link)}a:hover{color:var(--text-link-hover)}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);margin:0;text-wrap:balance}
p{margin:0}
:focus-visible{outline:3px solid var(--fb-sky-500);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}
.grid2,.grid3,.grid4{display:grid;gap:var(--gap-grid)}
.grid4{grid-template-columns:repeat(4,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:repeat(2,1fr)}
.split{display:grid;gap:var(--space-8);grid-template-columns:1fr 1fr;align-items:center}
.split--lead-left{grid-template-columns:1.1fr .9fr}
.split--start{align-items:start}
.split--text-wide{grid-template-columns:1.05fr 1fr}
.split--photo-wide{grid-template-columns:1fr 1.05fr}
.split--contact{grid-template-columns:1fr 1.1fr}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.stack{display:grid;gap:var(--space-4)}
.stack--start{justify-items:start}
.stack--sm{gap:var(--space-3)}
.stack--lg{gap:var(--space-5)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:1rem;top:-4rem;background:var(--fb-grape-900);color:#fff;padding:.6rem 1rem;border-radius:var(--radius-sm);z-index:100;transition:top .2s}
.skip-link:focus{top:1rem}

/* ---------- Sections ---------- */
.section{background:var(--surface-page)}
.section>.wrap{padding-top:var(--section-y);padding-bottom:var(--section-y)}
.section--tight>.wrap{padding-top:var(--section-y-tight);padding-bottom:var(--section-y-tight)}
.section--sunken{background:var(--surface-sunken)}
.section--dots{background-image:var(--dots-pattern);background-size:var(--dots-size)}
.section--night{background-image:var(--stars-pattern),var(--night-sky);background-size:var(--stars-size),auto;color:var(--text-on-dark)}
.section--night h1,.section--night h2{color:var(--text-on-dark)}
.section--night .lead{color:rgba(255,246,233,.86)}
.lead{font-family:var(--font-body);font-size:var(--text-lead);line-height:var(--leading-loose);color:var(--text-body)}
.body-lg{font-size:var(--text-body-lg);line-height:var(--leading-loose)}
.body-sm{font-size:var(--text-body-sm)}
.muted{color:var(--text-muted)}
.text-center{text-align:center}
.mt-7{margin-top:var(--space-7)}
.mt-6{margin-top:var(--space-6)}
.mt-5{margin-top:var(--space-5)}
.mt-4{margin-top:var(--space-4)}
.accent{color:var(--fb-sun-300)}
.h-hero{font-weight:var(--weight-black);font-size:var(--text-hero);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}
.h-page{font-weight:var(--weight-black);font-size:var(--text-h1);line-height:var(--leading-snug)}
.h2{font-weight:var(--weight-black);font-size:var(--text-h2);line-height:var(--leading-snug)}
.h3{font-weight:var(--weight-black);font-size:var(--text-h3)}
.h4{font-weight:var(--weight-black);font-size:var(--text-h4)}

/* Section heading (eyebrow + title + accent bar + intro) */
.sh{display:grid;gap:var(--space-3);justify-items:center;text-align:center;max-width:var(--container-narrow);margin:0 auto}
.sh--left{justify-items:start;text-align:left;max-width:none;margin:0}
.sh__eyebrow{font-family:var(--font-body);font-weight:var(--weight-bold);font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--sh-text,var(--fb-bubblegum-700))}
.sh h1,.sh h2{font-weight:var(--weight-black);font-size:var(--text-h2);line-height:var(--leading-snug)}
.sh--h1 h1{font-size:var(--text-h1)}
.sh__bar{display:block;width:72px;height:6px;border-radius:var(--radius-pill);background:var(--sh-accent,var(--fb-bubblegum-500))}
.sh__intro{max-width:620px;font-size:var(--text-body-lg);line-height:var(--leading-loose);color:var(--text-body)}
.sh--pink{--sh-accent:var(--fb-bubblegum-500);--sh-text:var(--fb-bubblegum-700)}.sh--sun{--sh-accent:var(--fb-sun-500);--sh-text:var(--fb-sun-800)}.sh--mint{--sh-accent:var(--fb-mint-500);--sh-text:var(--fb-mint-800)}.sh--sky{--sh-accent:var(--fb-sky-500);--sh-text:var(--fb-sky-700)}.sh--coral{--sh-accent:var(--fb-coral-500);--sh-text:var(--fb-coral-800)}.sh--grape{--sh-accent:var(--fb-grape-500);--sh-text:var(--fb-grape-700)}

/* ---------- Tag ---------- */
.tag{display:inline-flex;align-items:center;gap:var(--space-1);border-radius:var(--radius-tag);padding:6px 14px;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-body-sm);line-height:1.2;background:var(--fb-bubblegum-100);color:var(--fb-bubblegum-800)}
.tag--sm{padding:4px 10px;font-size:var(--text-caption)}
.tag--sun{background:var(--fb-sun-100);color:var(--fb-sun-800)}.tag--mint{background:var(--fb-mint-100);color:var(--fb-mint-700)}.tag--sky{background:var(--fb-sky-100);color:var(--fb-sky-700)}
.tag--coral{background:var(--fb-coral-100);color:var(--fb-coral-800)}.tag--grape{background:var(--fb-grape-100);color:var(--fb-grape-700)}.tag--night{background:var(--fb-grape-800);color:var(--fb-sun-300)}

/* ---------- Button (chunky drop-line) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-weight:var(--weight-bold);line-height:1.1;letter-spacing:.01em;text-decoration:none;cursor:pointer;border-radius:var(--radius-button);border:var(--border-regular) solid transparent;padding:12px 26px;font-size:var(--text-body-md);
  background:var(--action-primary);color:var(--fb-grape-900);box-shadow:0 4px 0 var(--fb-bubblegum-700);
  transition:transform var(--dur-fast) var(--ease-bounce),background var(--dur-base) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.btn:hover{transform:var(--hover-lift);color:var(--fb-grape-900);background:var(--fb-bubblegum-300)}
.btn:active{transform:translateY(4px);box-shadow:none}
.btn--sm{padding:8px 18px;font-size:var(--text-body-sm)}
.btn--lg{padding:16px 34px;font-size:var(--text-body-lg)}
.btn--full{display:flex;width:100%}
.btn--secondary{background:var(--action-secondary);color:var(--fb-white);box-shadow:0 4px 0 var(--fb-grape-900)}
.btn--secondary:hover{background:var(--action-secondary-hover);color:var(--fb-white)}
.btn--sun{background:var(--action-accent);color:var(--fb-grape-900);box-shadow:0 4px 0 var(--fb-sun-700)}
.btn--sun:hover{background:var(--fb-sun-300);color:var(--fb-grape-900)}
.btn--outline{background:transparent;color:var(--fb-bubblegum-800);border-color:var(--action-primary);box-shadow:none}
.btn--outline:hover{background:rgba(255,95,162,.08);color:var(--fb-bubblegum-800)}
.section--night .btn--outline,.cta .btn--outline{color:var(--fb-cream);border-color:rgba(255,246,233,.7)}.section--night .btn--outline:hover,.cta .btn--outline:hover{background:rgba(255,255,255,.08);color:var(--fb-cream)}
.btn--outline:active{transform:var(--press-squish)}
.btn--ghost{background:transparent;color:var(--text-strong);border-color:var(--border-soft);box-shadow:none}
.btn--ghost:hover{background:var(--fb-grape-100);color:var(--text-strong)}
.btn--ghost:active{transform:var(--press-squish)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}

/* ---------- Icon circle ---------- */
.ic{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;flex:0 0 auto;border-radius:var(--radius-pill);background:var(--fb-bubblegum-100);color:var(--fb-bubblegum-700);line-height:0;box-shadow:var(--shadow-sm)}
.ic--sm{width:40px;height:40px}.ic--lg{width:72px;height:72px}
.ic--sun{background:var(--fb-sun-100);color:var(--fb-sun-700)}.ic--mint{background:var(--fb-mint-100);color:var(--fb-mint-700)}.ic--sky{background:var(--fb-sky-100);color:var(--fb-sky-700)}
.ic--coral{background:var(--fb-coral-100);color:var(--fb-coral-700)}.ic--grape{background:var(--fb-grape-100);color:var(--fb-grape-700)}
.ic--solid.ic--mint{background:var(--fb-mint-700);color:#fff}
.ic svg{display:block;flex:0 0 auto}

/* ---------- Feature tile ---------- */
.tile{display:grid;gap:var(--space-3);justify-items:center;text-align:center;padding:var(--space-6) var(--space-5);background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base) var(--ease-out)}
.tile:hover{transform:var(--hover-lift);box-shadow:var(--shadow-lift)}
.tile--left{justify-items:start;text-align:left}
.tile h3{font-weight:var(--weight-bold);font-size:var(--text-h4)}
.tile p{font-size:var(--text-body-md);line-height:var(--leading-loose);color:var(--text-body)}

/* ---------- Photo frame ---------- */
.photo{margin:0;transform:rotate(var(--tilt,-2deg));display:grid;gap:var(--space-2)}
.photo__box{aspect-ratio:var(--ratio,4/3);border-radius:var(--radius-image);overflow:hidden;background:var(--tone,var(--fb-sun-300));box-shadow:var(--shadow-card);border:6px solid var(--fb-white)}
.photo__box img{width:100%;height:100%;object-fit:cover}
.photo--pink{--tone:var(--fb-bubblegum-300)}.photo--sun{--tone:var(--fb-sun-300)}.photo--mint{--tone:var(--fb-mint-300)}.photo--sky{--tone:var(--fb-sky-300)}.photo--coral{--tone:var(--fb-coral-300)}.photo--grape{--tone:var(--fb-grape-500)}
.photo--portrait{--ratio:3/4}.photo--square{--ratio:1/1}.photo--landscape{--ratio:4/3}
.t-m3{--tilt:-3deg}.t-m2{--tilt:-2deg}.t-m1{--tilt:-1deg}.t-p2{--tilt:2deg}.t-p3{--tilt:3deg}

/* ---------- Service card (home) ---------- */
.svc{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;display:grid;grid-template-rows:168px auto;transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base) var(--ease-out)}
.svc:hover{transform:var(--hover-lift);box-shadow:var(--shadow-lift)}
.svc__media{background:linear-gradient(150deg,var(--tone,var(--fb-bubblegum-500)) 0%,var(--fb-grape-700) 120%)}
.svc__media img{width:100%;height:100%;object-fit:cover}
.svc__body{padding:var(--space-5);display:grid;gap:var(--space-2);align-content:start}
.svc h3{font-weight:var(--weight-black);font-size:var(--text-h4)}
.svc p{font-size:15px;line-height:1.7;color:var(--text-body)}
.svc__link{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:14px;color:var(--text-link);text-decoration:none;justify-self:start}
.svc--pink{--tone:var(--fb-bubblegum-500)}.svc--sun{--tone:var(--fb-sun-500)}.svc--grape{--tone:var(--fb-grape-500)}.svc--mint{--tone:var(--fb-mint-500)}

/* ---------- Stat bar ---------- */
.stat{display:grid;gap:var(--space-2)}
.stat__head{display:flex;justify-content:space-between;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-body-md);color:var(--text-strong)}
.stat__track{height:12px;border-radius:var(--radius-pill);background:var(--fb-ink-100);overflow:hidden}
.stat__fill{width:var(--value,100%);height:100%;border-radius:var(--radius-pill);background:var(--stat-color,var(--fb-bubblegum-500));transition:width var(--dur-slow) var(--ease-out)}
.stat--mint{--stat-color:var(--fb-mint-500)}

/* ---------- Check list / sparkle list ---------- */
.checks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.checks li{display:flex;gap:var(--space-3);align-items:flex-start;font-size:16px;line-height:1.6;color:var(--text-body)}
.checks li svg{flex:0 0 auto;margin-top:2px;color:var(--text-strong)}
.checks strong{font-family:var(--font-display);color:var(--text-strong);display:block}
.sparks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.sparks li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.6;color:var(--text-body)}
.sparks li svg{flex:0 0 auto;margin-top:3px;color:var(--fb-grape-500)}

/* ---------- Included rows (sleepover) ---------- */
.incl{display:flex;gap:var(--space-4);align-items:flex-start}
.incl h3{font-weight:var(--weight-black);font-size:var(--text-h4);margin-bottom:4px}
.incl p{font-size:15px;line-height:1.7;color:var(--text-body)}

/* ---------- Theme card (picker) ---------- */
.themes{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap-grid)}
.theme{margin:0;display:grid;gap:var(--space-3);justify-items:center}
.theme__box{width:100%;aspect-ratio:3/4;border-radius:var(--radius-image);overflow:hidden;background:linear-gradient(160deg,var(--tone,var(--fb-bubblegum-500)) 0%,var(--fb-grape-700) 100%);box-shadow:var(--shadow-card);transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base) var(--ease-out),outline-color var(--dur-fast);outline:3px solid transparent;outline-offset:6px}
.theme__box img{width:100%;height:100%;object-fit:cover}
.theme:hover .theme__box{transform:translateY(-4px) rotate(-1deg);box-shadow:var(--shadow-lift)}
.theme[aria-pressed="true"] .theme__box{outline-color:var(--fb-bubblegum-500)}
.theme__name{cursor:pointer;border:2px solid var(--border-soft);background:var(--fb-white);color:var(--text-strong);border-radius:var(--radius-pill);padding:8px 16px;font-family:var(--font-display);font-weight:var(--weight-black);font-style:italic;font-size:var(--text-h4);line-height:1.2;transition:background var(--dur-base) var(--ease-out)}
.theme[aria-pressed="true"] .theme__name{background:var(--action-primary);border-color:var(--action-primary);color:var(--fb-grape-900)}
.theme--sky{--tone:var(--fb-sky-500)}.theme--grape{--tone:var(--fb-grape-500)}.theme--pink{--tone:var(--fb-bubblegum-500)}.theme--mint{--tone:var(--fb-mint-500)}.theme--night{--tone:var(--fb-grape-700)}.theme--coral{--tone:var(--fb-coral-500)}.theme--blush{--tone:var(--fb-bubblegum-300)}
button.theme{appearance:none;border:0;background:none;padding:0;font:inherit;width:100%;text-align:center}

/* ---------- Package card ---------- */
.pkg{display:grid;gap:var(--space-4);align-content:start;position:relative;padding:var(--space-6);border-radius:var(--radius-card);background:var(--surface-card);color:var(--text-body);box-shadow:var(--shadow-card);border:var(--border-hairline) solid var(--border-soft)}
.pkg__ribbon{position:absolute;top:calc(-1 * var(--space-3));right:var(--space-5)}
.pkg h3{font-weight:var(--weight-black);font-size:var(--text-h3)}
.pkg__desc{font-size:var(--text-body-md);line-height:var(--leading-loose);color:var(--text-body)}
.pkg__rows{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.pkg__rows li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:10px 16px;border-radius:var(--radius-pill);background:var(--surface-sunken);font-size:var(--text-body-md);font-weight:var(--weight-semibold);color:var(--text-strong)}
.pkg__rows strong{font-family:var(--font-display);font-weight:var(--weight-black);color:var(--text-price);font-variant-numeric:tabular-nums}
.pkg__note{font-size:var(--text-body-sm);line-height:var(--leading-normal);color:var(--text-muted)}
.pkg--featured{background:var(--surface-night);color:var(--text-on-dark);box-shadow:var(--shadow-lift);border:0}
.pkg--featured h3{color:var(--fb-sun-300)}
.pkg--featured .pkg__desc{color:rgba(255,246,233,.86)}
.pkg--featured .pkg__rows li{background:rgba(255,255,255,.08);color:var(--text-on-dark)}
.pkg--featured .pkg__rows strong{color:var(--fb-sun-300)}
.pkg--featured .pkg__note{color:rgba(255,246,233,.86)}
.km-note{margin:var(--space-6) auto 0;max-width:720px;text-align:center;font-size:14px;line-height:1.7;color:var(--text-muted)}
.km-note strong{font-family:var(--font-display);color:var(--text-strong)}

/* ---------- CTA banner ---------- */
.cta{position:relative;overflow:hidden;border-radius:var(--radius-blob);padding:var(--space-8) var(--space-6);text-align:center;display:grid;gap:var(--space-4);justify-items:center;
  background-image:var(--stars-pattern),var(--night-sky);background-size:var(--stars-size),auto;color:var(--text-on-dark)}
.cta h2{max-width:760px;font-weight:var(--weight-black);font-size:var(--text-h1);line-height:var(--leading-snug);text-transform:uppercase;color:inherit}
.cta p{max-width:560px;font-size:var(--text-body-lg);line-height:var(--leading-loose);color:rgba(255,246,233,.86)}
.cta--sunrise{background-image:var(--sunrise);background-size:auto;color:var(--fb-grape-900)}
.cta--sunrise p{color:var(--fb-grape-800)}

/* ---------- Top bar ---------- */
.social{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-pill);color:var(--fb-sun-300)!important;transition:background var(--dur-base) var(--ease-out)}
.social:hover{background:rgba(255,255,255,.12)}
.flag{width:20px;height:13px;border-radius:2px;flex:0 0 auto;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.lang{position:relative}
.lang__btn{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-pill);border:1px solid rgba(255,246,233,.25);background:transparent;color:var(--fb-cream);font:700 12px/1 var(--font-display);cursor:pointer;transition:background var(--dur-base) var(--ease-out)}
.lang__btn:hover,.lang__btn[aria-expanded="true"]{background:rgba(255,255,255,.12)}
.lang__menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:170px;margin:0;padding:6px;list-style:none;background:var(--fb-white);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);border:1px solid var(--border-soft)}
.lang__menu[hidden]{display:none}
.topbar .lang__menu a,.lang__menu a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text-strong);font:700 14px/1.2 var(--font-body);opacity:1}
.topbar .lang__menu a:hover,.lang__menu a:hover{background:var(--fb-grape-100);color:var(--text-strong)}
.topbar .lang__menu a[aria-current="true"],.lang__menu a[aria-current="true"]{background:var(--fb-sun-100);color:var(--fb-sun-800)}
.footer__social{display:flex;gap:8px;margin-top:4px}
.footer__social-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-pill);background:rgba(255,255,255,.1);color:var(--fb-cream)!important;opacity:1!important;transition:background var(--dur-base) var(--ease-out)}
.footer__social-link:hover{background:var(--fb-bubblegum-500);text-decoration:none!important}
.footer__social-link svg{width:18px;height:18px}
.topbar{background:var(--fb-grape-900);color:var(--fb-cream);font-size:13px}
.topbar .wrap{padding-top:8px;padding-bottom:8px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}
.topbar a{color:var(--fb-cream);text-decoration:none}
.topbar__extra{display:flex;gap:14px;align-items:center}
.topbar__extra a.social{color:var(--fb-sun-300)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:20}
.masthead{background:var(--fb-white);box-shadow:var(--shadow-sm)}
.masthead .wrap{padding-top:14px;padding-bottom:14px;display:flex;align-items:center;gap:var(--space-5)}
.nav{margin-left:auto;display:flex;gap:4px}
.nav a{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:15px;text-decoration:none;padding:10px 16px;border-radius:var(--radius-pill);color:var(--text-strong);white-space:nowrap;transition:background var(--dur-base) var(--ease-out)}
.nav a:hover{background:var(--fb-grape-100);color:var(--text-strong)}
.nav a[aria-current="page"]{background:var(--action-secondary);color:var(--fb-white)}
.burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;border:2px solid var(--border-soft);background:var(--fb-white);border-radius:var(--radius-pill);cursor:pointer;color:var(--text-strong)}
.burger__bars{display:grid;gap:4px;width:20px}
.burger__bars i{display:block;height:3px;border-radius:var(--radius-pill);background:currentColor;transition:transform var(--dur-base) var(--ease-bounce),opacity var(--dur-fast) var(--ease-out)}
.burger[aria-expanded="true"]{border-color:var(--action-secondary);color:var(--action-secondary)}
.burger[aria-expanded="true"] .burger__bars i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] .burger__bars i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .burger__bars i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.drawer{display:none;gap:6px;padding:0 var(--gutter) var(--space-4);max-width:var(--container-max);margin:0 auto}
.drawer.is-open{display:grid}
.drawer a{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:17px;text-decoration:none;color:var(--text-strong);padding:12px 16px;border-radius:var(--radius-pill)}
.drawer a[aria-current="page"]{background:var(--action-secondary);color:var(--fb-white)}
.drawer .btn{margin-top:var(--space-2);justify-self:start}

/* ---------- Logo (Confetti-letters) ---------- */
.logo{display:inline-grid;justify-items:center;gap:var(--logo-gap,5px);text-decoration:none;line-height:1}
.logo__word{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--logo-size,28px);line-height:.95;letter-spacing:-.01em;white-space:nowrap;display:inline-flex}
.logo__word span:nth-child(6n+1){color:var(--fb-bubblegum-500)}.logo__word span:nth-child(6n+2){color:var(--fb-sun-700)}.logo__word span:nth-child(6n+3){color:var(--fb-mint-700)}
.logo__word span:nth-child(6n+4){color:var(--fb-sky-700)}.logo__word span:nth-child(6n+5){color:var(--fb-coral-500)}.logo__word span:nth-child(6n+6){color:var(--fb-grape-700)}
.logo__tag{display:flex;align-items:center;gap:var(--logo-gap,5px)}
.logo__tag i{width:calc(var(--logo-size,28px) * .4);height:2px;border-radius:999px;background:var(--fb-ink-300)}
.logo__tag span{font-family:var(--font-body);font-weight:var(--weight-bold);font-size:max(7px,calc(var(--logo-size,28px) * .22));letter-spacing:.22em;text-transform:uppercase;color:var(--fb-ink-700);white-space:nowrap}
.logo--dark .logo__word span:nth-child(6n+1){color:var(--fb-bubblegum-300)}.logo--dark .logo__word span:nth-child(6n+2){color:var(--fb-sun-300)}.logo--dark .logo__word span:nth-child(6n+3){color:var(--fb-mint-300)}
.logo--dark .logo__word span:nth-child(6n+4){color:var(--fb-sky-300)}.logo--dark .logo__word span:nth-child(6n+5){color:var(--fb-coral-300)}.logo--dark .logo__word span:nth-child(6n+6){color:var(--fb-grape-300)}
.logo--dark .logo__tag i{background:rgba(255,246,233,.45)}
.logo--dark .logo__tag span{color:rgba(255,246,233,.8)}
.logo--lg{--logo-size:34px;--logo-gap:6px}

/* ---------- Hero (home) ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero--sky{background-image:var(--night-sky);background-size:auto}
.hero>.sky{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}
.hero>.wrap{position:relative;z-index:1}
.hero .wrap{padding-top:var(--space-9);padding-bottom:var(--space-9);gap:var(--space-7)}
.hero__copy{display:grid;gap:var(--space-4);justify-items:start}
.hero__copy .lead{max-width:520px}
.hero__actions{display:flex;gap:var(--space-3);flex-wrap:wrap}
.hero--center .wrap{text-align:center;display:grid;gap:var(--space-4);justify-items:center}
.hero--center h1{max-width:900px}
.hero--center .lead{max-width:680px}
.float{animation:float var(--dur-float) ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ---------- Page intro (sunken, centred) ---------- */
.intro .wrap{display:grid;gap:var(--space-3);justify-items:center;text-align:center}
.intro .lead{max-width:680px}
.intro strong{color:var(--text-strong)}

/* ---------- Forms ---------- */
.form-card{background:var(--surface-card);border-radius:var(--radius-blob);box-shadow:var(--shadow-card);padding:var(--space-7)}
.form{display:grid;gap:var(--space-4)}
.field{display:grid;gap:var(--space-2)}
.field__label{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-body-sm);color:var(--text-strong)}
.field__label b{color:var(--fb-bubblegum-500);font-weight:inherit}
.field input,.field select,.field textarea{width:100%;font-family:var(--font-body);font-size:var(--text-body-md);color:var(--text-strong);background:var(--fb-white);border:var(--border-regular) solid var(--border-soft);outline:none;padding:13px 20px;border-radius:var(--radius-input);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.field textarea{padding:14px 20px;border-radius:var(--radius-md);resize:vertical;line-height:var(--leading-normal)}
.field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23463C6B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px;padding-right:44px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus-ring);box-shadow:var(--ring-focus);outline:none}
.field input:user-invalid,.field select:user-invalid,.field textarea:user-invalid{border-color:var(--status-danger)}
.field__hint{font-size:var(--text-caption);color:var(--text-muted)}
.check{display:flex;gap:var(--space-3);align-items:flex-start;cursor:pointer;position:relative}
.check input{position:absolute;opacity:0;width:0;height:0}
.check__box{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:var(--radius-sm);border:var(--border-regular) solid var(--border-soft);background:var(--fb-white);color:var(--fb-white);font-family:var(--font-display);font-weight:var(--weight-black);font-size:15px;line-height:1;transition:background var(--dur-fast) var(--ease-out)}
.check input:checked+.check__box{background:var(--action-primary);border-color:var(--action-primary)}
.check input:checked+.check__box::after{content:"✓"}
.check input:focus-visible+.check__box{box-shadow:var(--ring-focus);border-color:var(--focus-ring)}
.check__label{font-size:var(--text-body-md);color:var(--text-body);line-height:1.5}
.check__label a{color:var(--text-link)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}
.form__status{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-body-sm)}
.form__status.ok{color:var(--status-success)}.form__status.err{color:var(--status-danger)}
.form-success{display:grid;gap:var(--space-4);justify-items:center;text-align:center;padding:var(--space-6) 0}
.form-success h3{font-weight:var(--weight-black);font-size:var(--text-h3)}
.form-success p{font-size:16px;line-height:1.7;color:var(--text-body);max-width:380px}
.contact-rows{display:grid;gap:var(--space-4)}
.contact-rows>div{display:flex;gap:var(--space-3);align-items:center;font-size:16px;color:var(--text-body)}
.contact-rows a{color:var(--text-body);text-decoration:none}
.contact-rows a:hover{color:var(--text-link)}
.tags{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Prose (privacy, legal) ---------- */
.prose{max-width:var(--container-narrow);display:grid;gap:var(--space-4)}
.prose h2{font-weight:var(--weight-black);font-size:var(--text-h3);margin-top:var(--space-4)}
.prose p,.prose li{font-size:var(--text-body-md);line-height:var(--leading-loose);color:var(--text-body)}
.prose ul{margin:0;padding-left:1.25rem}

/* ---------- Footer ---------- */
.site-footer{background-image:var(--stars-pattern),var(--night-sky);background-size:var(--stars-size),auto;color:var(--text-on-dark)}
.site-footer .wrap{padding-top:var(--space-8);padding-bottom:var(--space-5);display:grid;gap:var(--space-6)}
.footer__tagline{text-align:center;font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-h2);line-height:var(--leading-snug);color:var(--fb-sun-300)}
.footer__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-grid);align-items:start}
.footer__col{display:grid;gap:8px;justify-items:start}
.footer__col p{font-size:15px;line-height:1.7;opacity:.92;max-width:320px}
.footer__col h2{font-family:var(--font-display);font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--fb-sun-300);font-weight:var(--weight-bold)}
.footer__col>a:not(.logo),.footer__col>span{font-size:15px;color:var(--fb-cream);text-decoration:none;opacity:.85}
.footer__col>a:not(.logo):hover{opacity:1;color:var(--fb-cream);text-decoration:underline}
.footer__bottom{padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.14);font-size:13px;opacity:.85;text-align:center;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px}
.footer__bottom a{color:var(--fb-cream);text-decoration:underline;text-underline-offset:2px}
.footer__legal{flex-basis:100%;font-size:12px;opacity:.9}

/* ---------- Cookie consent ---------- */
.consent[hidden]{display:none}
.consent{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:150;display:flex;justify-content:center}
.consent__inner{width:min(720px,100%);background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:var(--space-4) var(--space-5);display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}
.consent__inner p{flex:1 1 320px;font-size:15px;line-height:1.6;color:var(--text-body)}
.consent__inner strong{font-family:var(--font-display);color:var(--text-strong)}
.consent__actions{display:flex;gap:var(--space-2)}

/* ---------- 404 ---------- */
.notfound .wrap{display:grid;gap:var(--space-4);justify-items:center;text-align:center}

/* ---------- Responsive ---------- */
@media(max-width:1080px){.grid4,.themes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.nav{display:none}.burger{display:inline-flex}.masthead .btn{display:none}.grid3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.split,.split--lead-left,.split--text-wide,.split--photo-wide,.split--contact{grid-template-columns:1fr;gap:var(--space-6)}.split>*{order:0!important}.footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.grid2,.grid3,.grid4,.themes{grid-template-columns:1fr}.pair{gap:var(--space-3)}.h-hero{font-size:clamp(34px,10vw,52px)}.h-page{font-size:clamp(28px,8vw,40px)}.topbar__extra .social{display:inline-flex}.footer__grid{grid-template-columns:1fr}.form-card{padding:var(--space-5)}.cta{padding:var(--space-7) var(--space-5)}.cta h2{font-size:clamp(26px,7vw,40px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
.form[hidden],.form-success[hidden],.field[hidden],[data-availability][hidden]{display:none}
.contact-photo{max-width:360px;margin-top:var(--space-4)}
.offer-more{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;font-weight:var(--weight-semibold);color:var(--text-body)}
.offer-more span{margin-right:4px}
.intro-lead{max-width:760px;margin:0 auto}
.insta__head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.insta__head .h2{margin:4px 0 0}.insta__head .btn svg{width:18px;height:18px}
.insta__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.insta__item{display:block;aspect-ratio:1;border-radius:var(--radius-image);overflow:hidden;background:var(--fb-bubblegum-100);transition:transform var(--dur-fast) var(--ease-bounce)}.insta__item img{width:100%;height:100%;object-fit:cover;display:block}.insta__item:hover{transform:scale(1.04) rotate(-1deg)}.insta__item:focus-visible{outline:3px solid var(--fb-sun-500);outline-offset:3px}
@media(max-width:640px){.insta__grid{grid-template-columns:repeat(3,1fr)}}
.offer-card{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5);display:grid;gap:var(--space-2);max-width:520px}.offer-card h3{margin:0;font-family:var(--font-display);font-weight:var(--weight-black);font-size:22px;color:var(--text-strong)}.offer-card p{margin:0;color:var(--text-body)}
.legal-links{font-size:13px;color:var(--text-muted);margin-top:var(--space-3)}.legal-links a{color:var(--text-muted);text-decoration:underline;text-underline-offset:2px}.legal-links a:hover{color:var(--text-strong)}
a.tag{text-decoration:none}a.tag:hover{filter:brightness(.95)}
.masthead .btn[aria-current="page"]{box-shadow:0 0 0 3px var(--fb-bubblegum-100),0 4px 0 var(--fb-bubblegum-700)}
.sh--h1 h1{font-size:var(--text-h2)}

/* ---------- WhatsApp button ---------- */
.wa{position:fixed;right:1rem;bottom:1rem;z-index:140;display:inline-flex;align-items:center;gap:10px;padding:12px 18px 12px 14px;border-radius:var(--radius-pill);background:#25D366;color:var(--fb-grape-900);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:15px;text-decoration:none;box-shadow:0 4px 0 #128C7E,var(--shadow-card);transition:transform var(--dur-fast) var(--ease-bounce)}
.wa:hover{transform:var(--hover-lift);color:var(--fb-grape-900)}
.wa:active{transform:translateY(4px);box-shadow:var(--shadow-card)}
.wa svg{flex:0 0 auto}
@media(max-width:640px){.wa span{display:none}.wa{padding:12px;bottom:.85rem;right:.85rem}}
.consent:not([hidden])~.wa,.consent:not([hidden])+.wa{bottom:8.5rem}
@media print{.wa,.consent{display:none}}

/* ---------- Availability calendar ---------- */
.calendar{max-width:920px;margin-inline:auto;display:grid;gap:var(--space-4)}
.cal__status{text-align:center;font-size:15px;color:var(--text-muted)}
.cal__nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.cal__nav p{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:15px;color:var(--text-muted)}
.cal__btn{width:44px;height:44px;border-radius:var(--radius-pill);border:2px solid var(--border-soft);background:var(--fb-white);color:var(--text-strong);cursor:pointer;display:grid;place-items:center;font-size:22px;line-height:1;transition:background var(--dur-base) var(--ease-out)}
.cal__btn:hover{background:var(--fb-grape-100)}
.cal__btn[disabled]{opacity:.4;cursor:not-allowed}
.cal__months{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}
.cal__month{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5)}
.cal__grid{width:100%;border-collapse:separate;border-spacing:6px;margin-top:var(--space-2);table-layout:fixed}
.cal__grid caption{text-align:left;font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-h4);color:var(--text-strong);text-transform:capitalize;padding:0 6px 4px}
.cal__grid td,.cal__grid th{padding:0}
.cal__dow{text-align:center;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding-bottom:4px}
.cal__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;width:100%;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:15px;color:var(--text-strong);background:var(--fb-mint-100);border:2px solid transparent;text-decoration:none;transition:transform var(--dur-fast) var(--ease-bounce),background var(--dur-base) var(--ease-out)}
a.cal__day:hover{transform:var(--hover-lift);background:var(--fb-mint-300)}
.cal__day--busy{background:var(--fb-bubblegum-100);color:var(--fb-bubblegum-800);text-decoration:line-through;cursor:not-allowed}
.cal__day--past{background:transparent;color:var(--fb-ink-500);border-color:var(--fb-ink-100)}
.cal__day--today{border-color:var(--fb-sky-500)}
.cal__day--empty{background:transparent}
.cal__legend{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center;font-size:14px;color:var(--text-body)}
.cal__legend span{display:inline-flex;align-items:center;gap:8px}
.cal__legend i{width:18px;height:18px;border-radius:6px;display:inline-block}
.cal__legend .l-free{background:var(--fb-mint-100)}.cal__legend .l-busy{background:var(--fb-bubblegum-100)}.cal__legend .l-today{background:#fff;border:2px solid var(--fb-sky-500)}
@media(max-width:760px){.cal__months{grid-template-columns:1fr}.cal__month:nth-child(2){display:none}}

/* ---------- Extras ---------- */
.extras{max-width:560px;margin-inline:auto;display:grid;gap:var(--space-3)}
.extras h3{text-align:center}
.turnstile:empty{display:none}

.quick{position:static}
@media(forced-colors:active){.btn,.theme__name,.cal__day{border:2px solid ButtonText}}

/* ---- gift voucher ---- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-grid);counter-reset:step}
.steps li{display:flex;gap:var(--space-3);align-items:flex-start}.steps h3{margin:0 0 4px;font-size:18px}.steps p{margin:0;color:var(--text-body);font-size:15px}
.step__num{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--fb-bubblegum-500);color:var(--fb-grape-900);font-family:var(--font-display);font-weight:var(--weight-black);font-size:18px;box-shadow:0 3px 0 var(--fb-bubblegum-700)}
.split--voucher{grid-template-columns:1.15fr .85fr}
.voucher-form{display:grid;gap:var(--space-5)}
.vgroup{border:0;margin:0;padding:0;display:grid;gap:var(--space-3);min-width:0}.vgroup legend{padding:0;margin-bottom:var(--space-2)}
.field__label small{font-weight:var(--weight-regular);color:var(--text-muted);margin-left:6px}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{position:relative;cursor:pointer}.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;justify-content:center;min-width:76px;padding:10px 16px;border-radius:var(--radius-pill);border:2px solid var(--fb-ink-100);background:var(--fb-white);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:17px;color:var(--text-strong);transition:transform var(--dur-fast) var(--ease-bounce),background var(--dur-base),border-color var(--dur-base)}
.chip input:checked+span{background:var(--fb-sun-500);border-color:var(--fb-sun-700);color:var(--fb-grape-900);transform:translateY(-2px)}.chip input:focus-visible+span{box-shadow:var(--ring-focus)}
.vthemes{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.vtheme{position:relative;cursor:pointer;display:grid;gap:6px;justify-items:center}.vtheme input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.vtheme__art{display:block;width:100%;aspect-ratio:4/3;border-radius:var(--radius-sm);border:3px solid transparent;box-shadow:var(--shadow-card)}
.vtheme--grape .vtheme__art{background:var(--stars-pattern),var(--night-sky);background-size:90px 90px,auto}.vtheme--pink .vtheme__art{background:var(--dots-pattern),linear-gradient(160deg,var(--fb-bubblegum-300),var(--fb-bubblegum-100));background-size:66px 66px,auto}
.vtheme--sun .vtheme__art{background:var(--dots-pattern),var(--fb-sun-100);background-size:66px 66px,auto}.vtheme--sky .vtheme__art{background:var(--stars-pattern),linear-gradient(180deg,var(--fb-sky-100),#fff);background-size:90px 90px,auto}
.vtheme__name{font-size:13px;font-weight:var(--weight-bold);color:var(--text-body)}.vtheme input:checked~.vtheme__art{border-color:var(--fb-bubblegum-500);transform:translateY(-2px)}.vtheme input:checked~.vtheme__name{color:var(--text-strong)}.vtheme input:focus-visible~.vtheme__art{box-shadow:var(--ring-focus)}
.vpay{display:grid;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border-soft)}.vpay h2{margin:0}.vpay__hint,.vpay__fill{margin:0;font-size:14px}.vpay__fill{color:var(--fb-coral-800);font-weight:var(--weight-semibold)}
#v-fallback-hint[hidden],#v-success[hidden],#v-custom-wrap[hidden],#v-to-email-wrap[hidden],.voucher-form[hidden],.voucher[hidden]{display:none}.vpay .btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.voucher-side{position:sticky;top:96px;display:grid;gap:var(--space-4)}
.voucher{position:relative;border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-lift);aspect-ratio:1.42;display:grid;--vt:var(--fb-cream);--va:var(--fb-sun-300);--vm:rgba(255,246,233,.85)}
.voucher__art{position:absolute;inset:0}.voucher__body{position:relative;z-index:1;padding:8% 9%;display:grid;align-content:space-between;gap:6px;color:var(--vt);font-family:var(--font-body)}
.voucher__brand{font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(14px,2.2vw,18px);letter-spacing:.02em;color:var(--va)}
.voucher__title{font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(22px,3.4vw,34px);line-height:1;text-transform:uppercase;letter-spacing:.03em}
.voucher__amount{font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(34px,6vw,58px);line-height:1;color:var(--va)}
.voucher__line{font-size:clamp(12px,1.6vw,15px)}.voucher__line b{font-weight:var(--weight-bold);opacity:.85;margin-right:4px}
.voucher__msg{font-size:clamp(12px,1.6vw,14px);line-height:1.45;font-style:italic;color:var(--vm);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:1.4em}
.voucher__foot{display:flex;justify-content:space-between;gap:8px;font-size:clamp(10px,1.3vw,12px);opacity:.85;border-top:1px solid rgba(255,255,255,.25);padding-top:8px}
.voucher--sterren .voucher__art{background:var(--stars-pattern),var(--night-sky);background-size:var(--stars-size),auto}
.voucher--pink{--vt:var(--fb-grape-900);--va:var(--fb-bubblegum-800);--vm:var(--fb-grape-800)}.voucher--pink .voucher__art{background:var(--dots-pattern),linear-gradient(160deg,var(--fb-bubblegum-300),var(--fb-bubblegum-100) 70%);background-size:var(--dots-size),auto}.voucher--pink .voucher__foot,.voucher--confetti .voucher__foot,.voucher--winter .voucher__foot{border-top-color:rgba(27,18,64,.18)}
.voucher--confetti{--vt:var(--fb-grape-900);--va:var(--fb-sun-800);--vm:var(--fb-grape-800)}.voucher--confetti .voucher__art{background:var(--dots-pattern),var(--fb-sun-100);background-size:var(--dots-size),auto}
.voucher--winter{--vt:var(--fb-grape-900);--va:var(--fb-sky-700);--vm:var(--fb-grape-800)}.voucher--winter .voucher__art{background:var(--stars-pattern),linear-gradient(180deg,var(--fb-sky-100),#fff);background-size:var(--stars-size),auto}
.voucher-success{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-6);display:grid;gap:var(--space-3);justify-items:start}.voucher-success p{margin:0;color:var(--text-body)}
.checks--center{max-width:720px;margin-left:auto;margin-right:auto}
@media(max-width:900px){.split--voucher{grid-template-columns:1fr}.voucher-side{position:static}.steps{grid-template-columns:1fr}.vthemes{grid-template-columns:repeat(2,1fr)}}
