/* Pose Society — UI kit (compact recreation of POSEWEBSITE/styles.css) */
:root{
  --ivory:#f2eae2;--soft:#efe6dc;--warm:#d8c6b3;--stone:#b8a899;
  --charcoal:#4a4541;--black:#0e0e0e;--white:#fff;
  --line:rgba(14,14,14,.12);--muted:rgba(14,14,14,.62);
  --bg:var(--ivory);--bg-alt:#ece2d5;--bg-dark:#0e0e0e;
  --fg:var(--black);--fg-muted:var(--muted);--fg-soft:var(--charcoal);
  --accent:var(--charcoal);--hairline:var(--line);--card-bg:#fbf6f0;
  --card-border:rgba(14,14,14,.08);--invert-fg:#f2eae2;--invert-bg:#0e0e0e;
  --ff-display:"Playfair Display","Times New Roman",serif;
  --ff-sans:"Montserrat",system-ui,sans-serif;
  --radius:2px;--maxw:1240px;
}
[data-theme="dark"]{
  --bg:#0e0e0e;--bg-alt:#151311;--bg-dark:#0a0a0a;
  --fg:#f2eae2;--fg-muted:rgba(242,234,226,.7);--fg-soft:rgba(242,234,226,.92);
  --accent:#d8c6b3;--hairline:rgba(242,234,226,.14);
  --card-bg:#161310;--card-border:rgba(242,234,226,.12);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:1.6;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background-color .35s ease,color .35s ease}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;cursor:pointer}
button{font-family:inherit;cursor:pointer}

.container{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.section{padding:clamp(72px,10vw,140px) 0;position:relative}
.section--alt{background:var(--bg-alt)}
.section--cta{background:var(--bg-alt);text-align:center}
.section__head{max-width:720px;margin:0 auto 56px;text-align:center}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,88px);align-items:center}

.eyebrow{font-weight:500;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 18px}
.eyebrow--center{text-align:center;margin-bottom:14px}
.h1,.hero__title,.cta__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(44px,7vw,96px);line-height:1.02;letter-spacing:-.01em;margin:0 0 24px}
.h2{font-family:var(--ff-display);font-weight:500;font-size:clamp(32px,4.4vw,56px);line-height:1.05;margin:0 0 20px}
.h1 em,.h2 em,.hero__title em,.cta__title em{font-style:italic;font-weight:400}
.lead{font-size:clamp(16px,1.4vw,18px);line-height:1.7;color:var(--fg-soft);max-width:60ch;margin:0 0 28px}
.lead--center{margin-left:auto;margin-right:auto}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--ff-sans);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:16px 28px;border:1px solid currentColor;border-radius:var(--radius);background:transparent;color:inherit;transition:all .25s ease}
.btn--primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn--primary:hover{background:transparent;color:var(--fg)}
.btn--ghost:hover{background:var(--fg);color:var(--bg)}
.btn--lg{padding:20px 36px;font-size:12.5px}
.link-arrow{display:inline-flex;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:4px;align-self:flex-start;transition:opacity .2s ease}
.link-arrow:hover{opacity:.6}

.top-bar{background:var(--bg-dark);color:var(--invert-fg);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.top-bar__inner{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:16px}
.top-bar__tag{opacity:.85}
.top-bar__controls{display:flex;align-items:center;gap:18px}
.lang-toggle{display:inline-flex;align-items:center;gap:8px}
.lang-btn{background:none;border:none;color:inherit;font:inherit;letter-spacing:.2em;opacity:.55;padding:0}
.lang-btn.is-active{opacity:1;text-decoration:underline;text-underline-offset:4px}
.lang-sep{opacity:.5}
.theme-toggle{background:none;border:1px solid rgba(242,234,226,.3);color:inherit;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.theme-toggle .icon-moon{display:none}
[data-theme="dark"] .theme-toggle .icon-sun{display:none}
[data-theme="dark"] .theme-toggle .icon-moon{display:block}

.header{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--hairline);backdrop-filter:blur(10px)}
.header__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:18px 28px;gap:24px}
.brand{display:inline-flex}
.brand__logo{height:56px;width:auto}
[data-theme="light"] .brand__logo--dark{ display:none; }
[data-theme="dark"]  .brand__logo--light{ display:none; }
[data-theme="dark"]  .brand__logo--dark{ display:block; }
.footer__logo{height:64px;width:auto}
.nav{display:flex;align-items:center;justify-content:center;gap:32px}
.nav a{font-size:11.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-soft);transition:color .2s ease}
.nav a:hover{color:var(--fg)}
.nav a.is-active{color:var(--fg)}
.nav a.is-active::after{content:"";display:block;height:1px;background:currentColor;margin-top:6px}
.header__cta{display:flex;justify-content:flex-end}

.screen{display:none}

.hero{position:relative;padding:clamp(80px,12vw,160px) 0 clamp(60px,8vw,100px);overflow:hidden}
.hero__media{position:absolute;inset:0;pointer-events:none}
.hero__grain{position:absolute;inset:0;background:radial-gradient(800px 400px at 80% 10%,rgba(216,198,179,.45),transparent 60%),radial-gradient(600px 500px at 10% 90%,rgba(74,69,65,.1),transparent 60%)}
[data-theme="dark"] .hero__grain{background:radial-gradient(800px 400px at 80% 10%,rgba(216,198,179,.1),transparent 60%)}
.hero__star{position:absolute;color:var(--fg);opacity:.85}
.hero__star--1{top:14%;right:8%;animation:spin 18s linear infinite}
.hero__star--2{bottom:18%;left:6%;opacity:.5;animation:spin 24s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__inner{position:relative}
.hero__lede{max-width:56ch;margin:0 0 36px;font-size:clamp(16px,1.4vw,18px);color:var(--fg-soft)}
.hero__ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:64px}
.hero__stats{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid var(--hairline);padding-top:28px;max-width:760px}
.hero__stats li{display:flex;flex-direction:column;gap:4px}
.hero__stats strong{font-family:var(--ff-display);font-weight:500;font-size:clamp(28px,3vw,40px);line-height:1}
.hero__stats span{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-muted)}

.marquee{background:var(--bg-dark);color:var(--invert-fg);padding:18px 0;overflow:hidden;border-block:1px solid var(--hairline)}
.marquee__track{display:inline-flex;gap:28px;white-space:nowrap;animation:marq 28s linear infinite;font-family:var(--ff-display);font-style:italic;font-size:clamp(20px,2.4vw,32px)}
.marquee__track .dot{opacity:.6;font-style:normal}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.check-list{list-style:none;padding:0;margin:24px 0 32px;display:grid;gap:12px}
.check-list li{position:relative;padding-left:28px;font-size:15px;color:var(--fg-soft)}
.check-list li::before{content:"✦";position:absolute;left:0;top:0;color:var(--accent)}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.card{background:var(--card-bg);padding:40px 32px;display:flex;flex-direction:column;gap:14px;min-height:280px;transition:background .25s ease}
.card:hover{background:var(--bg)}
.card__num{font-family:var(--ff-display);font-size:13px;letter-spacing:.3em;color:var(--fg-muted)}
.card h3{font-family:var(--ff-display);font-weight:500;font-size:26px;margin:0;line-height:1.15}
.card p{color:var(--fg-soft);margin:0;flex:1;font-size:15px}

.cta{max-width:820px;margin:0 auto}

