/*
Theme Name: Topper Club
Theme URI: https://topper.ekora.sk
Author: Topper Club
Author URI: https://topper.ekora.sk
Description: Vlastná WordPress téma pre Topper Club — kaviareň, bar, reštaurácia a VIP catering v Pezinku. Postavená s dôrazom na technické SEO, rýchlosť a moderný dizajn.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: topperclub
*/

* { margin:0; padding:0; box-sizing:border-box; }

:root{
    --red:#e11c22;
    --red-dark:#a4141a;
    --black:#0d0d0d;
    --black-soft:#1a1a1a;
    --cream:#f7f5f1;
    --white:#ffffff;
    --gray:#5c5c5c;
    --gray-light:#e9e6e0;
    --display:'Oswald', sans-serif;
    --sans:'Inter', sans-serif;
}

html{ scroll-behavior:smooth; }

body{
    font-family:var(--sans);
    color:var(--gray);
    background:var(--cream);
    overflow-x:hidden;
    line-height:1.6;
}

a{ color:inherit; }
img{ max-width:100%; height:auto; display:block; }
::selection{ background:var(--red); color:var(--white); }

/* Accessibility: skip link */
.skip-link{
    position:absolute; left:-9999px; top:0; z-index:100000;
    background:var(--red); color:var(--white); padding:1rem 1.5rem; text-decoration:none;
}
.skip-link:focus{ left:1rem; top:1rem; }
.screen-reader-text{ }

/* ===== CUSTOM CURSOR ===== */
@media (hover:hover) and (pointer:fine){
    body{ cursor:none; }
    a, button, .cursor-hover{ cursor:none; }
}
.cursor-dot, .cursor-ring{
    position:fixed; top:0; left:0; pointer-events:none;
    border-radius:50%; z-index:9999; transform:translate(-50%,-50%);
    display:none;
}
@media (hover:hover) and (pointer:fine){
    .cursor-dot, .cursor-ring{ display:block; }
}
.cursor-dot{ width:6px; height:6px; background:var(--red); }
.cursor-ring{
    width:36px; height:36px; border:1.5px solid rgba(225,28,34,.5);
    transition:width .25s ease, height .25s ease, border-color .25s ease, background .25s ease;
}
.cursor-ring.grow{ width:64px; height:64px; background:rgba(225,28,34,.08); border-color:var(--red); }

/* ===== GRAIN OVERLAY ===== */
.grain{
    position:fixed; inset:0; z-index:9998; pointer-events:none;
    opacity:.035; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ===== SCROLL PROGRESS ===== */
.scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:100%;
    background:var(--red); transform:scaleX(0); transform-origin:left; z-index:10001;
}

/* ===== NAV ===== */
nav{
    position:fixed; top:0; width:100%;
    background:rgba(13,13,13,.9);
    backdrop-filter:blur(14px);
    padding:1.1rem 3rem;
    display:flex; justify-content:space-between; align-items:center;
    z-index:1100;
    transition:padding .3s ease, background .3s ease;
    border-bottom:1px solid rgba(255,255,255,.06);
}
nav.scrolled{ padding:.7rem 3rem; background:rgba(13,13,13,.97); }

.logo{ height:44px; transition:transform .3s ease; z-index:1101; }
.logo img{ height:100%; width:auto; }
.logo:hover{ transform:scale(1.04); }

nav ul.nav-links{ display:flex; list-style:none; gap:2.3rem; align-items:center; }
nav a{
    color:var(--white); text-decoration:none;
    font-size:.82rem; font-weight:500;
    letter-spacing:.05em; text-transform:uppercase;
    position:relative; padding-bottom:4px;
}
nav a::after{
    content:''; position:absolute; bottom:0; left:0; width:0; height:1px;
    background:var(--red); transition:width .3s ease;
}
nav a:hover::after{ width:100%; }

.nav-cta, .nav-links .nav-cta a{
    background:var(--red); color:var(--white) !important;
    padding:.6rem 1.4rem; border-radius:2px; font-size:.78rem !important;
}
.nav-cta::after{ display:none; }
.nav-cta:hover{ background:var(--red-dark); }

.nav-menu-link, .nav-links .nav-menu-link a{ color:var(--red) !important; font-weight:700 !important; }
.nav-menu-link::after{ background:var(--red); }

