/* ===========================================================
   INDA JÓGA — styles
   Organikus / editorial. Design-nyelv: a "kúszó inda".
   =========================================================== */

:root{
  /* paletta — warm shift, nincs pure black/white */
  --paper:        #F4EDE0;
  --paper-2:      #EDE3D2;
  --paper-deep:   #E6DAC4;
  --ink:          #2A251E;
  --ink-soft:     #5A5346;
  --moss:         #3E4F39;
  --moss-deep:    #2D3A2A;
  --sage:         #8B9B7C;
  --clay:         #BE6A3E;
  --clay-deep:    #A1542E;
  --amber:        #D6A24E;
  --cream-line:   rgba(42,37,30,.14);

  /* óratípus színek */
  --c-hatha:   #6E8B5A;
  --c-vinyasa: #BE6A3E;
  --c-yin:     #4E6E86;
  --c-kids:    #C9923A;
  --c-medi:    #8A6E9E;

  --maxw: 1240px;
  --gut: clamp(20px, 5vw, 64px);

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

  --ease: cubic-bezier(.2,.7,.2,1);
  --radius: 14px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:84px; overflow-x:clip; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  font-size:clamp(16px,1.05vw,18px);
  line-height:1.65;
  font-weight:400;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  /* finom papír-textúra (grain) + atmoszféra + mélység */
  background-image:
    radial-gradient(120% 80% at 85% -5%, rgba(214,162,78,.14), transparent 55%),
    radial-gradient(90% 70% at 0% 30%, rgba(62,79,57,.08), transparent 50%),
    radial-gradient(100% 60% at 50% 110%, rgba(62,79,57,.10), transparent 60%),
    linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 60%, var(--paper-deep) 100%);
  background-attachment:fixed;
}
/* grain overlay */
body::before{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.07; mix-blend-mode:multiply;
  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.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
em{ font-style:italic; }
::selection{ background:var(--moss); color:var(--paper); }

/* ---------- indás betöltő-animáció (preloader) ---------- */
.loader{
  position:fixed; inset:0; z-index:200; display:grid; place-items:center;
  background:
    radial-gradient(120% 80% at 50% 30%, rgba(214,162,78,.12), transparent 60%),
    var(--paper);
  animation:loaderOut .6s var(--ease) 1.45s forwards;
}
.loader__inner{ display:flex; flex-direction:column; align-items:center; gap:1.1rem; }
.loader__art{ width:86px; height:104px; overflow:visible; }
.loader__stem{ stroke:var(--moss); stroke-dasharray:120; stroke-dashoffset:120; animation:loaderDraw 1s var(--ease) .15s forwards; }
.loader__leaf{ fill:var(--moss); opacity:0; transform:scale(0); transform-box:fill-box; }
.loader__leaf--l{ transform-origin:100% 100%; animation:loaderLeaf .55s var(--ease) .6s forwards; }
.loader__leaf--r{ transform-origin:0% 100%; animation:loaderLeaf .55s var(--ease) .78s forwards; }
.loader__bud{ fill:var(--clay); opacity:0; transform:scale(0); transform-box:fill-box; transform-origin:center; animation:loaderBud .5s var(--ease) .98s forwards; }
.loader__word{ font-family:var(--display); font-size:1.55rem; color:var(--ink); opacity:0; transform:translateY(8px); animation:loaderWord .6s var(--ease) .9s forwards; }
.loader__word em{ color:var(--clay); font-style:italic; }
@keyframes loaderDraw{ to{ stroke-dashoffset:0; } }
@keyframes loaderLeaf{ to{ transform:scale(1); opacity:.92; } }
@keyframes loaderBud{ 0%{ transform:scale(0); opacity:0; } 60%{ transform:scale(1.3); opacity:1; } 100%{ transform:scale(1); opacity:1; } }
@keyframes loaderWord{ to{ opacity:1; transform:none; } }
@keyframes loaderOut{ to{ opacity:0; visibility:hidden; } }
@media (prefers-reduced-motion:reduce){
  .loader{ animation:loaderOut .3s linear .3s forwards; }
  .loader__stem,.loader__leaf,.loader__bud,.loader__word{ animation:none; opacity:1; transform:none; stroke-dashoffset:0; }
}

/* ---------- tipográfia ---------- */
.display-2{
  font-family:var(--display);
  font-weight:330;                              /* karcsúbb, magazinos */
  font-optical-sizing:auto;
  font-size:clamp(2.1rem,5.2vw,4.3rem);         /* nagyobb, expresszívebb */
  line-height:1.0;
  letter-spacing:-.028em;
  margin:0;
  text-wrap:balance;
}
/* kézzel rajzolt tinta-aláhúzás az akcent-szavak alatt (aláírás-motívum) */
.display-2 em, .hero__accent em, .private-band__title em,
.quote-band__q em, .studios-hero__title em{
  color:var(--clay); font-style:italic; position:relative;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 18' preserveAspectRatio='none'%3E%3Cpath d='M4 11 C 64 4 126 15 188 9 C 232 5 270 8 296 11' fill='none' stroke='%23BE6A3E' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:0 96%; background-size:100% .3em;
  padding-bottom:.04em;
}
/* sötét szakaszokon borostyán-aláhúzás (kontraszt) */
.contact .display-2 em, .private-band__title em, .quote-band__q em, .studios-cta .display-2 em{
  color:var(--amber);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 18' preserveAspectRatio='none'%3E%3Cpath d='M4 11 C 64 4 126 15 188 9 C 232 5 270 8 296 11' fill='none' stroke='%23D6A24E' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.kicker, .section__index{
  font-family:var(--body);
  text-transform:uppercase;
  letter-spacing:.26em;
  font-size:.72rem;
  font-weight:700;
  color:var(--moss);
}
/* editorial kicker: vezető tinta-vonal a címke előtt */
.section__index{ display:inline-flex; align-items:center; gap:.7rem; }
.section__index::before{
  content:""; width:clamp(20px,4vw,34px); height:2px; flex:none;
  background:linear-gradient(90deg, var(--clay), color-mix(in srgb,var(--clay) 30%, transparent));
  border-radius:2px;
}
.section__sub{
  max-width:46ch; color:var(--ink-soft);
  font-size:1.05rem; margin:1rem 0 0;
}

/* ---------- layout helpers ---------- */
main{ position:relative; }

/* organikus, szekciókon átívelő szín-vászon — egybe mossa az oldalt */
.organic{ position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.blob{
  position:absolute; border-radius:50% 42% 55% 45% / 48% 52% 44% 56%;
  filter:blur(70px); opacity:.6; mix-blend-mode:multiply;
}
.blob--1{ width:54vw; height:48vw; top:3%;  right:-16vw; background:radial-gradient(circle at 40% 40%, color-mix(in srgb,var(--amber) 38%, transparent), transparent 70%); }
.blob--2{ width:50vw; height:50vw; top:15%; left:-20vw;  background:radial-gradient(circle at 60% 40%, color-mix(in srgb,var(--sage) 46%, transparent), transparent 68%); }
.blob--3{ width:44vw; height:40vw; top:34%; right:-14vw; background:radial-gradient(circle at 50% 50%, color-mix(in srgb,var(--clay) 26%, transparent), transparent 70%); }
.blob--4{ width:58vw; height:52vw; top:50%; left:-22vw;  background:radial-gradient(circle at 55% 45%, color-mix(in srgb,var(--moss) 30%, transparent), transparent 68%); opacity:.45; }
.blob--5{ width:46vw; height:44vw; top:66%; right:-18vw; background:radial-gradient(circle at 45% 55%, color-mix(in srgb,var(--amber) 34%, transparent), transparent 70%); }
.blob--6{ width:50vw; height:46vw; top:80%; left:-16vw;  background:radial-gradient(circle at 50% 40%, color-mix(in srgb,var(--sage) 40%, transparent), transparent 70%); }
@media (max-width:760px){ .blob{ filter:blur(50px); opacity:.5; } }

.section{
  position:relative; z-index:2;
  max-width:var(--maxw); margin-inline:auto;
  padding:clamp(64px,9vw,140px) var(--gut);
}
.section__head{ margin-bottom:clamp(32px,5vw,64px); max-width:40ch; }
.section__head .display-2{ margin-top:.5rem; }
.section__head--split{
  display:grid; gap:1.6rem; max-width:none;
  grid-template-columns:1.1fr .9fr; align-items:end;
}
@media (max-width:820px){ .section__head--split{ grid-template-columns:1fr; } }

/* ===================== inda-vonal (spine) ===================== */
.vine-wrap{ position:fixed; inset:0; z-index:3; pointer-events:none; }
.vine-spine{
  position:fixed; top:var(--vine-top,66px); left:clamp(6px,2.5vw,40px);
  width:clamp(48px,5.5vw,88px); height:calc(100vh - var(--vine-top,66px)); overflow:visible;   /* a navbar aljától indul; a levél-csücskök ne vágódjanak le */
}
/* a világosabb-zöld (sötét) réteg CSAK a zöld szakaszok fölött látszik — JS-maszkkal,
   így minden zöld sávnál (középső idézet + alsó kapcsolat) átvált, nem csak az alján */
#vine-dark{
  -webkit-mask-image: var(--vine-mask, linear-gradient(#0000, #0000));
          mask-image: var(--vine-mask, linear-gradient(#0000, #0000));
}

.vine-ghost{ stroke-width:2; opacity:.14; }
.vine-path{
  stroke-width:3; opacity:.85; stroke-linecap:round;
  stroke-dasharray:var(--len,2600); stroke-dashoffset:var(--off,2600);
  transition:stroke-dashoffset .1s linear;
}
.vine-spine--light .vine-ghost{ stroke:var(--moss); }
.vine-spine--light .vine-path{ stroke:var(--moss); }
/* sötét (zöld háttéren futó) réteg — világosabb ZÖLD, ami kitűnik, nem vajszínű */
.vine-spine--dark  .vine-ghost{ stroke:var(--sage); opacity:.25; }
.vine-spine--dark  .vine-path{ stroke:var(--sage); }

/* kinövő levelek + kunkorodó indakacsok — a teljes elem nő ki a szárból */
.vine-leaf-grow{
  opacity:0; transform:scale(0); transform-origin:0% 50%; transform-box:fill-box;
  transition:transform .6s var(--ease), opacity .5s var(--ease);
}
.vine-leaf.is-grown .vine-leaf-grow{ opacity:1; transform:scale(1); }
.vine-spine--light .vine-leaf path{ fill:var(--moss); }
.vine-spine--dark  .vine-leaf path{ fill:var(--sage); }
.vine-leaf-rib{ opacity:.4; fill:none; }
.vine-spine--light .vine-leaf-rib{ stroke:var(--paper); stroke-width:1.2; }
.vine-spine--dark  .vine-leaf-rib{ stroke:var(--moss-deep); stroke-width:1.2; }
/* indakacs — vékony, kunkorodó szál (a kúszónövény jellegzetessége) */
.vine-tendril{ stroke-width:2; stroke-linecap:round; opacity:.85; }
.vine-spine--light .vine-tendril{ stroke:var(--moss); fill:none; }
.vine-spine--dark  .vine-tendril{ stroke:var(--sage); fill:none; }

@media (max-width:900px){ .vine-wrap{ display:none; } }

/* ===================== fejléc ===================== */
.site-header{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:.85rem var(--gut);
  background:color-mix(in srgb, var(--paper) 70%, transparent);
  backdrop-filter:blur(12px) saturate(1.2);
  border-bottom:1px solid transparent;
  transition:border-color .3s, background .3s, box-shadow .3s;
}
.site-header.is-scrolled{
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  border-bottom-color:var(--cream-line);
  box-shadow:0 12px 30px -24px rgba(42,37,30,.7);
}
.brand{ display:inline-flex; align-items:center; gap:.55rem; color:var(--moss); }
.brand__mark{ width:30px; height:30px; flex:none; }
.brand__name{ font-family:var(--display); font-size:1.3rem; font-weight:420; color:var(--ink); letter-spacing:-.01em; }
.brand__name em{ color:var(--clay); }

.site-nav{ display:flex; align-items:center; gap:clamp(1rem,2vw,2rem); }
.site-nav a{ font-size:.95rem; font-weight:500; color:var(--ink-soft); position:relative; padding:.2rem 0; }
.site-nav a:not(.nav-cta)::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:0; background:var(--clay);
  transition:width .3s var(--ease);
}
.site-nav a:not(.nav-cta):hover{ color:var(--ink); }
.site-nav a:not(.nav-cta):hover::after{ width:100%; }
/* magasabb specificitás (a.nav-cta), hogy a .site-nav a paddingja NE írja felül */
.site-nav a.nav-cta{
  display:inline-flex; align-items:center; justify-content:center; line-height:1; white-space:nowrap; flex:none;
  background:var(--moss); color:var(--paper); padding:.7rem 1.5rem; margin-left:.3rem;
  border-radius:999px; font-weight:600; font-size:.94rem;
  box-shadow:0 10px 20px -12px rgba(45,58,42,.8);
  transition:background .25s, transform .25s, box-shadow .25s;
}
.site-nav a.nav-cta::after{ display:none; }
.site-nav a.nav-cta:hover{ color:var(--paper); background:var(--moss-deep); transform:translateY(-1px); box-shadow:0 14px 24px -12px rgba(45,58,42,.9); }

.nav-toggle{ display:none; background:none; border:0; cursor:pointer; width:40px; height:34px; padding:7px 6px; }
.nav-toggle span{ display:block; height:2px; background:var(--ink); border-radius:2px; transition:.3s var(--ease); }
.nav-toggle span+span{ margin-top:6px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

@media (max-width:900px){
  .site-nav{ display:none; }
  .nav-toggle{ display:block; }
}

/* mobil menü */
.mobile-menu{
  position:fixed; inset:0; z-index:45;
  background:
    radial-gradient(120% 60% at 80% 0%, rgba(214,162,78,.16), transparent 60%),
    radial-gradient(80% 50% at 0% 100%, rgba(62,79,57,.14), transparent 55%),
    var(--paper-2);
  display:grid; place-items:center;
  animation:mmWrap .35s var(--ease);
}
.mobile-menu[hidden]{ display:none; }
.mobile-menu nav{ display:flex; flex-direction:column; gap:1.3rem; text-align:center; }
.mobile-menu a{
  font-family:var(--display); font-size:2rem; color:var(--ink);
  opacity:0; transform:translateY(20px); animation:mmItem .5s var(--ease) forwards;
}
.mobile-menu a:nth-child(1){ animation-delay:.10s; }
.mobile-menu a:nth-child(2){ animation-delay:.15s; }
.mobile-menu a:nth-child(3){ animation-delay:.20s; }
.mobile-menu a:nth-child(4){ animation-delay:.25s; }
.mobile-menu a:nth-child(5){ animation-delay:.30s; }
.mobile-menu a:nth-child(6){ animation-delay:.35s; }
.mobile-menu a:nth-child(7){ animation-delay:.40s; }
.mobile-menu a:nth-child(8){ animation-delay:.45s; }
.mobile-menu a:nth-child(9){ animation-delay:.50s; }
.mobile-menu a:nth-child(10){ animation-delay:.55s; }
.mobile-menu .mm-cta{ color:var(--clay); }
@keyframes mmWrap{ from{ opacity:0 } to{ opacity:1 } }
@keyframes mmItem{ to{ opacity:1; transform:none } }
@media (prefers-reduced-motion: reduce){
  .mobile-menu a{ opacity:1; transform:none; animation:none; }
}
.mobile-menu__mark{
  position:absolute; top:1.4rem; left:clamp(16px,5vw,24px);
  font-family:var(--display); font-size:1.3rem; color:var(--ink); letter-spacing:-.01em;
}
.mobile-menu__mark em{ color:var(--clay); font-style:italic; }
.mobile-menu__close{
  position:fixed; top:14px; right:16px; z-index:2;
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  background:var(--paper); border:1.5px solid var(--cream-line); color:var(--ink);
  cursor:pointer; box-shadow:0 8px 18px -12px rgba(42,37,30,.5); transition:.25s var(--ease);
}
.mobile-menu__close svg{ width:22px; height:22px; }
.mobile-menu__close:hover{ background:var(--moss); color:var(--paper); border-color:var(--moss); transform:rotate(90deg); }
@keyframes fadeIn{ from{opacity:0} to{opacity:1} }

/* ===================== hero ===================== */
.hero{ position:relative; z-index:2; padding:clamp(40px,7vw,90px) var(--gut) clamp(56px,8vw,110px); max-width:var(--maxw); margin-inline:auto; }
.hero__atmosphere{
  position:absolute; inset:-10% -10% auto auto; width:60vw; height:60vw; max-width:760px; max-height:760px;
  z-index:-1; pointer-events:none; filter:blur(10px); opacity:.7;
  background:
    radial-gradient(circle at 60% 40%, rgba(214,162,78,.42), transparent 60%),
    radial-gradient(circle at 30% 70%, rgba(62,79,57,.22), transparent 55%);
}
/* nagy háttér-szó — mélység + márka-aláírás */
.hero__ghost{
  position:absolute; left:-2vw; bottom:-2vw; z-index:0; pointer-events:none;
  font-family:var(--display); font-weight:340; font-style:italic;
  font-size:clamp(11rem,30vw,30rem); line-height:.7; letter-spacing:-.04em;
  color:var(--moss); opacity:.05; user-select:none;
}
.hero__floatleaf{
  position:absolute; z-index:0; color:var(--sage); pointer-events:none;
  filter:drop-shadow(0 12px 20px rgba(42,37,30,.18));
  animation:leafdrift 9s var(--ease) infinite;
}
.hero__floatleaf--1{ width:clamp(40px,5vw,64px); top:18%; right:6%; opacity:.5; }
.hero__floatleaf--2{ width:clamp(30px,4vw,48px); bottom:14%; left:46%; opacity:.4; color:var(--clay); animation-delay:-4s; }
@keyframes leafdrift{ 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-14px) rotate(8deg)} }

/* kézzel rajzolt botanikus ág */
.hero__sprig{
  position:absolute; z-index:0; left:48%; top:6%; height:84%; width:auto; pointer-events:none;
  opacity:.5; transform:rotate(-6deg); transform-origin:bottom center;
}
.hero__sprig .hs-stem{ stroke:var(--moss); fill:none; }
.hero__sprig .hs-a{ fill:var(--moss); }
.hero__sprig .hs-b{ fill:var(--sage); }
.hero__sprig .hs-bud{ fill:var(--clay); }
@media (max-width:820px){ .hero__sprig{ display:none; } }

/* editorial marginália — koordináta + bélyegző */
.hero__coord{
  position:absolute; z-index:1; left:0; bottom:clamp(8px,2vw,20px); margin:0;
  display:flex; flex-direction:column; gap:.15rem;
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft);
}
.hero__coord span:first-child{ color:var(--clay); font-weight:600; }
.hero__stamp{
  position:absolute; z-index:1; right:-2px; top:42%;
  writing-mode:vertical-rl; transform:rotate(180deg); transform-origin:center;
  font-size:.64rem; letter-spacing:.26em; text-transform:uppercase; color:var(--sage);
}
@media (max-width:820px){ .hero__coord, .hero__stamp{ display:none; } }
.hero__inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(24px,5vw,64px);
  align-items:center;
}
.hero__title{
  font-family:var(--display); font-weight:340; font-optical-sizing:auto;
  font-size:clamp(2.7rem,7.2vw,5.6rem); line-height:.98; letter-spacing:-.025em;
  margin:1.1rem 0 1.4rem; color:var(--ink);
}
.hero__title span{ display:block; }
.hero__accent em{ color:var(--clay); font-weight:420; }
.hero__lead{ max-width:46ch; color:var(--ink-soft); font-size:1.12rem; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin:1.8rem 0 0; }
.hero__meta{
  list-style:none; display:flex; flex-wrap:wrap; gap:1.6rem; padding:0;
  margin:2.4rem 0 0; border-top:1px solid var(--cream-line); padding-top:1.3rem;
}
.hero__meta li{ font-size:.92rem; color:var(--ink-soft); }
.hero__meta strong{ display:block; font-family:var(--display); font-size:1.5rem; color:var(--moss); font-weight:420; }

.hero__figure{ position:relative; }
/* hátsó panel — réteges mélység a kép mögött */
.hero__figback{
  position:absolute; z-index:0; inset:8% -6% -8% 10%;
  border-radius:50% 50% 16px 16px / 40% 40% 16px 16px;
  background:linear-gradient(150deg, var(--moss), var(--moss-deep));
  box-shadow:0 40px 70px -30px rgba(45,58,42,.7);
}
.hero__figback::after{
  content:""; position:absolute; inset:0; border-radius:inherit; opacity:.5;
  background:radial-gradient(120% 70% at 30% 10%, rgba(214,162,78,.4), transparent 55%);
}
/* arch frame — a stúdió íves ablakai nyomán */
.arch-frame{
  position:relative; z-index:1; aspect-ratio:1/1.05;
  border-radius:50% 50% 14px 14px / 38% 38% 14px 14px;
  overflow:hidden;
  box-shadow:0 40px 80px -30px rgba(42,37,30,.7), 0 4px 0 rgba(244,237,224,.5);
  border:3px solid var(--paper);
  outline:1px solid var(--cream-line);
}
.arch-frame img{
  width:100%; height:100%; object-fit:cover;
  filter:sepia(.18) saturate(.92) contrast(1.02) brightness(.98);
}
.arch-frame::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(45,58,42,.35));
  mix-blend-mode:multiply;
}
.hero__figure{ position:relative; }
.arch-vine{ position:absolute; right:-6%; bottom:-4%; width:46%; color:var(--moss); opacity:.85; z-index:2; }
.hero__chip{
  position:absolute; left:6%; bottom:6%; z-index:3;
  display:inline-flex; align-items:center; gap:.5rem;
  background:color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter:blur(6px);
  color:var(--ink); font-size:.8rem; font-weight:500; padding:.5rem .9rem; border-radius:999px;
  box-shadow:0 10px 22px -10px rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.4);
}
.hero__chip-dot{
  width:8px; height:8px; border-radius:50%; background:var(--moss); flex:none;
  box-shadow:0 0 0 0 color-mix(in srgb,var(--moss) 60%, transparent);
  animation:livepulse 2.4s ease-out infinite;
}
@keyframes livepulse{
  0%{ box-shadow:0 0 0 0 color-mix(in srgb,var(--moss) 55%, transparent); }
  70%{ box-shadow:0 0 0 7px transparent; }
  100%{ box-shadow:0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce){ .hero__chip-dot{ animation:none; } }

.hero__scroll{
  display:inline-flex; align-items:center; gap:.6rem; margin-top:clamp(28px,5vw,56px);
  font-size:.74rem; text-transform:uppercase; letter-spacing:.24em; color:var(--ink-soft);
}
.hero__scroll svg{ width:16px; height:26px; animation:bob 2.4s var(--ease) infinite; }
@keyframes bob{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }

@media (max-width:820px){
  .hero__inner{ grid-template-columns:1fr; }
  .hero__figure{ order:-1; max-width:420px; }
}

/* ---------- gombok ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-weight:600; font-size:.98rem; line-height:1; padding:.95rem 1.8rem;
  border-radius:999px;
  cursor:pointer; border:1.5px solid transparent; overflow:hidden;
  transition:transform .3s var(--ease), background .3s, color .3s, border-color .3s, box-shadow .3s;
}
/* finom fény-söprés hoverre — nem default pill-érzet */
.btn::after{
  content:""; position:absolute; inset:0; border-radius:inherit; opacity:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);
  transform:translateX(-120%); transition:transform .6s var(--ease), opacity .3s;
}
.btn:hover::after{ opacity:1; transform:translateX(120%); }
.btn--solid{ background:var(--clay); color:var(--paper); box-shadow:0 14px 26px -14px rgba(190,106,62,.85); }
.btn--solid:hover{ background:var(--clay-deep); transform:translateY(-2px); box-shadow:0 20px 32px -14px rgba(190,106,62,.9); }
.btn--ghost{ border-color:var(--moss); color:var(--moss); background:color-mix(in srgb,var(--moss) 5%, transparent); }
.btn--ghost:hover{ background:var(--moss); color:var(--paper); transform:translateY(-2px); box-shadow:0 16px 28px -16px rgba(45,58,42,.7); }
.btn--block{ width:100%; }

