/*=========================================================
  GOURMET KREYOL
  Premium Editorial Catering Website
=========================================================*/


/*=========================================================
ROOT VARIABLES
=========================================================*/

:root{

    /* Brand */

    --cyan:#59C7CB;
    --pink:#E978E8;
    --blue:#3F57B8;

    /* Dark Theme */

    --bg:#09090B;
    --bg-secondary:#111114;
    --surface:#18181D;
    --surface-hover:#222228;

    /* Typography */

    --heading:#FFFFFF;
    --text:#CFCFD6;
    --muted:#9B9BA7;

    /* Borders */

    --border:rgba(255,255,255,.08);

    /* Fonts */

    --heading-font:'Cormorant Garamond', serif;
    --body-font:'Inter', sans-serif;

    /* Layout */

    --container:1280px;

    --section-padding:140px;

    --radius:24px;
    --radius-small:18px;
    --radius-large:34px;

    /* Effects */

    --shadow:
        0 30px 80px rgba(0,0,0,.45);

    --transition:
        .45s cubic-bezier(.4,0,.2,1);

}



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

*,
*::before,
*::after{

    margin:0;
    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    background:var(--bg);

    color:var(--text);

    font-family:var(--body-font);

    overflow-x:hidden;

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

}



/*=========================================================
GLOBAL
=========================================================*/

img{

    display:block;

    width:100%;

}

a{

    color:inherit;

    text-decoration:none;

}

button{

    background:none;

    border:none;

    cursor:pointer;

    font-family:inherit;

}

ul{

    list-style:none;

}

section{

    position:relative;

    padding:var(--section-padding) 0;

}

.container{

    width:min(92%,var(--container));

    margin:auto;

}



/*=========================================================
SCROLLBAR
=========================================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#101014;

}

::-webkit-scrollbar-thumb{

    background:var(--cyan);

    border-radius:100px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--pink);

}



/*=========================================================
TEXT SELECTION
=========================================================*/

::selection{

    background:var(--pink);

    color:#111;

}



/*=========================================================
TYPOGRAPHY
=========================================================*/

h1,
h2,
h3,
h4{

    color:var(--heading);

    font-family:var(--heading-font);

    font-weight:600;

    line-height:1.05;

    letter-spacing:-1px;

}

h1{

    font-size:clamp(4.3rem,8vw,7rem);

}

h2{

    font-size:clamp(3rem,6vw,5rem);

}

h3{

    font-size:2rem;

}

p{

    color:var(--text);

    font-size:1.06rem;

    line-height:1.9;

}



/*=========================================================
SECTION HEADER
=========================================================*/

.section-header{

    max-width:760px;

    margin:0 auto 90px;

    text-align:center;

}

.section-tag{

    display:inline-flex;

    align-items:center;

    gap:14px;

    margin-bottom:26px;

    color:var(--cyan);

    text-transform:uppercase;

    letter-spacing:.25em;

    font-size:.8rem;

    font-weight:600;

}

.section-tag::before{

    content:"";

    width:44px;

    height:2px;

    border-radius:20px;

    background:linear-gradient(
        90deg,
        var(--cyan),
        var(--pink)
    );

}

.section-header h2{

    margin-bottom:24px;

}

.section-header p{

    max-width:650px;

    margin:auto;

}



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

.btn-primary{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    padding:18px 42px;

    border-radius:100px;

    background:linear-gradient(
        135deg,
        var(--pink),
        #F08AEF
    );

    color:#111;

    font-weight:700;

    transition:var(--transition);

}

.btn-primary:hover{

    transform:translateY(-5px);

    box-shadow:
    0 20px 60px rgba(233,120,232,.35);

}

.btn-secondary{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:18px 42px;

    border-radius:100px;

    border:1px solid var(--cyan);

    color:var(--heading);

    transition:var(--transition);

}

.btn-secondary:hover{

    background:rgba(89,199,203,.12);

    border-color:var(--pink);

}



/*=========================================================
COMMON CARDS
=========================================================*/

.collection-card,
.occasion-card,
.experience-card,
.reservation-card,
.faq-item,
.floating-card{

    background:var(--surface);

    border:1px solid var(--border);

    border-radius:var(--radius);

    transition:var(--transition);

}

.collection-card:hover,
.occasion-card:hover,
.experience-card:hover{

    transform:translateY(-10px);

    background:var(--surface-hover);

    border-color:rgba(89,199,203,.35);

    box-shadow:var(--shadow);

}



/*=========================================================
BACKGROUND
=========================================================*/

body::before{

    content:"";

    position:fixed;

    inset:0;

    pointer-events:none;

    z-index:-1;

    background:

    radial-gradient(

        circle at top right,

        rgba(89,199,203,.08),

        transparent 35%

    ),

    radial-gradient(

        circle at bottom left,

        rgba(233,120,232,.08),

        transparent 35%

    ),

    radial-gradient(

        circle at top left,

        rgba(63,87,184,.05),

        transparent 40%

    );

}



/*=========================================================
HELPERS
=========================================================*/

.text-center{

    text-align:center;

}

.hidden{

    display:none !important;

}

/*=========================================================
LOADER
=========================================================*/

