/* ════════════════════════════════════════════════════════════
   AURORA BOTANIQUE — organic hair atelier
   Light · clean beauty · botaniczna zieleń + terakota + krem
   Fraunces (display) + Hanken Grotesk (body)
   ════════════════════════════════════════════════════════════ */

:root{
  --cream:    #F4F1E9;
  --cream-2:  #ECE7DA;
  --sand:     #E2DAC8;
  --paper:    #FBFAF5;
  --ink:      #232619;   /* olive-black tekst */
  --ink-soft: #4A4E3C;
  --moss:     #566249;   /* deep green akcent */
  --moss-2:   #6E7A56;
  --sage:     #9BA585;
  --sage-pale:#C7CDB6;
  --clay:     #B06A3F;   /* terakota — CTA / linki */
  --clay-deep:#8F5430;
  --gold:     #B89B5E;
  --line:     rgba(35,38,25,.12);
  --line-2:   rgba(35,38,25,.07);
  /* kolory portretów zespołu */
  --m1: #6E7A56; --m2: #9BA585; --m3: #B98A5E; --m4: #C0764A;

  --ff-display: 'Fraunces', Georgia, serif;
  --ff-body: 'Hanken Grotesk', system-ui, sans-serif;

  --maxw: 1240px;
  --pad: clamp(20px, 5vw, 80px);
  --r: 18px;
  --r-lg: 30px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ─── MOTYWY KOLORYSTYCZNE ───────────────────────────────────
   :root = zielony (Botanika). Poniżej 5 alternatyw — nadpisują
   tylko tokeny koloru, więc cały layout/motion zostaje wspólny.   */

/* Pudrowy róż */
html[data-theme="rose"]{
  --cream:#F8F2F0; --cream-2:#F0E4E1; --sand:#E8D2CD; --paper:#FDFAF9;
  --ink:#2B2422; --ink-soft:#5A4E4A;
  --moss:#9B5B61; --moss-2:#B97F84; --sage:#D9A9AC; --sage-pale:#ECCFD0;
  --clay:#B06A7A; --clay-deep:#8E4E60; --gold:#C29A7A;
  --line:rgba(43,36,34,.12); --line-2:rgba(43,36,34,.07);
  --m1:#9B5B61; --m2:#B97F84; --m3:#C99BA0; --m4:#D8B5A8;
}
/* Terakota */
html[data-theme="terracotta"]{
  --cream:#F7F0E8; --cream-2:#EFE2D4; --sand:#E4CDB6; --paper:#FCF8F3;
  --ink:#2E2620; --ink-soft:#574B40;
  --moss:#9C5A37; --moss-2:#BE7B4F; --sage:#D6A678; --sage-pale:#ECD0B0;
  --clay:#B5562F; --clay-deep:#8F4221; --gold:#C08A4E;
  --line:rgba(46,38,32,.12); --line-2:rgba(46,38,32,.07);
  --m1:#9C5A37; --m2:#BE7B4F; --m3:#C98A56; --m4:#D6A678;
}
/* Wrzos / lawenda */
html[data-theme="mauve"]{
  --cream:#F5F1F5; --cream-2:#EAE3EC; --sand:#D9CDDF; --paper:#FCFAFD;
  --ink:#28232B; --ink-soft:#4F4753;
  --moss:#6E5A7A; --moss-2:#8E7A9A; --sage:#B6A6C2; --sage-pale:#D6CBDF;
  --clay:#9A6E8E; --clay-deep:#785070; --gold:#A88FA0;
  --line:rgba(40,35,43,.12); --line-2:rgba(40,35,43,.07);
  --m1:#6E5A7A; --m2:#8E7A9A; --m3:#A593B0; --m4:#B6A6C2;
}
/* Szampan / nude */
html[data-theme="champagne"]{
  --cream:#F7F2E9; --cream-2:#EEE5D6; --sand:#E0D2BC; --paper:#FCF9F3;
  --ink:#2C261C; --ink-soft:#574E3E;
  --moss:#8C7350; --moss-2:#AD9268; --sage:#CBB389; --sage-pale:#E4D5B8;
  --clay:#A07A3D; --clay-deep:#7F5F2C; --gold:#BD9A55;
  --line:rgba(44,38,28,.12); --line-2:rgba(44,38,28,.07);
  --m1:#8C7350; --m2:#AD9268; --m3:#BFA372; --m4:#CBB389;
}
/* Pudrowy błękit */
html[data-theme="sky"]{
  --cream:#EFF2F4; --cream-2:#E1E8EC; --sand:#CBD7DE; --paper:#F8FAFB;
  --ink:#1F2A30; --ink-soft:#45555E;
  --moss:#4C6B78; --moss-2:#6E8C99; --sage:#9DB6C0; --sage-pale:#C6D7DE;
  --clay:#CE8A6A; --clay-deep:#B06A4A; --gold:#A8B6BD;
  --line:rgba(31,42,48,.12); --line-2:rgba(31,42,48,.07);
  --m1:#4C6B78; --m2:#6E8C99; --m3:#88A4AF; --m4:#9DB6C0;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body{
  font-family:var(--ff-body);
  background:var(--cream);
  color:var(--ink);
  font-size:17px;
  line-height:1.6;
  overflow-x:hidden;
  position:relative;
  transition:background-color .5s var(--ease), color .5s var(--ease);
}
body.no-scroll{ overflow:hidden; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
::selection{ background:var(--sage); color:var(--ink); }

/* ───────── GRAIN + GLOW ───────── */
.grain{
  position:fixed; inset:0; z-index:9; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
.cursor-glow{
  position:fixed; top:0; left:0; z-index:1; width:520px; height:520px;
  margin:-260px 0 0 -260px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, color-mix(in srgb, var(--sage) 48%, transparent), transparent 65%);
  transform:translate3d(-1000px,-1000px,0); transition:opacity .4s; opacity:0;
  mix-blend-mode:multiply;
}

/* ───────── PROGRESS ───────── */
.progress{ position:fixed; top:0; left:0; width:100%; height:3px; z-index:60; background:transparent; }
.progress > i{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--moss),var(--clay)); }