/* ===================== bemutatkozás ===================== */
.philosophy__head{ max-width:36ch; margin-bottom:clamp(32px,4vw,56px); }
.philosophy__head .display-2{ font-size:clamp(1.7rem,3.6vw,3rem); }
.philosophy__grid{
  display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(36px,6vw,84px);
  align-items:center;
}

/* szöveg-oszlop — kényelmes sorhossz, levegős ritmus */
.philosophy__body{ max-width:54ch; }
.philosophy__kicker{
  font-family:var(--display); font-size:clamp(1.35rem,2.2vw,1.85rem); font-weight:400;
  color:var(--ink); margin:0 0 1.4rem; line-height:1.22; letter-spacing:-.01em;
}
.philosophy__kicker::first-letter{ color:var(--clay); }
.philosophy__body p{ margin:0 0 1.2rem; color:var(--ink-soft); }
.philosophy__points{ list-style:none; padding:0; margin:1.8rem 0 0; border-top:1px solid var(--cream-line); }
.philosophy__points li{ display:flex; gap:.7rem; padding:.9rem 0; border-bottom:1px solid var(--cream-line); font-weight:500; color:var(--ink); }
.philosophy__points span{ color:var(--clay); font-weight:700; }

/* portré / stúdió-kép — mélységgel, OLVASHATÓ moha felirat-kártyával */
.philosophy__portrait{ position:relative; margin:0; max-width:440px; justify-self:center; }
.arch-frame--portrait{
  position:relative; z-index:1; aspect-ratio:5/6;
  border-radius:48% 48% 14px 14px / 32% 32% 14px 14px;
  box-shadow:0 44px 80px -34px rgba(42,37,30,.7), 0 4px 0 rgba(244,237,224,.5);
}
.philosophy__cap{
  position:relative; z-index:2; margin:-2.6rem 0 0 auto; width:min(86%, 320px);
  background:linear-gradient(155deg, var(--moss), var(--moss-deep));
  color:var(--paper); padding:1.1rem 1.3rem; border-radius:16px;
  box-shadow:0 26px 44px -26px rgba(45,58,42,.85); border:1px solid rgba(244,237,224,.12);
  display:grid; gap:.3rem;
}
.philosophy__cap strong{ font-family:var(--display); font-size:1.35rem; color:var(--paper); font-weight:440; }
.philosophy__cap span{ font-size:.88rem; color:color-mix(in srgb, var(--paper) 85%, transparent); line-height:1.45; }
.philosophy__cap em{ font-size:.74rem; color:var(--amber); font-style:italic; }
@media (max-width:820px){
  .philosophy__grid{ grid-template-columns:1fr; }
  .philosophy__body{ max-width:none; }
  .philosophy__portrait{ max-width:400px; margin-inline:auto; }
}

