/* =========================
   RESET
========================= */

:root{
    --ink:#0b0907;
    --ink-2:#14100c;
    --ink-3:#1f1812;
    --bone:#f5ecd9;
    --bone-dim:#cfc0a5;
    --gold:#c9a24b;
    --gold-bright:#e8c977;
    --wine:#8f1f2d;
    --line:rgba(245,236,217,.16);
    --shadow:0 24px 70px rgba(0,0,0,.38);
    --riqui-forest:#0f2a1d;
    --riqui-leaf:#1f4d32;
    --riqui-tropical:#3e8c4f;
    --riqui-orange:#f26b2f;
    --riqui-mango:#f2c94c;
    --riqui-cream:#fff8e7;
    --tora-cream:#f7e8d0;
    --tora-paper:#e8d2ae;
    --tora-sakura:#dfa3b5;
    --tora-cherry:#c86b85;
    --tora-red:#8b1e1e;
    --tora-gold:#c99a3d;
}

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

html{
    scroll-behavior:smooth;
    scrollbar-width:thin;
    scrollbar-color:var(--gold) rgba(245,236,217,.06);
}

body{
    font-family:"Alegreya Sans", "Segoe UI", Arial, Helvetica, sans-serif;
    background:var(--ink);
    color:var(--bone);
    overflow-x:hidden;
}

a,
button{
    font:inherit;
}

button{
    cursor:pointer;
}

::-webkit-scrollbar{
    width:10px;
    height:10px;
}

::-webkit-scrollbar-track{
    background:rgba(245,236,217,.05);
}

::-webkit-scrollbar-thumb{
    border:2px solid rgba(8,7,6,.9);
    border-radius:999px;
    background:linear-gradient(180deg,var(--gold-bright),var(--gold));
}

::-webkit-scrollbar-thumb:hover{
    background:linear-gradient(180deg,#f4d98b,var(--gold));
}

/* =========================
   HERO
========================= */

.hero{
    position:relative;
    min-height:100vh;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center;
}

.video-grid{
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
}

.video-grid video{
    width:100%;
    height:100%;
    object-fit:cover;
}

.video-grid video.is-active{
    opacity:1;
}

.video-grid::before,
.video-grid::after{
    content:"";
    position:absolute;
    top:0;
    width:1px;
    height:100%;
    background:rgba(245,236,217,.18);
    z-index:1;
}

.video-grid::before{
    left:33.333%;
}

.video-grid::after{
    left:66.666%;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 50% 35%, rgba(201,162,75,.16), transparent 34%),
        linear-gradient(to bottom, rgba(0,0,0,.34), rgba(11,9,7,.92));
    z-index:1;
}

.hero-content{
    position:relative;
    z-index:2;
    max-width:960px;
    text-align:center;
    padding:24px;
}

.hero-tag,
.section-kicker{
    display:inline-block;
    color:var(--gold-bright);
    font-size:.74rem;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
    margin-bottom:18px;
}

.hero h1,
.menu-hero h1,
.section-heading h2,
.menu-intro h2,
.experience h2,
.events h2,
.final-cta h2{
    font-family:"Fraunces", Georgia, serif;
    font-weight:400;
    letter-spacing:0;
}

.hero h1{
    font-size:clamp(3.8rem, 10vw, 8rem);
    line-height:.88;
    margin-bottom:22px;
    text-shadow:0 16px 46px rgba(0,0,0,.55);
}

.hero p{
    font-size:clamp(1.05rem, 2vw, 1.45rem);
    color:var(--bone);
    margin-bottom:38px;
}

.hero-buttons,
.card-actions{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
}

.scroll-indicator{
    position:absolute;
    bottom:30px;
    left:50%;
    width:34px;
    height:54px;
    border:1px solid rgba(245,236,217,.55);
    border-radius:999px;
    transform:translateX(-50%);
    z-index:2;
}

.scroll-indicator span{
    position:absolute;
    top:10px;
    left:50%;
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--gold-bright);
    transform:translateX(-50%);
    animation:drop 1.8s infinite;
}

@keyframes drop{
    0%{ opacity:0; transform:translate(-50%,0); }
    35%{ opacity:1; }
    100%{ opacity:0; transform:translate(-50%,20px); }
}

/* =========================
   BUTTONS
========================= */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    background:var(--gold);
    color:var(--ink);
    text-decoration:none;
    padding:13px 26px;
    border:1px solid var(--gold);
    border-radius:999px;
    font-weight:700;
    transition:.28s ease;
}

.btn:hover{
    transform:translateY(-3px);
    background:var(--gold-bright);
    border-color:var(--gold-bright);
}

.btn-outline{
    background:rgba(0,0,0,.22);
    color:var(--bone);
    border-color:rgba(245,236,217,.58);
}

.btn-outline:hover{
    color:var(--ink);
}

/* =========================
   RESTAURANT FINDER
========================= */

.restaurant-finder,
.menu-lab,
.experience,
.events,
.final-cta{
    padding:110px 6vw;
}

.restaurant-finder{
    background:
        linear-gradient(180deg, var(--ink), var(--ink-2));
}

.section-heading{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(280px, 520px);
    gap:32px;
    align-items:end;
    margin-bottom:34px;
}

.section-heading h2{
    font-size:clamp(2.4rem, 5vw, 5rem);
    line-height:.95;
}

.section-heading p{
    color:var(--bone-dim);
    line-height:1.65;
}

.mood-bar,
.menu-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.mood-pill,
.menu-tab{
    border:1px solid var(--line);
    background:rgba(245,236,217,.04);
    color:var(--bone);
    border-radius:999px;
    padding:11px 18px;
    transition:.28s ease;
}

.mood-pill:hover,
.menu-tab:hover,
.mood-pill.active,
.menu-tab.active{
    background:var(--gold);
    color:var(--ink);
    border-color:var(--gold);
    transform:translateY(-2px);
}

.result-line{
    color:var(--bone-dim);
    font-size:.82rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin:28px 0 18px;
}

.result-line b{
    color:var(--gold-bright);
    font-family:"Fraunces", Georgia, serif;
    font-size:1.35rem;
    font-style:italic;
    letter-spacing:0;
    text-transform:none;
}

.restaurant-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:18px;
}

.restaurant-card{
    position:relative;
    min-height:330px;
    overflow:hidden;
    border:1px solid rgba(245,236,217,.18);
    border-radius:18px;
    background:var(--ink-3);
    box-shadow:0 18px 54px rgba(0,0,0,.34);
    transition:border-color .28s ease, box-shadow .28s ease, transform .28s ease;
}

.restaurant-card--clickable{
    cursor:pointer;
}

.restaurant-card--clickable:hover,
.restaurant-card--clickable:focus-visible{
    border-color:rgba(232,201,119,.55);
    box-shadow:0 22px 68px rgba(0,0,0,.42);
    transform:translateY(-2px);
}

.restaurant-card:focus-visible{
    outline:2px solid var(--gold-bright);
    outline-offset:4px;
}

.restaurant-bg,
.restaurant-shade{
    position:absolute;
    inset:0;
}

.restaurant-bg{
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    filter:saturate(.92) contrast(1.02);
    transition:transform .55s ease;
}

.restaurant-card:hover .restaurant-bg{
    transform:scale(1.06);
}

.restaurant-card--disabled{
    border-color:rgba(245,236,217,.1);
    cursor:default;
}

.restaurant-card--disabled .restaurant-bg{
    opacity:.38;
    filter:saturate(.45) contrast(.88) grayscale(.28);
}

.restaurant-card--disabled .restaurant-content{
    opacity:.82;
}

.restaurant-shade{
    background:
        radial-gradient(circle at 78% 16%, rgba(0,0,0,.08), rgba(0,0,0,.62) 52%),
        linear-gradient(180deg, rgba(0,0,0,.08) 12%, rgba(0,0,0,.42) 48%, rgba(0,0,0,.94) 100%);
}

.restaurant-content{
    position:absolute;
    inset:auto 0 0 0;
    z-index:1;
    padding:0 92px 30px 32px;
}

.restaurant-card h3{
    font-family:"Fraunces", Georgia, serif;
    font-style:normal;
    font-weight:400;
    letter-spacing:0;
    font-size:clamp(1.8rem, 2.6vw, 2.45rem);
    line-height:1.02;
    margin-bottom:10px;
    text-shadow:0 8px 22px rgba(0,0,0,.55);
}

.restaurant-card p{
    min-height:0;
    color:rgba(245,236,217,.86);
    font-size:1.02rem;
    line-height:1.35;
    margin-bottom:14px;
}

