:root{--green:#003220;--cream:#EFDFBB;--copper:#B87333;--red:#95190C;--ink:#10271f;--paper:#f7f0df;--white:#fffdf8;--muted:#756e61;--line:rgba(0,50,32,.16);--shadow:0 24px 60px rgba(17,32,25,.14);--radius:28px;--container:min(1180px,calc(100% - 40px))}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Calibri,'Segoe UI',Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6}body.modal-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit}.container{width:var(--container);margin-inline:auto}.skip-link{position:fixed;left:12px;top:-80px;background:var(--cream);color:var(--green);padding:10px 14px;border-radius:8px;z-index:9999}.skip-link:focus{top:12px}.site-header{position:fixed;inset:0 0 auto;z-index:50;background:linear-gradient(to bottom,rgba(1,25,16,.9),rgba(1,25,16,.42),transparent);transition:.25s}.site-header.scrolled{background:rgba(0,50,32,.96);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(239,223,187,.12)}.nav-wrap{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--cream);font-weight:900;letter-spacing:.02em}.brand img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid rgba(239,223,187,.65)}.main-nav{display:flex;align-items:center;gap:22px;color:var(--white)}.main-nav>a:not(.btn){text-decoration:none;font-weight:650;font-size:.94rem;opacity:.88}.main-nav>a:hover{opacity:1}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{display:block;width:26px;height:2px;background:var(--cream);margin:5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 20px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-copper{background:var(--copper);color:#1e130b;box-shadow:0 10px 24px rgba(201,133,46,.23)}.btn-cream{background:var(--cream);color:var(--green)}.btn-ghost{border:1px solid rgba(239,223,187,.35);background:rgba(239,223,187,.06);color:var(--cream)}.btn-ghost-light{border:1px solid rgba(239,223,187,.35);background:transparent;color:var(--cream)}.btn-large{padding:16px 28px}.hero{position:relative;min-height:94vh;display:grid;align-items:end;background:var(--green);overflow:hidden}.hero-media{position:absolute;inset:0;background:url('https://cdn.website.dish.co/media/9c/f5/825544.jpg') center/cover no-repeat;transform:scale(1.02)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,32,20,.97) 0%,rgba(0,40,24,.78) 42%,rgba(0,25,14,.34) 74%,rgba(0,20,11,.48) 100%),linear-gradient(0deg,rgba(0,22,13,.92),transparent 44%)}.hero-content{position:relative;z-index:2;padding:190px 0 64px;color:var(--white)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:900;font-size:.70rem;color:var(--copper);margin:0 0 18px}.hero h1,.section h2{font-family:Georgia,"Times New Roman",serif;line-height:.98;letter-spacing:-.045em;margin:0}.hero h1{font-size:clamp(4.5rem,10vw,9rem);max-width:900px}.hero h1 em{color:var(--cream);font-weight:400}.hero-copy{font-size:clamp(1.05rem,2vw,1.3rem);max-width:650px;color:rgba(255,253,248,.82);margin:28px 0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-meta{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:14px;margin-top:68px}.hero-meta span{border-left:1px solid rgba(239,223,187,.3);padding-left:18px}.hero-meta b,.hero-meta small{display:block}.hero-meta small{opacity:.62;margin-top:2px}.section{padding:112px 0}.split-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:78px;align-items:center}.section h2{font-size:clamp(3rem,6vw,6rem);color:var(--green)}.section h2 span{color:var(--copper)}.section-copy>p:not(.eyebrow){font-size:1.08rem;color:#4b554e;max-width:650px}.text-link{display:inline-flex;gap:12px;font-weight:900;text-decoration:none;color:var(--green);margin-top:12px}.image-card{position:relative;margin:0}.image-card img{width:100%;height:640px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.image-card figcaption{position:absolute;left:24px;right:24px;bottom:24px;background:rgba(239,223,187,.92);color:var(--green);padding:14px 18px;border-radius:14px;font-weight:800}.dark-section{background:var(--green);color:var(--cream)}.dark-section h2{color:var(--cream)}.row-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:50px}.lead{font-size:1.12rem;color:var(--muted);max-width:480px}.dark-section .lead{color:rgba(239,223,187,.68)}.hours-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.hours-card{min-height:210px;border:1px solid rgba(239,223,187,.16);border-radius:20px;padding:20px;display:flex;flex-direction:column;background:rgba(255,255,255,.035)}.hours-card>span{color:var(--copper);font-weight:950;font-size:.8rem;letter-spacing:.12em}.hours-card b{font-family:Georgia,serif;font-size:1.4rem;margin-top:8px}.hours-card strong{margin-top:auto;font-size:1.35rem}.hours-card small{color:rgba(239,223,187,.62);margin-top:4px}.hours-card.closed strong{color:#d8a9a4}.hours-card.highlight{background:var(--cream);color:var(--green);transform:none}.hours-card.highlight small{color:rgba(0,50,32,.65)}.centered{text-align:center;max-width:760px;margin:0 auto 50px}.centered .lead{margin-inline:auto}.offer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.offer-card{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:20px;padding:28px;background:var(--white);border:1px solid var(--line);border-radius:20px;text-decoration:none;transition:.22s}.offer-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(201,133,46,.55)}.offer-no{color:var(--copper);font-weight:950}.offer-card p{margin:0;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.offer-card h3{font-family:Georgia,serif;margin:3px 0 0;font-size:2rem;color:var(--green)}.offer-card .arrow{font-size:1.8rem}.event-section{background:var(--cream)}.event-card{position:relative;display:grid;grid-template-columns:130px 1fr;gap:46px;background:var(--green);color:var(--white);padding:54px;border-radius:32px;overflow:hidden}.event-card h2{color:var(--cream)}.event-date{border-right:1px solid rgba(239,223,187,.22);padding-right:30px}.event-date b{display:block;font-family:Georgia,serif;font-size:6rem;line-height:.8;color:var(--copper)}.event-date span{display:block;font-weight:900;letter-spacing:.1em;margin-top:16px}.event-copy{max-width:760px}.event-tags{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0}.event-tags span{border:1px solid rgba(239,223,187,.3);padding:7px 12px;border-radius:999px;font-size:.84rem}.event-card summary{cursor:pointer;font-weight:850;color:var(--cream)}.details-content{color:rgba(255,255,255,.76)}.event-stamp{position:absolute;right:-20px;bottom:-24px;font-family:Georgia,serif;font-size:8rem;font-weight:900;transform:rotate(-8deg);color:rgba(201,133,46,.12)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:12px}.gallery-item{border:0;padding:0;background:transparent;overflow:hidden;border-radius:18px;cursor:zoom-in}.gallery-item.wide{grid-column:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.gallery-item:hover img{transform:scale(1.04)}.reservation{background:var(--red);color:var(--white)}.reservation-box{display:flex;justify-content:space-between;align-items:end;gap:40px}.reservation h2{color:var(--cream)}.reservation p:not(.eyebrow){max-width:680px;color:rgba(255,255,255,.77)}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.contact-grid article{background:var(--white);border:1px solid var(--line);padding:30px;border-radius:20px}.contact-grid article>span{color:var(--copper);font-weight:950}.contact-grid h3{font-family:Georgia,serif;color:var(--green);font-size:1.8rem;margin:38px 0 14px}.contact-grid p{min-height:100px;color:#4f574f}.contact-grid a{font-weight:850;color:var(--green)}.social-row{display:flex;gap:20px;justify-content:center;margin-top:30px}.social-row a{font-weight:900}.site-footer{background:#00251a;color:rgba(239,223,187,.8);padding:52px 0 24px}.footer-main{display:flex;justify-content:space-between;gap:30px;align-items:center}.footer-brand{display:flex;align-items:center;gap:14px}.footer-brand img{width:56px;height:56px;border-radius:50%;object-fit:cover}.footer-brand b,.footer-brand small{display:block}.footer-brand b{font-family:Georgia,serif;font-size:1.5rem;color:var(--cream)}.footer-links{display:flex;gap:22px;flex-wrap:wrap}.footer-links a,.footer-links button{background:none;border:0;color:inherit;font:inherit;text-decoration:none;cursor:pointer;padding:0}.footer-bottom{border-top:1px solid rgba(239,223,187,.12);margin-top:36px;padding-top:22px;display:flex;justify-content:space-between;font-size:.84rem;opacity:.58}.cookie-banner{position:fixed;left:20px;right:20px;bottom:20px;z-index:80;background:#00251a;color:var(--cream);border:1px solid rgba(239,223,187,.18);border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.35);padding:20px 22px;display:flex;justify-content:space-between;gap:28px;align-items:center}.cookie-banner.hidden{display:none}.cookie-banner b{font-size:1.04rem}.cookie-banner p{margin:4px 0 0;color:rgba(239,223,187,.68);max-width:780px;font-size:.9rem}.cookie-actions{display:flex;gap:8px;flex-shrink:0}.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(0,19,11,.78);backdrop-filter:blur(5px)}.modal-panel{position:relative;z-index:2;width:min(720px,100%);max-height:min(84vh,820px);overflow:auto;background:var(--paper);border-radius:26px;padding:36px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.modal-panel h2{font-family:Georgia,serif;color:var(--green);font-size:3rem;margin:0 0 24px}.modal-close{position:absolute;right:20px;top:16px;border:0;background:none;font-size:2rem;color:var(--green);cursor:pointer}.legal-list{margin:0}.legal-list div{display:grid;grid-template-columns:190px 1fr;border-top:1px solid var(--line);padding:12px 0}.legal-list dt{font-weight:900}.legal-list dd{margin:0}.legal-note{background:#f1e3c4;border-left:4px solid var(--copper);padding:16px;border-radius:8px;font-size:.9rem}.cookie-setting{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:18px 0}.cookie-setting p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.switch{position:relative;display:inline-block;width:50px;height:28px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:#b7b1a3;border-radius:99px;cursor:pointer}.switch span:before{content:"";position:absolute;width:20px;height:20px;left:4px;top:4px;background:white;border-radius:50%;transition:.2s}.switch input:checked+span{background:var(--green)}.switch input:checked+span:before{transform:translateX(22px)}.modal-actions{margin-top:18px}.lightbox{position:fixed;inset:0;z-index:120;background:rgba(0,15,8,.92);display:none;align-items:center;justify-content:center;padding:28px}.lightbox.open{display:flex}.lightbox img{max-width:min(1100px,94vw);max-height:88vh;border-radius:18px}.lightbox button{position:absolute;right:24px;top:18px;background:none;border:0;color:white;font-size:2.4rem;cursor:pointer}
@media(max-width:980px){.menu-toggle{display:block}.main-nav{position:fixed;top:78px;left:20px;right:20px;display:none;flex-direction:column;align-items:stretch;background:#003220;padding:18px;border-radius:18px;box-shadow:var(--shadow)}.main-nav.open{display:flex}.main-nav a:not(.btn){padding:8px}.split-grid{grid-template-columns:1fr}.image-card img{height:480px}.hours-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr}.contact-grid p{min-height:auto}.reservation-box{align-items:flex-start;flex-direction:column}.footer-main{align-items:flex-start;flex-direction:column}.cookie-banner{align-items:flex-start;flex-direction:column}.cookie-actions{width:100%}.cookie-actions .btn{flex:1}}
@media(max-width:650px){:root{--container:min(100% - 28px,1180px)}.section{padding:78px 0}.nav-wrap{min-height:74px}.brand img{width:40px;height:40px}.hero{min-height:860px}.hero-content{padding-top:150px}.hero h1{font-size:clamp(4rem,20vw,6rem)}.hero-meta{grid-template-columns:1fr;margin-top:48px}.split-grid{gap:38px}.image-card img{height:400px}.row-heading{align-items:flex-start;flex-direction:column}.hours-grid{grid-template-columns:1fr}.hours-card{min-height:155px}.hours-card.highlight{transform:none}.offer-grid{grid-template-columns:1fr}.offer-card{grid-template-columns:42px 1fr auto;padding:22px}.offer-card h3{font-size:1.55rem}.event-card{grid-template-columns:1fr;padding:32px 24px}.event-date{border-right:0;border-bottom:1px solid rgba(239,223,187,.2);padding:0 0 24px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:240px}.gallery-item.wide{grid-column:span 1}.footer-bottom{flex-direction:column;gap:6px}.cookie-banner{left:10px;right:10px;bottom:10px;padding:16px}.legal-list div{grid-template-columns:1fr}.modal-panel{padding:32px 22px}.modal-panel h2{font-size:2.35rem}}

/* --- Account / authentication --- */
.logout-form{margin:0}.user-chip{display:inline-flex;align-items:center;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--cream);font-weight:850;font-size:.9rem}.flash-stack{position:fixed;top:100px;left:50%;transform:translateX(-50%);z-index:75;display:grid;gap:8px;pointer-events:none}.flash{padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);font-weight:800}.flash-success{background:#dcebdc;color:#17451f}.flash-error{background:#f4dcd8;color:#6d160d}.auth-panel{width:min(620px,100%);max-height:82vh;overflow-y:auto;padding:28px 34px}.auth-intro{color:var(--muted);margin-top:-10px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:rgba(0,50,32,.07);padding:5px;border-radius:999px;margin:24px 0}.auth-tab{border:0;background:transparent;border-radius:999px;padding:11px 14px;font:inherit;font-weight:900;color:var(--green);cursor:pointer}.auth-tab.active{background:var(--green);color:var(--cream);box-shadow:0 5px 16px rgba(0,50,32,.18)}.auth-pane[hidden]{display:none}.auth-form{display:grid;gap:18px}.auth-form label{display:grid;gap:8px;color:var(--green);font-weight:850;font-size:.92rem}.auth-form label small,.form-hint{display:block;font-weight:600;color:var(--muted);font-size:.85rem}.auth-form input[type="text"],.auth-form input[type="email"],.auth-form input[type="tel"],.auth-form input[type="password"]{width:100%;min-height:54px;border:1px solid rgba(0,50,32,.18);background:var(--white);border-radius:14px;padding:14px 16px;font:inherit;font-size:1rem;color:var(--ink);outline:none;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.auth-form input[type="text"]:focus,.auth-form input[type="email"]:focus,.auth-form input[type="tel"]:focus,.auth-form input[type="password"]:focus{border-color:var(--copper);box-shadow:0 0 0 3px rgba(201,133,46,.14);background:#fff}.auth-form input::placeholder{color:#aaa49a}.auth-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-check{grid-template-columns:auto 1fr!important;align-items:start;gap:10px!important;font-weight:600!important;color:var(--muted)!important}.auth-check input{margin-top:5px}.auth-check a{color:var(--green);font-weight:800}.auth-submit{width:100%;margin-top:4px;padding:14px 20px}.auth-help{text-align:center;color:var(--muted);font-size:.9rem}.auth-help button{border:0;background:none;padding:0;color:var(--green);font:inherit;font-weight:900;text-decoration:underline;cursor:pointer}.auth-security-note{margin-top:20px;padding:14px 16px;border-radius:14px;background:rgba(0,50,32,.06);border-left:3px solid var(--copper)}.auth-security-note b{color:var(--green)}.auth-security-note p{margin:3px 0 0;color:var(--muted);font-size:.86rem}.reservation .btn:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:980px){.user-chip{max-width:none;padding:8px}.logout-form .btn{width:100%}}
@media(max-width:650px){.auth-name-grid{grid-template-columns:1fr}.flash-stack{top:84px;width:calc(100% - 28px)}.flash{font-size:.9rem}}

/* =========================================================
   PROFILE / USER NAVIGATION
   ========================================================= */

.nav-profile{
    display:inline-flex;
    align-items:center;
    gap:10px;
    max-width:260px;
    padding:7px 12px 7px 7px;
    border:1px solid rgba(239,223,187,.18);
    border-radius:999px;
    background:rgba(255,255,255,.045);
    color:var(--cream);
    text-decoration:none;
    transition:background .2s ease,border-color .2s ease,transform .2s ease;
}

.nav-profile:hover{
    background:rgba(255,255,255,.09);
    border-color:rgba(201,133,46,.65);
    transform:translateY(-1px);
}

.nav-profile-avatar{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 36px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--copper),var(--red));
    color:#fff;
    font-size:.92rem;
    font-weight:900;
    box-shadow:0 6px 16px rgba(0,0,0,.18);
}