/* ===================== óratípusok — rendezett, meleg botanikus lista ===================== */
.olist{ list-style:none; margin:0; padding:0; border-top:1px solid var(--cream-line); }
.oli{
  --c:var(--moss); position:relative;
  display:grid;
  grid-template-columns:2.6rem 1fr minmax(0,34ch);
  grid-template-areas:"leaf head desc" "leaf name desc";
  column-gap:clamp(1.4rem,3.5vw,3rem); row-gap:.45rem;
  padding:clamp(1.6rem,3.2vw,2.4rem) clamp(.6rem,1.6vw,1.3rem);
  border-bottom:1px solid var(--cream-line);
  align-items:baseline; cursor:default;
  transition:background .4s var(--ease), opacity .7s var(--ease);
}
.oli[data-type="hatha"]{ --c:var(--c-hatha); }
.oli[data-type="vinyasa"]{ --c:var(--c-vinyasa); }
.oli[data-type="yin"]{ --c:var(--c-yin); }
.oli[data-type="kids"]{ --c:var(--c-kids); }
.oli[data-type="medi"]{ --c:var(--c-medi); }
.oli:hover, .oli:focus-visible{ background:color-mix(in srgb, var(--c) 6%, transparent); outline:none; }

.oli__leaf{ grid-area:leaf; width:2.1rem; height:auto; color:var(--c); align-self:start; margin-top:.5rem; transition:transform .45s var(--ease); }
.oli:hover .oli__leaf, .oli:focus-visible .oli__leaf{ transform:rotate(-10deg) scale(1.12); }