.media-mix{display:flex;align-items:center;justify-content:center;gap:clamp(20px,3vw,48px);flex-wrap:wrap}
.polaroid-stack{position:relative;width:100%;max-width:380px;margin:0 auto;aspect-ratio:1/1.25}
.polaroid{--rot:-4deg;position:absolute;background:#fbf6ec;padding:10px 10px 62px;width:50%;aspect-ratio:2/3;box-shadow:0 1px 0 rgba(0,0,0,.04) inset,0 26px 50px -22px rgba(14,14,14,.5),0 8px 16px -10px rgba(14,14,14,.35);transform:rotate(var(--rot));transition:transform .5s ease}
.polaroid__photo{aspect-ratio:4/5;background:#2a2622 center/cover no-repeat}
.polaroid__caption{position:absolute;left:0;right:0;bottom:22px;text-align:center;font-family:var(--ff-display);font-style:italic;font-size:16px;color:#2a2622}
.polaroid-stack .polaroid:nth-child(1){--rot:-9deg;top:4%;left:0;z-index:1}
.polaroid-stack .polaroid:nth-child(2){--rot:4deg;top:18%;left:25%;z-index:2}
.polaroid-stack .polaroid:nth-child(3){--rot:-2deg;top:2%;right:0;z-index:3}
.polaroid:hover{transform:rotate(calc(var(--rot)*.3)) translateY(-6px) scale(1.03);z-index:5}

/* ---------- Photobooth strip (1:3 mock) ---------- */
.strip{
  background:#0e0e0e; width:108px; aspect-ratio:1/3;
  padding:8px 8px 22px; display:flex; flex-direction:column; gap:6px;
  position:relative; transform:rotate(3deg);
  box-shadow:0 30px 60px -25px rgba(14,14,14,.55), 0 8px 18px -10px rgba(14,14,14,.4);
  flex-shrink:0;
}
.strip__photo{
  flex:1; position:relative; overflow:hidden;
  background:linear-gradient(135deg, #2a2622 0%, #100e0c 100%);
  background-size:cover; background-position:center;
}
.strip__photo::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 30% 30%, rgba(216,198,179,.2), transparent 60%);
}
.strip__caption{
  position:absolute; bottom:6px; left:0; right:0;
  font-family:var(--ff-display); font-style:italic;
  text-align:center; font-size:9px; letter-spacing:.22em;
  text-transform:uppercase; color:#d8c6b3;
}
.strip__photo:nth-of-type(1){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url("assets/strip-1.webp"); }
.strip__photo:nth-of-type(2){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url("assets/strip-2.webp"); }
.strip__photo:nth-of-type(3){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url("assets/strip-3.webp"); }
.strip__photo:nth-of-type(4){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url("assets/strip-4.webp"); }

/* Two strips crossing each other */
.strip-cross{
  position:relative; width:clamp(150px,18vw,200px); aspect-ratio:1/1.9;
  display:flex; align-items:center; justify-content:center;
}
.strip--in-cross{
  position:absolute !important; margin:0 !important; width:56% !important;
  transition:transform .5s ease, box-shadow .5s ease;
}
.strip--cross-a{ transform:rotate(-14deg) !important; z-index:1; }
.strip--cross-b{ transform:rotate(14deg)  !important; z-index:2; }

/* ---------- Occasions: polaroid fan + numbered list ---------- */
.occasions-grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(40px,6vw,88px); align-items:center;
}
.fan{ position:relative; width:100%; height:clamp(420px,44vw,540px); perspective:1400px; }
.fan--centered{ max-width:780px; margin:36px auto 56px; height:clamp(340px, 32vw, 420px); }
.fan--centered .fan__card{
  --xshift:calc(var(--offset) * 56px);
  bottom:0;
}
.fan__card{
  --i:0; --offset:calc(var(--i) - 2.5);
  --tilt:calc(var(--offset) * 13deg);
  --xshift:calc(var(--offset) * 42px);
  position:absolute; bottom:6%; left:50%;
  width:clamp(150px,18vw,200px); transform-origin:50% 110%;
  transform: translate(-50%,0) translateX(var(--xshift)) rotate(var(--tilt));
  transition:
    transform .85s cubic-bezier(.2,.8,.2,1) .05s,
    filter .55s ease,
    z-index 0s linear .35s;
  z-index:calc(10 + var(--i));
  filter:drop-shadow(0 30px 35px rgba(14,14,14,.35));
}
.fan__card:hover, .fan__card:focus-within{
  transform: translate(-50%,-22px) translateX(var(--xshift)) rotate(0deg) scale(1.04);
  z-index:50;
  transition:
    transform .45s cubic-bezier(.2,.8,.2,1) .08s,
    filter .25s ease,
    z-index 0s linear .08s;
  filter:drop-shadow(0 45px 45px rgba(14,14,14,.45));
}
.polaroid--in-fan{
  position:relative !important; width:100% !important;
  margin:0 !important; transform:none !important; cursor:pointer;
}
.polaroid--in-fan::before{ content:none; }
.polaroid--in-fan .polaroid__caption{
  font-family:var(--ff-display); font-style:normal; font-weight:500;
  font-size:16px; letter-spacing:.02em; color:#2a2622;
}

/* Fan: individuals image mapping */
.fan--individuals .fan__card:nth-child(1) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url("assets/wedding.webp") center/cover no-repeat; }
.fan--individuals .fan__card:nth-child(2) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url("assets/anniversaire.webp") center/cover no-repeat; }
.fan--individuals .fan__card:nth-child(3) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url("assets/bapteme.webp") center/cover no-repeat; }
.fan--individuals .fan__card:nth-child(4) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url("assets/evjf.webp") center/cover no-repeat; }
.fan--individuals .fan__card:nth-child(5) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url("assets/friends.webp") center/cover no-repeat; }
.fan--individuals .fan__card:nth-child(6) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url("assets/babyshower.webp") center/cover no-repeat; }

@media (max-width:880px){
  .occasions-grid{ grid-template-columns:1fr; }
  .fan{ height:clamp(380px, 90vw, 460px); margin-bottom:16px; }
  .fan__card{ width:130px; --tilt:calc(var(--offset) * 11deg); --xshift:calc(var(--offset) * 28px); }
}

/* ---------- Dark section + light variants (partners page) ---------- */
.section--dark{ background:var(--bg-dark); color:var(--invert-fg); }
.section--dark .h2,
.section--dark .eyebrow,
.section--dark .lead{ color:var(--invert-fg); }
.check-list--light li{ color:rgba(242,234,226,.86); }
.check-list--light li::before{ color:var(--invert-fg); }
.btn--light{ background:var(--invert-fg); color:var(--invert-bg); border-color:var(--invert-fg); }
.btn--light:hover{ background:transparent; color:var(--invert-fg); }

/* Polaroid pair + cycling logos (partners page) */
.polaroid-pair{
  position:relative; width:100%; max-width:380px;
  aspect-ratio:1/1.15; margin:0 auto;
}
.polaroid-pair .polaroid{ position:absolute !important; width:60% !important; }
.polaroid-pair .polaroid:nth-child(1){ --rot:-8deg; top:4%; left:0; z-index:1; }
.polaroid-pair .polaroid:nth-child(2){ --rot:6deg; bottom:0; right:0; z-index:2; }
.polaroid-pair .polaroid:nth-child(1) .polaroid__photo{
  background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url('assets/kiss.webp') center/cover no-repeat;
}
.polaroid-pair .polaroid:nth-child(2) .polaroid__photo{
  background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url('assets/cheekkiss.webp') center/cover no-repeat;
}
.polaroid-pair--indiv .polaroid:nth-child(1) .polaroid__photo{ background:#2a2622; }
.polaroid-pair--indiv .polaroid:nth-child(2) .polaroid__photo{ background:#2a2622; }

/* Cycling photo stack inside the polaroid frame (matches the cycling label) */
.polaroid__photo-cycle{
  position:absolute; inset:0;
}
.polaroid__photo-cycle img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  animation:polaroidLogoCycle 8s infinite;
}
.polaroid__photo-cycle img:nth-child(1){ animation-delay:0s; }
.polaroid__photo-cycle img:nth-child(2){ animation-delay:2s; }
.polaroid__photo-cycle img:nth-child(3){ animation-delay:4s; }
.polaroid__photo-cycle img:nth-child(4){ animation-delay:6s; }
.polaroid--offset .polaroid__photo-cycle img:nth-child(1){ animation-delay:4s; }
.polaroid--offset .polaroid__photo-cycle img:nth-child(2){ animation-delay:6s; }
.polaroid--offset .polaroid__photo-cycle img:nth-child(3){ animation-delay:0s; }
.polaroid--offset .polaroid__photo-cycle img:nth-child(4){ animation-delay:2s; }
/* dark overlay above the cycling images, applied to .polaroid__photo */
.polaroid__photo:has(.polaroid__photo-cycle)::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18));
  pointer-events:none;
}
.polaroid__logo-stack{
  position:absolute; left:12px; right:12px; bottom:14px; height:34px;
  pointer-events:none;
}
.polaroid__logo{
  position:absolute; inset:0; margin:auto;
  max-height:100%; max-width:90%; width:auto; object-fit:contain;
  filter:grayscale(100%) brightness(0); opacity:0;
  animation:polaroidLogoCycle 8s infinite;
}
.polaroid__logo:nth-child(1){ animation-delay:0s; }
.polaroid__logo:nth-child(2){ animation-delay:2s; }
.polaroid__logo:nth-child(3){ animation-delay:4s; }
.polaroid__logo:nth-child(4){ animation-delay:6s; }
.polaroid--offset .polaroid__logo:nth-child(1){ animation-delay:4s; }
.polaroid--offset .polaroid__logo:nth-child(2){ animation-delay:6s; }
.polaroid--offset .polaroid__logo:nth-child(3){ animation-delay:0s; }
.polaroid--offset .polaroid__logo:nth-child(4){ animation-delay:2s; }
.polaroid--offset-2 .polaroid__logo:nth-child(1){ animation-delay:2s; }
.polaroid--offset-2 .polaroid__logo:nth-child(2){ animation-delay:4s; }
.polaroid--offset-2 .polaroid__logo:nth-child(3){ animation-delay:6s; }
.polaroid--offset-2 .polaroid__logo:nth-child(4){ animation-delay:0s; }

/* Cycling text label (e.g. event types instead of brand logos) */
.polaroid__caption-cycle{
  position:absolute; left:12px; right:12px; bottom:14px; height:34px;
  pointer-events:none;
}
.polaroid__caption-cycle span{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--ff-display); font-style:italic; font-weight:500;
  font-size:18px; color:#2a2622; letter-spacing:.01em;
  opacity:0; animation:polaroidLogoCycle 8s infinite;
}
.polaroid__caption-cycle span:nth-child(1){ animation-delay:0s; }
.polaroid__caption-cycle span:nth-child(2){ animation-delay:2s; }
.polaroid__caption-cycle span:nth-child(3){ animation-delay:4s; }
.polaroid__caption-cycle span:nth-child(4){ animation-delay:6s; }
.polaroid--offset .polaroid__caption-cycle span:nth-child(1){ animation-delay:4s; }
.polaroid--offset .polaroid__caption-cycle span:nth-child(2){ animation-delay:6s; }
.polaroid--offset .polaroid__caption-cycle span:nth-child(3){ animation-delay:0s; }
.polaroid--offset .polaroid__caption-cycle span:nth-child(4){ animation-delay:2s; }
@keyframes polaroidLogoCycle{
  0%, 25%, 100%{ opacity:0; }
  3%, 22%     { opacity:1; }
}

