/* =====================================================
   Rambajs café shop — styles.css
   Desktop-first rules. Media queries live in responsive.css.
   ===================================================== */

/* ── RESET ─────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',system-ui,sans-serif;
  font-size:16px;
  line-height:1.7;
  color:var(--ink);
  background:var(--cream);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}

/* ── TOKENS ────────────────────────────────────────── */
:root{
  --espresso:#2B1810;
  --espresso-2:#3B2317;
  --cream:#F5EDE0;
  --cream-2:#FAF4EA;
  --cream-3:#EFE4D1;
  --caramel:#B87333;
  --caramel-2:#8C5423;
  --caramel-3:#D69862;
  --burgundy:#6B2737;
  --sage:#8A9A7B;
  --ink:#221912;
  --ink-2:#4A3A30;
  --muted:#8B7865;
  --line:rgba(43,24,16,0.10);
  --line-soft:rgba(43,24,16,0.05);

  --shadow-soft:0 1px 2px rgba(43,24,16,.04),0 10px 24px rgba(43,24,16,.08);
  --shadow-lift:0 4px 10px rgba(43,24,16,.06),0 22px 48px rgba(43,24,16,.14);
  --shadow-caramel:0 2px 8px rgba(184,115,51,.18),0 18px 40px rgba(184,115,51,.22);

  --radius-sm:8px;
  --radius:14px;
  --radius-lg:22px;
  --radius-xl:32px;

  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);

  --container:1280px;
}

/* ── TYPOGRAPHY ───────────────────────────────────── */
h1,h2,h3,h4{
  font-family:'Fraunces',Georgia,serif;
  font-weight:600;
  line-height:1.1;
  letter-spacing:-0.02em;
  color:var(--espresso);
}
h1{font-size:clamp(2.25rem,5.4vw,4.25rem);letter-spacing:-0.03em;font-weight:500}
h2{font-size:clamp(1.75rem,3.4vw,2.75rem);font-weight:600}
h3{font-size:clamp(1.125rem,1.8vw,1.4rem);font-weight:600}
p{font-size:clamp(15px,1vw,17px)}

.section-label{
  display:inline-block;
  font-family:'Inter',sans-serif;
  font-size:0.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.18em;
  color:var(--caramel);
  margin-bottom:20px;
  position:relative;
  padding-left:28px;
}
.section-label::before{
  content:"";
  position:absolute;left:0;top:50%;
  width:20px;height:1.5px;
  background:var(--caramel);
  transform:translateY(-50%);
}
.section-label--dark{color:var(--cream-3)}
.section-label--dark::before{background:var(--cream-3)}
.section-heading{margin-bottom:20px}
.section-lead{font-size:1.125rem;color:var(--ink-2);margin-bottom:18px;line-height:1.65}
.section-body{color:var(--ink-2);margin-bottom:18px}
.section-sub{color:var(--muted);max-width:640px}

/* ── LAYOUT ───────────────────────────────────────── */
.nav-container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 40px;
}
.section{padding:112px 0;position:relative}
.section--onas{background:var(--cream)}
.section--menu{background:var(--cream-2)}
.section--galerie{background:var(--cream)}
.section--reviews{background:var(--cream-2)}
.section--hodiny{background:var(--cream)}
.section--kontakt{background:var(--cream-2)}