.oli__head{ grid-area:head; display:flex; align-items:center; gap:.9rem; flex-wrap:wrap; }
.oli__tempo{ font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:var(--ink-soft); font-weight:700; }
.oli__level{ font-size:.72rem; font-weight:700; letter-spacing:.02em; color:color-mix(in srgb,var(--c) 72%, var(--ink)); padding:.22rem .65rem; border:1px solid color-mix(in srgb,var(--c) 32%, transparent); border-radius:999px; }

.oli__name{ grid-area:name; margin:.25rem 0 0; font-family:var(--display); font-weight:340; font-size:clamp(1.9rem,3.4vw,2.9rem); line-height:1; letter-spacing:-.02em; color:var(--ink); transition:color .35s var(--ease); }
.oli:hover .oli__name, .oli:focus-visible .oli__name{ color:var(--c); }
.oli__desc{ grid-area:desc; color:var(--ink-soft); font-size:.96rem; align-self:center; margin:0; }

/* záró CTA — meleg sor, nem doboz */
.olist__cta{
  display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; justify-content:space-between;
  margin-top:clamp(1.6rem,3vw,2.4rem); padding:clamp(1.2rem,2.5vw,1.6rem) clamp(.6rem,1.6vw,1.3rem);
  border-bottom:1px solid var(--cream-line); transition:background .35s var(--ease);
}
.olist__cta:hover{ background:color-mix(in srgb,var(--clay) 6%, transparent); }
.olist__cta-text{ font-family:var(--display); font-size:clamp(1.05rem,1.8vw,1.3rem); font-weight:340; color:var(--ink); max-width:54ch; }
.olist__cta-arrow{ font-weight:700; color:var(--clay); white-space:nowrap; transition:transform .3s var(--ease); }
.olist__cta:hover .olist__cta-arrow{ transform:translateX(5px); }

@media (max-width:680px){
  .oli{ grid-template-columns:1.8rem 1fr; grid-template-areas:"leaf head" "leaf name" "leaf desc"; row-gap:.4rem; padding:1.4rem .4rem; }
  .oli__leaf{ width:1.5rem; margin-top:.3rem; }
  .oli__desc{ align-self:start; }
  .oli__name{ font-size:clamp(1.7rem,8vw,2.2rem); }
}

/* ===================== órarend ===================== */
.schedule__bar{
  display:flex; align-items:center; justify-content:center; gap:1.4rem; margin-bottom:1.6rem;
}
.schedule__weeklabel{ text-align:center; min-width:230px; }
.wk-eyebrow{ display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.22em; color:var(--moss); }
.schedule__weeklabel strong{ font-family:var(--display); font-size:1.5rem; font-weight:420; }
.wk-nav{
  width:48px; height:48px; border-radius:50%; border:1.5px solid var(--moss); background:transparent;
  color:var(--moss); cursor:pointer; transition:.25s var(--ease); flex:none;
  display:inline-flex; align-items:center; justify-content:center; line-height:0; padding:0;
}
.wk-nav svg{ width:18px; height:18px; display:block; }
.wk-nav:hover:not(:disabled){ background:var(--moss); color:var(--paper); }
.wk-nav:disabled{ opacity:.3; cursor:not-allowed; }

.schedule__legend{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1.2rem; margin-bottom:1.8rem; }
.legend-item{ display:inline-flex; align-items:center; gap:.45rem; font-size:.82rem; color:var(--ink-soft); }
.legend-item i{ width:11px; height:11px; border-radius:50%; }

.schedule__board{
  display:grid; grid-template-columns:repeat(7,1fr); gap:.6rem;
}
.day-col{
  background:var(--paper-2); border:1px solid var(--cream-line); border-radius:10px 24px 10px 24px;
  padding:.7rem .55rem; min-height:160px; display:flex; flex-direction:column;
}
.day-col:nth-child(even){ border-radius:24px 10px 24px 10px; }
.day-col.is-today{ border-color:var(--clay); box-shadow:0 0 0 1px var(--clay) inset; }
.day-col__head{ text-align:center; padding-bottom:.55rem; margin-bottom:.55rem; border-bottom:1px solid var(--cream-line); }
.day-col__name{ display:block; font-weight:700; font-size:.86rem; letter-spacing:.04em; }
.day-col__date{ font-size:.74rem; color:var(--ink-soft); }
.day-col.is-today .day-col__name{ color:var(--clay); }
.day-empty{ margin:auto; color:var(--ink-soft); opacity:.5; font-size:1.2rem; }

.slot{
  --c:var(--moss); position:relative; cursor:pointer;
  background:var(--paper); border-left:3px solid var(--c); border-radius:8px;
  padding:.5rem .55rem; margin-bottom:.45rem; transition:transform .2s var(--ease), box-shadow .2s, border-left-width .2s;
}
.slot:last-child{ margin-bottom:0; }
.slot:hover, .slot:focus-visible{ transform:translateX(2px); box-shadow:0 8px 18px -12px rgba(0,0,0,.4); outline:none; border-left-width:6px; }
.slot:focus-visible{ box-shadow:0 0 0 2px var(--clay); }
.slot__pick{ display:block; font-size:.66rem; font-weight:700; letter-spacing:.03em; color:var(--c); margin-top:0; opacity:0; max-height:0; overflow:hidden; transition:opacity .25s var(--ease), max-height .25s var(--ease), margin-top .25s; }
.slot:hover .slot__pick, .slot:focus-visible .slot__pick{ opacity:1; max-height:1.3em; margin-top:.3rem; }
.slot__time{ font-weight:700; font-size:.82rem; }
.slot__name{ font-size:.84rem; color:var(--ink); display:block; line-height:1.25; margin-top:.1rem; }
.slot__where{ display:block; font-size:.7rem; color:var(--ink-soft); margin-top:.25rem; line-height:1.2; }
.slot__where::before{
  content:""; display:inline-block; width:5px; height:5px; border-radius:50%;
  background:var(--c); margin-right:.35rem; vertical-align:middle; opacity:.75;
}
.slot[data-type="hatha"]{ --c:var(--c-hatha); }
.slot[data-type="vinyasa"]{ --c:var(--c-vinyasa); }
.slot[data-type="yin"]{ --c:var(--c-yin); }
.slot[data-type="kids"]{ --c:var(--c-kids); }
.slot[data-type="medi"]{ --c:var(--c-medi); }

.schedule__board.is-switching{ opacity:0; transform:translateY(6px); }
.schedule__board{ transition:opacity .25s var(--ease), transform .25s var(--ease); }

.schedule__note{ margin-top:1.4rem; font-size:.85rem; color:var(--ink-soft); max-width:60ch; }
.schedule__note em{ color:var(--clay); }

@media (max-width:760px){
  .schedule__board{ grid-template-columns:1fr; gap:.5rem; }
  .day-col{ min-height:0; flex-direction:row; align-items:stretch; gap:.8rem; }
  .day-col__head{ border-bottom:0; border-right:1px solid var(--cream-line); padding:0 .8rem 0 0; margin:0; min-width:78px; display:flex; flex-direction:column; justify-content:center; }
  .day-col__slots{ flex:1; display:flex; flex-direction:column; }
  .day-empty{ margin:auto 0; }
}