.restaurant-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    color:rgba(245,236,217,.82);
    font-size:.96rem;
    font-weight:600;
}

.rating-star{
    color:var(--gold-bright);
    filter:drop-shadow(0 4px 12px rgba(232,201,119,.35));
}

.restaurant-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    margin-top:18px;
    padding:10px 18px;
    border:1px solid rgba(232,201,119,.45);
    border-radius:999px;
    background:rgba(0,0,0,.34);
    color:var(--gold-bright);
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    backdrop-filter:blur(8px);
}

@media(min-width:1024px){
    .restaurant-finder{
        min-height:100vh;
        display:flex;
        flex-direction:column;
        justify-content:center;
        padding:52px 5.4vw;
    }

    .restaurant-finder .section-kicker{
        margin-bottom:12px;
    }

    .restaurant-finder .section-heading{
        margin-bottom:22px;
        gap:28px;
    }

    .restaurant-finder .section-heading h2{
        font-size:clamp(3rem, 4.8vw, 4.3rem);
    }

    .restaurant-finder .section-heading p{
        font-size:.98rem;
        line-height:1.55;
    }

    .restaurant-finder .mood-bar{
        gap:8px;
    }

    .restaurant-finder .mood-pill{
        padding:10px 18px;
    }

    .restaurant-finder .result-line{
        margin:20px 0 14px;
    }

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

    .restaurant-card{
        min-height:clamp(380px, 47vh, 500px);
    }

    .restaurant-content{
        padding:0 150px 34px 34px;
    }

    .restaurant-card h3{
        font-family:"Fraunces", Georgia, serif;
        font-weight:400;
        letter-spacing:0;
        font-size:clamp(2rem, 3vw, 3rem);
    }

    .restaurant-card p{
        min-height:0;
        max-width:430px;
        font-size:1.12rem;
        margin-bottom:16px;
    }

    .card-actions{
        justify-content:flex-end;
        gap:9px;
    }

    .card-btn{
        min-height:38px;
        padding:9px 15px;
    }
}

@media(min-width:1500px){
    .restaurant-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .restaurant-card{
        min-height:460px;
    }
}

.card-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:10px 17px;
    border:1px solid rgba(245,236,217,.48);
    border-radius:999px;
    color:var(--bone);
    background:rgba(0,0,0,.24);
    text-decoration:none;
    transition:.28s ease;
}

.card-btn:hover,
.card-btn.primary{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--ink);
}

.card-btn.primary:hover{
    background:var(--gold-bright);
    border-color:var(--gold-bright);
}

.restaurant-card .card-actions{
    position:absolute;
    right:34px;
    bottom:34px;
    z-index:2;
    justify-content:flex-end;
    gap:10px;
}

.restaurant-card .card-btn{
    min-height:42px;
    padding:10px 16px;
    border-color:rgba(245,236,217,.34);
    background:rgba(0,0,0,.28);
    backdrop-filter:blur(8px);
}

.restaurant-card .card-btn.primary{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--ink);
}

.restaurant-card[data-restaurant="riqui"]{
    border-color:rgba(62,140,79,.82);
    box-shadow:0 22px 66px rgba(15,42,29,.42), 0 0 0 1px rgba(242,107,47,.14);
}

.restaurant-card[data-restaurant="riqui"]:hover,
.restaurant-card[data-restaurant="riqui"]:focus-visible{
    border-color:var(--riqui-orange);
    box-shadow:0 24px 74px rgba(15,42,29,.52), 0 0 0 1px rgba(242,201,76,.22);
}

.restaurant-card[data-restaurant="riqui"] .restaurant-shade{
    background:
        radial-gradient(circle at 80% 12%, rgba(0,0,0,.08), rgba(0,0,0,.5) 45%),
        linear-gradient(180deg, rgba(0,0,0,.08) 10%, rgba(0,0,0,.46) 48%, rgba(0,0,0,.94) 100%);
}

.restaurant-card[data-restaurant="riqui"] h3{
    color:var(--riqui-tropical);
}

.restaurant-card[data-restaurant="riqui"] .rating-star{
    color:var(--riqui-mango);
}

.restaurant-card[data-restaurant="riqui"] .card-btn{
    border-color:rgba(242,201,76,.62);
    color:var(--riqui-cream);
}

.restaurant-card[data-restaurant="riqui"] .card-btn.primary{
    background:var(--riqui-tropical);
    border-color:var(--riqui-tropical);
    color:var(--riqui-cream);
}

.restaurant-card[data-restaurant="riqui"] .card-btn:hover,
.restaurant-card[data-restaurant="riqui"] .card-btn.primary:hover{
    background:var(--riqui-orange);
    border-color:var(--riqui-orange);
    color:var(--riqui-cream);
}

.restaurant-card[data-restaurant="tora-ryu"]{
    border-color:rgba(223,163,181,.72);
    box-shadow:0 22px 66px rgba(54,17,35,.4), 0 0 0 1px rgba(200,107,133,.18);
}

.restaurant-card[data-restaurant="tora-ryu"]:hover,
.restaurant-card[data-restaurant="tora-ryu"]:focus-visible{
    border-color:var(--tora-cherry);
    box-shadow:0 24px 74px rgba(54,17,35,.5), 0 0 0 1px rgba(223,163,181,.24);
}

.restaurant-card[data-restaurant="tora-ryu"] .restaurant-bg{
    filter:saturate(1.18) brightness(1.06) contrast(1.06);
}

.restaurant-card[data-restaurant="tora-ryu"] .restaurant-shade{
    background:
        radial-gradient(circle at 72% 18%, rgba(201,154,61,.1), rgba(0,0,0,.12) 42%, rgba(0,0,0,.44) 74%),
        linear-gradient(90deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.18) 48%, rgba(0,0,0,.06) 100%),
        linear-gradient(180deg, rgba(0,0,0,.02) 8%, rgba(0,0,0,.28) 54%, rgba(0,0,0,.9) 100%);
}

.restaurant-card[data-restaurant="tora-ryu"] h3{
    color:#f1bac8;
    text-shadow:0 10px 28px rgba(0,0,0,.82), 0 0 18px rgba(200,107,133,.22);
}

.restaurant-card[data-restaurant="tora-ryu"] p,
.restaurant-card[data-restaurant="tora-ryu"] .restaurant-meta{
    color:rgba(247,232,208,.9);
    text-shadow:0 6px 18px rgba(0,0,0,.78);
}

.restaurant-card[data-restaurant="tora-ryu"] .rating-star{
    color:var(--tora-sakura);
}

.restaurant-card[data-restaurant="tora-ryu"] .card-btn{
    border-color:rgba(223,163,181,.62);
    color:var(--tora-cream);
}

.restaurant-card[data-restaurant="tora-ryu"] .card-btn.primary{
    background:var(--tora-cherry);
    border-color:var(--tora-cherry);
    color:#17090d;
}

.restaurant-card[data-restaurant="tora-ryu"] .card-btn:hover,
.restaurant-card[data-restaurant="tora-ryu"] .card-btn.primary:hover{
    background:var(--tora-sakura);
    border-color:var(--tora-sakura);
    color:#17090d;
}

/* =========================
   MENU PAGES
========================= */

.menu-page{
    min-height:100vh;
    background:var(--ink);
}

.menu-page-header{
    position:absolute;
    top:0;
    left:0;
    right:0;
    z-index:5;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:28px 6vw;
}

.back-link{
    color:var(--bone);
    text-decoration:none;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-size:.76rem;
    border-bottom:1px solid rgba(245,236,217,.45);
    padding-bottom:6px;
}

.back-link:hover{
    color:var(--gold-bright);
    border-color:var(--gold-bright);
}

.menu-hero{
    position:relative;
    min-height:72vh;
    display:flex;
    align-items:flex-end;
    padding:140px 6vw 170px;
    background-image:
        linear-gradient(180deg, rgba(11,9,7,.22), rgba(11,9,7,.96)),
        var(--menu-bg);
    background-size:cover;
    background-position:center;
    overflow:hidden;
}

.menu-hero::after{
    content:"";
    position:absolute;
    inset:auto 6vw 72px;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(232,201,119,.72), transparent);
}

.menu-hero-content{
    position:relative;
    z-index:1;
    max-width:920px;
}

.menu-hero h1{
    font-size:clamp(3.5rem, 9vw, 8rem);
    line-height:.88;
    margin-bottom:20px;
    text-shadow:0 18px 46px rgba(0,0,0,.55);
}

.menu-hero p{
    max-width:620px;
    color:var(--bone-dim);
    font-size:1.1rem;
    line-height:1.7;
}

.menu-page-lab{
    padding-top:0;
}