/* ── BUTTONS ──────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 30px;
  font-family:'Inter',sans-serif;
  font-size:0.95rem;
  font-weight:600;
  letter-spacing:0.01em;
  border-radius:var(--radius-sm);
  cursor:pointer;
  position:relative;
  isolation:isolate;
  transition:transform 200ms var(--ease-out),box-shadow 200ms var(--ease-out),background 200ms var(--ease-out),color 200ms var(--ease-out),border-color 200ms var(--ease-out);
  white-space:nowrap;
}
.btn--primary{
  background:var(--caramel);
  color:#fff;
  box-shadow:var(--shadow-caramel);
}
.btn--primary:hover{background:var(--caramel-2);transform:translateY(-2px);box-shadow:0 4px 14px rgba(184,115,51,.28),0 24px 50px rgba(184,115,51,.30)}
.btn--primary:active{transform:translateY(0);box-shadow:0 1px 4px rgba(184,115,51,.30)}
.btn--outline{
  background:transparent;
  color:#fff;
  border:1.5px solid rgba(255,255,255,.6);
  backdrop-filter:blur(6px);
}
.btn--outline:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-2px)}
.btn--ghost{
  background:#fff;
  color:var(--espresso);
  border:1.5px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.btn--ghost:hover{border-color:var(--caramel);color:var(--caramel-2);transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.btn:focus-visible{outline:3px solid var(--caramel-3);outline-offset:4px}

/* ── NAVBAR ───────────────────────────────────────── */
#navbar{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:14px 0;
  transition:background 250ms var(--ease-out),backdrop-filter 250ms var(--ease-out),box-shadow 250ms var(--ease-out),padding 250ms var(--ease-out);
  background:transparent;
}
#navbar.scrolled{
  background:rgba(245,237,224,0.88);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 1px 0 rgba(43,24,16,.06),0 10px 30px rgba(43,24,16,.08);
  padding:10px 0;
}
#navbar .nav-container{
  display:flex;align-items:center;gap:32px;
}
.logo{
  display:flex;align-items:center;gap:12px;
  color:#fff;
  transition:color 250ms var(--ease-out);
}
#navbar.scrolled .logo{color:var(--espresso)}
.logo-mark{
  width:38px;height:38px;
  border-radius:12px;
  display:grid;place-items:center;
  background:var(--caramel);
  color:#fff;
  flex-shrink:0;
  box-shadow:0 4px 14px rgba(184,115,51,.4),inset 0 1px 0 rgba(255,255,255,.2);
}
.logo-mark svg{width:22px;height:22px}
.logo-text{display:flex;flex-direction:column;line-height:1.05}
.logo-name{font-family:'Fraunces',serif;font-weight:700;font-size:1.35rem;letter-spacing:-0.02em}
.logo-sub{
  font-family:'Inter',sans-serif;
  font-size:0.63rem;font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--caramel-3);
  margin-top:2px;
}
#navbar.scrolled .logo-sub{color:var(--caramel)}
.nav-links{
  display:flex;align-items:center;gap:4px;
  margin:0 auto;
}
.nav-links a{
  padding:10px 16px;
  font-size:0.92rem;font-weight:500;
  color:rgba(255,255,255,.88);
  border-radius:999px;
  position:relative;
  transition:color 200ms var(--ease-out),background 200ms var(--ease-out);
}
.nav-links a:hover{background:rgba(255,255,255,.12);color:#fff}
#navbar.scrolled .nav-links a{color:var(--ink-2)}
#navbar.scrolled .nav-links a:hover{background:rgba(184,115,51,.10);color:var(--caramel-2)}
.nav-cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 20px;
  font-size:0.92rem;font-weight:600;
  color:#fff;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  backdrop-filter:blur(6px);
  transition:background 200ms var(--ease-out),border-color 200ms var(--ease-out),transform 200ms var(--ease-out),color 200ms var(--ease-out);
}
.nav-cta:hover{background:#fff;color:var(--espresso);border-color:#fff;transform:translateY(-1px)}
#navbar.scrolled .nav-cta{background:var(--caramel);border-color:var(--caramel);color:#fff;box-shadow:0 2px 10px rgba(184,115,51,.35)}
#navbar.scrolled .nav-cta:hover{background:var(--caramel-2);border-color:var(--caramel-2)}

/* Hamburger (mobile only — hidden on desktop) */
.hamburger{display:none;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;gap:5px;border-radius:10px}
.hamburger span{width:22px;height:2px;background:#fff;border-radius:2px;transition:transform 250ms var(--ease-out),opacity 200ms var(--ease-out),background 200ms var(--ease-out)}
#navbar.scrolled .hamburger span{background:var(--espresso)}
.hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.is-open span:nth-child(2){opacity:0}
.hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile drawer */
.mobile-drawer{
  position:fixed;top:0;right:0;height:100%;width:min(420px,88vw);
  background:var(--cream);
  z-index:120;
  transform:translateX(100%);
  transition:transform 400ms var(--ease-out);
  padding:80px 36px 40px;
  display:flex;flex-direction:column;gap:20px;
  box-shadow:-30px 0 60px rgba(43,24,16,.18);
}
.mobile-drawer.is-open{transform:translateX(0)}
.drawer-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;font-size:20px;color:var(--espresso);display:grid;place-items:center}
.drawer-close:hover{background:rgba(43,24,16,.06)}
.drawer-logo{display:flex;flex-direction:column;line-height:1.05;padding-bottom:18px;border-bottom:1px solid var(--line)}
.drawer-logo .logo-name{font-family:'Fraunces',serif;font-weight:700;font-size:1.6rem;color:var(--espresso)}
.drawer-logo .logo-sub{font-size:0.7rem;color:var(--caramel);letter-spacing:0.18em;text-transform:uppercase;font-weight:600;margin-top:4px}
.drawer-links{display:flex;flex-direction:column;gap:4px}
.drawer-links a{display:block;padding:14px 0;font-family:'Fraunces',serif;font-size:1.45rem;font-weight:500;color:var(--espresso);border-bottom:1px solid var(--line-soft)}
.drawer-links a:hover{color:var(--caramel)}
.drawer-phone{margin-top:auto;padding:14px 20px;background:var(--caramel);color:#fff;border-radius:12px;text-align:center;font-weight:600;font-size:1.05rem;letter-spacing:0.02em;box-shadow:var(--shadow-caramel)}
.drawer-addr{font-size:0.85rem;color:var(--muted);text-align:center}
.drawer-overlay{position:fixed;inset:0;background:rgba(43,24,16,.55);backdrop-filter:blur(3px);z-index:110;opacity:0;pointer-events:none;transition:opacity 300ms ease}
.drawer-overlay.is-open{opacity:1;pointer-events:auto}

/* ── HERO ─────────────────────────────────────────── */
#hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;
  overflow:hidden;
  isolation:isolate;
  color:#fff;
}
.hero-bg{position:absolute;inset:0;z-index:-1}
.hero-img{
  position:absolute;inset:0;
  width:100%;height:115%;
  object-fit:cover;object-position:center 40%;
  transform:translateY(0);
  will-change:transform;
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(20,10,6,.25) 0%,rgba(20,10,6,.45) 40%,rgba(20,10,6,.72) 100%),
    radial-gradient(1200px 600px at 20% 110%,rgba(184,115,51,.25),transparent 70%),
    radial-gradient(900px 500px at 80% -10%,rgba(107,39,55,.20),transparent 70%);
}
.hero-grain{
  position:absolute;inset:0;
  pointer-events:none;
  opacity:.35;
  filter:url(#noise-filter);
  mix-blend-mode:overlay;
}
.hero-blob{
  position:absolute;
  border-radius:50%;
  filter:blur(90px);
  mix-blend-mode:screen;
  opacity:.45;
  animation:blobFloat 14s ease-in-out infinite;
}
.hero-blob--1{width:520px;height:520px;background:radial-gradient(circle,var(--caramel-3) 0%,transparent 70%);left:-120px;top:18%}
.hero-blob--2{width:460px;height:460px;background:radial-gradient(circle,var(--burgundy) 0%,transparent 70%);right:-80px;bottom:-80px;animation-delay:-7s}
@keyframes blobFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(40px,-30px) scale(1.08)}
}