/* ===================== képzések ===================== */
.training__list{ list-style:none; padding:0; margin:0; }
.t-line{ display:none; }                 /* a furcsa belső vonal el */
.t-item{
  display:grid; grid-template-columns:88px 1fr auto; align-items:baseline; gap:1.4rem;
  padding:1.3rem 1.2rem; border-bottom:1px solid var(--cream-line); position:relative;
  transition:background .35s var(--ease);
}
.t-item:first-child{ border-top:1px solid var(--cream-line); }
.t-item > *{ position:relative; z-index:1; }
/* bal oldali, éles akcent-rúd (nincs lekerekített narancs doboz) */
.t-item::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px; z-index:0;
  background:var(--clay); transform:scaleY(0); transform-origin:center;
  transition:transform .4s var(--ease);
}
.t-item:hover{ background:color-mix(in srgb, var(--moss) 5%, transparent); }
.t-item:hover::before{ transform:scaleY(1); }
.t-year, .t-name{ transition:transform .4s var(--ease), color .4s var(--ease); }
.t-item:hover .t-year{ color:var(--clay); }
.t-item:hover .t-name{ transform:translateX(6px); }
.t-year{ font-family:var(--display); font-size:1.3rem; color:var(--moss); font-weight:420; }
.t-name{ grid-column:2; grid-row:1; font-family:var(--display); font-size:clamp(1.25rem,2.4vw,1.8rem); font-weight:380; align-self:baseline; }
.t-note{ grid-column:3; grid-row:1; font-size:.86rem; color:var(--ink-soft); text-align:right; max-width:24ch; align-self:baseline; }
@media (max-width:680px){
  .t-item{ grid-template-columns:60px 1fr; gap:.3rem 1rem; padding:1.1rem .9rem; }
  .t-name{ grid-column:2; }
  .t-note{ grid-column:2; grid-row:2; text-align:left; margin-top:.2rem; }
  .t-year{ grid-row:1; }
}

/* ===================== galéria ===================== */
.gallery__mosaic{
  display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px;
  gap:1.6rem 1.4rem; padding-top:1rem;
}
/* polaroid: meleg fehér keret, vastagabb alj, fent ragasztószalag */
.g-item{
  margin:0; position:relative; overflow:visible; background:#FBF7EC;
  padding:9px 9px 26px; border-radius:3px;
  box-shadow:0 18px 34px -22px rgba(42,37,30,.7), 0 2px 5px rgba(42,37,30,.12);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), opacity .7s var(--ease);
}
/* váltakozó dőlés — mintha kézzel ragasztották volna fel */
.g-item:nth-child(4n+1){ transform:rotate(-1.6deg); }
.g-item:nth-child(4n+2){ transform:rotate(1.3deg); }
.g-item:nth-child(4n+3){ transform:rotate(-.6deg); }
.g-item:nth-child(4n+4){ transform:rotate(1deg); }
.g-item__inner, .g-item img{
  width:100%; height:100%; display:block; object-fit:cover;
  filter:sepia(.16) saturate(.95) contrast(1.02);
  transition:transform .7s var(--ease), filter .4s;
}
.g-item img{ border-radius:1px; }
/* ragasztószalag a tetején */
.g-item::before{
  content:""; position:absolute; z-index:3; top:-11px; left:50%;
  width:74px; height:26px; transform:translateX(-50%) rotate(-5deg);
  background:linear-gradient(120deg, rgba(214,162,78,.45), rgba(214,162,78,.28));
  border-left:1px dashed rgba(255,255,255,.4); border-right:1px dashed rgba(255,255,255,.4);
  box-shadow:0 3px 6px -2px rgba(42,37,30,.3);
}
.g-item:nth-child(3n+2)::before{
  left:auto; right:-12px; top:14px; transform:rotate(38deg);
  background:linear-gradient(120deg, rgba(139,155,124,.5), rgba(139,155,124,.3));
}
.g-item:nth-child(3n+3)::before{
  left:-12px; top:16px; transform:rotate(-40deg);
  background:linear-gradient(120deg, rgba(190,106,62,.4), rgba(190,106,62,.25));
}
.g-item:hover{
  transform:rotate(0) translateY(-8px) scale(1.05); z-index:5;
  box-shadow:0 44px 64px -26px rgba(42,37,30,.78);
}
/* a kép NEM nő ki a keretből — az egész polaroid egyben mozog, csak a szín elevenedik */
.g-item:hover img{ filter:sepia(0) saturate(1.06) contrast(1.03); }
.g-item--tall{ grid-row:span 2; }
.g-item--wide{ grid-column:span 2; }
@media (max-width:760px){
  .gallery__mosaic{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; gap:1.2rem 1rem; }
  .g-item--wide{ grid-column:span 2; }
  .g-item{ padding:7px 7px 20px; }
}

/* ===================== privát órák (callout sáv) ===================== */
.private-band{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:clamp(20px,4vw,40px) var(--gut); }
.private-band__inner{
  position:relative; overflow:hidden; isolation:isolate;
  background:linear-gradient(155deg, var(--moss), var(--moss-deep));
  color:var(--paper); border-radius:32px 80px 36px 70px; padding:clamp(1.8rem,4vw,3rem);
  display:grid; grid-template-columns:1.25fr .9fr; gap:clamp(1.6rem,4vw,3.2rem); align-items:center;
  box-shadow:0 40px 70px -36px rgba(45,58,42,.85);
}
.private-band__inner::after{
  content:""; position:absolute; right:-60px; top:-60px; width:240px; height:240px; z-index:-1;
  background:radial-gradient(circle at 40% 40%, rgba(214,162,78,.4), transparent 60%); filter:blur(8px);
}
.private-band .section__index{ color:var(--amber); }
.private-band__title{ font-family:var(--display); font-weight:380; font-size:clamp(1.6rem,3.2vw,2.5rem); line-height:1.05; letter-spacing:-.015em; margin:.5rem 0 1rem; }
.private-band__title em{ color:var(--amber); }
.private-band__text p{ color:color-mix(in srgb,var(--paper) 86%, transparent); max-width:46ch; margin:0 0 1.7rem; }
.private-band__list{ list-style:none; padding:0; margin:0; display:grid; gap:.2rem; }
.private-band__list li{ display:flex; gap:.7rem; align-items:baseline; padding:.85rem 0; border-bottom:1px solid rgba(244,237,224,.16); font-weight:500; }
.private-band__list span{ color:var(--amber); font-weight:700; }
@media (max-width:760px){ .private-band__inner{ grid-template-columns:1fr; } }

/* ===================== helyszínek (előzetes) ===================== */
.venues__row{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.6rem); }
.venue-thumb{
  display:flex; flex-direction:column; border-radius:14px 40px 14px 40px; overflow:hidden; color:var(--ink);
  background:var(--paper-2); border:1px solid var(--cream-line);
  box-shadow:0 18px 36px -26px rgba(42,37,30,.5);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
}
.venue-thumb:nth-child(2){ border-radius:40px 14px 40px 14px; }
.venue-thumb:nth-child(3){ border-radius:14px 14px 40px 40px; }
.venue-thumb__img{ display:block; aspect-ratio:4/3; overflow:hidden; }
.venue-thumb__img img{ width:100%; height:100%; object-fit:cover; filter:sepia(.14) saturate(.95) contrast(1.02); transition:transform .6s var(--ease); }
.venue-thumb__name{ font-family:var(--display); font-size:1.3rem; font-weight:420; padding:1rem 1.2rem .2rem; }
.venue-thumb__more{ font-size:.82rem; font-weight:600; color:var(--clay); padding:0 1.2rem 1.2rem; margin-top:.2rem; transition:transform .3s var(--ease); }
.venue-thumb:hover{ transform:translateY(-6px); border-color:var(--moss); box-shadow:0 36px 56px -28px rgba(42,37,30,.6); }
.venue-thumb:hover .venue-thumb__img img{ transform:scale(1.06); }
.venue-thumb:hover .venue-thumb__more{ transform:translateX(5px); }
.venues__cta{ margin-top:clamp(1.4rem,3vw,2rem); }
@media (max-width:760px){ .venues__row{ grid-template-columns:1fr; max-width:420px; } }

/* ===================== idézet-sáv ===================== */
.quote-band{
  position:relative; z-index:2; overflow:hidden; display:grid; place-items:center; text-align:center;
  min-height:clamp(380px,48vw,540px);
  background:linear-gradient(160deg, var(--moss) 0%, var(--moss-deep) 100%);
  color:var(--paper); padding:clamp(4.5rem,10vw,8rem) var(--gut);
  /* organikus, asszimmetrikus ív — a zöld „sziget" belefolyik a papírba */
  border-radius:38% 62% 45% 55% / 16% 14% 18% 12%;
  margin-block:clamp(-30px,-4vw,-50px);
}
.quote-band::before, .quote-band::after{
  content:""; position:absolute; width:340px; height:340px; border-radius:50%; pointer-events:none; z-index:0;
  background:radial-gradient(circle at 50% 50%, rgba(214,162,78,.16), transparent 60%);
}
.quote-band::before{ left:-90px; top:-130px; }
.quote-band::after{ right:-90px; bottom:-130px; background:radial-gradient(circle, rgba(139,155,124,.22), transparent 60%); }
.quote-band__inner{ position:relative; z-index:1; max-width:26ch; margin:0 auto; display:flex; flex-direction:column; align-items:center; }
.quote-band__mark{
  display:block; font-family:var(--display); font-weight:500; font-style:italic;
  font-size:clamp(4.5rem,11vw,8rem); line-height:.7; color:var(--amber); opacity:.55;
  margin-bottom:.15em; user-select:none;
}
.quote-band__q{
  margin:0; font-family:var(--display); font-weight:340; font-style:italic;
  font-size:clamp(1.65rem,4vw,2.9rem); line-height:1.22; letter-spacing:-.01em; color:var(--paper);
}
.quote-band__q em{ color:var(--amber); font-style:italic; }
.quote-band__cite{
  display:block; margin-top:1.6rem; font-style:normal; font-size:.74rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--sage);
}