.nav-quick-menu{
    display:none; background:var(--red); color:var(--white);
    font-family:var(--sans); font-size:.78rem; font-weight:700;
    letter-spacing:.04em; text-transform:uppercase;
    padding:.7rem 1.3rem; border-radius:4px; text-decoration:none;
    white-space:nowrap; margin-left:auto; margin-right:1rem;
    transition:background .25s ease, transform .25s ease;
}
.nav-quick-menu::after{ display:none; }
.nav-quick-menu:hover{ background:var(--red-dark); transform:translateY(-1px); }

.hamburger{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    width:34px; height:34px; background:none; border:none; cursor:pointer; z-index:1101;
}
.hamburger span{
    width:100%; height:2px; background:var(--white);
    transition:transform .3s ease, opacity .3s ease;
}
.hamburger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.nav-backdrop{
    position:fixed; inset:0; background:rgba(0,0,0,.55);
    opacity:0; pointer-events:none; transition:opacity .35s ease; z-index:1050;
}
.nav-backdrop.open{ opacity:1; pointer-events:auto; }

/* ===== BUTTONS ===== */
.btn{
    display:inline-flex; align-items:center; gap:.6rem;
    padding:1rem 2.4rem;
    font-family:var(--sans); font-size:.82rem; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase;
    border:1px solid transparent; cursor:pointer;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
    position:relative; overflow:hidden;
}
.btn-primary{ background:var(--red); color:var(--white); }
.btn-primary:hover{ background:var(--red-dark); box-shadow:0 14px 30px rgba(225,28,34,.35); }
.btn-outline{ background:transparent; color:var(--white); border-color:rgba(255,255,255,.5); }
.btn-outline:hover{ background:var(--white); color:var(--black); border-color:var(--white); }
.btn-outline-dark{ background:transparent; color:var(--black); border-color:var(--black); }
.btn-outline-dark:hover{ background:var(--black); color:var(--white); }
.btn-dark{ background:var(--black); color:var(--white); }
.btn-dark:hover{ background:var(--red); box-shadow:0 14px 30px rgba(225,28,34,.3); }

/* ===== SECTION SHARED ===== */
.container{ max-width:1280px; margin:0 auto; padding:0 3rem; }
.eyebrow{
    display:block; font-size:.78rem; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase;
    color:var(--red); margin-bottom:1rem;
}
.section-heading{
    font-family:var(--display); font-weight:600; text-transform:uppercase;
    font-size:clamp(2.1rem,3.6vw,3.1rem);
    line-height:1.08; letter-spacing:.005em; color:var(--black);
    margin-bottom:1.2rem;
}
.section-heading em{ font-style:normal; color:var(--red); }
.section-intro{ max-width:620px; }

.reveal{
    opacity:0; transform:translateY(40px);
    transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal.d1{ transition-delay:.1s; }
.reveal.d2{ transition-delay:.2s; }
.reveal.d3{ transition-delay:.3s; }
.reveal.d4{ transition-delay:.4s; }
.reveal.d5{ transition-delay:.5s; }

/* ===== HERO ===== */
.hero{ height:100vh; position:relative; overflow:hidden; display:flex; align-items:flex-end; }
.slider-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.1s ease; }
.slider-slide.active{ opacity:1; z-index:1; }
.slide-bg{ position:absolute; inset:0; overflow:hidden; }
.slide-bg img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.0); }
.slider-slide.active .slide-bg img{ animation:kenburns 8s ease-out forwards; }
@keyframes kenburns{ from{ transform:scale(1.0); } to{ transform:scale(1.1); } }
.slide-scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(13,13,13,.55) 0%, rgba(13,13,13,.25) 40%, rgba(13,13,13,.85) 100%);
}
.hero-spotlight{
    position:absolute; inset:0; z-index:2; pointer-events:none;
    background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%), rgba(225,28,34,.16), transparent 60%);
}

.hero-inner{ position:relative; z-index:3; width:100%; padding:0 3rem 6.5rem; color:var(--white); }
.hero-eyebrow{
    font-size:.8rem; letter-spacing:.3em; text-transform:uppercase;
    color:rgba(255,255,255,.75); margin-bottom:1.4rem;
    display:flex; align-items:center; gap:.8rem;
}
.hero-eyebrow::before{ content:''; width:36px; height:1px; background:var(--red); }