.hero-content{
  position:relative;z-index:1;
  padding-top:140px;padding-bottom:140px;
  max-width:var(--container);
}
.hero-label{
  display:inline-flex;align-items:center;gap:10px;
  font-size:0.78rem;font-weight:600;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.85);
  padding:9px 18px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.06);
  border-radius:999px;
  backdrop-filter:blur(6px);
  margin-bottom:28px;
}
.hero-dot{
  width:8px;height:8px;background:var(--caramel-3);border-radius:50%;
  box-shadow:0 0 0 0 rgba(214,152,98,.7);
  animation:pulseDot 2.4s ease-out infinite;
}
@keyframes pulseDot{
  0%{box-shadow:0 0 0 0 rgba(214,152,98,.7)}
  70%{box-shadow:0 0 0 10px rgba(214,152,98,0)}
  100%{box-shadow:0 0 0 0 rgba(214,152,98,0)}
}
.hero-title{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:clamp(2.5rem,6.2vw,5.25rem);
  line-height:1.02;
  letter-spacing:-0.035em;
  color:#fff;
  max-width:20ch;
  margin-bottom:26px;
}
.hero-title-line{display:block;overflow:hidden}
.hero-title-line--accent{font-style:italic;color:var(--caramel-3);font-weight:500}
.hero-title-line .word{display:inline-block;white-space:nowrap}
.hero-title-line .char{
  display:inline-block;
  transform:translateY(110%);
  opacity:0;
  animation:charRise 900ms var(--ease-out) forwards;
}
@keyframes charRise{to{transform:translateY(0);opacity:1}}
.hero-sub{
  font-size:clamp(1.05rem,1.3vw,1.22rem);
  color:rgba(255,255,255,.85);
  max-width:56ch;
  margin-bottom:40px;
  line-height:1.6;
  font-weight:300;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:56px}