/* ---------- Logos marquee (clients) ---------- */
.section--logos{
  padding:clamp(56px,7vw,90px) 0;
  border-block:1px solid var(--hairline);
  overflow:hidden;
}
.section--logos .eyebrow{ margin-bottom:36px; }
.logos-marquee{
  --gap:clamp(48px,6vw,96px);
  position:relative; width:100%; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.logos-marquee__track{
  display:inline-flex; align-items:center; gap:var(--gap);
  white-space:nowrap; padding-inline:var(--gap);
  animation:logosScroll 38s linear infinite;
  will-change:transform;
}
.logos-marquee:hover .logos-marquee__track{ animation-play-state:paused; }
@keyframes logosScroll{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}
.logo-mark{
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0; height:56px; color:var(--fg);
  opacity:.55; transition:opacity .25s ease, transform .25s ease;
}
.logo-mark:hover{ opacity:1; transform:translateY(-2px); }
.logo-mark--img{
  height:clamp(36px,4vw,52px); width:auto; max-width:200px;
  object-fit:contain; filter:grayscale(100%) brightness(0);
}
[data-theme="dark"] .logo-mark--img{ filter:grayscale(100%) brightness(0) invert(1) opacity(.85); }
[data-theme="dark"] .logo-mark{ opacity:.85; }
[data-theme="dark"] .logo-mark:hover{ opacity:1; }
[data-theme="dark"] .logo-mark--img:hover{ filter:grayscale(0) brightness(1) invert(0); }
.logos-marquee:hover .logo-mark--img:hover{ filter:none; }

/* ---------- Festive: gold glitter on black ---------- */
.section--festive{
  position:relative;
  background:radial-gradient(ellipse at 50% 0%, #1a1410 0%, #0a0807 55%, #050403 100%);
  color:#f2eae2; overflow:hidden; isolation:isolate;
}
.section--festive::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    radial-gradient(1.6px 1.6px at 12% 18%, #d4af37 0%, transparent 60%),
    radial-gradient(1px   1px   at 28% 70%, #e5c262 0%, transparent 60%),
    radial-gradient(2px   2px   at 45% 12%, #ffd780 0%, transparent 60%),
    radial-gradient(1.2px 1.2px at 60% 50%, #d4af37 0%, transparent 60%),
    radial-gradient(2px   2px   at 75% 30%, #ffd780 0%, transparent 60%),
    radial-gradient(1px   1px   at 88% 80%, #e5c262 0%, transparent 60%),
    radial-gradient(1.6px 1.6px at  5% 88%, #d4af37 0%, transparent 60%),
    radial-gradient(1px   1px   at 95% 12%, #ffd780 0%, transparent 60%),
    radial-gradient(2px   2px   at 33% 55%, #e5c262 0%, transparent 60%),
    radial-gradient(1px   1px   at 80% 65%, #d4af37 0%, transparent 60%),
    radial-gradient(1.4px 1.4px at 18% 42%, #ffd780 0%, transparent 60%),
    radial-gradient(1px   1px   at 52% 90%, #d4af37 0%, transparent 60%),
    radial-gradient(2.2px 2.2px at 70% 8%,  #e5c262 0%, transparent 60%),
    radial-gradient(1px   1px   at  8% 60%, #ffd780 0%, transparent 60%);
  background-size:260px 260px; background-repeat:repeat;
  opacity:.9; animation:glitterTwinkle 6s ease-in-out infinite;
}
.section--festive::after{
  content:"✦"; position:absolute; top:8%; right:6%;
  font-size:clamp(28px,4vw,56px);
  color:rgba(212,175,55,.55);
  text-shadow:0 0 18px rgba(212,175,55,.35);
  pointer-events:none; z-index:-1;
  animation:glitterTwinkle 4s ease-in-out infinite reverse;
}
@keyframes glitterTwinkle{
  0%,100%{ opacity:.9; }
  50%   { opacity:.55; }
}
.section--festive .h2,
.section--festive .lead,
.section--festive .occ-list__title,
.section--festive .occ-list__item p:not(.occ-list__tag){ color:#f2eae2; }
.section--festive .eyebrow{ color:rgba(242,234,226,.7); }
.section--festive .occ-list__num,
.section--festive .occ-list__tag{ color:#d4af37; opacity:1; }
.section--festive .occ-list__item{ border-color:rgba(212,175,55,.22); }

/* 2-row / 3-column occ-list */
.occ-list--3col{
  grid-template-columns:repeat(3,1fr);
  column-gap:clamp(24px,4vw,56px); row-gap:22px;
}
.occ-list--compact{ gap:14px; }
.occ-list--compact .occ-list__item{ grid-template-columns:40px 1fr; gap:12px; padding-top:14px; }
.occ-list--compact .occ-list__num{ font-size:22px; }
.occ-list--compact .occ-list__title{ font-size:18px; margin-bottom:2px; }
.occ-list--compact .occ-list__tag{ font-size:13px; margin-bottom:4px; }
.occ-list--compact .occ-list__item p:not(.occ-list__tag){ font-size:13.5px; line-height:1.5; }
@media (max-width:880px){ .occ-list--3col{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .occ-list--3col{ grid-template-columns:1fr; } }

/* ---------- Mixed formats spread (corporate page) ---------- */
.formats-layout{ display:grid; gap:clamp(48px,6vw,80px); }
.formats-spread{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  gap:clamp(20px,3vw,44px); padding:32px 0 12px;
}
.formats-spread__item{
  flex-shrink:0;
  transform:rotate(var(--tilt, -3deg));
  transition:transform .45s cubic-bezier(.2,.8,.2,1), filter .35s ease, z-index 0s linear .25s;
  filter:drop-shadow(0 18px 28px rgba(14,14,14,.28));
  position:relative; z-index:1;
}
.formats-spread__item:hover,
.formats-spread__item:focus-within{
  transform:rotate(0deg) translateY(-10px) scale(1.04);
  z-index:50; transition-delay:0s;
  filter:drop-shadow(0 35px 45px rgba(14,14,14,.5));
}
.formats-spread__item--polaroid{ width:clamp(130px,16vw,168px); }
.formats-spread__item--print   { width:clamp(180px,22vw,230px); }
.formats-spread__item--strip   { width:clamp(72px,9vw,92px); }
.formats-spread__item--polaroid .polaroid__photo{
  background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url('assets/corp-1.webp') center/cover no-repeat;
}
.formats-spread__item--strip-cross:hover .strip--cross-a{ transform:rotate(-18deg) translateY(-4px) !important; }
.formats-spread__item--strip-cross:hover .strip--cross-b{ transform:rotate(18deg)  translateY(-4px) !important; }

/* ---------- Landscape print (3:2) ---------- */
.print-wide{
  --pad:14px;
  position:relative; background:#fbf6ec;
  width:min(100%,300px); aspect-ratio:3/2;
  padding:var(--pad) var(--pad) calc(var(--pad) * 2);
  transform:rotate(-2deg);
  box-shadow:0 1px 0 rgba(0,0,0,.04) inset, 0 30px 60px -25px rgba(14,14,14,.5), 0 8px 18px -10px rgba(14,14,14,.35);
  flex-shrink:0; transition:transform .5s ease, box-shadow .5s ease;
}
.print-wide:hover{
  transform:rotate(0) translateY(-6px);
  box-shadow:0 1px 0 rgba(0,0,0,.04) inset, 0 40px 70px -25px rgba(14,14,14,.6), 0 12px 22px -10px rgba(14,14,14,.4);
}
.print-wide__photo{
  width:100%; height:100%; position:relative; overflow:hidden;
  background:
    linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)),
    url('assets/event-wide.webp') center/cover no-repeat,
    linear-gradient(135deg,#2a2622 0%,#100e0c 100%);
}
.print-wide__caption{
  position:absolute; left:0; right:0; bottom:6px; text-align:center;
  font-family:var(--ff-display); font-style:italic; font-size:14px; color:#2a2622;
}
.print-wide--in-fan{
  position:relative !important; width:100% !important;
  margin:0 !important; transform:none !important; cursor:pointer;
}

/* corporate strip frame photos */
.corp-strips .strip__photo:nth-of-type(1){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url('assets/corp-strip-1.webp'); }
.corp-strips .strip__photo:nth-of-type(2){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url('assets/corp-strip-2.webp'); }
.corp-strips .strip__photo:nth-of-type(3){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url('assets/corp-strip-3.webp'); }
.corp-strips .strip__photo:nth-of-type(4){ background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)), url('assets/corp-strip-4.webp'); }

/* hero with polaroid trio on the right (corporate) */
.corp-hero, .indiv-hero{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(40px,5vw,72px); align-items:center; }
.indiv-hero .polaroid-pair{ max-width:380px; }
@media (max-width:880px){
  .corp-hero, .indiv-hero{ grid-template-columns:1fr; }
}
.corp-hero .polaroid-stack{ aspect-ratio:1/1.05; max-width:420px; }
.corp-hero .polaroid-stack .polaroid:nth-child(1){ --rot:-8deg; top:6%;  left:2%;  z-index:1; }
.corp-hero .polaroid-stack .polaroid:nth-child(2){ --rot:5deg;  top:14%; left:28%; z-index:2; }
.corp-hero .polaroid-stack .polaroid:nth-child(3){ --rot:-3deg; top:2%;  right:4%; z-index:3; }
.corp-hero .polaroid:nth-child(1) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url('assets/corp-1.webp') center/cover no-repeat; }
.corp-hero .polaroid:nth-child(2) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url('assets/corp-2.webp') center/cover no-repeat; }
.corp-hero .polaroid:nth-child(3) .polaroid__photo{ background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url('assets/corp-3.webp') center/cover no-repeat; }
@media (max-width:880px){
  .corp-hero{ grid-template-columns:1fr; }
}
.indiv-hero .polaroid__photo{ position:relative; overflow:hidden; }

.page-hero{padding:clamp(80px,9vw,130px) 0 clamp(40px,5vw,70px);position:relative;border-bottom:1px solid var(--hairline)}
.page-hero__title{font-size:clamp(40px,6vw,80px);margin-bottom:22px}

/* occasion list */
.occ-list{list-style:none;padding:0;margin:0;display:grid;gap:22px}
.occ-list--3col{grid-template-columns:repeat(3,1fr);column-gap:clamp(24px,4vw,56px);row-gap:22px}
.occ-list__item{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:baseline;padding-top:18px;border-top:1px solid var(--hairline)}
.occ-list__num{font-family:var(--ff-display);font-style:italic;font-weight:400;font-size:28px;line-height:1;color:var(--accent);opacity:.7}
.occ-list__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(20px,1.8vw,24px);line-height:1.15;margin:0 0 4px}
.occ-list__tag{font-family:var(--ff-display);font-style:italic;font-size:14px;color:var(--accent);margin:0 0 8px}
.occ-list__item p:not(.occ-list__tag){margin:0;color:var(--fg-soft);font-size:14.5px;line-height:1.65}

/* logos */
.logos{display:flex;justify-content:center;align-items:center;gap:48px;flex-wrap:wrap}
.logos img{height:48px;width:auto;max-width:160px;object-fit:contain;filter:grayscale(100%) brightness(0);opacity:.55;transition:opacity .25s,filter .25s}
.logos img:hover{opacity:1;filter:none}
[data-theme="dark"] .logos img{filter:grayscale(100%) brightness(0) invert(1)}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;border-top:1px solid var(--hairline);padding-top:32px}
.kpis div{display:flex;flex-direction:column;gap:6px}
.kpis strong{font-family:var(--ff-display);font-weight:500;font-size:clamp(36px,4vw,52px);line-height:1}
.kpis span{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-muted)}

/* steps */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.steps li{border-top:1px solid var(--hairline);padding-top:24px}
.steps__num{font-family:var(--ff-display);font-style:italic;font-size:14px;letter-spacing:.2em;color:var(--fg-muted);display:block;margin-bottom:16px}
.steps h4{font-family:var(--ff-display);font-weight:500;font-size:22px;margin:0 0 8px}
.steps p{color:var(--fg-soft);margin:0;font-size:14.5px}

/* FAQ */
.faq{max-width:880px;margin:0 auto}
.faq__item{border-top:1px solid var(--hairline);padding:22px 0}
.faq__item:last-child{border-bottom:1px solid var(--hairline)}
.faq__item summary{list-style:none;cursor:pointer;font-family:var(--ff-display);font-size:22px;font-weight:500;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-right:8px}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-family:var(--ff-sans);font-weight:300;font-size:28px;line-height:1;transition:transform .3s ease}
.faq__item[open] summary::after{content:"−"}
.faq__item p{margin:14px 0 0;color:var(--fg-soft);max-width:70ch}

/* contact */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,5vw,72px);align-items:start}
.contact-info h3{font-family:var(--ff-display);font-weight:500;font-size:clamp(26px,2.4vw,32px);margin:0 0 14px}
.contact-info p{color:var(--fg-soft);margin:0 0 28px;max-width:42ch}
.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:22px;border-top:1px solid var(--hairline);padding-top:28px}
.contact-list li{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:baseline}
.contact-list__label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-muted)}

.form{display:grid;gap:18px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{display:flex;flex-direction:column;gap:8px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-muted)}
.form input,.form select,.form textarea{font:inherit;font-size:15px;padding:14px 16px;border:1px solid var(--hairline);background:var(--bg);color:var(--fg);border-radius:var(--radius);letter-spacing:normal;text-transform:none;transition:border-color .2s ease}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--fg)}
.form__full{width:100%}
.form button{justify-self:center;margin-top:8px;min-width:280px}
.form__note{text-align:center;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-muted);margin:4px 0 0}

/* footer */
.footer{background:var(--bg-dark);color:var(--invert-fg);padding:80px 0 28px}
.footer__inner{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:48px;padding-bottom:56px;border-bottom:1px solid rgba(242,234,226,.12)}
.footer__brand p{font-family:var(--ff-display);font-style:italic;font-size:18px;margin-top:16px;color:rgba(242,234,226,.7)}
.footer__col h5{font-size:11px;letter-spacing:.28em;text-transform:uppercase;margin:0 0 16px;color:rgba(242,234,226,.5);font-weight:500}
.footer__col a,.footer__col span{display:block;font-size:14px;color:rgba(242,234,226,.85);margin-bottom:8px}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;padding-top:28px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(242,234,226,.55);flex-wrap:wrap;gap:16px}
.footer__legal{display:flex;gap:22px}