/* ───────── TYPO HELPERS ───────── */
.ital{ font-style:italic; font-family:var(--ff-display); color:var(--moss); font-weight:400; }
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:12.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--moss-2); font-weight:600;
}
.eyebrow i{ width:26px; height:1.5px; background:var(--clay); display:inline-block; }

/* ───────── BUTTONS ───────── */
.btn{
  display:inline-flex; align-items:center; gap:10px; justify-content:center;
  font-weight:600; font-size:15px; letter-spacing:.01em;
  padding:13px 24px; border-radius:999px; position:relative;
  transition:transform .35s var(--ease), background .35s, color .35s, box-shadow .35s;
  white-space:nowrap;
}
.btn--lg{ padding:16px 30px; font-size:16px; }
.btn--block{ width:100%; }
.btn__dot{ width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.55; transition:transform .35s var(--ease); }
.btn:hover .btn__dot{ transform:scale(1.8); }
.btn--solid{ background:var(--ink); color:var(--cream); }
.btn--solid:hover{ background:var(--moss); transform:translateY(-2px); box-shadow:0 12px 30px -12px rgba(35,38,25,.6); }
.btn--ghost{ border:1.5px solid var(--line); color:var(--ink); }
.btn--ghost:hover{ border-color:var(--moss); color:var(--moss); transform:translateY(-2px); }

/* ───────── NAV ───────── */
.nav{ position:fixed; top:0; left:0; width:100%; z-index:50; transition:.4s var(--ease); }
.nav__in{
  max-width:var(--maxw); margin:0 auto; padding:20px var(--pad);
  display:flex; align-items:center; gap:30px;
  transition:.4s var(--ease);
}
.nav.is-scrolled{ backdrop-filter:blur(14px); background:rgba(244,241,233,.82); box-shadow:0 1px 0 var(--line); }
.nav.is-scrolled .nav__in{ padding-top:14px; padding-bottom:14px; }
.nav__brand{ display:flex; align-items:center; gap:10px; font-family:var(--ff-display); font-size:21px; font-weight:600; letter-spacing:-.01em; }
.nav__leaf{ color:var(--moss); display:flex; }
.nav__links{ display:flex; gap:28px; margin-left:auto; }
.nav__links a{ font-size:14.5px; font-weight:500; color:var(--ink-soft); position:relative; padding:4px 0; }
.nav__links a::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--clay); transition:width .3s var(--ease); }
.nav__links a:hover{ color:var(--ink); }
.nav__links a:hover::after{ width:100%; }
.nav__cta{ display:flex; align-items:center; gap:18px; }
.nav__tel{ font-size:14px; font-weight:600; color:var(--moss); }
.nav__burger{ display:none; flex-direction:column; gap:6px; padding:8px; }
.nav__burger span{ width:24px; height:2px; background:var(--ink); transition:.3s; }

/* ═════════════ HERO ═════════════ */
.hero{ position:relative; padding:160px var(--pad) 0; max-width:var(--maxw); margin:0 auto; }
.hero__bgword{
  position:absolute; top:60px; left:-2vw; z-index:0; pointer-events:none;
  font-family:var(--ff-display); font-style:italic; font-weight:300;
  font-size:clamp(120px,26vw,420px); line-height:.8; color:var(--sand);
  opacity:.5; white-space:nowrap;
}
.hero__grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center;
}
.hero__copy .eyebrow{ margin-bottom:26px; }
.hero__title{
  font-family:var(--ff-display); font-weight:400;
  font-size:clamp(46px,6.3vw,92px); line-height:1.0; letter-spacing:-.02em;
  margin-bottom:26px;
}
.hero__title .ital{ font-size:1.02em; }
.hero__lead{ font-size:clamp(17px,1.4vw,19px); color:var(--ink-soft); max-width:46ch; margin-bottom:34px; }
.hero__actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:48px; }
.hero__stats{ display:flex; gap:40px; padding-top:30px; border-top:1px solid var(--line); }
.stat b{ display:block; font-family:var(--ff-display); font-size:34px; font-weight:500; line-height:1; }
.stat span{ font-size:13px; color:var(--ink-soft); letter-spacing:.02em; }