.menu-page .menu-panel{
    position:relative;
    z-index:2;
    margin-top:-90px;
}

/* =========================
   MENU FILTER
========================= */

.menu-lab{
    background:
        linear-gradient(180deg, var(--ink-2), #100c09 58%, var(--ink));
}

.menu-panel{
    border:1px solid var(--line);
    border-radius:8px;
    background:
        linear-gradient(135deg, rgba(245,236,217,.07), rgba(245,236,217,.02)),
        var(--ink-2);
    padding:34px;
    box-shadow:var(--shadow);
}

.menu-intro{
    max-width:760px;
    margin-bottom:32px;
}

.menu-intro h2{
    font-size:clamp(2.6rem, 6vw, 5.4rem);
    line-height:.94;
    margin-bottom:14px;
}

.menu-intro p{
    color:var(--bone-dim);
    line-height:1.65;
}

.menu-tools{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:center;
    margin-bottom:26px;
}

.menu-count{
    color:var(--gold-bright);
    white-space:nowrap;
}

.menu-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:14px;
}

.menu-item{
    display:flex;
    justify-content:space-between;
    gap:18px;
    min-height:180px;
    border:1px solid var(--line);
    border-radius:8px;
    background:rgba(11,9,7,.72);
    padding:22px;
    transition:.28s ease;
}

.menu-item:hover{
    border-color:rgba(232,201,119,.55);
    transform:translateY(-3px);
}

.menu-item span{
    display:block;
    color:var(--gold);
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:12px;
}

.menu-item h3{
    font-family:"Fraunces", Georgia, serif;
    font-weight:500;
    font-size:1.5rem;
    line-height:1.08;
    margin-bottom:10px;
}

.menu-item p{
    color:var(--bone-dim);
    line-height:1.55;
}

.menu-item strong{
    color:var(--gold-bright);
    white-space:nowrap;
}

/* =========================
   RIQUI WINGS MENU
========================= */

.riqui-menu-page{
    background:
        radial-gradient(circle at 50% 16%, rgba(31,77,50,.16), transparent 36%),
        linear-gradient(180deg, #070908, #07140e 58%, #050706);
    --ink:#070908;
    --ink-2:#0a120d;
    --ink-3:#0c1d14;
    --bone:#eadfc9;
    --bone-dim:rgba(234,223,201,.68);
    --gold:var(--riqui-leaf);
    --gold-bright:var(--riqui-mango);
    --line:rgba(62,140,79,.26);
    scrollbar-color:var(--riqui-leaf) rgba(0,0,0,.45);
}

.riqui-topbar{
    position:fixed;
    background:linear-gradient(180deg, rgba(5,7,6,.94), rgba(5,7,6,0));
}

.riqui-menu-page .back-link{
    color:var(--riqui-cream);
    border-color:rgba(255,248,231,.42);
}

.riqui-menu-page .back-link:hover{
    color:var(--riqui-mango);
    border-color:rgba(242,201,76,.7);
}

.riqui-menu-page .btn{
    background:var(--riqui-leaf);
    border-color:var(--riqui-leaf);
    color:var(--riqui-cream);
}

.riqui-menu-page .btn:hover{
    background:var(--riqui-tropical);
    border-color:var(--riqui-tropical);
    color:var(--riqui-cream);
}

.riqui-menu-shell{
    min-height:100vh;
    padding:86px 5vw 38px;
}

.riqui-menu-heading,
.riqui-detail-heading{
    max-width:860px;
    margin:0 auto 22px;
    text-align:center;
}

.riqui-menu-heading h1,
.riqui-detail-heading h1{
    font-family:"Fraunces", Georgia, serif;
    font-size:clamp(2.35rem, 4.8vw, 4.55rem);
    font-weight:400;
    line-height:.92;
    margin-bottom:10px;
}

.riqui-menu-heading p,
.riqui-detail-heading p{
    color:var(--bone-dim);
    font-size:1rem;
    line-height:1.5;
}

.riqui-menu-page .section-kicker{
    color:var(--riqui-mango);
}

.riqui-category-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    max-width:1040px;
    margin:0 auto;
    grid-auto-flow:dense;
}

.riqui-category-card{
    min-height:clamp(280px, 32vw, 380px);
    aspect-ratio:1.24 / 1;
    position:relative;
    overflow:hidden;
    border:1px solid rgba(232,201,119,.28);
    border-radius:16px;
    background:var(--ink-2);
    text-align:left;
    color:var(--bone);
    transition:.32s ease;
}

.riqui-category-card:hover{
    border-color:rgba(232,201,119,.7);
    transform:translateY(-4px);
}

body[data-riqui-menu="true"] .riqui-category-card{
    border-color:rgba(62,140,79,.32);
    background:#070908;
}

body[data-riqui-menu="true"] .riqui-category-card:hover{
    border-color:rgba(242,201,76,.58);
    box-shadow:0 18px 46px rgba(0,0,0,.34);
}

body[data-riqui-menu="true"] .riqui-category-card[data-section="bar-y-cafeteria"]{
    grid-row:span 2;
    min-height:clamp(574px, calc(64vw + 14px), 774px);
    aspect-ratio:auto;
}

.riqui-category-bg,
.riqui-category-shade{
    position:absolute;
    inset:0;
}

.riqui-category-bg{
    background-size:cover;
    background-position:center;
    filter:saturate(1.08) contrast(1.04) brightness(1.06);
    transition:transform .55s ease;
}

.riqui-category-card:hover .riqui-category-bg{
    transform:scale(1.06);
}

.riqui-category-shade{
    background:
        linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.72)),
        linear-gradient(90deg, rgba(15,42,29,.34), rgba(0,0,0,.08));
}

.riqui-category-content{
    position:absolute;
    left:28px;
    right:28px;
    bottom:22px;
    z-index:1;
}

.riqui-category-content strong{
    display:block;
    font-size:clamp(1.55rem, 2.5vw, 2.15rem);
    line-height:1;
    margin-bottom:10px;
}

.riqui-category-content small{
    color:var(--gold-bright);
    font-size:.92rem;
    font-weight:700;
}

body[data-riqui-menu="true"] .riqui-category-content small{
    color:var(--riqui-mango);
}

.riqui-back-button{
    position:absolute;
    top:118px;
    left:5vw;
    width:46px;
    height:46px;
    border:1px solid rgba(245,236,217,.28);
    border-radius:50%;
    background:rgba(245,236,217,.05);
    color:var(--bone);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.25s ease;
}

.riqui-back-button:hover{
    border-color:rgba(242,201,76,.7);
    background:rgba(31,77,50,.26);
    transform:translateX(-2px);
}

.riqui-back-button span{
    width:13px;
    height:13px;
    border-left:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg);
    margin-left:5px;
}

body.riqui-menu-page::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg, var(--riqui-leaf), var(--riqui-tropical));
}

body.riqui-menu-page::-webkit-scrollbar-thumb:hover{
    background:linear-gradient(180deg, var(--riqui-tropical), var(--riqui-leaf));
}

body[data-riqui-menu="true"] .riqui-featured-panel,
body[data-riqui-menu="true"] .riqui-option-strip,
body[data-riqui-menu="true"] .riqui-option-card,
body[data-riqui-menu="true"] .riqui-grid-card,
body[data-riqui-menu="true"] .riqui-variant-btn,
body[data-riqui-menu="true"] .riqui-accordion-toggle,
body[data-riqui-menu="true"] .riqui-accordion-card,
body[data-riqui-menu="true"] .riqui-menu-row,
body[data-riqui-menu="true"] .riqui-group-carousel{
    border-color:rgba(62,140,79,.3);
}

body[data-riqui-menu="true"] .riqui-featured-panel{
    background:
        linear-gradient(135deg, rgba(15,42,29,.64), rgba(5,7,6,.9) 54%, rgba(31,77,50,.2)),
        radial-gradient(circle at 14% 16%, rgba(62,140,79,.18), transparent 34%);
    border:1px solid rgba(62,140,79,.34);
    border-radius:22px;
    box-shadow:0 24px 70px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,248,231,.05);
    overflow:hidden;
    position:relative;
}

body[data-riqui-menu="true"] .riqui-group-title,
body[data-riqui-menu="true"] .riqui-grid-card .riqui-grid-group,
body[data-riqui-menu="true"] .riqui-option-card strong,
body[data-riqui-menu="true"] .riqui-variant-btn small,
body[data-riqui-menu="true"] .riqui-accordion-count,
body[data-riqui-menu="true"] .riqui-menu-row strong{
    color:var(--riqui-mango);
}