/* ───── Home — merged hero + showcase ───── */
.home-hero{
  position:relative; background:var(--bg-alt);
  overflow:hidden;
  padding-block:clamp(72px, 9vw, 130px) clamp(56px, 7vw, 110px);
}
.home-hero__inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.05fr 1fr;
  gap:clamp(40px, 6vw, 96px); align-items:center;
}
.home-hero__content{ max-width:600px; }
.home-hero__content .eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:24px; }
.home-hero__rule{ flex:0 0 56px; height:1px; background:var(--fg); opacity:.45; display:inline-block; }
.home-hero__title{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(48px, 7.4vw, 96px); line-height:.98;
  letter-spacing:-.012em; margin:0 0 28px;
}
.home-hero__title em{ font-style:italic; font-weight:400; display:block; font-size:.78em; white-space:nowrap; line-height:1.05; }
.home-hero__lede{
  font-size:clamp(16px, 1.5vw, 19px); line-height:1.6;
  color:var(--fg-soft); max-width:54ch; margin:0 0 36px;
}
.home-hero__ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:48px; }

.home-hero__facts{
  border-top:1px solid var(--hairline); padding-top:28px;
  display:flex; flex-direction:column; gap:28px;
}
.home-hero__stats{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:16px;
}
.home-hero__stats > div{ display:flex; flex-direction:column; gap:4px; }
.home-hero__stats strong{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(26px, 3vw, 36px); line-height:1;
}
.home-hero__stats span{
  font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--fg-muted);
}
.home-features{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:1fr 1fr; gap:10px 22px;
}
.home-features li{
  display:flex; align-items:center; gap:10px;
  font-size:13px; color:var(--fg-soft);
}
.home-features svg{ flex-shrink:0; color:var(--fg); opacity:.7; }

.home-hero__media{
  display:flex; justify-content:center; align-items:flex-start;
  position:relative;
  margin-top:-60px;
}
.home-hero__media img{
  max-height:clamp(420px, 56vw, 720px);
  width:auto;
  filter:drop-shadow(0 60px 60px rgba(14,14,14,.35));
  transform:scaleX(-1);
}

@media (max-width:980px){
  .home-hero__inner{ grid-template-columns:1fr; gap:48px; }
  .home-hero__title{ font-size:clamp(42px, 9vw, 80px); }
  .home-features{ grid-template-columns:1fr; }
  .showcase__vertical, .showcase__sparkle{ display:none; }
}

/* ───── Manifesto band (replaces old marquee) ───── */
.manifesto{
  padding:clamp(48px, 6vw, 80px) 0;
  text-align:center;
}
.manifesto .container{
  display:flex; flex-direction:column; align-items:center; gap:18px;
}
.manifesto__rule{
  display:block; width:60px; height:1px; background:var(--fg); opacity:.35;
}
.manifesto__line{
  font-family:var(--ff-display);
  font-size:clamp(34px, 5vw, 60px); line-height:1.1; margin:0;
  font-weight:400; color:var(--fg);
}
.manifesto__line em{ font-style:italic; }
.manifesto__sub{
  font-size:11px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--fg-muted); margin:0;
}

/* ───── Experience — full-bleed image + overlay card ───── */
.home-experience{
  position:relative; overflow:hidden;
  background:var(--invert-bg);
  padding-block:clamp(80px, 10vw, 140px);
}
.home-experience__media{
  position:absolute; inset:0;
  background:
    linear-gradient(135deg, rgba(14,14,14,.35), rgba(14,14,14,.7) 70%),
    url('assets/kiss.webp') center/cover no-repeat;
  filter:grayscale(.35) contrast(1.05);
}
.home-experience .container{ position:relative; z-index:1; display:flex; justify-content:flex-end; }
.home-experience__card{
  background:var(--bg); padding:42px 46px;
  max-width:520px; width:100%;
  box-shadow:0 30px 60px -25px rgba(0,0,0,.5);
}
.home-experience__card .eyebrow{ color:var(--fg-muted); margin-bottom:14px; }
.home-experience__card h2{ font-size:clamp(32px, 3.6vw, 46px); margin-bottom:16px; }
.home-experience__card h2 em{ font-style:italic; font-weight:400; }
.home-experience__card .lead{ font-size:15px; margin-bottom:18px; max-width:none; }
.home-experience__card .check-list{ margin:0; }

@media (max-width:760px){
  .home-experience .container{ justify-content:center; padding:0 20px; }
  .home-experience__card{ padding:32px 28px; }
}

/* ───── Home location tiles ───── */
.home-tiles{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:1px; background:var(--hairline); border:1px solid var(--hairline);
}
.home-tile{
  background:var(--bg);
  display:flex; flex-direction:column;
  text-decoration:none; color:inherit;
  transition:background .25s;
}
.home-tile:hover{ background:var(--card-bg); }
.home-tile__media{
  aspect-ratio:5/4;
  background-color:var(--invert-bg);
  background-size:cover; background-position:center;
  filter:grayscale(.15);
  transition:filter .35s, transform .5s ease;
}
.home-tile:hover .home-tile__media{ filter:grayscale(0); transform:scale(1.03); }
.home-tile__body{
  padding:24px 28px 28px;
  display:flex; flex-direction:column; gap:8px;
  flex:1;
}
.home-tile__num{
  font-family:var(--ff-display); font-style:italic; font-size:14px;
  color:var(--accent); opacity:.7; letter-spacing:.04em;
}
.home-tile__title{
  font-family:var(--ff-display); font-weight:500; font-size:24px;
  line-height:1.15; margin:0;
}
.home-tile__title em{ font-style:italic; font-weight:400; }
.home-tile__body p{ font-size:14px; color:var(--fg-soft); margin:0; flex:1; }
.home-tile__cta{
  margin-top:8px; font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  font-weight:600; color:var(--fg); border-bottom:1px solid currentColor;
  align-self:flex-start; padding-bottom:3px;
}

@media (max-width:880px){
  .home-tiles{ grid-template-columns:1fr; }
}

/* ───── Home CTA polish ───── */
.home-cta .eyebrow{ font-style:italic; font-family:var(--ff-display); text-transform:none; font-size:14px; letter-spacing:0; }
.home-cta .cta__title{ font-size:clamp(40px, 5vw, 64px); margin-bottom:18px; }
.faq-search{
  position:relative; max-width:560px; margin:30px auto 0;
  display:flex; align-items:center; gap:10px;
  padding:14px 18px; background:var(--card-bg); border:1px solid var(--hairline);
}
.faq-search svg{ flex-shrink:0; color:var(--fg-muted); }
.faq-search input{
  flex:1; border:0; background:transparent; outline:none;
  font:inherit; font-size:15px; color:var(--fg);
  letter-spacing:0; text-transform:none;
}
.faq-search input::placeholder{ color:var(--fg-muted); font-style:italic; }
#faq-clear{
  background:transparent; border:0; padding:0 6px;
  font-size:22px; color:var(--fg-muted); cursor:pointer; line-height:1;
  opacity:0; pointer-events:none; transition:opacity .15s;
}
#faq-clear.is-visible{ opacity:1; pointer-events:auto; }
#faq-clear:hover{ color:var(--fg); }