#pageLoader{

    position:fixed;
    inset:0;

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

    background:var(--bg);

    z-index:99999;

    transition:
    opacity .7s ease,
    visibility .7s ease;

}

#pageLoader.hidden{

    opacity:0;
    visibility:hidden;

}

.loader-content{

    width:320px;

    text-align:center;

}

.loader-logo{

    width:90px;

    margin:0 auto 30px;

}

.loader-content h2{

    margin-bottom:10px;

}

.loader-content p{

    color:var(--muted);

    margin-bottom:36px;

}

.loader-progress{

    width:100%;
    height:4px;

    background:#232329;

    border-radius:999px;

    overflow:hidden;

}

.loader-bar{

    display:block;

    width:0;

    height:100%;

    background:linear-gradient(
        90deg,
        var(--cyan),
        var(--pink)
    );

}



/*=========================================================
NAVIGATION
=========================================================*/

.navbar{

    position:fixed;

    top:24px;
    left:50%;

    transform:translateX(-50%);

    width:min(94%,1280px);

    padding:18px 28px;

    border-radius:100px;

    border:1px solid rgba(255,255,255,.06);

    background:rgba(17,17,20,.45);

    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);

    transition:var(--transition);

    z-index:999;

}

.navbar.scrolled{

    background:rgba(17,17,20,.92);

    border-color:rgba(89,199,203,.18);

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

}

.nav-container{

    display:flex;

    justify-content:space-between;

    align-items:center;

}



/*=========================================================
LOGO
=========================================================*/

.logo{

    display:flex;

    align-items:center;

    gap:16px;

}

.logo img{

    width:56px;

}

.logo-text{

    display:flex;

    flex-direction:column;

}

.logo-title{

    font-size:1.7rem;

    line-height:1;

    font-weight:600;

    color:var(--heading);

    font-family:var(--heading-font);

}

.logo-subtitle{

    margin-top:6px;

    color:var(--cyan);

    letter-spacing:.22em;

    text-transform:uppercase;

    font-size:.72rem;

}



/*=========================================================
DESKTOP MENU
=========================================================*/

.desktop-nav{

    display:flex;

    align-items:center;

    gap:42px;

}

.desktop-nav a{

    position:relative;

    color:var(--text);

    font-size:.95rem;

    transition:var(--transition);

}

.desktop-nav a:hover{

    color:var(--heading);

}

.desktop-nav a::after{

    content:"";

    position:absolute;

    left:0;
    bottom:-8px;

    width:0;

    height:2px;

    border-radius:50px;

    background:linear-gradient(
        90deg,
        var(--cyan),
        var(--pink)
    );

    transition:.35s;

}

.desktop-nav a:hover::after{

    width:100%;

}



/*=========================================================
NAV BUTTON
=========================================================*/

.nav-button{

    display:flex;

    justify-content:center;

    align-items:center;

    padding:16px 34px;

    border-radius:999px;

    background:linear-gradient(
        135deg,
        var(--pink),
        #F08AEF
    );

    color:#101010;

    font-weight:700;

    transition:var(--transition);

}

.nav-button:hover{

    transform:translateY(-4px);

    box-shadow:
    0 18px 50px rgba(233,120,232,.35);

}



/*=========================================================
MOBILE TOGGLE
=========================================================*/

.menu-toggle{

    display:none;

    width:52px;
    height:52px;

    border-radius:50%;

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

    flex-direction:column;

    gap:6px;

    background:var(--surface);

    border:1px solid var(--border);

    cursor:pointer;

    transition:var(--transition);

}

.menu-toggle span{

    width:22px;
    height:2px;

    background:var(--heading);

    border-radius:2px;

    transition:var(--transition);

}

/* Animated hamburger to X */

.menu-toggle.active span:nth-child(1){

    transform:translateY(8px) rotate(45deg);

}

.menu-toggle.active span:nth-child(2){

    opacity:0;

    transform:scaleX(0);

}

.menu-toggle.active span:nth-child(3){

    transform:translateY(-8px) rotate(-45deg);

}



/*=========================================================
MOBILE MENU
=========================================================*/

.mobile-menu{

    position:fixed;

    top:0;
    right:-100%;

    width:340px;
    max-width:100%;

    height:100vh;

    background:var(--bg-secondary);

    border-left:1px solid var(--border);

    transition:.45s ease;

    z-index:998;

}

.mobile-menu.active{

    right:0;

}

.mobile-nav{

    display:flex;

    flex-direction:column;

    gap:32px;

    padding:120px 42px;

}

.mobile-nav a{

    color:var(--heading);

    font-size:1.08rem;

}

.mobile-button{

    display:flex;

    justify-content:center;

    align-items:center;

    margin-top:24px;

    height:58px;

    border-radius:999px;

    background:linear-gradient(
        135deg,
        var(--pink),
        #F08AEF
    );

    color:#111;

    font-weight:700;

}

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

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    padding-top:170px;

    background:
    radial-gradient(circle at top right,
    rgba(89,199,203,.10),
    transparent 28%),

    radial-gradient(circle at bottom left,
    rgba(233,120,232,.08),
    transparent 32%),

    linear-gradient(
    180deg,
    var(--bg),
    var(--bg-secondary));

}



