/* GuestOS guest journeys: distinct editorial direction per service page.
   Brand accents still come from the active hotel in config.js. */
:root {
    --gx-ink: #08131d;
    --gx-deep: #0d1d28;
    --gx-panel: rgba(14, 31, 43, .94);
    --gx-paper: #f5f2e9;
    --gx-muted: #c1cbd2;
    --gx-rule: rgba(231, 240, 244, .18);
    --gx-lift: 0 28px 70px -38px rgba(0, 0, 0, .82), inset 0 1px rgba(255,255,255,.09);
    --gx-ease: cubic-bezier(.2,.75,.2,1);
    --gx-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
}

body.g-page-experience {
    --g-font: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
    --g-display: var(--gx-serif);
    min-height: 100vh;
    font-family: var(--g-font) !important;
    color: #f6f7f6;
    background:
        radial-gradient(62rem 38rem at 100% -5%, color-mix(in srgb, var(--g-accent) 17%, transparent), transparent 72%),
        radial-gradient(48rem 34rem at -10% 42%, rgba(24, 103, 116, .16), transparent 68%),
        var(--gx-ink) !important;
    background-attachment: fixed !important;
}

body.g-page-experience .header {
    z-index: 20;
    background: rgba(8, 19, 29, .82) !important;
    border-bottom: 1px solid var(--gx-rule) !important;
    box-shadow: 0 16px 36px -28px #000 !important;
}

body.g-page-experience .page-title,
body.g-page-experience .title,
body.g-page-experience .section-title,
body.g-page-experience .hero-title,
body.g-page-experience .tour-title,
body.g-page-experience .modal-title {
    color: #fbfaf6 !important;
    text-shadow: none !important;
}

body.g-page-experience .page-subtitle,
body.g-page-experience .sub,
body.g-page-experience .hero-tagline {
    color: var(--gx-muted) !important;
}

/* High contrast form controls, including the login fields that were washed out. */
body.g-page-experience input:not([type="radio"]):not([type="checkbox"]):not([type="range"]),
body.g-page-experience select,
body.g-page-experience textarea,
body.g-page-experience .form-input,
body.g-page-experience .form-select,
body.g-page-experience .form-textarea,
body.g-page-experience .custom-duration-input {
    color: #fbfcfd !important;
    background: #101f2b !important;
    border: 1px solid rgba(219, 235, 240, .3) !important;
    box-shadow: inset 0 1px rgba(255,255,255,.045), 0 8px 24px -20px #000 !important;
}

body.g-page-experience input::placeholder,
body.g-page-experience textarea::placeholder,
body.g-page-experience .form-input::placeholder,
body.g-page-experience .custom-duration-input::placeholder {
    color: #c3cdd4 !important;
    opacity: 1 !important;
}

body.g-page-experience input:focus,
body.g-page-experience textarea:focus,
body.g-page-experience select:focus {
    outline: 2px solid color-mix(in srgb, var(--g-accent) 82%, white) !important;
    outline-offset: 2px;
}

body.g-page-experience .modal-content,
body.g-page-experience .sheet {
    color: #f6f7f6 !important;
    background:
        linear-gradient(145deg, rgba(255,255,255,.055), transparent 43%),
        var(--gx-panel) !important;
    border: 1px solid rgba(230, 240, 245, .2) !important;
    box-shadow: 0 34px 90px -42px rgba(0,0,0,.95), inset 0 1px rgba(255,255,255,.08) !important;
    backdrop-filter: blur(26px) saturate(145%);
}

body.g-page-experience .modal-content :is(p, label, span, small, strong, .selector-label, .form-label, .price-row),
body.g-page-experience .sheet :is(p, label, span, small, strong, .muted, .ghost) {
    color: #e5eaed;
}

body.g-page-experience .modal-content :is(.detail-label, .price-estimate-note),
body.g-page-experience .sheet :is(.item-desc, .item-meta) {
    color: #c1cbd2 !important;
}

body.g-page-experience [hidden] { display: none !important; }

