:root{
    --gxg-bg:#fffafc;
    --gxg-ink:#2b1419;
    --gxg-muted:#8b6b72;
    --gxg-rose:#e8b4bc;
    --gxg-rose-deep:#c27d8a;
    --gxg-blush:#f9e2e2;
    --gxg-gold:#c9a27a;
    --gxg-line:#f0dcdf;
    --gxg-shadow:0 20px 50px -20px rgba(130,40,60,.25);
    --gxg-radius:14px;
    --gxg-serif:'Cormorant Garamond',Georgia,serif;
    --gxg-sans:'Montserrat',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden}
body{
    font-family:var(--gxg-sans);
    color:var(--gxg-ink);
    background:var(--gxg-bg);
    -webkit-font-smoothing:antialiased;
    line-height:1.55;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--gxg-serif);font-weight:600;margin:0}

/* Header */
.gxg-header{
    position:sticky;top:0;z-index:30;
    background:rgba(255,250,252,.92);
    backdrop-filter:saturate(1.3) blur(8px);
    border-bottom:1px solid var(--gxg-line);
}
.gxg-header__inner{
    max-width:1200px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 28px;gap:16px;
    position:relative;
}
.gxg-brand{display:flex;flex-direction:row;align-items:center;gap:14px;min-width:0}
.gxg-brand__logo{height:63px;width:auto;flex:none}
.gxg-brand__text{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.gxg-brand__name{font-family:var(--gxg-serif);font-size:26px;letter-spacing:.5px;white-space:nowrap}
.gxg-brand__name em{font-style:italic;color:var(--gxg-rose-deep);padding:0 2px}
.gxg-brand__tag{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gxg-muted);margin-top:2px}
.gxg-nav{display:flex;gap:28px;align-items:center;font-size:13px;letter-spacing:1.8px;text-transform:uppercase;margin-left:auto}
.gxg-nav a{padding:8px 0;position:relative}
.gxg-nav a:hover{color:var(--gxg-rose-deep)}
.gxg-nav__cta,.gxg-header__book{
    background:var(--gxg-ink);color:#fff !important;
    padding:10px 18px !important;border-radius:999px;
    font-size:12px;letter-spacing:1.5px;text-transform:uppercase;
    white-space:nowrap;
}
.gxg-nav__cta:hover,.gxg-header__book:hover{background:var(--gxg-rose-deep)}
.gxg-nav .gxg-login{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gxg-muted)}
.gxg-nav .gxg-login:hover{color:var(--gxg-rose-deep)}