/* ===================== vélemények ===================== */
.reviews__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.5rem); }
.review{
  margin:0; position:relative; background:var(--paper-2); border:1px solid var(--cream-line);
  border-radius:18px 48px 18px 48px; padding:1.7rem 1.6rem 1.5rem; display:flex; flex-direction:column; gap:.85rem;
  box-shadow:0 20px 40px -28px rgba(42,37,30,.5);
}
.review:nth-child(even){ border-radius:48px 18px 48px 18px; }
.review:nth-child(3n){ border-radius:18px 18px 48px 48px; }
.review::before{
  content:"\201D"; position:absolute; right:1rem; top:.3rem; font-family:var(--display);
  font-size:4rem; line-height:1; color:var(--clay); opacity:.16;
}
.review__stars{ color:var(--amber); letter-spacing:.12em; font-size:.95rem; }
.review blockquote{ margin:0; font-family:var(--display); font-weight:380; font-size:1.08rem; line-height:1.45; color:var(--ink); }
.review figcaption{ margin-top:auto; font-size:.86rem; color:var(--ink-soft); }
.review figcaption span{ font-weight:700; color:var(--moss); }
.reviews__note{ margin-top:1.4rem; font-size:.82rem; color:var(--ink-soft); }
.reviews__note em{ color:var(--clay); }
@media (max-width:820px){ .reviews__grid{ grid-template-columns:1fr; max-width:560px; } }

/* ===================== GYIK ===================== */
.faq__list{ max-width:780px; }
.faq__item{ border-bottom:1px solid var(--cream-line); }
.faq__item:first-child{ border-top:1px solid var(--cream-line); }
.faq__item summary{
  list-style:none; cursor:pointer; position:relative; padding:1.25rem 2.6rem 1.25rem 0;
  font-family:var(--display); font-weight:400; font-size:clamp(1.1rem,2vw,1.4rem); color:var(--ink);
  transition:color .25s var(--ease);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary:hover{ color:var(--clay); }
.faq__item summary::after{
  content:""; position:absolute; right:.35rem; top:50%; width:14px; height:14px; margin-top:-7px;
  background:
    linear-gradient(var(--clay),var(--clay)) center/14px 2px no-repeat,
    linear-gradient(var(--clay),var(--clay)) center/2px 14px no-repeat;
  transition:transform .3s var(--ease);
}
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__item p{ margin:0 0 1.4rem; color:var(--ink-soft); max-width:64ch; line-height:1.6; }
.faq__item a{ color:var(--clay); text-decoration:underline; text-underline-offset:2px; }
.faq__item[open] summary{ color:var(--moss); }

/* ===================== kapcsolat ===================== */
.contact{
  background:var(--moss-deep); color:var(--paper); border-radius:52% 44% 0 0 / 80px 56px 0 0;
  max-width:none; margin-top:clamp(20px,3vw,50px);
}
.contact__grid{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; grid-template-columns:.9fr 1.1fr;
  grid-template-areas:"head form" "aside form";
  gap:0 clamp(32px,6vw,72px); align-items:start;
}
.contact__head{ grid-area:head; }
.contact__form{ grid-area:form; }
.contact__aside{ grid-area:aside; }
.contact .section__index{ color:var(--amber); }
.contact .display-2{ color:var(--paper); }
.contact .display-2 em{ color:var(--amber); }
.contact__lead{ color:color-mix(in srgb, var(--paper) 82%, transparent); max-width:42ch; margin:1rem 0 2rem; }
.contact__info{ list-style:none; padding:0; margin:0; display:grid; gap:1rem; }
.contact__info li{ display:grid; gap:.1rem; border-top:1px solid rgba(244,237,224,.18); padding-top:.9rem; }
.contact__info span{ font-size:.74rem; text-transform:uppercase; letter-spacing:.2em; color:var(--sage); }
.contact__info a{ font-size:1.15rem; font-family:var(--display); }
.contact__info em{ font-size:.72rem; color:var(--amber); opacity:.8; }
.contact__call{ margin-top:1.6rem; color:var(--paper); border-color:var(--sage); }
.contact__call:hover{ background:var(--sage); border-color:var(--sage); color:var(--moss-deep); }
.contact__call svg{ flex:none; }

/* választott óra (az órarendből átemelve) */
.form-pick{
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  background:color-mix(in srgb, var(--moss) 12%, var(--paper)); border:1px solid color-mix(in srgb,var(--moss) 30%, transparent);
  border-radius:12px; padding:.7rem .9rem; margin-bottom:1.1rem; animation:fadeIn .3s var(--ease);
}
.form-pick[hidden]{ display:none; }
.form-pick__label{ font-size:.68rem; text-transform:uppercase; letter-spacing:.16em; color:var(--moss); font-weight:700; }
.form-pick__val{ font-weight:600; color:var(--ink); font-size:.95rem; flex:1; }
.form-pick__clear{ background:none; border:0; cursor:pointer; color:var(--ink-soft); font-size:1rem; line-height:1; padding:.2rem; border-radius:50%; }
.form-pick__clear:hover{ color:var(--clay-deep); }

.contact__form{
  background:var(--paper); color:var(--ink); border-radius:24px 56px 24px 56px; padding:clamp(1.4rem,3vw,2.2rem);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.6);
}
.field{ margin-bottom:1.05rem; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field label{ display:block; font-size:.8rem; font-weight:600; margin-bottom:.35rem; color:var(--ink-soft); }
.field input, .field select, .field textarea{
  width:100%; font-family:inherit; font-size:1rem; color:var(--ink);
  background:var(--paper-2); border:1.5px solid var(--cream-line); border-radius:10px;
  padding:.7rem .85rem; transition:border-color .25s, background .25s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--moss); background:#fff;
}
.field textarea{ resize:vertical; }
.form-status{ font-size:.9rem; margin:.8rem 0 0; min-height:1.2em; font-weight:600; }
.form-status.is-ok{ color:var(--moss); }
.form-status.is-err{ color:var(--clay-deep); }
.form-fineprint{ font-size:.76rem; color:var(--ink-soft); margin:.7rem 0 0; }
.form-fineprint em{ color:var(--clay); }
@media (max-width:820px){
  .contact__grid{ grid-template-columns:1fr; grid-template-areas:"head" "form" "aside"; }
  .contact__aside{ margin-top:1.8rem; }
  .field-row{ grid-template-columns:1fr; }
}

/* ===================== lábléc ===================== */
.site-footer{ background:var(--moss-deep); color:var(--paper); padding:0 var(--gut) 2.5rem; }
.site-footer__top{
  max-width:var(--maxw); margin-inline:auto; display:flex; flex-wrap:wrap; gap:1.2rem;
  align-items:center; justify-content:space-between; padding:2.2rem 0 1.4rem;
  border-top:1px solid rgba(244,237,224,.16);
}
.site-footer__social{ display:flex; align-items:center; gap:.7rem; }
.site-footer__social a{
  display:grid; place-items:center; width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(244,237,224,.25); color:var(--paper); transition:.25s var(--ease);
}
.site-footer__social a svg{ width:20px; height:20px; }
.site-footer__social a:hover{ background:var(--amber); border-color:var(--amber); color:var(--moss-deep); transform:translateY(-2px); }
.site-footer__social-todo{ font-size:.66rem; color:var(--amber); opacity:.7; font-style:italic; }
.brand--footer{ color:var(--sage); }
.brand--footer .brand__name{ color:var(--paper); }
.brand--footer .brand__name em{ color:var(--amber); }
.site-footer__nav{ display:flex; flex-wrap:wrap; gap:1.4rem; }
.site-footer__nav a{ color:color-mix(in srgb, var(--paper) 80%, transparent); font-size:.95rem; }
.site-footer__nav a:hover{ color:var(--amber); }
.site-footer__small{ max-width:var(--maxw); margin:1.4rem auto 0; font-size:.8rem; color:var(--sage); }
.site-footer__small em{ color:var(--amber); opacity:.7; }

