:root {
    --gold:#d7a13d;
    --gold2:#f0c36b;
    --wine:#65190f;
    --cream:#f3e6cc;
    --ink:#0b0908;
    --paper:#dfc9a5;
    --line:rgba(215,161,61,.7)
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    background:#090807;
    color:#f5ead7;
    font-family:Montserrat,Arial,sans-serif;
    overflow-x:hidden
}
.serif {
    font-family:"Cormorant Garamond",serif
}
.wrap {
    width:min(1480px,calc(100% - 36px));
    margin:auto
}
a {
    color:inherit;
    text-decoration:none
}
button {
    font:inherit
}
header {
    position:fixed;
    inset:0 0 auto;
    z-index:30;
    background:linear-gradient(180deg,rgba(4,4,3,.95),rgba(4,4,3,.58),transparent);
    transition:.3s
}
header.scrolled {
    background:rgba(7,6,5,.96);
    box-shadow:0 12px 30px #0008
}
.nav {
    height:96px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px
}
.brand {
    display:flex;
    align-items:center;
    gap:12px;
    min-width:250px
}
.brand img {
    width:74px;
    filter:drop-shadow(0 5px 8px #000)
}
.brand-video {
    width: 150px;
    height: 78px;
    object-fit: contain;
    object-position: left center;
    display: block;
    filter: drop-shadow(0 5px 8px #000);
}
.brand-contact {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    line-height: 1.35;
    letter-spacing: .4px;
}

.brand-address {
    color: rgba(255,255,255,.78);
}

.brand-address:hover {
    color: #f0c36b;
}

.brand-divider {
    color: #d6a15d;
}

.brand-phone {
    font-family: "Cormorant Garamond", serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #d6a15d;
}

.brand-phone:hover {
    color: #f0c36b;
}
.brand-contact strong {
    margin-top: 2px;
    font-family: "Cormorant Garamond", serif;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #d6a15d;
}
.brand strong {
    display:block;
    font:600 34px/1 "Cormorant Garamond",serif;
    color:var(--gold2)
}
.brand small {
    font-size:9px;
    letter-spacing:3px;
    color:#d9b978
}
.links {
    display:flex;
    align-items:center;
    gap:27px;
    font-size:13px;
    letter-spacing:.8px
}
.links a {
    position:relative
}
.links a:after {
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:-8px;
    height:1px;
    background:var(--gold);
    transition:.25s
}
.links a:hover:after {
    right:0
}
.nav-cta,.btn {
    background:linear-gradient(180deg,#7a2014,#4a0e09);
    border:1px solid #b56a34;
    color:#fff;
    padding:13px 22px;
    letter-spacing:.8px;
    box-shadow:inset 0 0 0 1px #2c0704,0 10px 25px #0006;
    cursor:pointer
}
.menu-toggle {
    display:none;
    background:none;
    border:0;
    color:var(--gold2);
    font-size:26px
}
.hero {
    min-height:810px;
    position:relative;
    display:grid;
    align-items:center;
   background:#000;
}
.hero-bg-video{
    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;
    object-position:center;

    z-index:0;

    pointer-events:none;
}

.hero:before{
    z-index:1;
}

.hero .wrap{
    position:relative;
    z-index:2;
}
.hero:before {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(4,4,3,.92) 0%,rgba(4,4,3,.7) 32%,rgba(4,4,3,.1) 63%,rgba(4,4,3,.2)),linear-gradient(0deg,#090807 0%,transparent 25%)
}
.hero-content {
    position:relative;
    z-index:2;
    padding-top:110px;
    width:min(680px,58%)
}
.hero-logo-video {
    position: absolute;

    top: 125px;
    left: 100%;
    right: auto;

    width: 700px;
    max-width: 42vw;

    aspect-ratio: 700 / 375;
    height: auto;

    z-index: 3;
    overflow: hidden;
    pointer-events: none;
}

.hero-logo-video video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;

    filter: drop-shadow(0 12px 28px rgba(0,0,0,.55));

    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0,0,0,.25) 6%,
        rgba(0,0,0,.75) 12%,
        #000 18%,
        #000 82%,
        rgba(0,0,0,.75) 88%,
        rgba(0,0,0,.25) 94%,
        transparent 100%
    );

    mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0,0,0,.25) 6%,
        rgba(0,0,0,.75) 12%,
        #000 18%,
        #000 82%,
        rgba(0,0,0,.75) 88%,
        rgba(0,0,0,.25) 94%,
        transparent 100%
    );

    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;

    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}