/*=========================================================
GRID
=========================================================*/

.hero-grid{

    display:grid;

    grid-template-columns:1.05fr .95fr;

    gap:90px;

    align-items:center;

}



/*=========================================================
LEFT
=========================================================*/

.hero-content{

    position:relative;

    z-index:2;

}

.hero-badge{

    display:inline-flex;

    align-items:center;

    gap:14px;

    padding:12px 22px;

    border-radius:100px;

    background:rgba(89,199,203,.08);

    border:1px solid rgba(89,199,203,.18);

    color:var(--cyan);

    font-size:.78rem;

    letter-spacing:.22em;

    text-transform:uppercase;

    margin-bottom:34px;

}

.hero-badge::before{

    content:"";

    width:34px;

    height:2px;

    border-radius:20px;

    background:linear-gradient(
    90deg,
    var(--cyan),
    var(--pink));

}

.hero-content h1{

    max-width:720px;

    margin-bottom:28px;

}

.hero-content p{

    max-width:580px;

    font-size:1.08rem;

    color:var(--text);

    margin-bottom:46px;

}

.hero-buttons{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

    margin-bottom:70px;

}



/*=========================================================
STATS
=========================================================*/

.hero-stats{

    display:flex;

    gap:55px;

    flex-wrap:wrap;

}

.stat{

    position:relative;

}

.stat::before{

    content:"";

    position:absolute;

    left:-20px;

    top:6px;

    width:2px;

    height:42px;

    background:linear-gradient(
    var(--cyan),
    var(--pink));

}

.stat:first-child::before{

    display:none;

}

.stat h3{

    font-size:2.3rem;

    font-family:var(--body-font);

    color:var(--heading);

    margin-bottom:8px;

}

.stat span{

    color:var(--muted);

}



/*=========================================================
RIGHT
=========================================================*/

.hero-image{

    position:relative;

}

.hero-image img{

    border-radius:32px;

    border:1px solid rgba(255,255,255,.08);

    box-shadow:
    0 40px 90px rgba(0,0,0,.50);

}



/*=========================================================
IMAGE FRAME
=========================================================*/

.hero-image::before{

    content:"";

    position:absolute;

    inset:-18px;

    border-radius:40px;

    border:1px solid rgba(89,199,203,.15);

}

.hero-image::after{

    content:"";

    position:absolute;

    inset:-60px;

    z-index:-1;

    filter:blur(70px);

    background:

    radial-gradient(circle,
    rgba(89,199,203,.18),
    transparent 60%);

}



/*=========================================================
FLOATING CARD
=========================================================*/

.floating-card{

    position:absolute;

    left:-40px;

    bottom:40px;

    width:310px;

    padding:30px;

    background:rgba(24,24,29,.92);

    border:1px solid rgba(233,120,232,.18);

    backdrop-filter:blur(22px);

    border-radius:24px;

    box-shadow:
    0 30px 80px rgba(0,0,0,.45);

}

.floating-card span{

    color:var(--pink);

    font-size:.75rem;

    letter-spacing:.20em;

    text-transform:uppercase;

}

.floating-card h3{

    margin:18px 0 14px;

    font-size:1.8rem;

}

.floating-card p{

    color:var(--muted);

    font-size:.95rem;

}



/*=========================================================
SCROLL INDICATOR
=========================================================*/

.scroll-indicator{

    position:absolute;

    left:50%;

    bottom:36px;

    transform:translateX(-50%);

    width:28px;

    height:52px;

    border-radius:100px;

    border:1px solid rgba(255,255,255,.15);

}

.scroll-indicator span{

    position:absolute;

    left:50%;

    top:9px;

    transform:translateX(-50%);

    width:5px;

    height:10px;

    border-radius:50px;

    background:linear-gradient(
    180deg,
    var(--cyan),
    var(--pink));

    animation:scrollIndicator 2s infinite;

}



/*=========================================================
SCROLL INDICATOR ANIMATION
=========================================================*/

@keyframes scrollIndicator{

    0%{

        opacity:1;

        transform:translateX(-50%) translateY(0);

    }

    50%{

        opacity:.3;

        transform:translateX(-50%) translateY(18px);

    }

    100%{

        opacity:1;

        transform:translateX(-50%) translateY(0);

    }

}



/*=========================================================
BACKGROUND DECORATION
=========================================================*/

.hero::before{

    content:"";

    position:absolute;

    right:-260px;

    top:-260px;

    width:700px;

    height:700px;

    border-radius:50%;

    border:1px solid rgba(89,199,203,.06);

}

.hero::after{

    content:"";

    position:absolute;

    left:-180px;

    bottom:-180px;

    width:450px;

    height:450px;

    border-radius:50%;

    border:1px solid rgba(233,120,232,.06);

}

/*=========================================================
CURATED COLLECTIONS
=========================================================*/

.collections{

    position:relative;

    background:
    linear-gradient(
    180deg,
    var(--bg-secondary),
    var(--bg));

}

.collections-grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(320px,1fr));

    gap:32px;

}



/*=========================================================
COLLECTION CARD
=========================================================*/