.hero-title{
    font-family:var(--display); font-weight:700; text-transform:uppercase;
    font-size:clamp(2.8rem,7.2vw,5.8rem);
    line-height:1.02; letter-spacing:.005em;
    margin-bottom:1.6rem; max-width:900px;
}
.hero-title .reveal-word{
    display:inline-block; opacity:0;
    animation:wordUp .9s cubic-bezier(.16,1,.3,1) forwards;
    margin-right:.28em;
}
.hero-title .accent{ color:var(--red); }
@keyframes wordUp{
    from{ opacity:0; transform:translateY(46px) rotate(2deg); }
    to{ opacity:1; transform:translateY(0) rotate(0); }
}

.hero-subtitle{ font-size:1.05rem; font-weight:300; max-width:460px; margin-bottom:2.4rem; opacity:.85; }
.hero-cta{ display:flex; gap:1.1rem; flex-wrap:wrap; margin-bottom:3rem; }
.hero-controls{ display:flex; align-items:center; gap:1.4rem; }
.slider-dot{ width:32px; height:2px; background:rgba(255,255,255,.35); cursor:pointer; position:relative; border:none; padding:0; }
.slider-dot.active::after{
    content:''; position:absolute; inset:0; background:var(--red);
    animation:dotfill 5s linear forwards;
}
@keyframes dotfill{ from{ width:0; } to{ width:100%; } }

.scroll-cue{
    position:absolute; right:3rem; bottom:2.2rem; z-index:3;
    display:flex; flex-direction:column; align-items:center; gap:.6rem;
    color:rgba(255,255,255,.7); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
}
.scroll-cue-line{ width:1px; height:46px; background:rgba(255,255,255,.3); position:relative; overflow:hidden; }
.scroll-cue-line::after{
    content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--red);
    animation:scrollcue 2s ease-in-out infinite;
}
@keyframes scrollcue{ 0%{ top:-100%; } 50%{ top:0; } 100%{ top:100%; } }

/* ===== MARQUEE ===== */
.marquee-strip{
    background:var(--black); overflow:hidden; padding:1.1rem 0;
    border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08);
}
.marquee-track{ display:flex; width:max-content; animation:marquee 26s linear infinite; list-style:none; }
.marquee-track li{
    font-family:var(--display); font-weight:500; text-transform:uppercase; letter-spacing:.04em;
    font-size:1rem; color:rgba(255,255,255,.55);
    padding:0 2.2rem; white-space:nowrap; display:flex; align-items:center; gap:2.2rem;
}
.marquee-track li::after{ content:'✦'; color:var(--red); font-size:.7rem; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ===== LOCATIONS QUICK PICK ===== */
.locations-pick{ background:var(--cream); padding:7rem 0 6rem; }
.locations-pick .container > .top{
    display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:2rem;
    margin-bottom:3.5rem;
}
.pick-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.pick-card{ position:relative; height:480px; overflow:hidden; border-radius:4px; display:block; text-decoration:none; }
.pick-card-bg{ position:absolute; inset:0; overflow:hidden; }
.pick-card-bg img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    transform:scale(1.06); transition:transform .8s cubic-bezier(.16,1,.3,1);
}
.pick-card:hover .pick-card-bg img{ transform:scale(1.16); }
.pick-card::before{
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(13,13,13,.05) 0%, rgba(13,13,13,.85) 100%);
    transition:background .4s ease;
}
.pick-card:hover::before{ background:linear-gradient(180deg, rgba(225,28,34,.15) 0%, rgba(13,13,13,.9) 100%); }
.pick-card-content{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:2.2rem; color:var(--white); }
.pick-tag{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--red); margin-bottom:.6rem; display:block; }
.pick-title{ font-family:var(--display); font-size:1.7rem; font-weight:600; text-transform:uppercase; margin-bottom:.6rem; }
.pick-desc{ font-size:.88rem; opacity:.8; max-width:280px; margin-bottom:1.2rem; }
.pick-link{
    display:inline-flex; align-items:center; gap:.5rem;
    font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600;
    color:var(--white); text-decoration:none;
}
.pick-link svg{ width:14px; height:14px; transition:transform .3s ease; }
.pick-card:hover .pick-link svg{ transform:translateX(6px); }