@keyframes gx-arrive {
    from { opacity: 0; transform: translate3d(0, 18px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* SPA: a calm, cinematic image window and tactile treatment folios. */
body.g-page-spa .container { max-width: 1060px; margin: 0 auto; }
body.g-page-spa .header { position: sticky; top: 0; padding-inline: max(20px, calc((100% - 1018px) / 2)); }
body.g-page-spa .hero-section {
    height: clamp(330px, 48vw, 520px);
    margin: 18px auto 0;
    max-width: 1020px;
    overflow: hidden;
    border: 1px solid rgba(237,246,248,.2);
    border-radius: 8px 72px 8px 72px;
    box-shadow: 0 46px 90px -55px #000;
    isolation: isolate;
    animation: gx-arrive .8s var(--gx-ease) both;
}
body.g-page-spa .hero-image { transform: scale(1.035); transition: transform 1.1s var(--gx-ease); }
body.g-page-spa .hero-section:hover .hero-image { transform: scale(1.075); }
body.g-page-spa .hero-section::after {
    content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background: linear-gradient(90deg, rgba(4,13,18,.64), transparent 72%), linear-gradient(0deg, rgba(4,13,18,.65), transparent 44%);
}
body.g-page-spa .hero-overlay { z-index: 1; padding: 34px clamp(24px, 6vw, 70px); background: none; }
body.g-page-spa .hours-card { color: #f5f6f4; background: linear-gradient(125deg, rgba(255,255,255,.07), transparent 64%), #11232d !important; border: 1px solid var(--gx-rule) !important; box-shadow: var(--gx-lift) !important; }
body.g-page-spa .hours-card :is(.hours-label, .hours-value, span, strong) { color: #f1f4f3 !important; }
body.g-page-spa .hours-card :is(.hours-note, small) { color: #c2cdd2 !important; }
body.g-page-spa .hero-title { font-size: clamp(34px, 6vw, 66px); max-width: 660px; line-height: .98; }
body.g-page-spa .hero-tagline { font-size: 16px; max-width: 460px; }
body.g-page-spa .content { max-width: 1020px; margin: auto; padding: 34px 22px 52px; }
body.g-page-spa .section-title { font-size: clamp(23px, 3vw, 34px); margin: 24px 0 20px; }
body.g-page-spa .treatments-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); gap: 18px; perspective: 1000px; }
body.g-page-spa .treatment-card {
    position: relative; overflow: hidden; padding: 24px;
    background: linear-gradient(145deg, rgba(255,255,255,.075), transparent 42%), linear-gradient(145deg, #142b36, #0c1923) !important;
    border: 1px solid rgba(231,241,245,.17) !important;
    box-shadow: var(--gx-lift) !important;
    transform: perspective(1000px) rotateX(.5deg);
    transition: transform .45s var(--gx-ease), border-color .35s, box-shadow .35s;
    animation: gx-arrive .65s var(--gx-ease) both;
}
body.g-page-spa .treatment-card:nth-child(2n) { animation-delay: .08s; }
body.g-page-spa .treatment-card:hover { transform: perspective(1000px) rotateX(0) rotateY(-1.5deg) translateY(-6px); border-color: color-mix(in srgb, var(--g-accent) 55%, white) !important; box-shadow: 0 34px 60px -35px #000, inset 0 1px rgba(255,255,255,.12) !important; }
body.g-page-spa .treatment-name, body.g-page-spa .treatment-description,
body.g-page-spa .detail-item, body.g-page-spa .treatment-price { color: #f6f7f6 !important; text-shadow: none !important; }
body.g-page-spa .detail-label { color: #bcc8cf !important; }
body.g-page-spa .booking-modal { background: rgba(2,9,14,.78); }
body.g-page-spa .booking-modal .calendar { padding: 14px; border: 1px solid var(--gx-rule); border-radius: 4px 22px 4px 22px; background: rgba(255,255,255,.035); }
body.g-page-spa .booking-modal :is(.month-display, .selector-label, #treatmentNameDisplay) { color: #f1f4f3 !important; }
body.g-page-spa .booking-modal .calendar-day { color: #edf1f1 !important; background: rgba(255,255,255,.055); border-color: var(--gx-rule); }
body.g-page-spa .booking-modal .calendar-day.disabled { color: #9daab0 !important; background: rgba(255,255,255,.025); }
body.g-page-spa .booking-modal .calendar-day.selected { color: #101a20 !important; background: color-mix(in srgb, var(--g-accent) 62%, #eadbbd); border-color: transparent; }
body.g-page-spa .booking-modal .people-btn { color: #f2f5f4; background: #132630; border-color: var(--gx-rule); }
body.g-page-spa .booking-modal .people-btn.selected { color: #fff; background: color-mix(in srgb, var(--g-accent) 70%, #11252f); border-color: var(--g-accent); }
body.g-page-spa .booking-modal .points-payment { background: color-mix(in srgb, var(--g-accent) 10%, #10212b); border-color: color-mix(in srgb, var(--g-accent) 36%, transparent); }
body.g-page-spa .booking-modal .price-breakdown { background: rgba(255,255,255,.055); }
body.g-page-spa .booking-modal .price-row { color: #e1e7e8 !important; }
body.g-page-spa .booking-modal .price-row:last-child { color: #fbfaf6 !important; border-color: var(--gx-rule); }
body.g-page-spa .booking-modal .points-title { color: #f5f6f4 !important; }
body.g-page-spa .booking-modal .points-available,
body.g-page-spa .booking-modal .price-estimate-note { color: #c3ced3 !important; }
body.g-page-spa .booking-modal .calendar-header .month-nav { color: #f4f6f5; background: #142630; border-color: var(--gx-rule); }

/* Tours: an editorial itinerary wall, staggered with real images and calmer cards. */
body.g-page-tours .container { max-width: 1120px; margin: auto; }
body.g-page-tours .header { position: sticky; top: 0; padding: 16px max(20px, calc((100% - 1080px) / 2)); }
body.g-page-tours .filter-tabs { gap: 8px; padding: 20px 22px 12px; max-width: 1120px; margin: auto; overflow-x: auto; scrollbar-width: none; }
body.g-page-tours .filter-tab { flex: 0 0 auto; border: 1px solid var(--gx-rule); color: #e5eaed; background: rgba(255,255,255,.045); border-radius: 4px 18px 4px 18px; transition: transform .3s var(--gx-ease), background .3s; }
body.g-page-tours .filter-tab:hover { transform: translateY(-3px); }
body.g-page-tours .filter-tab.active { color: #fff; background: color-mix(in srgb, var(--g-accent) 72%, #11232e); border-color: color-mix(in srgb, var(--g-accent) 65%, white); }
body.g-page-tours .content { max-width: 1120px; margin: auto; padding: 18px 22px 56px; }
body.g-page-tours .featured-tour { display: grid; grid-template-columns: 1.15fr .85fr; overflow: hidden; border-radius: 6px 44px 6px 44px; background: #10232e; border: 1px solid var(--gx-rule); box-shadow: var(--gx-lift); }
body.g-page-tours .featured-image {
    min-height: 350px;
    background-image: linear-gradient(180deg, rgba(5, 16, 23, .02), rgba(5, 16, 23, .22)), url("/assets/guestos-excursions-cover.jpg") !important;
    background-size: cover !important;
    background-position: center !important;
}
body.g-page-tours .featured-image::after,
body.g-page-tours .tour-image::after { content: none !important; }
body.g-page-tours .featured-image { background-size: cover !important; background-position: center !important; }
body.g-page-tours .featured-content { padding: clamp(24px, 4vw, 42px); background: linear-gradient(145deg, rgba(255,255,255,.04), transparent), #10232e; }
body.g-page-tours .featured-title, body.g-page-tours .featured-description,
body.g-page-tours .price-label, body.g-page-tours .detail-label { color: #f4f6f5 !important; }
body.g-page-tours .featured-description { color: #c5d0d6 !important; }
body.g-page-tours .detail-box { background: rgba(255,255,255,.055); border: 1px solid var(--gx-rule); }
body.g-page-tours .detail-value { color: color-mix(in srgb, var(--g-accent) 55%, #f5f6f2) !important; }
body.g-page-tours .tours-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; }
body.g-page-tours .tour-card { background: #10212c !important; border: 1px solid var(--gx-rule) !important; border-radius: 4px 28px 4px 28px !important; box-shadow: var(--gx-lift) !important; transform: perspective(950px) rotateY(-.5deg); transition: transform .42s var(--gx-ease), box-shadow .42s; animation: gx-arrive .7s var(--gx-ease) both; }
body.g-page-tours .tour-card:nth-child(even) { animation-delay: .1s; }
body.g-page-tours .tour-card:hover { transform: perspective(950px) rotateY(0) translateY(-7px); box-shadow: 0 36px 60px -38px #000 !important; }
body.g-page-tours .tours-grid { grid-template-columns: 1fr; gap: 16px; }
body.g-page-tours .tour-card { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); min-height: 260px; }
body.g-page-tours .tour-card:nth-child(even) .tour-image { order: 2; }
body.g-page-tours .tour-image { height: 100%; min-height: 260px; }
body.g-page-tours .tour-content { padding: 22px; }
body.g-page-tours .tour-title { color: #f7f8f6 !important; }
body.g-page-tours .tour-description { color: #c1cbd2 !important; }
body.g-page-tours .booking-modal { background: rgba(2,9,14,.78); }
body.g-page-tours .booking-modal .calendar { padding: 14px; border: 1px solid var(--gx-rule); border-radius: 4px 22px 4px 22px; background: rgba(255,255,255,.035); }
body.g-page-tours .booking-modal :is(.month-display, .selector-label, #tourNameDisplay) { color: #f1f4f3 !important; }
body.g-page-tours .booking-modal .calendar-day { color: #edf1f1 !important; background: rgba(255,255,255,.055); border-color: var(--gx-rule); }
body.g-page-tours .booking-modal .calendar-day.disabled { color: #9daab0 !important; background: rgba(255,255,255,.025); }
body.g-page-tours .booking-modal .calendar-day.selected { color: #101a20 !important; background: color-mix(in srgb, var(--g-accent) 62%, #eadbbd); border-color: transparent; }
body.g-page-tours .booking-modal .people-btn { color: #f2f5f4; background: #132630; border-color: var(--gx-rule); }
body.g-page-tours .booking-modal .people-btn.selected { color: #fff; background: color-mix(in srgb, var(--g-accent) 70%, #11252f); border-color: var(--g-accent); }
body.g-page-tours .booking-modal .points-payment { background: color-mix(in srgb, var(--g-accent) 10%, #10212b); border-color: color-mix(in srgb, var(--g-accent) 36%, transparent); }
body.g-page-tours .booking-modal .price-breakdown { background: rgba(255,255,255,.055); }
body.g-page-tours .booking-modal .price-row { color: #e1e7e8 !important; }
body.g-page-tours .booking-modal .price-row:last-child { color: #fbfaf6 !important; border-color: var(--gx-rule); }
body.g-page-tours .booking-modal .points-title { color: #f5f6f4 !important; }
body.g-page-tours .booking-modal .points-available,
body.g-page-tours .booking-modal .price-estimate-note { color: #c3ced3 !important; }
body.g-page-tours .booking-modal .calendar-header .month-nav { color: #f4f6f5; background: #142630; border-color: var(--gx-rule); }

/* Restaurant: dining-room photography and table-service controls as a quiet console. */
body.g-page-restaurant .container { max-width: 1040px; margin: auto; }
body.g-page-restaurant .hero-section { height: clamp(270px, 38vw, 410px); margin: 18px 18px 0; border-radius: 3px 56px 3px 56px; overflow: hidden; box-shadow: 0 38px 80px -50px #000; }
body.g-page-restaurant .hero-section .hero-image { transition: transform 1s var(--gx-ease); }
body.g-page-restaurant .hero-section:hover .hero-image { transform: scale(1.045); }
body.g-page-restaurant .status-card { margin: 18px 22px 24px; background: linear-gradient(100deg, rgba(255,255,255,.07), transparent), #10232d; border: 1px solid var(--gx-rule); box-shadow: var(--gx-lift); }
body.g-page-restaurant .status-label, body.g-page-restaurant .status-value { color: #f6f7f6 !important; text-shadow: none !important; }
body.g-page-restaurant .tb-card { background: linear-gradient(110deg, color-mix(in srgb, var(--g-accent) 22%, #12232d), #0d1b25) !important; border-radius: 4px 28px 4px 28px; box-shadow: var(--gx-lift); }
body.g-page-restaurant .tb-icon { background: color-mix(in srgb, var(--g-accent) 74%, #142631) !important; }
body.g-page-restaurant .tb-sub { color: #d0d9dd !important; }
body.g-page-restaurant .tb-label { color: #d5dde0 !important; }
body.g-page-restaurant .tb-chip { background: #132630; border-color: var(--gx-rule); color: #f0f3f2; transition: transform .22s var(--gx-ease), border-color .22s; }
body.g-page-restaurant .tb-chip:hover { transform: translateY(-3px); border-color: var(--g-accent); }
body.g-page-restaurant .tb-chip small { color: #c1cbd2; }
body.g-page-restaurant .tb-chip[aria-pressed="true"] { background: color-mix(in srgb, var(--g-accent) 70%, #10232d); border-color: var(--g-accent); color: white; }
body.g-page-restaurant .tb-stepper button { background: #132630; border-color: var(--gx-rule); color: white; }
body.g-page-restaurant .tb-stepper output { color: white; }
body.g-page-restaurant .tb-notes { background: #101f2b; color: white; border-color: var(--gx-rule); }
body.g-page-restaurant .tb-notes::placeholder { color: #bfccd2; opacity: 1; }
body.g-page-restaurant .tb-empty { color: #d0d9dd; }
body.g-page-restaurant .tb-done, body.g-page-restaurant .tb-done p { color: #f5f6f3 !important; }
body.g-page-restaurant .meal-btn { color: #f4f6f3; background: #12242e; border-color: var(--gx-rule); }
body.g-page-restaurant .meal-label { color: #f4f6f3 !important; }
body.g-page-restaurant .meal-btn:hover { background: #19323c; }
body.g-page-restaurant .payment-option { color: #f4f6f3; background: #12242e; border-color: var(--gx-rule); }
body.g-page-restaurant .payment-option.selected { color: #fff; background: color-mix(in srgb, var(--g-accent) 55%, #12242e); border-color: var(--g-accent); }

/* Extras: open inventory rows, one prominent anchored basket, no repetitive tile wall. */
body.g-page-extra .container { max-width: 960px; }
body.g-page-extra .header { position: sticky; top: 0; margin: 0 -16px 18px; padding: 16px 18px; }
body.g-page-extra .grid { gap: 0; border-top: 1px solid var(--gx-rule); }
body.g-page-extra .item { border: 0; border-bottom: 1px solid var(--gx-rule); border-radius: 0; padding: 20px 8px; background: transparent; grid-template-columns: 64px minmax(0,1fr) auto; transition: padding .25s var(--gx-ease), background .25s; }
body.g-page-extra .item:hover { padding-inline: 16px; background: linear-gradient(90deg, color-mix(in srgb, var(--g-accent) 10%, transparent), transparent 78%); }
body.g-page-extra .item-emoji { width: 56px; height: 56px; display: grid; place-items: center; border: 1px solid var(--gx-rule); background: linear-gradient(145deg, rgba(255,255,255,.08), transparent), #10232e; border-radius: 4px 20px 4px 20px; transform: perspective(300px) rotateY(-6deg); }
body.g-page-extra .item-name { font-family: var(--g-display); font-size: 19px; }
body.g-page-extra .item-price { color: #fff; }
body.g-page-extra .cart-bar { background: linear-gradient(110deg, color-mix(in srgb, var(--g-accent) 80%, #10232d), #12333a) !important; border: 1px solid rgba(255,255,255,.28); box-shadow: 0 22px 55px -24px color-mix(in srgb, var(--g-accent) 58%, transparent); transition: transform .28s var(--gx-ease), box-shadow .28s; }
body.g-page-extra .cart-bar:hover { transform: translate(-50%, -4px); box-shadow: 0 28px 65px -24px color-mix(in srgb, var(--g-accent) 64%, transparent); }
body.g-page-extra .modal { background: rgba(2,9,14,.78); backdrop-filter: blur(9px); }
body.g-page-extra .sheet { border-radius: 28px 28px 0 0; padding: 24px; }
body.g-page-extra .sheet textarea { color: white !important; background: #101f2b !important; border-color: var(--gx-rule) !important; }
body.g-page-extra .sheet .line { border-color: var(--gx-rule); }
body.g-page-extra .sheet .qty button { color: #f5f7f5; background: #142631; border-color: var(--gx-rule); }
body.g-page-extra .sheet .ghost { color: #e0e7ea !important; }

/* Rewards: make the real point balance feel like a physical token, then use airy tickets. */
body.g-page-rewards .container { max-width: 940px; padding: 22px; }
body.g-page-rewards .header { border-radius: 2px 26px 2px 26px !important; }
body.g-page-rewards .points-banner { isolation: isolate; padding: 34px clamp(24px, 6vw, 64px); border: 1px solid rgba(255,255,255,.24); border-radius: 4px 62px 4px 62px; background: linear-gradient(115deg, color-mix(in srgb, var(--g-accent) 70%, #11303a), #0b1a25 76%) !important; box-shadow: 0 44px 86px -52px #000, inset 0 1px rgba(255,255,255,.2) !important; }
body.g-page-rewards .points-banner::before { width: 290px; height: 290px; top: 50%; right: 5%; transform: translateY(-50%); border: 1px solid rgba(255,255,255,.23); background: radial-gradient(circle, rgba(255,255,255,.12), transparent 66%); box-shadow: 0 0 0 24px rgba(255,255,255,.025), 0 0 0 54px rgba(255,255,255,.018); animation: gx-ring 18s linear infinite; }
body.g-page-rewards .points-display { transform: perspective(900px) rotateX(3deg); transform-origin: left center; }
body.g-page-rewards .points-value { font-family: var(--g-display); font-size: clamp(62px, 11vw, 104px); letter-spacing: -.065em; text-shadow: 0 18px 38px rgba(0,0,0,.26); }
body.g-page-rewards .earn-more-btn { width: auto; min-width: min(100%, 310px); border-radius: 3px 20px 3px 20px; }
body.g-page-rewards .rewards-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); align-items: start; gap: 14px; }
body.g-page-rewards .reward-card { min-height: 180px; border-radius: 4px 24px 4px 24px; background: linear-gradient(145deg, rgba(255,255,255,.055), transparent 48%), #101f29 !important; border-color: var(--gx-rule) !important; box-shadow: var(--gx-lift) !important; transition: transform .35s var(--gx-ease), border-color .3s; }
body.g-page-rewards .reward-card:nth-child(3n + 2) { transform: translateY(14px); }
body.g-page-rewards .reward-card:hover { transform: perspective(900px) rotateY(-2deg) translateY(-5px); border-color: color-mix(in srgb, var(--g-accent) 58%, white) !important; }
body.g-page-rewards .reward-description { color: #c4cfd5 !important; }
body.g-page-rewards .reward-cost { color: #f3e6bf; }
@keyframes gx-ring { to { rotate: 360deg; } }

/* Last minute: active offers read like a live board, with the real timers in front. */
body.g-page-lastminute .container { max-width: 1020px; }
body.g-page-lastminute .hero { max-width: 900px; margin: 26px auto 10px; padding: 40px 28px 30px; text-align: left; border-left: 1px solid var(--g-accent); background: linear-gradient(90deg, color-mix(in srgb, var(--g-accent) 9%, transparent), transparent 70%); }
body.g-page-lastminute .hero-icon { font-size: 30px; margin-bottom: 4px; }
body.g-page-lastminute .hero-title { font-size: clamp(32px, 6vw, 56px); max-width: 620px; line-height: 1; }
body.g-page-lastminute .hero-subtitle { max-width: 620px; color: #c5d0d6 !important; }
body.g-page-lastminute .content { max-width: 900px; margin: auto; }
body.g-page-lastminute .section-title { padding-bottom: 12px; border-bottom: 1px solid var(--gx-rule); font-size: 18px; }
body.g-page-lastminute .flash-card { position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.25); border-radius: 4px 30px 4px 30px; background: linear-gradient(110deg, color-mix(in srgb, var(--g-accent) 80%, #10212b), #142b36) !important; box-shadow: var(--gx-lift); }
body.g-page-lastminute .offer-card { border-radius: 4px 24px 4px 24px; border: 1px solid var(--gx-rule); background: linear-gradient(130deg, rgba(255,255,255,.055), transparent 60%), #10212b !important; box-shadow: var(--gx-lift); transition: transform .3s var(--gx-ease); }
body.g-page-lastminute .offer-card:hover { transform: perspective(900px) rotateX(1deg) translateY(-4px); }
body.g-page-lastminute .empty-state, body.g-page-lastminute .notice { color: #14202a !important; background: var(--gx-paper) !important; }
body.g-page-lastminute .empty-state :is(h2,p,.empty-text), body.g-page-lastminute .notice { color: #14202a !important; }

/* The unified cart is intentionally a different material: a readable hotel folio. */
body.g-page-cart { color: #18242b !important; background: radial-gradient(50rem 30rem at 100% 0%, color-mix(in srgb, var(--g-accent) 26%, transparent), transparent 70%), #e7e9e6 !important; }
body.g-page-cart .wrap { max-width: 820px; padding: 34px 20px 150px; }
body.g-page-cart .head { padding: 4px 0 18px; border-bottom: 1px solid rgba(17,31,40,.22); }
body.g-page-cart .head h1 { color: #10212b; font-size: clamp(27px, 5vw, 39px); }
body.g-page-cart .head a { color: #15252f; }
body.g-page-cart .card, body.g-page-cart .line, body.g-page-cart .options, body.g-page-cart .success { color: #18242b !important; background: var(--gx-paper) !important; border-color: rgba(20,35,43,.14) !important; border-radius: 3px 24px 3px 24px !important; box-shadow: 0 24px 54px -42px rgba(12,24,31,.72) !important; }
body.g-page-cart .card :is(p,strong,label,span), body.g-page-cart .line :is(p,strong,label,span), body.g-page-cart .options :is(label,span) { color: #18242b !important; }
body.g-page-cart .muted { color: #53636d !important; }
body.g-page-cart .line button { background: #e4e6e1; color: #20323c; }
body.g-page-cart .notes { color: #172630 !important; background: #fff !important; border-color: #9ba9af !important; }
body.g-page-cart .notes::placeholder { color: #596970 !important; opacity: 1; }
body.g-page-cart #rewardCode { color: #172630 !important; background: #fff !important; border-color: #9ba9af !important; }
body.g-page-cart #rewardCode::placeholder { color: #596970 !important; opacity: 1 !important; }
body.g-page-cart .alert { color: #8b2026 !important; }
body.g-page-cart .success { background: #e3f1e7 !important; color: #17482a !important; }
body.g-page-cart .links a { color: #143d4a !important; }
body.g-page-cart .empty { color: #43555d !important; }

/* The tour detail is a full-bleed travel story, not a second listing card. */
body.g-page-tour-detail .container { max-width: 1120px; margin: auto; }
body.g-page-tour-detail .header { position: absolute; left: 0; right: 0; background: linear-gradient(180deg, rgba(4,12,17,.78), transparent) !important; border: 0 !important; }
body.g-page-tour-detail .hero-gallery { height: clamp(340px, 59vw, 650px); border-radius: 0 0 5px 70px; overflow: hidden; box-shadow: 0 44px 80px -58px #000; }
body.g-page-tour-detail .hero-image { transform: scale(1.02); transition: transform 1.2s var(--gx-ease); }
body.g-page-tour-detail .hero-gallery:hover .hero-image { transform: scale(1.06); }
body.g-page-tour-detail .content { max-width: 920px; margin: auto; padding: 38px 24px 70px; }
body.g-page-tour-detail .tour-title { max-width: 780px; font-size: clamp(36px, 7vw, 70px); line-height: .99; }
body.g-page-tour-detail .tour-subtitle { color: #c8d2d7 !important; }
body.g-page-tour-detail .info-cards { perspective: 800px; }
body.g-page-tour-detail .info-card { background: linear-gradient(145deg, rgba(255,255,255,.075), transparent), #10212b !important; border: 1px solid var(--gx-rule) !important; box-shadow: var(--gx-lift) !important; transform: perspective(850px) rotateX(1.5deg); }
body.g-page-tour-detail .section { margin: 40px 0; padding-top: 22px; border-top: 1px solid var(--gx-rule); }
body.g-page-tour-detail .section-text { color: #d0d9dd !important; }

/* Account: a quiet guest folio, with personal details separated from rewards and bookings. */
body.g-page-account .container { max-width: 900px; }
body.g-page-account .header { margin: 0 0 16px; background: rgba(8,19,29,.88) !important; border-bottom: 1px solid var(--gx-rule) !important; }
body.g-page-account .content { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
body.g-page-account .profile-card { grid-column: 1 / -1; padding: 30px; background: linear-gradient(120deg, color-mix(in srgb, var(--g-accent) 18%, #0d1d28), #0d1d28 58%) !important; border: 1px solid var(--gx-rule) !important; border-radius: 4px 48px 4px 48px !important; box-shadow: var(--gx-lift) !important; }
body.g-page-account .profile-avatar { transform: perspective(480px) rotateY(-12deg) rotateX(4deg); border-radius: 24px 8px 24px 8px; box-shadow: 14px 18px 38px -20px #000, inset 0 1px rgba(255,255,255,.28); }
body.g-page-account .profile-details { grid-template-columns: 1fr 1fr; column-gap: 24px; }
body.g-page-account .info-item { border-bottom: 1px solid var(--gx-rule); }
body.g-page-account .info-label { color: #c6d0d5; text-shadow: none; }
body.g-page-account .info-value { color: #fff; text-shadow: none; }
body.g-page-account .stats-card { grid-column: 1 / -1; background: linear-gradient(115deg, color-mix(in srgb, var(--g-accent) 14%, #0d1d28), #0d1d28 72%) !important; border: 1px solid var(--gx-rule) !important; box-shadow: var(--gx-lift) !important; }
body.g-page-account .stats-header { text-shadow: none; }
body.g-page-account .stat-box { background: rgba(255,255,255,.045); border: 1px solid var(--gx-rule); transform: perspective(650px) rotateX(2deg); }
body.g-page-account .stat-label { color: #cbd4d8; text-shadow: none; }
body.g-page-account .rewards-card, body.g-page-account .bookings-card { width: 100%; margin: 0; align-self: start; padding: 24px; background: var(--gx-paper) !important; border: 1px solid rgba(255,255,255,.4) !important; border-radius: 3px 28px 3px 28px !important; box-shadow: 0 26px 60px -42px #000 !important; }
body.g-page-account .rewards-header, body.g-page-account .bookings-header { color: #17313b !important; text-shadow: none; }
body.g-page-account .booking-item { background: #fff; border: 1px solid rgba(20,44,54,.16); }
body.g-page-account :is(.booking-name, .reward-name, .reward-description) { color: #20343c; }

/* Concierge chat: a focused conversation surface with a tactile composer and visible quick actions. */
body.g-page-chat .chat-header { background: rgba(8,19,29,.92); border-bottom: 1px solid var(--gx-rule); box-shadow: 0 18px 38px -30px #000; }
body.g-page-chat .header-avatar { transform: perspective(360px) rotateY(-10deg); box-shadow: 10px 14px 26px -16px #000, inset 0 1px rgba(255,255,255,.28); }
body.g-page-chat .header-name, body.g-page-chat .header-status { text-shadow: none; }
body.g-page-chat .chat-messages { background: radial-gradient(ellipse at 0 0, color-mix(in srgb, var(--g-accent) 9%, transparent), transparent 55%); }
body.g-page-chat .message.bubbles .message-bubble { color: #172830; background: #f3f0e7; border: 1px solid rgba(255,255,255,.75); border-radius: 4px 22px 22px 22px; box-shadow: 0 16px 32px -24px #000; }
body.g-page-chat .message.user .message-bubble { border-radius: 22px 4px 22px 22px; box-shadow: 0 18px 32px -22px color-mix(in srgb, var(--g-accent) 65%, #000); }
body.g-page-chat .message.bubbles .message-time { color: #bdc8cd; text-shadow: none; }
body.g-page-chat .quick-replies { padding-top: 8px; }
body.g-page-chat .quick-reply-btn { color: #f5f6f3; background: rgba(15,34,45,.94); border: 1px solid var(--gx-rule); border-radius: 4px 18px 4px 18px; box-shadow: 0 12px 26px -22px #000; transition: transform .2s var(--gx-ease), border-color .2s, background .2s; }
body.g-page-chat .quick-reply-btn:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--g-accent) 65%, white); background: #142c38; }
body.g-page-chat .chat-input-area { background: rgba(8,19,29,.96); border-top: 1px solid var(--gx-rule); }
body.g-page-chat .input-wrapper { background: #101f2b; border: 1px solid rgba(219,235,240,.26); }
body.g-page-chat .chat-input { color: #fff !important; background: transparent !important; box-shadow: none !important; border: 0 !important; }
body.g-page-chat .chat-input::placeholder { color: #c3cdd4 !important; }
body.g-page-chat .send-btn { box-shadow: 0 12px 28px -18px color-mix(in srgb, var(--g-accent) 75%, #000); transition: transform .2s var(--gx-ease); }
body.g-page-chat .send-btn:hover { transform: translateY(-2px) rotate(-4deg); }

/* Pre-arrival: a compact concierge folio instead of a long, plain product form. */
body.g-page-prearrival .wrap { max-width: 820px; padding: 18px 22px 120px; }
body.g-page-prearrival .wrap > header { margin: 18px 0 26px; padding: clamp(24px, 5vw, 46px); border: 1px solid var(--gx-rule); border-radius: 4px 44px 4px 44px; background: radial-gradient(circle at 92% 16%, color-mix(in srgb, var(--g-accent) 34%, transparent), transparent 32%), linear-gradient(135deg, #102531, #0d1d28 64%); box-shadow: var(--gx-lift); }
body.g-page-prearrival h1 { max-width: 620px; font-size: clamp(30px, 5vw, 48px); line-height: 1.02; }
body.g-page-prearrival .item { grid-template-columns: 68px minmax(0,1fr) auto; padding: 20px; background: linear-gradient(120deg, rgba(255,255,255,.045), transparent), #10212b; border: 1px solid var(--gx-rule); border-radius: 4px 22px 4px 22px; box-shadow: var(--gx-lift); transition: transform .24s var(--gx-ease), border-color .24s; }
body.g-page-prearrival .item:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--g-accent) 52%, white); }
body.g-page-prearrival .item .em { transform: perspective(320px) rotateY(-9deg); filter: drop-shadow(0 10px 10px rgba(0,0,0,.22)); }
body.g-page-prearrival .item .nm, body.g-page-prearrival .item .pr { color: #f8f6f0; }
body.g-page-prearrival .item .ds { color: #c3cdd2; }
body.g-page-prearrival .qty button { color: #f5f6f3; background: #152a35; border-color: var(--gx-rule); }
body.g-page-prearrival form { margin-top: 28px; padding: clamp(20px, 4vw, 34px); border-radius: 4px 32px 4px 32px; background: var(--gx-paper); box-shadow: 0 34px 70px -48px #000; }
body.g-page-prearrival form label { color: #34474f; }
body.g-page-prearrival .tot { color: #132730; border-bottom: 1px solid rgba(20,35,43,.15); padding-bottom: 15px; }
body.g-page-prearrival .note { color: #53636d; }
body.g-page-prearrival .ok { color: #163d27; background: #e5f1e8; border-color: #b5d1bb; }

/* Login fields stay visibly darker than their surrounding panel. */
body.g-page-login .form-input,
body.g-page-login .custom-duration-input,
body.g-page-login select {
    background: rgba(6, 16, 25, .94) !important;
    border-color: rgba(233, 243, 247, .38) !important;
    color: #fff !important;
}
body.g-page-login .form-input::placeholder,
body.g-page-login .custom-duration-input::placeholder { color: #cbd5da !important; opacity: 1 !important; }
body.g-page-login .form-input:focus { background: #07131d !important; border-color: color-mix(in srgb, var(--g-accent) 68%, white) !important; }

/* Shared room/card selector used by spa and excursion bookings. */
.g-payment-choice {
    min-width: 0; margin: 18px 0 20px; padding: 15px;
    border: 1px solid rgba(231,241,245,.2); border-radius: 4px 20px 4px 20px;
    background: linear-gradient(145deg, rgba(255,255,255,.055), transparent), rgba(11,25,35,.8);
}
.g-payment-choice legend { padding: 0 8px; color: #f5f6f4; font-size: 13px; font-weight: 700; }
.g-payment-option { display: flex; align-items: center; gap: 11px; min-height: 48px; padding: 10px 12px; color: #f5f6f4 !important; border: 1px solid transparent; cursor: pointer; transition: background .2s, border-color .2s, transform .2s; }
.g-payment-option + .g-payment-option { margin-top: 6px; }
.g-payment-option:hover { transform: translateX(3px); background: rgba(255,255,255,.045); border-color: rgba(255,255,255,.13); }
.g-payment-option input { accent-color: var(--g-accent); width: 18px; height: 18px; flex: 0 0 auto; }
.g-payment-option .g-ico { color: color-mix(in srgb, var(--g-accent) 65%, #eff5f5); }

@media (max-width: 680px) {
    body.g-page-spa .hero-section { margin: 10px 10px 0; height: 390px; border-radius: 5px 42px 5px 42px; }
    body.g-page-spa .content { padding-inline: 16px; }
    body.g-page-tours .featured-tour { display: block; }
    body.g-page-tours .featured-image { min-height: 240px; }
    body.g-page-tours .tours-grid { grid-template-columns: 1fr; gap: 14px; }
    body.g-page-tours .tour-card { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); min-height: 230px; }
    body.g-page-tours .tour-image { min-height: 230px; }
    body.g-page-tours .tour-content { padding: 16px; }
    body.g-page-tours .tour-card:nth-child(even) { margin-top: 0; }
    body.g-page-restaurant .hero-section { margin: 10px 10px 0; border-radius: 4px 38px 4px 38px; }
    body.g-page-restaurant .status-card { margin-inline: 14px; }
    body.g-page-rewards .points-banner { border-radius: 4px 38px 4px 38px; }
    body.g-page-rewards .points-banner::before { width: 190px; height: 190px; right: -16%; }
    body.g-page-rewards .reward-card:nth-child(3n + 2) { transform: none; }
    body.g-page-cart .wrap { padding: 22px 14px 130px; }
    body.g-page-extra .item { grid-template-columns: 48px minmax(0,1fr) auto; gap: 9px; padding-inline: 4px; }
    body.g-page-extra .item-emoji { width: 44px; height: 48px; font-size: 27px; }
    body.g-page-extra .item-name { font-size: 16px; }
    body.g-page-extra .add-btn { padding: 8px 10px; }
    body.g-page-tour-detail .hero-gallery { border-radius: 0 0 4px 40px; }
    body.g-page-account .content { display: block; padding-inline: 14px; }
    body.g-page-account .content > * { margin-bottom: 16px; }
    body.g-page-account .profile-card { padding: 22px; }
    body.g-page-account .profile-details { grid-template-columns: 1fr; }
    body.g-page-prearrival .wrap { padding-inline: 14px; }
    body.g-page-prearrival .item { grid-template-columns: 46px minmax(0,1fr) auto; gap: 9px; padding: 14px 10px; }
    body.g-page-prearrival .item .em { font-size: 27px; }
}

@media (prefers-reduced-motion: reduce) {
    body.g-page-experience *, body.g-page-experience *::before, body.g-page-experience *::after {
        animation-duration: .01ms !important; animation-iteration-count: 1 !important;
        scroll-behavior: auto !important; transition-duration: .01ms !important;
    }
}

/* Spa ed escursioni riprendono il taglio editoriale dei concept: immagini
   ampie, titoli serif e accenti caldi legati comunque al tema della struttura. */
:root {
    --gx-metal: color-mix(in srgb, var(--g-accent) 12%, #d8bc8f);
    --gx-coast: #071820;
}

/* SPA */
body.g-page-spa .container { max-width: 1240px; }
body.g-page-spa .header { background: rgba(7, 19, 26, .76) !important; }
body.g-page-spa .hero-section {
    height: clamp(390px, 56vw, 650px);
    max-width: 1200px;
    margin-top: 0;
    border-radius: 0 0 5px 62px;
    border-top: 0;
}
body.g-page-spa .hero-image { background-position: center 52%; }
body.g-page-spa .hero-section::after {
    background: linear-gradient(90deg, rgba(4, 13, 18, .3), transparent 80%),
        linear-gradient(0deg, rgba(3, 14, 19, .86), rgba(3, 14, 19, .04) 70%);
}
body.g-page-spa .hero-overlay { padding: 42px clamp(26px, 7vw, 84px) 132px; }
body.g-page-spa .hero-title {
    max-width: 780px;
    font: 500 clamp(48px, 8vw, 92px)/.88 var(--gx-serif) !important;
    letter-spacing: -.035em;
}
body.g-page-spa .hero-tagline { font: 500 clamp(18px, 2.4vw, 25px)/1.25 var(--gx-serif) !important; }
body.g-page-spa .content { max-width: 1120px; padding-top: 30px; }
body.g-page-spa .hours-card {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
    max-width: 560px;
    margin: -1px 0 42px auto;
    padding: 18px 24px;
    border-radius: 3px 28px 3px 28px;
    background: linear-gradient(125deg, rgba(255,255,255,.055), transparent 55%), #10232b !important;
}
body.g-page-spa .hours-title { font: 500 24px/1.1 var(--gx-serif) !important; margin-bottom: 5px; }
body.g-page-spa .hours-row { padding: 6px 0; }
body.g-page-spa .section-title {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin: 32px 0 16px;
    font: 500 clamp(32px, 4.5vw, 48px)/1 var(--gx-serif) !important;
}
body.g-page-spa .section-title .g-ico { color: var(--gx-metal); }
body.g-page-spa .treatments-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
body.g-page-spa .treatment-card {
    min-height: 230px;
    padding: clamp(20px, 3vw, 30px);
    border-radius: 3px 28px 3px 28px;
    background-image:
        linear-gradient(115deg, rgba(7, 20, 27, .97), rgba(7, 20, 27, .77)),
        var(--treatment-photo, none),
        radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--gx-metal) 26%, transparent), transparent 53%),
        linear-gradient(145deg, #132b35, #0b1921) !important;
    background-position: center, center, center, center;
    background-size: cover;
}
body.g-page-spa .treatment-header { align-items: flex-start; gap: 16px; }
body.g-page-spa .treatment-icon {
    display: grid;
    place-items: center;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    border: 1px solid color-mix(in srgb, var(--gx-metal) 62%, transparent);
    border-radius: 3px 20px 3px 20px;
    color: var(--gx-metal);
    background: radial-gradient(circle at 32% 24%, rgba(255,255,255,.18), transparent 58%), rgba(255,255,255,.045);
    font-size: 27px;
}
body.g-page-spa .treatment-icon .g-ico { width: 25px; height: 25px; }
body.g-page-spa .treatment-name { font: 600 27px/1.02 var(--gx-serif) !important; }
body.g-page-spa .treatment-description { color: #d3dcde !important; font-size: 14px; line-height: 1.55; }
body.g-page-spa .treatment-details { border-top: 1px solid var(--gx-rule); padding-top: 12px; margin-top: auto; }
body.g-page-spa .treatment-footer { align-items: center; margin-top: 16px; }
body.g-page-spa .treatment-price { font: 600 27px/1 var(--gx-serif) !important; color: var(--gx-metal) !important; }
body.g-page-spa .treatment-book-btn {
    color: #101b1e !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--gx-metal) 92%, white), var(--gx-metal)) !important;
    border: 0;
    border-radius: 999px;
    padding: 11px 19px;
    font-weight: 700;
}
body.g-page-spa .bottom-cta { background: linear-gradient(180deg, transparent, rgba(5,16,22,.96) 34%) !important; }
body.g-page-spa .cta-btn { background: linear-gradient(110deg, var(--gx-metal), color-mix(in srgb, var(--g-accent) 65%, #143944)) !important; }

/* TOURS */
body.g-page-tours .container { max-width: 1240px; }
body.g-page-tours .header { padding-top: 24px; padding-bottom: 18px; background: transparent !important; box-shadow: none !important; }
body.g-page-tours .page-title { font: 500 clamp(45px, 7vw, 78px)/.9 var(--gx-serif) !important; letter-spacing: -.035em; }
body.g-page-tours .page-title .g-ico { width: .48em; height: .48em; color: var(--gx-metal); }
body.g-page-tours .page-subtitle { font: 500 clamp(18px, 2.2vw, 25px)/1.2 var(--gx-serif) !important; color: #d4dddc !important; }
body.g-page-tours .filter-tabs { padding-top: 14px; padding-bottom: 20px; }
body.g-page-tours .filter-tab {
    padding: 10px 21px;
    border-radius: 999px;
    border-color: color-mix(in srgb, var(--gx-metal) 48%, transparent);
    font: 500 17px/1.1 var(--gx-serif) !important;
}
body.g-page-tours .filter-tab.active {
    color: #142126;
    background: var(--gx-metal);
    border-color: var(--gx-metal);
}
body.g-page-tours .content { padding-top: 4px; }
body.g-page-tours .featured-tour {
    display: block;
    min-height: clamp(480px, 57vw, 650px);
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(229, 237, 232, .25);
    border-radius: 4px 46px 4px 46px;
    background: #10232e;
    box-shadow: 0 50px 100px -64px #000;
    isolation: isolate;
}
body.g-page-tours .featured-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    background-image: linear-gradient(180deg, rgba(5,16,23,.03), rgba(5,16,23,.2)), url('/assets/guestos-excursions-cover.jpg');
    background-position: center 48%;
    transition: transform 1s var(--gx-ease), filter .6s;
}
body.g-page-tours .featured-tour:hover .featured-image { transform: scale(1.035); filter: saturate(1.08); }
body.g-page-tours .featured-tour::after {
    content: '';
    position: absolute;
    inset: 25% 0 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(0deg, rgba(4, 17, 24, .98), rgba(4, 17, 24, .65) 45%, transparent);
}
body.g-page-tours .featured-content {
    position: absolute;
    z-index: 1;
    inset: auto 0 0;
    width: 100%;
    padding: clamp(24px, 5vw, 58px);
    background: linear-gradient(0deg, rgba(4,17,24,.62), transparent) !important;
}
body.g-page-tours .featured-title { font: 600 clamp(35px, 5.8vw, 64px)/.98 var(--gx-serif) !important; letter-spacing: -.025em; }
body.g-page-tours .featured-description { max-width: 720px; font: 500 19px/1.4 var(--gx-serif) !important; color: #e0e5e2 !important; }
body.g-page-tours .featured-highlights { color: #edf0ea !important; }
body.g-page-tours .featured-details { max-width: 520px; gap: 10px; }
body.g-page-tours .detail-box { min-width: 110px; background: rgba(5,20,27,.48); border-color: rgba(239,242,231,.3); backdrop-filter: blur(12px); }
body.g-page-tours .detail-label { color: #d6dfda !important; }
body.g-page-tours .detail-value { color: #fff !important; }
body.g-page-tours .featured-price { display: flex; align-items: baseline; gap: 14px; margin: 16px 0; }
body.g-page-tours .price-value { color: #fff !important; font: 600 34px/1 var(--gx-serif) !important; }
body.g-page-tours .featured-badge { color: #142126; background: var(--gx-metal); border-radius: 999px; }
body.g-page-tours .book-btn { width: auto; min-width: 230px; padding: 14px 26px; border-radius: 999px; color: #162126 !important; background: linear-gradient(120deg, color-mix(in srgb, var(--gx-metal) 90%, white), var(--gx-metal)) !important; box-shadow: 0 18px 44px -24px color-mix(in srgb, var(--gx-metal) 70%, transparent) !important; }
body.g-page-tours .tours-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 18px; }
body.g-page-tours .tour-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    min-height: 290px;
    overflow: hidden;
    border: 1px solid rgba(224, 235, 234, .21) !important;
    border-radius: 4px 32px 4px 32px !important;
    background: linear-gradient(105deg, #0c1d25, #0b1921) !important;
    box-shadow: 0 28px 64px -50px #000 !important;
}
body.g-page-tours .tour-card:nth-child(even) .tour-image { order: 0; }
body.g-page-tours .tour-image { position: relative; height: 100%; min-height: 290px; background-size: cover !important; background-position: center !important; }
body.g-page-tours .tour-image::before { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(0deg, rgba(3,14,20,.33), transparent); }
body.g-page-tours .tour-content { display: flex; flex-direction: column; justify-content: center; padding: clamp(22px, 4vw, 42px); }
body.g-page-tours .tour-title { font: 600 clamp(25px, 3vw, 36px)/1.02 var(--gx-serif) !important; }
body.g-page-tours .tour-description { color: #d2dcdd !important; font: 500 17px/1.45 var(--gx-serif) !important; }
body.g-page-tours .tour-info { padding: 10px 0; border-top: 1px solid var(--gx-rule); }
body.g-page-tours .info-item { color: #d4dddd !important; font-weight: 500; }
body.g-page-tours .tour-price { color: var(--gx-metal) !important; font: 600 30px/1 var(--gx-serif) !important; }
body.g-page-tours .tour-book-btn { color: #142126 !important; background: var(--gx-metal) !important; border-radius: 999px; padding: 10px 19px; }
body.g-page-tours .tour-badge { color: #142126 !important; background: var(--gx-metal) !important; border-radius: 999px; }
body.g-page-tours .bottom-cta { background: linear-gradient(180deg, transparent, rgba(5,16,22,.96) 34%) !important; }
body.g-page-tours .cta-btn { background: linear-gradient(110deg, var(--gx-metal), color-mix(in srgb, var(--g-accent) 65%, #143944)) !important; }

@media (max-width: 680px) {
    body.g-page-spa .hero-section { height: min(76svh, 590px); min-height: 430px; margin: 0; border-radius: 0 0 4px 42px; }
    body.g-page-spa .hero-overlay { padding: 28px 22px 122px; }
    body.g-page-spa .hero-title { font-size: clamp(46px, 14vw, 72px); }
    body.g-page-spa .content { padding: 20px 16px 44px; }
    body.g-page-spa .hours-card { margin: 0 0 34px; max-width: none; }
    body.g-page-spa .treatments-grid { grid-template-columns: 1fr; }
    body.g-page-spa .treatment-card { min-height: 200px; }
    body.g-page-tours .header { padding: 20px 16px 14px; }
    body.g-page-tours .filter-tabs { padding: 14px 16px 18px; }
    body.g-page-tours .filter-tab { padding: 10px 16px; font-size: 16px !important; }
    body.g-page-tours .content { padding: 0 14px 50px; }
    body.g-page-tours .featured-tour { min-height: 570px; border-radius: 4px 36px 4px 36px; }
    body.g-page-tours .featured-image { min-height: 0; }
    body.g-page-tours .featured-content { padding: 24px 20px 28px; }
    body.g-page-tours .featured-details { gap: 7px; }
    body.g-page-tours .detail-box { min-width: 0; flex: 1 1 90px; padding: 10px 8px; }
    body.g-page-tours .featured-price { justify-content: space-between; }
    body.g-page-tours .book-btn { width: 100%; }
    body.g-page-tours .tour-card { grid-template-columns: 1fr; min-height: 0; }
    body.g-page-tours .tour-card:nth-child(even) .tour-image { order: 0; }
    body.g-page-tours .tour-image { height: 230px; min-height: 230px; }
    body.g-page-tours .tour-content { padding: 20px; }
}

/* Il flusso ospite usa una sola coppia tipografica: Cormorant per la voce editoriale,
   Geist per lettura, moduli e dati. Le singole schermate conservano composizioni proprie. */
body.g-page-experience :is(h1, h2, h3, .page-title, .section-title, .hero-title, .title, .card-title, .modal-title) { font-family: var(--gx-serif) !important; }

/* Home: foyer editoriale e navigazione dei servizi. */
body.g-page-home .container { max-width: 1160px; padding: 28px clamp(18px, 4vw, 48px) 54px; }
body.g-page-home .top { align-items: end; gap: 18px; margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px solid var(--gx-rule); }
body.g-page-home .hotel-name { color: #c2cdd2; letter-spacing: .18em; }
body.g-page-home .greeting { max-width: 700px; font-size: clamp(40px, 7vw, 72px); font-weight: 500; line-height: .94; letter-spacing: -.035em; }
body.g-page-home .g-lang { margin-left: auto; }
body.g-page-home .points-chip { border-color: rgba(224,198,145,.34); background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.025)); }
body.g-page-home .points-chip svg { color: #d7bd8c; }
body.g-page-home .g-photo-strip { display: flex; margin: 0 0 20px; border-radius: 4px 34px 4px 34px; overflow-x: auto; box-shadow: var(--gx-lift); }
body.g-page-home .g-photo-strip[hidden] { display: none; }
body.g-page-home .ask { min-height: 270px; gap: clamp(18px, 4vw, 46px); padding: clamp(24px, 5vw, 56px); margin: 0 0 18px; border: 1px solid rgba(238,226,198,.28); border-radius: 4px 54px 4px 54px; background: radial-gradient(ellipse at 84% 22%, rgba(190,157,98,.3), transparent 32%), radial-gradient(ellipse at 8% 108%, rgba(32,115,113,.45), transparent 50%), linear-gradient(115deg, #102a31, #0b1d28 68%, #142932); box-shadow: 0 38px 88px -54px #000, inset 0 1px rgba(255,255,255,.12); transition: transform .4s var(--gx-ease), border-color .4s; }
body.g-page-home .ask:hover { transform: translateY(-4px); border-color: rgba(224,198,145,.58); }
body.g-page-home .ask img { width: clamp(76px, 12vw, 128px); height: clamp(76px, 12vw, 128px); padding: 8px; border-radius: 50%; background: radial-gradient(circle, rgba(239,220,174,.26), rgba(255,255,255,.04) 66%); }
body.g-page-home .ask-kicker { color: #dfc99c; font-size: 11px; letter-spacing: .17em; text-transform: uppercase; }
body.g-page-home .ask-title { max-width: 680px; margin: 7px 0 20px; font: 500 clamp(30px, 5vw, 52px)/.98 var(--gx-serif); letter-spacing: -.025em; }
body.g-page-home .ask-input { width: min(100%, 440px); min-height: 48px; border-radius: 2px 18px 2px 18px; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.18); }
body.g-page-home .live { border-color: rgba(224,198,145,.28); background: linear-gradient(100deg, rgba(185,143,69,.15), rgba(255,255,255,.025)); }
body.g-page-home .section-label { margin: 34px 4px 14px; color: #d8c9aa; font: 500 25px/1.1 var(--gx-serif); letter-spacing: 0; }
body.g-page-home .grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-bottom: 28px; }
body.g-page-home .tile { min-height: 158px; padding: 18px; gap: 16px; border-radius: 3px 24px 3px 24px; background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.018) 65%), #10212b; box-shadow: 0 20px 44px -38px #000; transition: transform .32s var(--gx-ease), border-color .32s, background .32s; }
body.g-page-home .tile:hover { transform: translateY(-5px) perspective(700px) rotateX(1deg); border-color: rgba(224,198,145,.42); background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.025) 65%), #122832; }
body.g-page-home .tile-icon { width: 46px; height: 46px; border-radius: 3px 16px 3px 16px; box-shadow: inset 0 1px rgba(255,255,255,.28), 0 10px 22px -16px #000; }
body.g-page-home .tile-title { color: #f4f0e7; font: 600 22px/1.05 var(--gx-serif); }
body.g-page-home .tile-sub { color: #bdc9ce; font-size: 12px; line-height: 1.4; }
body.g-page-home .tile-wide { min-height: 92px; }
body.g-page-home .tile-wide .tile-title { font-size: 23px; }
body.g-page-home .fb-card, body.g-page-home .lv-card, body.g-page-home .weather-container { border-radius: 3px 22px 3px 22px; border-color: var(--gx-rule); background: linear-gradient(145deg, rgba(255,255,255,.055), transparent), #10212b; box-shadow: var(--gx-lift); }

/* Ristorante: dalla foto alla prenotazione, poi un menu leggibile come una carta. */
body.g-page-restaurant .header { padding: 15px max(18px, calc((100% - 1004px) / 2)); }
body.g-page-restaurant .page-title { font-size: clamp(27px, 3vw, 36px); font-weight: 500; line-height: 1; }
body.g-page-restaurant .page-subtitle { font-size: 12px; letter-spacing: .08em; }
body.g-page-restaurant .hero-section {
    height: clamp(340px, 42vw, 500px);
    margin: 0 18px;
    border: 1px solid rgba(236, 241, 237, .16);
    border-radius: 4px 64px 4px 64px;
    isolation: isolate;
    animation: gx-arrive .7s var(--gx-ease) both;
}
body.g-page-restaurant .hero-image { background-color: #18313a !important; }
body.g-page-restaurant .hero-image.has-photo::after {
    background: linear-gradient(0deg, rgba(3, 13, 19, .48), transparent 48%);
}
body.g-page-restaurant .content {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 18px 20px;
    padding: 28px 22px 72px;
}
body.g-page-restaurant .status-card,
body.g-page-restaurant .tb-card {
    min-width: 0;
    min-height: 156px;
    margin: 0;
    padding: 24px;
    border: 1px solid var(--gx-rule) !important;
    border-radius: 3px 28px 3px 28px;
    background: linear-gradient(145deg, rgba(255,255,255,.055), transparent 65%), #122630 !important;
    box-shadow: var(--gx-lift);
}
body.g-page-restaurant .status-row { margin-bottom: 12px; }
body.g-page-restaurant .status-label { font-size: 15px; }
body.g-page-restaurant .status-value { font-size: 15px; }
body.g-page-restaurant .status-badge { border-radius: 999px; box-shadow: none; }
body.g-page-restaurant .tb-card { gap: 16px; }
body.g-page-restaurant .tb-icon {
    width: 56px; height: 56px; border-radius: 3px 18px 3px 18px;
    background: linear-gradient(135deg, var(--gx-metal), color-mix(in srgb, var(--g-accent) 70%, #1d4754)) !important;
    color: #0b1d28;
}
body.g-page-restaurant .tb-title { font: 600 clamp(24px, 2.5vw, 30px)/1 var(--gx-serif); color: #f7f3e9; }
body.g-page-restaurant .tb-open {
    padding: 12px 18px; border-radius: 999px;
    background: var(--gx-metal); color: #10232a;
    box-shadow: 0 12px 30px -20px #000;
}
body.g-page-restaurant .special-offer {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) minmax(190px, .65fr);
    grid-template-areas: "icon badge action" "icon title action" "icon desc action";
    gap: 7px 22px;
    align-items: center;
    margin: 0;
    padding: 28px 34px;
    text-align: left;
    border: 1px solid rgba(227, 205, 161, .32) !important;
    border-radius: 4px 44px 4px 44px;
    background: radial-gradient(circle at 85% 10%, rgba(173, 140, 86, .17), transparent 40%), linear-gradient(110deg, #17343c, #10232d 65%, #0c1b24) !important;
    box-shadow: 0 28px 60px -44px #000 !important;
    transform: none;
}
body.g-page-restaurant .special-offer:hover { transform: translateY(-3px); }
body.g-page-restaurant .offer-badge {
    grid-area: badge; position: static; justify-self: start; z-index: auto;
    padding: 0; border-radius: 0; box-shadow: none;
    background: none; color: var(--gx-metal);
    font-size: 11px; letter-spacing: .16em;
}
body.g-page-restaurant .offer-icon {
    grid-area: icon; align-self: start; width: 60px; height: 60px;
    border: 1px solid rgba(231, 221, 199, .25); border-radius: 3px 22px 3px 22px;
    background: rgba(235, 220, 186, .09); color: var(--gx-metal);
    font-size: 30px; animation: none; filter: none;
}
body.g-page-restaurant .offer-title {
    grid-area: title; justify-content: start; margin: 0;
    font: 500 clamp(29px, 3vw, 40px)/.98 var(--gx-serif);
    color: #f7f3e9 !important;
}
body.g-page-restaurant .offer-description {
    grid-area: desc; max-width: 570px; margin: 0;
    color: #cbd6d8 !important; font-size: 14px; font-weight: 400; line-height: 1.55;
}
body.g-page-restaurant .special-offer .book-btn {
    grid-area: action; width: 100%; padding: 15px 18px;
    border-radius: 3px 18px 3px 18px;
    color: #10232a !important; background: var(--gx-metal) !important;
    font-size: 14px; font-weight: 700; letter-spacing: 0;
    box-shadow: 0 18px 36px -22px #000 !important;
}
body.g-page-restaurant .menu-section { grid-column: 1 / -1; margin: 18px 0 0; }
body.g-page-restaurant .menu-section > .section-title { margin: 0 0 18px; font-size: clamp(30px, 4vw, 42px); font-weight: 500; }
body.g-page-restaurant .menu-category {
    margin: 0; padding: 22px 0 10px;
    border: 0; border-top: 1px solid rgba(235, 224, 201, .28);
    border-radius: 0; background: none; box-shadow: none; backdrop-filter: none;
}
body.g-page-restaurant .category-header {
    margin: 0 0 8px; color: var(--gx-metal);
    font: 600 27px/1 var(--gx-serif); text-shadow: none;
}
body.g-page-restaurant .menu-item {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px; align-items: start; margin: 0; padding: 14px 0;
    border: 0 !important; border-bottom: 1px solid rgba(231, 240, 244, .12) !important;
    border-radius: 0 !important; background: none !important; box-shadow: none !important;
}
body.g-page-restaurant .menu-item:last-child { border-bottom: 0 !important; }
body.g-page-restaurant .item-name { margin: 0 0 4px; color: #f6f4ef; font-size: 16px; font-weight: 600; text-shadow: none; }
body.g-page-restaurant .item-description { color: #bfcdd1; font-size: 13px; font-weight: 400; text-shadow: none; }
body.g-page-restaurant .item-price { margin: 0; color: #ead9b7; font: 600 23px/1 var(--gx-serif); text-shadow: none; white-space: nowrap; }
body.g-page-restaurant .bottom-cta { background: linear-gradient(180deg, transparent, rgba(5, 16, 22, .97) 34%) !important; }
body.g-page-restaurant .cta-btn { color: #10232a !important; background: var(--gx-metal) !important; text-shadow: none; border-radius: 3px 18px 3px 18px; }
body.g-page-restaurant .booking-modal { background: rgba(2, 9, 14, .82); }
body.g-page-restaurant .booking-modal .modal-content { border-radius: 4px 30px 4px 30px; }
body.g-page-restaurant .booking-modal .modal-title { font-size: 30px; font-weight: 500; }
body.g-page-restaurant .booking-modal :is(.booking-step > div[style], .payment-method-selector > div[style], .price-row, .price-breakdown > div[style]) { color: #e4e9e8 !important; }
body.g-page-restaurant .booking-modal .price-breakdown { background: rgba(255,255,255,.055); border: 1px solid var(--gx-rule); }
body.g-page-restaurant .booking-modal .tb-chip[aria-pressed="true"] {
    color: #10232a; background: var(--gx-metal); border-color: var(--gx-metal);
}
body.g-page-restaurant .booking-modal .tb-chip[aria-pressed="true"] small { color: #28424a; }
body.g-page-restaurant .booking-modal .btn-book,
body.g-page-restaurant .booking-modal .tb-submit:not(:disabled) { background: var(--gx-metal); color: #10232a; box-shadow: none; }
body.g-page-restaurant .booking-modal .tb-submit:disabled { background: #415861; color: #d9e1e2; }

@media (max-width: 680px) {
    body.g-page-restaurant .header { padding: 14px 16px; }
    body.g-page-restaurant .page-title { font-size: 26px; }
    body.g-page-restaurant .hero-section { height: clamp(280px, 72vw, 360px); margin: 0 10px; border-radius: 3px 36px 3px 36px; }
    body.g-page-restaurant .content { display: block; padding: 18px 16px 116px; }
    body.g-page-restaurant .status-card, body.g-page-restaurant .tb-card { min-height: 0; margin: 0 0 14px; padding: 20px; }
    body.g-page-restaurant .tb-card { gap: 10px; }
    body.g-page-restaurant .tb-icon { width: 44px; height: 44px; font-size: 21px; }
    body.g-page-restaurant .tb-title { font-size: 24px; }
    body.g-page-restaurant .tb-open { padding: 11px 13px; }
    body.g-page-restaurant .special-offer {
        grid-template-columns: 50px minmax(0, 1fr);
        grid-template-areas: "icon badge" "icon title" "desc desc" "action action";
        gap: 10px 13px; padding: 22px; border-radius: 4px 32px 4px 32px;
    }
    body.g-page-restaurant .offer-icon { width: 46px; height: 46px; font-size: 22px; }
    body.g-page-restaurant .offer-title { font-size: 31px; }
    body.g-page-restaurant .offer-description { padding-top: 6px; }
    body.g-page-restaurant .special-offer .book-btn { margin-top: 8px; padding: 14px; }
    body.g-page-restaurant .menu-section { margin-top: 32px; }
    body.g-page-restaurant .menu-section > .section-title { font-size: 34px; }
    body.g-page-restaurant .category-header { font-size: 26px; }
    body.g-page-restaurant .item-price { font-size: 21px; }
}
body.g-page-home #fbComment { color: #fff; background: #0c1b24; border-color: var(--gx-rule); }

/* Animazione: programma del giorno come palinsesto, separato dalle schede. */
body.g-page-animation { padding-bottom: 72px; }
body.g-page-animation .container { max-width: 1020px; padding: 22px clamp(14px, 3vw, 34px) 70px; }
body.g-page-animation .header { position: sticky; top: 0; margin: 0 calc(-1 * clamp(14px, 3vw, 34px)) 18px; padding: 14px clamp(14px, 3vw, 34px); }
body.g-page-animation .back-btn { color: #fff; border: 1px solid var(--gx-rule) !important; background: rgba(255,255,255,.06) !important; }
body.g-page-animation .page-title { font: 500 28px/1 var(--gx-serif); }
body.g-page-animation .hero-section { position: relative; display: flex; min-height: clamp(330px, 44vw, 500px); flex-direction: column; justify-content: end; align-items: flex-start; overflow: hidden; isolation: isolate; padding: clamp(24px, 6vw, 64px); margin: 0 0 18px; text-align: left; border: 1px solid var(--gx-rule); border-radius: 4px 58px 4px 58px; background-color: #102630; background-size: cover; background-position: center; box-shadow: 0 40px 82px -52px #000; animation: gx-arrive .75s var(--gx-ease) both; }
body.g-page-animation .hero-section::before { content: ""; position: absolute; inset: 0; z-index: 0; background: radial-gradient(ellipse at 88% 12%, rgba(217,191,140,.24), transparent 29%), linear-gradient(90deg, rgba(4,14,20,.8), rgba(4,14,20,.15) 86%), linear-gradient(0deg, rgba(4,14,20,.82), transparent 74%); }
body.g-page-animation .hero-section > * { position: relative; z-index: 1; }
body.g-page-animation .hero-icon { color: #e2c996; font-size: 44px; margin: 0 0 20px; }
body.g-page-animation .hero-icon .g-ico { width: 40px; height: 40px; }
body.g-page-animation .hero-title { max-width: 700px; font: 500 clamp(40px, 7vw, 76px)/.92 var(--gx-serif); }
body.g-page-animation .hero-subtitle { max-width: 580px; color: #e0e5e5; font-size: 15px; line-height: 1.6; font-weight: 400; }
body.g-page-animation .today-events, body.g-page-animation .team-section { padding: clamp(20px, 4vw, 34px); border: 1px solid var(--gx-rule); border-radius: 3px 34px 3px 34px; background: linear-gradient(145deg, rgba(255,255,255,.05), transparent 44%), #0e202a; box-shadow: var(--gx-lift); }
body.g-page-animation .section-title, body.g-page-animation .team-header-title { color: #f5f2e9; font: 500 clamp(28px, 4vw, 40px)/1 var(--gx-serif); }
body.g-page-animation .event-item { position: relative; margin: 0; padding: 16px 4px; border-radius: 0; border-bottom: 1px solid var(--gx-rule); background: transparent; }
body.g-page-animation .event-item.current { border: 1px solid rgba(222,195,144,.44); border-radius: 2px 18px 2px 18px; padding: 16px; background: linear-gradient(100deg, rgba(193,157,95,.15), rgba(255,255,255,.02)); animation: none; }
body.g-page-animation .event-time { min-width: 90px; text-align: center; border: 1px solid rgba(224,198,145,.42); border-radius: 2px 14px 2px 14px; color: #f1dfb8; background: rgba(203,168,106,.1); }
body.g-page-animation .event-name, body.g-page-animation .activity-name { color: #f7f4ed; font: 600 22px/1.05 var(--gx-serif); }
body.g-page-animation .event-desc, body.g-page-animation .team-role, body.g-page-animation .activity-desc { color: #bdc9ce; font-weight: 400; }
body.g-page-animation .sections-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin: 20px 0; }
body.g-page-animation .section-card, body.g-page-animation .activity-card { min-width: 0; padding: 22px; text-align: left; border: 1px solid var(--gx-rule); border-radius: 3px 22px 3px 22px; background: linear-gradient(145deg, rgba(255,255,255,.055), transparent), #10212b; transition: transform .3s var(--gx-ease), border-color .3s; }
body.g-page-animation .section-card:hover, body.g-page-animation .activity-card:hover { transform: translateY(-4px); border-color: rgba(224,198,145,.4); }
body.g-page-animation .section-icon { color: #d6bd8b; font-size: 36px; margin: 0 0 16px; }
body.g-page-animation .section-name { color: #f4f0e7; font: 600 23px/1.05 var(--gx-serif); }
body.g-page-animation .section-desc, body.g-page-animation .activity-time { color: #bdc9ce; font-weight: 400; }
body.g-page-animation .team-grid { grid-template-columns: repeat(auto-fit, minmax(190px,1fr)); }
body.g-page-animation .team-card { text-align: left; border: 1px solid var(--gx-rule); border-radius: 3px 20px 3px 20px; background: rgba(255,255,255,.035); }
body.g-page-animation .team-icon { font-size: 40px; }
body.g-page-animation .team-name { color: #f4f0e7; font: 600 22px/1 var(--gx-serif); }
body.g-page-animation .detail-header { padding: clamp(25px,5vw,50px); border: 1px solid var(--gx-rule); border-radius: 4px 42px 4px 42px; background: radial-gradient(circle at 88% 10%, rgba(201,168,107,.2), transparent 34%), #10232e; }
body.g-page-animation .detail-title { color: #f5f2e9; font: 500 clamp(34px,6vw,58px)/.95 var(--gx-serif); }
body.g-page-animation .detail-subtitle { color: #c3cdd2; font-weight: 400; }

/* Conferma pagamento in linea con la stessa palette, senza il verde acceso del tema precedente. */
body.g-page-success { display: flex; align-items: center; justify-content: center; padding: 28px 18px; }
body.g-page-success .success-container { max-width: 620px; padding: clamp(28px, 6vw, 56px); border: 1px solid rgba(255,255,255,.58); border-radius: 4px 42px 4px 42px; color: #172b32; background: var(--gx-paper); box-shadow: 0 42px 100px -52px #000; }
body.g-page-success .success-icon { display: grid; place-items: center; width: 88px; height: 88px; margin: 0 auto 20px; border: 1px solid rgba(23,74,61,.16); border-radius: 50%; color: #236b54; background: #e1eee4; font-size: 60px; animation: none; }
body.g-page-success .success-icon .g-ico { width: 48px; height: 48px; }
body.g-page-success h1 { color: #173c35; font: 500 clamp(36px, 6vw, 56px)/.98 var(--gx-serif); text-shadow: none; }
body.g-page-success .subtitle { color: #53666a; font-size: 16px; font-weight: 400; }
body.g-page-success .booking-details { padding: 14px 20px; border: 1px solid rgba(23,74,61,.17); border-radius: 3px 20px 3px 20px; background: #ebe9df; }
body.g-page-success .detail-row { gap: 14px; border-color: rgba(23,43,50,.12); }
body.g-page-success .detail-label { color: #53666a; }
body.g-page-success .detail-value { color: #172b32; }
body.g-page-success .booking-ref { color: #173c35; font: 600 23px/1.1 var(--g-font); letter-spacing: .09em; }
body.g-page-success .info-box { border: 1px solid rgba(23,74,61,.18); border-radius: 3px 20px 3px 20px; background: #e8ede6; }
body.g-page-success .info-box h3 { color: #173c35; font: 600 22px/1 var(--gx-serif); }
body.g-page-success .info-box p { color: #405258; font-weight: 400; }
body.g-page-success .btn { min-height: 54px; border-radius: 2px 18px 2px 18px; font-weight: 600; }
body.g-page-success .btn-primary { color: #fff !important; background: #173c35 !important; box-shadow: 0 12px 26px -18px #173c35 !important; }
body.g-page-success .btn-primary:hover { background: #205447 !important; }
body.g-page-success .btn-secondary { color: #183139 !important; background: rgba(255,255,255,.56) !important; }

/* Pagine di servizio: stessa tipografia, composizioni proprie e lettura ad alto contrasto. */
body.g-page-theme-selection .wrap { max-width: 760px; padding-top: 40px; }
body.g-page-theme-selection h1 { font: 500 clamp(34px,6vw,52px)/1 var(--gx-serif); }
body.g-page-theme-selection .card { border-radius: 3px 20px 3px 20px; background: linear-gradient(145deg, rgba(255,255,255,.06), transparent), #10212b; }
body.g-page-theme-selection .card[aria-pressed="true"] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--g-accent) 40%, transparent); }
body.g-page-theme-selection .go { border-radius: 2px 18px 2px 18px; box-shadow: 0 20px 40px -24px color-mix(in srgb, var(--g-accent) 55%, #000); }
body.g-page-theme-selection .wrap { padding: clamp(28px, 5vw, 52px) 18px 160px; }
body.g-page-theme-selection .g-lang { float: none !important; display: block; margin: 0 0 34px auto; }
body.g-page-theme-selection h1 { max-width: 670px; margin-bottom: 12px; font: 500 clamp(43px, 6vw, 64px)/.94 var(--gx-serif); letter-spacing: -.035em; }
body.g-page-theme-selection .sub { max-width: 600px; margin-bottom: 28px; color: #c9d4d5 !important; font-size: 15px; line-height: 1.55; }
body.g-page-theme-selection .grid { gap: 14px; }
body.g-page-theme-selection .card {
    position: relative; min-width: 0; padding: 15px; border: 1px solid rgba(225,238,238,.23) !important;
    border-radius: 3px 24px 3px 24px !important; background: #10232d !important;
    transition: transform .25s var(--gx-ease), border-color .25s var(--gx-ease), background .25s var(--gx-ease);
}
body.g-page-theme-selection .card:hover { transform: translateY(-3px); border-color: rgba(225,238,238,.55) !important; }
body.g-page-theme-selection .card:focus-visible { outline: 3px solid #a9ced0; outline-offset: 3px; }
body.g-page-theme-selection .sw { height: 56px; border-radius: 2px 16px 2px 16px; margin-bottom: 12px; }
body.g-page-theme-selection .name { color: #f4f1e9; font: 600 26px/1 var(--gx-serif); }
body.g-page-theme-selection .desc { margin-top: 4px; color: #c8d3d6; font-size: 13px; line-height: 1.35; }
body.g-page-theme-selection .card[aria-pressed="true"] {
    border-color: #d8e0d7 !important; background: var(--gx-paper) !important;
    box-shadow: 0 20px 44px -28px #000, inset 0 0 0 1px rgba(255,255,255,.8) !important;
}
body.g-page-theme-selection .card[aria-pressed="true"] .name { color: #173c35; }
body.g-page-theme-selection .card[aria-pressed="true"] .desc { color: #4c6062; }
body.g-page-theme-selection .card[aria-pressed="true"]::after {
    content: "✓"; position: absolute; top: 24px; right: 25px; display: grid; place-items: center;
    width: 27px; height: 27px; border-radius: 50%; color: #f5f2e9; background: #173c35; font: 700 15px var(--g-font);
}
body.g-page-theme-selection .go {
    bottom: calc(18px + env(safe-area-inset-bottom)); min-height: 56px; border: 1px solid rgba(19,54,59,.22) !important;
    border-radius: 3px 18px 3px 18px !important; color: #102630 !important;
    background: linear-gradient(110deg, #eadfc1, #b9d7d7 62%, #8ebeca) !important;
    box-shadow: 0 22px 45px -25px #000 !important;
}
@media (max-width: 520px) {
    body.g-page-theme-selection .wrap { padding-top: 22px; padding-bottom: 145px; }
    body.g-page-theme-selection .g-lang { margin-bottom: 30px; }
    body.g-page-theme-selection h1 { font-size: 44px; }
    body.g-page-theme-selection .sub { margin-bottom: 23px; }
    body.g-page-theme-selection .grid { grid-template-columns: 1fr; gap: 10px; }
    body.g-page-theme-selection .card {
        display: grid; grid-template-columns: 74px minmax(0,1fr); grid-template-rows: auto auto;
        align-content: center; column-gap: 15px; min-height: 88px; padding: 11px 14px;
    }
    body.g-page-theme-selection .sw { grid-row: 1 / 3; width: 74px; height: 64px; margin: 0; }
    body.g-page-theme-selection .name { align-self: end; font-size: 23px; }
    body.g-page-theme-selection .desc { align-self: start; }
    body.g-page-theme-selection .card[aria-pressed="true"]::after { top: 16px; right: 17px; width: 23px; height: 23px; }
}
body.g-page-privacy .container { max-width: 860px; }
body.g-page-privacy .content { padding: 24px clamp(14px,4vw,36px) 56px; }
body.g-page-privacy .card { color: #24373d; background: var(--gx-paper); border: 1px solid rgba(255,255,255,.6); border-radius: 3px 24px 3px 24px; box-shadow: 0 24px 55px -42px #000; }
body.g-page-privacy .card h2 { color: #173c35; font: 600 27px/1.08 var(--gx-serif); }
body.g-page-privacy .card h3 { color: #20474a; font: 600 22px/1.1 var(--gx-serif); }
body.g-page-privacy .card :is(p, li, td) { color: #405258; line-height: 1.65; }
body.g-page-offline { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 100vh; padding: 30px 20px; text-align: center; }
body.g-page-offline .icon { display: grid; place-items: center; width: 88px; height: 88px; margin: 0; border: 1px solid rgba(224,198,145,.35); border-radius: 50%; color: #dfc99c; background: rgba(255,255,255,.045); }
body.g-page-offline h1 { color: #f4f0e7; font: 500 clamp(38px,7vw,60px)/1 var(--gx-serif); }
body.g-page-offline p { max-width: 510px; color: #c1cbd2; font-size: 16px; line-height: 1.55; }
body.g-page-offline button { min-height: 48px; padding: 12px 24px !important; border: 1px solid rgba(255,255,255,.14) !important; border-radius: 2px 18px 2px 18px !important; background: #173c35 !important; }

@media (max-width: 760px) {
    body.g-page-home .container { padding: 20px 16px 44px; }
    body.g-page-home .top { flex-wrap: wrap; align-items: center; }
    body.g-page-home .top > div:first-child { flex: 1 1 100%; }
    body.g-page-home .g-lang { margin-left: 0; }
    body.g-page-home .grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
    body.g-page-home .tile { min-height: 138px; padding: 15px; }
    body.g-page-home .tile-title { font-size: 20px; }
    body.g-page-home .ask { min-height: 235px; border-radius: 3px 34px 3px 34px; }
    body.g-page-animation .sections-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    body.g-page-animation .hero-section { min-height: 390px; border-radius: 3px 38px 3px 38px; }
}
@media (max-width: 480px) {
    body.g-page-home .points-chip { margin-left: auto; }
    body.g-page-home .ask { align-items: flex-start; }
    body.g-page-home .ask img { width: 68px; height: 68px; }
    body.g-page-home .ask-title { font-size: 31px; }
    body.g-page-home .tile-wide { grid-column: span 2; }
    body.g-page-animation .event-item { align-items: flex-start; gap: 10px; }
    body.g-page-animation .event-time { min-width: 72px; padding: 7px 6px; font-size: 12px; }
    body.g-page-success .success-container { padding: 28px 20px; }
    body.g-page-success .detail-row { align-items: flex-start; flex-direction: column; gap: 4px; }
}

/* Coerenza delle schermate ospite riscontrata sul sito pubblico a 390 px. */
body.g-page-experience .g-nav {
    padding-bottom: 21px;
    background: rgba(8, 25, 35, .94);
    border-color: rgba(224, 237, 237, .24);
    box-shadow: 0 18px 45px -22px #000;
}
body.g-page-experience .g-nav a { color: #b9c9ce; }
body.g-page-experience .g-nav a[aria-current="page"] {
    color: #f5f2e9;
    background: linear-gradient(135deg, color-mix(in srgb, var(--g-accent) 28%, #12313a), #17313b);
    box-shadow: inset 0 0 0 1px rgba(238, 242, 231, .25);
}
body.g-page-experience .g-nav-foot { bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 501; }
body.g-page-experience .g-nav-foot a { color: #d4e0e0; font-size: 11px; }

body.g-page-login .login-card { color: #172a32; background: #f5f2e9; border: 1px solid rgba(255,255,255,.55); border-radius: 4px 32px 4px 32px; backdrop-filter: none; box-shadow: 0 30px 80px -44px #000; }
body.g-page-login .welcome-title { color: #102630; font: 600 42px/1 var(--gx-serif); text-shadow: none; }
body.g-page-login .welcome-subtitle, body.g-page-login .form-label, body.g-page-login .help-text { color: #344b52; text-shadow: none; }
body.g-page-login .privacy-consent { background: #e6ece7; border: 1px solid #c5d3cf; border-radius: 4px 16px 4px 16px; }
body.g-page-login .privacy-consent label, body.g-page-login .privacy-consent a { color: #29434b; text-shadow: none; }
body.g-page-login .toggle-link { color: #175363; }
body.g-page-login .login-btn { color: #102630; background: linear-gradient(115deg, #e9dfc5, #b8d7d9 60%, #88baca); border: 1px solid rgba(18,48,57,.14); border-radius: 3px 18px 3px 18px; font: 700 16px var(--g-font); text-shadow: none; box-shadow: 0 18px 30px -23px #173943; }
body.g-page-login .login-btn:hover { background: linear-gradient(115deg, #f0e6cc, #c6e0e2 60%, #99c6d1); }
body.g-page-login .security-notice { color: #234637; background: #e4eee6; border: 1px solid #bdd6c6; }
body.g-page-login .security-title, body.g-page-login .security-text { color: #244838; text-shadow: none; }
body.g-page-login .modal-content { color: #172a32 !important; background: #f5f2e9 !important; border: 1px solid #d5dfd7 !important; border-radius: 4px 28px 4px 28px; backdrop-filter: none; }
body.g-page-login .modal-title { color: #102630 !important; font: 600 36px/1 var(--gx-serif); text-shadow: none; }
body.g-page-login .modal-subtitle { color: #50666a !important; text-shadow: none; }
body.g-page-login .modal-content :is(.duration-days, .duration-label, .form-label, .modal-warning span) { color: #17323a !important; }
body.g-page-login .duration-btn, body.g-page-login .modal-btn { color: #17323a; background: #e6ece7; border: 1px solid #c5d3cf; text-shadow: none; }
body.g-page-login .duration-btn.selected, body.g-page-login .modal-btn.primary { color: #102630; background: #b8d7d9; border-color: #8db9bf; box-shadow: none; }
body.g-page-login .modal-warning { color: #65471d; background: #f4e8cf; border: 1px solid #dbc390; text-shadow: none; }

body.g-page-cart { color: #f5f2e9 !important; background: radial-gradient(45rem 30rem at 100% 0%, color-mix(in srgb, var(--g-accent) 17%, transparent), transparent 72%), #08131d !important; }
body.g-page-cart .head { border-color: rgba(226, 238, 237, .22); }
body.g-page-cart .head h1, body.g-page-cart .head a { color: #f5f2e9; }

body.g-page-lastminute .offer-card .offer-title { color: #f5f2e9 !important; font: 600 27px/1.05 var(--gx-serif) !important; }
body.g-page-lastminute .offer-card .offer-description { color: #d2dce0 !important; font-size: 14px; }
body.g-page-lastminute .offer-card .offer-type { color: #dce8e7 !important; background: rgba(255,255,255,.08) !important; }
body.g-page-lastminute .offer-card .countdown-label,
body.g-page-lastminute .offer-card .slots-text { color: #efd4a7 !important; }
body.g-page-lastminute .offer-card .countdown-timer { color: #f5f2e9 !important; }

body.g-page-account .stats-card .stat-value {
    color: #f5f2e9 !important;
    background: none !important;
    -webkit-text-fill-color: #f5f2e9 !important;
    font: 600 34px/1 var(--gx-serif) !important;
}
body.g-page-account .stats-card .stat-label { color: #d3dde0 !important; }

body.g-page-rewards .rewards-header-title { color: #f5f2e9; font: 600 27px/1 var(--gx-serif); }
body.g-page-rewards .rewards-header-subtitle { color: #c2cfd3; font-size: 12px; }
body.g-page-rewards .reward-header { align-items: flex-start; }
body.g-page-rewards .reward-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; color: #e5d1a6; background: rgba(255,255,255,.07); border: 1px solid var(--gx-rule); border-radius: 4px 17px 4px 17px; font-size: 26px; }
body.g-page-rewards .reward-icon svg { width: 25px; height: 25px; }
body.g-page-rewards .reward-info { min-width: 0; }
body.g-page-rewards .reward-name { color: #f5f2e9; font: 600 23px/1.07 var(--gx-serif); }

@media (max-width: 480px) {
    body.g-page-chat .chat-header { gap: 8px; padding: 11px 14px; }
    body.g-page-chat .header-avatar { width: 38px; height: 38px; flex: 0 0 38px; }
    body.g-page-chat .header-info { min-width: 0; }
    body.g-page-chat .header-name { font-size: 15px; line-height: 1.1; }
    body.g-page-chat .header-status { font-size: 11px; line-height: 1.15; }
    body.g-page-chat .chat-header .g-lang { width: 78px; min-width: 78px; padding-inline: 8px; font-size: 11px; }
}