.collection-card{

    position:relative;

    overflow:hidden;

    padding:42px;

    display:flex;

    flex-direction:column;

    min-height:380px;

}



/* Top Accent */

.collection-card::before{

    content:"";

    position:absolute;

    left:0;
    top:0;

    width:100%;
    height:4px;

    background:

    linear-gradient(
    90deg,
    var(--cyan),
    var(--pink),
    var(--blue));

    transform:scaleX(0);

    transform-origin:left;

    transition:.45s;

}

.collection-card:hover::before{

    transform:scaleX(1);

}



/* Background Glow */

.collection-card::after{

    content:"";

    position:absolute;

    right:-100px;
    top:-100px;

    width:220px;
    height:220px;

    border-radius:50%;

    background:

    radial-gradient(
    circle,
    rgba(89,199,203,.12),
    transparent 70%);

    opacity:0;

    transition:.45s;

}

.collection-card:hover::after{

    opacity:1;

}



/*=========================================================
ICON
=========================================================*/

.collection-icon{

    width:72px;
    height:72px;

    display:flex;

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

    font-size:2rem;

    border-radius:20px;

    margin-bottom:34px;

    background:

    linear-gradient(
    135deg,
    rgba(89,199,203,.12),
    rgba(233,120,232,.12));

    border:1px solid rgba(89,199,203,.15);

}



/*=========================================================
TEXT
=========================================================*/

.collection-card h3{

    margin-bottom:18px;

}

.collection-card p{

    color:var(--muted);

    margin-bottom:36px;

}



/*=========================================================
INFO
=========================================================*/

.collection-info{

    display:flex;

    gap:14px;

    flex-wrap:wrap;

    margin-top:auto;

    margin-bottom:30px;

}

.collection-info span{

    padding:10px 18px;

    border-radius:999px;

    background:rgba(255,255,255,.04);

    border:1px solid var(--border);

    color:var(--text);

    font-size:.82rem;

}



/*=========================================================
COLLECTION BUTTON
=========================================================*/

.collection-button{

    display:flex;

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

    width:100%;

    height:58px;

    border-radius:999px;

    background:

    linear-gradient(
    135deg,
    var(--pink),
    #F29AF2);

    color:#111;

    font-weight:700;

    transition:var(--transition);

    border:none;

    cursor:pointer;

    font-family:var(--body-font);

    font-size:1rem;

}

.collection-button:hover{

    transform:translateY(-3px);

    box-shadow:

    0 18px 40px
    rgba(233,120,232,.25);

}



/*=========================================================
FEATURED CARD
=========================================================*/

.collection-card.featured{

    border-color:

    rgba(89,199,203,.28);

}

.featured-badge{

    position:absolute;

    right:22px;
    top:22px;

    padding:10px 16px;

    border-radius:999px;

    font-size:.72rem;

    letter-spacing:.18em;

    text-transform:uppercase;

    color:#111;

    background:

    linear-gradient(
    90deg,
    var(--cyan),
    var(--pink));

}



/*=========================================================
CONSULTATION CARD
=========================================================*/

.collection-card.consultation{

    justify-content:center;

    align-items:flex-start;

    background:

    linear-gradient(
    180deg,
    rgba(89,199,203,.05),
    rgba(233,120,232,.04));

}

.collection-card.consultation h3{

    margin-bottom:22px;

}

.collection-card.consultation p{

    margin-bottom:36px;

}

.consultation-button{

    display:inline-flex;

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

    padding:16px 34px;

    border-radius:999px;

    border:1px solid var(--cyan);

    color:var(--heading);

    transition:var(--transition);

}

.consultation-button:hover{

    background:rgba(89,199,203,.12);

    border-color:var(--pink);

}

/*=========================================================
OCCASIONS
=========================================================*/

.occasions{

    position:relative;

    background:var(--bg);

}



/*=========================================================
GRID
=========================================================*/

.occasion-grid{

    display:grid;

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

    gap:34px;

}



/*=========================================================
CARD
=========================================================*/

.occasion-card{

    position:relative;

    overflow:hidden;

    min-height:560px;

    padding:0;

    cursor:pointer;

}



/*=========================================================
IMAGE
=========================================================*/

.occasion-card img{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
    transform .8s ease,
    filter .8s ease;

    filter:
    brightness(.45)
    saturate(.95);

}

.occasion-card:hover img{

    transform:scale(1.08);

    filter:
    brightness(.60)
    saturate(1.05);

}



/*=========================================================
OVERLAY
=========================================================*/

.occasion-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:

    linear-gradient(

    180deg,

    transparent 10%,

    rgba(9,9,11,.25),

    rgba(9,9,11,.95)

    );

    z-index:1;

}



/*=========================================================
GLOW
=========================================================*/

.occasion-card::after{

    content:"";

    position:absolute;

    inset:0;

    opacity:0;

    transition:.45s;

    background:

    radial-gradient(

    circle at top right,

    rgba(89,199,203,.18),

    transparent 40%

    ),

    radial-gradient(

    circle at bottom left,

    rgba(233,120,232,.15),

    transparent 40%

    );

}

.occasion-card:hover::after{

    opacity:1;

}



/*=========================================================
CONTENT
=========================================================*/