/* ===================== reveal animáció ===================== */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease) var(--d,0s), transform .8s var(--ease) var(--d,0s); }
.reveal.is-in{ opacity:1; transform:none; }
.section .display-2, .section__sub, .section__index,
.t-item, .philosophy__body, .philosophy__lead{
  opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.display-2.is-in, .section__sub.is-in, .section__index.is-in,
.t-item.is-in,
.philosophy__body.is-in, .philosophy__lead.is-in{ opacity:1; transform:none; }
/* óratípus-sorok + galéria-csempék reveal — a saját transformjuk megőrzésével (csak fade) */
.oli{ opacity:0; }
.oli.is-in{ opacity:1; }
.g-item{ opacity:0; }
.g-item.is-in{ opacity:1; }

@media (prefers-reduced-motion: reduce){
  .reveal, .section .display-2, .section__sub, .section__index,
  .oli, .t-item, .g-item, .philosophy__body, .philosophy__lead{
    opacity:1!important; transform:none!important; transition:none!important;
  }
  .hero__scroll svg{ animation:none; }
  .vine-spine__path{ transition:none; }
}

/* mobil sticky CTA */
.sticky-cta{ display:none; }
@media (max-width:900px){
  .sticky-cta{
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    display:flex; gap:.6rem; padding:.6rem clamp(12px,4vw,20px);
    padding-bottom:calc(.6rem + env(safe-area-inset-bottom));
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter:blur(10px); border-top:1px solid var(--cream-line);
  }
  .sticky-cta .btn{ flex:1; padding:.7rem 1rem; font-size:.92rem; }
  body{ padding-bottom:64px; }
  .mobile-menu{ z-index:60; }
}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ===================== rendhagyó / alkalmi órák ===================== */
.special__eyebrow{ display:inline-flex; align-items:center; gap:.5rem; color:var(--clay); }
.special__dot{ width:9px; height:9px; border-radius:50%; background:var(--clay); box-shadow:0 0 0 0 color-mix(in srgb,var(--clay) 55%, transparent); animation:livepulse 2.4s ease-out infinite; }
.special__grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(290px,1fr)); gap:clamp(1.2rem,2.5vw,1.8rem); }
.special-card{
  position:relative; cursor:pointer; display:flex; flex-direction:column; overflow:hidden;
  background:linear-gradient(165deg, color-mix(in srgb,var(--clay) 8%, var(--paper-2)), var(--paper-2));
  border:1px solid color-mix(in srgb,var(--clay) 26%, var(--cream-line)); border-radius:20px 56px 20px 56px;
  box-shadow:0 22px 44px -30px rgba(42,37,30,.55);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s, opacity .7s var(--ease);
}
.special-card:nth-child(even){ border-radius:56px 20px 56px 20px; }
.special-card:hover, .special-card:focus-visible{ transform:translateY(-6px); border-color:var(--clay); box-shadow:0 38px 60px -30px rgba(42,37,30,.6); outline:none; }
.special-card__img{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.special-card__img img{ width:100%; height:100%; object-fit:cover; filter:sepia(.14) saturate(.96) contrast(1.02); transition:transform .6s var(--ease); }
.special-card:hover .special-card__img img{ transform:scale(1.06); }
.special-card__badge{ position:absolute; left:.9rem; top:.9rem; background:var(--clay); color:var(--paper); font-size:.68rem; font-weight:700; letter-spacing:.04em; padding:.35rem .7rem; border-radius:999px; box-shadow:0 8px 18px -8px rgba(0,0,0,.5); }
.special-card__body{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.4rem; flex:1; }
.special-card__body h3{ font-family:var(--display); font-weight:400; font-size:1.5rem; margin:0; }
.special-card__line{ margin:0; font-size:.85rem; color:var(--ink-soft); display:flex; align-items:center; gap:.5rem; }
.special-card__when::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--clay); display:inline-block; flex:none; }
.special-card__where::before{ content:""; width:7px; height:7px; border-radius:50% 50% 50% 1px; transform:rotate(45deg); background:var(--moss); display:inline-block; flex:none; }
.special-card__desc{ margin:.4rem 0 0; font-size:.92rem; color:var(--ink-soft); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.special-card__more{ margin-top:auto; padding-top:.9rem; font-size:.84rem; font-weight:700; color:var(--clay); }
.special-card:hover .special-card__more{ text-decoration:underline; text-underline-offset:2px; }

/* értesítés-toast */
.notif{
  position:fixed; left:clamp(12px,3vw,28px); bottom:clamp(12px,3vw,28px); z-index:70;
  display:flex; align-items:center; gap:.8rem; max-width:min(360px, calc(100vw - 24px));
  background:linear-gradient(150deg, var(--moss), var(--moss-deep)); color:var(--paper);
  padding:.8rem .8rem .8rem 1.1rem; border-radius:16px;
  box-shadow:0 26px 50px -20px rgba(45,58,42,.85); border:1px solid rgba(244,237,224,.14);
  transform:translateY(150%); opacity:0; transition:transform .5s var(--ease), opacity .5s var(--ease);
}
.notif.is-in{ transform:none; opacity:1; }
.notif[hidden]{ display:none; }
.notif__pulse{ width:11px; height:11px; border-radius:50%; background:var(--amber); flex:none; box-shadow:0 0 0 0 color-mix(in srgb,var(--amber) 60%, transparent); animation:livepulse 2.2s ease-out infinite; }
.notif__body{ flex:1; min-width:0; }
.notif__label{ margin:0; font-size:.62rem; text-transform:uppercase; letter-spacing:.18em; color:var(--amber); font-weight:700; }
.notif__title{ margin:.12rem 0 0; font-family:var(--display); font-size:1.02rem; line-height:1.2; }
.notif__cta{ flex:none; background:var(--amber); color:var(--moss-deep); border:0; font-weight:700; font-size:.82rem; padding:.5rem .85rem; border-radius:999px; cursor:pointer; transition:background .25s; }
.notif__cta:hover{ background:var(--paper); }
.notif__close{ flex:none; background:none; border:0; color:color-mix(in srgb,var(--paper) 70%, transparent); cursor:pointer; padding:.2rem; display:grid; place-items:center; }
.notif__close svg{ width:15px; height:15px; }
.notif__close:hover{ color:var(--paper); }
@media (max-width:900px){ .notif{ bottom:calc(64px + env(safe-area-inset-bottom) + 10px); } }
@media (max-width:560px){ .notif{ left:8px; right:8px; max-width:none; } }

/* esemény-modal */
.emodal{
  position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:clamp(1rem,4vw,2.5rem);
  background:radial-gradient(80% 60% at 80% 8%, rgba(214,162,78,.16), transparent 60%), color-mix(in srgb,var(--moss-deep) 82%, transparent);
  backdrop-filter:blur(16px) saturate(1.1); animation:lbFade .3s var(--ease);
}
.emodal[hidden]{ display:none; }
.emodal__panel{
  position:relative; width:min(860px, 96vw); max-height:90vh; overflow:auto;
  background:var(--paper); border-radius:28px 64px 28px 64px; box-shadow:0 50px 90px -30px rgba(0,0,0,.7);
  display:grid; grid-template-columns:1fr 1fr; animation:lbPop .35s var(--ease);
}
.emodal__media{ margin:0; overflow:hidden; }
.emodal__media img{ width:100%; height:100%; object-fit:cover; min-height:260px; filter:sepia(.12) saturate(.96); display:block; }
.emodal__content{ padding:clamp(1.5rem,3vw,2.3rem); display:flex; flex-direction:column; }
.emodal__badge{ align-self:flex-start; background:color-mix(in srgb,var(--clay) 14%, var(--paper)); color:var(--clay-deep); border:1px solid color-mix(in srgb,var(--clay) 30%, transparent); font-size:.7rem; font-weight:700; letter-spacing:.04em; padding:.3rem .7rem; border-radius:999px; margin:0 0 .9rem; }
.emodal__title{ font-family:var(--display); font-weight:400; font-size:clamp(1.5rem,3vw,2.2rem); line-height:1.06; margin:0 0 1.1rem; }
.emodal__meta{ list-style:none; padding:0; margin:0 0 1.1rem; display:grid; gap:.6rem; }
.emodal__meta li{ display:grid; grid-template-columns:4.5rem 1fr; gap:.9rem; align-items:baseline; border-top:1px solid var(--cream-line); padding-top:.7rem; }
.emodal__meta span{ font-size:.66rem; text-transform:uppercase; letter-spacing:.16em; color:var(--moss); font-weight:700; }
.emodal__meta strong{ font-weight:600; color:var(--ink); font-size:.95rem; }
.emodal__desc{ color:var(--ink-soft); margin:0 0 1.4rem; line-height:1.6; }
.emodal__actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-bottom:1.2rem; }
.emodal__share{ display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; margin-top:auto; border-top:1px solid var(--cream-line); padding-top:1.1rem; }
.emodal__share-label{ font-size:.8rem; color:var(--ink-soft); font-weight:600; }
.emodal__sharebtn{ display:inline-flex; align-items:center; gap:.4rem; background:var(--paper-2); border:1px solid var(--cream-line); color:var(--ink); border-radius:999px; padding:.5rem .9rem; font-size:.85rem; font-weight:600; cursor:pointer; transition:.25s var(--ease); }
.emodal__sharebtn svg{ width:18px; height:18px; }
.emodal__sharebtn:hover{ background:var(--moss); color:var(--paper); border-color:var(--moss); transform:translateY(-2px); }
#emodal-fb:hover{ background:#1877F2; border-color:#1877F2; color:#fff; }
.emodal__copied{ font-size:.82rem; color:var(--moss); font-weight:700; }
.emodal__close{ position:absolute; top:.8rem; right:.8rem; z-index:2; width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:color-mix(in srgb,var(--paper) 92%, transparent); border:1px solid var(--cream-line); color:var(--ink); cursor:pointer; box-shadow:0 8px 18px -10px rgba(0,0,0,.5); transition:.25s var(--ease); }
.emodal__close svg{ width:20px; height:20px; }
.emodal__close:hover{ background:var(--moss); color:var(--paper); transform:rotate(90deg); }
@media (max-width:680px){
  .emodal__panel{ grid-template-columns:1fr; max-height:92vh; }
  .emodal__media img{ min-height:160px; max-height:32vh; }
}
@media (prefers-reduced-motion:reduce){ .emodal, .emodal__panel, .notif{ animation:none; } }