.nav-profile-info{
    min-width:0;
    display:flex;
    flex-direction:column;
    line-height:1.08;
}

.nav-profile-info small{
    margin-bottom:3px;
    color:rgba(239,223,187,.55);
    font-size:.62rem;
    font-weight:700;
    letter-spacing:.03em;
}

.nav-profile-info strong{
    max-width:150px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--cream);
    font-size:.88rem;
    font-weight:900;
}

.nav-profile-arrow{
    margin-left:2px;
    color:var(--copper);
    font-size:1.35rem;
    line-height:1;
}

/* =========================================================
   PROFILE PAGE
   ========================================================= */

.profile-page{
    min-height:100vh;
    background:
        radial-gradient(circle at 90% 0%,rgba(201,133,46,.15),transparent 34%),
        radial-gradient(circle at 10% 85%,rgba(163,33,24,.10),transparent 30%),
        var(--green);
    color:var(--cream);
}

.profile-header{
    position:sticky;
    top:0;
    z-index:30;
    padding:18px 0;
    border-bottom:1px solid rgba(239,223,187,.12);
    background:rgba(0,50,32,.86);
    backdrop-filter:blur(14px);
}

.profile-header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.profile-back{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--cream);
    text-decoration:none;
    font-weight:800;
    opacity:.78;
    transition:opacity .2s ease,transform .2s ease;
}

.profile-back:hover{
    opacity:1;
    transform:translateX(-2px);
}

.profile-brand{
    color:var(--copper);
    font-size:.86rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.12em;
}

.profile-main{
    padding:64px 0 100px;
}

.profile-hero{
    position:relative;
    display:flex;
    align-items:center;
    gap:26px;
    margin-bottom:42px;
    padding:34px;
    overflow:hidden;
    border:1px solid rgba(239,223,187,.12);
    border-radius:30px;
    background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
    box-shadow:0 24px 65px rgba(0,0,0,.18);
}

.profile-hero::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    right:-70px;
    top:-90px;
    border-radius:50%;
    background:rgba(201,133,46,.10);
}

.profile-avatar-large{
    position:relative;
    z-index:1;
    width:96px;
    height:96px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 96px;
    border:2px solid rgba(239,223,187,.20);
    border-radius:50%;
    background:linear-gradient(135deg,var(--copper),var(--red));
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:2.35rem;
    font-weight:900;
    box-shadow:0 14px 35px rgba(0,0,0,.26);
}

.profile-hero-info{
    position:relative;
    z-index:1;
    min-width:0;
}

.profile-label,
.profile-card .eyebrow{
    display:block;
    margin:0 0 7px;
    color:var(--copper);
    font-size:.72rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.14em;
}

.profile-hero h1{
    margin:0;
    color:var(--white);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.3rem,5vw,4.4rem);
    line-height:1;
    letter-spacing:-.04em;
    word-break:break-word;
}

.profile-hero p{
    margin:8px 0 0;
    color:rgba(239,223,187,.62);
    font-size:1rem;
}

.profile-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.profile-card{
    min-width:0;
    padding:28px;
    border:1px solid rgba(239,223,187,.13);
    border-radius:22px;
    background:rgba(255,255,255,.045);
    box-shadow:0 18px 44px rgba(0,0,0,.10);
    backdrop-filter:blur(10px);
}

.profile-card-accent{
    background:linear-gradient(145deg,rgba(201,133,46,.16),rgba(255,255,255,.035));
}

.profile-card-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
}

.profile-card h2{
    margin:0 0 22px;
    color:var(--white);
    font-family:Georgia,"Times New Roman",serif;
    font-size:2rem;
    line-height:1.05;
}

.profile-card p{
    color:rgba(239,223,187,.68);
}

.profile-detail{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:15px 0;
    border-bottom:1px solid rgba(239,223,187,.09);
}

.profile-detail:last-child{
    border-bottom:0;
}

.profile-detail span{
    color:rgba(239,223,187,.56);
    font-size:.92rem;
}

.profile-detail strong{
    min-width:0;
    max-width:65%;
    overflow-wrap:anywhere;
    color:var(--white);
    text-align:right;
    font-weight:850;
}

.profile-empty{
    margin-top:18px;
    padding:18px;
    border:1px dashed rgba(239,223,187,.22);
    border-radius:13px;
    background:rgba(0,0,0,.06);
    color:rgba(239,223,187,.61);
}

.profile-level{
    display:flex;
    align-items:center;
    gap:15px;
}

.profile-level-icon{
    width:50px;
    height:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 50px;
    border:1px solid rgba(201,133,46,.20);
    border-radius:14px;
    background:rgba(201,133,46,.13);
    color:var(--copper);
    font-size:1.55rem;
}

.profile-level div{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:3px;
}

.profile-level strong{
    color:var(--white);
}

.profile-level small{
    color:rgba(239,223,187,.57);
}

.profile-card .btn-outline{
    border:1px solid rgba(239,223,187,.26);
    background:transparent;
    color:var(--cream);
}

.profile-card .btn-outline:hover{
    border-color:rgba(201,133,46,.65);
    background:rgba(201,133,46,.10);
}

/* =========================================================
   OPENING HOURS — DYNAMIC STATES
   ========================================================= */

.hours-card.override{
    position:relative;
}

