  :root { --ease: cubic-bezier(.22,.61,.36,1); }
  html { scroll-behavior: smooth; background: #0d0b09; overflow-x: clip; }
  body { background: #0d0b09; overflow-x: clip; max-width: 100%; }
  /* fallback pro prohlížeče bez overflow:clip — ořez na <html>, ať sticky navbar funguje */
  @supports not (overflow: clip) { html { overflow-x: hidden; } body { overflow-x: visible; } }


  /* celoobrazovkové mobilní menu */
  #mobile { opacity: 0; transition: opacity .3s var(--ease); }
  #mobile.open { opacity: 1; }
  #mobile .mobile-link { opacity: 0; transform: translateX(-14px); }
  #mobile.open .mobile-link { opacity: 1; transform: none; transition: opacity .45s var(--ease), transform .45s var(--ease); }
  #mobile.open .mobile-link:nth-child(1){transition-delay:.06s}
  #mobile.open .mobile-link:nth-child(2){transition-delay:.12s}
  #mobile.open .mobile-link:nth-child(3){transition-delay:.18s}
  #mobile.open .mobile-link:nth-child(4){transition-delay:.24s}
  #mobile.open .mobile-link:nth-child(5){transition-delay:.30s}
  #mobile.open .mobile-link:nth-child(6){transition-delay:.36s}
  @media (prefers-reduced-motion: reduce) {
    #mobile, #mobile .mobile-link { transition: none; }
  }

  ::selection { background: #e8431d; color: #fff; }

  /* layered atmosphere */
  .atmos {
    background:
      radial-gradient(1100px 620px at 78% -8%, rgba(232,163,61,.16), transparent 60%),
      radial-gradient(900px 700px at 8% 4%, rgba(232,67,29,.10), transparent 55%),
      radial-gradient(1200px 900px at 50% 120%, rgba(201,119,47,.08), transparent 60%),
      #0d0b09;
  }
  /* film grain */
  .grain::after {
    content:""; position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.05;
    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='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  .ribbon { letter-spacing:.42em; }
  .mono-eyebrow { letter-spacing:.34em; }

  .display-tight { letter-spacing:-.01em; line-height:.9; }
  .stroke-text {
    -webkit-text-stroke:1.4px rgba(244,237,225,.34); color:transparent;
  }

  /* card / surface */
  .edge { box-shadow: inset 0 1px 0 rgba(244,237,225,.05), 0 24px 60px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(57,48,31,.6); }
  .glow-ember { box-shadow: 0 0 0 1px rgba(232,67,29,.5), 0 20px 60px -24px rgba(232,67,29,.4); }

  /* buttons */
  .btn { position:relative; transition: transform .35s var(--ease), box-shadow .35s var(--ease), background-color .35s var(--ease), color .35s var(--ease); }
  .btn:active { transform: translateY(1px) scale(.99); }
  .btn-primary:hover { transform: translateY(-2px); box-shadow:0 16px 40px -14px rgba(232,67,29,.65); }
  .btn-primary:focus-visible { outline:2px solid #e8a33d; outline-offset:3px; }
  .btn-ghost:hover { background:rgba(244,237,225,.06); border-color:rgba(244,237,225,.4); }
  .btn-ghost:focus-visible { outline:2px solid #e8a33d; outline-offset:3px; }

  a, button { transition: color .25s var(--ease); }
  .navlink { position:relative; }
  .navlink::after { content:""; position:absolute; left:0; bottom:-4px; height:1.5px; width:0; background:#e8431d; transition:width .3s var(--ease); }
  .navlink:hover::after, .navlink:focus-visible::after { width:100%; }
  .navlink:focus-visible { outline:none; color:#f4ede1; }

  /* marquee */
  @keyframes marquee { from{transform:translateX(0)} to{transform:translateX(calc(-1 * var(--mq-shift, 50%)))} }
  .marquee-track { animation: marquee var(--mq-dur, 28s) linear infinite; will-change: transform; }

  /* reveal on load + scroll */
  .reveal { opacity:0; transform: translateY(22px); }
  .reveal.in { opacity:1; transform:none; transition: opacity .9s var(--ease), transform .9s var(--ease); }
  [data-d="1"]{transition-delay:.08s}[data-d="2"]{transition-delay:.16s}
  [data-d="3"]{transition-delay:.24s}[data-d="4"]{transition-delay:.32s}
  [data-d="5"]{transition-delay:.40s}

  .lift { transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease); }
  .lift:hover { transform: translateY(-5px); }

  .img-treat { filter: saturate(.92) contrast(1.04); }

  .tap-card:hover .tap-num { color:#e8431d; }
  .gal:hover img { transform: scale(1.05); }
  .gal img { transition: transform .8s var(--ease); }

  .gal-item:focus-visible { outline:2px solid #e8a33d; outline-offset:3px; }
  .zoom-badge {
    position:absolute; top:14px; right:14px; width:38px; height:38px; display:grid; place-items:center;
    border-radius:3px; background:rgba(13,11,9,.6); border:1px solid rgba(244,237,225,.18); color:#f4ede1;
    opacity:0; transform: translateY(-4px) scale(.9); transition: opacity .35s var(--ease), transform .35s var(--ease), background-color .35s var(--ease);
  }
  .zoom-badge svg { width:18px; height:18px; }
  .gal-item:hover .zoom-badge, .gal-item:focus-visible .zoom-badge { opacity:1; transform:none; }
  .gal-item:hover .zoom-badge { background:#e8431d; color:#0d0b09; border-color:#e8431d; }

  /* lightbox */
  #lightbox.open { display:flex; }
  #lightbox .lb-backdrop, #lightbox .lb-figure { opacity:0; transition: opacity .3s var(--ease); }
  #lightbox .lb-figure { transform: scale(.97); transition: opacity .3s var(--ease), transform .3s var(--ease); }
  #lightbox.show .lb-backdrop { opacity:1; }
  #lightbox.show .lb-figure { opacity:1; transform:none; }
  /* rámeček se přizpůsobí rozměru fotky; za ní jemná rozmazaná záře ze stejného snímku */
  #lightbox .lb-stage { position:relative; display:inline-flex; }
  #lightbox .lb-img { position:relative; z-index:1; display:block; }
  #lightbox .lb-glow {
    position:absolute; inset:-7%; z-index:0; pointer-events:none;
    background-size:cover; background-position:center;
    filter: blur(48px) saturate(1.15); opacity:.42; border-radius:28px; transform:scale(1.04);
  }
  @media (prefers-reduced-motion: reduce) {
    #lightbox .lb-backdrop, #lightbox .lb-figure { transition:none; }
  }

  /* modal „rezervace odeslána" */
  #resModal.open { display:flex; }
  #resModal .resm-backdrop, #resModal .resm-card { opacity:0; transition: opacity .3s var(--ease); }
  #resModal .resm-card { transform: translateY(12px) scale(.98); transition: opacity .3s var(--ease), transform .3s var(--ease); }
  #resModal.show .resm-backdrop { opacity:1; }
  #resModal.show .resm-card { opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce) { #resModal .resm-backdrop, #resModal .resm-card { transition:none; } }

  /* form fields */
  .field { transition: border-color .25s var(--ease), background-color .25s var(--ease); }
  .field:focus { outline:none; border-color:#e8431d; background:rgba(232,67,29,.05); }
  select.field option { background:#15110d; }

  /* sjednocení výšky datum/čas pole (iOS Safari ho jinak renderuje vyšší) */
  input[type="datetime-local"].field {
    -webkit-appearance: none; appearance: none; height: 46px; line-height: 1.2;
  }
  input[type="datetime-local"]::-webkit-date-and-time-value { margin: 0; text-align: left; }
  input[type="datetime-local"]::-webkit-calendar-picker-indicator { opacity: .55; }

  .today-row { background:linear-gradient(90deg, rgba(232,67,29,.14), rgba(232,67,29,0)); }

  /* teaser „Z našich akcí" jako plynulý swipe carousel na mobilu (na sm+ zůstává mřížka) */
  @media (max-width: 639px) {
    .teaser-carousel {
      display: flex; gap: .6rem; overflow-x: auto; scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch; scrollbar-width: none;
      margin-inline: -1rem; padding-inline: 1rem; /* aby první/poslední mohly být zarovnané k okraji */
    }
    .teaser-carousel::-webkit-scrollbar { display: none; }
    .teaser-carousel > * { flex: 0 0 80%; scroll-snap-align: center; }
  }

  @media (prefers-reduced-motion: reduce) {
    .marquee-track{animation:none}
    .reveal{opacity:1!important;transform:none!important}
    html{scroll-behavior:auto}
  }