/* hero media: blob + portrait + badge */
.hero__media{ position:relative; aspect-ratio:4/5; }
.blob{
  position:absolute; inset:-6% -8% -6% 0; z-index:0;
  background:linear-gradient(150deg,var(--sage) 0%, var(--moss-2) 55%, var(--moss) 100%);
  border-radius:60% 40% 55% 45% / 55% 50% 50% 45%;
  animation:blobMorph 14s ease-in-out infinite;
  filter:blur(.5px);
}
@keyframes blobMorph{
  0%,100%{ border-radius:60% 40% 55% 45% / 55% 50% 50% 45%; transform:rotate(0deg); }
  33%{ border-radius:42% 58% 38% 62% / 48% 60% 40% 52%; transform:rotate(4deg) scale(1.02); }
  66%{ border-radius:55% 45% 62% 38% / 60% 42% 58% 40%; transform:rotate(-3deg); }
}
.hero__portrait{
  position:absolute; inset:7% 4% 7% 6%; z-index:1; overflow:hidden;
  border-radius:50% 50% 48% 52% / 56% 56% 44% 44%;
  background:
    radial-gradient(120% 90% at 30% 15%, rgba(255,255,255,.42), transparent 55%),
    linear-gradient(160deg, color-mix(in srgb,var(--moss-2) 88%,#fff) 0%, var(--moss) 62%, color-mix(in srgb,var(--moss) 68%,#000) 115%);
  display:flex; align-items:flex-end; padding:26px;
  box-shadow:inset 0 0 80px rgba(35,38,25,.35);
}
.hero__portrait-label{ font-family:var(--ff-display); font-style:italic; font-size:22px; color:rgba(244,241,233,.9); line-height:1.1; }
.badge{
  position:absolute; right:-6%; bottom:6%; z-index:3; width:124px; height:124px;
  display:grid; place-items:center;
  background:var(--cream); border-radius:50%; box-shadow:0 16px 40px -16px rgba(35,38,25,.5);
}
.badge svg{ position:absolute; inset:0; width:100%; height:100%; animation:spin 18s linear infinite; }
.badge text{ font-family:var(--ff-body); font-size:13px; font-weight:600; letter-spacing:.04em; fill:var(--moss); }
.badge__core{ color:var(--clay); display:flex; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.hero__credit{
  position:absolute; left:6%; top:-26px; z-index:3;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft);
}

/* marquee usług */
.hero__marquee{ margin-top:90px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; }
.hero__marquee-track{ display:flex; align-items:center; gap:34px; width:max-content; animation:marquee 38s linear infinite; }
.hero__marquee-track span{ font-family:var(--ff-display); font-style:italic; font-size:26px; color:var(--ink); white-space:nowrap; }
.hero__marquee-track i{ color:var(--clay); font-style:normal; font-size:14px; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ═════════════ SECTION SHELL ═════════════ */
section{ position:relative; z-index:2; }
.intro,.services,.team,.gallery,.voices,.visit{ max-width:var(--maxw); margin:0 auto; padding:clamp(90px,12vw,150px) var(--pad); }

/* ═════════════ FILOZOFIA ═════════════ */
.intro{ display:grid; grid-template-columns:1fr 1.25fr; gap:64px; align-items:start; }
.intro__head{ position:sticky; top:120px; }
.intro__title{ font-family:var(--ff-display); font-weight:400; font-size:clamp(30px,3.4vw,46px); line-height:1.12; letter-spacing:-.01em; margin-top:22px; }
.intro__lead{ font-family:var(--ff-display); font-size:clamp(22px,2.4vw,30px); line-height:1.35; color:var(--moss); margin-bottom:34px; }
.intro__cols{ display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.intro__cols p{ color:var(--ink-soft); font-size:16px; }
.intro__sign{ margin-top:40px; padding-top:24px; border-top:1px solid var(--line); }
.intro__sign-name{ display:block; font-family:var(--ff-display); font-style:italic; font-size:24px; }
.intro__sign-role{ font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--moss-2); }

/* ═════════════ USŁUGI / MENU ═════════════ */
.services__head{ text-align:center; margin-bottom:50px; }
.services__title{ font-family:var(--ff-display); font-weight:400; font-size:clamp(36px,5vw,68px); margin:18px 0 12px; letter-spacing:-.01em; }
.services__note{ color:var(--ink-soft); font-size:15px; max-width:48ch; margin:0 auto; }
.menu{ list-style:none; border-top:1px solid var(--line); }
.menu__row{
  display:grid; grid-template-columns:auto 1fr auto auto; gap:24px; align-items:center;
  padding:28px 8px; border-bottom:1px solid var(--line); position:relative;
  cursor:pointer; transition:padding .4s var(--ease), background .4s;
}
.menu__row::before{ content:''; position:absolute; left:0; top:0; height:100%; width:0; background:var(--cream-2); z-index:-1; transition:width .45s var(--ease); }
.menu__row:hover,.menu__row:focus-visible{ outline:none; padding-left:24px; }
.menu__row:hover::before,.menu__row:focus-visible::before{ width:100%; }
.menu__num{ font-family:var(--ff-display); font-style:italic; font-size:20px; color:var(--clay); width:34px; }
.menu__name{ font-family:var(--ff-display); font-weight:500; font-size:clamp(22px,2.3vw,30px); display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.menu__cat{ font-family:var(--ff-body); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--moss-2); background:var(--sand); padding:3px 10px; border-radius:999px; }
.menu__desc{ color:var(--ink-soft); font-size:14.5px; max-width:60ch; margin-top:6px; max-height:0; opacity:0; overflow:hidden; transition:max-height .5s var(--ease), opacity .4s, margin .4s; }
.menu__row:hover .menu__desc,.menu__row:focus-visible .menu__desc{ max-height:120px; opacity:1; }
.menu__meta{ text-align:right; }
.menu__dur{ display:block; font-size:12.5px; color:var(--ink-soft); letter-spacing:.04em; }
.menu__price{ font-family:var(--ff-display); font-size:22px; color:var(--ink); }
.menu__go{ width:42px; height:42px; border-radius:50%; border:1.5px solid var(--line); display:grid; place-items:center; color:var(--moss); transition:.4s var(--ease); transform:rotate(-30deg); }
.menu__row:hover .menu__go,.menu__row:focus-visible .menu__go{ background:var(--moss); color:var(--cream); border-color:var(--moss); transform:rotate(0); }

/* ═════════════ ZESPÓŁ ═════════════ */
.team__head{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; margin-bottom:48px; }
.team__title{ font-family:var(--ff-display); font-weight:400; font-size:clamp(34px,4.6vw,62px); letter-spacing:-.01em; }
.team__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.member__photo{
  position:relative; aspect-ratio:3/4; border-radius:120px 120px var(--r) var(--r); overflow:hidden;
  background:linear-gradient(165deg, color-mix(in srgb, var(--member) 78%, #fff) 0%, var(--member) 70%, color-mix(in srgb, var(--member) 70%, #000) 120%);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
  box-shadow:inset 0 0 60px rgba(35,38,25,.22);
}
.member__init{ font-family:var(--ff-display); font-style:italic; font-size:72px; color:rgba(255,255,255,.85); }
.member__num{ position:absolute; top:16px; left:18px; font-size:12px; letter-spacing:.2em; color:rgba(255,255,255,.7); }
.member__name{ font-family:var(--ff-display); font-weight:500; font-size:23px; }
.member__role{ font-size:13px; color:var(--moss-2); letter-spacing:.04em; margin-bottom:14px; }
.member__book{ font-size:13.5px; font-weight:600; color:var(--clay); display:inline-flex; align-items:center; gap:7px; transition:gap .3s; }
.member__book::after{ content:'→'; transition:transform .3s; }
.member__book:hover::after{ transform:translateX(4px); }

/* ═════════════ GALERIA ═════════════ */
.gallery__head{ text-align:center; margin-bottom:46px; }
.gallery__title{ font-family:var(--ff-display); font-weight:400; font-size:clamp(36px,5vw,68px); margin:16px 0 10px; }
.gallery__note{ color:var(--ink-soft); font-size:15px; }
.gallery__grid{ display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:150px; gap:16px; }
.gphoto{
  position:relative; overflow:hidden; border-radius:var(--r); cursor:pointer;
  background:var(--cream-2); display:flex; align-items:flex-end; padding:18px;
  grid-column:span 4; grid-row:span 2; transition:transform .5s var(--ease);
}
.gphoto:nth-child(6n+1){ grid-column:span 5; grid-row:span 3; }
.gphoto:nth-child(6n+2){ grid-column:span 3; grid-row:span 3; }
.gphoto:nth-child(6n+3){ grid-column:span 4; grid-row:span 2; }
.gphoto:nth-child(6n+4){ grid-column:span 4; grid-row:span 2; }
.gphoto:nth-child(6n+5){ grid-column:span 4; grid-row:span 2; }
.gphoto:nth-child(6n+6){ grid-column:span 4; grid-row:span 2; }
.gphoto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform .7s var(--ease); }
.gphoto:hover{ transform:translateY(-4px); }
.gphoto:hover img{ transform:scale(1.06); }
.gphoto::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%, rgba(20,18,12,.5)); z-index:1; }
.gphoto--placeholder::after{ opacity:.3; }
/* gradienty placeholderów z palety motywu */
.gphoto--placeholder{ background:linear-gradient(160deg,var(--sage) 0%,var(--moss-2) 55%,var(--moss) 130%); }
.gphoto--placeholder:nth-child(6n+1){ background:linear-gradient(150deg,var(--sage-pale) 0%,var(--moss-2) 60%,var(--ink) 145%); }
.gphoto--placeholder:nth-child(6n+2){ background:linear-gradient(180deg,var(--sand) 0%,var(--moss) 120%); }
.gphoto--placeholder:nth-child(6n+3){ background:linear-gradient(200deg,var(--cream-2) 0%,var(--clay) 125%); }
.gphoto--placeholder:nth-child(6n+4){ background:linear-gradient(135deg,var(--moss-2) 0%,var(--moss) 55%,var(--clay) 140%); }
.gphoto--placeholder:nth-child(6n+5){ background:linear-gradient(245deg,var(--cream) 0%,var(--sage) 65%,var(--moss) 120%); }
.gphoto--placeholder:nth-child(6n){ background:linear-gradient(95deg,var(--clay) 0%,var(--ink) 95%); }
.gphoto__num,.gphoto__cap,.gphoto__year,.gphoto__dot{ position:relative; z-index:2; }
.gphoto__num{ position:absolute; top:14px; left:16px; font-size:11px; letter-spacing:.2em; color:rgba(255,255,255,.85); }
.gphoto__cap{ font-size:13px; color:#fff; font-weight:500; max-width:80%; }
.gphoto__year{ position:absolute; top:14px; right:16px; font-size:11px; letter-spacing:.16em; color:rgba(255,255,255,.7); }
.gphoto__dot{ position:absolute; top:50%; left:50%; width:8px; height:8px; margin:-4px; border-radius:50%; background:rgba(255,255,255,.7); }

/* ═════════════ OPINIE — MARQUEE ═════════════ */
.voices{ overflow:hidden; }
.voices__head{ text-align:center; margin-bottom:44px; }
.voices__title{ font-family:var(--ff-display); font-weight:400; font-size:clamp(32px,4.4vw,58px); margin-top:14px; }
.voices__marquee{ -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.voices__track{ display:flex; gap:24px; width:max-content; animation:marquee 70s linear infinite; }
.voices__marquee:hover .voices__track{ animation-play-state:paused; }
.vcard{
  width:380px; flex-shrink:0; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:34px 30px; position:relative;
}
.vcard__quote{ position:absolute; top:14px; right:24px; font-family:var(--ff-display); font-size:80px; line-height:1; color:var(--sage-pale); }
.vcard blockquote{ font-family:var(--ff-display); font-style:italic; font-size:19px; line-height:1.45; color:var(--ink); margin-bottom:22px;
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.vcard__stars{ display:block; color:var(--clay); letter-spacing:.15em; font-size:14px; margin-bottom:6px; }
.vcard__name{ font-size:13.5px; font-weight:600; }
.vcard__name span{ color:var(--ink-soft); font-weight:400; }

/* ═════════════ KONTAKT / WIZYTA ═════════════ */
.visit{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:stretch; }
.visit__panel{ background:var(--ink); color:var(--cream); border-radius:var(--r-lg); padding:clamp(34px,4vw,56px); }
.visit__panel .eyebrow{ color:var(--sage); }
.visit__panel .eyebrow i{ background:var(--clay); }
.visit__title{ font-family:var(--ff-display); font-weight:400; font-size:clamp(32px,4vw,54px); line-height:1.05; margin:20px 0 34px; }
.visit__rows{ margin-bottom:36px; }
.visit__row{ display:flex; justify-content:space-between; gap:20px; padding:16px 0; border-top:1px solid rgba(244,241,233,.14); }
.visit__row:last-child{ border-bottom:1px solid rgba(244,241,233,.14); }
.visit__k{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--sage); }
.visit__v{ font-size:16px; text-align:right; }
.visit__v a:hover{ color:var(--sage); }
.visit__panel .btn--solid{ background:var(--clay); color:var(--cream); }
.visit__panel .btn--solid:hover{ background:var(--cream); color:var(--ink); }

.visit__hours{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(30px,3.5vw,44px); display:flex; flex-direction:column; }
.visit__hours-title{ font-family:var(--ff-display); font-weight:500; font-size:24px; margin-bottom:18px; }
.hours{ list-style:none; }
.hours__row{ display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--line-2); font-size:15px; }
.hours__row span:first-child{ color:var(--ink-soft); }
.hours__row.is-today{ font-weight:600; color:var(--ink); }
.hours__row.is-today i{ font-style:normal; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--cream); background:var(--moss); padding:2px 7px; border-radius:999px; margin-left:8px; }
.hours__row.is-off span:last-child{ color:var(--clay); }
.visit__map{ margin-top:auto; padding-top:26px; display:flex; align-items:center; gap:14px; }
.visit__pin{ width:48px; height:48px; border-radius:50%; background:var(--sand); display:grid; place-items:center; color:var(--moss); flex-shrink:0; }
.visit__map-label{ font-size:14px; color:var(--ink-soft); }

/* ═════════════ FOOTER ═════════════ */
.footer{ background:var(--cream-2); margin-top:40px; }
.footer__in{ max-width:var(--maxw); margin:0 auto; padding:clamp(60px,8vw,90px) var(--pad) 40px; display:grid; grid-template-columns:1.2fr 1.6fr; gap:50px; }
.footer__name{ font-family:var(--ff-display); font-size:30px; font-weight:600; }
.footer__brand p{ color:var(--ink-soft); font-size:15px; margin-top:10px; }
.footer__cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.footer__cols h4{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--moss-2); margin-bottom:16px; }
.footer__cols a,.footer__cols span{ display:block; font-size:14.5px; color:var(--ink-soft); margin-bottom:9px; }
.footer__cols a:hover{ color:var(--clay); }
.footer__bottom{ max-width:var(--maxw); margin:0 auto; padding:24px var(--pad); border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em; }

/* ═════════════ LIGHTBOX ═════════════ */
.lightbox{ position:fixed; inset:0; z-index:200; background:rgba(28,30,20,.92); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; gap:18px; padding:40px; opacity:0; visibility:hidden; transition:.4s; }
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox__fig{ max-width:80vw; max-height:84vh; }
.lightbox__fig img{ max-width:100%; max-height:78vh; border-radius:var(--r); object-fit:contain; }
.lightbox__fig figcaption{ color:var(--cream); text-align:center; margin-top:14px; font-size:14px; letter-spacing:.04em; }
.lightbox__close{ position:absolute; top:24px; right:28px; font-size:24px; color:var(--cream); width:46px; height:46px; border-radius:50%; border:1px solid rgba(244,241,233,.3); transition:.3s; }
.lightbox__close:hover{ background:rgba(244,241,233,.12); }
.lightbox__nav{ font-size:38px; color:var(--cream); width:54px; height:54px; border-radius:50%; border:1px solid rgba(244,241,233,.25); display:grid; place-items:center; transition:.3s; flex-shrink:0; }
.lightbox__nav:hover{ background:rgba(244,241,233,.12); }

/* ═════════════ BOOKING DRAWER ═════════════ */
.drawer{ position:fixed; inset:0; z-index:120; visibility:hidden; }
.drawer__scrim{ position:absolute; inset:0; background:rgba(28,30,20,.5); backdrop-filter:blur(3px); opacity:0; transition:.4s; }
.drawer__panel{
  position:absolute; top:0; right:0; height:100%; width:min(520px,100%);
  background:var(--cream); display:flex; flex-direction:column;
  transform:translateX(102%); transition:transform .5s var(--ease);
  box-shadow:-30px 0 60px -30px rgba(35,38,25,.5);
}
.drawer.is-open{ visibility:visible; }
.drawer.is-open .drawer__scrim{ opacity:1; }
.drawer.is-open .drawer__panel{ transform:none; }
.drawer__top{ display:flex; justify-content:space-between; align-items:center; padding:26px 30px 18px; border-bottom:1px solid var(--line); }
.drawer__eyebrow{ display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--moss-2); margin-bottom:3px; }
.drawer__title strong{ font-family:var(--ff-display); font-size:22px; font-weight:600; }
.drawer__close{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line); font-size:16px; color:var(--ink-soft); transition:.3s; }
.drawer__close:hover{ background:var(--cream-2); color:var(--ink); }

