:root {
    --cj-ivory: #eaebe6;
    --cj-red: #92191e;
    --cj-wine: #8a1e3e;
    --cj-jungle: #223627;
    --cj-earth: #461d16;
    --cj-charcoal: #181819;
}

@font-face {
    font-family: "Host Grotesk";
    src: url("../fonts/HostGrotesk-VariableFont_wght.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Host Grotesk";
    src: url("../fonts/HostGrotesk-Italic-VariableFont_wght.ttf") format("truetype");
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    width: 100%;
    min-height: 100%;
}
body {
    min-height: 100%;
    overflow-x: clip;
    color: var(--cj-charcoal);
    background-color: var(--cj-earth);
    font-family: "Host Grotesk", Arial, sans-serif;
}
body.reservation-open { overflow: hidden; }

.hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    background-image: var(--hero-image,url("../iamagens de casa jaguar/fiesta nocturna/196-2f-1a-e6-78-caption.jpg"));
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.hero::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(13, 7, 5, .68)); }
.hero-media { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; }
.hero-copy { position:absolute; z-index:2; top:51%; left:50%; width:min(calc(100vw - 2rem),58rem); max-width:calc(100vw - 2rem); transform:translate(-50%,-50%); color:#fff; text-align:center; text-wrap:balance; filter:drop-shadow(0 .3rem 1.25rem rgba(0,0,0,.75)); overflow-wrap:anywhere; }
.hero-copy::before { position:absolute; z-index:-1; inset:-4rem -3rem; content:""; background:radial-gradient(ellipse,rgba(8,6,5,.4),transparent 68%); pointer-events:none; }
.hero-copy p { margin:0 0 .75rem; font-size:clamp(.68rem,1.2vw,.86rem); font-weight:780; letter-spacing:.28em; text-transform:uppercase; }
.hero-copy h1 { max-width:14ch; margin:0 auto; font:720 clamp(2.25rem,6vw,5.5rem)/.92 "Host Grotesk",Arial,sans-serif; letter-spacing:-.055em; }
.hero-booking-launcher { position: relative; z-index: 2; margin-bottom: clamp(1.25rem,4vw,3rem); }.hero-booking-launcher button { min-height: 3.55rem; display: inline-flex; align-items: center; gap: .65rem; padding: 0 1.35rem; border: 1px solid rgba(255,255,255,.62); border-radius: 2rem; color: #fff; background: linear-gradient(110deg,rgba(255,255,255,.3),rgba(255,255,255,.1)),rgba(20,16,13,.28); box-shadow: 0 1rem 2.5rem rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.75); backdrop-filter: blur(1.5rem) saturate(170%); -webkit-backdrop-filter: blur(1.5rem) saturate(170%); font: 780 .9rem "Host Grotesk",Arial,sans-serif; letter-spacing: .02em; cursor: pointer; transition: transform .2s ease,background .2s ease; }.hero-booking-launcher button:hover,.hero-booking-launcher button:focus-visible { transform: translateY(-2px); background: linear-gradient(110deg,rgba(255,255,255,.4),rgba(255,255,255,.14)),rgba(20,16,13,.34); outline: none; }.hero-booking-launcher span { font-size: 1.35rem; }
.reservation-dialog { width: min(calc(100% - 2rem),64rem); max-height: min(90dvh,48rem); margin: auto; padding: 0; overflow: visible; border: 1px solid rgba(255,255,255,.5); border-radius: 1.35rem; color: #fff; background: transparent; box-shadow: 0 2rem 6rem rgba(0,0,0,.5); }.reservation-dialog::backdrop { background: rgba(8,7,6,.64); backdrop-filter: blur(.65rem); -webkit-backdrop-filter: blur(.65rem); }.reservation-dialog-card { position: relative; max-height: min(90dvh,48rem); padding: clamp(1rem,3vw,1.65rem); overflow-y: auto; border-radius: inherit; background: linear-gradient(135deg,rgba(43,43,37,.96),rgba(20,18,15,.95)); backdrop-filter: blur(2rem) saturate(140%); }.reservation-dialog-close { position: absolute; z-index: 2; top: .75rem; right: .75rem; width: 2.35rem; height: 2.35rem; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #fff; background: rgba(255,255,255,.1); font: 400 1.5rem/1 sans-serif; cursor: pointer; }.reservation-dialog .booking-heading { padding-right: 3rem; }.reservation-dialog[open] { animation: reservation-in .24s cubic-bezier(.22,1,.36,1); }@keyframes reservation-in { from { opacity: 0; transform: translateY(1rem) scale(.98); } to { opacity: 1; transform: none; } }
.booking-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }.booking-heading p { margin: 0; color: var(--cj-ivory); font-size: .73rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }.booking-heading h1 { margin: 0; font-size: clamp(1.25rem,2.4vw,2rem); font-weight: 720; letter-spacing: -.035em; }
.hero-booking-form { display: grid; gap: .75rem; }.booking-primary-row { display: grid; grid-template-columns: 10.5rem 6.5rem 1fr; gap: .65rem; align-items: end; }.booking-contact-row { display: grid; grid-template-columns: 1fr 1fr .8fr auto; gap: .65rem; align-items: end; }
.hero-booking-form label { display: grid; gap: .35rem; color: rgba(255,255,255,.72); font-size: .7rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }.hero-booking-form input { width: 100%; min-width: 0; min-height: 2.75rem; padding: .55rem .75rem; border: 1px solid rgba(255,255,255,.24); border-radius: .6rem; color: #fff; background: rgba(255,255,255,.12); font: 500 .9rem "Host Grotesk",Arial,sans-serif; }.hero-booking-form input::placeholder { color: rgba(255,255,255,.48); }.hero-booking-form input:focus { border-color: rgba(255,255,255,.7); outline: 2px solid rgba(255,255,255,.15); }
.hero-booking-form input[type="date"],.hero-booking-form input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer}.hero-booking-form input[type="date"]::-webkit-calendar-picker-indicator{min-width:1.4rem;min-height:1.4rem}
.time-options { min-width: 0; display: flex; gap: .4rem; margin: 0; padding: 0; overflow-x: auto; border: 0; scrollbar-width: thin; }.time-options legend { margin-bottom: .35rem; color: rgba(255,255,255,.72); font-size: .7rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }.time-options button { min-width: 4.25rem; min-height: 2.75rem; padding: 0 .65rem; border: 1px solid rgba(255,255,255,.25); border-radius: .6rem; color: #fff; background: rgba(255,255,255,.1); font: 700 .82rem "Host Grotesk",Arial,sans-serif; cursor: pointer; }.time-options button:hover,.time-options button:focus-visible { background: rgba(255,255,255,.2); outline: none; }.time-options button.selected { border-color: var(--cj-red); background: var(--cj-red); box-shadow: 0 .35rem .8rem rgba(146,25,30,.32); }
.hero-booking-form .primary-action { min-width: 9rem; padding: 0 1rem; background: var(--cj-red); }

.experience-section { padding: clamp(3.25rem, 6vw, 5.5rem) max(1rem, calc((100% - 76rem) / 2)); }
.reservation-section, .packages-section { color: var(--cj-charcoal); background: var(--cj-ivory); }
.events-section { color: #fff; background: var(--cj-earth) url("../iamagens de casa jaguar/fiesta nocturna/183-24-ea-9b-13-caption.jpg") center/cover fixed; background-blend-mode: multiply; }
.section-intro { max-width: 62rem; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.section-intro h1 { margin: 0; font: 750 clamp(2.6rem, 5.5vw, 4.8rem)/.92 "Host Grotesk", Arial, sans-serif; letter-spacing: -.045em; }
.section-intro > p:last-child { max-width: 38rem; margin: .9rem 0 0; color: #5f5b52; font-size: clamp(.95rem, 1.3vw, 1.02rem); line-height: 1.5; }
.light-copy > p:last-child { color: rgba(255,255,255,.72); }
.section-kicker { margin: 0 0 1rem; color: var(--cj-red); font-size: .75rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.glass-card { padding: clamp(1rem, 2vw, 1.5rem); border: 1px solid rgba(255,255,255,.65); border-radius: 1.1rem; background: rgba(255,255,255,.62); box-shadow: 0 1rem 3rem rgba(45,30,20,.1), inset 0 1px rgba(255,255,255,.8); backdrop-filter: blur(1.5rem); }
.booking-form, .package-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.booking-form label, .package-form label { display: grid; gap: .45rem; font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.booking-form input, .booking-form select, .booking-form textarea, .package-form input, .package-form select, .package-form textarea { width: 100%; min-height: 2.8rem; padding: .6rem .8rem; border: 1px solid rgba(29,25,18,.14); border-radius: .6rem; color: #191713; background: rgba(255,255,255,.76); font: 400 .95rem "Host Grotesk",Arial,sans-serif; text-transform: none; }
.booking-form textarea, .package-form textarea { resize: vertical; }
.wide-field { grid-column: 1 / -1; }
.primary-action, .event-card button { min-height: 2.9rem; border: 0; border-radius: .6rem; color: #fff; background: var(--cj-jungle); font-weight: 800; cursor: pointer; }
.primary-action:disabled { opacity: .45; cursor: not-allowed; }
.form-notice { max-width: 76rem; margin: 0 0 1.5rem; padding: 1rem 1.2rem; border-radius: .7rem; }
.form-notice.success { color: #185a37; background: #e5f5eb; }.form-notice.error { color: #862626; background: #fbe8e6; }.form-notice a { color: inherit; font-weight: 800; }
.event-grid, .package-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.event-card { padding: clamp(1.1rem,2vw,1.5rem); border: 1px solid rgba(255,255,255,.25); border-radius: 1rem; background: rgba(20,12,9,.58); backdrop-filter: blur(1rem); }
.event-flyer { width: calc(100% + 1rem); max-height: 20rem; margin: -.5rem -.5rem .9rem; object-fit: cover; border-radius: .7rem; }
.event-card h2, .package-grid h2 { margin: .35rem 0 .65rem; font: 720 clamp(1.7rem,2.6vw,2.35rem)/1 "Host Grotesk",Arial,sans-serif; letter-spacing: -.035em; }
.event-card > p:not(.event-date,.event-meta) { min-height: 2.8rem; margin: .6rem 0; color: rgba(255,255,255,.72); font-size: .92rem; line-height: 1.45; }
.event-date { color: var(--cj-ivory); font-weight: 800; letter-spacing: .08em; }.event-meta { font-size: .82rem; font-weight: 800; }
.event-card form { display: grid; grid-template-columns: 1fr 1fr 4.5rem; gap: .45rem; margin-top: 1rem; }
.event-card input { min-width: 0; min-height: 2.55rem; padding: .55rem .65rem; border: 1px solid rgba(255,255,255,.22); border-radius: .5rem; color: #fff; background: rgba(255,255,255,.1); }
.event-card input::placeholder { color: rgba(255,255,255,.58); }.event-card button { grid-column: 1/-1; }
.package-grid article { min-height: 12.5rem; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.2rem; border: 1px solid rgba(30,25,17,.13); border-radius: .85rem; background: rgba(255,255,255,.5); }
.package-grid article > span { color: var(--cj-red); font-size: .78rem; font-weight: 800; text-transform: uppercase; }.package-grid article p { color: #686156; line-height: 1.5; }.package-grid article small { font-weight: 800; }
.package-form { margin-top: 1rem; }
.empty-copy { color: rgba(255,255,255,.7); }
.ticket-page { display: grid; min-height: 100vh; place-items: center; padding: 1rem; color: var(--cj-charcoal); background: var(--cj-jungle); }
.ticket-card { width: min(100%,31rem); padding: clamp(1.5rem,5vw,3rem); border-radius: 1.3rem; background: #fff; text-align: center; box-shadow: 0 2rem 5rem rgba(0,0,0,.3); }.ticket-logo { width: 12rem; }.ticket-card h1 { margin: 1rem 0; font: 760 clamp(2.4rem,7vw,4rem)/.95 "Host Grotesk",Arial,sans-serif; letter-spacing: -.045em; }.ticket-qr { width: min(100%,20rem); aspect-ratio: 1; }.ticket-card p { line-height: 1.6; }.ticket-status { display: inline-block; padding: .55rem 1rem; border-radius: 2rem; color: #fff; background: #287a4b; font-weight: 800; }.ticket-status.used,.ticket-status.cancelled { background: #8b2828; }

.site-header {
    position: fixed;
    z-index: 100;
    top: clamp(.75rem, 2.4vw, 1.5rem);
    left: 50%;
    width: min(calc(100% - 2rem), 76rem);
    min-height: 6rem;
    display: grid;
    grid-template-columns: minmax(7.5rem, 10.5rem) minmax(0, 1fr) minmax(7.5rem, 10.5rem);
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem .7rem .55rem 1.05rem;
    isolation: isolate;
    overflow: hidden;
    clip-path: inset(0 round 2.5rem);
    border: 1px solid rgba(255, 255, 255, .58);
    border-radius: 2.5rem;
    background:
        linear-gradient(110deg, rgba(255, 255, 255, .38), rgba(255, 255, 255, .12) 42%, rgba(255, 255, 255, .24)),
        rgba(245, 245, 242, .22);
    box-shadow:
        0 1.4rem 3.5rem rgba(4, 4, 3, .30),
        0 .25rem .8rem rgba(4, 4, 3, .12),
        inset 0 1.5px 0 rgba(255, 255, 255, .92),
        inset 0 -1px 0 rgba(255, 255, 255, .22);
    backdrop-filter: blur(2rem) saturate(190%) contrast(108%);
    -webkit-backdrop-filter: blur(2rem) saturate(190%) contrast(108%);
    transform: translateX(-50%);
    transition: min-height .42s cubic-bezier(.22, 1, .36, 1), top .42s cubic-bezier(.22, 1, .36, 1), border-radius .42s ease, box-shadow .42s ease;
}

.site-header.is-compact {
    top: clamp(.55rem, 1.5vw, 1rem);
    min-height: 4.75rem;
    clip-path: inset(0 round 2.5rem);
    box-shadow:
        0 1rem 2.6rem rgba(4, 4, 3, .27),
        0 .2rem .65rem rgba(4, 4, 3, .10),
        inset 0 1.5px 0 rgba(255, 255, 255, .88),
        inset 0 -1px 0 rgba(255, 255, 255, .20);
}

.site-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        radial-gradient(ellipse 30% 85% at 10% 0%, rgba(255, 255, 255, .62), transparent 70%),
        radial-gradient(ellipse 34% 120% at 88% 115%, rgba(255, 255, 255, .28), transparent 72%),
        linear-gradient(180deg, rgba(255, 255, 255, .20), transparent 52%);
    pointer-events: none;
}

.site-header::after {
    content: "";
    position: absolute;
    inset: .28rem;
    z-index: -1;
    border-radius: inherit;
    border: 1px solid rgba(255, 255, 255, .16);
    box-shadow:
        inset 0 .55rem 1.15rem rgba(255, 255, 255, .16),
        inset 0 -.65rem 1.2rem rgba(20, 20, 18, .05);
    pointer-events: none;
}

.site-logo {
    position: relative;
    width: clamp(7.5rem, 13vw, 10.5rem);
    height: 3.35rem;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    overflow: hidden;
    border-radius: 1.7rem;
}

.site-logo-vertical {
    width: 5.8rem;
    height: 4.8rem;
    justify-self: start;
    border-radius: 0;
    transition: width .42s cubic-bezier(.22, 1, .36, 1), height .42s cubic-bezier(.22, 1, .36, 1);
}

.site-header.is-compact .site-logo-vertical { width: 9rem; height: 3.65rem; }

.subbrand-logo {
    width: 100%;
    height: 2.5rem;
    display: grid;
    place-items: center;
}

.subbrand-logo img {
    width: 100%;
    max-width: 8.5rem;
    height: 100%;
    display: block;
    object-fit: contain;
}

.site-logo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    object-position: center;
    transform: translateY(-1px);
    transition: opacity .24s ease, transform .35s cubic-bezier(.22, 1, .36, 1);
}

.site-logo .logo-compact { opacity: 0; transform: translateY(-1px) scale(.94); }
.site-header.is-compact .site-logo .logo-full { opacity: 0; transform: translateY(-1px) scale(.9); }
.site-header.is-compact .site-logo .logo-compact { opacity: 1; transform: translateY(-1px) scale(1); }

.site-navigation {
    display: flex;
    align-items: center;
    justify-self: center;
    gap: .15rem;
}

.site-navigation a {
    min-height: 3.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 clamp(.8rem, 1.6vw, 1.25rem);
    border-radius: 1.65rem;
    color: #211d18;
    font-size: .88rem;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid transparent;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.site-navigation a:hover,
.site-navigation a:focus-visible {
    border-color: rgba(255, 255, 255, .30);
    background: rgba(255, 255, 255, .22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38);
    outline: none;
    transform: translateY(-1px);
}

.site-navigation a.active {
    color: #fff;
    border-color: rgba(255, 255, 255, .18);
    background: linear-gradient(180deg, rgba(38, 39, 36, .94), rgba(12, 13, 12, .94));
    box-shadow:
        0 .55rem 1.1rem rgba(0, 0, 0, .23),
        inset 0 1px 0 rgba(255, 255, 255, .26),
        inset 0 -1px 0 rgba(0, 0, 0, .30);
}

.site-navigation a.header-event-button { color: #fff; border-color: rgba(255,255,255,.2); background: var(--cj-red); box-shadow: 0 .45rem 1rem rgba(70,29,22,.28), inset 0 1px rgba(255,255,255,.22); }
.site-navigation a.header-event-button:hover,.site-navigation a.header-event-button:focus-visible { background: var(--cj-wine); }
.site-navigation .language-switch{gap:.4rem}.language-switch img{width:1.3rem;height:auto;display:block;border:1px solid rgba(0,0,0,.14);border-radius:.18rem;box-shadow:0 .12rem .3rem rgba(0,0,0,.16)}

.menu-toggle {
    width: 3.15rem;
    height: 3.15rem;
    display: none;
    align-content: center;
    justify-content: center;
    gap: .25rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(180deg, rgba(38, 39, 36, .96), rgba(12, 13, 12, .96));
    box-shadow: 0 .45rem 1rem rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .25);
    cursor: pointer;
}

.menu-toggle > span:not(.sr-only) {
    width: 1.15rem;
    height: 2px;
    display: block;
    border-radius: 2px;
    background: currentColor;
    transition: transform .2s ease, opacity .2s ease;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-footer {
    height: 300px;
    color: #e9e5dc;
    background: var(--cj-charcoal);
}

.footer-grid {
    width: min(calc(100% - 3rem), 76rem);
    height: 100%;
    display: grid;
    grid-template-columns: 1.35fr .8fr 1fr;
    gap: clamp(2rem, 7vw, 7rem);
    margin: 0 auto;
    padding: 3.25rem 0 2.4rem;
}

.footer-column {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.footer-column a {
    color: inherit;
    font-size: .88rem;
    line-height: 1.75;
    text-decoration: none;
    transition: color .2s ease;
}

.footer-column a:hover,
.footer-column a:focus-visible {
    color: var(--cj-ivory);
    outline: none;
}

.footer-identity img {
    width: min(12rem, 100%);
    height: 4.5rem;
    object-fit: contain;
    object-position: left center;
    filter: invert(1);
}

.footer-identity p {
    margin: 1.15rem 0 0;
    color: #969b93;
    font-size: .84rem;
    line-height: 1.65;
}

.footer-label {
    margin: .2rem 0 1.1rem;
    color: var(--cj-ivory);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.copyright {
    margin: auto 0 .35rem;
    color: #737970;
    font-size: .72rem;
}

.partners-link {
    color: #737970 !important;
    font-size: .7rem !important;
    letter-spacing: .06em;
}

.partners-link:hover,
.partners-link:focus-visible { color: #b6bbb3 !important; }

.language-switch { min-width: 2.6rem; border: 1px solid rgba(20,20,18,.12); }
.menu-section { color: var(--cj-charcoal); background: var(--cj-ivory); }
.menu-public-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; margin-top: 1.5rem; }
.menu-public-grid article { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(20,20,18,.16); }
.menu-public-grid h2,.menu-public-grid p { margin: 0; }
.menu-public-grid h2 { font-size: 1.15rem; }
.menu-public-grid p,.menu-public-grid small { color: #64675f; }
.menu-public-grid strong { flex: 0 0 auto; color: #174c32; }
.menu-page { min-height: 100vh; color: var(--cj-ivory); background: var(--cj-charcoal); }
.menu-hero { position:relative; isolation:isolate; min-height: 100svh; display: grid; align-items: end; padding: clamp(7rem,12vw,10rem) max(1rem,calc((100vw - 70rem)/2)); overflow:hidden; background-image:var(--menu-hero-image,url("../iamagens de casa jaguar/comida/020-1d-21-ab-56-caption.jpg"));background-position:center 48%;background-size:cover;background-repeat:no-repeat; }
.menu-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,7,5,.18),rgba(4,7,5,.82));pointer-events:none}.menu-hero-media{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}.menu-hero > div { position:relative;z-index:2;max-width: 42rem; }
.menu-hero p { margin: 0 0 .7rem; color: var(--cj-ivory); font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.menu-hero h1 { margin: 0; font-size: clamp(3.2rem,9vw,7rem); line-height: .88; }
.menu-hero a { min-height: 3rem; display: inline-flex; align-items: center; margin-top: 1.5rem; padding: 0 1.1rem; border: 1px solid rgba(255,255,255,.5); border-radius: 2rem; color: white; font-weight: 750; text-decoration: none; backdrop-filter: blur(.7rem); }
.menu-download-strip { border-block: 1px solid rgba(255,255,255,.12); background: #171916; }
.menu-download-strip > div { width: min(calc(100% - 2rem),70rem); min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: auto; }
.menu-download-strip p { margin: 0; color: rgba(255,255,255,.64); font-size: .82rem; }
.menu-download-strip a { min-height: 2.7rem; display: inline-flex; align-items: center; gap: .55rem; padding: 0 1rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: #fff; font-size: .78rem; font-weight: 750; text-decoration: none; transition: background .2s,color .2s; }
.menu-download-strip a:hover { color: var(--cj-charcoal); background: var(--cj-ivory); }
.menu-page-main { width: min(calc(100% - 2rem),70rem); margin: 0 auto; padding: clamp(4rem,8vw,7rem) 0; }
.menu-editorial-heading { display: grid; justify-items: center; gap: .4rem; padding-bottom: 2.5rem; text-align: center; }
.menu-editorial-heading p,.menu-editorial-heading span { margin: 0; color: rgba(255,255,255,.56); font-size: .67rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.menu-editorial-heading h1 { max-width: 42rem; margin: 0; color: var(--cj-ivory); font-size: clamp(2rem,5vw,4.2rem); line-height: .95; }
.menu-family-heading { display: flex; align-items: center; gap: 1rem; margin-top: 4.5rem; color: #b44838; font-size: .7rem; font-weight: 850; letter-spacing: .22em; text-transform: uppercase; }
.menu-family-heading::before,.menu-family-heading::after { height: 1px; flex: 1; content: ""; background: rgba(180,72,56,.45); }
.menu-category { margin-top: 3rem; }
.menu-family-heading + .menu-category { margin-top: 1.5rem; }
.menu-category > h2 { margin: 0; padding-bottom: .8rem; border-bottom: 1px solid rgba(255,255,255,.3); color: var(--cj-ivory); font-size: clamp(1.45rem,3vw,2.15rem); letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.menu-page .menu-public-grid { gap: 0 2.5rem; margin-top: .7rem; }
.menu-page .menu-public-grid article { position: relative; min-height: 7.2rem; align-items: flex-start; padding: 1.25rem 0; border-color: rgba(255,255,255,.13); }
.menu-page .menu-public-grid article > img { width: 5rem; height: 5rem; flex: 0 0 auto; border-radius: .5rem; object-fit: cover; }
.menu-item-copy { min-width: 0; flex: 1; }
.menu-page .menu-public-grid h3 { margin: 0; color: #fff; font-size: .88rem; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
.menu-page .menu-public-grid p { margin: .45rem 0 0; color: rgba(255,255,255,.58); font-size: .69rem; line-height: 1.55; text-transform: uppercase; }
.menu-price { min-width: 4.2rem; display: grid; justify-items: end; gap: .1rem; }
.menu-page .menu-price strong { color: var(--cj-ivory); font-size: .82rem; }
.menu-price small { color: rgba(255,255,255,.48); font-size: .5rem; letter-spacing: .04em; text-transform: uppercase; }
.menu-empty { min-height: 16rem; display: grid; place-items: center; color: rgba(255,255,255,.65); }

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Host Grotesk", Arial, sans-serif;
    font-weight: 720;
    letter-spacing: -.035em;
}

@media (max-width: 48rem) {
    .menu-download-strip > div { min-height: 4.5rem; }
    .menu-download-strip p { max-width: 11rem; font-size: .68rem; }
    .menu-download-strip a { flex: 0 0 auto; }
    .site-header {
        width: calc(100% - 2rem);
        max-width: calc(100vw - 2rem);
        grid-template-columns: minmax(0, 1fr) minmax(4.5rem, 6.5rem);
        grid-template-areas: "casa todos" "navigation navigation";
        align-items: center;
        column-gap: .45rem;
        padding: .55rem 4.15rem .55rem 1rem;
        transition: border-radius .25s ease;
    }

    .site-logo { grid-area: casa; }
    .site-logo-vertical { width: 4.7rem; height: 4rem; }
    .site-header.is-compact .site-logo-vertical { width: min(100%, 7.5rem); height: 3.35rem; }
    .subbrand-logo { grid-area: todos; height: 2rem; }
    .menu-toggle { position: absolute; top: 50%; right: .65rem; transform: translateY(-50%); }

    .site-header.menu-open { border-radius: 2rem; }
    .menu-toggle { display: grid; }

    .menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

    .site-navigation {
        grid-area: navigation;
        justify-self: stretch;
        min-width: 0;
        max-width: 100%;
        width: 100%;
        max-height: 0;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: .25rem;
        overflow: hidden;
        opacity: 0;
        transition: max-height .3s ease, opacity .2s ease, padding .3s ease;
    }

    .site-header.menu-open .site-navigation {
        max-height: 13rem;
        padding: .5rem 0 .15rem;
        border-top: 1px solid rgba(20, 20, 18, .1);
        opacity: 1;
    }

    .site-navigation a { min-height: 2.75rem; }
    .site-navigation a:last-child { grid-column: 1 / -1; }

    .hero-booking { border-radius: 1rem; }.booking-heading { align-items: start; flex-direction: column; gap: .25rem; }.booking-primary-row { grid-template-columns: 1fr 7rem; }.time-options { grid-column: 1/-1; }.booking-contact-row { grid-template-columns: 1fr 1fr; }.hero-booking-form .primary-action { min-width: 0; }

    .booking-form, .package-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .event-grid, .package-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(16rem, 82vw); overflow-x: auto; padding-bottom: .75rem; scroll-snap-type: x proximity; scrollbar-width: thin; }
    .event-card, .package-grid article { scroll-snap-align: start; }
    .menu-public-grid { grid-template-columns: 1fr; }
    .event-card form { grid-template-columns: 1fr; }.event-card button { grid-column: auto; }

    .site-footer {
        height: auto;
        min-height: 300px;
    }

    .footer-grid {
        grid-template-columns: 1.3fr 1fr;
        gap: 2.5rem;
        padding: 2.75rem 0;
    }

    .footer-contact { grid-column: 1 / -1; }
    .copyright { margin-top: 1.5rem; }
}

@media (max-width: 32rem) {
    .footer-grid { grid-template-columns: 1fr; }
    .footer-contact { grid-column: auto; }
    .booking-form, .package-form { grid-template-columns: 1fr; }
    .wide-field { grid-column: auto; }
    .hero { min-height: 100dvh; overflow:hidden; }.hero-copy { top:48%; width:calc(100vw - 2.5rem); max-width:calc(100vw - 2.5rem); }.hero-copy h1 { width:100%; max-width:11ch; font-size:clamp(1.95rem,9.5vw,2.85rem); line-height:.94; }.booking-contact-row { grid-template-columns: 1fr; }.time-options button { min-width: 4rem; }.reservation-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }.reservation-dialog-card { max-height: calc(100dvh - 1rem); }.reservation-dialog .booking-heading { align-items: start; flex-direction: column; gap: .2rem; }
}

@media (max-width:32rem) and (max-height:42rem){.hero-copy{top:46%}.hero-copy p{margin-bottom:.45rem}.hero-copy h1{font-size:clamp(1.75rem,8.5vw,2.4rem)}.hero-booking-launcher{margin-bottom:.75rem}}

/* Header fluido para tabletas y móviles */
@media (max-width: 68rem) {
    .hero,.menu-hero { min-height:var(--mobile-hero-height,100svh); height:var(--mobile-hero-height,100svh); }
    .site-header,
    .site-header.is-compact {
        width: calc(100% - 2rem);
        max-width: calc(100vw - 2rem);
        grid-template-columns: minmax(0,1fr) minmax(0,1fr) 3.15rem;
        grid-template-areas: "casa todos toggle" "navigation navigation navigation";
        align-items: center;
        gap: 0 .45rem;
        padding: .55rem .7rem;
        overflow: hidden;
        border-radius: 2rem;
    }
    .site-logo { grid-area: casa; justify-self: center; }
    .site-logo-vertical { width: min(100%,5.4rem); height: 4rem; justify-self: center; }
    .site-header.is-compact .site-logo-vertical { width: min(100%,7.5rem); height: 3.35rem; }
    .subbrand-logo { grid-area: todos; width: 100%; height: 2.15rem; justify-self: center; }
    .subbrand-logo img { width: min(100%,7.5rem); margin-inline: auto; }
    .menu-toggle,
    .site-header .menu-toggle {
        position: static;
        grid-area: toggle;
        display: grid;
        justify-self: end;
        transform: none;
    }
    .site-navigation {
        grid-area: navigation;
        justify-self: stretch;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        max-height: 0;
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: .25rem;
        padding: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height .3s ease,opacity .2s ease,padding .3s ease;
    }
    .site-header.menu-open .site-navigation { max-height: 16rem; padding: .55rem 0 .15rem; border-top: 1px solid rgba(20,20,18,.1); opacity: 1; }
    .site-navigation a { min-width: 0; min-height: 2.75rem; padding-inline: .65rem; text-align: center; }
    .site-navigation a:last-child { grid-column: 1/-1; }
}

@media (max-width: 40rem) {
    .booking-primary-row { grid-template-columns: minmax(0,1fr) minmax(5.5rem,6.5rem); }
    .booking-primary-row > *, .booking-contact-row > * { min-width: 0; }
    .booking-contact-row { grid-template-columns: 1fr; }
    .hero-booking-form .primary-action { width: 100%; }
    .time-options { grid-column: 1/-1; width: 100%; }
}

@media (max-width: 25rem) {
    .site-header,.site-header.is-compact { width: calc(100% - 1rem); max-width: calc(100vw - 1rem); grid-template-columns:minmax(0,1fr) minmax(0,1fr) 2.85rem; padding-inline:.5rem; }
    .menu-toggle { width: 2.85rem; height: 2.85rem; }
    .site-logo-vertical { width: min(100%,4.7rem); }
    .site-header.is-compact .site-logo-vertical { width: min(100%,6.2rem); }
    .subbrand-logo img { width: min(100%,6.3rem); }
}

/* Micrositio privado de reservación */
.reservation-experience { min-height:100dvh; color:#f5f0e8; background:#151613 var(--reservation-hero) center/cover fixed no-repeat; }
.reservation-experience::before { position:fixed; z-index:0; inset:0; content:""; background:linear-gradient(135deg,rgba(10,13,10,.88),rgba(25,13,9,.68)),radial-gradient(circle at 80% 10%,rgba(146,25,30,.35),transparent 38%); backdrop-filter:blur(.2rem); }
.reservation-experience-shell { position:relative; z-index:1; width:min(calc(100% - 2rem),72rem); min-height:100dvh; display:grid; align-content:center; gap:1rem; margin:auto; padding:2rem 0; }
.reservation-brand { width:min(12rem,42vw); display:block; margin:0 auto; }.reservation-brand img { width:100%; display:block; filter:invert(1); }
.reservation-language-switch{position:absolute;top:1rem;right:0;min-height:2.35rem;display:inline-flex;align-items:center;gap:.4rem;padding:0 .75rem;border:1px solid rgba(255,255,255,.25);border-radius:99rem;color:#fff;background:rgba(20,20,18,.55);font-size:.72rem;font-weight:800;text-decoration:none;backdrop-filter:blur(.8rem)}.reservation-language-switch img{width:1.3rem;height:auto;border-radius:.15rem}
.reservation-experience-card { overflow:hidden; border:1px solid rgba(255,255,255,.28); border-radius:1.5rem; background:linear-gradient(135deg,rgba(34,35,30,.88),rgba(18,18,16,.92)); box-shadow:0 2rem 6rem rgba(0,0,0,.5),inset 0 1px rgba(255,255,255,.25); backdrop-filter:blur(1.7rem) saturate(135%); -webkit-backdrop-filter:blur(1.7rem) saturate(135%); }
.reservation-experience-card>header { padding:clamp(1.5rem,4vw,3.25rem); text-align:center; }.reservation-experience-card>header>p:first-of-type { margin:1.25rem 0 .45rem; color:#d6c7b6; font-size:.72rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }.reservation-experience-card h1 { margin:0; font:760 clamp(2.2rem,6vw,4.6rem)/.92 "Host Grotesk",Arial,sans-serif; letter-spacing:-.05em; }.reservation-lead { max-width:38rem; margin:1rem auto 0; color:rgba(255,255,255,.7); line-height:1.55; }
.reservation-status { display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .8rem; border:1px solid rgba(255,255,255,.22); border-radius:99rem; color:#fff; background:rgba(255,255,255,.08); font-size:.72rem; font-weight:800; }.reservation-status i { width:.48rem; height:.48rem; border-radius:50%; background:#55c77c; box-shadow:0 0 0 .25rem rgba(85,199,124,.13); }.reservation-experience-card.cancelled .reservation-status i,.reservation-experience-card.invalid .reservation-status i { background:#e05252; box-shadow:0 0 0 .25rem rgba(224,82,82,.14); }.reservation-experience-card.completed .reservation-status i,.reservation-experience-card.checked .reservation-status i { background:#d1a24f; box-shadow:0 0 0 .25rem rgba(209,162,79,.14); }
.reservation-mail-state { display:grid; grid-template-columns:2rem 1fr; gap:.08rem .65rem; width:min(calc(100% - 2rem),44rem); margin:0 auto 1.25rem; padding:.8rem 1rem; border-radius:.75rem; color:rgba(255,255,255,.72); background:rgba(255,255,255,.07); font-size:.78rem; }.reservation-mail-state span { grid-row:1/3; width:2rem; height:2rem; display:grid; place-items:center; border-radius:50%; color:#fff; background:#287a4b; font-weight:900; }.reservation-mail-state.warning span { background:#b27c27; }.reservation-mail-state b { color:#fff; }
.reservation-pass-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(15rem,.6fr); gap:1rem; padding:0 clamp(1rem,4vw,3.25rem) clamp(1.5rem,4vw,3rem); }.reservation-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.reservation-details>div { min-height:5.5rem; display:flex; flex-direction:column; justify-content:flex-end; padding:1rem; border:1px solid rgba(255,255,255,.12); border-radius:.85rem; background:rgba(255,255,255,.055); }.reservation-details span { color:rgba(255,255,255,.55); font-size:.68rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }.reservation-details strong { margin-top:.25rem; font-size:clamp(1.05rem,2vw,1.45rem); }.reservation-details .reservation-confirmation { grid-column:1/-1; align-items:center; justify-content:center; text-align:center; }.reservation-confirmation strong { font-size:clamp(1.4rem,4vw,2.2rem); letter-spacing:.16em; }
.reservation-qr { display:grid; place-items:center; align-content:center; gap:.55rem; margin:0; padding:1rem; border-radius:1rem; color:#2a2823; background:#f5f0e8; }.reservation-qr img { width:min(100%,15rem); height:auto; display:block; }.reservation-qr figcaption { color:#6d685f; font-size:.68rem; font-weight:700; }
.reservation-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:.55rem; padding:0 1rem 1.5rem; }.reservation-actions a { min-height:3rem; display:inline-flex; align-items:center; justify-content:center; padding:0 1.2rem; border:1px solid rgba(255,255,255,.25); border-radius:99rem; color:#fff; font-size:.82rem; font-weight:800; text-decoration:none; }.reservation-actions a.primary { border-color:var(--cj-red); background:var(--cj-red); }
.reservation-experience-card>footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem clamp(1rem,4vw,3.25rem); border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.6); font-size:.75rem; }.reservation-experience-card>footer p { margin:0; }.reservation-experience-card>footer a { color:#fff; font-weight:750; }.reservation-experience-card.invalid { max-width:42rem; margin:auto; }.reservation-experience-card.invalid .reservation-actions { padding-bottom:2rem; }
@media(max-width:46rem){.reservation-experience-shell{width:min(calc(100% - 1rem),72rem);padding:4rem 0 .75rem}.reservation-language-switch{top:.75rem;right:.25rem}.reservation-pass-layout{grid-template-columns:1fr}.reservation-qr{grid-row:1}.reservation-qr img{width:min(58vw,13rem)}.reservation-experience-card>footer{align-items:flex-start;flex-direction:column}.reservation-details>div{min-height:4.7rem}}
@media(max-width:28rem){.reservation-details{grid-template-columns:1fr 1fr}.reservation-details>div:nth-child(4){grid-column:1/-1}.reservation-experience-card h1{font-size:2.25rem}.reservation-actions{display:grid}.reservation-actions a{width:100%}}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
