.demo-restaurant{
    --restaurant-bg:#120e0c;
    --restaurant-surface:#1b1512;
    --restaurant-surface-2:#241c18;
    --restaurant-line:rgba(255,255,255,.08);
    --restaurant-text:#f4eadb;
    --restaurant-muted:#ccbba5;
    --restaurant-accent:#c88a4b;
    --restaurant-accent-2:#e2a45f;
    color:var(--restaurant-text);
    background:
        radial-gradient(720px 360px at 8% 0%, rgba(200,138,75,.16), transparent 58%),
        radial-gradient(520px 240px at 92% 8%, rgba(255,255,255,.04), transparent 55%),
        linear-gradient(180deg, #110d0b, #15100d 36%, #120f0d 100%);
}

.demo-restaurant .container{
    width:min(1180px, calc(100% - 2rem));
    margin:0 auto;
}

/* =========================
   FAUX HEADER
   ========================= */

.demo-restaurant-header{
    position:sticky;
    top:56px;
    z-index:30;
    background:rgba(10, 8, 7, .72);
    backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,.06);
}

.demo-restaurant-header__inner{
    min-height:80px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}

.demo-restaurant-header__brand{
    color:var(--restaurant-text);
    text-decoration:none;
    font-size:15px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.demo-restaurant-header__nav{
    display:flex;
    align-items:center;
    gap:22px;
}

.demo-restaurant-header__nav a{
    color:var(--restaurant-muted);
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    transition:color .2s ease;
}

.demo-restaurant-header__nav a:hover{
    color:var(--restaurant-text);
}

.demo-restaurant-header__cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 16px;
    border-radius:999px;
    text-decoration:none;
    background:linear-gradient(135deg, var(--restaurant-accent), var(--restaurant-accent-2));
    color:#1b120b;
    font-weight:800;
}

/* =========================
   GENERIC
   ========================= */

.demo-restaurant__eyebrow,
.demo-restaurant__section-tag{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin:0 0 14px;
    color:var(--restaurant-accent-2);
    font-size:12px;
    font-weight:850;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.demo-restaurant__lead,
.demo-restaurant-section-head p,
.demo-restaurant-card p,
.demo-menu-card p,
.demo-experience-card p,
.demo-restaurant-feature-card p,
.demo-restaurant-chef__content p,
.demo-restaurant-reservation__content p,
.demo-info-card p{
    color:var(--restaurant-muted);
    line-height:1.8;
}

.demo-restaurant__actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin:26px 0 18px;
}

.demo-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:0 18px;
    border-radius:999px;
    text-decoration:none;
    border:1px solid transparent;
    transition:transform .22s ease, border-color .22s ease, background .22s ease;
    font-weight:800;
}

.demo-btn:hover{
    transform:translateY(-2px);
}

.demo-btn--primary{
    background:linear-gradient(135deg, var(--restaurant-accent), var(--restaurant-accent-2));
    color:#1b120b;
}

.demo-btn--ghost{
    border-color:var(--restaurant-line);
    background:rgba(255,255,255,.04);
    color:var(--restaurant-text);
}

.demo-restaurant-section-head{
    max-width:760px;
    margin-bottom:24px;
}

.demo-restaurant-section-head h2,
.demo-restaurant-card h2,
.demo-restaurant-chef__content h2,
.demo-restaurant-reservation__content h2{
    margin:0 0 14px;
    font-size:clamp(30px, 4vw, 54px);
    line-height:1.06;
    letter-spacing:-.03em;
}

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

.demo-restaurant-hero{
    position:relative;
    min-height:92vh;
    display:flex;
    align-items:center;
    padding:48px 0;
}

.demo-restaurant-hero__grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:28px;
    align-items:center;
}

.demo-restaurant-hero__content h1{
    margin:0 0 16px;
    line-height:1.02;
    letter-spacing:-.03em;
    font-size:clamp(40px, 5vw, 76px);
}

.demo-restaurant-hero__meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.demo-restaurant-hero__meta span{
    padding:10px 14px;
    border-radius:999px;
    border:1px solid var(--restaurant-line);
    background:rgba(255,255,255,.04);
    color:var(--restaurant-text);
    font-size:14px;
    font-weight:700;
}