body[data-riqui-menu="true"] .riqui-featured-panel h3{
    color:var(--bone);
}

body[data-riqui-menu="true"] .riqui-grid-card strong,
body[data-riqui-menu="true"] .riqui-accordion-card strong{
    color:var(--riqui-mango);
}

body[data-riqui-menu="true"] .riqui-featured-glow{
    border-color:rgba(62,140,79,.34);
    box-shadow:
        0 0 26px rgba(31,77,50,.2),
        inset 0 0 44px rgba(0,0,0,.24);
}

body[data-riqui-menu="true"] .riqui-option-strip,
body[data-riqui-menu="true"] .riqui-scroll-row,
body[data-riqui-menu="true"] .riqui-group-carousel{
    scrollbar-color:var(--riqui-leaf) rgba(0,0,0,.4);
}

body[data-riqui-menu="true"] .riqui-option-strip::-webkit-scrollbar-thumb,
body[data-riqui-menu="true"] .riqui-scroll-row::-webkit-scrollbar-thumb,
body[data-riqui-menu="true"] .riqui-group-carousel::-webkit-scrollbar-thumb{
    background:linear-gradient(90deg, var(--riqui-leaf), var(--riqui-tropical));
}

body[data-riqui-menu="true"] .riqui-option-card:hover,
body[data-riqui-menu="true"] .riqui-variant-btn:hover{
    border-color:rgba(242,201,76,.6);
    background:rgba(31,77,50,.2);
}

body[data-riqui-menu="true"] .riqui-accordion-icon{
    background:var(--riqui-leaf);
    color:var(--riqui-cream);
}

body[data-riqui-menu="tora-ryu"]{
    background:
        radial-gradient(circle at 18% 12%, rgba(223,163,181,.14), transparent 30%),
        radial-gradient(circle at 86% 8%, rgba(201,154,61,.14), transparent 28%),
        linear-gradient(180deg, #110908, #160b0a 54%, #090605);
    --ink:#110908;
    --ink-2:#1a0d0c;
    --ink-3:#24110f;
    --bone:#f1dcc1;
    --bone-dim:rgba(247,232,208,.72);
    --gold:var(--tora-gold);
    --gold-bright:var(--tora-sakura);
    --line:rgba(201,154,61,.26);
    scrollbar-color:var(--tora-gold) rgba(0,0,0,.45);
}

body[data-riqui-menu="tora-ryu"]::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg, var(--tora-red), var(--tora-gold));
}

body[data-riqui-menu="tora-ryu"]::-webkit-scrollbar-thumb:hover{
    background:linear-gradient(180deg, var(--tora-cherry), var(--tora-gold));
}

body[data-riqui-menu="tora-ryu"] .riqui-topbar{
    background:linear-gradient(180deg, rgba(17,9,8,.95), rgba(17,9,8,0));
}

body[data-riqui-menu="tora-ryu"] .back-link{
    color:var(--tora-cream);
    border-color:rgba(247,232,208,.42);
}

body[data-riqui-menu="tora-ryu"] .back-link:hover{
    color:var(--tora-sakura);
    border-color:rgba(223,163,181,.72);
}

body[data-riqui-menu="tora-ryu"] .btn{
    background:var(--tora-red);
    border-color:var(--tora-red);
    color:var(--tora-cream);
}

body[data-riqui-menu="tora-ryu"] .btn:hover{
    background:var(--tora-gold);
    border-color:var(--tora-gold);
    color:#160d08;
}

body[data-riqui-menu="tora-ryu"] .section-kicker{
    color:var(--tora-sakura);
}

body[data-riqui-menu="tora-ryu"] .riqui-menu-heading h1,
body[data-riqui-menu="tora-ryu"] .riqui-detail-heading h1{
    color:var(--tora-cream);
}

body[data-riqui-menu="tora-ryu"] .riqui-category-card{
    border-color:rgba(201,154,61,.32);
    background:#120908;
}

body[data-riqui-menu="tora-ryu"] .riqui-category-card:hover{
    border-color:rgba(223,163,181,.68);
    box-shadow:0 18px 46px rgba(0,0,0,.34);
}

body[data-riqui-menu="tora-ryu"] .riqui-category-shade{
    background:
        linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.74)),
        linear-gradient(90deg, rgba(139,30,30,.28), rgba(0,0,0,.08));
}

body[data-riqui-menu="tora-ryu"] .riqui-category-content small{
    color:var(--tora-sakura);
}

body[data-riqui-menu="tora-ryu"] .riqui-back-button:hover{
    border-color:rgba(223,163,181,.72);
    background:rgba(139,30,30,.24);
}

body[data-riqui-menu="tora-ryu"] .riqui-featured-panel,
body[data-riqui-menu="tora-ryu"] .riqui-option-strip,
body[data-riqui-menu="tora-ryu"] .riqui-option-card,
body[data-riqui-menu="tora-ryu"] .riqui-grid-card,
body[data-riqui-menu="tora-ryu"] .riqui-variant-btn,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-section,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-toggle,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-card,
body[data-riqui-menu="tora-ryu"] .riqui-menu-row,
body[data-riqui-menu="tora-ryu"] .tora-section-carousel{
    border-color:rgba(201,154,61,.28);
}

body[data-riqui-menu="tora-ryu"] .riqui-featured-panel{
    background:
        linear-gradient(135deg, rgba(139,30,30,.42), rgba(12,7,6,.92) 56%, rgba(201,154,61,.12)),
        radial-gradient(circle at 14% 16%, rgba(223,163,181,.12), transparent 34%);
    border-radius:22px;
    box-shadow:0 24px 70px rgba(0,0,0,.34), inset 0 1px 0 rgba(247,232,208,.05);
}

body[data-riqui-menu="tora-ryu"] .riqui-featured-panel::before{
    background:linear-gradient(180deg, rgba(223,163,181,.72), rgba(201,154,61,.54));
}

body[data-riqui-menu="tora-ryu"] .riqui-featured-panel h3,
body[data-riqui-menu="tora-ryu"] .riqui-grid-card h3,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-copy strong,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-card h4{
    color:var(--tora-cream);
}

body[data-riqui-menu="tora-ryu"] .riqui-featured-panel strong,
body[data-riqui-menu="tora-ryu"] .riqui-grid-card strong,
body[data-riqui-menu="tora-ryu"] .riqui-grid-card .riqui-grid-group,
body[data-riqui-menu="tora-ryu"] .riqui-option-card strong,
body[data-riqui-menu="tora-ryu"] .riqui-variant-btn small,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-count,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-card strong,
body[data-riqui-menu="tora-ryu"] .riqui-menu-row strong,
body[data-riqui-menu="tora-ryu"] .riqui-menu-row-copy small{
    color:var(--tora-gold);
}

body[data-riqui-menu="tora-ryu"] .riqui-featured-glow{
    border-color:rgba(201,154,61,.32);
    box-shadow:
        0 0 28px rgba(201,154,61,.18),
        inset 0 0 44px rgba(0,0,0,.24);
}

body[data-riqui-menu="tora-ryu"] .riqui-option-strip,
body[data-riqui-menu="tora-ryu"] .riqui-scroll-row,
body[data-riqui-menu="tora-ryu"] .riqui-group-carousel,
body[data-riqui-menu="tora-ryu"] .tora-section-carousel{
    scrollbar-color:var(--tora-gold) rgba(0,0,0,.4);
}

body[data-riqui-menu="tora-ryu"] .riqui-option-strip::-webkit-scrollbar-thumb,
body[data-riqui-menu="tora-ryu"] .riqui-scroll-row::-webkit-scrollbar-thumb,
body[data-riqui-menu="tora-ryu"] .riqui-group-carousel::-webkit-scrollbar-thumb,
body[data-riqui-menu="tora-ryu"] .tora-section-carousel::-webkit-scrollbar-thumb{
    border-color:rgba(17,9,8,.92);
    background:linear-gradient(90deg, var(--tora-red), var(--tora-gold));
}

body[data-riqui-menu="tora-ryu"] .riqui-option-card:hover,
body[data-riqui-menu="tora-ryu"] .riqui-variant-btn:hover,
body[data-riqui-menu="tora-ryu"] .riqui-variant-btn.active{
    border-color:rgba(223,163,181,.68);
    background:rgba(139,30,30,.18);
}

body[data-riqui-menu="tora-ryu"] .riqui-accordion-icon{
    border:1px solid rgba(201,154,61,.58);
    background:rgba(17,9,8,.72);
    color:var(--tora-gold);
    box-shadow:inset 0 0 0 1px rgba(223,163,181,.1), 0 10px 22px rgba(0,0,0,.24);
    backdrop-filter:blur(8px);
}