.occasion-content{

    position:absolute;

    left:42px;
    right:42px;
    bottom:42px;

    z-index:2;

}

.occasion-content span{

    display:inline-flex;

    align-items:center;

    gap:10px;

    color:var(--cyan);

    font-size:.78rem;

    text-transform:uppercase;

    letter-spacing:.22em;

    margin-bottom:18px;

}

.occasion-content span::before{

    content:"";

    width:34px;

    height:2px;

    border-radius:20px;

    background:

    linear-gradient(
    90deg,
    var(--cyan),
    var(--pink));

}

.occasion-content h3{

    margin-bottom:18px;

    font-size:2.3rem;

}

.occasion-content p{

    max-width:420px;

    color:#E5E5EA;

}



/*=========================================================
HOVER
=========================================================*/

.occasion-card:hover{

    transform:translateY(-10px);

    border-color:

    rgba(89,199,203,.30);

    box-shadow:

    0 35px 90px rgba(0,0,0,.45);

}

/*=========================================================
THE GOURMET KREYOL DIFFERENCE
=========================================================*/

.experience{

    position:relative;

    background:linear-gradient(
    180deg,
    var(--bg),
    var(--bg-secondary));

}



/*=========================================================
GRID
=========================================================*/

.experience-grid{

    display:grid;

    grid-template-columns:1.15fr .85fr;

    gap:36px;

    align-items:stretch;

}



/*=========================================================
LEFT PANEL
=========================================================*/

.experience-content{

    position:relative;

    padding:70px;

    border-radius:32px;

    background:linear-gradient(
    180deg,
    rgba(89,199,203,.05),
    rgba(255,255,255,.02));

    border:1px solid rgba(89,199,203,.14);

    overflow:hidden;

}

.experience-content::before{

    content:"";

    position:absolute;

    top:-180px;
    right:-180px;

    width:420px;
    height:420px;

    border-radius:50%;

    background:radial-gradient(
    circle,
    rgba(89,199,203,.16),
    transparent 70%);

}

.experience-content h2{

    max-width:620px;

    margin-bottom:26px;

}

.experience-content p{

    max-width:640px;

    margin-bottom:42px;

}

.experience-content:hover{

    border-color:rgba(233,120,232,.25);

}



/*=========================================================
EXPERIENCE CARDS
=========================================================*/

.experience-cards{

    display:grid;

    gap:24px;

}



/*=========================================================
EXPERIENCE CARD
=========================================================*/

.experience-card{

    position:relative;

    padding:36px;

    overflow:hidden;

}

.experience-card::before{

    content:"";

    position:absolute;

    left:0;
    top:0;

    width:4px;
    height:100%;

    background:linear-gradient(
    180deg,
    var(--cyan),
    var(--pink));

}

.experience-card h3{

    margin-bottom:18px;

    font-size:1.7rem;

}

.experience-card p{

    color:var(--muted);

}



/*=========================================================
NUMBER BADGE
=========================================================*/

.experience-number{

    position:absolute;

    right:24px;

    top:24px;

    font-size:3.2rem;

    font-weight:700;

    font-family:var(--body-font);

    color:rgba(255,255,255,.05);

}



/*=========================================================
HOVER
=========================================================*/

.experience-card:hover{

    transform:translateY(-8px);

    border-color:rgba(89,199,203,.30);

}

/*=========================================================
RESERVATION CTA
=========================================================*/

.reservation{

    position:relative;

    padding:180px 0;

    overflow:hidden;

    background:
    linear-gradient(
    180deg,
    var(--bg-secondary),
    var(--bg));

}

.reservation::before{

    content:"";

    position:absolute;

    top:-240px;
    left:-220px;

    width:600px;
    height:600px;

    border-radius:50%;

    background:
    radial-gradient(
    circle,
    rgba(89,199,203,.10),
    transparent 70%);

}

.reservation::after{

    content:"";

    position:absolute;

    bottom:-260px;
    right:-220px;

    width:600px;
    height:600px;

    border-radius:50%;

    background:
    radial-gradient(
    circle,
    rgba(233,120,232,.10),
    transparent 70%);

}



/*=========================================================
RESERVATION CARD
=========================================================*/

.reservation-card{

    position:relative;

    max-width:860px;

    margin:0 auto;

    padding:60px;

    border-radius:30px;

    background:
    linear-gradient(
    180deg,
    rgba(255,255,255,.04),
    rgba(255,255,255,.02));

    backdrop-filter:blur(20px);

    border:1px solid rgba(89,199,203,.16);

    box-shadow:
    0 35px 90px rgba(0,0,0,.45);

}

.reservation-card::before{

    content:"";

    position:absolute;

    left:0;
    top:0;

    width:100%;
    height:4px;

    background:
    linear-gradient(
    90deg,
    var(--cyan),
    var(--pink));

}

.reservation-card h2{

    margin-bottom:20px;

}

.reservation-card>p{

    max-width:620px;

    margin-bottom:32px;

}

.reservation-highlights{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));

    gap:20px;

    margin-bottom:36px;

}

.highlight{

    display:flex;

    align-items:flex-start;

    gap:14px;

}