.stepper{ display:flex; gap:6px; padding:18px 30px; border-bottom:1px solid var(--line); overflow-x:auto; }
.stepper__pip{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--ink-soft); white-space:nowrap; opacity:.5; transition:.3s; }
.stepper__pip i{ width:22px; height:22px; border-radius:50%; border:1.5px solid var(--line); display:grid; place-items:center; font-style:normal; font-size:11px; font-weight:600; transition:.3s; }
.stepper__pip.is-active{ opacity:1; color:var(--ink); }
.stepper__pip.is-active i{ background:var(--moss); border-color:var(--moss); color:var(--cream); }
.stepper__pip.is-done i{ background:var(--sage); border-color:var(--sage); color:var(--ink); }

.drawer__body{ flex:1; overflow-y:auto; padding:26px 30px; }
.step{ display:none; animation:stepIn .45s var(--ease); }
.step.is-active{ display:block; }
@keyframes stepIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.step__h{ font-family:var(--ff-display); font-weight:500; font-size:24px; margin-bottom:18px; }

.picklist{ display:flex; flex-direction:column; gap:10px; }
.pick{ display:flex; align-items:center; gap:14px; text-align:left; padding:14px 16px; border:1.5px solid var(--line); border-radius:var(--r); transition:.3s var(--ease); }
.pick:hover{ border-color:var(--sage); background:var(--paper); }
.pick.is-picked{ border-color:var(--moss); background:var(--paper); box-shadow:0 8px 24px -16px rgba(35,38,25,.5); }
.pick__num{ font-family:var(--ff-display); font-style:italic; font-size:20px; color:var(--clay); width:30px; text-align:center; }
.pick__ava{ width:42px; height:42px; border-radius:50%; flex-shrink:0; display:grid; place-items:center; font-family:var(--ff-display); font-size:16px; color:#fff; background:linear-gradient(150deg, color-mix(in srgb,var(--member,var(--moss)) 80%,#fff), var(--member,var(--moss))); }
.pick__ava--any{ background:var(--sand); color:var(--clay); font-size:18px; }
.pick__main{ flex:1; display:flex; flex-direction:column; }
.pick__name{ font-weight:600; font-size:15.5px; }
.pick__sub{ font-size:13px; color:var(--ink-soft); }
.pick__check{ width:24px; height:24px; border-radius:50%; border:1.5px solid var(--line); display:grid; place-items:center; font-size:13px; color:transparent; transition:.3s; }
.pick.is-picked .pick__check{ background:var(--moss); border-color:var(--moss); color:var(--cream); }

/* datebar */
.datebar{ display:flex; gap:9px; overflow-x:auto; padding-bottom:14px; margin-bottom:8px; }
.datebar__d{ flex:0 0 auto; width:62px; padding:12px 0; border:1.5px solid var(--line); border-radius:var(--r); text-align:center; transition:.3s var(--ease); }
.datebar__d:hover{ border-color:var(--sage); }
.datebar__d.is-picked{ background:var(--moss); border-color:var(--moss); color:var(--cream); }
.datebar__dow{ display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; opacity:.7; }
.datebar__day{ display:block; font-family:var(--ff-display); font-size:24px; line-height:1.2; }
.datebar__mon{ display:block; font-size:11px; opacity:.7; }

.slots__hint,.slots__empty{ color:var(--ink-soft); font-size:14px; padding:18px 0; }
.slots__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(80px,1fr)); gap:9px; }
.slot{ padding:11px 0; border:1.5px solid var(--line); border-radius:12px; font-size:14.5px; font-weight:500; transition:.25s; }
.slot:hover:not(.is-taken){ border-color:var(--moss); color:var(--moss); }
.slot.is-picked{ background:var(--moss); border-color:var(--moss); color:var(--cream); }
.slot.is-taken{ opacity:.32; text-decoration:line-through; cursor:not-allowed; }