body[data-riqui-menu="tora-ryu"] .riqui-accordion-section,
body[data-riqui-menu="tora-ryu"] .riqui-accordion-card,
body[data-riqui-menu="tora-ryu"] .riqui-menu-row{
    background:rgba(17,9,8,.72);
}

body[data-riqui-menu="tora-ryu"] .tora-section-carousel-card{
    border-color:rgba(201,154,61,.34);
    box-shadow:inset 0 0 0 1px rgba(223,163,181,.08), 0 14px 30px rgba(0,0,0,.22);
}

.riqui-detail-heading .section-kicker:empty{
    display:none;
}

.riqui-featured{
    display:grid;
    grid-template-columns:minmax(280px,.78fr) minmax(360px,1.22fr);
    gap:28px;
    align-items:center;
    max-width:1120px;
    margin:0 auto;
}

.riqui-featured-panel{
    padding:clamp(24px, 3.2vw, 42px);
}

.riqui-featured-panel::before{
    content:"";
    position:absolute;
    inset:14px auto 14px 0;
    width:4px;
    border-radius:999px;
    background:linear-gradient(180deg, rgba(242,201,76,.72), rgba(62,140,79,.54));
}

.riqui-featured-panel::after{
    content:"";
    position:absolute;
    right:-18%;
    bottom:-34%;
    width:52%;
    aspect-ratio:1;
    border:1px solid rgba(62,140,79,.16);
    border-radius:50%;
    background:radial-gradient(circle, rgba(62,140,79,.12), transparent 62%);
    pointer-events:none;
}

.riqui-featured-panel h3{
    font-family:"Fraunces", Georgia, serif;
    font-weight:500;
    font-size:clamp(2.1rem, 3.4vw, 3.8rem);
    line-height:1;
    margin-bottom:18px;
    position:relative;
    z-index:1;
}

.riqui-featured-panel p{
    color:var(--bone-dim);
    max-width:440px;
    font-size:1.05rem;
    line-height:1.55;
    margin-bottom:18px;
    position:relative;
    z-index:1;
}

.riqui-featured-panel strong{
    display:block;
    color:var(--gold-bright);
    font-size:1.45rem;
    margin-bottom:22px;
    position:relative;
    z-index:1;
}

body[data-riqui-menu="true"] .riqui-featured-panel strong#riquiPanelPrice,
body[data-riqui-menu="true"] .riqui-option-card small,
body[data-riqui-menu="true"] .riqui-grid-card strong,
body[data-riqui-menu="true"] .riqui-accordion-card strong,
body[data-riqui-menu="true"] .riqui-menu-row-copy small{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

body[data-riqui-menu="true"] .riqui-price-main{
    color:inherit;
}

body[data-riqui-menu="true"] .riqui-plus-price{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:3px 8px;
    border:1px solid rgba(232,201,119,.45);
    border-radius:999px;
    background:rgba(232,201,119,.12);
    color:var(--bone);
    font-size:.68em;
    font-weight:900;
    letter-spacing:.06em;
    line-height:1;
    text-transform:uppercase;
}

body[data-riqui-menu="true"] .riqui-plus-line{
    display:block;
    margin-top:8px;
    color:var(--gold-bright);
    font-weight:800;
}

.riqui-featured-panel .btn{
    position:relative;
    z-index:1;
}

.riqui-featured-stage{
    position:relative;
    min-height:clamp(260px, 37vh, 380px);
    display:flex;
    align-items:center;
    justify-content:center;
}

.riqui-featured-stage img{
    position:relative;
    z-index:1;
    width:min(100%, 460px);
    aspect-ratio:1 / .78;
    object-fit:cover;
    border-radius:28px;
    box-shadow:0 38px 120px rgba(0,0,0,.58);
}

.riqui-featured-glow{
    position:absolute;
    width:min(74%, 370px);
    aspect-ratio:1;
    border:1px solid rgba(232,201,119,.5);
    border-radius:50%;
    box-shadow:
        0 0 34px rgba(232,201,119,.34),
        inset 0 0 50px rgba(232,201,119,.12);
}

.riqui-option-strip{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:var(--gold-bright) rgba(245,236,217,.08);
    gap:10px;
    max-width:1220px;
    margin:16px auto 0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:16px;
    background:rgba(245,236,217,.035);
}

.riqui-option-strip::-webkit-scrollbar{
    height:8px;
}

.riqui-option-strip::-webkit-scrollbar-track{
    margin-inline:12px;
    border-radius:999px;
    background:rgba(245,236,217,.07);
}

.riqui-option-strip::-webkit-scrollbar-thumb{
    border:2px solid rgba(12,10,8,.92);
    border-radius:999px;
    background:linear-gradient(90deg,var(--gold),var(--gold-bright));
}

.riqui-option-card{
    display:grid;
    grid-template-columns:68px 1fr;
    flex:0 0 clamp(210px, 24vw, 280px);
    scroll-snap-align:start;
    gap:12px;
    align-items:center;
    min-height:90px;
    border:1px solid transparent;
    border-radius:12px;
    background:rgba(0,0,0,.22);
    color:var(--bone);
    text-align:left;
    padding:10px;
    transition:.28s ease;
}

.riqui-option-card:hover,
.riqui-option-card.active{
    border-color:rgba(232,201,119,.7);
    transform:translateY(-2px);
}

.riqui-option-card > span{
    grid-row:1 / span 2;
    width:68px;
    height:68px;
    border-radius:10px;
    background-size:cover;
    background-position:center;
}

.riqui-option-card strong{
    display:block;
    line-height:1.1;
    margin-bottom:6px;
    font-size:.95rem;
}

.riqui-option-card small{
    grid-column:2;
    align-self:start;
    color:var(--gold-bright);
    font-weight:700;
}

.riqui-option-strip.grouped-scroll-mode .riqui-option-card{
    grid-template-rows:auto auto;
    align-items:start;
    min-height:112px;
}

.riqui-option-strip.grouped-scroll-mode .riqui-option-card strong{
    align-self:end;
    margin-bottom:0;
}

.riqui-option-strip.grouped-scroll-mode .riqui-plus-price{
    min-height:auto;
    padding:2px 7px;
    font-size:.72rem;
}

.riqui-option-strip.grouped-scroll-mode{
    display:grid;
    grid-template-columns:1fr;
    overflow:visible;
    scroll-snap-type:none;
    gap:16px;
}

.riqui-scroll-group{
    min-width:0;
}

.riqui-scroll-group-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:14px;
    margin:0 2px 10px;
}

.riqui-scroll-group-head h3{
    font-family:"Fraunces", Georgia, serif;
    color:var(--bone);
    font-size:clamp(1.3rem, 2vw, 1.75rem);
    line-height:1;
}

.riqui-scroll-group-head small{
    color:var(--gold-bright);
    font-weight:800;
    white-space:nowrap;
}

.riqui-scroll-row{
    display:flex;
    gap:10px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding:2px 2px 10px;
    scrollbar-width:thin;
    scrollbar-color:var(--gold-bright) rgba(245,236,217,.08);
}

.riqui-scroll-row::-webkit-scrollbar{
    height:8px;
}

.riqui-scroll-row::-webkit-scrollbar-track{
    margin-inline:12px;
    border-radius:999px;
    background:rgba(245,236,217,.07);
}

.riqui-scroll-row::-webkit-scrollbar-thumb{
    border:2px solid rgba(12,10,8,.92);
    border-radius:999px;
    background:linear-gradient(90deg,var(--gold),var(--gold-bright));
}

/* =========================
   SUPPORT SECTIONS
========================= */

.experience{
    text-align:center;
}

.experience h2,
.events h2,
.final-cta h2{
    font-size:clamp(2.2rem, 5vw, 4.4rem);
    line-height:1;
    margin-bottom:20px;
}

.experience p{
    max-width:720px;
    margin:auto;
    color:var(--bone-dim);
    font-size:1.08rem;
    line-height:1.8;
}

.experience-carousel{
    position:relative;
    width:min(100%, 1280px);
    margin:42px auto 0;
    overflow:hidden;
    border:1px solid rgba(232,201,119,.18);
    border-radius:16px;
    background:rgba(0,0,0,.22);
}

.experience-carousel::before,
.experience-carousel::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    z-index:2;
    width:90px;
    pointer-events:none;
}