/* ===== ABOUT ===== */
.about{ background:var(--white); padding:8rem 0; position:relative; overflow:hidden; }
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-media{ position:relative; }
.about-media-frame{ position:absolute; top:-24px; left:-24px; right:24px; bottom:24px; border:1.5px solid var(--red); z-index:0; border-radius:4px; }
.about-media img{ position:relative; z-index:1; width:100%; height:520px; object-fit:cover; border-radius:4px; }
.about-copy p{ font-size:1.02rem; margin-bottom:1.4rem; color:var(--gray); }
.about-copy strong{ color:var(--black); font-weight:600; }
.about-stats{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:2.6rem;
    padding-top:2.4rem; border-top:1px solid var(--gray-light);
}
.stat-num{ font-family:var(--display); font-size:2.2rem; font-weight:700; color:var(--black); display:block; line-height:1; }
.stat-num .suffix{ color:var(--red); }
.stat-lbl{ font-size:.78rem; color:var(--gray); margin-top:.5rem; letter-spacing:.02em; }

/* ===== ATMOSPHERE BENTO ===== */
.atmosphere{ background:var(--cream); padding:7rem 0; }
.bento{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; gap:1.2rem; margin-top:3.5rem; }
.bento-card{
    background:var(--white); border-radius:4px; padding:1.8rem;
    display:flex; flex-direction:column; justify-content:space-between;
    border:1px solid var(--gray-light);
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease, background .35s ease;
    position:relative; overflow:hidden;
}
.bento-card:hover{ transform:translateY(-6px); box-shadow:0 24px 50px rgba(13,13,13,.08); border-color:transparent; }
.bento-card.wide{ grid-column:span 2; }
.bento-card.tall{ grid-row:span 2; }
.bento-card.dark{ background:var(--black); border-color:var(--black); }
.bento-card.dark .bento-title, .bento-card.dark .bento-icon svg{ color:var(--white); fill:var(--white); }
.bento-card.dark .bento-desc{ color:rgba(255,255,255,.6); }

.bento-icon{ width:34px; height:34px; }
.bento-icon svg{ width:100%; height:100%; fill:var(--red); }
.bento-title{ font-family:var(--display); font-size:1.05rem; font-weight:600; text-transform:uppercase; color:var(--black); margin-top:1rem; }
.bento-desc{ font-size:.85rem; color:var(--gray); margin-top:.4rem; }

/* ===== CATERING / PRESTIGE ===== */
.prestige{ background:var(--black); color:var(--white); padding:7.5rem 0 6rem; position:relative; overflow:hidden; }
.prestige-marquee{
    overflow:hidden; white-space:nowrap; margin:3.5rem 0 4.5rem;
    border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1);
    padding:1.6rem 0;
}
.prestige-marquee-track{ display:inline-flex; animation:marquee 30s linear infinite; list-style:none; }
.prestige-marquee-track li{
    font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.02em;
    font-size:clamp(1.6rem,2.8vw,2.3rem);
    -webkit-text-stroke:1px rgba(255,255,255,.5);
    color:transparent;
    padding:0 2.2rem; white-space:nowrap;
}
.prestige-marquee-track li.filled{ -webkit-text-stroke:0; color:var(--red); }
.prestige-header{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:2rem; }
.prestige .section-heading{ color:var(--white); }

.case-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.case-card{ position:relative; overflow:hidden; border-radius:4px; height:360px; }
.case-img{ position:absolute; inset:0; overflow:hidden; }
.case-img img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    transform:scale(1.05); transition:transform .7s cubic-bezier(.16,1,.3,1), filter .5s ease;
    filter:grayscale(55%);
}
.case-card:hover .case-img img{ transform:scale(1.15); filter:grayscale(0%); }
.case-card::before{
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, transparent 30%, rgba(13,13,13,.95) 100%);
}
.case-content{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:1.5rem; }
.case-year{ font-size:.72rem; letter-spacing:.2em; color:var(--red); text-transform:uppercase; }
.case-title{ font-family:var(--display); font-size:1.2rem; font-weight:600; text-transform:uppercase; margin:.4rem 0; }
.case-desc{ font-size:.82rem; opacity:.7; }

/* ===== GALLERY ===== */
.gallery{ background:var(--cream); padding:6rem 0; }
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:160px; gap:.8rem; margin-top:2.5rem; }
.gallery-item{ position:relative; overflow:hidden; border-radius:4px; }
.gallery-item.big{ grid-column:span 2; grid-row:span 2; }
.gallery-item img{ width:100%; height:100%; object-fit:cover; transform:scale(1.05); filter:grayscale(30%);
    transition:transform .6s cubic-bezier(.16,1,.3,1), filter .4s ease; }