/* summary + form */
.summary{ background:var(--cream-2); border-radius:var(--r); padding:18px 20px; margin-bottom:22px; display:flex; flex-direction:column; gap:6px; font-size:14.5px; }
.summary strong{ color:var(--ink); }
.field{ display:block; margin-bottom:16px; }
.field span{ display:block; font-size:13px; font-weight:600; color:var(--ink-soft); margin-bottom:7px; }
.field span i{ font-style:normal; font-weight:400; color:var(--sage-pale); }
.field input{ width:100%; padding:13px 16px; border:1.5px solid var(--line); border-radius:12px; font-size:15px; background:var(--paper); transition:.3s; font-family:inherit; }
.field input:focus{ outline:none; border-color:var(--moss); box-shadow:0 0 0 3px rgba(86,98,73,.12); }
.bform__error{ color:var(--clay-deep); font-size:13.5px; margin-bottom:12px; background:rgba(176,106,63,.1); padding:10px 14px; border-radius:10px; }
.bform__fine{ font-size:12px; color:var(--ink-soft); margin-top:14px; text-align:center; }
.bform__fine a{ color:var(--moss); text-decoration:underline; }

.verify__lead{ font-size:14.5px; color:var(--ink-soft); margin-bottom:20px; }
.verify__inputs{ display:flex; gap:12px; justify-content:center; margin-bottom:18px; }
.verify__inputs input{ width:60px; height:70px; text-align:center; font-family:var(--ff-display); font-size:30px; border:1.5px solid var(--line); border-radius:14px; background:var(--paper); transition:.3s; }
.verify__inputs input:focus{ outline:none; border-color:var(--moss); box-shadow:0 0 0 3px rgba(86,98,73,.12); }