.experience-carousel::before{
    left:0;
    background:linear-gradient(90deg, #14100c, transparent);
}

.experience-carousel::after{
    right:0;
    background:linear-gradient(270deg, #14100c, transparent);
}

.experience-carousel-track{
    display:flex;
    width:max-content;
    gap:16px;
    padding:16px;
    animation:experienceCarousel 46s linear infinite;
}

.experience-carousel-card{
    flex:0 0 clamp(240px, 24vw, 340px);
    width:clamp(240px, 24vw, 340px);
    aspect-ratio:1.26 / .86;
    display:block;
    border:1px solid rgba(232,201,119,.24);
    border-radius:14px;
    background-size:cover;
    background-position:center;
    box-shadow:0 18px 34px rgba(0,0,0,.28);
}

@keyframes experienceCarousel{
    from{
        transform:translateX(0);
    }

    to{
        transform:translateX(calc(-50% - 8px));
    }
}

.events{
    background:#120e0b;
    text-align:center;
}

.events-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:18px;
    margin-top:34px;
}

.event-card{
    min-height:210px;
    border:1px solid var(--line);
    border-radius:8px;
    background:rgba(245,236,217,.045);
    padding:30px;
    text-align:left;
}

.event-card span{
    display:block;
    color:var(--gold-bright);
    font-family:"Fraunces", Georgia, serif;
    font-size:1.6rem;
    margin-bottom:14px;
}

.event-card p{
    color:var(--bone-dim);
    line-height:1.65;
}

.final-cta{
    display:grid;
    grid-template-columns:minmax(0, .82fr) minmax(320px, 1fr);
    gap:28px;
    align-items:start;
    background:
        linear-gradient(rgba(11,9,7,.72), rgba(11,9,7,.84)),
        url("https://images.unsplash.com/photo-1414235077428-338989a2e8c0?q=80&w=1600");
    background-size:cover;
    background-position:center;
}

.final-cta p{
    color:var(--bone-dim);
    line-height:1.65;
}

.reservation-copy{
    position:sticky;
    top:40px;
}

.reservation-card,
.reservation-form{
    border:1px solid var(--line);
    border-radius:8px;
    background:rgba(11,9,7,.72);
    box-shadow:var(--shadow);
    padding:28px;
}

.reservation-card{
    min-height:310px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    overflow:hidden;
    position:relative;
}

.reservation-card::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at top right, rgba(232,201,119,.18), transparent 36%),
        linear-gradient(135deg, rgba(245,236,217,.08), transparent);
    pointer-events:none;
}

.reservation-card span,
.reservation-card h3,
.reservation-card p,
.reservation-card a{
    position:relative;
    z-index:1;
}

.reservation-card span{
    color:var(--gold-bright);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:14px;
}

.reservation-card h3{
    font-family:"Fraunces", Georgia, serif;
    font-size:clamp(2rem, 4vw, 3.4rem);
    font-weight:400;
    line-height:1;
    margin-bottom:16px;
}

.reservation-card p{
    max-width:560px;
    margin-bottom:24px;
}

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

.reservation-form label{
    display:flex;
    flex-direction:column;
    gap:8px;
    color:var(--gold-bright);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    margin-bottom:16px;
}

.reservation-form input,
.reservation-form select,
.reservation-form textarea{
    width:100%;
    border:1px solid rgba(245,236,217,.2);
    border-radius:8px;
    background:rgba(245,236,217,.08);
    color:var(--bone);
    padding:13px 14px;
    outline:none;
    transition:border-color .25s ease, background .25s ease;
}

.reservation-form input:focus,
.reservation-form select:focus,
.reservation-form textarea:focus{
    border-color:var(--gold-bright);
    background:rgba(245,236,217,.12);
}

.reservation-form option{
    background:var(--ink-2);
    color:var(--bone);
}

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

.reservation-form .btn{
    width:100%;
    margin-top:4px;
}

.reservation-status{
    min-height:22px;
    margin-top:14px;
    color:var(--gold-bright);
    font-size:.9rem;
}

.site-footer{
    display:grid;
    grid-template-columns:1.15fr 1fr .8fr .9fr .9fr 1.15fr;
    gap:28px;
    align-items:start;
    padding:56px 6vw;
    border-top:1px solid var(--line);
    background:#080706;
    color:var(--bone-dim);
}

.footer-brand{
    display:block;
    color:var(--bone);
    font-family:"Fraunces", Georgia, serif;
    font-size:1.8rem;
    margin-bottom:10px;
}

.footer-location span,
.footer-contact span,
.footer-cta span{
    display:block;
    color:var(--gold-bright);
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:12px;
}

.footer-about p,
.footer-location p,
.footer-cta p{
    line-height:1.6;
}