.faq-layout{
  display:grid; grid-template-columns:280px 1fr;
  gap:clamp(32px, 5vw, 64px);
  align-items:flex-start;
}
.faq-nav{ position:sticky; top:120px; }
.faq-nav .eyebrow{ margin-bottom:18px; }
.faq-nav ul{ list-style:none; padding:0; margin:0 0 32px; display:flex; flex-direction:column; }
.faq-nav button{
  width:100%; display:flex; align-items:baseline; gap:14px;
  text-align:left; padding:14px 0; border:0; background:transparent;
  border-top:1px solid var(--hairline);
  font:inherit; font-family:var(--ff-display); font-weight:500;
  font-size:18px; color:var(--fg); cursor:pointer; line-height:1.15;
  transition:color .15s;
}
.faq-nav button:last-child{ border-bottom:1px solid var(--hairline); }
.faq-nav button:hover{ color:var(--accent); }
.faq-nav button.is-active{ color:var(--fg); font-style:italic; }
.faq-nav__num{
  font-family:var(--ff-display); font-style:italic; font-weight:400;
  font-size:13px; color:var(--accent); opacity:.6;
  letter-spacing:.04em; flex-shrink:0; min-width:24px;
}
.faq-nav button.is-active .faq-nav__num{ opacity:1; }

.faq-side-card{
  padding:22px 24px; background:var(--card-bg); border:1px solid var(--hairline);
}
.faq-side-card__eyebrow{
  font-size:10px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--fg-muted); font-weight:500; margin:0 0 8px;
}
.faq-side-card__line{
  font-family:var(--ff-display); font-weight:500; font-size:18px;
  line-height:1.25; margin:0 0 14px; color:var(--fg);
}
.faq-side-card__line em{ font-style:italic; font-weight:400; }

.faq-panels{ min-height:400px; }
.faq-cat{ display:none; }
.faq-cat.is-active{ display:block; animation:faqFade .25s ease both; }
@keyframes faqFade{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:none; } }

.faq-cat__head{ margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--hairline); }
.faq-cat__head .eyebrow{ margin-bottom:10px; }
.faq-cat__head h2{ margin:0; font-size:clamp(32px, 4vw, 44px); }
.faq-cat__head em{ font-style:italic; font-weight:400; }

.faq-item{
  border-bottom:1px solid var(--hairline);
  transition:background .15s;
}
.faq-item[open]{ background:linear-gradient(to right, var(--card-bg), transparent 80%); }
.faq-item summary{
  list-style:none; cursor:pointer;
  display:grid; grid-template-columns:40px 1fr auto;
  gap:14px; align-items:baseline;
  padding:22px 12px 22px 0;
  font-family:var(--ff-display); font-weight:500; font-size:20px;
  line-height:1.3; color:var(--fg);
  transition:color .15s;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; font-family:var(--ff-sans); font-weight:300;
  font-size:28px; line-height:1; color:var(--accent);
  transition:transform .25s ease, color .15s;
  align-self:center;
}
.faq-item[open] summary::after{ content:"−"; color:var(--fg); }
.faq-item summary:hover{ color:var(--accent); }
.faq-item__n{
  font-family:var(--ff-display); font-style:italic; font-weight:400;
  font-size:14px; color:var(--accent); opacity:.65;
  align-self:center;
}
.faq-item__body{ padding:0 12px 24px 54px; max-width:70ch; }
.faq-item__body p{
  font-size:15px; line-height:1.7; color:var(--fg-soft); margin:0 0 10px;
}
.faq-item__body p:last-child{ margin-bottom:0; }
.faq-item__body a{
  border-bottom:1px solid currentColor; padding-bottom:1px;
  cursor:pointer;
}
.faq-item__body strong{ color:var(--fg); font-weight:600; }
.faq-item[data-faq-hide]{ display:none; }

.faq-empty{
  padding:60px 24px; text-align:center;
  border:1px dashed var(--hairline);
}
.faq-empty .serif{ font-family:var(--ff-display); font-size:22px; margin:0 0 12px; }

@media (max-width:880px){
  .faq-layout{ grid-template-columns:1fr; }
  .faq-nav{ position:static; }
  .faq-nav ul{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
  .faq-nav button{ padding:12px 0; font-size:15px; }
  .faq-item summary{ font-size:17px; padding:18px 8px 18px 0; grid-template-columns:32px 1fr auto; gap:10px; }
  .faq-item__body{ padding-left:42px; }
}
@media (max-width:880px){
  .grid-2,.contact-grid,.cards,.kpis,.steps,.occ-list--3col,.footer__inner{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
}

/* ---------- Product showcase (homepage) ---------- */
.showcase{
  position:relative; background:var(--bg-alt);
  overflow:hidden; padding-block:clamp(80px, 10vw, 140px);
}
.showcase__inner{
  display:grid; grid-template-columns:1fr 1.05fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:center; position:relative; z-index:1;
}
.showcase__media{ display:flex; justify-content:center; align-items:center; }
.showcase__media img{
  max-height:clamp(420px, 56vw, 680px); width:auto;
  filter:drop-shadow(0 60px 60px rgba(14,14,14,.35));
}
.showcase__sparkle{
  position:absolute; font-size:22px; color:var(--fg);
  opacity:.55; pointer-events:none;
}
.showcase__sparkle--tl{ top:7%; left:4%; }
.showcase__sparkle--ml{ top:42%; left:4.5%; font-size:16px; opacity:.4; }
.showcase__vertical{
  position:absolute; top:50%; left:2.2%;
  transform:rotate(-90deg); transform-origin:left center;
  font-size:11px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--fg-muted); white-space:nowrap;
}
.showcase__vertical::before,.showcase__vertical::after{
  content:""; display:inline-block; width:28px; height:1px;
  background:var(--fg-muted); vertical-align:middle; margin:0 14px;
}
.showcase__leaf{
  position:absolute; bottom:-20px; right:-30px;
  width:clamp(180px, 22vw, 320px); height:auto;
  color:var(--accent); opacity:.55; pointer-events:none;
}
.showcase__eyebrow{
  display:flex; align-items:center; gap:14px;
  font-size:11px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--fg-muted); margin:0 0 26px;
}
.showcase__rule{ flex:0 0 80px; height:1px; background:var(--fg); opacity:.45; }
.showcase__star{ color:var(--fg); opacity:.7; font-size:14px; }
.showcase__title{
  font-family:var(--ff-display); font-weight:600;
  font-size:clamp(40px, 5.6vw, 72px); line-height:1.02;
  letter-spacing:-.01em; text-transform:uppercase;
  margin:0 0 14px;
}
.showcase__title em{ font-style:italic; font-weight:400; text-transform:none; }
.showcase__underline{
  display:block; width:110px; height:2px; background:var(--accent);
  margin-bottom:26px;
}
.showcase__lede{
  max-width:42ch; color:var(--fg-soft);
  font-size:13px; letter-spacing:.18em; text-transform:uppercase;
  line-height:1.85; margin:0 0 36px;
}
.features{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:18px 28px;
}
.features li{
  display:flex; align-items:center; gap:14px;
  position:relative; padding:8px 0;
}
.features li::after{
  content:""; position:absolute; left:56px; right:0; bottom:0;
  height:1px; background:var(--hairline);
}
.features__icon{
  flex:0 0 42px; width:42px; height:42px;
  border:1px solid var(--hairline); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--fg); background:var(--bg);
}
.features li > span:last-child{ display:flex; flex-direction:column; gap:2px; }
.features li strong{
  font-family:var(--ff-sans); font-weight:600;
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--fg);
}
.features li em{
  font-style:normal; font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--fg-muted);
}
@media (max-width:880px){
  .showcase__inner{ grid-template-columns:1fr; }
  .showcase__vertical{ display:none; }
  .showcase__sparkle--tl{ top:3%; left:5%; }
  .showcase__sparkle--ml{ display:none; }
  .features{ grid-template-columns:1fr; }
}
.bk-form{ background:transparent; }
.bk-form__grid{
  display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:32px; align-items:flex-start;
}
.bk-form__panel{ display:flex; flex-direction:column; gap:24px; }
.bk-step{
  border:1px solid var(--hairline); background:var(--card-bg);
  padding:24px 28px; display:flex; flex-direction:column; gap:14px;
  border:0; padding:0;
}
.bk-step__title{
  background:var(--card-bg); border:1px solid var(--hairline); border-bottom:0;
  padding:18px 28px;
  display:flex; align-items:center; gap:12px;
  font-family:var(--ff-display); font-weight:500; font-size:20px; margin:0;
}
.bk-step__body{
  background:var(--card-bg); border:1px solid var(--hairline); border-top:0;
  padding:6px 28px 24px;
  display:flex; flex-direction:column; gap:14px;
}
.bk-step legend{ display:none; }
.bk-step__n{
  font-family:var(--ff-display); font-style:italic; color:var(--accent);
  font-size:16px; opacity:.6;
}
.bk-step__hint{
  font-size:13px; color:var(--fg-soft); margin:-4px 0 4px; line-height:1.5;
}
.bk-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.bk-field{ display:flex; flex-direction:column; gap:6px; }
.bk-field > span{
  font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--fg-muted);
  font-weight:500;
}
.bk-field input,.bk-field select,.bk-field textarea{
  font:inherit; font-size:15px; padding:13px 14px;
  border:1px solid var(--hairline); background:var(--bg); color:var(--fg);
  border-radius:var(--radius); outline:none; transition:border-color .15s;
}
.bk-field input:focus,.bk-field select:focus,.bk-field textarea:focus{ border-color:var(--fg); }