.success{ text-align:center; padding:30px 10px; animation:stepIn .5s var(--ease); }
.success__mark{ width:72px; height:72px; border-radius:50%; background:var(--moss); color:var(--cream); display:grid; place-items:center; margin:0 auto 22px; }
.success h3{ font-family:var(--ff-display); font-weight:500; font-size:27px; margin-bottom:10px; }
.success p{ color:var(--ink-soft); font-size:15px; margin-bottom:24px; }

.drawer__nav{ display:flex; gap:12px; padding:18px 30px; border-top:1px solid var(--line); }
.drawer__nav .btn--ghost{ flex:0 0 auto; }
.drawer__nav .btn--solid{ flex:1; }
.btn:disabled{ opacity:.4; cursor:not-allowed; }

/* ═════════════ REVEAL ═════════════ */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
[data-reveal].is-in{ opacity:1; transform:none; }

/* ═════════════ RESPONSYWNOŚĆ ═════════════ */
@media (max-width:1080px){
  .gallery__grid{ grid-template-columns:repeat(6,1fr); }
  .gphoto,.gphoto:nth-child(6n+1),.gphoto:nth-child(6n+2),.gphoto:nth-child(6n+3),
  .gphoto:nth-child(6n+4),.gphoto:nth-child(6n+5),.gphoto:nth-child(6n+6){ grid-column:span 3; grid-row:span 2; }
}
@media (max-width:900px){
  .nav__links,.nav__tel{ display:none; }
  .nav__burger{ display:flex; margin-left:auto; }
  .nav.is-open .nav__links{
    display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0;
    background:var(--cream); padding:24px var(--pad); gap:16px; box-shadow:0 20px 40px -20px rgba(35,38,25,.4); border-top:1px solid var(--line);
  }
  .nav.is-open .nav__burger span:first-child{ transform:translateY(4px) rotate(45deg); }
  .nav.is-open .nav__burger span:last-child{ transform:translateY(-4px) rotate(-45deg); }
  .hero__grid{ grid-template-columns:1fr; gap:48px; }
  .hero__media{ max-width:440px; margin:0 auto; width:100%; }
  .intro{ grid-template-columns:1fr; gap:36px; }
  .intro__head{ position:static; }
  .team__grid{ grid-template-columns:repeat(2,1fr); }
  .visit{ grid-template-columns:1fr; }
  .footer__in{ grid-template-columns:1fr; gap:36px; }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .hero{ padding-top:120px; }
  .hero__stats{ gap:24px; flex-wrap:wrap; }
  .intro__cols{ grid-template-columns:1fr; }
  .menu__row{ grid-template-columns:auto 1fr; row-gap:6px; }
  .menu__meta{ grid-column:2; text-align:left; display:flex; gap:16px; align-items:baseline; }
  .menu__go{ display:none; }
  .gallery__grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:120px; }
  .team__grid{ grid-template-columns:1fr 1fr; gap:16px; }
  .footer__cols{ grid-template-columns:1fr 1fr; }
  .vcard{ width:300px; }
  .drawer__panel{ width:100%; }
}