.gallery-item:hover img{ transform:scale(1.15); filter:grayscale(0%); }

/* ===== PORTFOLIO LIST (catering referencie) ===== */
.portfolio{ background:var(--cream); padding:6rem 0; }
.portfolio-list{ margin-top:2.5rem; list-style:none; }
.portfolio-row{ display:flex; gap:1.6rem; align-items:baseline; padding:1.4rem 0; border-top:1px solid var(--gray-light); }
.portfolio-list > .portfolio-row:last-child{ border-bottom:1px solid var(--gray-light); }
.portfolio-num{ font-family:var(--display); color:var(--red); font-weight:600; font-size:.95rem; flex-shrink:0; width:28px; }
.portfolio-text strong{ color:var(--black); font-family:var(--display); text-transform:uppercase; letter-spacing:.01em; font-weight:600; }
.portfolio-text span{ font-size:.92rem; color:var(--gray); }

/* ===== SERVICES ===== */
.services{ background:var(--white); padding:7rem 0; }
.service-row{ border-top:1px solid var(--gray-light); }
.service-row:last-child{ border-bottom:1px solid var(--gray-light); }
.service-item{
    display:grid; grid-template-columns:80px 1fr 1fr 40px;
    align-items:center; gap:2rem; padding:2.1rem 0;
    transition:padding-left .3s ease, background .3s ease; position:relative;
}
.service-item::before{
    content:''; position:absolute; left:0; top:0; bottom:0; width:0; background:var(--red); transition:width .3s ease;
}
.service-item:hover{ padding-left:1.6rem; background:var(--cream); }
.service-item:hover::before{ width:4px; }
.service-index{ font-family:var(--display); font-size:1.1rem; color:var(--red); font-weight:600; }
.service-name{ font-family:var(--display); font-size:1.35rem; font-weight:600; text-transform:uppercase; color:var(--black); }
.service-text{ font-size:.9rem; color:var(--gray); }
.service-arrow{ width:22px; height:22px; transition:transform .3s ease; justify-self:end; }
.service-arrow svg{ width:100%; height:100%; fill:var(--black); }
.service-item:hover .service-arrow{ transform:rotate(45deg); }
.service-item:hover .service-arrow svg{ fill:var(--red); }

/* ===== CONTACT ===== */
.contact{ background:var(--black); color:var(--white); padding:7.5rem 0; }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:5rem; }
.contact .section-heading{ color:var(--white); }
.form-group{ margin-bottom:1.5rem; }
.form-group label{
    display:block; font-size:.72rem; letter-spacing:.15em; text-transform:uppercase;
    margin-bottom:.6rem; color:rgba(255,255,255,.6);
}
.form-group input, .form-group textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.25);
    padding:.7rem 0; color:var(--white); font-family:var(--sans); font-size:1rem;
    transition:border-color .3s ease;
}
.form-group input:focus, .form-group textarea:focus{ outline:none; border-color:var(--red); }
.form-group textarea{ resize:vertical; min-height:90px; }

.contact-locations{ display:flex; flex-direction:column; gap:1.6rem; }
.contact-loc{ border:1px solid rgba(255,255,255,.12); border-radius:4px; padding:1.6rem; transition:border-color .3s ease, background .3s ease; }
.contact-loc:hover{ border-color:var(--red); background:rgba(225,28,34,.05); }
.contact-loc h3{ font-family:var(--display); font-size:1.1rem; font-weight:600; text-transform:uppercase; margin-bottom:.5rem; }
.contact-loc p{ font-size:.85rem; color:rgba(255,255,255,.6); margin-bottom:.3rem; }
.contact-loc a{ color:var(--red); text-decoration:none; font-weight:600; }

.contact-side{ display:flex; flex-direction:column; justify-content:center; gap:1.6rem; }
.contact-side h3{ font-family:var(--display); text-transform:uppercase; font-size:1.3rem; margin-bottom:.6rem; }
.contact-side p{ color:rgba(255,255,255,.65); font-size:.95rem; margin-bottom:.4rem; }
.contact-side a{ color:var(--red); font-weight:600; text-decoration:none; font-size:1.1rem; }