.bk-counter{
  display:flex; align-items:center; gap:14px; padding:8px 0;
}
.bk-counter__btn{
  width:44px; height:44px; border:1px solid var(--fg); background:transparent;
  font-size:20px; font-weight:300; cursor:pointer; transition:background .15s, color .15s;
  font-family:var(--ff-sans);
}
.bk-counter__btn:hover{ background:var(--fg); color:var(--bg); }
.bk-counter__val{
  flex:1; display:flex; flex-direction:column; align-items:center;
  padding:8px 16px;
}
.bk-counter__val em{
  font-family:var(--ff-display); font-style:italic; font-weight:500;
  font-size:54px; line-height:1; color:var(--fg);
}
.bk-counter__val span{
  font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-muted);
  margin-top:6px;
}

.bk-prints{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline); }
.bk-print{ background:var(--bg); padding:18px 16px; cursor:pointer; position:relative; transition:background .15s; }
.bk-print:hover{ background:var(--card-bg); }
.bk-print input{ position:absolute; opacity:0; pointer-events:none; }
.bk-print:has(input:checked){ background:var(--fg); color:var(--bg); }
.bk-print__inner{ display:flex; flex-direction:column; gap:6px; }
.bk-print__pop{
  position:absolute; top:0; right:0; padding:3px 9px;
  font-size:9px; letter-spacing:.22em; text-transform:uppercase;
  background:var(--accent); color:var(--bg); font-weight:500;
}
.bk-print:has(input:checked) .bk-print__pop{ background:var(--bg); color:var(--fg); }
.bk-print__count{
  font-family:var(--ff-display); font-style:italic; font-weight:500;
  font-size:36px; line-height:1; margin-bottom:2px;
}
.bk-print__lbl{ font-family:var(--ff-display); font-size:16px; font-weight:500; }
.bk-print__desc{ font-size:11px; line-height:1.4; opacity:.7; min-height:30px; }
.bk-print__price{
  font-family:var(--ff-mono); font-size:11px; letter-spacing:.06em;
  padding-top:8px; margin-top:auto;
  border-top:1px solid var(--hairline);
}
.bk-print:has(input:checked) .bk-print__price{ border-color:rgba(255,255,255,.18); }

.bk-addons{ display:flex; flex-direction:column; }
.bk-addon{
  display:grid; grid-template-columns:auto 1fr auto;
  gap:14px; align-items:center;
  padding:14px 4px; border-bottom:1px solid var(--hairline);
  cursor:pointer;
}
.bk-addon:last-child{ border-bottom:0; }
.bk-addon input{ accent-color:var(--fg); width:18px; height:18px; }
.bk-addon__main{ display:flex; flex-direction:column; gap:2px; }
.bk-addon__lbl{ font-size:14px; font-weight:500; }
.bk-addon__desc{ font-size:12px; color:var(--fg-soft); line-height:1.45; }
.bk-addon__price{
  font-family:var(--ff-display); font-style:italic; font-size:15px;
  white-space:nowrap;
}