.eyebrow {
    color:#c95b2d;
    font:italic 24px "Cormorant Garamond",serif;
    letter-spacing:1px
}
.hero h1 {
    font:600 clamp(58px,6.3vw,104px)/.92 "Cormorant Garamond",serif;
    margin:14px 0 24px;
    text-shadow:0 4px 25px #000
}
.ornament {
    display:flex;
    align-items:center;
    gap:14px;
    width:280px;
    color:#a82016;
    margin:16px 0 26px
}
.ornament:before,.ornament:after {
    content:"";
    height:1px;
    flex:1;
    background:currentColor
}
.hero p {
    max-width:540px;
    font-size:18px;
    line-height:1.8;
    color:#f4eadc
}
.hero-actions {
    display:flex;
    gap:14px;
    margin-top:32px
}
.btn.secondary {
    background:transparent;
    border-color:var(--gold);
    color:var(--gold2)
}
.cards-wrap {
    position:relative;
    z-index:5;
    margin-top:-98px
}
.cards {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:12px
}
.feature-card {
    position:relative;
    aspect-ratio:.74;
    overflow:hidden;
    border:1px solid var(--gold);
    background:#111;
    box-shadow:0 18px 35px #0009;
    isolation:isolate
}
.feature-card img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.6s transform,.6s filter
}
.feature-card:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(0,0,0,.75),transparent 42%);
    z-index:1
}
.feature-card:hover img {
    transform:scale(1.045);
    filter:brightness(1.12)
}
.feature-card .overlay {
    position:absolute;
    inset:auto 18px 18px;
    z-index:2
}
.feature-card .overlay strong {
    font:600 29px/1 "Cormorant Garamond",serif
}
.feature-card .overlay span {
    display:block;
    margin-top:9px;
    color:var(--gold2);
    font-size:12px;
    letter-spacing:1px
}
.gallery-art {
    background:url('../assets/hero-transition.png')75% center/cover
}
.gallery-art:before {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(#0002,#0005)
}
.family {
    position:relative;
    color:#1b1510;
    background:linear-gradient(90deg,#e4d0ab,#c5a77b);
    padding:78px 0 72px;
    overflow:hidden
}
.family:before {
    content:"";
    position:absolute;
    inset:0;
    background-image:radial-gradient(#8b694218 1px,transparent 1px);
    background-size:8px 8px;
    mix-blend-mode:multiply
}
.family-grid {
    position:relative;
    display:grid;
    grid-template-columns:300px 1fr;
    gap:54px;
    align-items:center
}
.family-copy h2,.section-title {
    font:600 54px/1 "Cormorant Garamond",serif;
    margin:5px 0 20px
}
.script {
    font:italic 31px "Cormorant Garamond",serif;
    color:#7d2218
}
.family-copy p {
    line-height:1.75
}
.portrait-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px
}
.portrait {
    aspect-ratio:.72;
    background:linear-gradient(160deg,#34251e,#0f0d0b);
    border:1px solid #815e35;
    display:flex;
    align-items:end;
    justify-content:center;
    padding:22px;
    color:#c9a66c;
    position:relative;
    overflow:hidden
}
.portrait:before {
    content:"";
    position:absolute;
    width:60%;
    aspect-ratio:1;
    border-radius:50%;
    top:18%;
    background:radial-gradient(circle at 50% 35%,#9a7553,#3a2a21 60%,transparent 61%);
    opacity:.38
}
.portrait span {
    position:relative;
    font:22px "Cormorant Garamond",serif
}
.portrait:nth-child(2),.portrait:nth-child(4) {
    transform:translateY(20px)
}
.dishes {
    padding:84px 0 90px;
    background:#0c0a08;
    position:relative
}
.dishes:before {
    content:"";
    position:absolute;
    inset:0;
    background:url('../assets/footer-wide.png') center/cover;
    opacity:.17
}
.section-head {
    position:relative;
    display:flex;
    align-items:end;
    justify-content:space-between;
    margin-bottom:28px
}
.section-head p {
    color:#cdbb9c
}
.dish-grid {
    position:relative;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:13px
}
.dish {
    border:1px solid var(--gold);
    background:#130f0c;
    overflow:hidden
}
.dish img {
    width:100%;
    aspect-ratio:1.12;
    object-fit:cover;
    display:block;
    transition:.5s
}
.dish:hover img {
    transform:scale(1.04)
}
.dish h3 {
    font:600 28px "Cormorant Garamond",serif;
    margin:14px 18px 4px
}
.dish p {
    font-size:12px;
    color:#bdaa88;
    margin:0 18px 18px
}

.events {
    padding:84px 0;
    background:linear-gradient(90deg,#170b08,#090807)
}
.events-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    align-items:center
}
.event-photo {
    min-height:590px;
    position:relative;
    overflow:hidden;
    border:1px solid var(--gold);
    box-shadow:0 25px 50px #0008;
    background:#000;
}

.event-room-video {
    display:block;
    width:100%;
    height:590px;
    object-fit:contain;
    object-position:center;
}
.events h2 {
    font:600 64px/.95 "Cormorant Garamond",serif
}
.events p {
    color:#cbb99a;
    line-height:1.8
}
.facts {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin:28px 0
}
.fact {
    border-top:1px solid var(--gold);
    padding-top:12px
}
.fact b {
    display:block;
    color:var(--gold2);
    font:32px "Cormorant Garamond",serif
}
.fact span {
    font-size:11px;
    color:#b7a385
}
footer {
    position:relative;
    background:url('../assets/footer-wide.png')center/cover;
    color:#e9dcc6;
    padding:58px 0 24px
}
.footer-grid {
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr 1fr;
    gap:34px
}
.footer-brand .brand {
    margin-bottom:18px
}
.footer-grid h4 {
    color:var(--gold2);
    font:600 21px "Cormorant Garamond",serif
}
.footer-grid p,.footer-grid a {
    font-size:13px;
    line-height:1.9;
    color:#d2c2a8
}
.copyright {
    text-align:center;
    margin-top:38px;
    padding-top:18px;
    border-top:1px solid #a26b2e66;
    color:#a8906d;
    font-size:12px
}
.reveal {
    opacity:0;
    transform:translateY(24px);
    transition:.8s
}
.reveal.visible {
    opacity:1;
    transform:none
}
/* =====================================================
   ACCESSIBLE TEXT MENU
   ===================================================== */

.accessible-menu-section {
    width: min(1180px, 92%);
    margin: 28px auto 42px;
}

.accessible-menu {
    border: 1px solid #9f6a2e;
    background: rgba(8, 6, 4, .94);
}

.accessible-menu-toggle {
    padding: 16px 24px;
    text-align: center;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #fff;
    background: linear-gradient(180deg, #7a2014, #4a0e09);
    cursor: pointer;
    list-style: none;
}

.accessible-menu-toggle::-webkit-details-marker {
    display: none;
}

.accessible-menu-toggle::after {
    content: "  +";
    color: #d6a15d;
    font-size: 18px;
}

.accessible-menu[open] .accessible-menu-toggle::after {
    content: "  −";
}

.accessible-menu-toggle:hover,
.accessible-menu-toggle:focus-visible {
    background: linear-gradient(180deg, #8d291b, #57110b);
    outline: 2px solid #e2b66d;
    outline-offset: 3px;
}

.accessible-menu-content {
    max-width: 1000px;
    margin: 0 auto;
    padding: 38px 42px 48px;
    color: #f4efe7;
}

.accessible-menu-header {
    text-align: center;
    margin-bottom: 38px;
}

.accessible-menu-header h2 {
    margin: 5px 0 10px;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(34px, 4vw, 52px);
    color: #fff;
}

.accessible-menu-header p {
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.7;
    color: rgba(255,255,255,.78);
}

.accessible-menu-category {
    padding: 28px 0;
    border-top: 1px solid rgba(214,161,93,.28);
}

.accessible-menu-category h3 {
    margin: 0 0 20px;
    font-family: "Cormorant Garamond", serif;
    font-size: 34px;
    color: #d6a15d;
}

.accessible-menu-category h4 {
    margin: 25px 0 12px;
    font-family: "Cormorant Garamond", serif;
    font-size: 24px;
    color: #fff;
}

.accessible-menu-category p,
.accessible-menu-category li,
.accessible-menu-category dd {
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    line-height: 1.7;
}

.accessible-menu-category dl {
    margin: 0;
}

.accessible-menu-category dt {
    margin-top: 15px;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
}

.accessible-menu-category dd {
    margin: 3px 0 0;
    color: rgba(255,255,255,.76);
}

.accessible-menu-category ul {
    padding-left: 22px;
}

.accessible-menu-columns {
    columns: 3;
    column-gap: 35px;
}


/* MOBILE */

@media (max-width: 700px) {

    .accessible-menu-section {
        width: 94%;
        margin: 20px auto 30px;
    }

    .accessible-menu-content {
        padding: 28px 20px 36px;
    }

    .accessible-menu-toggle {
        padding: 15px 12px;
        font-size: 12px;
    }

    .accessible-menu-category h3 {
        font-size: 29px;
    }

    .accessible-menu-category h4 {
        font-size: 22px;
    }

    .accessible-menu-columns {
        columns: 2;
    }
}
@media(max-width:1050px) {

    /* HEADER / TABLET / SMALL LAPTOP */

    .nav {
        gap:14px;
    }
.nav-cta {
    padding: 9px 13px;
    font-size: 11px;
    letter-spacing: .5px;
    white-space: nowrap;
    flex-shrink: 0;
}
    .brand {
        min-width:0;
        flex:1;
    }

    .brand-video {
        width:130px;
        height:70px;
    }

    .brand-contact {
        font-size:10px;
        gap:5px;
    }

    .brand-phone {
        font-size:17px;
    }

    .links {
        display:none;
    }

    .menu-toggle {
        display:block;
        flex-shrink:0;
        min-width:44px;
        min-height:44px;
    }

    .links.open {
        display:flex;
        position:absolute;
        top:88px;
        left:18px;
        right:18px;
        padding:24px;
        background:#0b0908;
        border:1px solid var(--gold);
        flex-direction:column;
        z-index:50;
    }

    .cards {
        grid-template-columns:repeat(3,1fr);
    }

    .feature-card:nth-child(4),
    .feature-card:nth-child(5) {
        aspect-ratio:1.3;
    }

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

    .dish-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .footer-grid {
        grid-template-columns:repeat(2,1fr);
    }
        /* HERO — TABLET / SMALL LAPTOP */

    .hero {
        min-height:760px;
    }

    .hero-content {
        width:min(600px,62%);
        padding-top:100px;
    }


    .hero h1 {
        font-size:clamp(58px,7vw,78px);
    }

    .hero p {
        font-size:16px;
    }
}

/* =========================================================
   CAFFÈ POSITANO — OUR MENUS GALLERY
   ========================================================= */
.our-menus {
    position:relative;
    padding:92px 0 104px;
    overflow:hidden;
    background:
      radial-gradient(circle at 50% 10%,rgba(126,61,23,.16),transparent 36%),
      linear-gradient(180deg,#0c0907,#080706);
}
.our-menus:before {
    content:"";
    position:absolute;
    inset:0;
    background:url('../assets/footer-wide.png') center/cover;
    opacity:.12;
    pointer-events:none;
}
.menu-gallery-head {
    position:relative;
    text-align:center;
    max-width:760px;
    margin:0 auto 42px;
}
.menu-gallery-head .script { color:#b94524; }
.menu-gallery-head h2 {
    margin:6px 0 12px;
    font:600 clamp(48px,5vw,72px)/.95 "Cormorant Garamond",serif;
}
.menu-gallery-head p {
    margin:0;
    color:#cbb99a;
    line-height:1.7;
}
.menu-gallery-divider {
    display:flex;
    align-items:center;
    gap:14px;
    width:min(340px,75%);
    margin:22px auto 0;
    color:var(--gold);
}
.menu-gallery-divider:before,
.menu-gallery-divider:after {
    content:"";
    height:1px;
    flex:1;
    background:linear-gradient(90deg,transparent,currentColor);
}
.menu-gallery-divider:after { transform:scaleX(-1); }
.menu-gallery-grid {
    position:relative;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}
.menu-gallery-card {
    position:relative;
    min-width:0;
    padding:12px 12px 18px;
    border:1px solid rgba(215,161,61,.58);
    background:linear-gradient(160deg,rgba(35,19,11,.96),rgba(12,9,7,.98));
    box-shadow:0 24px 55px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,220,145,.04);
    cursor:pointer;
    overflow:hidden;
    transition:transform .45s cubic-bezier(.2,.75,.2,1),border-color .35s,box-shadow .35s;
}
.menu-gallery-card:before {
    content:"";
    position:absolute;
    inset:-35% -80%;
    z-index:3;
    pointer-events:none;
    background:linear-gradient(110deg,transparent 42%,rgba(255,220,150,.13) 49%,transparent 56%);
    transform:translateX(-35%);
    transition:transform 1s ease;
}
.menu-gallery-card:hover {
    transform:translateY(-10px);
    border-color:var(--gold2);
    box-shadow:0 32px 68px rgba(0,0,0,.66),0 0 30px rgba(215,161,61,.12);
}
.menu-gallery-card:hover:before { transform:translateX(35%); }
.menu-gallery-preview {
    position:relative;
    aspect-ratio:.67;
    overflow:hidden;
    background:#efe3c8;
    border:1px solid rgba(240,195,107,.52);
}
.menu-gallery-preview img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:top center;
    transition:transform .65s cubic-bezier(.2,.75,.2,1),filter .45s;
}
.menu-gallery-card:hover .menu-gallery-preview img {
    transform:scale(1.035);
    filter:brightness(1.05);
}
.menu-gallery-preview:after {
    content:"";
    position:absolute;
    inset:0;
    box-shadow:inset 0 0 28px rgba(52,25,4,.18);
    pointer-events:none;
}
.menu-gallery-meta {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:14px;
    padding:17px 6px 2px;
}
.menu-gallery-meta h3 {
    margin:0;
    font:600 31px/1 "Cormorant Garamond",serif;
}
.menu-gallery-meta small {
    display:block;
    margin-top:7px;
    color:#bca987;
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.menu-gallery-open {
    flex:0 0 auto;
    color:var(--gold2);
    font-size:12px;
    letter-spacing:.12em;
    white-space:nowrap;
    transform:translateX(-5px);
    transition:transform .3s;
}
.menu-gallery-card:hover .menu-gallery-open { transform:translateX(2px); }

body.menu-viewer-open { overflow:hidden; }
.menu-viewer {
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    visibility:hidden;
    opacity:0;
    background:rgba(5,4,3,.96);
    backdrop-filter:blur(12px);
    transition:opacity .32s ease,visibility .32s;
}
.menu-viewer.is-open { visibility:visible;opacity:1; }
.menu-viewer:before {
    content:"";
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 50% 42%,rgba(124,68,27,.25),transparent 38%),
      url('../assets/footer-wide.png') center/cover;
    opacity:.2;
    pointer-events:none;
}
.menu-viewer-shell {
    position:relative;
    z-index:2;
    width:min(95vw,1120px);
    height:min(92vh,900px);
    display:grid;
    grid-template-rows:auto 1fr auto;
    gap:12px;
    transform:scale(.94) translateY(15px);
    transition:transform .38s cubic-bezier(.2,.78,.2,1);
}
.menu-viewer.is-open .menu-viewer-shell { transform:none; }
.menu-viewer-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:48px;
}
.menu-viewer-title {
    margin:0;
    color:#f1dfbd;
    font:600 clamp(27px,3vw,42px)/1 "Cormorant Garamond",serif;
}
.menu-viewer-counter {
    color:#c3aa7e;
    font-size:11px;
    letter-spacing:.16em;
    text-transform:uppercase;
}
.menu-viewer-close,
.menu-viewer-arrow,
.menu-viewer-zoom {
    border:1px solid rgba(226,177,85,.62);
    color:#f0d49b;
    background:rgba(20,13,8,.82);
    cursor:pointer;
    transition:.25s;
}
.menu-viewer-close:hover,
.menu-viewer-arrow:hover,
.menu-viewer-zoom:hover { background:#6d1b11;border-color:#e0ab55; }
.menu-viewer-close {
    width:46px;height:46px;border-radius:50%;font-size:27px;line-height:1;
}
.menu-viewer-stage {
    position:relative;
    overflow:hidden;
    display:grid;
    place-items:center;
    min-height:0;
    border:1px solid rgba(214,160,66,.42);
    background:rgba(0,0,0,.54);
    box-shadow:0 25px 60px #000b,inset 0 0 35px #0008;
    touch-action:none;
}
.menu-viewer-canvas {
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    cursor:zoom-in;
}
.menu-viewer-image {
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    transform-origin:center;
    user-select:none;
    -webkit-user-drag:none;
    transition:opacity .18s ease,transform .25s ease;
    box-shadow:0 12px 35px #0009;
}
.menu-viewer-image.is-changing { opacity:.15;transform:scale(.985); }
.menu-viewer-stage.is-zoomed .menu-viewer-canvas { cursor:grab; }
.menu-viewer-stage.is-dragging .menu-viewer-canvas { cursor:grabbing; }
.menu-viewer-arrow {
    position:absolute;
    top:50%;
    z-index:5;
    width:54px;height:54px;
    border-radius:50%;
    transform:translateY(-50%);
    font-size:32px;
}
.menu-viewer-prev { left:16px; }
.menu-viewer-next { right:16px; }
.menu-viewer-arrow[disabled] { opacity:.2;pointer-events:none; }
.menu-viewer-bottom {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:9px;
}
.menu-viewer-zoom {
    min-width:44px;
    height:40px;
    border-radius:999px;
    padding:0 13px;
    font-size:17px;
}
.menu-viewer-help {
    color:#aa9672;
    font-size:10px;
    letter-spacing:.09em;
    text-transform:uppercase;
    margin-left:8px;
}
@media(max-width:980px) {
    .menu-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .menu-gallery-card:last-child { grid-column:1/-1;width:min(50%,440px);justify-self:center; }
}
@media(max-width:650px) {
    .our-menus { padding:68px 0 74px; }
    .menu-gallery-grid { grid-template-columns:1fr;gap:18px; }
    .menu-gallery-card:last-child { grid-column:auto;width:auto; }
    .menu-gallery-preview { aspect-ratio:.72; }
    .menu-viewer-shell { width:100vw;height:100dvh;padding:10px;gap:8px; }
    .menu-viewer-stage { border-left:0;border-right:0; }
    .menu-viewer-arrow { width:44px;height:44px;font-size:26px; }
    .menu-viewer-prev { left:7px; }
    .menu-viewer-next { right:7px; }
    .menu-viewer-help { display:none; }
    .menu-viewer-title { font-size:28px; }
}

/* SURGICAL MENU LAYOUT FIX:
   lunch pair, dinner pair, catering centered below */
.menu-gallery-grid {
    display:block;
}
.menu-gallery-group {
    margin-bottom:42px;
}
.menu-gallery-group:last-child {
    margin-bottom:0;
}
.menu-gallery-group-title {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:18px;
    margin:0 0 15px;
    padding:0 4px 10px;
    border-bottom:1px solid rgba(215,161,61,.35);
}
.menu-gallery-group-title span {
    color:#f1dfbd;
    font:600 clamp(31px,3vw,43px)/1 "Cormorant Garamond",serif;
}
.menu-gallery-group-title small {
    color:#c5ad82;
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.menu-gallery-pair {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}
.menu-gallery-group-catering {
    width:min(50%,720px);
    margin-left:auto;
    margin-right:auto;
}
.menu-gallery-card-catering {
    width:100%;
}
@media(max-width:980px) {
    .menu-gallery-pair {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .menu-gallery-group-catering {
        width:min(70%,620px);
    }
    .menu-gallery-card:last-child {
        grid-column:auto;
        width:auto;
        justify-self:stretch;
    }
}
@media(max-width:650px) {
    .menu-gallery-group {
        margin-bottom:32px;
    }
    .menu-gallery-pair {
        grid-template-columns:1fr;
        gap:18px;
    }
    .menu-gallery-group-catering {
        width:100%;
    }
    .menu-gallery-group-title {
        align-items:end;
    }
}
/* =========================================================
   PRIVATE EVENT INQUIRY POPUP
   ========================================================= */

.packages-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background: rgba(0,0,0,.90);
    backdrop-filter: blur(10px);

    opacity: 0;
    visibility: hidden;

    transition:
        opacity .3s ease,
        visibility .3s ease;
}

.packages-modal.show {
    opacity: 1;
    visibility: visible;
}


/* FORM CARD */

.private-event-form-card {
    position: relative;

    width: min(92vw, 720px);
    max-height: 92vh;

    overflow-y: auto;

    padding: 42px 42px 36px;

    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(122,32,20,.26),
            transparent 34%
        ),
        linear-gradient(
            180deg,
            #1b100b,
            #090706
        );

    border: 1px solid rgba(215,161,61,.72);

    box-shadow:
        0 35px 90px rgba(0,0,0,.85),
        inset 0 0 0 1px rgba(255,255,255,.025);

    color: #f3e6cc;
}


/* FORM HEADER */

.private-event-form-card .script {
    text-align: center;
    color: #c85c32;
    margin-bottom: 4px;
}

.private-event-form-card h2 {
    margin: 0 0 12px;

    text-align: center;

    color: #f3e6cc;

    font:
        600 clamp(38px,5vw,58px)/1
        "Cormorant Garamond",
        serif;
}

.private-event-form-card > p {
    max-width: 560px;

    margin: 0 auto 30px;

    text-align: center;

    color: #cbb99a;

    line-height: 1.7;
}


/* CLOSE BUTTON */

.packages-close {
    position: absolute;

    top: 14px;
    right: 18px;

    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    padding: 0;

    border: 1px solid rgba(215,161,61,.65);
    border-radius: 50%;

    background: rgba(20,12,8,.88);

    color: #f3e6cc;

    font-size: 31px;
    line-height: 1;

    cursor: pointer;

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

.packages-close:hover {
    background: #65190f;
    border-color: #f0c36b;
    transform: scale(1.05);
}

.packages-close:focus-visible {
    outline: 4px solid #f0c36b;
    outline-offset: 3px;
}


/* FORM */

#privateEventForm {
    display: grid;
    gap: 18px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-group {
    display: grid;
    gap: 7px;
}

.form-group label {
    color: #f0c36b;

    font-size: 12px;
    font-weight: 600;

    letter-spacing: .08em;
    text-transform: uppercase;
}


/* INPUTS */

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;

    padding: 14px 15px;

    border: 1px solid rgba(215,161,61,.45);

    background: rgba(5,4,3,.82);

    color: #fff;

    font-family: Montserrat, Arial, sans-serif;
    font-size: 15px;

    outline: none;

    transition:
        border-color .25s ease,
        box-shadow .25s ease,
        background .25s ease;
}

.form-group textarea {
    resize: vertical;
    min-height: 120px;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #f0c36b;

    background: #0d0907;

    box-shadow:
        0 0 0 3px rgba(240,195,107,.13);
}


/* SELECT OPTIONS */

.form-group select option {
    background: #120c08;
    color: #fff;
}


/* SUBMIT BUTTON */

.private-event-submit {
    width: 100%;

    margin-top: 4px;

    min-height: 54px;

    font-weight: 600;

    letter-spacing: .08em;
}


/* FORM STATUS */

#eventFormStatus {
    min-height: 22px;

    text-align: center;

    color: #f0c36b;

    font-size: 13px;
    line-height: 1.5;
}


/* MOBILE */

@media(max-width:700px) {

    .packages-modal {
        padding: 12px;
    }

    .private-event-form-card {
        width: 100%;

        max-height: 96vh;

        padding:
            38px
            20px
            26px;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .private-event-form-card h2 {
        font-size: 42px;
    }

    .packages-close {
        top: 10px;
        right: 10px;

        width: 40px;
        height: 40px;

        font-size: 27px;
    }
}
/* =========================================================
   NEW CAFFE POSITANO MENU SYSTEM
   ========================================================= */

.new-menu-tabs {
    position: relative;

    display: flex;
    flex-wrap: wrap;
    justify-content: center;

    gap: 10px;

    margin: 0 auto 34px;
}


.new-menu-tab {

    min-height: 48px;

    padding: 13px 20px;

    border: 1px solid rgba(215,161,61,.65);

    background:
        linear-gradient(
            180deg,
            #24150d,
            #120c08
        );

    color: #f3e6cc;

    font-family: Montserrat, Arial, sans-serif;

    font-size: 13px;

    font-weight: 600;

    letter-spacing: .06em;

    cursor: pointer;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.025),
        0 9px 22px rgba(0,0,0,.28);

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


.new-menu-tab:hover {

    background:
        linear-gradient(
            180deg,
            #482215,
            #21100b
        );

    border-color: #f0c36b;

    transform: translateY(-2px);
}


.new-menu-tab.active {

    background:
        linear-gradient(
            180deg,
            #7a2014,
            #4a0e09
        );

    border-color: #f0c36b;

    color: #fff;

    box-shadow:
        inset 0 0 0 1px #2c0704,
        0 10px 25px rgba(0,0,0,.5);
}


.new-menu-tab:focus-visible {

    outline: 4px solid #f0c36b;

    outline-offset: 4px;
}


.lunch-button {

    border-color: #c9a452;
}


.new-menu-panel {

    position: relative;

    width: min(1100px, 100%);

    margin: 0 auto;

    background: #050403;

    border: 1px solid rgba(215,161,61,.65);

    box-shadow:
        0 30px 70px rgba(0,0,0,.65),
        0 0 35px rgba(215,161,61,.08);

    overflow: hidden;
}


.restaurant-menu-video {

    display: block;

    width: 100%;

    height: auto;

    max-height: 82vh;

    margin: 0;

    object-fit: contain;

    background: #000;
}


/* =========================================================
   LUNCH MENU - TWO PAGE DISPLAY
   ========================================================= */

.lunch-menu-pages {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 20px;

    width: 100%;

    padding: 20px;

    background: #050403;
}


.lunch-menu-page {

    min-width: 0;

    background: #000;

    border: 1px solid rgba(215,161,61,.65);

    box-shadow:
        0 18px 45px rgba(0,0,0,.55);

    overflow: hidden;
}


.restaurant-lunch-menu {

    display: block;

    width: 100%;

    height: auto;

    object-fit: contain;

    margin: 0;

}


/* TABLETS / PHONES */

@media(max-width:800px) {

    .lunch-menu-pages {

        grid-template-columns: 1fr;

        gap: 16px;

        padding: 12px;

    }

}

.menu-order-bottom {

    display: flex;

    justify-content: center;

    margin-top: 38px;
}


.sr-only {

    position: absolute !important;

    width: 1px !important;

    height: 1px !important;

    padding: 0 !important;

    margin: -1px !important;

    overflow: hidden !important;

    clip: rect(0,0,0,0) !important;

    white-space: nowrap !important;

    border: 0 !important;
}


@media(max-width:700px) {

    .new-menu-tabs {

        display: grid;

        grid-template-columns: 1fr 1fr;

        gap: 8px;

    }


    .new-menu-tab {

        width: 100%;

        padding: 12px 7px;

        font-size: 11px;

    }


    .new-menu-panel {

        width: 100%;

    }


    .restaurant-menu-video {

        max-height: none;

    }

}


@media(max-width:420px) {

    .new-menu-tab {

        font-size: 10px;

        letter-spacing: .02em;

    }
}

/* =====================================================
   ABOUT US / OUR STORY
   ===================================================== */

.story {
    padding: 85px 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(181,106,52,.08), transparent 32%),
        linear-gradient(180deg, #0b0806 0%, #050403 100%);
    position: relative;
    overflow: hidden;
}

.story-grid {
    display: grid;
    grid-template-columns: 420px minmax(0, 1fr);
    gap: 60px;
    align-items: center;
}

/* LEFT IMAGE */

.story-image {
    position: relative;
    width: 100%;
    max-width: 420px;
    justify-self: start;
}

.story-image::before {
    content: "";
    position: absolute;
    inset: -7px;
    border: 1px solid rgba(196,137,63,.75);
    pointer-events: none;
    z-index: 2;
}

.story-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    box-shadow: 0 22px 55px rgba(0,0,0,.6);
}

/* RIGHT STORY */

.story-content {
    max-width: 900px;
}

.story-content .script {
    margin-bottom: 8px;
    color: #a73725;
    font-size: 30px;
}

.story-content h2 {
    margin: 0 0 15px;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(42px, 4vw, 62px);
    line-height: 1;
    font-weight: 600;
    color: #fff;
}

.story-content h3 {
    margin: 22px 0 7px;
    font-family: "Cormorant Garamond", serif;
    font-size: 25px;
    line-height: 1.1;
    color: #d6a15d;
    font-weight: 600;
}

.story-content p {
    margin: 0 0 11px;
    max-width: 880px;
    color: rgba(255,255,255,.80);
    font-size: 14px;
    line-height: 1.6;
}

.story-actions {
    margin-top: 24px;
}

/* TABLET */

@media (max-width: 1050px) {

    .story-grid {
        grid-template-columns: 340px minmax(0, 1fr);
        gap: 40px;
    }

    .story-image {
        max-width: 340px;
    }

    .story-image img {
        height: 460px;
    }

    .story-content h2 {
        font-size: 44px;
    }
}


/* =========================================================
   STORY — MOBILE
   ========================================================= */
@media (max-width: 760px) {
    .story {
        padding: 65px 0;
    }

    .story-grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .story-image {
        width: 85%;
        max-width: 420px;
        justify-self: center;
    }

    .story-image img {
        width: 100%;
        height: auto;
        aspect-ratio: auto;
        object-fit: contain;
    }

    .story-content {
        max-width: none;
    }

    .story-content h2 {
        font-size: 40px;
    }

    .story-content h3 {
        font-size: 23px;
    }

    .story-content p {
        font-size: 14px;
        line-height: 1.65;
    }
}

/* =========================================================
   HERO LOGO — TABLET / SMALL LAPTOP
   ========================================================= */
@media (min-width: 701px) and (max-width: 1100px) {
    .hero-logo-video {
        top: 30px;
        left: 85%;
        right: auto;
        transform: none;
        width: 400px;
        max-width: 45vw;
    }
}

/* =========================================================
   MAIN MOBILE LAYOUT — PHONES
   ========================================================= */
@media (max-width: 700px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .wrap {
        width: calc(100% - 24px);
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    /* Header */
    header {
        width: 100%;
    }

    .nav {
        width: 100%;
        height: 78px;
        gap: 8px;
        padding: 0;
    }

    .brand {
        flex: 1;
        min-width: 0;
        gap: 7px;
    }

    .brand-video {
        width: 68px;
        height: 52px;
        flex: 0 0 68px;
        object-fit: contain;
        object-position: left center;
    }

    .brand-contact {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        min-width: 0;
        gap: 1px;
        white-space: normal;
        font-size: 9px;
        line-height: 1.2;
        letter-spacing: 0;
    }

    .brand-address {
        max-width: 155px;
    }

    .brand-divider {
        display: none;
    }

    .brand-phone {
        font-size: 16px;
        line-height: 1.1;
    }

    .links {
        display: none;
    }

    .links.open {
        display: flex;
        position: absolute;
        top: 78px;
        left: 12px;
        right: 12px;
        padding: 22px;
        flex-direction: column;
        align-items: center;
        gap: 20px;
        background: #0b0908;
        border: 1px solid var(--gold);
        z-index: 50;
    }

    .nav-cta {
        display: none;
    }

    .menu-toggle {
        display: block;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        padding: 4px;
    }

    /* Hero */
    .hero {
        position: relative;
        width: 100%;
        min-height: 760px;
        display: block;
        overflow: hidden;
    }

    .hero-bg-video {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        z-index: 0;
    }

    .hero:before {
        position: absolute;
        inset: 0;
        z-index: 1;
        background:
            linear-gradient(
                90deg,
                rgba(4,4,3,.82) 0%,
                rgba(4,4,3,.52) 50%,
                rgba(4,4,3,.18) 100%
            ),
            linear-gradient(
                0deg,
                #090807 0%,
                transparent 30%
            );
    }

    .hero .wrap {
        position: relative;
        width: calc(100% - 24px);
        max-width: none;
        margin: 0 auto;
        z-index: 2;
    }

    .hero-content {
        position: relative;
        width: 100%;
        max-width: 100%;
        padding-top: 180px;
        z-index: 2;
    }

    .eyebrow {
        margin: 0 0 10px;
        font-size: 20px;
        line-height: 1.1;
    }

    .hero h1 {
        width: 100%;
        max-width: 100%;
        margin: 10px 0 22px;
        font-size: clamp(43px, 12.5vw, 56px);
        line-height: .94;
        overflow-wrap: normal;
        word-break: normal;
    }

    .ornament {
        width: 240px;
        max-width: 75%;
        margin: 14px 0 22px;
    }

    .hero p {
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
        font-size: 15px;
        line-height: 1.6;
    }

    .hero-logo-video {
    position: absolute;
    top: 75px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 250px;
    max-width:50vw;
    height: auto;
    aspect-ratio: 700 / 375;
    z-index: 3;
    overflow: hidden;
    pointer-events: none;
}

    .hero-logo-video video {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .hero-actions {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        gap: 11px;
        margin-top: 25px;
    }

    .hero-actions .btn {
        width: auto;
        max-width: 100%;
        padding: 13px 20px;
        font-size: 14px;
    }

    /* Feature cards — 2 x 2 + full-width private event card */
    .cards-wrap {
        position: relative;
        width: 100%;
        margin-top: -30px;
        z-index: 5;
    }

    .cards {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
        gap: 10px;
        align-items: stretch;
    }

    .feature-card,
    .feature-card:nth-child(4),
    .feature-card:nth-child(5),
    .feature-card:last-child {
        width: 100%;
        grid-column: auto;
        aspect-ratio: auto;
        height: auto;
        background: #090807;
        overflow: hidden;
    }

    .feature-card:nth-child(1) {
        order: 1;
    }

    .feature-card:nth-child(2) {
        order: 2;
    }

    .feature-card:nth-child(3) {
        order: 3;
    }

    .feature-card:nth-child(5) {
        order: 4;
        grid-column: auto;
        height: 100%;
        display: flex;
        align-items: stretch;
    }

    .feature-card:nth-child(4) {
        order: 5;
        grid-column: 1 / -1;
    }

    .feature-card img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
        object-position: center;
        transform: none;
    }

    .feature-card:nth-child(5) img {
        height: 100%;
        object-fit: cover;
    }

    .feature-card:hover img {
        transform: none;
        filter: none;
    }

    .feature-card .overlay {
        inset: auto 16px 16px;
    }

    .feature-card .overlay strong {
        font-size: 27px;
    }

    /* Main sections */
    .family {
        padding: 58px 0;
    }

    .family-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .family-copy h2,
    .section-title {
        font-size: 43px;
    }

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

    .portrait:nth-child(2),
    .portrait:nth-child(4) {
        transform: none;
    }

    .dishes {
        padding: 60px 0;
    }

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

    .events {
        padding: 60px 0;
    }

    .events-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .event-photo {
        min-height: auto;
    }

    .event-room-video {
        width: 100%;
        height: auto;
        max-height: none;
        object-fit: contain;
    }

    .events h2 {
        font-size: 46px;
    }

    .facts {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    .section-head {
        display: block;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