/* ===== NEWSLETTER ===== */
.newsletter{ background:var(--red); padding:4.5rem 0; text-align:center; color:var(--white); position:relative; overflow:hidden; }
.newsletter h2{ font-family:var(--display); font-size:1.9rem; font-weight:600; text-transform:uppercase; margin-bottom:.6rem; }
.newsletter p{ opacity:.9; margin-bottom:1.8rem; font-size:.92rem; }
.newsletter-form{ display:flex; gap:.6rem; max-width:440px; margin:0 auto; }
.newsletter-form input{ flex:1; padding:1rem 1.2rem; border:none; border-radius:2px; font-size:.9rem; font-family:var(--sans); }
.newsletter-form input:focus{ outline:2px solid var(--black); }
.newsletter-form button{
    padding:1rem 1.8rem; background:var(--black); color:var(--white); border:none; border-radius:2px;
    font-weight:600; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
    transition:background .3s ease;
}
.newsletter-form button:hover{ background:#000; }

/* ===== PAGE HEADER (podstránky) ===== */
.page-header{ height:56vh; min-height:420px; position:relative; overflow:hidden; display:flex; align-items:flex-end; margin-top:0; }
.page-header-bg{ position:absolute; inset:0; overflow:hidden; }
.page-header-bg img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:kenburns 9s ease-out forwards; }
.page-header-scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,13,13,.6) 0%, rgba(13,13,13,.35) 40%, rgba(13,13,13,.92) 100%); }
.page-header-inner{ position:relative; z-index:2; width:100%; padding:0 3rem 3.5rem; color:var(--white); max-width:1280px; margin:0 auto; }
.breadcrumb{ font-size:.78rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.65); margin-bottom:1.2rem; }
.breadcrumb a{ text-decoration:none; color:rgba(255,255,255,.65); }
.breadcrumb a:hover{ color:var(--red); }
.page-title{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(2.4rem,6vw,4.4rem); line-height:1; margin-bottom:.9rem; }
.page-title em{ font-style:normal; color:var(--red); }
.page-subtitle{ font-size:1rem; font-weight:300; max-width:540px; opacity:.85; }

/* ===== INTRO (generic content block) ===== */
.intro{ background:var(--white); padding:6rem 0; }
.intro-grid{ display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.intro-copy p{ font-size:1.02rem; margin-bottom:1.3rem; }
.intro-copy strong{ color:var(--black); }
.intro-media img{ width:100%; height:420px; object-fit:cover; border-radius:4px; }

/* ===== ORDER BAR (denné menu) ===== */
.order-bar{ background:var(--black); color:var(--white); padding:1.6rem 0; }
.order-bar .container{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.order-bar p{ font-size:.9rem; color:rgba(255,255,255,.8); }
.order-bar strong{ color:var(--red); }
.order-bar a{ color:var(--white); text-decoration:none; font-weight:600; border-bottom:1px solid var(--red); }

/* ===== MENU SECTION (denné menu) ===== */
.menu-section{ background:var(--white); padding:5rem 0 6rem; }
.day-tabs{ display:flex; gap:.6rem; flex-wrap:wrap; margin:2.5rem 0 3rem; border-bottom:1px solid var(--gray-light); padding-bottom:1.5rem; }
.day-tab{ padding:.7rem 1.4rem; background:var(--cream); border:1px solid var(--gray-light); border-radius:2px;
    font-family:var(--display); text-transform:uppercase; font-size:.85rem; letter-spacing:.03em; color:var(--gray);
    cursor:pointer; transition:all .25s ease; }
.day-tab:hover{ border-color:var(--red); color:var(--black); }
.day-tab.active{ background:var(--red); color:var(--white); border-color:var(--red); }
.day-panel{ display:none; }
.day-panel.active{ display:block; animation:fadein .5s ease; }
@keyframes fadein{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }
.day-date{ font-family:var(--display); font-size:1.1rem; text-transform:uppercase; color:var(--black); margin-bottom:2rem; letter-spacing:.03em; }
.day-date::before{ content:'— '; color:var(--red); }
.menu-category{ margin-bottom:2.2rem; }
.menu-category h4{ font-family:var(--display); font-size:.95rem; text-transform:uppercase; letter-spacing:.1em; color:var(--red); margin-bottom:.9rem; }
.menu-row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.6rem 0; border-bottom:1px dashed var(--gray-light); }
.menu-row-left{ display:flex; gap:.8rem; align-items:baseline; flex:1; }
.menu-weight{ font-size:.72rem; color:var(--gray); flex-shrink:0; width:52px; }
.menu-name{ font-size:.94rem; color:var(--black-soft); }
.menu-allergen{ font-size:.65rem; color:var(--gray); vertical-align:super; }
.menu-price{ font-family:var(--display); font-weight:600; color:var(--black); white-space:nowrap; }
.portion-note{ font-size:.82rem; color:var(--gray); margin-top:2rem; font-style:italic; }
.allergen-legend{ background:var(--cream); padding:4rem 0; }
.allergen-legend h3{ font-family:var(--display); text-transform:uppercase; font-size:1.2rem; color:var(--black); margin-bottom:1.5rem; }
.allergen-list{ columns:2; column-gap:3rem; font-size:.85rem; color:var(--gray); list-style:none; }
.allergen-list li{ margin-bottom:.5rem; break-inside:avoid; }
.allergen-list b{ color:var(--red); margin-right:.4rem; }

/* ===== FOOTER ===== */
footer{ background:var(--black); color:var(--white); padding:5rem 0 2rem; }
.footer-top{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:2rem;
    padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:2rem;
}
.footer-logo{ height:52px; } .footer-logo img{ height:100%; width:auto; }
.footer-links{ display:flex; gap:2.2rem; flex-wrap:wrap; list-style:none; }
.footer-links a{ text-decoration:none; font-size:.85rem; color:rgba(255,255,255,.7); transition:color .3s ease; }
.footer-links a:hover{ color:var(--red); }
.footer-widgets{ padding-bottom:2rem; color:rgba(255,255,255,.6); font-size:.85rem; }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-size:.78rem; color:rgba(255,255,255,.4); }