/* Hamburger — hidden on desktop */
.gxg-hamburger{
    display:none;background:none;border:none;cursor:pointer;padding:8px;
    width:40px;height:40px;
}
.gxg-hamburger span{
    display:block;width:22px;height:2px;background:var(--gxg-ink);margin:5px auto;
    transition:transform .25s ease, opacity .2s ease;
    border-radius:2px;
}
.gxg-hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.gxg-hamburger.is-open span:nth-child(2){opacity:0}
.gxg-hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Hero */
.gxg-hero{
    position:relative;
    max-width:1200px;margin:28px auto 0;
    border-radius:var(--gxg-radius);
    overflow:hidden;
    aspect-ratio: 16/7;
    box-shadow:var(--gxg-shadow);
}
.gxg-hero__slides{position:absolute;inset:0}
.gxg-hero__slide{
    position:absolute;inset:0;
    background-size:cover;background-position:center;
    opacity:0;transition:opacity 1s ease-in-out;
}
.gxg-hero__slide.is-active{opacity:1}
.gxg-hero__overlay{
    position:absolute;inset:0;
    display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
    padding:8%;
    background:linear-gradient(90deg,rgba(43,20,25,.55),rgba(43,20,25,.1) 60%,rgba(43,20,25,0));
    color:#fff;
}
.gxg-hero__overlay h1{font-size:clamp(32px,5vw,60px);max-width:12ch;line-height:1.05;margin-bottom:14px}
.gxg-hero__overlay p{max-width:44ch;font-size:15px;margin:0 0 22px;opacity:.92}
.gxg-hero__dots{
    position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
    display:flex;gap:8px;
}
.gxg-hero__dot{
    width:8px;height:8px;border-radius:50%;
    background:rgba(255,255,255,.5);cursor:pointer;transition:all .3s;
}
.gxg-hero__dot.is-active{background:#fff;transform:scale(1.3)}

/* Buttons */
.gxg-btn{
    display:inline-block;
    padding:14px 28px;border-radius:999px;
    font-family:var(--gxg-sans);font-size:12px;text-transform:uppercase;letter-spacing:2px;
    cursor:pointer;border:none;transition:all .2s;
}
.gxg-btn--primary{background:#fff;color:var(--gxg-ink)}
.gxg-btn--primary:hover{background:var(--gxg-rose);color:#fff}
.gxg-btn--dark{background:var(--gxg-ink);color:#fff}
.gxg-btn--dark:hover{background:var(--gxg-rose-deep)}
.gxg-btn[disabled]{opacity:.5;cursor:not-allowed}

/* Sections */
.gxg-section{
    max-width:1200px;margin:0 auto;padding:90px 28px;
}
.gxg-section--alt{
    background:linear-gradient(180deg,var(--gxg-blush),#fff);
    max-width:none;
    padding-left:max(28px, calc((100vw - 1200px) / 2 + 28px));
    padding-right:max(28px, calc((100vw - 1200px) / 2 + 28px));
}
.gxg-section__title{
    font-size:clamp(32px,4vw,48px);
    text-align:center;margin-bottom:6px;
}
.gxg-section__sub{
    text-align:center;color:var(--gxg-muted);
    font-size:13px;letter-spacing:1.5px;text-transform:uppercase;
    margin:0 0 44px;
}

/* Gallery */
.gxg-gallery{
    display:grid;gap:14px;
    grid-template-columns:repeat(6,1fr);
}
.gxg-gallery__item{
    aspect-ratio:1;
    background-size:cover;background-position:center;
    border-radius:10px;margin:0;
    transition:transform .3s, box-shadow .3s;
    cursor:pointer;
}
.gxg-gallery__item:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--gxg-shadow)}
@media(max-width:900px){.gxg-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:500px){.gxg-gallery{grid-template-columns:repeat(2,1fr)}}

/* Prices */
.gxg-prices{
    display:grid;grid-template-columns:1fr 1fr;gap:14px 60px;
    max-width:820px;margin:0 auto;
}
.gxg-price{padding:10px 0;border-bottom:1px dashed var(--gxg-line)}
.gxg-price__row{display:flex;align-items:baseline;gap:10px;font-size:17px}
.gxg-price__name{font-family:var(--gxg-serif);font-size:22px}
.gxg-price__dots{flex:1;border-bottom:1px dotted var(--gxg-rose-deep);transform:translateY(-4px)}
.gxg-price__amount{font-weight:600;color:var(--gxg-rose-deep)}
.gxg-price__meta{font-size:11px;letter-spacing:1px;color:var(--gxg-muted);text-transform:uppercase;margin-top:2px}
@media(max-width:680px){.gxg-prices{grid-template-columns:1fr;gap:6px 0}}

/* Footer */
/* Reviews */
.gxg-reviews{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;
    max-width:1000px;margin:0 auto;
}
.gxg-review{
    background:#fff;border:1px solid var(--gxg-line);border-radius:14px;
    padding:24px 22px;margin:0;box-shadow:0 4px 20px -12px rgba(130,40,60,.2);
}
.gxg-review blockquote{margin:10px 0;font-family:var(--gxg-serif);font-size:18px;line-height:1.4;color:var(--gxg-ink)}
.gxg-review figcaption{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--gxg-muted)}
.gxg-review__stars{color:var(--gxg-gold);font-size:18px;letter-spacing:2px}

.gxg-footer{
    background:var(--gxg-ink);color:#f3dde2;margin-top:60px;
}
.gxg-footer__inner{
    max-width:1200px;margin:0 auto;padding:40px 28px;
    display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
}
.gxg-footer__brand{font-family:var(--gxg-serif);font-size:24px}
.gxg-footer__brand em{color:var(--gxg-rose);font-style:italic;padding:0 2px}
.gxg-footer__meta{font-size:12px;color:#b58f97;letter-spacing:.5px}

/* -------------------- Responsive (≤ 900px) -------------------- */
@media (max-width:900px){
    .gxg-section{padding:70px 22px}
    .gxg-hero{margin:18px 22px 0}
}

/* -------------------- Mobile (≤ 768px) -------------------- */
@media (max-width:768px){
    .gxg-header__inner{padding:12px 16px;gap:10px;flex-wrap:nowrap}
    .gxg-brand{gap:9px}
    .gxg-brand__logo{height:42px}
    .gxg-brand__name{font-size:18px}
    .gxg-brand__tag{display:none}

    .gxg-hamburger{display:block;order:3;margin-left:4px}

    .gxg-header__book{
        padding:9px 14px !important;
        font-size:10px;letter-spacing:1px;
        order:2;margin-left:auto;
    }

    /* Mobile nav slides down from header */
    .gxg-nav{
        position:absolute;top:100%;left:0;right:0;
        margin:0;flex-direction:column;gap:0;
        background:var(--gxg-bg);
        border-bottom:1px solid var(--gxg-line);
        box-shadow:0 14px 30px -12px rgba(130,40,60,.22);
        max-height:0;overflow:hidden;padding:0 18px;
        transition:max-height .3s ease, padding .3s ease;
        align-items:stretch;
    }
    .gxg-nav.is-open{max-height:420px;padding:6px 18px 18px}
    .gxg-nav a{
        padding:16px 4px;width:100%;
        border-bottom:1px solid var(--gxg-line);
        font-size:14px;
    }
    .gxg-nav a:last-child{border-bottom:none}

    /* Hero */
    .gxg-hero{margin:14px 14px 0;aspect-ratio:4/5;border-radius:12px}
    .gxg-hero__overlay{padding:26px 22px}
    .gxg-hero__overlay h1{font-size:34px;line-height:1}
    .gxg-hero__overlay p{font-size:14px;margin-bottom:18px}

    /* Sections */
    .gxg-section{padding:60px 18px}
    .gxg-section--alt{padding-left:18px;padding-right:18px}
    .gxg-section__title{font-size:32px}
    .gxg-section__sub{margin-bottom:30px;font-size:11px}

    /* Grids */
    .gxg-gallery{grid-template-columns:repeat(2,1fr);gap:8px}
    .gxg-prices{grid-template-columns:1fr;gap:2px;padding:0 4px}
    .gxg-price__name{font-size:18px}
    .gxg-price__row{font-size:15px}

    /* Reviews */
    .gxg-reviews{grid-template-columns:1fr;gap:16px}
    .gxg-review{padding:20px 18px}
    .gxg-review blockquote{font-size:16px}

    /* Footer */
    .gxg-footer__inner{padding:32px 18px;flex-direction:column;gap:12px;text-align:center}
}

/* -------------------- Small mobile (≤ 420px) -------------------- */
@media (max-width:420px){
    .gxg-header__inner{padding:10px 12px;gap:6px}
    .gxg-brand{gap:7px}
    .gxg-brand__logo{height:34px}
    .gxg-brand__name{font-size:16px}
    .gxg-header__book{padding:8px 12px !important;font-size:9px;letter-spacing:.5px}
    .gxg-hero__overlay h1{font-size:28px}
    .gxg-hero{margin:10px 10px 0}
    .gxg-section{padding:50px 14px}
    .gxg-section--alt{padding-left:14px;padding-right:14px}
}