.hero-meta{
  display:inline-flex;align-items:center;gap:18px;
  padding:14px 22px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  backdrop-filter:blur(10px);
  font-size:0.875rem;
  color:rgba(255,255,255,.85);
}
.hero-meta-item{display:inline-flex;align-items:center;gap:10px}
.hero-meta-dot{width:8px;height:8px;border-radius:50%;background:var(--sage);box-shadow:0 0 10px rgba(138,154,123,.8)}
.hero-meta-item strong{color:#fff;font-weight:600}
.hero-meta-divider{width:1px;height:16px;background:rgba(255,255,255,.2)}

.scroll-indicator{
  position:absolute;bottom:32px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  color:rgba(255,255,255,.7);
  font-size:0.7rem;letter-spacing:0.24em;text-transform:uppercase;
}
.scroll-line{width:1.5px;height:56px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.7),transparent);position:relative;overflow:hidden}
.scroll-line::after{content:"";position:absolute;left:0;top:-50%;width:100%;height:50%;background:#fff;animation:scrollDown 2s ease-in-out infinite}
@keyframes scrollDown{0%{top:-50%}100%{top:150%}}

/* ── STATS ────────────────────────────────────────── */
.stats{
  background:var(--espresso);
  color:var(--cream);
  position:relative;
  overflow:hidden;
}
.stats::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(800px 300px at 50% 100%,rgba(184,115,51,.15),transparent 70%);
  pointer-events:none;
}
.stats-inner{
  display:flex;align-items:center;justify-content:space-between;gap:40px;
  padding:56px 40px;
  position:relative;
}
.stat{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  flex:1;
}
.stat-icon{
  width:44px;height:44px;border-radius:12px;
  display:grid;place-items:center;
  background:rgba(184,115,51,.18);
  color:var(--caramel-3);
  margin-bottom:6px;
}
.stat-icon svg{width:22px;height:22px}
.stat-num{
  font-family:'Fraunces',serif;
  font-size:clamp(2.25rem,3.8vw,3.25rem);
  font-weight:600;
  line-height:1;
  color:#fff;
  font-variant-numeric:tabular-nums;
  letter-spacing:-0.02em;
}
.stat-label{font-size:0.9rem;color:rgba(245,237,224,.7);font-weight:400;line-height:1.45;max-width:220px}
.stat-divider{width:1px;height:80px;background:linear-gradient(to bottom,transparent,rgba(245,237,224,.18),transparent)}

/* ── O NÁS ────────────────────────────────────────── */
.onas-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.onas-copy{max-width:520px}
.onas-features{
  display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;
  margin:28px 0 36px;
}
.onas-features li{
  display:flex;align-items:center;gap:10px;
  font-size:0.94rem;color:var(--ink-2);
}
.feat-dot{width:6px;height:6px;border-radius:50%;background:var(--caramel);flex-shrink:0}
.onas-signature{display:flex;align-items:center;gap:14px;color:var(--muted);font-style:italic;font-size:0.88rem}
.sig-line{width:40px;height:1px;background:var(--caramel);flex-shrink:0}

.onas-media{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:22px;padding:20px}
.media-card{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lift);
  isolation:isolate;
  background:#000;
}
.media-card img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease-out)}
.media-card:hover img{transform:scale(1.05)}
.media-card--lg{
  grid-column:1 / 2;
  grid-row:1 / 3;
  aspect-ratio:3 / 4;
  margin-top:-28px;
}
.media-card--sm{
  grid-column:2 / 3;
  grid-row:2 / 3;
  aspect-ratio:1 / 1;
  margin-top:28px;
}
.media-tag{
  position:absolute;left:18px;bottom:18px;
  padding:7px 14px;
  background:rgba(245,237,224,.92);
  backdrop-filter:blur(4px);
  color:var(--espresso);
  font-size:0.7rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  border-radius:999px;
}
.onas-badge{
  position:absolute;right:-10px;top:40px;
  width:118px;height:118px;
  background:var(--caramel);color:#fff;
  border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  box-shadow:var(--shadow-caramel),inset 0 0 0 1px rgba(255,255,255,.15);
  font-family:'Fraunces',serif;
  transform:rotate(-8deg);
  transition:transform 400ms var(--ease-spring);
}
.onas-badge::before{
  content:"";position:absolute;inset:6px;border-radius:50%;
  border:1px dashed rgba(255,255,255,.35);
  animation:spinSlow 26s linear infinite;
}
.onas-badge-num{font-size:1.75rem;font-weight:700;line-height:1;letter-spacing:-0.01em}
.onas-badge-label{font-size:0.58rem;letter-spacing:0.22em;text-transform:uppercase;font-family:'Inter',sans-serif;opacity:.88;font-weight:600;margin-top:2px}
@keyframes spinSlow{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.onas-media:hover .onas-badge{transform:rotate(0) scale(1.04)}

/* ── ATMOSFÉRA ────────────────────────────────────── */
.section--atmosfera{
  position:relative;
  padding:160px 0;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
.atmosfera-bg{position:absolute;inset:0;z-index:-1}
.atmosfera-bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.atmosfera-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(135deg,rgba(43,24,16,.92) 0%,rgba(43,24,16,.72) 100%),
    radial-gradient(600px 400px at 80% 20%,rgba(184,115,51,.2),transparent 70%);
}
.atmosfera-inner{display:flex;justify-content:flex-start}
.atmosfera-card{max-width:640px}
.atmosfera-card .section-heading{color:#fff}
.atmosfera-card .section-body{color:rgba(245,237,224,.82)}
.atmosfera-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
  margin-top:36px;
}
.atmo-item{
  display:flex;align-items:center;gap:12px;
  padding:16px 18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:0.9rem;font-weight:500;
  transition:background 250ms var(--ease-out),transform 250ms var(--ease-out),border-color 250ms var(--ease-out);
}
.atmo-item:hover{background:rgba(184,115,51,.18);border-color:rgba(214,152,98,.35);transform:translateY(-2px)}
.atmo-item svg{width:20px;height:20px;color:var(--caramel-3);flex-shrink:0}

/* ── MENU ─────────────────────────────────────────── */
.menu-head{text-align:center;max-width:720px;margin:0 auto 48px;display:flex;flex-direction:column;align-items:center}
.menu-head .section-label{display:inline-flex;align-self:center}
.menu-head .section-sub{margin:0 auto}
.menu-tabs{
  display:flex;justify-content:center;gap:10px;
  padding:8px;
  background:#fff;
  border-radius:999px;
  max-width:max-content;
  margin:0 auto 48px;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--line);
}
.menu-tab{
  padding:12px 28px;
  font-family:'Inter',sans-serif;
  font-size:0.92rem;font-weight:600;
  color:var(--ink-2);
  border-radius:999px;
  letter-spacing:0.02em;
  transition:background 250ms var(--ease-out),color 250ms var(--ease-out),transform 200ms var(--ease-out);
}
.menu-tab:hover{color:var(--caramel-2)}
.menu-tab.is-active{
  background:var(--espresso);
  color:#fff;
  box-shadow:0 2px 10px rgba(43,24,16,.22);
}
.menu-tab:focus-visible{outline:3px solid var(--caramel-3);outline-offset:2px}