.hours-card.override::after{
    content:"Změna";
    position:absolute;
    right:14px;
    top:14px;
    padding:4px 8px;
    border:1px solid rgba(201,133,46,.25);
    border-radius:999px;
    background:rgba(201,133,46,.12);
    color:var(--copper);
    font-size:.62rem;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.hours-card.highlight.override::after{
    border-color:rgba(0,50,32,.15);
    background:rgba(0,50,32,.08);
    color:var(--green);
}

.hours-note{
    display:block;
    margin-top:9px!important;
    font-weight:800;
}

/* =========================================================
   PROFILE RESPONSIVE
   ========================================================= */

@media(max-width:980px){
    .nav-profile{
        max-width:none;
        width:100%;
        justify-content:flex-start;
        border-radius:14px;
        padding:10px;
    }

    .nav-profile-info strong{
        max-width:none;
    }

    .nav-profile-arrow{
        margin-left:auto;
    }

    .profile-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .profile-main{
        padding:38px 0 70px;
    }

    .profile-header-inner{
        gap:14px;
    }

    .profile-brand{
        font-size:.72rem;
    }

    .profile-hero{
        align-items:flex-start;
        gap:18px;
        padding:24px 20px;
        border-radius:22px;
    }

    .profile-avatar-large{
        width:70px;
        height:70px;
        flex-basis:70px;
        font-size:1.7rem;
    }

    .profile-hero h1{
        font-size:clamp(2rem,10vw,3rem);
    }

    .profile-card{
        padding:22px 19px;
    }

    .profile-card h2{
        font-size:1.7rem;
    }

    .profile-detail{
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
    }

    .profile-detail strong{
        max-width:100%;
        text-align:left;
    }
}

.profile-menu-wrap {
    position: relative;
}

.profile-menu-trigger {
    display: flex;
    align-items: center;
    gap: 9px;

    border: 1px solid rgba(239, 223, 187, .18);
    background: rgba(255, 255, 255, .04);

    color: var(--cream);

    padding: 6px 11px 6px 6px;
    border-radius: 999px;

    font: inherit;
    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease;
}

.profile-menu-trigger:hover {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(201, 133, 46, .55);
}

.profile-menu-avatar,
.profile-dropdown-avatar {
    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: linear-gradient(
        135deg,
        var(--copper),
        var(--red)
    );

    color: #fff;
    font-weight: 900;
}

.profile-menu-avatar {
    width: 34px;
    height: 34px;
    font-size: .9rem;
}

.profile-menu-name {
    max-width: 130px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: .9rem;
    font-weight: 850;
}

.profile-menu-chevron {
    color: var(--copper);
    font-size: .9rem;
}


.profile-dropdown {
    position: absolute;

    top: calc(100% + 12px);
    right: 0;

    width: 290px;

    padding: 12px;

    border: 1px solid rgba(0, 50, 32, .12);
    border-radius: 18px;

    background: var(--white);

    color: var(--ink);

    box-shadow:
        0 24px 60px rgba(0, 0, 0, .20);

    z-index: 100;
}

.profile-dropdown[hidden] {
    display: none;
}

.profile-dropdown-head {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 8px;
}

.profile-dropdown-avatar {
    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    font-size: 1.05rem;
}

.profile-dropdown-head div {
    min-width: 0;
}

.profile-dropdown-head strong,
.profile-dropdown-head small {
    display: block;
}

.profile-dropdown-head strong {
    color: var(--green);

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-dropdown-head small {
    margin-top: 2px;

    color: var(--muted);

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-dropdown-divider {
    height: 1px;

    background: rgba(0, 50, 32, .10);

    margin: 9px 4px;
}

.profile-dropdown-link,
.profile-dropdown-logout button {
    width: 100%;

    display: flex;
    align-items: center;
    gap: 11px;

    padding: 11px 12px;

    border: 0;
    border-radius: 11px;

    background: transparent;

    color: var(--green);

    text-decoration: none;

    font: inherit;
    font-weight: 750;

    cursor: pointer;

    transition: background .15s ease;
}

.profile-dropdown-link:hover,
.profile-dropdown-logout button:hover {
    background: rgba(0, 50, 32, .07);
}

.profile-dropdown-link > span:first-child,
.profile-dropdown-logout button > span:first-child {
    width: 22px;

    color: var(--copper);

    text-align: center;
}

.profile-dropdown-logout {
    margin: 0;
}

.profile-dropdown-logout button {
    color: var(--red);
}

@media (max-width: 980px) {

    .profile-menu-wrap {
        width: 100%;
    }

    .profile-menu-trigger {
        width: 100%;
        border-radius: 14px;
    }

    .profile-menu-name {
        max-width: none;
    }

    .profile-menu-chevron {
        margin-left: auto;
    }

    .profile-dropdown {
        position: static;

        width: 100%;

        margin-top: 8px;

        box-shadow: none;
    }
}

/* ==========================================================
   PASSWORD STRENGTH
   ========================================================== */

.password-strength {
    margin-top: 12px;
}

.password-strength-bar {
    width: 100%;
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(0, 50, 32, .12);
}

#password-strength-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    transition:
        width .25s ease,
        background-color .25s ease;
}

#password-strength-fill.weak {
    background-color: #a93226;
}

#password-strength-fill.medium {
    background-color: #c47f17;
}

#password-strength-fill.good {
    background-color: #5f7f3c;
}

#password-strength-fill.strong {
    background-color: #2e7d32;
}

.password-strength-text {
    margin-top: 8px;
    font-size: .82rem;
    color: var(--muted);
}

.password-strength-text strong {
    color: var(--green);
}

.password-rules {
    display: grid;
    gap: 5px;
    margin:
        10px
        0
        0;
    padding: 0;
    list-style: none;
}

.password-rules li {
    position: relative;
    padding-left: 1.5rem;
    color: var(--muted);
    font-size: .82rem;
    transition:
        color .2s ease,
        opacity .2s ease;
}

.password-rules li::before {
    content: "○";
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 900;
    transition:
        color .2s ease,
        transform .2s ease;
}

.password-rules li.valid {
    color: #2e7d32;
}

.password-rules li.valid::before {
    content: "✓";
    color: #2e7d32;
    transform: scale(1.05);
}

.password-rules li.invalid {
    color: var(--muted);
}

.password-rules li.invalid::before {
    content: "○";
}


/* ==========================================================
   FLASH MESSAGES
   ========================================================== */

/*
 * Flash notifications use opacity and movement for dismissal
 * so removing a message does not feel abrupt.
 */
.flash {
    transition:
        opacity .3s ease,
        transform .3s ease;
}

.flash.flash-hiding {
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
}

/* =========================================================
   OPENING HOURS — ROLLING 8-DAY VIEW
   ========================================================= */

.hours-day-meta{
    display:flex;
    align-items:center;
    gap:8px;
}

.hours-date{
    color:rgba(239,223,187,.55);
    font-size:.76rem;
    font-weight:800;
    letter-spacing:0;
}

.hours-card.highlight .hours-date{
    color:rgba(0,50,32,.58);
}

/* =========================================================
   RESERVATION SYSTEM
   ========================================================= */
.nav-reservation-cta{box-shadow:0 0 0 3px rgba(201,133,46,.16),0 12px 28px rgba(201,133,46,.30);animation:reservationPulse 3s ease-in-out infinite}@keyframes reservationPulse{0%,100%{box-shadow:0 0 0 0 rgba(201,133,46,.18),0 12px 28px rgba(201,133,46,.25)}50%{box-shadow:0 0 0 7px rgba(201,133,46,0),0 15px 32px rgba(201,133,46,.34)}}
.booking-page,.staff-page{min-height:100vh;background:var(--paper)}.booking-header{position:sticky;top:0;z-index:40;background:rgba(0,50,32,.97);color:var(--cream);border-bottom:1px solid rgba(239,223,187,.12);backdrop-filter:blur(12px)}.booking-header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.booking-main,.staff-main{padding-top:52px;padding-bottom:100px}.booking-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:end;margin-bottom:34px}.booking-hero h1,.staff-heading h1,.staff-panel h1{font:700 clamp(3rem,7vw,6rem)/.95 Georgia,serif;color:var(--green);margin:0}.booking-hero p{max-width:700px;color:var(--muted)}.booking-user{padding:20px;border-radius:18px;background:var(--green);color:var(--cream);display:flex;flex-direction:column}.booking-user small{opacity:.6}.booking-user strong{font-size:1.25rem}.booking-user span{font-size:.86rem;opacity:.7;margin-top:3px}.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.booking-form,.booking-side,.staff-panel{background:var(--white);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 18px 45px rgba(17,32,25,.07)}.booking-step{display:flex;gap:16px;align-items:flex-start;margin:6px 0 22px}.booking-step>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--green);color:var(--cream);font-weight:900;flex:0 0 42px}.booking-step h2,.booking-side h2,.my-reservations h2,.table-assignment h2{font:700 2rem/1 Georgia,serif;color:var(--green);margin:3px 0}.booking-step p{margin:6px 0 0;color:var(--muted)}.booking-fields{display:grid;gap:14px;margin-bottom:16px}.booking-fields.two{grid-template-columns:1fr 1fr}.booking-form label,.table-assignment label{display:grid;gap:7px;color:var(--green);font-weight:850}.booking-form input,.booking-form select,.booking-form textarea,.table-assignment input,.table-assignment select{width:100%;min-height:52px;border:1px solid rgba(0,50,32,.18);border-radius:13px;background:#fff;padding:12px 14px;font:inherit;color:var(--ink)}.booking-form textarea{resize:vertical}.booking-notice{margin:4px 0 32px;padding:13px 15px;border-left:3px solid var(--copper);border-radius:9px;background:#f5ead2;color:#5c5548;font-size:.9rem}.purpose-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:22px}.purpose-grid label{display:block}.purpose-grid input{position:absolute;opacity:0;pointer-events:none}.purpose-grid span{min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:15px;background:var(--paper);cursor:pointer;font-size:1.35rem}.purpose-grid input:checked+span{border-color:var(--copper);box-shadow:0 0 0 2px rgba(201,133,46,.15);background:#f4e4c2}.purpose-grid b{font-size:.82rem;color:var(--green)}.booking-textarea small{font-weight:600;color:var(--muted)}.booking-submit{width:100%;margin-top:22px}.booking-side{position:sticky;top:102px;background:var(--green);color:var(--cream)}.booking-side h2{color:var(--cream)}.booking-side ol{padding:0;margin:24px 0 0;list-style:none;display:grid;gap:22px;counter-reset:steps}.booking-side li{display:grid;gap:3px;padding-left:38px;position:relative;counter-increment:steps}.booking-side li:before{content:counter(steps);position:absolute;left:0;top:0;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--copper);color:#20150c;font-weight:950}.booking-side li span{color:rgba(239,223,187,.62);font-size:.9rem}.my-reservations{margin-top:70px}.reservation-list{display:grid;gap:10px}.reservation-list article{background:var(--white);border:1px solid var(--line);border-radius:17px;padding:20px}.reservation-list h3{margin:7px 0 2px;color:var(--green)}.reservation-list p{margin:0;color:var(--muted)}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900;background:#e8e3d8;color:#5d574e}.status-pending{background:#f4e5c5;color:#795315}.status-confirmed{background:#dcebdc;color:#17451f}.status-rejected,.status-cancelled,.status-no_show{background:#f4dcd8;color:#6d160d}.status-completed{background:#dde6ea;color:#294b5b}
.staff-page{background:#f2ead9}.staff-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.status-filters{display:flex;flex-wrap:wrap;gap:8px}.status-filters a{padding:9px 13px;border-radius:999px;background:var(--white);border:1px solid var(--line);text-decoration:none;font-weight:800;color:var(--green)}.staff-reservations{display:grid;gap:10px}.staff-reservation-card{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:22px;padding:20px 24px;background:var(--white);border:1px solid var(--line);border-radius:18px;text-decoration:none;transition:.2s}.staff-reservation-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.staff-time{display:flex;flex-direction:column;border-right:1px solid var(--line)}.staff-time b{font:700 1.8rem Georgia,serif;color:var(--green)}.staff-time span{color:var(--muted)}.staff-reservation-card h2{margin:5px 0 0;color:var(--green);font:700 1.55rem Georgia,serif}.staff-reservation-card p{margin:2px 0;color:var(--muted)}.staff-arrow{font-size:1.7rem;color:var(--copper)}.reservation-detail-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:18px;align-items:start}.staff-panel h1{font-size:clamp(2.4rem,5vw,4.5rem)}.detail-list{margin-top:24px}.detail-list p{display:flex;justify-content:space-between;gap:20px;padding:12px 0;margin:0;border-bottom:1px solid var(--line)}.detail-list span{color:var(--muted)}.detail-list strong{text-align:right}.guest-note{margin-top:22px;padding:16px;border-radius:13px;background:var(--paper)}.guest-note p{margin:6px 0 0}.staff-panel-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.staff-panel-head label{min-width:180px}.reserved-until{margin:22px 0}.table-section{margin:28px 0}.table-section h3{color:var(--green);font:700 1.4rem Georgia,serif}.table-map{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:10px}.table-tile{display:block!important}.table-tile input{position:absolute;opacity:0;pointer-events:none}.table-tile span{min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid rgba(0,50,32,.12);border-radius:13px;background:var(--paper);cursor:pointer}.table-tile input:checked+span{border-color:var(--copper);background:#f2dfb8;box-shadow:0 0 0 2px rgba(201,133,46,.13)}.table-tile b{font-size:1.15rem}.table-tile small{color:var(--muted)}
@media(max-width:900px){.booking-hero,.booking-grid,.reservation-detail-grid{grid-template-columns:1fr}.booking-side{position:static}.purpose-grid{grid-template-columns:1fr 1fr}.table-map{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.booking-main,.staff-main{padding-top:28px}.booking-form,.booking-side,.staff-panel{padding:21px}.booking-fields.two{grid-template-columns:1fr}.staff-heading{align-items:flex-start;flex-direction:column}.staff-reservation-card{grid-template-columns:70px 1fr}.staff-arrow{display:none}.table-map{grid-template-columns:repeat(2,1fr)}.booking-header-inner>strong{display:none}}
.admin-table-list{display:grid;gap:8px}.admin-table-row{display:grid;grid-template-columns:1.4fr .6fr .6fr .6fr auto;gap:8px;align-items:center}.admin-table-row input,.admin-table-row select{min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}@media(max-width:800px){.admin-table-row{grid-template-columns:1fr 1fr}.admin-table-row select{grid-column:1/-1}}


/* ==========================================================
   PRODUCT ADMINISTRATION
   ========================================================== */

.staff-product-editor,
.staff-products-list {
    margin: 2rem 0 4rem;
}

.staff-product-editor .booking-form {
    max-width: none;
}

.product-admin-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    margin: 1.5rem 0;
}

.product-admin-options > label {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;

    padding: 1rem;

    border: 1px solid rgba(0, 50, 32, 0.15);
    border-radius: 0.75rem;

    cursor: pointer;
}

.product-admin-options input {
    margin-top: 0.25rem;
}

.product-admin-options span {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.product-admin-options small {
    opacity: 0.7;
}

.product-admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}


/* Product list */

.product-category-heading {
    margin: 2rem 0 0.75rem;
}

.product-admin-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;

    margin-bottom: 0.75rem;
    padding: 1.2rem;

    border: 1px solid rgba(0, 50, 32, 0.15);
    border-radius: 0.8rem;

    background: #fff;
}

.product-admin-card.is-disabled {
    opacity: 0.55;
}

.product-admin-main {
    flex: 1;
}

.product-admin-title {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.product-admin-title h3 {
    margin: 0;
}

.product-admin-main p {
    margin: 0.5rem 0;
}

.product-admin-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;

    margin-top: 0.8rem;
}

.product-admin-badges span {
    padding: 0.25rem 0.55rem;

    border-radius: 999px;

    background: rgba(0, 50, 32, 0.08);

    font-size: 0.75rem;
}

.product-admin-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}