.highlight-number{

    display:flex;

    justify-content:center;

    align-items:center;

    width:28px;

    height:28px;

    flex-shrink:0;

    border-radius:50%;

    background:linear-gradient(
    135deg,
    var(--cyan),
    var(--pink));

    color:#111;

    font-weight:700;

    font-size:.85rem;

}

.highlight p{

    color:var(--text);

    font-size:.98rem;

    margin:0;

}

.reservation-actions{

    display:flex;

    gap:16px;

    flex-wrap:wrap;

    margin-bottom:40px;

}



/*=========================================================
RESERVATION FORM
=========================================================*/

.reservation-form{

    display:flex;

    flex-direction:column;

    gap:20px;

    margin-top:30px;

    padding-top:30px;

    border-top:1px solid var(--border);

}

.form-group{

    display:flex;

    flex-direction:column;

    gap:6px;

}

.form-group label{

    color:var(--text);

    font-size:.88rem;

    font-weight:500;

}

.form-group input,

.form-group select,

.form-group textarea{

    padding:14px 18px;

    border-radius:var(--radius-small);

    background:var(--bg);

    border:1px solid var(--border);

    color:var(--heading);

    font-family:var(--body-font);

    font-size:1rem;

    transition:var(--transition);

    width:100%;

}

.form-group input:focus,

.form-group select:focus,

.form-group textarea:focus{

    outline:none;

    border-color:var(--cyan);

    box-shadow:0 0 0 3px rgba(89,199,203,.15);

}

.form-group textarea{

    resize:vertical;

    min-height:100px;

}

.form-row{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:16px;

}



/*=========================================================
FAQ
=========================================================*/

.faq{

    position:relative;

    background:var(--bg);

}

.faq-list{

    max-width:900px;

    margin:0 auto;

    display:flex;

    flex-direction:column;

    gap:20px;

}



/*=========================================================
FAQ ITEM
=========================================================*/

.faq-item{

    overflow:hidden;

    border-radius:24px;

    background:var(--surface);

    border:1px solid var(--border);

    transition:var(--transition);

}

.faq-item:hover{

    border-color:rgba(89,199,203,.25);

}

.faq-item.active{

    border-color:rgba(89,199,203,.35);

}



/*=========================================================
QUESTION
=========================================================*/

.faq-question{

    width:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:28px 34px;

    background:none;

    color:var(--heading);

    font-size:1.08rem;

    font-weight:600;

    text-align:left;

    cursor:pointer;

}

.faq-question span:first-child{

    flex:1;

}



/*=========================================================
ICON
=========================================================*/

.faq-icon{

    width:42px;
    height:42px;

    display:flex;

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

    border-radius:50%;

    background:rgba(89,199,203,.08);

    border:1px solid rgba(89,199,203,.15);

    color:var(--cyan);

    font-size:1.4rem;

    transition:var(--transition);

    flex-shrink:0;

    margin-left:16px;

}

.faq-item.active .faq-icon{

    transform:rotate(45deg);

    background:rgba(233,120,232,.10);

    color:var(--pink);

}



/*=========================================================
ANSWER
=========================================================*/

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:
    max-height .45s ease,
    padding .45s ease;

}

.faq-answer p{

    padding:0 34px 30px;

    color:var(--muted);

    line-height:1.9;

    margin:0;

}

.faq-item.active .faq-answer{

    max-height:300px;

}



/*=========================================================
COLLECTION PANEL
=========================================================*/

.collection-panel{

    position:fixed;

    inset:0;

    z-index:9999;

    pointer-events:none;

    visibility:hidden;

    opacity:0;

    transition:opacity .5s ease, visibility .5s ease;

}

.collection-panel.active{

    pointer-events:all;

    visibility:visible;

    opacity:1;

}

.panel-overlay{

    position:absolute;

    inset:0;

    background:rgba(9,9,11,.75);

    backdrop-filter:blur(6px);

    -webkit-backdrop-filter:blur(6px);

}

.panel-content{

    position:absolute;

    right:0;

    top:0;

    width:560px;

    max-width:94%;

    height:100vh;

    background:var(--bg-secondary);

    border-left:1px solid var(--border);

    padding:42px 38px;

    overflow-y:auto;

    transform:translateX(100%);

    transition:transform .55s cubic-bezier(.22,.61,.36,1);

}

.collection-panel.active .panel-content{

    transform:translateX(0);

}

.panel-header{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    margin-bottom:18px;

}

.panel-tag{

    display:inline-block;

    color:var(--cyan);

    font-size:.72rem;

    letter-spacing:.22em;

    text-transform:uppercase;

    font-weight:600;

    margin-bottom:12px;

}

.panel-header h2{

    font-size:2.4rem;

}

.close-panel{

    width:48px;

    height:48px;

    border-radius:50%;

    background:var(--surface);

    border:1px solid var(--border);

    color:var(--heading);

    font-size:1.8rem;

    display:flex;

    justify-content:center;

    align-items:center;

    transition:var(--transition);

    flex-shrink:0;

    cursor:pointer;

}

.close-panel:hover{

    background:var(--surface-hover);

    border-color:var(--pink);

}

.panel-description{

    color:var(--muted);

    margin-bottom:38px;

    line-height:1.8;

}