.footer-links,
.footer-contact,
.footer-location,
.footer-cta{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.footer-cta{
    border:1px solid var(--line);
    border-radius:8px;
    padding:22px;
    background:rgba(245,236,217,.045);
}

.footer-cta .btn{
    width:100%;
    min-height:44px;
    margin-top:4px;
}

.site-footer a{
    color:var(--bone-dim);
    text-decoration:none;
}

.site-footer a:hover{
    color:var(--gold-bright);
}

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

@media(max-width:1100px){
    .video-grid{
        grid-template-columns:repeat(2,1fr);
        grid-template-rows:repeat(2,1fr);
    }

    .video-grid video:nth-child(3){
        grid-column:1 / -1;
    }

    .video-grid::before{
        left:50%;
    }

    .video-grid::after{
        top:50%;
        left:0;
        width:100%;
        height:1px;
    }
}

@media(max-width:820px){
    .video-grid{
        grid-template-columns:1fr;
        grid-template-rows:1fr;
    }

    .video-grid video{
        position:absolute;
        inset:0;
        min-height:0;
        object-position:center center;
        opacity:0;
        transition:opacity .7s ease;
    }

    .video-grid video:nth-child(1){
        object-position:center 32%;
    }

    .video-grid video:nth-child(2){
        object-position:center 38%;
    }

    .video-grid video:nth-child(3){
        object-position:center 42%;
    }

    .video-grid::before,
    .video-grid::after{
        display:none;
    }

    .hero{
        min-height:100svh;
    }

    .hero-overlay{
        background:
            linear-gradient(180deg, rgba(0,0,0,.58), rgba(11,9,7,.7) 45%, rgba(11,9,7,.95)),
            radial-gradient(circle at 50% 42%, rgba(201,162,75,.18), transparent 42%);
    }

    .hero-content{
        width:100%;
        padding:22px 5vw;
    }

    .hero h1{
        font-size:clamp(3.2rem, 18vw, 5.4rem);
        line-height:.9;
    }

    .hero p{
        max-width:340px;
        margin-left:auto;
        margin-right:auto;
    }

    .section-heading,
    .menu-tools,
    .final-cta{
        grid-template-columns:1fr;
        flex-direction:column;
        align-items:flex-start;
    }

    .restaurant-finder,
    .menu-lab,
    .experience,
    .events,
    .final-cta{
        padding:76px 5vw;
    }

    .restaurant-grid,
    .events-grid,
    .menu-grid{
        grid-template-columns:1fr;
    }

    .experience-carousel{
        margin-top:32px;
        border-radius:14px;
    }

    .experience-carousel::before,
    .experience-carousel::after{
        width:44px;
    }

    .experience-carousel-track{
        gap:12px;
        padding:12px;
        animation-duration:38s;
    }

    .experience-carousel-card{
        flex-basis:74vw;
        width:74vw;
    }

    .restaurant-card{
        min-height:430px;
    }

    .restaurant-card .card-actions{
        position:static;
        justify-content:flex-start;
        margin-top:18px;
    }

    .restaurant-content{
        padding:0 24px 26px;
    }

    .menu-panel{
        padding:24px;
    }

    .menu-page-header{
        padding:22px 5vw;
    }

    .menu-hero{
        min-height:68vh;
        padding:120px 5vw 140px;
    }

    .riqui-menu-shell{
        padding:88px 5vw 42px;
    }

    .riqui-back-button{
        top:104px;
        left:5vw;
    }

    .riqui-category-grid{
        grid-template-columns:1fr;
    }

    .riqui-category-card{
        min-height:260px;
        aspect-ratio:1.18 / 1;
    }

    body[data-riqui-menu="true"] .riqui-category-card[data-section="bar-y-cafeteria"]{
        grid-row:auto;
        min-height:260px;
        aspect-ratio:1.18 / 1;
    }

    .riqui-featured{
        grid-template-columns:1fr;
        gap:14px;
    }

    .riqui-featured-stage img{
        width:min(100%, 560px);
    }

    .riqui-option-strip{
        grid-template-columns:repeat(2,minmax(0,1fr));
        padding:12px;
    }

    .menu-count{
        white-space:normal;
    }

    .reservation-copy{
        position:static;
    }

    .site-footer{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:520px){
    .hero h1{
        font-size:3.6rem;
    }

    .hero-tag,
    .section-kicker{
        font-size:.66rem;
        letter-spacing:.18em;
    }

    .hero-buttons,
    .card-actions{
        flex-direction:column;
        align-items:stretch;
    }

    .btn,
    .card-btn{
        width:100%;
    }

    .restaurant-card{
        min-height:410px;
    }

    .restaurant-content{
        padding:0 22px 24px;
    }

    .restaurant-card h3{
        font-family:"Fraunces", Georgia, serif;
        font-weight:400;
        letter-spacing:0;
        font-size:1.8rem;
    }

    .restaurant-card p{
        min-height:0;
    }

    .restaurant-card .card-actions{
        flex-direction:row;
        align-items:center;
    }

    .restaurant-card .card-btn{
        width:auto;
        flex:1;
    }

    .experience-carousel{
        width:100%;
    }

    .experience-carousel::before,
    .experience-carousel::after{
        width:24px;
    }

    .experience-carousel-card{
        flex-basis:calc(100vw - 48px);
        width:calc(100vw - 48px);
        aspect-ratio:1 / .82;
    }


    .menu-item{
        flex-direction:column;
        min-height:0;
    }

    .menu-page-header{
        align-items:flex-start;
        flex-direction:column;
    }

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

    .reservation-form{
        padding:20px;
    }

    .site-footer{
        grid-template-columns:1fr;
        padding:44px 5vw;
    }

    .footer-cta{
        padding:18px;
    }

    .final-cta{
        gap:22px;
    }

    .reservation-card{
        min-height:260px;
        padding:22px;
    }

    .menu-hero h1{
        font-size:3.4rem;
    }

    .menu-hero p{
        font-size:1rem;
    }

    .menu-page .menu-panel{
        margin-top:-70px;
    }

    .riqui-menu-shell{
        padding:102px 5vw 34px;
    }

    .riqui-back-button{
        top:116px;
        width:42px;
        height:42px;
    }

    .riqui-menu-heading,
    .riqui-detail-heading{
        text-align:left;
    }

    .riqui-category-card{
        min-height:220px;
        aspect-ratio:1 / .82;
    }

    body[data-riqui-menu="true"] .riqui-category-card[data-section="bar-y-cafeteria"]{
        min-height:220px;
        aspect-ratio:1 / .82;
    }

    .riqui-category-content{
        left:22px;
        right:22px;
        bottom:22px;
    }

    .riqui-featured-panel{
        padding:10px 2px;
    }

    .riqui-featured-stage{
        min-height:220px;
    }

    .riqui-featured-stage img{
        border-radius:18px;
        aspect-ratio:1 / .9;
    }

    .riqui-featured-glow{
        width:86%;
    }

    .riqui-option-card{
        grid-template-columns:58px 1fr;
        min-height:80px;
    }

    .riqui-option-card > span{
        width:58px;
        height:58px;
    }

    .riqui-menu-page .menu-page-header{
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        padding:16px 5vw;
        background:rgba(8,7,6,.92);
    }

    .riqui-menu-page .menu-page-header .back-link{
        max-width:52%;
        font-size:.62rem;
        line-height:1.15;
        padding-bottom:4px;
    }

    .riqui-menu-page .menu-page-header .btn{
        width:auto;
        min-height:40px;
        padding:10px 24px;
        flex-shrink:0;
    }

    .riqui-product-view{
        padding-top:4px;
    }

    .riqui-detail-heading{
        position:relative;
        padding-left:50px;
        margin-bottom:16px;
    }

    .riqui-back-button{
        position:absolute;
        top:6px;
        left:0;
        width:36px;
        height:36px;
    }

    .riqui-detail-heading h1{
        font-size:2.55rem;
        margin-bottom:8px;
    }

    .riqui-detail-heading p{
        font-size:.9rem;
        line-height:1.45;
    }

    .riqui-featured{
        grid-template-columns:1fr;
        gap:12px;
    }

    .riqui-featured-stage{
        order:-1;
    }

    .riqui-featured-panel{
        order:1;
        border-top:1px solid var(--line);
        margin-top:8px;
        padding-top:16px;
    }

    .riqui-featured-panel h3{
        font-size:1.9rem;
        margin-bottom:10px;
    }

    .riqui-featured-panel p{
        font-size:.9rem;
        margin-bottom:10px;
    }

    .riqui-featured-panel .btn{
        width:100%;
        min-height:42px;
    }
}


.riqui-product-view[data-layout="grid"] .riqui-featured,
.riqui-product-view[data-layout="accordion"] .riqui-featured{
    display:none;
}

.riqui-option-strip.grid-mode{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    align-items:stretch;
    max-width:1180px;
    padding:14px;
    gap:14px;
}

.riqui-grid-card{
    display:flex;
    flex-direction:column;
    min-height:100%;
    padding:14px;
    border:1px solid rgba(232,201,119,.24);
    border-radius:18px;
    background:rgba(12,10,8,.78);
}

.riqui-grid-image{
    display:block;
    width:100%;
    aspect-ratio:1.25 / .78;
    border-radius:12px;
    background-size:cover;
    background-position:center;
    filter:saturate(1.08) contrast(1.04) brightness(1.06);
    margin-bottom:14px;
}

.riqui-grid-group{
    color:var(--gold-bright);
    font-size:.74rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    margin-bottom:8px;
}

.riqui-grid-card h3{
    font-family:"Fraunces", Georgia, serif;
    font-size:1.45rem;
    line-height:1.05;
    margin-bottom:10px;
}

.riqui-grid-card p{
    color:var(--bone-dim);
    line-height:1.45;
    margin-bottom:16px;
}

.riqui-grid-card strong{
    color:var(--gold-bright);
    font-size:1.15rem;
    margin-top:auto;
    margin-bottom:14px;
}

.riqui-grid-card .btn{
    width:100%;
    min-height:42px;
}

@media(max-width:680px){
    .riqui-option-strip.grid-mode{
        grid-template-columns:1fr;
        padding:10px;
    }

    .riqui-grid-card{
        border-radius:14px;
    }
}


.riqui-variant-picker{
    margin:-8px 0 22px;
    max-width:520px;
}

.riqui-variant-picker > span{
    display:block;
    color:var(--gold-bright);
    font-size:.75rem;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:10px;
}

.riqui-variant-options{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.riqui-variant-btn{
    min-width:96px;
    min-height:50px;
    padding:8px 12px;
    border:1px solid rgba(232,201,119,.26);
    border-radius:999px;
    background:rgba(245,236,217,.06);
    color:var(--bone);
    cursor:pointer;
    transition:border-color .2s ease, background .2s ease, transform .2s ease;
}

.riqui-variant-btn:hover,
.riqui-variant-btn.active{
    border-color:var(--gold-bright);
    background:rgba(232,201,119,.18);
    transform:translateY(-1px);
}

.riqui-variant-btn b,
.riqui-variant-btn small{
    display:block;
    line-height:1.15;
}

.riqui-variant-btn small{
    color:var(--gold-bright);
    font-weight:800;
    margin-top:3px;
}

@media(max-width:520px){
    .riqui-variant-options{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .riqui-variant-btn{
        min-width:0;
        width:100%;
        border-radius:16px;
    }
}


.riqui-grid-note{
    grid-column:1 / -1;
    padding:14px 16px;
    border:1px solid rgba(232,201,119,.22);
    border-radius:14px;
    background:rgba(232,201,119,.08);
    color:var(--bone-dim);
    font-weight:700;
    line-height:1.45;
}


.riqui-grid-section{
    grid-column:1 / -1;
}

.riqui-grid-section-head{
    display:grid;
    grid-template-columns:106px 1fr;
    gap:14px;
    align-items:center;
    margin:4px 0 14px;
}

.riqui-grid-section-head span{
    display:block;
    width:106px;
    height:78px;
    border-radius:14px;
    background-size:cover;
    background-position:center;
    filter:saturate(1.08) contrast(1.04) brightness(1.06);
}

.riqui-grid-section > h3{
    font-family:"Fraunces", Georgia, serif;
    color:var(--bone);
    font-size:clamp(1.8rem, 3vw, 2.8rem);
    font-weight:500;
    line-height:1;
    margin:4px 0 14px;
}

.riqui-grid-section-head h3{
    font-family:"Fraunces", Georgia, serif;
    color:var(--bone);
    font-size:clamp(1.8rem, 3vw, 2.8rem);
    font-weight:500;
    line-height:1;
    margin:0;
}

.riqui-grid-row{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:14px;
}

.riqui-grid-card h4{
    font-family:"Fraunces", Georgia, serif;
    font-size:1.45rem;
    line-height:1.05;
    margin-bottom:10px;
}

@media(max-width:680px){
    .riqui-grid-section-head{
        grid-template-columns:74px 1fr;
        gap:12px;
    }

    .riqui-grid-section-head span{
        width:74px;
        height:58px;
        border-radius:12px;
    }

    .riqui-grid-section > h3{
        font-size:1.75rem;
    }

    .riqui-grid-section-head h3{
        font-size:1.75rem;
    }

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


.riqui-option-strip.accordion-mode{
    grid-template-columns:1fr;
    max-width:920px;
    gap:10px;
}

.riqui-option-strip.accordion-mode.section-carousel-mode{
    max-width:1280px;
    gap:16px;
}

.tora-section-carousel{
    position:relative;
    width:100%;
    display:flex;
    gap:18px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding:18px;
    border:1px solid rgba(232,201,119,.2);
    border-radius:16px;
    background:
        linear-gradient(90deg, rgba(0,0,0,.34), transparent 12%, transparent 88%, rgba(0,0,0,.34)),
        rgba(0,0,0,.22);
    scrollbar-width:thin;
    scrollbar-color:var(--gold-bright) rgba(245,236,217,.08);
}

.tora-section-carousel::-webkit-scrollbar{
    height:9px;
}

.tora-section-carousel::-webkit-scrollbar-track{
    margin-inline:16px;
    border-radius:999px;
    background:rgba(245,236,217,.08);
}

.tora-section-carousel::-webkit-scrollbar-thumb{
    border:2px solid rgba(12,10,8,.92);
    border-radius:999px;
    background:linear-gradient(90deg,var(--gold),var(--gold-bright));
}

.tora-section-carousel-card{
    flex:0 0 clamp(240px, 26vw, 340px);
    width:clamp(240px, 26vw, 340px);
    aspect-ratio:1.18 / 1;
    display:block;
    scroll-snap-align:start;
    border:1px solid rgba(232,201,119,.3);
    border-radius:14px;
    background-size:cover;
    background-position:center;
    filter:saturate(1.08) contrast(1.04) brightness(1.04);
    box-shadow:0 14px 30px rgba(0,0,0,.28);
}

.riqui-accordion-section{
    border:1px solid rgba(232,201,119,.22);
    border-radius:16px;
    overflow:hidden;
    background:rgba(12,10,8,.76);
}

.riqui-group-carousel{
    position:relative;
    width:100%;
    display:flex;
    gap:12px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding:14px 16px;
    border-bottom:1px solid rgba(232,201,119,.18);
    background:
        linear-gradient(90deg, rgba(0,0,0,.3), transparent 12%, transparent 88%, rgba(0,0,0,.3)),
        rgba(0,0,0,.18);
    scrollbar-width:thin;
    scrollbar-color:var(--gold-bright) rgba(245,236,217,.08);
}

.riqui-group-carousel::-webkit-scrollbar{
    height:7px;
}

.riqui-group-carousel::-webkit-scrollbar-track{
    margin-inline:16px;
    border-radius:999px;
    background:rgba(245,236,217,.07);
}

.riqui-group-carousel::-webkit-scrollbar-thumb{
    border:2px solid rgba(12,10,8,.92);
    border-radius:999px;
    background:linear-gradient(90deg,var(--gold),var(--gold-bright));
}

.riqui-group-carousel-card{
    flex:0 0 clamp(160px, 22vw, 230px);
    width:clamp(160px, 22vw, 230px);
    height:clamp(145px, 19vw, 210px);
    display:block;
    scroll-snap-align:start;
    border:1px solid rgba(232,201,119,.26);
    border-radius:16px;
    background-size:cover;
    background-position:center;
    filter:saturate(1.08) contrast(1.04) brightness(1.06);
    box-shadow:0 10px 22px rgba(0,0,0,.22);
    animation:riquiCarouselCardFloat 16s ease-in-out infinite;
    animation-delay:calc(var(--card-index) * .55s);
}

@keyframes riquiCarouselCardFloat{
    0%,
    100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-4px);
    }
}

@media(max-width:680px){
    .riqui-option-strip.accordion-mode.section-carousel-mode{
        max-width:100%;
    }

    .tora-section-carousel{
        gap:12px;
        padding:12px;
    }

    .tora-section-carousel-card{
        flex-basis:220px;
        width:220px;
    }

    .riqui-group-carousel{
        padding:12px;
    }

    .riqui-group-carousel-card{
        flex-basis:148px;
        width:148px;
        height:170px;
    }
}

@media(prefers-reduced-motion:reduce){
    .experience-carousel-track,
    .riqui-group-carousel-card{
        animation:none;
    }
}

.riqui-accordion-section--cards .riqui-accordion-toggle{
    grid-template-columns:1fr 42px;
}

.riqui-accordion-toggle{
    width:100%;
    min-height:152px;
    display:grid;
    grid-template-columns:118px 1fr 42px;
    gap:18px;
    align-items:center;
    padding:12px 18px;
    border:0;
    background:transparent;
    color:var(--bone);
    text-align:left;
    cursor:pointer;
}

.riqui-accordion-image{
    display:block;
    background-size:cover;
    background-position:center;
    filter:saturate(1.1) contrast(1.05) brightness(1.08);
    box-shadow:inset 0 0 0 1px rgba(232,201,119,.34), 0 8px 18px rgba(0,0,0,.18);
}

.riqui-accordion-image{
    width:118px;
    height:128px;
    border-radius:14px;
}

.riqui-option-strip[data-section="cafe"] .riqui-accordion-toggle{
    grid-template-columns:190px 1fr 42px;
    min-height:180px;
}

.riqui-option-strip[data-section="cafe"] .riqui-accordion-image{
    width:190px;
    height:156px;
}

.riqui-accordion-copy strong{
    display:block;
    font-family:"Fraunces", Georgia, serif;
    font-size:clamp(1.35rem, 2.5vw, 1.9rem);
    line-height:1;
}

.riqui-accordion-copy small{
    display:block;
    color:var(--gold-bright);
    font-weight:800;
    margin-top:7px;
}

.riqui-accordion-icon{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--gold);
    color:var(--ink);
    font-size:1.45rem;
    font-weight:700;
}

.riqui-accordion-body{
    display:grid;
    gap:6px;
    padding:0 12px 12px;
}

.riqui-accordion-body[hidden]{
    display:none;
}

.riqui-accordion-card-body{
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:10px;
}

.riqui-accordion-card{
    display:flex;
    min-height:150px;
    flex-direction:column;
    padding:16px;
    border:1px solid rgba(245,236,217,.1);
    border-radius:12px;
    background:rgba(0,0,0,.22);
}

.riqui-accordion-card h4{
    font-family:"Fraunces", Georgia, serif;
    font-size:1.2rem;
    line-height:1.1;
    margin-bottom:8px;
}

.riqui-accordion-card p{
    color:var(--bone-dim);
    line-height:1.4;
    margin-bottom:14px;
}

.riqui-accordion-card strong{
    color:var(--gold-bright);
    margin-top:auto;
}

.riqui-menu-row{
    padding:9px 10px;
    border:1px solid rgba(245,236,217,.08);
    border-radius:10px;
    background:rgba(0,0,0,.2);
}

.riqui-menu-row-copy{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
}

.riqui-menu-row-copy strong{
    font-size:.95rem;
    line-height:1.15;
}

.riqui-menu-row-copy small{
    color:var(--gold-bright);
    font-weight:900;
    white-space:nowrap;
}

@media(max-width:520px){
    .riqui-accordion-toggle{
        grid-template-columns:82px 1fr 34px;
        min-height:112px;
        gap:10px;
        padding:9px 10px;
    }

    .riqui-accordion-image{
        width:82px;
        height:96px;
    }

    .riqui-option-strip[data-section="cafe"] .riqui-accordion-toggle{
        grid-template-columns:118px 1fr 34px;
        min-height:132px;
    }

    .riqui-option-strip[data-section="cafe"] .riqui-accordion-image{
        width:118px;
        height:112px;
    }

    .riqui-accordion-icon{
        width:32px;
        height:32px;
        font-size:1.25rem;
    }

    .riqui-menu-row-copy{
        align-items:center;
        flex-direction:row;
        gap:10px;
    }

    body[data-riqui-menu="true"] .riqui-featured-panel{
        padding:22px 20px;
        border-top:1px solid rgba(62,140,79,.34);
    }

    body[data-riqui-menu="true"] .riqui-featured-panel::before{
        inset:12px auto 12px 0;
    }
}