.demo-restaurant-hero__visual{
    display:flex;
    justify-content:center;
}

.demo-restaurant-hero-card{
    width:min(100%, 440px);
    min-height:520px;
    overflow:hidden;
    padding:0;
    border-radius:32px;
    border:1px solid rgba(200,138,75,.22);
    background:
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)),
        rgba(20,14,12,.92);
    box-shadow:
        0 28px 80px rgba(0,0,0,.34),
        0 0 0 1px rgba(200,138,75,.05);
    transform-style:preserve-3d;
    will-change:transform;
}

.demo-restaurant-hero-card__image{
    position:relative;
    min-height:280px;
    display:flex;
    align-items:end;
    padding:18px;
    background:
        linear-gradient(135deg, rgba(200,138,75,.18), rgba(255,255,255,.03)),
        linear-gradient(180deg, #2a1f1a, #171210);
    border-bottom:1px solid rgba(255,255,255,.06);
}

.demo-restaurant-hero-card__image::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 25% 25%, rgba(255,255,255,.10), transparent 22%),
        radial-gradient(circle at 78% 70%, rgba(255,255,255,.06), transparent 18%);
}

.demo-restaurant-hero-card__image span{
    position:relative;
    z-index:2;
    display:inline-flex;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(0,0,0,.24);
    border:1px solid rgba(255,255,255,.10);
    color:var(--restaurant-text);
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.demo-restaurant-hero-card__body{
    padding:22px 24px 24px;
}

.demo-restaurant-hero-card__badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 12px;
    border-radius:999px;
    margin-bottom:16px;
    border:1px solid rgba(200,138,75,.34);
    background:rgba(200,138,75,.14);
    color:var(--restaurant-accent-2);
    font-size:12px;
    font-weight:850;
}

.demo-restaurant-hero-card h2{
    margin:0 0 12px;
    max-width:none;
    line-height:1.08;
    font-size:clamp(26px, 2.6vw, 36px);
}

.demo-restaurant-hero-card p{
    margin:0;
    color:var(--restaurant-muted);
    line-height:1.7;
}

/* =========================
   BLOCKS
   ========================= */

.demo-restaurant-intro,
.demo-restaurant-signature,
.demo-restaurant-menu,
.demo-restaurant-gallery,
.demo-restaurant-experience,
.demo-restaurant-chef,
.demo-restaurant-info,
.demo-restaurant-reservation{
    padding:56px 0;
}

.demo-restaurant-intro__grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:18px;
}

.demo-restaurant-card,
.demo-menu-card,
.demo-experience-card,
.demo-restaurant-feature-card,
.demo-info-card,
.demo-restaurant-reservation__box{
    border-radius:28px;
    border:1px solid var(--restaurant-line);
    background:rgba(255,255,255,.03);
}

.demo-restaurant-card{
    padding:24px;
}

.demo-restaurant-card--quote{
    display:flex;
    align-items:center;
    justify-content:center;
}

.demo-restaurant-card--quote p{
    margin:0;
    font-size:clamp(20px, 2vw, 28px);
    line-height:1.5;
    font-style:italic;
}

.demo-restaurant-signature__grid{
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:18px;
    align-items:stretch;
}

.demo-restaurant-signature__content{
    display:grid;
    gap:16px;
}

.demo-restaurant-feature-card{
    padding:20px;
}

.demo-restaurant-feature-card h3,
.demo-menu-card h3,
.demo-experience-card h3,
.demo-info-card h3{
    margin:0 0 10px;
    color:var(--restaurant-text);
}

.demo-restaurant-menu__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:16px;
}

.demo-menu-card{
    padding:20px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)),
        var(--restaurant-surface);
    transition:transform .22s ease, border-color .22s ease;
}

.demo-menu-card:hover{
    transform:translateY(-3px);
    border-color:rgba(200,138,75,.28);
}