/* ===================== stúdió-aloldal (studiok.html) ===================== */
.studios-hero{ position:relative; z-index:2; margin-inline:auto; max-width:860px; padding:clamp(48px,8vw,120px) var(--gut) clamp(16px,3vw,32px); }
.studios-hero__title{ font-family:var(--display); font-weight:340; font-size:clamp(2.4rem,6.5vw,4.6rem); line-height:1; letter-spacing:-.025em; margin:.7rem 0 1.4rem; color:var(--ink); }
.studios-hero__title em{ color:var(--clay); font-style:italic; }
.studios-hero__lead{ font-size:1.12rem; color:var(--ink-soft); max-width:62ch; }
.studios-hero__motto{ font-family:var(--display); font-style:italic; font-size:clamp(1.15rem,2vw,1.5rem); color:var(--moss); margin:1.8rem 0 0; }

.studio__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(32px,6vw,84px); align-items:center; }
.studio--rev .studio__media{ grid-column:2; grid-row:1; }
.studio--rev .studio__info{ grid-column:1; grid-row:1; }
.studio__media{ position:relative; padding-bottom:6%; }
.studio__photo{ margin:0; overflow:hidden; }
.studio__photo img{ width:100%; height:100%; object-fit:cover; display:block; filter:sepia(.14) saturate(.95) contrast(1.02); transition:transform .6s var(--ease); }
.studio__photo--main{ aspect-ratio:4/3; border:5px solid var(--paper); border-radius:24px 64px 24px 64px; box-shadow:0 36px 60px -30px rgba(42,37,30,.6); }
.studio--rev .studio__photo--main{ border-radius:64px 24px 64px 24px; }
.studio__photo--sub{ position:absolute; right:-5%; bottom:-6%; width:44%; aspect-ratio:1; border:5px solid var(--paper); border-radius:50% 50% 50% 14px; box-shadow:0 26px 46px -22px rgba(42,37,30,.7); }
.studio--rev .studio__photo--sub{ right:auto; left:-5%; }
.studio__media:hover .studio__photo--main img{ transform:scale(1.04); }

.studio__info .section__index{ margin-bottom:.4rem; }
.studio__info .display-2{ margin-bottom:1rem; }
.studio__info > p{ color:var(--ink-soft); max-width:48ch; margin:0; }
.studio__meta{ list-style:none; padding:0; margin:1.5rem 0 1.9rem; display:grid; gap:.2rem; }
.studio__meta li{ display:grid; grid-template-columns:7.5rem 1fr; gap:1rem; align-items:baseline; border-top:1px solid var(--cream-line); padding:.85rem 0; font-size:.98rem; color:var(--ink); }
.studio__meta span{ font-size:.7rem; text-transform:uppercase; letter-spacing:.18em; color:var(--moss); font-weight:700; }
.studio__meta em{ color:var(--clay); font-size:.76rem; font-style:italic; }
.studio__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; }
.studio__map{ font-size:.92rem; font-weight:600; color:var(--moss); border-bottom:1.5px solid transparent; padding-bottom:1px; transition:border-color .25s var(--ease); }
.studio__map:hover{ border-bottom-color:var(--moss); }

.studios-cta{ position:relative; z-index:2; background:var(--moss-deep); color:var(--paper); border-radius:42% 56% 0 0 / 70px 84px 0 0; margin-top:clamp(36px,6vw,70px); padding:clamp(48px,8vw,100px) var(--gut); text-align:center; }
.studios-cta__inner{ max-width:620px; margin-inline:auto; }
.studios-cta .display-2{ color:var(--paper); }
.studios-cta .display-2 em{ color:var(--amber); }
.studios-cta p{ color:color-mix(in srgb,var(--paper) 84%, transparent); margin:1rem 0 2rem; }
.studios-cta .btn{ margin:.35rem; }

@media (max-width:820px){
  .studio__grid{ grid-template-columns:1fr; gap:2.4rem; }
  .studio--rev .studio__media, .studio--rev .studio__info{ grid-column:1; grid-row:auto; }
  .studio__media{ max-width:480px; padding-bottom:0; }
  .studio__photo--sub{ position:static; width:56%; margin:-14% 0 0 auto; }
  .studio--rev .studio__photo--sub{ margin:-14% auto 0 0; }
}

/* a galéria-csempék kattinthatók */
.g-item{ cursor:pointer; }
.g-item:focus-visible{ outline:2px solid var(--clay); outline-offset:4px; }

/* ===================== galéria-nézegető (lightbox) ===================== */
.lightbox{
  position:fixed; inset:0; z-index:100; display:grid; place-items:center;
  padding:clamp(1rem,4vw,3rem);
  background:
    radial-gradient(80% 60% at 85% 10%, rgba(214,162,78,.18), transparent 60%),
    radial-gradient(70% 60% at 10% 95%, rgba(139,155,124,.2), transparent 55%),
    color-mix(in srgb, var(--moss-deep) 82%, transparent);
  backdrop-filter:blur(16px) saturate(1.1);
  animation:lbFade .3s var(--ease);
}
.lightbox[hidden]{ display:none; }
.lightbox__leaf{
  position:absolute; width:clamp(60px,9vw,130px); aspect-ratio:1; pointer-events:none; opacity:.14;
  background:var(--sage);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M70 72C40 64 14 44 12 10c30 6 56 28 58 62Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M70 72C40 64 14 44 12 10c30 6 56 28 58 62Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.lightbox__leaf--a{ top:7%; left:6%; transform:rotate(-18deg); }
.lightbox__leaf--b{ bottom:8%; right:7%; transform:rotate(150deg); color:var(--amber); background:var(--amber); }

.lightbox__stage{
  margin:0; position:relative; justify-self:center; max-width:min(1040px,92vw);
  animation:lbPop .35s var(--ease);
}
.lightbox__stage img{
  display:block; width:100%; max-height:82vh; object-fit:contain;
  background:#FBF7EC; border:7px solid #FBF7EC; border-bottom-width:20px; border-radius:4px;
  box-shadow:0 40px 80px -28px rgba(0,0,0,.7);
}
.lightbox__cap{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  margin-top:1rem; color:color-mix(in srgb,var(--paper) 88%, transparent); font-size:.9rem;
}
.lightbox__count{ font-family:var(--display); color:var(--amber); font-size:1.05rem; flex:none; }

.lightbox__nav, .lightbox__close{
  position:absolute; z-index:2; display:grid; place-items:center; cursor:pointer;
  background:color-mix(in srgb,var(--paper) 92%, transparent); color:var(--moss-deep);
  border:1px solid rgba(244,237,224,.4); border-radius:50%;
  box-shadow:0 12px 26px -12px rgba(0,0,0,.6); transition:.25s var(--ease);
}
.lightbox__nav{ top:50%; transform:translateY(-50%); width:clamp(44px,6vw,58px); height:clamp(44px,6vw,58px); }
.lightbox__nav svg{ width:42%; height:42%; }
.lightbox__nav--prev{ left:clamp(.5rem,3vw,2.5rem); }
.lightbox__nav--next{ right:clamp(.5rem,3vw,2.5rem); }
.lightbox__close{ top:clamp(.9rem,3vw,1.6rem); right:clamp(.9rem,3vw,1.6rem); width:48px; height:48px; }
.lightbox__close svg{ width:22px; height:22px; }
.lightbox__nav:hover, .lightbox__close:hover{ background:var(--moss); color:var(--paper); transform:translateY(-50%) scale(1.06); }
.lightbox__close:hover{ transform:rotate(90deg) scale(1.06); }
.lightbox__nav:active{ transform:translateY(-50%) scale(.96); }

@keyframes lbFade{ from{opacity:0} to{opacity:1} }
@keyframes lbPop{ from{opacity:0; transform:scale(.96) translateY(10px)} to{opacity:1; transform:none} }
@media (max-width:560px){
  .lightbox__nav--prev{ left:.4rem; }
  .lightbox__nav--next{ right:.4rem; }
  .lightbox__stage img{ max-height:72vh; }
}
@media (prefers-reduced-motion: reduce){
  .lightbox, .lightbox__stage{ animation:none; }
}

/* ===================== mobil sűrűség-finomítás (gép változatlan) ===================== */
@media (max-width:600px){
  /* rövidebb szekciók — ne töltse ki minden szekció a teljes képernyőt */
  .section{ padding-top:clamp(38px,9vw,58px); padding-bottom:clamp(38px,9vw,58px); }
  .section__head{ margin-bottom:1.5rem; }
  .section__sub{ font-size:.98rem; }

  /* sávok / kártyák tömörebbek */
  .private-band{ padding-block:4px; }
  .private-band__inner{ padding:1.5rem 1.3rem; border-radius:18px; }
  .private-band__list li{ padding:.7rem 0; }
  .special-card__body{ padding:1.1rem 1.2rem 1.3rem; }
  .special-card__desc{ font-size:.9rem; }
  .review{ padding:1.4rem 1.3rem 1.25rem; }
  .t-item{ padding:1rem .7rem; }
  .quote-band{ min-height:auto; padding:clamp(2.8rem,12vw,4rem) var(--gut); }

  /* a szekció-eyebrow legyen jobban látható → tudni, hol vagyok */
  .section__index{ font-size:.7rem; }
}

/* fókusz láthatóság (a11y) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--clay); outline-offset:3px; border-radius:4px;
}