/* Mobile */

@media (max-width: 700px) {

    .product-admin-options {
        grid-template-columns: 1fr;
    }

    .product-admin-card {
        flex-direction: column;
        align-items: stretch;
    }

    .product-admin-card-actions {
        width: 100%;
    }
}

/* ==========================================================
   RESERVATION PREORDER
   ========================================================== */

.preorder-products {
    margin: 1rem 0;
}

.preorder-category {
    margin: 1.8rem 0 .7rem;
    color: var(--green);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
}

.preorder-product {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(0, 50, 32, .12);
}

.preorder-product-info {
    flex: 1;
    min-width: 0;
}

.preorder-product-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.preorder-product-heading b {
    flex-shrink: 0;
    color: var(--green);
}

.preorder-product-info p {
    margin: .35rem 0;
    opacity: .8;
}

.preorder-product-info small {
    display: block;
    margin-top: .2rem;
    opacity: .65;
}

.preorder-product-info .preorder-after-kitchen {
    color: var(--green);
    font-weight: 700;
    opacity: 1;
}

.preorder-quantity {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    overflow: hidden;
    border: 1px solid rgba(0, 50, 32, .2);
    border-radius: 999px;
    background: var(--white);
}

.preorder-quantity button {
    width: 2.6rem;
    height: 2.6rem;
    border: 0;
    background: transparent;
    color: var(--green);
    font: inherit;
    font-size: 1.25rem;
    font-weight: 900;
    cursor: pointer;
}

.preorder-quantity button:hover {
    background: rgba(201, 133, 46, .12);
}

.preorder-quantity input {
    width: 3rem;
    min-height: 2.6rem;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ink);
    text-align: center;
    font: inherit;
    font-weight: 800;
    appearance: textfield;
    -moz-appearance: textfield;
}

.preorder-quantity input::-webkit-inner-spin-button,
.preorder-quantity input::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.preorder-summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin: 1.5rem 0;
    padding: 1rem 1.2rem;
    border-radius: .75rem;
    background: var(--green);
    color: var(--cream);
}

@media (max-width: 700px) {
    .preorder-product {
        align-items: flex-start;
        flex-direction: column;
    }

    .preorder-product-heading {
        width: 100%;
    }

    .preorder-quantity {
        align-self: flex-end;
    }

    .preorder-summary {
        flex-direction: column;
    }
}

/* ==========================================================
   STAFF RESERVATION PREORDER
   ========================================================== */

.staff-preorder {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.staff-preorder-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
}

.staff-preorder-heading .eyebrow {
    margin-bottom: 4px;
}

.staff-preorder-heading h2 {
    margin: 0;
    color: var(--green);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.7rem;
}

.staff-preorder-count {
    flex-shrink: 0;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--green);
    color: var(--cream);
    font-size: .82rem;
    font-weight: 900;
}

.staff-preorder-empty {
    margin: 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(0, 50, 32, .05);
    color: var(--muted);
}

.staff-preorder-items {
    display: grid;
}

.staff-preorder-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
}

.staff-preorder-item strong,
.staff-preorder-item small {
    display: block;
}

.staff-preorder-item > div:first-child strong {
    color: var(--green);
}

.staff-preorder-item small {
    margin-top: 2px;
    color: var(--muted);
    font-size: .78rem;
}

.staff-preorder-price {
    flex-shrink: 0;
    text-align: right;
}

.staff-preorder-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 16px;
    padding: 14px 16px;
    border-radius: 14px;
    background: var(--green);
    color: var(--cream);
}

.staff-preorder-total strong {
    font-size: 1.15rem;
}

@media (max-width: 650px) {
    .staff-preorder-item {
        align-items: flex-start;
    }

    .staff-preorder-heading {
        align-items: flex-start;
    }
}

/* ==========================================================
   PRIVACY / LEGAL PAGE
   ========================================================== */

.legal-page {
    background: var(--cream);
    color: var(--green);
}

.legal-page-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
}

.legal-page-brand img {
    width: 38px;
    height: 38px;
    object-fit: cover;
    border-radius: 50%;
}

.legal-main {
    padding-top: 72px;
    padding-bottom: 100px;
}

.legal-hero {
    max-width: 850px;
    margin-bottom: 70px;
}

.legal-hero h1 {
    margin: 8px 0 22px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 7vw, 6rem);
    line-height: .94;
    letter-spacing: -.04em;
}

.legal-hero h1 em {
    color: var(--copper);
    font-weight: inherit;
}

.legal-lead {
    max-width: 720px;
    font-size: 1.12rem;
    line-height: 1.75;
    color: var(--muted);
}

.legal-updated {
    margin-top: 24px;
    font-size: .86rem;
    color: var(--muted);
}

.legal-updated strong {
    color: var(--green);
}


/* Layout */

.legal-layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 760px);
    gap: clamp(40px, 7vw, 100px);
    align-items: start;
}


/* Navigation */

.legal-navigation {
    position: sticky;
    top: 110px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 255, .32);
}

.legal-navigation > strong {
    display: block;
    margin-bottom: 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.legal-navigation nav {
    display: grid;
}

.legal-navigation a {
    padding: 8px 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.35;
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 50, 32, .08);
    transition:
        color .2s ease,
        padding-left .2s ease;
}

.legal-navigation a:last-child {
    border-bottom: 0;
}

.legal-navigation a:hover {
    padding-left: 5px;
    color: var(--copper);
}


/* Document */

.legal-document {
    min-width: 0;
}

.legal-document section {
    scroll-margin-top: 120px;
    padding-bottom: 55px;
    margin-bottom: 55px;
    border-bottom: 1px solid var(--line);
}

.legal-document section:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.legal-section-number {
    display: block;
    margin-bottom: 8px;
    color: var(--copper);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.legal-document h2 {
    margin: 0 0 24px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 4vw, 2.7rem);
    line-height: 1.08;
}

.legal-document h3 {
    margin: 32px 0 10px;
    font-size: 1.05rem;
    color: var(--green);
}

.legal-document p {
    margin: 0 0 17px;
    color: var(--muted);
    line-height: 1.8;
}

.legal-document a {
    color: var(--copper);
}

.legal-document ul {
    display: grid;
    gap: 9px;
    margin: 18px 0 26px;
    padding-left: 22px;
    color: var(--muted);
}

.legal-document li {
    padding-left: 5px;
    line-height: 1.65;
}

.legal-document li::marker {
    color: var(--copper);
}


/* Contact information */

.legal-contact-card {
    margin: 25px 0;
    padding: 24px 26px;
    border-left: 4px solid var(--copper);
    border-radius: 0 16px 16px 0;
    background: rgba(0, 50, 32, .055);
}

.legal-contact-card > strong {
    display: block;
    margin-bottom: 12px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
}

.legal-contact-card p {
    margin-bottom: 7px;
}

.legal-contact-card p:last-child {
    margin-bottom: 0;
}


/* Highlight */

.legal-highlight {
    margin: 28px 0;
    padding: 22px 24px;
    border-radius: 16px;
    background: var(--green);
    color: var(--cream);
}

.legal-highlight strong {
    display: block;
    margin-bottom: 7px;
}

.legal-highlight p {
    margin: 0;
    color: rgba(239, 223, 187, .8);
}


/* Legal bases */

.legal-basis-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 26px 0;
}

.legal-basis-list > div {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.legal-basis-list strong {
    display: block;
    margin-bottom: 8px;
    color: var(--green);
}

.legal-basis-list p {
    margin: 0;
    font-size: .88rem;
}


/* Contact action */

.legal-contact-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin: 30px 0;
    padding: 24px;
    border-radius: 18px;
    background: rgba(201, 133, 46, .12);
}

.legal-contact-action span,
.legal-contact-action strong {
    display: block;
}

.legal-contact-action span {
    margin-bottom: 3px;
    color: var(--muted);
    font-size: .78rem;
}

.legal-contact-action strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}


/* Security */

.legal-security-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 28px;
}