.demo-menu-card span{
    display:inline-block;
    margin-bottom:10px;
    color:var(--restaurant-accent-2);
    font-size:12px;
    font-weight:850;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.demo-menu-card strong{
    display:inline-block;
    margin-top:16px;
    color:var(--restaurant-accent-2);
    font-size:18px;
}

.demo-restaurant-gallery__grid{
    display:grid;
    grid-template-columns:1.2fr .8fr .8fr;
    gap:16px;
    grid-auto-rows:220px;
}

.demo-image-block{
    position:relative;
    overflow:hidden;
    border-radius:28px;
    border:1px solid var(--restaurant-line);
    background:
        linear-gradient(135deg, rgba(200,138,75,.18), rgba(255,255,255,.03)),
        linear-gradient(180deg, #231a16, #171210);
    display:flex;
    align-items:end;
    padding:18px;
}

.demo-image-block::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 25% 25%, rgba(255,255,255,.10), transparent 22%),
        radial-gradient(circle at 78% 70%, rgba(255,255,255,.06), transparent 18%);
}

.demo-image-block span{
    position:relative;
    z-index:2;
    display:inline-flex;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(0,0,0,.24);
    border:1px solid rgba(255,255,255,.10);
    color:var(--restaurant-text);
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.demo-image-block--large{
    min-height:100%;
}

.demo-image-block--tall{
    grid-row:span 2;
}

.demo-restaurant-experience__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:16px;
}

.demo-experience-card{
    padding:24px;
    transition:transform .22s ease, border-color .22s ease;
}

.demo-experience-card:hover{
    transform:translateY(-3px);
    border-color:rgba(200,138,75,.28);
}

.demo-restaurant-chef__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    align-items:center;
}

.demo-image-block--chef{
    min-height:420px;
}

.demo-restaurant-info__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:16px;
}

.demo-info-card{
    padding:22px;
}

.demo-restaurant-reservation__box{
    padding:24px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    align-items:center;
}

.demo-restaurant-form{
    display:grid;
    gap:14px;
}

.demo-restaurant-form__row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.demo-restaurant-form__row--full{
    grid-template-columns:1fr;
}

.demo-restaurant-form input{
    width:100%;
    min-height:54px;
    padding:0 14px;
    border-radius:14px;
    border:1px solid var(--restaurant-line);
    background:rgba(255,255,255,.04);
    color:var(--restaurant-text);
    outline:none;
}

.demo-restaurant-form input::placeholder{
    color:var(--restaurant-muted);
}

/* =========================
   ANIMATIONS
   ========================= */

.reveal-up{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s ease, transform .8s ease;
}

.reveal-delay-1{
    transition-delay:.12s;
}

.reveal-delay-2{
    transition-delay:.24s;
}

.reveal-up.is-visible{
    opacity:1;
    transform:translateY(0);
}

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

@media (max-width: 1080px){
    .demo-restaurant-hero__grid,
    .demo-restaurant-intro__grid,
    .demo-restaurant-signature__grid,
    .demo-restaurant-menu__grid,
    .demo-restaurant-experience__grid,
    .demo-restaurant-chef__grid,
    .demo-restaurant-info__grid,
    .demo-restaurant-reservation__box,
    .demo-restaurant-form__row{
        grid-template-columns:1fr;
    }

    .demo-restaurant-gallery__grid{
        grid-template-columns:1fr;
        grid-auto-rows:220px;
    }

    .demo-image-block--tall{
        grid-row:span 1;
    }

    .demo-restaurant-header__nav{
        display:none;
    }

    .demo-restaurant-hero{
        min-height:auto;
        padding:34px 0 24px;
    }
}

@media (max-width: 720px){
    .demo-restaurant-header{
        top:76px;
    }

    .demo-restaurant .container{
        width:min(100% - 1.2rem, 1180px);
    }

    .demo-restaurant__actions{
        flex-direction:column;
    }

    .demo-btn{
        width:100%;
    }

    .demo-restaurant-header__inner{
        min-height:72px;
    }

    .demo-restaurant-header__brand{
        font-size:13px;
    }

    .demo-restaurant-header__cta{
        min-height:40px;
        padding:0 14px;
        font-size:14px;
    }

    .demo-restaurant-hero-card{
        min-height:unset;
    }

    .demo-restaurant-hero-card__image{
        min-height:220px;
    }

    .demo-image-block--chef{
        min-height:280px;
    }
}