/* Summary panel */
.bk-summary{ position:sticky; top:120px; }
.bk-summary__inner{
  background:var(--fg); color:var(--bg);
  padding:32px 28px 28px; display:flex; flex-direction:column; gap:14px;
}
.bk-summary .eyebrow{ color:rgba(255,255,255,.5); margin-bottom:6px; }
.bk-summary__title{
  font-family:var(--ff-display); font-size:28px; line-height:1.1; margin:0; font-weight:500;
}
.bk-summary__title em{ font-style:italic; font-weight:400; }
.bk-summary__lines{ list-style:none; padding:14px 0; margin:8px 0; border-top:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); display:flex; flex-direction:column; gap:10px; }
.bk-summary__lines li{ display:flex; justify-content:space-between; gap:14px; align-items:baseline; font-size:13px; }
.bk-summary__lines em{ font-style:normal; opacity:.7; font-size:12px; }
.bk-summary__lines strong{ font-family:var(--ff-display); font-style:italic; font-weight:400; font-size:16px; }
.bk-summary__lines li.is-empty strong{ opacity:.5; font-size:12px; }
.bk-summary__addons{ display:flex; flex-direction:column; gap:6px; padding:0 0 8px; }
.bk-summary__addon{
  display:flex; justify-content:space-between; gap:10px; align-items:baseline; font-size:12px;
  color:rgba(255,255,255,.75);
}
.bk-summary__addon strong{ font-family:var(--ff-display); font-style:italic; font-weight:400; color:#fff; }
.bk-summary__total{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:14px 0; border-top:1px solid rgba(255,255,255,.30);
}
.bk-summary__lbl{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; opacity:.7; }
.bk-summary__amount em{
  font-family:var(--ff-display); font-style:italic; font-weight:500;
  font-size:38px; line-height:1;
}
.bk-summary__note{
  font-size:11px; line-height:1.5; color:rgba(255,255,255,.6); margin:0;
}
.bk-summary__note a{ color:rgba(255,255,255,.85); text-decoration:underline; cursor:pointer; }
.bk-summary__foot{
  font-size:10px; letter-spacing:.18em; text-transform:uppercase; text-align:center;
  color:rgba(255,255,255,.5); margin:6px 0 0;
}
.bk-submit{
  width:100%; background:var(--bg); color:var(--fg); border-color:var(--bg);
  margin-top:8px;
}
.bk-submit:hover:not(:disabled){ background:transparent; color:var(--bg); border-color:var(--bg); }
.bk-submit:disabled{ background:#234e2d; color:#fff; border-color:#234e2d; opacity:1; cursor:default; }

@media (max-width: 980px){
  .bk-form__grid{ grid-template-columns:1fr; }
  .bk-summary{ position:relative; top:0; }
  .bk-prints{ grid-template-columns:repeat(2,1fr); }
  .bk-grid-2{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .bk-prints{ grid-template-columns:1fr; }
  .bk-step{ padding:18px 20px; }
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- Cookies page ---------- */
.cookies-manage{
  display:grid; grid-template-columns:1fr auto;
  gap:clamp(20px,3vw,40px);
  align-items:start;
  background:var(--card-bg); border:1px solid var(--hairline);
  padding:28px 32px;
  margin:0 0 56px;
}
.cookies-manage h2{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(22px,2.4vw,28px); margin:0 0 12px;
  line-height:1.15; color:var(--fg);
}
.cookies-manage p{ margin:0 0 8px; color:var(--fg-soft); font-size:15px; line-height:1.6; }
.cookies-manage__status{
  font-family:var(--ff-display); font-style:italic;
  color:var(--accent); margin-top:14px !important; font-size:16px;
}
.cookies-manage__actions{
  display:flex; flex-direction:column; gap:10px;
  flex-shrink:0;
}
.cookies-manage__actions .btn{ white-space:nowrap; }
.cookies-pill{
  display:inline-block; vertical-align:middle;
  margin-left:10px; padding:3px 10px;
  background:var(--card-bg); border:1px solid var(--hairline);
  font-family:var(--ff-sans); font-weight:500;
  font-size:10px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--fg-muted);
}
.cookies-pill--required{
  background:var(--fg); color:var(--bg); border-color:var(--fg);
}
.legal h3{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(18px,1.8vw,22px); margin:28px 0 8px;
  color:var(--fg); line-height:1.2;
}
@media (max-width:680px){
  .cookies-manage{ grid-template-columns:1fr; padding:22px 22px; }
  .cookies-manage__actions{ flex-direction:row; flex-wrap:wrap; }
  .cookies-manage__actions .btn{ flex:1; }
}


/* ───── About — values, signature, testimonials, team ───── */
.values{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--hairline); border:1px solid var(--hairline);
}
.values__item{ background:var(--bg); padding:32px 28px; }
.values__item h4{ font-family:var(--ff-display); font-weight:500; font-size:22px; margin:0 0 8px; }
.values__item p{ margin:0; color:var(--fg-soft); font-size:14.5px; }
.signature{ font-family:var(--ff-display); font-style:italic; font-size:22px; margin-top:24px; color:var(--fg); }

.testi{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.testi__item{ margin:0; padding:36px 32px; background:var(--card-bg); border:1px solid var(--card-border); }
.testi__item blockquote{ margin:0 0 18px; font-family:var(--ff-display); font-size:19px; line-height:1.5; font-style:italic; }
.testi__item figcaption{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--fg-muted); }
@media (max-width:880px){ .testi{ grid-template-columns:1fr; } .values{ grid-template-columns:1fr; } }

.team{ display:grid; gap:clamp(56px,7vw,96px); }
.team__card{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.team__card--reverse .team__polaroid{ order:2; }
.team__polaroid{
  --rot:-3.5deg; position:relative; background:#fbf6ec;
  padding:14px 14px 86px; width:min(100%, 300px); aspect-ratio:2/3;
  margin:0 auto;
  box-shadow:0 1px 0 rgba(0,0,0,.04) inset, 0 30px 60px -25px rgba(14,14,14,.45), 0 8px 18px -10px rgba(14,14,14,.35);
  transform:rotate(var(--rot)); transition:transform .5s ease, box-shadow .5s ease;
}
.team__polaroid--right{ --rot:3deg; }
.team__polaroid::before{
  content:""; position:absolute; top:-14px; left:50%;
  width:90px; height:22px; background:rgba(216,198,179,.55);
  transform:translateX(-50%) rotate(-2deg);
  box-shadow:0 6px 14px -8px rgba(0,0,0,.25); pointer-events:none;
}
.team__polaroid--right::before{ transform:translateX(-50%) rotate(3deg); background:rgba(74,69,65,.35); }
.team__card:hover .team__polaroid{
  transform:rotate(calc(var(--rot) * 0.3)) translateY(-4px);
  box-shadow:0 1px 0 rgba(0,0,0,.04) inset, 0 40px 70px -25px rgba(14,14,14,.55), 0 12px 22px -10px rgba(14,14,14,.4);
}
.team__polaroid-caption{
  position:absolute; left:0; right:0; bottom:30px; text-align:center;
  font-family:var(--ff-display); font-style:italic;
  font-size:18px; letter-spacing:.04em; color:#2a2622;
}
.team__portrait{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--bg-dark); }
.team__portrait img{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(100%) contrast(1.05);
  transition:filter .4s ease, transform .6s ease;
}
.team__card:hover .team__portrait img{ filter:grayscale(0%) contrast(1); transform:scale(1.02); }
.team__role{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--fg-muted); margin:0 0 12px; }
.team__name{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(36px, 4vw, 56px); line-height:1.05;
  margin:0 0 18px; letter-spacing:-.005em;
}
.team__body p{ color:var(--fg-soft); margin:0 0 14px; max-width:52ch; font-size:15px; line-height:1.65; }
.team__body .link-arrow{ margin-top:8px; }
@media (max-width:880px){
  .team__card,.team__card--reverse{ grid-template-columns:1fr; }
  .team__card--reverse .team__polaroid{ order:0; }
  .team__polaroid{ width:min(100%, 260px); }
}


/* ============ Responsive — global tightening ============ */
@media (max-width: 1100px){
  .home-tiles{ grid-template-columns:repeat(2,1fr); }
  .home-tiles .home-tile:nth-child(3){ grid-column:1 / -1; }
  .cards{ grid-template-columns:repeat(2,1fr); }
  .bk-form__grid{ grid-template-columns:1fr; }
  .bk-summary{ position:relative; top:0; }
  .corp-hero,.indiv-hero{ grid-template-columns:1fr; }
  .corp-hero .polaroid-stack{ margin:0 auto; }
  .polaroid-pair{ margin:0 auto; }
}

@media (max-width: 880px){
  .container{ padding:0 18px; }
  .header__inner{ grid-template-columns:auto 1fr; padding:14px 18px; gap:12px; }
  .header__cta{ display:none; }
  .nav{ display:none; }
  .top-bar__inner{ flex-direction:column; gap:8px; padding:10px 0; text-align:center; }
  .top-bar__tag{ font-size:10px; }
  .hero__title,.home-hero__title{ font-size:clamp(40px, 9vw, 64px); }
  .h1,.cta__title{ font-size:clamp(36px, 7vw, 56px); }
  .h2{ font-size:clamp(28px, 5vw, 42px); }
  .lead{ font-size:15px; }
  .section{ padding:clamp(48px, 8vw, 80px) 0; }
  .hero__stats{ grid-template-columns:1fr; gap:14px; }
  .home-hero__stats{ grid-template-columns:1fr; }
  .home-hero__media{ margin-top:0; }
  .home-hero__media img{ max-height:60vh; }
  .home-tiles{ grid-template-columns:1fr; }
  .home-tiles .home-tile:nth-child(3){ grid-column:auto; }
  .home-tile__body{ padding:18px 20px 22px; }
  .home-experience .container{ justify-content:center; padding:0 18px; }
  .home-experience__card{ padding:28px 24px; }
  .cards{ grid-template-columns:1fr; }
  .kpis{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:1fr 1fr; }
  .logos{ flex-wrap:wrap; gap:24px; }
  .logos img{ height:32px; }
  .grid-2,.contact-grid,.footer__inner{ grid-template-columns:1fr; }
  .footer__inner{ gap:32px; padding-bottom:32px; }
  .footer{ padding:50px 0 24px; }
  .footer__bottom{ flex-direction:column; gap:12px; text-align:center; }
  .occasions-grid{ grid-template-columns:1fr; }
  .fan{ height:clamp(360px, 80vw, 420px); }
  .fan--centered{ margin:24px auto 36px; }
  .occ-list--3col{ grid-template-columns:1fr 1fr; }
  .faq-layout{ grid-template-columns:1fr; gap:32px; }
  .faq-nav{ position:static; }
  .faq-nav ul{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin-bottom:24px; }
  .faq-nav button{ padding:10px 0; font-size:14px; }
  .faq-item summary{ font-size:17px; padding:18px 6px 18px 0; grid-template-columns:28px 1fr 24px; gap:8px; }
  .faq-item__body{ padding:0 6px 22px 40px; }
  .bk-grid-2{ grid-template-columns:1fr; }
  .bk-prints{ grid-template-columns:1fr 1fr; }
  .home-experience__media{ background-position:center 30%; }
  .manifesto__line{ font-size:clamp(28px, 6vw, 40px); }
}

@media (max-width: 560px){
  .container{ padding:0 14px; }
  .header__inner{ padding:12px 14px; }
  .brand__logo{ height:42px; }
  .lang-toggle,.theme-toggle{ display:none; }
  .home-hero{ padding-block:48px 36px; }
  .home-hero__title{ font-size:clamp(36px, 11vw, 52px); }
  .home-hero__title em{ font-size:.72em; }
  .home-hero__ctas{ flex-direction:column; align-items:stretch; gap:10px; margin-bottom:32px; }
  .home-hero__ctas .btn{ justify-content:center; }
  .btn{ padding:14px 22px; font-size:11.5px; }
  .btn--lg{ padding:16px 24px; }
  .page-hero{ padding:48px 0 32px; }
  .occ-list--3col{ grid-template-columns:1fr; }
  .occ-list__item{ grid-template-columns:36px 1fr; }
  .bk-prints{ grid-template-columns:1fr; }
  .bk-step__body{ padding:6px 18px 20px; }
  .bk-step__title{ padding:14px 18px; font-size:17px; }
  .bk-summary__inner{ padding:24px 22px; }
  .testi{ grid-template-columns:1fr; }
  .values{ grid-template-columns:1fr; }
  .team__name{ font-size:clamp(28px, 7vw, 36px); }
  .team__body p{ font-size:14px; }
  .home-experience__card h2{ font-size:28px; }
  .steps{ grid-template-columns:1fr; }
  .kpis{ grid-template-columns:1fr; gap:18px; }
  .footer__inner{ grid-template-columns:1fr; }
  .footer__brand p{ font-size:16px; }
  .footer__col h5{ margin-bottom:10px; }
  .faq-nav ul{ grid-template-columns:1fr; }
  .faq-search{ flex-wrap:wrap; }
  .faq-search input{ min-width:0; }
  .manifesto__line{ font-size:24px; }
  .manifesto__sub{ font-size:10px; letter-spacing:.24em; }
}


/* ============ Mobile menu ============ */
.mobile-menu-btn{
  display:none;
  background:transparent; border:0; padding:6px 4px; cursor:pointer;
  width:40px; height:40px; flex-direction:column; gap:5px;
  align-items:center; justify-content:center; margin-left:auto;
}
.mobile-menu-btn span{
  display:block; width:22px; height:1.5px; background:var(--fg);
  transition:transform .25s ease, opacity .2s ease;
}
.mobile-menu-btn.is-open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.mobile-menu-btn.is-open span:nth-child(2){ opacity:0; }
.mobile-menu-btn.is-open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:90;
  background:var(--bg); color:var(--fg);
  display:flex; flex-direction:column; padding:96px 28px 32px;
  gap:24px; overflow-y:auto;
  transform:translateX(100%); transition:transform .35s cubic-bezier(.2,.8,.2,1);
  pointer-events:none;
}
.mobile-menu.is-open{ transform:translateX(0); pointer-events:auto; }
.mobile-menu__nav{ display:flex; flex-direction:column; gap:0; flex:1; }
.mobile-menu__nav a{
  font-family:var(--ff-display); font-weight:500; font-size:28px;
  color:var(--fg); padding:18px 0;
  border-bottom:1px solid var(--hairline);
  text-decoration:none; cursor:pointer;
  transition:color .15s, padding-left .25s;
}
.mobile-menu__nav a:hover,
.mobile-menu__nav a.is-active{ color:var(--accent); padding-left:10px; font-style:italic; }
.mobile-menu .btn{ justify-content:center; }
.mobile-menu__foot{
  display:flex; justify-content:space-between; gap:12px; padding-top:18px;
  font-family:var(--ff-mono); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--fg-muted);
  border-top:1px solid var(--hairline);
}
.mobile-menu__controls{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:18px 0 14px;
  margin-top:auto;
  font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--fg);
}
.mobile-menu__controls .lang-toggle{ gap:10px; font-weight:500; }
.mobile-menu__controls .lang-btn{
  background:none; border:none; color:var(--fg); font:inherit; padding:0;
  opacity:.55; letter-spacing:inherit;
}
.mobile-menu__controls .lang-btn.is-active{ opacity:1; text-decoration:underline; text-underline-offset:4px; }
.mobile-menu__controls .lang-sep{ opacity:.4; }
.mobile-menu__controls .theme-toggle{
  background:none; color:var(--fg); border:1px solid var(--hairline);
  width:38px; height:38px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
}
.mobile-menu__controls .theme-toggle .icon-moon{ display:none; }
[data-theme="dark"] .mobile-menu__controls .theme-toggle .icon-sun{ display:none; }
[data-theme="dark"] .mobile-menu__controls .theme-toggle .icon-moon{ display:block; }
body.menu-open{ overflow:hidden; }

/* ───── Mobile overflow safety (booking forms) ───── */
html, body{ overflow-x:hidden; }
.bk-form, .bk-form__grid, .bk-form__panel, .bk-step, .bk-step__body,
.bk-grid-2, .bk-prints, .bk-summary, .bk-summary__inner{ min-width:0; max-width:100%; }
.bk-field, .bk-field input, .bk-field select, .bk-field textarea,
.bk-promo, .bk-promo input{ min-width:0; max-width:100%; box-sizing:border-box; }
.bk-print, .bk-addon, .bk-addon__main, .bk-summary__lines li, .bk-summary__addon{ min-width:0; }
.bk-print__desc, .bk-addon__desc, .bk-print__lbl, .bk-addon__lbl{ overflow-wrap:break-word; word-break:break-word; }
.bk-summary__amount em{ overflow-wrap:break-word; word-break:break-word; }