/* ═════════════ PRZEŁĄCZNIK MOTYWÓW ═════════════ */
.themer{ position:fixed; left:24px; bottom:24px; z-index:90; display:flex; align-items:center; gap:12px; }
.themer__toggle{
  display:inline-flex; align-items:center; gap:10px; padding:11px 16px 11px 12px;
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  box-shadow:0 12px 34px -16px rgba(0,0,0,.4); font-size:13.5px; font-weight:600; color:var(--ink);
  transition:transform .35s var(--ease), box-shadow .35s;
}
.themer__toggle:hover{ transform:translateY(-2px); box-shadow:0 16px 40px -16px rgba(0,0,0,.5); }
.themer__swatch{ width:20px; height:20px; border-radius:50%; background:linear-gradient(135deg,var(--moss) 0 50%,var(--clay) 50% 100%); box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6); }
.themer__label{ letter-spacing:.02em; }
.themer__panel{
  display:flex; align-items:center; gap:8px; padding:9px 12px;
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  box-shadow:0 12px 34px -16px rgba(0,0,0,.4);
  opacity:0; visibility:hidden; transform:translateX(-12px) scale(.96); transform-origin:left center;
  transition:.4s var(--ease);
}
.themer.is-open .themer__panel{ opacity:1; visibility:visible; transform:none; }
.themer__opt{ position:relative; display:grid; place-items:center; }
.themer__dot{
  width:26px; height:26px; border-radius:50%; cursor:pointer;
  background:linear-gradient(135deg,var(--d1) 0 50%,var(--d2) 50% 100%);
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55); transition:transform .25s var(--ease);
}
.themer__opt:hover .themer__dot{ transform:scale(1.16); }
.themer__opt.is-active .themer__dot{ box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55), 0 0 0 2px var(--paper), 0 0 0 3.5px var(--ink); }
.themer__name{
  position:absolute; bottom:140%; left:50%; transform:translateX(-50%) translateY(4px);
  background:var(--ink); color:var(--cream); font-size:11px; font-weight:500; letter-spacing:.02em;
  padding:4px 9px; border-radius:7px; white-space:nowrap; opacity:0; pointer-events:none; transition:.25s var(--ease);
}
.themer__opt:hover .themer__name{ opacity:1; transform:translateX(-50%); }

@media (max-width:560px){
  .themer{ left:50%; bottom:16px; transform:translateX(-50%); }
  .themer__name{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
}