.legal-security-grid > div {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.legal-security-grid span {
    display: block;
    margin-bottom: 18px;
    color: var(--copper);
    font-size: .7rem;
    font-weight: 900;
}

.legal-security-grid strong {
    display: block;
    margin-bottom: 7px;
}

.legal-security-grid p {
    margin: 0;
    font-size: .82rem;
}


/* End */

.legal-document-end {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 45px;
    padding-top: 25px;
    border-top: 1px solid var(--line);
}

.legal-document-end img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.legal-document-end strong,
.legal-document-end span {
    display: block;
}

.legal-document-end strong {
    font-family: Georgia, "Times New Roman", serif;
}

.legal-document-end span {
    margin-top: 3px;
    color: var(--muted);
    font-size: .76rem;
}


/* Responsive */

@media (max-width: 900px) {

    .legal-layout {
        grid-template-columns: 1fr;
    }

    .legal-navigation {
        position: static;
    }

    .legal-navigation nav {
        grid-template-columns: 1fr 1fr;
        column-gap: 20px;
    }

    .legal-security-grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 650px) {

    .legal-main {
        padding-top: 45px;
        padding-bottom: 70px;
    }

    .legal-hero {
        margin-bottom: 45px;
    }

    .legal-navigation nav {
        grid-template-columns: 1fr;
    }

    .legal-basis-list {
        grid-template-columns: 1fr;
    }

    .legal-contact-action {
        align-items: stretch;
        flex-direction: column;
    }

    .legal-contact-action .btn {
        text-align: center;
    }

    .legal-page-brand {
        display: none;
    }
}

/* =========================================================
   TLUSTEJ GNÓM — NEW VISUAL IDENTITY
   ========================================================= */
:root{
  --green:#003220;--green-2:#22523e;--green-foot:#00251a;
  --cream:#f1e6c8;--cream-2:#fbf2e1;--copper:#c18a2d;
  --gold:#c18a2d;--gold-light:#e5b04a;--red:#9e1b11;
  --ink:#1c1a15;--paper:#f1e6c8;--white:#fbf2e1;
  --muted:#756f60;--line:rgba(0,50,32,.16);
  --shadow:0 24px 60px rgba(0,37,26,.14)
}
body{background:var(--paper);color:var(--ink)}
.site-header.scrolled{background:rgba(0,50,32,.97);box-shadow:0 1px 0 rgba(239,223,187,.14)}
.site-footer{background:var(--green-foot)}

/* Hexagonal brand marks replace circular logo/avatar treatments. */
.brand-logo-hex,.profile-menu-avatar,.profile-dropdown-avatar,.nav-profile-avatar,.footer-brand img{
  clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
  border-radius:0!important
}
.brand-logo-hex{position:relative;width:52px;height:52px;display:grid;place-items:center;flex:0 0 52px;background:var(--gold)}
.brand-logo-hex:before{content:"";position:absolute;inset:3px;background:var(--green);clip-path:inherit}
.brand-logo-hex img{position:relative;z-index:1;width:44px!important;height:44px!important;object-fit:cover;border:0!important;border-radius:0!important;clip-path:inherit}
.footer-brand img{width:60px;height:60px;background:var(--gold)}
.profile-menu-avatar,.profile-dropdown-avatar,.nav-profile-avatar{background:var(--gold)!important;color:var(--green)!important}
.switch span:before{border-radius:0;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}

/* Hero hexagons are decorative only and never block interaction. */
.hero{background:var(--green)}
.hero-overlay{background:linear-gradient(90deg,rgba(0,37,26,.98) 0%,rgba(0,50,32,.82) 43%,rgba(0,50,32,.32) 76%,rgba(0,37,26,.55) 100%),linear-gradient(0deg,rgba(0,37,26,.94),transparent 48%)}
.hero-hex-pattern{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero-hex-pattern span{position:absolute;display:block;width:150px;aspect-ratio:1/.866;border:1px solid rgba(201,133,46,.24);background:rgba(201,133,46,.035);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.hero-hex-pattern span:nth-child(1){right:7%;top:17%;width:260px}
.hero-hex-pattern span:nth-child(2){right:-2%;top:42%;width:180px}
.hero-hex-pattern span:nth-child(3){right:20%;top:57%;width:115px}
.hero-hex-pattern span:nth-child(4){left:-45px;bottom:8%;width:120px}
.hero-hex-pattern span:nth-child(5){left:39%;top:12%;width:70px}
.hero-content{z-index:3}
.eyebrow,.offer-no,.contact-grid article>span,.legal-section-number{color:var(--gold)}
.hero h1 em{color:var(--cream)}

/* Hexagon accents around photography and content markers. */
.hex-image-card:before{content:"";position:absolute;width:92px;height:80px;right:-22px;top:-26px;z-index:2;background:var(--gold);opacity:.92;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.hex-image-card:after{content:"";position:absolute;width:54px;height:47px;right:55px;top:35px;z-index:2;border:2px solid var(--gold);opacity:.65;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.image-card img{border-radius:22px}
.image-card figcaption{border-radius:10px;border-left:4px solid var(--gold)}
.hours-card,.offer-card,.contact-grid article,.modal-panel,.cookie-banner,.auth-security-note{border-radius:16px}
.hours-card.highlight{background:var(--cream);color:var(--green);box-shadow:inset 0 0 0 2px var(--gold)}
.offer-card:hover{border-color:rgba(201,133,46,.7)}
.event-section{background:var(--cream)}
.event-card{background:var(--green);border-radius:22px}
.event-date b{color:var(--gold)}
.event-tags span{border-radius:8px}
.reservation{background:var(--red)}

/* Buttons use clipped corners rather than pill/circle geometry. */
.btn{border-radius:0;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%)}
.btn-copper{background:var(--gold);color:var(--green);box-shadow:0 10px 24px rgba(201,133,46,.24)}
.btn-cream{background:var(--cream);color:var(--green)}
.auth-tabs{border-radius:12px}.auth-tab{border-radius:8px}
.auth-tab.active{background:var(--green);color:var(--cream)}
.auth-form input[type="text"],.auth-form input[type="email"],.auth-form input[type="tel"],.auth-form input[type="password"]{border-radius:10px}
.profile-menu-trigger,.profile-dropdown,.nav-profile{border-radius:12px!important}

/* Small hexagonal markers repeat the identity without overwhelming content. */
.hero-meta span{position:relative;border-left:0;padding-left:25px}
.hero-meta span:before{content:"";position:absolute;left:0;top:.38em;width:12px;height:11px;background:var(--gold);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.offer-no,.contact-grid article>span{display:grid;place-items:center;width:44px;height:40px;background:rgba(201,133,46,.13);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.event-stamp{color:rgba(201,133,46,.14)}

@media(max-width:980px){
  .main-nav{background:var(--green);border-radius:14px}
  .hero-hex-pattern span:nth-child(1){right:-90px;top:20%}
  .hero-hex-pattern span:nth-child(3),.hero-hex-pattern span:nth-child(5){display:none}
}
@media(max-width:650px){
  .brand-logo-hex{width:46px;height:46px;flex-basis:46px}
  .brand-logo-hex img{width:38px!important;height:38px!important}
  .hero-hex-pattern span:nth-child(1){width:190px;right:-100px;top:25%}
  .hex-image-card:before{width:68px;height:59px;right:-10px;top:-18px}
  .hex-image-card:after{display:none}
}

/* =========================================================
   TLUSTEJ GNÓM — BRAND TYPOGRAPHY + HERO REVISION
   ========================================================= */
:root{
  --serif:'Cinzel',Georgia,'Times New Roman',serif;
  --sans:'Calibri',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
body,button,input,select,textarea{font-family:var(--sans)}
h1,h2,h3,.hero h1,.section h2,.offer-card h3,.event-date b,.modal-panel h2,.footer-brand b{font-family:var(--serif);letter-spacing:.005em}
.eyebrow{font-family:var(--serif);font-weight:600;letter-spacing:.20em}
.brand{font-family:var(--serif);letter-spacing:.04em}

/* The former wood/interior photo is deliberately removed from the opening screen. */
.hero.hero-brand{
  position:relative;min-height:94vh;display:grid;align-items:end;overflow:hidden;isolation:isolate;
  background:radial-gradient(circle at 72% 35%,rgba(201,133,46,.055),transparent 26rem),
             linear-gradient(135deg,#00251a 0%,#003220 52%,#22523e 100%)
}
.hero.hero-brand::before{
  content:"";position:absolute;inset:0;z-index:-2;opacity:.18;
  background-image:linear-gradient(rgba(239,223,187,.025) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(239,223,187,.025) 1px,transparent 1px);
  background-size:44px 44px
}
.hero-brand-art{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.hero-brand-hex{position:absolute;display:block;aspect-ratio:1/.866;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.hero-brand-hex::after{content:"";position:absolute;inset:3px;background:#003220;clip-path:inherit}
.hero-brand-hex-a{width:440px;right:7%;top:15%;background:rgba(201,133,46,.85);transform:rotate(8deg)}
.hero-brand-hex-b{width:260px;right:-3%;top:52%;background:rgba(201,133,46,.38);transform:rotate(-10deg)}
.hero-brand-hex-c{width:150px;right:34%;top:59%;background:rgba(239,223,187,.16);transform:rotate(12deg)}
.hero-brand-hex-d{width:82px;left:46%;top:17%;background:rgba(201,133,46,.55);transform:rotate(-8deg)}
.hero-brand-line{position:absolute;right:-4%;top:8%;width:48%;height:84%;border:1px solid rgba(201,133,46,.13);transform:skewX(-16deg)}
.hero-content{position:relative;z-index:2;padding:190px 0 68px;color:var(--cream-2)}
.hero h1{max-width:960px;font-size:clamp(3.8rem,8.4vw,8.3rem);font-weight:600;line-height:.98;letter-spacing:-.025em}
.hero h1 em{color:var(--gold-light);font-family:var(--serif);font-style:normal;font-weight:400}
.hero-copy{max-width:640px;color:rgba(249,241,222,.76);font-size:clamp(1.05rem,1.8vw,1.24rem)}
.hero-meta{max-width:780px}
.hero-meta span::before{width:14px;height:16px;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.hero-meta b{color:var(--cream-2)}
.hero-meta small{color:rgba(249,241,222,.58)}
.hero-media,.hero-overlay,.hero-hex-pattern{display:none!important}
.section h2{letter-spacing:-.015em;line-height:1.04;font-weight:600}
.offer-card h3,.event-date b{font-weight:600}
@media(max-width:980px){
  .hero-brand-hex-a{width:360px;right:-110px;top:18%;opacity:.72}
  .hero-brand-hex-b{right:-100px}
  .hero-brand-hex-c{right:22%;top:63%}
}
@media(max-width:650px){
  .hero.hero-brand{min-height:820px}
  .hero-content{padding-top:145px;padding-bottom:48px}
  .hero h1{font-size:clamp(3.25rem,15vw,5rem)}
  .hero-brand-hex-a{width:260px;right:-125px;top:22%;opacity:.55}
  .hero-brand-hex-b{width:170px;top:59%;right:-80px}
  .hero-brand-hex-c,.hero-brand-hex-d{display:none}
  .hero-brand-line{width:70%;opacity:.6}
}

/* Typography revision: Calibri body copy and larger uppercase labels. */
body,button,input,select,textarea{font-family:Calibri,'Segoe UI',Arial,sans-serif}
.eyebrow{font-size:.82rem;letter-spacing:.18em;line-height:1.35}
.offer-card p,.hours-card>span,.profile-label,.profile-card .eyebrow,.profile-brand{font-size:max(.82rem,13px)}

/* Keep the desktop hero title on exactly the two authored lines. */
.hero h1{max-width:none;width:max-content;font-size:clamp(3.65rem,7.15vw,7.25rem);line-height:.96;letter-spacing:-.03em;white-space:nowrap}
.hero h1 em{white-space:nowrap}
@media(max-width:980px){.hero h1{width:auto;max-width:100%;font-size:clamp(3.35rem,9vw,6rem);white-space:normal}}
@media(max-width:650px){.hero h1{font-size:clamp(3rem,14vw,4.6rem);line-height:.98}}

/* All Cinzel display headings use uppercase lettering. */
h1,h2,h3,.hero h1,.section h2,.offer-card h3,.event-date b,.modal-panel h2,.footer-brand b,.brand{text-transform:uppercase}

/* =========================================================
   TLUSTEJ GNÓM 2.0 — PALETTE, FONTS, SHAPES
   ========================================================= */
@font-face{font-family:'Cinzel';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/cinzel-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/cinzel-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/cinzel-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/cinzel-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/cinzel-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/cinzel-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Carlito is metric-compatible with Calibri; local Calibri wins when installed. */
@font-face{font-family:'Carlito';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/carlito-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Carlito';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/carlito-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Carlito';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/carlito-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Carlito';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/carlito-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Carlito';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/carlito-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Carlito';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/carlito-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  /* Base: #003220 #efdfbb #c9852e #a32118 — supplementary: #769588 #22523e #ab6a38 #ecddbb #9c3832 */
  --green:#003220;--green-2:#22523e;--green-foot:#00251a;--sage:#769588;
  --cream:#efdfbb;--cream-2:#ecddbb;--copper:#c9852e;--gold:#c9852e;--gold-light:#c9852e;--copper-dark:#ab6a38;
  --red:#a32118;--red-2:#9c3832;
  --paper:#efdfbb;--white:#f9f1de;--ink:#1c1a15;--muted:#6b6455;--line:rgba(0,50,32,.16);
  --shadow:0 24px 60px rgba(0,37,26,.14);
  --serif:'Cinzel',Georgia,'Times New Roman',serif;
  --sans:Calibri,'Carlito','Segoe UI',Arial,sans-serif;
  --hex:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
  /* Button "wrapper": a hexagon resting on its side, stretched horizontally. */
  --hex-wide:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%)
}
body,button,input,select,textarea{font-family:var(--sans)}
h1,h2,h3,.hero h1,.section h2,.offer-card h3,.event-date b,.modal-panel h2,.footer-brand b,.brand,.eyebrow,
.booking-hero h1,.staff-heading h1,.staff-panel h1,.staff-panel h2,.booking-step h2,.booking-side h2,.my-reservations h2,.table-assignment h2,
.profile-hero h1,.profile-card h2,.legal-hero h1,.legal-document h2,.hours-card b,.contact-grid h3,.staff-time b,.staff-reservation-card h2,.table-section h3,.preorder-category,.staff-preorder-heading h2{font-family:var(--serif)}
::selection{background:var(--copper);color:var(--green)}
:focus-visible{outline:3px solid var(--copper);outline-offset:3px}

/* Buttons — logo-wrapper shape (also cookies "Souhlasím"). */
.btn{border-radius:0;border:0;padding:15px 26px;clip-path:var(--hex-wide);letter-spacing:.02em;transition:transform .2s,background .2s,filter .2s}
.btn:hover{filter:brightness(1.06)}
.btn-large{padding:19px 34px}
.btn-copper{background:var(--copper);color:var(--green);box-shadow:none}
.btn-cream{background:var(--cream);color:var(--green)}
.btn-ghost,.btn-ghost-light{border:0;background:rgba(239,223,187,.14);color:var(--cream)}
.btn-ghost:hover,.btn-ghost-light:hover{background:rgba(239,223,187,.24)}
.btn-danger{background:var(--red);color:var(--cream)}
.btn-green{background:var(--green);color:var(--cream)}
.btn-small{padding:10px 18px;font-size:.88rem}
.nav-reservation-cta{animation:none;box-shadow:none}
/* drop-shadow survives clip-path, so the CTA glow is applied on a wrapper filter */
.nav-reservation-cta,.hero-reserve{position:relative;background:var(--copper);color:var(--green);font-size:1rem}
.hero-reserve{font-size:1.08rem}
.floating-cta{position:fixed;right:22px;bottom:22px;z-index:70;filter:drop-shadow(0 12px 24px rgba(0,37,26,.4));transition:opacity .25s,transform .25s}
.floating-cta[hidden]{display:block;opacity:0;transform:translateY(20px);pointer-events:none}
.floating-cta .btn{animation:ctaNudge 4s ease-in-out infinite}
@keyframes ctaNudge{0%,86%,100%{transform:none}90%{transform:translateY(-4px)}94%{transform:none}}
@media(prefers-reduced-motion:reduce){.floating-cta .btn{animation:none}}

/* Unified hexagons (pointy-top, as in the logo). */
.brand-logo-hex{width:46px;height:53px;flex:0 0 46px;clip-path:var(--hex)}
.brand-logo-hex img{width:40px!important;height:46px!important;clip-path:var(--hex)}
.footer-brand img{width:52px;height:60px;clip-path:var(--hex)}
.profile-menu-avatar,.profile-dropdown-avatar,.nav-profile-avatar,.profile-avatar-large{border-radius:0!important;clip-path:var(--hex);background:var(--copper)!important;color:var(--green)!important}
.profile-menu-avatar{width:32px;height:37px}
.profile-dropdown-avatar{width:42px;height:48px;flex-basis:42px}
.profile-avatar-large{width:84px;height:97px;flex-basis:84px;border:0}
.profile-hero::after{border-radius:0;clip-path:var(--hex);width:200px;height:230px}
.legal-page-brand img,.legal-document-end img{border-radius:0;clip-path:var(--hex);height:44px;width:38px}
.offer-no,.contact-grid article>span{width:40px;height:46px;clip-path:var(--hex);background:rgba(201,133,46,.16);color:var(--copper-dark)}
.hex-image-card:before{width:80px;height:92px;clip-path:var(--hex);background:var(--copper)}
.hex-image-card:after{width:46px;height:53px;clip-path:var(--hex)}
.hero-meta span:before,.hero-meta a:before{clip-path:var(--hex);width:13px;height:15px}
.booking-step>span,.booking-side li:before{border-radius:0;clip-path:var(--hex);height:48px}
.booking-side li:before{height:30px}
.switch span:before{clip-path:var(--hex)}

/* Smaller display headings. */
.section h2{font-size:clamp(2rem,3.6vw,3.1rem);line-height:1.06;font-weight:600}
.modal-panel h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.booking-hero h1,.staff-heading h1{font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.02}
.staff-panel h1{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.legal-hero h1{font-size:clamp(2.3rem,5vw,4rem)}
.profile-hero h1{font-size:clamp(2rem,4vw,3.2rem)}
.offer-card h3{font-size:1.5rem}
.contact-grid h3{font-size:1.45rem}
.event-card h2{font-size:clamp(1.9rem,3.6vw,3rem)}
.eyebrow{color:var(--copper)}
.section-copy>p:not(.eyebrow){color:#4a5249}

/* Header */
.site-header.scrolled{background:rgba(0,50,32,.97)}
.main-nav{gap:20px}
.main-nav>a:not(.btn){font-size:.95rem;font-weight:700;letter-spacing:.01em}
.nav-login{padding:12px 22px}
@media(max-width:1180px) and (min-width:981px){.main-nav{gap:14px}.main-nav>a:not(.btn){font-size:.88rem}.brand>span:last-child{display:none}}

/* Hero — text left, video (or big logo) right. */
.hero.hero-brand{min-height:auto;align-items:center;background:radial-gradient(circle at 75% 45%,rgba(201,133,46,.10),transparent 28rem),linear-gradient(135deg,#00251a 0%,#003220 55%,#22523e 100%)}
.hero-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center;padding:150px 0 76px}
.hero-content{padding:0;position:relative;z-index:2}
.hero h1{width:auto;max-width:640px;white-space:normal;font-size:clamp(2.4rem,4vw,3.7rem);line-height:1.04;letter-spacing:-.01em}
.hero h1 em{white-space:normal;color:var(--copper)}
.hero-copy{margin:22px 0 28px;max-width:560px}
.hero-meta{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:46px;max-width:620px}
.hero-meta a{position:relative;padding-left:25px;text-decoration:none;color:inherit}
.hero-meta a b,.hero-meta a small{display:block}
.hero-meta a small{color:rgba(249,241,222,.58);margin-top:2px;text-decoration:underline;text-underline-offset:3px}
.hero-meta a:before{content:"";position:absolute;left:0;top:.38em;background:var(--copper)}
.hero-visual{position:relative;display:flex;justify-content:center;z-index:1}
.hero-visual-frame{position:relative;width:min(100%,400px);aspect-ratio:1/.866;clip-path:var(--hex);background:var(--copper);display:grid;place-items:center}
.hero-visual-frame::before{content:"";position:absolute;inset:5px;clip-path:var(--hex);background:#00251a}
.hero-logo,.hero-video{position:relative;z-index:1;width:calc(100% - 10px);height:calc(100% - 10px);object-fit:cover;clip-path:var(--hex)}
.hero-brand-hex{transform:none!important}
.hero-brand-hex::after{background:#003220}
.hero-brand-hex-b{width:200px;right:-60px;top:12%;background:rgba(201,133,46,.3)}
.hero-brand-hex-c{width:120px;right:auto;left:44%;top:74%;background:rgba(239,223,187,.14)}
.hero-brand-hex-d{width:64px;left:40%;top:16%;background:rgba(201,133,46,.45)}
@media(max-width:980px){
  .hero-layout{grid-template-columns:1fr;padding:128px 0 56px}
  /* Note "video na mobilu nezobrazovat": the media column is hidden below tablet width. */
  .hero-visual{display:none}
  .hero h1{font-size:clamp(2.3rem,7vw,3.6rem)}
}
@media(max-width:650px){
  .hero.hero-brand{min-height:auto}
  .hero-layout{padding:112px 0 44px}
  .hero h1{font-size:clamp(2.1rem,10vw,2.9rem)}
  .hero-actions .btn{flex:1 1 100%}
  .hero-meta{grid-template-columns:1fr;gap:12px;margin-top:34px}
  .floating-cta{left:14px;right:14px;bottom:14px}
  .floating-cta .btn{width:100%}
}

/* Why us */
.why-list{list-style:none;padding:0;margin:26px 0 8px;display:grid;gap:12px}
.why-list li{position:relative;padding-left:30px;display:grid}
.why-list li:before{content:"";position:absolute;left:0;top:.25em;width:16px;height:18px;clip-path:var(--hex);background:var(--copper)}
.why-list b{color:var(--green)}
.why-list span{color:var(--muted)}

/* Opening hours — private event variant */
.hours-card.private{border-color:rgba(201,133,46,.5);background:rgba(201,133,46,.08)}
.hours-card.private::before{content:"Soukromá akce";align-self:flex-start;order:-1;margin-bottom:8px;padding:3px 9px;background:var(--red);color:var(--cream);font-size:.66rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;clip-path:var(--hex-wide)}
.hours-card.private.override::after{display:none}
.hours-private{display:block;margin-top:6px!important;color:var(--cream)!important;font-weight:700}
.hours-card.highlight .hours-private{color:var(--red)!important}
.hours-private-cta{margin:26px 0 0;color:rgba(239,223,187,.75)}
.hours-private-cta a{color:var(--copper);font-weight:800}

/* Empty states */
.empty-card{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:30px;border-radius:16px;background:var(--green);color:var(--cream)}
.empty-card h3{margin:0 0 4px;font-size:1.35rem;color:var(--cream)}
.empty-card p{margin:0;color:rgba(239,223,187,.72)}
.empty-card-light{background:var(--white);border:1px solid var(--line);color:var(--ink)}
.empty-card-light h3{color:var(--green)}
.empty-card-light p{color:var(--muted)}
.empty-hex{display:block;width:44px;height:51px;clip-path:var(--hex);background:var(--copper)}
@media(max-width:700px){.empty-card{grid-template-columns:1fr}}

/* Events calendar */
.event-section .event-card{margin-bottom:14px}
.event-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.event-list li{display:grid;grid-template-columns:86px 1fr auto;gap:24px;align-items:start;padding:22px 24px;background:var(--white);border:1px solid var(--line);border-radius:16px}
.event-list-date{display:grid;place-items:center;align-content:center;width:72px;height:83px;clip-path:var(--hex);background:var(--green);color:var(--cream);text-align:center;line-height:1}
.event-list-date b{font-family:var(--serif);font-size:1.6rem;color:var(--copper)}
.event-list-date small{font-size:.72rem;font-weight:800;margin-top:4px}
.event-list h3{margin:0;color:var(--green);font-size:1.3rem}
.event-list p{margin:4px 0 0;color:var(--muted)}
.event-list .event-list-time{color:var(--copper-dark);font-weight:800;font-size:.9rem}
.event-list summary{cursor:pointer;font-weight:800;color:var(--green);margin-top:8px}
.event-list .details-content{color:var(--muted);padding-top:6px}
.event-list-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:240px}
.event-list-tags span{padding:4px 10px;background:rgba(0,50,32,.07);border-radius:6px;font-size:.8rem;font-weight:700;color:var(--green)}
@media(max-width:700px){.event-list li{grid-template-columns:64px 1fr;gap:16px;padding:18px}.event-list-date{width:56px;height:65px}.event-list-date b{font-size:1.25rem}.event-list-tags{grid-column:1/-1;justify-content:flex-start}}

/* News */
.news-section{background:var(--white)}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.news-card{padding:26px;border:1px solid var(--line);border-top:4px solid var(--copper);border-radius:12px;background:var(--paper)}
.news-card time{font-size:.82rem;font-weight:800;color:var(--copper-dark);letter-spacing:.06em}
.news-card h3{margin:8px 0 10px;color:var(--green);font-size:1.3rem;line-height:1.15}
.news-body{color:#4a5249}
@media(max-width:900px){.news-grid{grid-template-columns:1fr}}

/* Menu book (paged by category) */
.menu-book{max-width:880px;margin:0 auto 34px}
.menu-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:18px}
.menu-tab{border:0;padding:13px 30px;font:inherit;font-weight:900;font-size:1rem;background:rgba(0,50,32,.08);color:var(--green);cursor:pointer;clip-path:var(--hex-wide)}
.menu-tab[aria-selected="true"]{background:var(--green);color:var(--cream)}
.menu-pages[hidden]{display:none}
.menu-chips{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:thin}
.menu-chip{flex:0 0 auto;border:1px solid var(--line);background:var(--white);padding:7px 14px;border-radius:8px;font:inherit;font-weight:800;font-size:.86rem;color:var(--green);cursor:pointer}
.menu-chip[aria-current="true"]{background:var(--copper);border-color:var(--copper)}
.menu-page{position:relative;padding:38px clamp(22px,5vw,54px);background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:14px}
.menu-page::before{content:"";position:absolute;inset:10px;border:1px solid rgba(201,133,46,.35);border-radius:8px;pointer-events:none}
.menu-book.is-paged .menu-page{display:none;margin-bottom:0;min-height:380px;animation:menuFlip .35s ease}
.menu-book.is-paged .menu-page.is-current{display:block}
@keyframes menuFlip{from{opacity:0;transform:perspective(900px) rotateY(-8deg)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.menu-book.is-paged .menu-page{animation:none}}
.menu-page h3{margin:0 0 22px;text-align:center;color:var(--green);font-size:1.6rem}
.menu-items{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.menu-item-head{display:flex;align-items:baseline;gap:10px}
.menu-item-head strong{color:var(--green);font-size:1.08rem}
.menu-dots{flex:1;border-bottom:2px dotted rgba(0,50,32,.25);transform:translateY(-4px)}
.menu-item-head b{white-space:nowrap;color:var(--copper-dark)}
.menu-items p{margin:3px 0 0;color:var(--muted)}
.menu-items small{color:var(--muted);font-size:.8rem}
.menu-pager{display:none;align-items:center;justify-content:center;gap:18px;margin-top:16px;font-weight:800;color:var(--green)}
.menu-book.is-paged .menu-pager{display:flex}
.menu-pager-btn{width:46px;height:53px;border:0;clip-path:var(--hex);background:var(--green);color:var(--cream);font-size:1.2rem;font-weight:900;cursor:pointer}
.menu-pager-btn:disabled{opacity:.35;cursor:default}
.offer-grid-menu,.offer-grid-games{margin-top:8px}
.offer-grid-games{grid-template-columns:1fr;max-width:620px;margin:22px auto 0}

/* Board games */
.games-section{background:var(--green);color:var(--cream)}
.games-section h2{color:var(--cream)}
.games-section .lead{color:rgba(239,223,187,.7)}
.games-filter{display:grid;grid-template-columns:1.6fr repeat(3,1fr) auto;gap:10px;align-items:end;margin-bottom:22px}
.games-filter label{display:grid;gap:6px;font-weight:800;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(239,223,187,.75)}
.games-filter input[type=search],.games-filter select{width:100%;min-height:48px;padding:10px 14px;border:1px solid rgba(239,223,187,.25);border-radius:10px;background:rgba(255,255,255,.06);color:var(--cream);font:inherit;font-size:1rem;letter-spacing:0;text-transform:none}
.games-filter select option{color:var(--ink)}
.games-filter-check{display:flex!important;align-items:center;gap:8px;min-height:48px;text-transform:none!important;letter-spacing:0!important;font-size:1rem!important;color:var(--cream)!important}
.games-filter-check input{width:18px;height:18px;accent-color:var(--copper)}
.games-rail-wrap{position:relative}
.games-count{margin:0 0 12px;font-weight:800;color:var(--copper)}
.games-rail-controls{position:absolute;right:0;top:-14px;display:flex;gap:6px}
.games-rail-controls .menu-pager-btn{background:var(--copper);color:var(--green)}
.games-rail{list-style:none;margin:0;padding:6px 2px 18px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,280px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:var(--copper) transparent}
.game-card{position:relative;scroll-snap-align:start;display:flex;flex-direction:column;padding:24px 22px;background:var(--cream);color:var(--ink);border-radius:14px;min-height:280px}
.game-card[hidden]{display:none}
.game-new{position:absolute;right:16px;top:-8px;padding:5px 12px;background:var(--red);color:var(--cream);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;clip-path:var(--hex-wide)}
.game-category{margin:0;color:var(--copper-dark);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.game-card h3{margin:6px 0 8px;color:var(--green);font-size:1.25rem;line-height:1.15}
.game-desc{margin:0 0 14px;color:var(--muted);font-size:.94rem}
.game-stats{margin:auto 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:14px;border-top:1px solid var(--line)}
.game-stats div{display:grid}
.game-stats dt{font-size:.72rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.game-stats dd{margin:0;font-weight:800;color:var(--green)}
.games-empty{padding:18px;border:1px dashed rgba(239,223,187,.3);border-radius:12px;color:rgba(239,223,187,.8)}
.games-section .offer-card{background:rgba(255,255,255,.05);border-color:rgba(239,223,187,.2)}
.games-section .offer-card h3,.games-section .offer-card .arrow{color:var(--cream)}
.games-section .offer-card p{color:rgba(239,223,187,.6)}
@media(max-width:980px){.games-filter{grid-template-columns:1fr 1fr}.games-filter-search{grid-column:1/-1}}
@media(max-width:650px){.games-rail-controls{display:none}.games-rail{grid-auto-columns:82%}}

/* Contact map */
.map-embed{margin-top:14px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--white);aspect-ratio:21/8;min-height:300px}
.map-embed iframe{display:block;width:100%;height:100%;border:0}
.map-placeholder{height:100%;display:grid;place-items:center;align-content:center;gap:14px;text-align:center;padding:24px;color:var(--muted)}
.map-placeholder b{color:var(--green);font-family:var(--serif);font-size:1.2rem}
.map-placeholder p{margin:0;max-width:440px}

/* Footer credit */
.footer-bottom{gap:20px;flex-wrap:wrap}
.footer-credit a{color:var(--cream);font-weight:800;text-decoration-color:var(--copper);text-underline-offset:3px}
.footer-credit a:hover{color:var(--copper)}

/* =========================================================
   RESERVATION FORM 2.0
   ========================================================= */
.booking-page{background:var(--paper)}
.booking-form,.booking-side,.staff-panel{border-radius:16px}
.booking-form input,.booking-form select,.booking-form textarea,.table-assignment input,.table-assignment select,.table-assignment textarea{border-radius:10px;background:#fff}
.purpose-grid span{border-radius:12px}
.booking-step>span{background:var(--green);color:var(--cream);width:42px;flex-basis:42px}
.booking-optional{margin:0 0 6px;padding:0;border:0}
.booking-optional legend{font-weight:850;color:var(--green);margin-bottom:6px}
.kitchen-warning{margin:-8px 0 22px;padding:12px 14px;border-radius:10px;background:rgba(163,33,24,.08);border-left:3px solid var(--red);color:#5b1a12;font-size:.92rem}
.kitchen-warning[hidden]{display:none}
.preorder-product.is-unavailable{opacity:.45}
.preorder-product.is-unavailable .preorder-quantity{pointer-events:none}
.reservation-card{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px}
.reservation-card-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.reservation-code{font-size:.8rem;font-weight:800;color:var(--muted);letter-spacing:.05em}
.reservation-card h3{margin:8px 0 6px;color:var(--green);font-size:1.3rem}
.reservation-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:.95rem}
.reservation-guest-note{margin-top:12px;padding:12px 14px;border-radius:10px;background:var(--paper)}
.reservation-guest-note p{margin:4px 0 0}
.reservation-staff-message{margin-top:12px;padding:12px 14px;border-radius:10px;background:rgba(0,50,32,.07);border-left:3px solid var(--copper)}
.reservation-staff-message p{margin:4px 0 0}
.reservation-state-info{margin:12px 0 0;color:var(--muted)}
.reservation-cancel-btn{background:rgba(163,33,24,.1);color:var(--red)}
.reservation-list-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px}
.reservation-past summary{cursor:pointer;font-weight:800;color:var(--green);margin:20px 0 10px}
@media(max-width:650px){.reservation-card{flex-direction:column}}

/* =========================================================
   STAFF / ADMIN 2.0
   ========================================================= */
.staff-page{background:#f3e8cf}
.staff-header .booking-header-inner{gap:18px}
.staff-nav{display:flex;gap:4px;overflow-x:auto;flex:1;justify-content:center;scrollbar-width:none}
.staff-nav a{flex:0 0 auto;padding:9px 13px;border-radius:8px;color:rgba(239,223,187,.78);text-decoration:none;font-weight:800;font-size:.92rem}
.staff-nav a:hover{color:var(--cream);background:rgba(239,223,187,.08)}
.staff-nav a[aria-current="page"]{background:var(--copper);color:var(--green)}
.staff-user{display:grid;text-align:right;font-weight:800;font-size:.9rem;white-space:nowrap}
.staff-user small{color:var(--copper);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:900px){.staff-header .booking-header-inner{flex-wrap:wrap;padding:12px 0}.staff-nav{order:3;flex-basis:100%;justify-content:flex-start}.staff-user{display:none}}
.staff-main .flash-stack{position:fixed}
.staff-main h2{font-family:var(--serif)}

/* Reservations overview */
.staff-overview{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.staff-sidebar{display:grid;gap:14px;position:sticky;top:100px}
.staff-calendar{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px}
.staff-calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.staff-calendar-head b{font-family:var(--serif);color:var(--green)}
.staff-calendar-head a{text-decoration:none;font-weight:900;color:var(--green);padding:4px 10px;border-radius:6px}
.staff-calendar-head a:hover{background:rgba(0,50,32,.08)}
.staff-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.staff-calendar-grid>span{font-size:.7rem;font-weight:900;color:var(--muted);padding:4px 0}
.staff-calendar-grid a{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:700;font-size:.88rem}
.staff-calendar-grid a:hover{background:rgba(0,50,32,.07)}
.staff-calendar-grid a.is-other{color:#b3ab98}
.staff-calendar-grid a.is-today{box-shadow:inset 0 0 0 2px var(--copper)}
.staff-calendar-grid a.is-selected{background:var(--green);color:var(--cream)}
.staff-calendar-grid a i{position:absolute;bottom:3px;left:50%;transform:translateX(-50%);min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--sage);color:#fff;font-style:normal;font-size:.62rem;font-weight:900;line-height:15px}
.staff-calendar-grid a i.has-pending{background:var(--red)}
.staff-filter-form{display:grid;gap:10px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px}
.staff-filter-form label,.admin-form label{display:grid;gap:6px;font-weight:800;color:var(--green);font-size:.9rem}
.staff-filter-form input,.staff-filter-form select,.admin-form input:not([type=checkbox]):not([type=radio]),.admin-form select,.admin-form textarea{width:100%;min-height:44px;padding:9px 12px;border:1px solid rgba(0,50,32,.2);border-radius:9px;background:#fff;font:inherit;color:var(--ink)}
.admin-form textarea{resize:vertical}
.staff-view-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:rgba(0,50,32,.07);padding:4px;border-radius:10px}
.staff-view-switch a{text-align:center;padding:8px 6px;border-radius:7px;text-decoration:none;font-weight:800;font-size:.85rem;color:var(--green)}
.staff-view-switch a[aria-current="true"]{background:var(--green);color:var(--cream)}
.staff-list-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.staff-list-head h2{margin:0;color:var(--green);font-size:1.6rem}
.staff-list-head p{margin:0;color:var(--muted)}
.staff-day-nav{display:flex;gap:6px}
.staff-day-nav a{padding:8px 12px;border-radius:8px;background:var(--white);border:1px solid var(--line);text-decoration:none;font-weight:800;color:var(--green)}
.staff-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.staff-stats div{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.staff-stats b{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--green)}
.staff-stats span{font-size:.8rem;color:var(--muted);font-weight:700}
.staff-stats .is-alert b{color:var(--red)}
.staff-day-group{margin:20px 0 8px;font-family:var(--serif);color:var(--green);font-size:1.1rem}
.staff-reservation-card{grid-template-columns:84px 1fr auto auto;border-radius:14px;padding:16px 20px;color:inherit}
.staff-reservation-card.is-pending{border-left:4px solid var(--red)}
.staff-reservation-card.is-confirmed{border-left:4px solid var(--sage)}
.staff-reservation-card h2{font-size:1.2rem}
.staff-reservation-card .staff-guest-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.guest-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;background:rgba(0,50,32,.07);font-size:.74rem;font-weight:800;color:var(--green)}
.guest-tag.is-warn{background:rgba(163,33,24,.1);color:var(--red)}
.guest-tag.is-good{background:rgba(118,149,136,.2);color:#2d4a3f}
.staff-tables-badge{font-weight:800;color:var(--green);text-align:right;font-size:.88rem}
.staff-tables-badge small{display:block;color:var(--muted);font-weight:600}
.status-filters a[aria-current="true"]{background:var(--green);color:var(--cream)}
@media(max-width:1000px){.staff-overview{grid-template-columns:1fr}.staff-sidebar{position:static;grid-template-columns:1fr 1fr}}
@media(max-width:650px){.staff-sidebar{grid-template-columns:1fr}.staff-stats{grid-template-columns:1fr 1fr}.staff-reservation-card{grid-template-columns:64px 1fr}.staff-tables-badge{grid-column:2;text-align:left}}

/* Reservation detail */
.reservation-detail-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.staff-panel+.staff-panel{margin-top:0}
.staff-stack{display:grid;gap:18px}
.staff-panel h2{color:var(--green);font-size:1.5rem;margin:0 0 12px}
.detail-list strong{overflow-wrap:anywhere}
.guest-account{margin-top:20px;padding:16px;border-radius:12px;background:rgba(0,50,32,.05)}
.guest-account h3{margin:0 0 8px;font-size:1rem;color:var(--green)}
.guest-account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.guest-account-stats b{display:block;font-family:var(--serif);font-size:1.4rem;color:var(--green)}
.guest-account-stats span{font-size:.75rem;color:var(--muted);font-weight:700}
.guest-account-stats .is-warn b{color:var(--red)}
.guest-history{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:4px;font-size:.88rem}
.guest-history li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.guest-history a{color:var(--green);font-weight:800}
.guest-wishes{display:grid;gap:8px;margin-top:18px}
.guest-wishes div{padding:12px 14px;border-radius:10px;background:var(--paper)}
.guest-wishes b{display:block;color:var(--green);font-size:.85rem}
.guest-wishes .is-diet{background:rgba(163,33,24,.08);border-left:3px solid var(--red)}
.quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}
.quick-actions form{margin:0}
.internal-notes{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.internal-notes li{padding:12px 14px;border-radius:10px;background:#fff7e4;border:1px solid rgba(201,133,46,.3)}
.internal-notes small{display:block;color:var(--muted);font-size:.78rem;margin-bottom:4px}
.internal-notes p{margin:0;white-space:pre-line}
.internal-notes form{margin-top:6px}
.internal-notes button{border:0;background:none;padding:0;color:var(--red);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.staff-hint{font-size:.85rem;color:var(--muted);margin:6px 0 0}
.assign-summary{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:10px;background:var(--green);color:var(--cream);margin:14px 0;font-weight:800}
.assign-summary.is-short{background:var(--red)}
.over-capacity{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px;font-weight:700!important;color:var(--muted)!important;margin-bottom:14px}

/* Floor plan */
.floor-map{position:relative;width:100%;aspect-ratio:16/9;min-height:260px;border-radius:12px;background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(0,50,32,.05) 31px 32px),repeating-linear-gradient(90deg,transparent 0 31px,rgba(0,50,32,.05) 31px 32px),var(--paper);border:1px solid var(--line);overflow:hidden}
.floor-map.is-empty-layout{aspect-ratio:auto;min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;padding:12px}
.floor-map .table-tile{position:absolute;transform:translate(-50%,-50%);width:86px;margin:0}
.floor-map.is-empty-layout .table-tile{position:static;transform:none;width:auto}
.table-tile span{min-height:0;aspect-ratio:1/.866;border:0!important;border-radius:0!important;clip-path:var(--hex);background:var(--white)!important;box-shadow:none!important;position:relative;padding:6px;text-align:center;line-height:1.15}
.table-tile span::before{content:"";position:absolute;inset:0;clip-path:var(--hex);background:rgba(0,50,32,.25);z-index:-1}
.table-tile{position:relative;isolation:isolate;cursor:pointer;display:block}
.table-tile span{isolation:isolate}
.table-tile input:checked+span{background:var(--copper)!important;color:var(--green)}
.table-tile input:focus-visible+span{outline:3px solid var(--green)}
.table-tile.is-busy span{background:repeating-linear-gradient(45deg,#e9d6d0 0 6px,#f6e8e3 6px 12px)!important;color:var(--red)}
.table-tile.is-busy small.busy-code{display:block;font-weight:900;color:var(--red);font-size:.66rem}
.table-tile.is-blocked span{background:#d9d2c2!important;color:#7b7262}
.table-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;color:var(--muted);margin:8px 0 0}
.table-legend i{display:inline-block;width:12px;height:14px;clip-path:var(--hex);vertical-align:-2px;margin-right:5px}
.table-legend .l-free{background:var(--white);outline:1px solid var(--line)}
.table-legend .l-sel{background:var(--copper)}
.table-legend .l-busy{background:#e9b9ad}
.table-legend .l-block{background:#d9d2c2}
.section-block-note{margin:6px 0 10px;padding:10px 12px;border-radius:8px;background:rgba(163,33,24,.08);color:var(--red);font-weight:700;font-size:.88rem}

/* Floor plan editor (tables admin) */
.floor-editor .table-tile{cursor:grab;touch-action:none}
.floor-editor .table-tile.is-dragging{cursor:grabbing;z-index:5}
.floor-editor .table-tile.is-inactive span{opacity:.45}

/* Generic admin lists/forms */
.admin-layout{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:18px;align-items:start}
.admin-form{display:grid;gap:14px}
.admin-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.admin-form .form-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.admin-check{display:flex!important;align-items:center;gap:9px;font-weight:700!important}
.admin-check input{width:18px;height:18px;accent-color:var(--green)}
.admin-actions{display:flex;flex-wrap:wrap;gap:8px}
.admin-list{display:grid;gap:8px}
.admin-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;background:var(--white);border:1px solid var(--line);border-radius:12px}
.admin-item.is-muted{opacity:.6}
.admin-item h3{margin:0;font-size:1.05rem;color:var(--green);font-family:var(--sans);text-transform:none}
.admin-item p{margin:2px 0 0;color:var(--muted);font-size:.88rem}
.admin-item-actions{display:flex;gap:6px;flex-shrink:0;align-items:center}
.admin-item-actions form{margin:0}
.admin-link{font-weight:800;color:var(--green)}
.admin-link-danger{border:0;background:none;padding:0;font:inherit;font-weight:800;color:var(--red);cursor:pointer;text-decoration:underline}
.admin-section-title{margin:26px 0 10px;color:var(--green);font-size:1.25rem}
.admin-hours-table{width:100%;border-collapse:collapse}
.admin-hours-table th{text-align:left;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:6px}
.admin-hours-table td{padding:6px;border-top:1px solid var(--line)}
.admin-hours-table input[type=time]{min-height:40px;padding:6px 8px;border:1px solid rgba(0,50,32,.2);border-radius:8px;font:inherit;background:#fff}
.upload-card{display:grid;gap:10px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.upload-card h3{margin:0;color:var(--green);font-size:1.15rem}
.upload-card p{margin:0;color:var(--muted);font-size:.9rem}
.upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:1000px){.admin-layout,.upload-grid{grid-template-columns:1fr}}
@media(max-width:650px){.admin-form .form-row,.admin-form .form-row-3{grid-template-columns:1fr}.admin-item{flex-direction:column;align-items:flex-start}.admin-hours-table{font-size:.85rem}}
.staff-page .profile-empty,.booking-page .profile-empty{color:var(--muted);border-color:var(--line);background:var(--white)}
.admin-search{min-height:40px;padding:8px 12px;border:1px solid rgba(0,50,32,.2);border-radius:9px;font:inherit;background:#fff}
.staff-reservation-card h2 small{font-family:var(--sans);text-transform:none;font-size:.85rem;color:var(--muted);font-weight:700}
.staff-heading .lead{margin:0}
.map-embed{aspect-ratio:auto;height:clamp(300px,36vw,440px);min-height:0}
.hours-card.highlight.closed strong{color:var(--red)}
.hours-card.private.highlight{background:var(--cream)}
.staff-calendar-grid a i{top:1px;right:1px;bottom:auto;left:auto;transform:none}
.staff-page .staff-heading h1{font-size:clamp(2rem,3.4vw,2.8rem)}
.table-tile span::before{display:none}
.table-tile{filter:drop-shadow(0 1px 1px rgba(0,50,32,.45)) drop-shadow(0 0 1px rgba(0,50,32,.5))}
.table-tile span{background:#fffaf0!important}
.table-tile input:checked+span small{color:var(--green)}
.over-capacity input,.admin-check input,.auth-check input{width:20px!important;min-height:0!important;height:20px;flex:0 0 20px;padding:0}
.floor-map .table-tile{width:74px}

/* =========================================================
   HEXAGONS REST ON A SIDE (flat top and bottom, points left/right)
   Width : height = 1 : 0.866
   ========================================================= */
.brand-logo-hex{width:53px;height:46px;flex-basis:53px}
.brand-logo-hex img{width:46px!important;height:40px!important}
.footer-brand img{width:60px;height:52px}
.profile-menu-avatar{width:37px;height:32px}
.profile-dropdown-avatar{width:48px;height:42px;flex-basis:48px}
.profile-avatar-large{width:97px;height:84px;flex-basis:97px}
.profile-hero::after{width:230px;height:200px}
.legal-page-brand img,.legal-document-end img{width:44px;height:38px}
.offer-no,.contact-grid article>span{width:46px;height:40px}
.hex-image-card:before{width:92px;height:80px}
.hex-image-card:after{width:53px;height:46px}
.hero-meta span:before,.hero-meta a:before,.hero-meta span::before{width:15px;height:13px}
.booking-step>span{width:48px;height:42px;flex-basis:48px}
.booking-side li:before{width:30px;height:26px}
.why-list li:before{width:18px;height:16px}
.empty-hex{width:51px;height:44px}
.event-list-date{width:83px;height:72px}
.menu-pager-btn{width:53px;height:46px}
.table-legend i{width:14px;height:12px}
.btn{padding-inline:30px}
.btn-large{padding-inline:38px}
@media(max-width:700px){.event-list-date{width:65px;height:56px}}
@media(max-width:650px){.brand-logo-hex{width:48px;height:42px;flex-basis:48px}.brand-logo-hex img{width:42px!important;height:36px!important}}

/* =========================================================
   BUTTONS — OVALS
   ========================================================= */
.btn,.menu-tab,.game-new,.hours-card.private::before{clip-path:none;border-radius:999px}
.btn{padding:14px 28px}
.btn-large{padding:17px 34px}
.btn-small{padding:9px 18px}
.btn-copper{box-shadow:0 8px 20px rgba(201,133,46,.28)}
.btn-ghost,.btn-ghost-light{border:1px solid rgba(239,223,187,.35)}
.menu-tab{padding:11px 28px}
.floating-cta{filter:none}
.floating-cta .btn{box-shadow:0 12px 28px rgba(0,37,26,.4)}

/* Footer bottom row: readable, credit at full strength. */
.footer-bottom{opacity:1;color:rgba(239,223,187,.62)}
.footer-credit{color:rgba(239,223,187,.8)}
.footer-credit a{color:var(--copper)}
.footer-credit a:hover{color:var(--cream)}