.menu-container{

    display:flex;

    flex-direction:column;

    gap:32px;

    margin-bottom:40px;

}

.menu-category{

    border-bottom:1px solid var(--border);

    padding-bottom:28px;

}

.menu-category:last-child{

    border-bottom:none;

    padding-bottom:0;

}

.menu-category-header h2{

    font-size:1.5rem;

    margin-bottom:6px;

}

.menu-category-header p{

    color:var(--muted);

    font-size:.95rem;

    margin-bottom:18px;

}

.menu-items{

    display:flex;

    flex-direction:column;

    gap:16px;

}

.menu-item{

    padding:16px 20px;

    border-radius:var(--radius-small);

    background:var(--surface);

    border:1px solid var(--border);

    transition:var(--transition);

}

.menu-item:hover{

    background:var(--surface-hover);

    border-color:rgba(89,199,203,.2);

}

.menu-item h3{

    font-size:1.1rem;

    font-family:var(--body-font);

    margin-bottom:4px;

}

.menu-item p{

    color:var(--muted);

    font-size:.92rem;

    margin:0;

}

.panel-footer{

    padding-top:32px;

    border-top:1px solid var(--border);

    margin-top:10px;

}

.panel-footer-text h3{

    font-size:1.4rem;

    margin-bottom:8px;

}

.panel-footer-text p{

    color:var(--muted);

    font-size:.95rem;

    margin-bottom:24px;

}


/*=========================================================
FOOTER
=========================================================*/

.footer{

    position:relative;

    padding:80px 0 40px;

    background:var(--bg-secondary);

    border-top:1px solid var(--border);

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr 1.4fr;

    gap:50px;

    margin-bottom:60px;

}

.footer-brand img{

    width:64px;

    margin-bottom:20px;

}

.footer-brand h3{

    margin-bottom:16px;

}

.footer-brand p{

    color:var(--muted);

    font-size:.95rem;

    max-width:380px;

}

.footer-column h4{

    font-size:1.1rem;

    font-family:var(--body-font);

    margin-bottom:24px;

    color:var(--heading);

}

.footer-column a{

    display:block;

    color:var(--muted);

    font-size:.95rem;

    transition:var(--transition);

    margin-bottom:14px;

}

.footer-column a:hover{

    color:var(--heading);

}

.footer-column p{

    color:var(--muted);

    font-size:.95rem;

    line-height:1.8;

}