.menu-panel{display:none;animation:panelFade 400ms var(--ease-out)}
.menu-panel.is-active{display:block}
@keyframes panelFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.menu-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:60px;
  align-items:stretch;
}
.menu-grid--reverse .menu-list{order:2}
.menu-grid--reverse .menu-visual{order:1}

.menu-list{display:flex;flex-direction:column;gap:24px}
.menu-item{padding-bottom:24px;border-bottom:1px dashed var(--line);display:flex;flex-direction:column;gap:6px}
.menu-item:last-child{border-bottom:0}
.mi-main{display:flex;align-items:baseline;gap:10px}
.mi-name{font-family:'Fraunces',serif;font-size:1.22rem;font-weight:600;color:var(--espresso);letter-spacing:-0.01em}
.mi-dots{flex:1;border-bottom:1.5px dotted rgba(184,115,51,.35);margin-bottom:4px;min-width:20px}
.mi-price{font-family:'Fraunces',serif;font-weight:600;color:var(--caramel-2);font-size:1.05rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.mi-desc{font-size:0.9rem;color:var(--muted);line-height:1.55;margin:0;max-width:520px}

.menu-visual{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  min-height:460px;
  box-shadow:var(--shadow-lift);
  background:#000;
}
.menu-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.menu-visual::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(43,24,16,.78),rgba(43,24,16,.18) 45%,transparent);
}
.menu-visual-caption{
  position:absolute;left:22px;right:22px;bottom:22px;
  color:#fff;z-index:2;
  display:flex;flex-direction:column;gap:4px;
}
.menu-visual-caption span{font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,.72);font-weight:600}
.menu-visual-caption strong{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:600;letter-spacing:-0.01em}

.menu-footnote{text-align:center;color:var(--muted);font-size:0.85rem;margin-top:48px;font-style:italic}

/* ── GALERIE (masonry) ───────────────────────────── */
.galerie-head{text-align:center;max-width:720px;margin:0 auto 48px;display:flex;flex-direction:column;align-items:center}
.galerie-head .section-sub{margin:0 auto}

.masonry{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:repeat(2,260px);
  gap:16px;
}
.tile{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  transition:transform 400ms var(--ease-out),box-shadow 400ms var(--ease-out);
  background:#000;
  transition-delay:var(--d);
}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 700ms var(--ease-out),filter 400ms var(--ease-out);filter:saturate(1.02)}
.tile::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(43,24,16,.65),transparent 60%);
  opacity:.6;transition:opacity 350ms var(--ease-out);
}
.tile figcaption{
  position:absolute;left:18px;bottom:16px;z-index:2;
  color:#fff;font-family:'Fraunces',serif;font-size:1.1rem;font-weight:600;
  opacity:0;transform:translateY(10px);
  transition:opacity 350ms var(--ease-out),transform 350ms var(--ease-out);
}
.tile:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.tile:hover img{transform:scale(1.06)}
.tile:hover::after{opacity:.85;background:linear-gradient(to top,rgba(43,24,16,.82),rgba(184,115,51,.22))}
.tile:hover figcaption{opacity:1;transform:translateY(0)}