@media (max-width: 560px){
  .bk-step{ padding:18px 16px; }
  .bk-step__title{ padding:14px 16px; font-size:16px; gap:10px; }
  .bk-step__body{ padding:6px 16px 20px; }
  .bk-summary__inner{ padding:24px 20px; }
  .bk-summary__title{ font-size:22px; }
  .bk-summary__amount em{ font-size:32px; }
  .bk-promo{ flex-direction:column; align-items:stretch; }
  .bk-promo input{ padding:12px 14px; }
  .bk-promo__btn{ padding:12px; width:100%; }
  .bk-counter__val em{ font-size:42px; }
  .bk-counter__btn{ width:40px; height:40px; }
  .bk-print{ padding:14px 12px; }
  .bk-print__count{ font-size:30px; }
  .bk-addon{ grid-template-columns:auto 1fr; row-gap:6px; }
  .bk-addon__price{ grid-column:2; justify-self:start; }
  .bk-form .container{ padding-left:14px; padding-right:14px; }
}
@media (max-width: 380px){
  .bk-step__title{ font-size:15px; }
  .bk-summary__inner{ padding:20px 16px; }
}

@media (max-width: 880px){
  .mobile-menu-btn{ display:flex; }
  .nav,.header__cta{ display:none !important; }
  .header__inner{ grid-template-columns:auto 1fr !important; }
}
@media (min-width: 881px){
  .mobile-menu{ display:none; }
}

.mobile-menu__brand{
  display:flex; align-items:center; justify-content:center;
  padding:6px 0 18px; border-bottom:1px solid var(--hairline);
  margin-bottom:8px;
}
.mobile-menu__brand img{ height:60px; width:auto; display:block; }
[data-theme="light"] .mobile-menu__logo--dark{ display:none; }
[data-theme="dark"]  .mobile-menu__logo--light{ display:none; }
.mobile-menu{ padding-top:36px; }


/* ============ Cookie consent ============ */
.cookies{
  position:fixed; left:18px; right:18px; bottom:18px;
  z-index:1000;
  background:var(--fg); color:var(--bg);
  padding:18px 22px;
  box-shadow:0 30px 60px -25px rgba(0,0,0,.45), 0 12px 22px -10px rgba(0,0,0,.3);
  display:flex; align-items:center; gap:22px;
  max-width:780px; margin-left:auto;
  opacity:0; transform:translateY(16px);
  transition:opacity .35s ease, transform .35s ease;
  pointer-events:none;
}
.cookies.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.cookies__inner{
  display:flex; align-items:center; gap:22px; width:100%;
  flex-wrap:wrap;
}
.cookies__copy{ flex:1; min-width:260px; }
.cookies__title{
  font-family:var(--ff-display); font-weight:500; font-size:15px;
  margin:0 0 4px; letter-spacing:.01em;
}
.cookies__title em{ font-style:italic; font-weight:400; }
.cookies__lede{
  font-size:12px; line-height:1.55; margin:0;
  color:rgba(242,234,226,.78);
}
.cookies__actions{ display:flex; gap:8px; align-items:center; flex-shrink:0; }
.cookies__btn{
  font-family:var(--ff-sans); font-size:10.5px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  padding:11px 16px; cursor:pointer; border:1px solid currentColor;
  transition:background .15s, color .15s;
  white-space:nowrap;
}
.cookies__btn--ghost{
  background:transparent; color:var(--bg); border-color:rgba(242,234,226,.4);
}
.cookies__btn--ghost:hover{ border-color:var(--bg); }
.cookies__btn--primary{
  background:var(--bg); color:var(--fg); border-color:var(--bg);
}
.cookies__btn--primary:hover{ background:transparent; color:var(--bg); border-color:var(--bg); }

@media (max-width:560px){
  .cookies{ left:12px; right:12px; bottom:12px; padding:16px; flex-direction:column; align-items:stretch; }
  .cookies__inner{ flex-direction:column; align-items:stretch; gap:14px; }
  .cookies__actions{ width:100%; }
  .cookies__btn{ flex:1; padding:12px 12px; font-size:10px; }
}


/* ============ Discount popup ============ */
.discount{
  position:fixed; inset:0; z-index:1100;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
}
.discount__scrim{
  position:absolute; inset:0;
  background:rgba(14,14,14,.55);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0; transition:opacity .3s ease;
}
.discount.is-open .discount__scrim{ opacity:1; }

.discount__card{
  position:relative; z-index:1;
  background:var(--bg);
  display:grid; grid-template-columns:1fr 1.1fr;
  max-width:760px; width:100%;
  opacity:0; transform:translateY(20px) scale(.98);
  transition:opacity .35s ease, transform .35s cubic-bezier(.2,.8,.2,1);
  box-shadow:0 60px 100px -40px rgba(0,0,0,.55), 0 18px 30px -10px rgba(0,0,0,.3);
  overflow:hidden;
}
.discount.is-open .discount__card{ opacity:1; transform:translateY(0) scale(1); }

.discount__close{
  position:absolute; top:14px; right:18px; z-index:5;
  background:transparent; border:0; padding:0; cursor:pointer;
  font-family:var(--ff-sans); font-weight:300; font-size:28px; line-height:1;
  color:var(--fg-muted);
  transition:color .15s, transform .15s;
}
.discount__close:hover{ color:var(--fg); transform:rotate(90deg); }

.discount__art{
  position:relative;
  background:var(--bg-alt);
  display:flex; align-items:center; justify-content:center;
  padding:46px 30px;
  overflow:hidden;
}
.discount__polaroid{
  background:#fbf6ec; padding:12px 12px 60px;
  width:64%; aspect-ratio:2/3;
  transform:rotate(-5deg);
  box-shadow:0 1px 0 rgba(0,0,0,.04) inset, 0 30px 60px -25px rgba(14,14,14,.5), 0 8px 18px -10px rgba(14,14,14,.35);
  position:relative;
}
.discount__polaroid-photo{
  width:100%; aspect-ratio:4/5;
  background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.18)), url('assets/cheekkiss.webp') center/cover no-repeat;
}
.discount__polaroid-caption{
  position:absolute; left:0; right:0; bottom:20px; text-align:center;
  font-family:var(--ff-display); font-style:italic; font-size:15px; color:#2a2622;
}
.discount__sparkle{
  position:absolute; top:24px; right:32px;
  font-size:34px; color:var(--fg); opacity:.45;
}

.discount__body{
  padding:42px 40px 36px;
  display:flex; flex-direction:column;
  gap:14px;
}
.discount__eyebrow{
  font-size:10px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--fg-muted); font-weight:500; margin:0;
}
.discount__title{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(28px, 3vw, 38px); line-height:1.08; margin:0;
}
.discount__title em{ font-style:italic; font-weight:400; }
.discount__lede{
  font-size:14.5px; line-height:1.55; color:var(--fg-soft); margin:0;
}
.discount__lede strong{ color:var(--fg); font-weight:600; font-family:var(--ff-display); font-style:italic; font-size:18px; }

.discount__code{
  display:flex; align-items:center; gap:0;
  border:1px dashed var(--hairline);
  background:var(--card-bg);
  padding:6px;
  margin:6px 0 2px;
}
.discount__code-lbl{
  font-size:9px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--fg-muted); padding:0 12px;
}
.discount__code-val{
  flex:1;
  font-family:var(--ff-mono); font-size:15px; font-weight:500;
  letter-spacing:.18em; color:var(--fg);
  padding:8px 0;
}
.discount__copy{
  font-family:var(--ff-sans); font-size:10px; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase;
  padding:10px 14px; background:var(--fg); color:var(--bg);
  border:0; cursor:pointer;
  transition:background .15s;
}
.discount__copy:hover{ background:#000; }

.discount__actions{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; margin-top:8px;
}
.discount__cta{ flex:1; justify-content:center; }
.discount__skip{
  background:transparent; border:0; padding:0;
  font-family:var(--ff-sans); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--fg-muted); cursor:pointer;
  text-decoration:underline; text-underline-offset:4px;
}
.discount__skip:hover{ color:var(--fg); }

@media (max-width:680px){
  .discount{ padding:14px; }
  .discount__card{ grid-template-columns:1fr; max-width:440px; }
  .discount__art{ padding:32px 30px 16px; }
  .discount__polaroid{ width:50%; }
  .discount__sparkle{ top:14px; right:18px; font-size:22px; }
  .discount__body{ padding:24px 24px 28px; }
  .discount__actions{ flex-direction:column; }
  .discount__cta{ width:100%; }
}


/* Safety: discount overlay must never trap clicks unless visibly open */
.discount{ pointer-events:none; }
.discount.is-open{ pointer-events:auto; }


/* ============ Promo code field ============ */
.bk-promo{
  display:flex; align-items:stretch; gap:0;
  border:1px dashed var(--hairline);
  background:var(--bg);
}
.bk-promo input{
  flex:1; border:0; background:transparent; outline:none;
  padding:14px 16px; font:inherit; font-size:14px;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--fg);
}
.bk-promo input::placeholder{ color:var(--fg-muted); letter-spacing:0; text-transform:none; font-style:italic; }
.bk-promo__btn{
  background:var(--fg); color:var(--bg); border:0;
  padding:0 22px; font-family:var(--ff-sans);
  font-size:11px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; cursor:pointer;
  transition:background .15s;
}
.bk-promo__btn:hover{ background:#000; }
.bk-promo__msg{
  margin:10px 0 0; font-size:12px; letter-spacing:.04em;
  min-height:18px; line-height:1.4;
}
.bk-promo__msg.is-ok{ color:var(--ok, #2a6a40); }
.bk-promo__msg.is-err{ color:#a83232; }

.bk-summary__discount{
  color:rgba(255,255,255,.92);
}
.bk-summary__discount em{ font-style:italic; font-family:var(--ff-display); opacity:.95; }
.bk-summary__discount strong{ font-family:var(--ff-display); font-style:italic; color:#7cd3a4; }

.bk-summary__lines li[hidden]{ display:none !important; }


/* ============ Media-mix inline (compact, side-by-side) ============ */
.media-mix--inline{
  flex-wrap:nowrap;
  align-items:center;
  gap:clamp(16px, 2vw, 28px);
}
.media-mix--inline .polaroid-stack{
  max-width:280px; flex:0 1 280px; aspect-ratio:1/1;
}
.media-mix--inline .strip-cross{
  width:clamp(110px, 13vw, 150px); flex-shrink:0;
}
@media (max-width:560px){
  .media-mix--inline{ flex-wrap:wrap; justify-content:center; }
  .media-mix--inline .polaroid-stack{ max-width:240px; }
}