.footer-button{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:16px 34px;

    border-radius:999px;

    background:linear-gradient(
    135deg,
    var(--pink),
    #F08AEF);

    color:#111;

    font-weight:700;

    transition:var(--transition);

    margin-top:18px;

}

.footer-button:hover{

    transform:translateY(-4px);

    box-shadow:0 18px 50px rgba(233,120,232,.30);

}

.footer-bottom{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding-top:32px;

    border-top:1px solid var(--border);

}

.footer-bottom p{

    color:var(--muted);

    font-size:.88rem;

}



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

[data-reveal]{

    opacity:0;

    transition:
    opacity .9s ease,
    transform .9s cubic-bezier(.22,.61,.36,1);

}

.revealed{

    opacity:1;

    transform:none;

}



/* Fade Up */

[data-reveal="up"]{

    transform:translateY(70px);

}



/* Fade Left */

[data-reveal="left"]{

    transform:translateX(-70px);

}



/* Fade Right */

[data-reveal="right"]{

    transform:translateX(70px);

}



/* Zoom */

[data-reveal="zoom"]{

    transform:scale(.92);

}



/* Stagger */

[data-delay="100"]{

    transition-delay:.1s;

}

[data-delay="200"]{

    transition-delay:.2s;

}

[data-delay="300"]{

    transition-delay:.3s;

}

[data-delay="400"]{

    transition-delay:.4s;

}

[data-delay="500"]{

    transition-delay:.5s;

}



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

/*=========================================================
LARGE LAPTOPS
=========================================================*/

@media (max-width:1200px){

    :root{

        --section-padding:120px;

    }

    .hero-grid,

    .experience-grid{

        grid-template-columns:1fr;

        gap:60px;

    }

    .hero-image{

        max-width:700px;

        margin:auto;

    }

    .floating-card{

        left:30px;

        bottom:30px;

    }

    .footer-grid{

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

    }

    .experience-cards{

        grid-template-columns:1fr 1fr;

    }

}



/*=========================================================
TABLETS
=========================================================*/

@media (max-width:992px){

    section{

        padding:100px 0;

    }

    .desktop-nav,

    .nav-button{

        display:none;

    }

    .menu-toggle{

        display:flex;

    }

    .navbar{

        padding:18px 24px;

    }

    .hero{

        min-height:auto;

        padding-top:160px;

    }

    .hero-grid{

        text-align:center;

    }

    .hero-content p{

        margin-left:auto;
        margin-right:auto;

    }

    .hero-buttons{

        justify-content:center;

    }

    .hero-stats{

        justify-content:center;

    }

    .occasion-grid{

        grid-template-columns:1fr;

    }

    .section-header{

        margin-bottom:70px;

    }

    .experience-cards{

        grid-template-columns:1fr 1fr;

    }

    .reservation-card{

        padding:40px;

    }

    .footer-grid{

        grid-template-columns:1fr 1fr;

        gap:40px;

    }

    .form-row{

        grid-template-columns:1fr;

    }

}



/*=========================================================
MOBILE
=========================================================*/

@media (max-width:768px){

    h1{

        font-size:3.2rem;

    }

    h2{

        font-size:2.5rem;

    }

    h3{

        font-size:1.7rem;

    }

    p{

        font-size:1rem;

    }

    .container{

        width:min(92%,100%);

    }

    .navbar{

        top:14px;

        width:94%;

        border-radius:20px;

    }

    .logo img{

        width:46px;

    }

    .logo-title{

        font-size:1.3rem;

    }

    .logo-subtitle{

        font-size:.65rem;

    }

    .hero{

        padding-top:140px;

    }

    .hero-buttons{

        flex-direction:column;

    }

    .btn-primary,

    .btn-secondary{

        width:100%;

        justify-content:center;

    }

    .hero-stats{

        gap:34px;

    }

    .stat::before{

        display:none;

    }

    .floating-card{

        position:relative;

        width:100%;

        left:auto;
        bottom:auto;

        margin-top:24px;

    }

    .experience-content{

        padding:42px;

    }

    .experience-cards{

        grid-template-columns:1fr;

    }

    .collection-card,

    .experience-card,

    .reservation-card{

        padding:30px;

    }

    .occasion-card{

        min-height:420px;

    }

    .occasion-content{

        left:28px;
        right:28px;
        bottom:28px;

    }

    .footer-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

    .footer-bottom{

        flex-direction:column;

        text-align:center;

        gap:12px;

    }

    .panel-content{

        width:100%;

        max-width:100%;

        padding:30px 24px;

    }

    .panel-header h2{

        font-size:2rem;

    }

    .reservation-card{

        padding:30px 24px;

    }

    .reservation-highlights{

        grid-template-columns:1fr;

    }

    .reservation-actions{

        flex-direction:column;

    }

    .reservation-actions .btn-primary,

    .reservation-actions .btn-secondary{

        width:100%;

        justify-content:center;

    }

}



/*=========================================================
SMALL MOBILE
=========================================================*/

@media (max-width:480px){

    section{

        padding:80px 0;

    }

    h1{

        font-size:2.6rem;

        line-height:1.1;

    }

    h2{

        font-size:2rem;

    }

    .hero-badge,

    .section-tag{

        font-size:.68rem;

        letter-spacing:.14em;

    }

    .hero-content p{

        font-size:.95rem;

    }

    .collection-card{

        min-height:auto;

    }

    .occasion-card{

        min-height:340px;

    }

    .faq-question{

        padding:22px;

        font-size:1rem;

    }

    .faq-answer p{

        padding:0 22px 24px;

    }

    .reservation-card{

        padding:24px 18px;

    }

    .experience-content{

        padding:30px;

    }

    .mobile-menu{

        width:100%;

    }

    .panel-content{

        padding:24px 18px;

    }

    .panel-header h2{

        font-size:1.6rem;

    }

    .menu-item{

        padding:14px 16px;

    }

    .close-panel{

        width:40px;

        height:40px;

        font-size:1.4rem;

    }

}

/*=========================================================
MENU ITEMS WITH PRICING
=========================================================*/

.menu-item {
    padding: 18px 22px;
    border-radius: var(--radius-small);
    background: var(--surface);
    border: 1px solid var(--border);
    transition: var(--transition);
}

.menu-item:hover {
    background: var(--surface-hover);
    border-color: rgba(89, 199, 203, .2);
    transform: translateX(4px);
}

.menu-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
    gap: 16px;
}

.menu-item h3 {
    font-size: 1.1rem;
    font-family: var(--body-font);
    color: var(--heading);
    margin: 0;
    flex: 1;
}

.menu-price {
    font-weight: 700;
    color: var(--pink);
    font-size: 1.05rem;
    white-space: nowrap;
    background: rgba(233, 120, 232, .1);
    padding: 4px 14px;
    border-radius: 100px;
    border: 1px solid rgba(233, 120, 232, .15);
}

.menu-item p {
    color: var(--muted);
    font-size: .92rem;
    margin: 6px 0 0 0;
    line-height: 1.6;
}

.menu-item-meta {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}

.menu-serving {
    display: inline-block;
    font-size: .78rem;
    color: var(--cyan);
    background: rgba(89, 199, 203, .08);
    padding: 3px 12px;
    border-radius: 100px;
    border: 1px solid rgba(89, 199, 203, .12);
}

/* Free item special styling */
.menu-item .menu-price:contains("FREE") {
    color: #4CAF50;
    background: rgba(76, 175, 80, .1);
    border-color: rgba(76, 175, 80, .2);
}

/* Complementary badge */
.menu-item.complementary .menu-price {
    color: #4CAF50;
}

/* Mobile */
@media (max-width: 768px) {
    .menu-item-header {
        flex-wrap: wrap;
    }
    
    .menu-item {
        padding: 14px 16px;
    }
    
    .menu-price {
        font-size: .95rem;
        padding: 3px 12px;
    }
}