/* 5-tile gallery: tall feature left + 2x2 grid right */
.tile:nth-child(1){grid-column:1;grid-row:1 / span 2}
.tile:nth-child(2){grid-column:2;grid-row:1}
.tile:nth-child(3){grid-column:3;grid-row:1}
.tile:nth-child(4){grid-column:2;grid-row:2}
.tile:nth-child(5){grid-column:3;grid-row:2}

/* ── REVIEWS ──────────────────────────────────────── */
.reviews-head{text-align:center;max-width:720px;margin:0 auto 56px;display:flex;flex-direction:column;align-items:center}
.reviews-head .section-sub{margin:0 auto}

.reviews-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
  margin-bottom:48px;
}
.review-card{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:34px 30px;
  display:flex;flex-direction:column;gap:16px;
  box-shadow:0 2px 6px rgba(43,24,16,.04),0 16px 40px rgba(43,24,16,.07);
  transition:transform 400ms var(--ease-out),box-shadow 400ms var(--ease-out);
  overflow:hidden;
}
.review-card:hover{transform:translateY(-6px);box-shadow:0 4px 14px rgba(43,24,16,.06),0 24px 60px rgba(43,24,16,.12)}
.review-mark{
  position:absolute;top:-10px;right:22px;
  font-family:'Fraunces',serif;font-size:8rem;font-weight:700;
  color:rgba(184,115,51,.10);line-height:1;pointer-events:none;
}
.review-stars{display:flex;gap:3px;position:relative}
.star{width:18px;height:18px}
.star--filled{fill:var(--caramel);color:var(--caramel)}
.review-quote{
  font-size:0.98rem;line-height:1.7;color:var(--ink-2);
  font-style:italic;margin:0;flex:1;
  font-family:'Fraunces',serif;font-weight:400;
  position:relative;
}
.review-author{display:flex;align-items:center;gap:8px;font-size:0.82rem;color:var(--muted);padding-top:12px;border-top:1px solid var(--line-soft)}
.review-name{font-weight:700;color:var(--espresso);font-style:normal;font-family:'Inter',sans-serif}
.review-sep{color:var(--line)}

.reviews-aggregate{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.reviews-stars-row{display:flex;gap:2px}
.reviews-score{font-family:'Fraunces',serif;font-size:1.12rem;font-weight:700;color:var(--espresso)}
.reviews-count{font-size:0.88rem;color:var(--muted)}

/* ── HODINY ───────────────────────────────────────── */
.hodiny-wrap{
  background:#fff;
  border-radius:var(--radius-xl);
  padding:64px;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:stretch;
  box-shadow:var(--shadow-lift);
  border:1px solid var(--line);
  position:relative;overflow:hidden;
}
.hodiny-wrap::before{
  content:"";position:absolute;top:-50%;right:-20%;
  width:60%;height:200%;
  background:radial-gradient(circle,rgba(184,115,51,.09) 0%,transparent 60%);
  pointer-events:none;
}
.hodiny-left{display:flex;flex-direction:column;gap:18px;position:relative}
.status-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 18px;
  border-radius:999px;
  font-size:0.88rem;font-weight:600;
  align-self:flex-start;
  background:rgba(138,154,123,.14);
  color:#5b6c50;
  border:1px solid rgba(138,154,123,.3);
  transition:background 300ms var(--ease-out),color 300ms var(--ease-out),border-color 300ms var(--ease-out);
  margin-top:8px;
}
.status-pill.is-closed{background:rgba(107,39,55,.1);color:#8a3a4b;border-color:rgba(107,39,55,.3)}
.status-pill .status-dot{width:9px;height:9px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px rgba(138,154,123,.2);animation:pulseDotLg 2.2s ease-out infinite}
.status-pill.is-closed .status-dot{background:var(--burgundy);box-shadow:0 0 0 3px rgba(107,39,55,.2);animation:none}
@keyframes pulseDotLg{
  0%,100%{box-shadow:0 0 0 3px rgba(138,154,123,.2)}
  50%{box-shadow:0 0 0 7px rgba(138,154,123,.05)}
}
.hodiny-btn{align-self:flex-start;margin-top:10px}

.hodiny-right{display:flex;align-items:stretch}
.hours-table{width:100%;border-collapse:collapse}
.hours-table tr{border-bottom:1px solid var(--line)}
.hours-table tr:last-child{border-bottom:0}
.hours-day{padding:18px 8px 18px 0;font-family:'Fraunces',serif;font-size:1.08rem;font-weight:500;color:var(--espresso);width:50%}
.hours-time{padding:18px 0;font-size:0.98rem;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.hours-row--closed .hours-day,.hours-row--closed .hours-time{color:var(--muted)}
.hours-table tr.is-today{background:linear-gradient(90deg,rgba(184,115,51,.10),rgba(184,115,51,0))}
.hours-table tr.is-today .hours-day{color:var(--caramel-2);font-weight:700}
.hours-table tr.is-today .hours-time{color:var(--caramel-2);font-weight:700}
.hours-table tr.is-today .hours-day::before{content:"●";color:var(--caramel);margin-right:10px;font-size:0.7em;vertical-align:middle}

/* ── KONTAKT ──────────────────────────────────────── */
.kontakt-head{text-align:center;max-width:720px;margin:0 auto 56px;display:flex;flex-direction:column;align-items:center}
.kontakt-head .section-sub{margin:0 auto}
.kontakt-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:stretch}
.kontakt-left,.kontakt-right{display:flex;flex-direction:column;gap:28px}

.kontakt-info{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}
.ki-item{display:flex;align-items:flex-start;gap:14px}
.ki-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(184,115,51,.14);color:var(--caramel-2);flex-shrink:0}
.ki-icon svg{width:18px;height:18px}
.ki-label{display:block;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.16em;color:var(--muted);font-weight:700;margin-bottom:4px}
.ki-value{font-size:0.98rem;color:var(--espresso);font-style:normal;line-height:1.5;display:block}
.ki-link{color:var(--espresso);transition:color 200ms var(--ease-out)}
.ki-link:hover{color:var(--caramel-2)}