/* ===== SCROLLBAR ACCENT ===== */
::-webkit-scrollbar{ width:8px; }
::-webkit-scrollbar-track{ background:var(--cream); }
::-webkit-scrollbar-thumb{ background:var(--red); border-radius:4px; }

/* ===== RESPONSIVE ===== */
@media (max-width:1024px){
    .pick-grid, .case-grid{ grid-template-columns:1fr 1fr; }
    .bento{ grid-template-columns:repeat(2,1fr); }
    .bento-card.wide{ grid-column:span 2; }
    .about-grid, .contact-grid, .intro-grid{ grid-template-columns:1fr; gap:3rem; }
    .about-stats{ grid-template-columns:repeat(2,1fr); }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); }
    .gallery-item.big{ grid-column:span 2; grid-row:span 1; }

    .hamburger{ display:flex; }
    .nav-quick-menu{ display:inline-flex; align-items:center; }
    nav ul.nav-links{
        position:fixed; top:0; right:-100%; height:100vh; width:min(340px,82vw);
        background:var(--black); flex-direction:column; justify-content:center; align-items:flex-start;
        gap:1.7rem; padding:2rem 2.6rem;
        transition:right .4s cubic-bezier(.16,1,.3,1);
        box-shadow:-10px 0 40px rgba(0,0,0,.4);
    }
    nav ul.nav-links.open{ right:0; }
    nav ul.nav-links li{ width:100%; }
    nav ul.nav-links a{ font-size:1rem; }
    .nav-cta{ display:inline-block; margin-top:.5rem; }
    .allergen-list{ columns:1; }
}
@media (max-width:768px){
    nav{ padding:1rem 1.4rem; }
    .container{ padding:0 1.4rem; }
    .hero-inner, .page-header-inner{ padding:0 1.4rem 3rem; }
    .pick-grid, .case-grid{ grid-template-columns:1fr; }
    .bento{ grid-template-columns:1fr; grid-auto-rows:auto; }
    .bento-card.wide, .bento-card.tall{ grid-column:span 1; grid-row:span 1; }
    .gallery-grid{ grid-template-columns:1fr 1fr; }
    .service-item{ grid-template-columns:40px 1fr; row-gap:.5rem; }
    .service-text, .service-arrow{ display:none; }
    .scroll-cue{ display:none; }
    .footer-top{ flex-direction:column; align-items:flex-start; }
    .order-bar .container{ padding:0 1.4rem; }
    .menu-weight{ display:none; }
}

/* Fade-in for menu category default state without JS */
.reveal.in-view{ opacity:1; transform:none; }