.kontakt-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.kontakt-cta .btn{flex:1;min-width:160px}

.hours-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:28px;box-shadow:var(--shadow-soft);
  display:flex;flex-direction:column;gap:16px;
}
.hours-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.hours-card-eyebrow{
  display:block;
  font-size:0.68rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--caramel);margin-bottom:4px;
}
.hours-card-title{font-family:'Fraunces',serif;font-size:1.15rem;font-weight:600;color:var(--espresso);letter-spacing:-0.01em;margin:0}
.hours-card .hours-table tr{border-bottom:1px solid var(--line-soft)}
.hours-card .hours-day{padding:11px 8px 11px 0;font-family:'Fraunces',serif;font-size:1rem;font-weight:500;color:var(--espresso)}
.hours-card .hours-time{padding:11px 0;font-size:0.93rem;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.hours-card .hours-row--closed .hours-day,.hours-card .hours-row--closed .hours-time{color:var(--muted)}
.hours-card .hours-table tr.is-today{background:linear-gradient(90deg,rgba(184,115,51,.10),rgba(184,115,51,0))}
.hours-card .hours-table tr.is-today .hours-day,.hours-card .hours-table tr.is-today .hours-time{color:var(--caramel-2);font-weight:700}
.hours-card .hours-table tr.is-today .hours-day::before{content:"●";color:var(--caramel);margin-right:8px;font-size:0.7em;vertical-align:middle}

/* contact form overrides to brand */
.contact-form{background:#fff;padding:28px;border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:18px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cf-field{display:flex;flex-direction:column;gap:6px}
.cf-label{font-size:0.78rem;font-weight:600;color:var(--ink-2);letter-spacing:0.02em;text-transform:uppercase}
.cf-req{color:var(--burgundy);margin-left:2px}
.cf-input{
  width:100%;padding:13px 16px;
  border:1.5px solid var(--line);
  border-radius:10px;
  font-size:0.95rem;
  color:var(--espresso);
  background:var(--cream-2);
  font-family:inherit;
  transition:border-color 200ms ease,box-shadow 200ms ease,background 200ms ease;
  outline:none;
}
.cf-input::placeholder{color:var(--muted);opacity:.7}
.cf-input:focus{border-color:var(--caramel);background:#fff;box-shadow:0 0 0 4px rgba(184,115,51,.14)}
.cf-textarea{resize:vertical;min-height:110px}
.cf-gdpr{margin-top:2px}
.cf-checkbox-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:0.82rem;color:var(--muted);line-height:1.55}
.cf-checkbox-label input[type="checkbox"]{position:absolute;opacity:0;width:0;height:0}
.cf-checkmark{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--line);border-radius:4px;background:#fff;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:background 150ms ease,border-color 150ms ease}
.cf-checkbox-label input:checked + .cf-checkmark{background:var(--caramel);border-color:var(--caramel)}
.cf-checkbox-label input:checked + .cf-checkmark::after{content:'';display:block;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) translateY(-1px)}
.cf-link{color:var(--caramel-2);text-decoration:underline;text-underline-offset:2px}
.cf-submit{
  align-self:flex-start;
  padding:15px 32px;
  background:var(--caramel);color:#fff;
  font-size:0.95rem;font-weight:600;letter-spacing:0.02em;
  border-radius:10px;
  box-shadow:var(--shadow-caramel);
  transition:background 200ms ease,transform 150ms ease,box-shadow 200ms ease;
}
.cf-submit:hover{background:var(--caramel-2);transform:translateY(-1px);box-shadow:0 4px 18px rgba(184,115,51,.34),0 2px 6px rgba(0,0,0,.1)}
.cf-submit:active{transform:translateY(0)}
.cf-submit:focus-visible{outline:3px solid var(--caramel-3);outline-offset:3px}

.map-card{
  position:relative;flex:1;
  min-height:520px;
  border-radius:var(--radius-lg);overflow:hidden;
  background:var(--cream-3);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.map-card iframe{
  position:absolute;inset:0;
  width:100%;height:100%;
  border:0;display:block;
  filter:grayscale(.06) saturate(1.02);
}
.map-dir{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 20px;background:var(--espresso);color:var(--cream);
  border-radius:10px;font-size:0.92rem;font-weight:600;align-self:flex-start;
  transition:background 200ms ease,transform 200ms ease,gap 200ms ease;
  box-shadow:var(--shadow-soft);
}
.map-dir:hover{background:#3a2317;transform:translateY(-1px);gap:12px}
.map-dir svg{transition:transform 200ms ease}
.map-dir:hover svg{transform:translateX(3px)}

/* ── FOOTER ───────────────────────────────────────── */
.footer{
  background:var(--espresso);
  color:rgba(245,237,224,.75);
  padding-top:80px;position:relative;
}
.footer::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(to right,transparent,rgba(184,115,51,.5),transparent);
}
.footer-inner{
  display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:48px;
  padding-bottom:48px;
}
.foot-col{display:flex;flex-direction:column;gap:14px}
.foot-col--brand{max-width:320px}
.logo--light .logo-name{color:#fff}
.logo--light .logo-sub{color:var(--caramel-3)}
.foot-tag{color:rgba(245,237,224,.6);line-height:1.65;font-size:0.92rem}
.foot-social{display:flex;gap:10px;margin-top:4px}
.foot-social a{width:38px;height:38px;border-radius:10px;background:rgba(245,237,224,.08);border:1px solid rgba(245,237,224,.10);display:grid;place-items:center;color:rgba(245,237,224,.75);transition:background 200ms ease,color 200ms ease,transform 200ms ease,border-color 200ms ease}
.foot-social a:hover{background:var(--caramel);color:#fff;border-color:var(--caramel);transform:translateY(-2px)}
.foot-social svg{width:18px;height:18px}
.foot-h{font-family:'Inter',sans-serif;font-size:0.72rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:#fff;margin-bottom:4px}
.foot-links{display:flex;flex-direction:column;gap:10px}
.foot-links a{color:rgba(245,237,224,.7);font-size:0.93rem;transition:color 200ms ease,padding 200ms ease}
.foot-links a:hover{color:var(--caramel-3);padding-left:4px}
.foot-addr{font-style:normal;color:rgba(245,237,224,.7);line-height:1.75;font-size:0.92rem}
.foot-addr a{color:#fff;font-weight:500;transition:color 200ms ease}
.foot-addr a:hover{color:var(--caramel-3)}
.foot-hours{display:flex;flex-direction:column;gap:8px;font-size:0.9rem;color:rgba(245,237,224,.7)}
.foot-hours li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed rgba(245,237,224,.08)}
.foot-hours li:last-child{border-bottom:0}

.foot-legal{border-top:1px solid rgba(245,237,224,.08);padding:22px 0}
.foot-legal-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;color:rgba(245,237,224,.5);font-size:0.82rem}
.foot-legal a{color:rgba(245,237,224,.7);transition:color 200ms ease}
.foot-legal a:hover{color:var(--caramel-3)}

/* ── SCROLL ANIMATIONS ───────────────────────────── */
.animate-up{
  opacity:0;transform:translateY(36px);
  transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out);
  transition-delay:var(--d,0ms);
}
.animate-up.is-in{opacity:1;transform:translateY(0)}
.delay-1{--d:80ms}
.delay-2{--d:160ms}
.delay-3{--d:240ms}

/* ── UTILITY ─────────────────────────────────────── */
::selection{background:rgba(184,115,51,.3);color:var(--espresso)}
:focus-visible{outline:3px solid var(--caramel-3);outline-offset:3px;border-radius:4px}
