:root {
    --hotel-navy: #10233f;
    --hotel-blue: #1c4c73;
    --hotel-gold: #e7b84b;
    --hotel-cream: #f7f3eb;
}

body { color: var(--hotel-navy); }

.public-skip-link {
    position: fixed;
    top: .5rem;
    left: .5rem;
    z-index: 2000;
    padding: .7rem 1rem;
    border: 3px solid #10233f;
    border-radius: .4rem;
    color: #10233f;
    background: #fff;
    font-weight: 700;
    transform: translateY(-150%);
}
.public-skip-link:focus { transform: translateY(0); }
:where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 3px solid #ffca3a !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #10233f !important;
}
.public-global-notice { position: fixed; top: 5rem; left: 50%; z-index: 1090; width: min(42rem, calc(100% - 2rem)); transform: translateX(-50%); }
@media (max-width: 575.98px) { .btn, .form-control, .form-select { min-height: 44px; } }
@media print { .public-skip-link, .public-global-notice { display: none !important; } }

:root{--public-surface:#fff;--public-surface-soft:#f6f8fb;--public-text:#10213b;--public-muted:#667085;--public-border:#d8dee9;--public-focus:#ffbf3f}[data-theme=dark]{color-scheme:dark;--public-surface:#151d2b;--public-surface-soft:#0d1420;--public-text:#f5f7fb;--public-muted:#b7c0ce;--public-border:#3a4658;--bs-body-bg:#0d1420;--bs-body-color:#f5f7fb}[data-theme=dark] body{background:var(--public-surface-soft);color:var(--public-text)}[data-theme=dark] .footer,[data-theme=dark] .card,[data-theme=dark] .modal-content{background:var(--public-surface);color:var(--public-text)}[data-theme=dark] .form-control,[data-theme=dark] .form-select{background:#0f1724;border-color:var(--public-border);color:var(--public-text)}[data-theme=dark] .text-muted{color:var(--public-muted)!important}
.public-auth-shell{width:min(100%,34rem);margin:0 auto;padding:6rem 1rem 3rem}.public-auth-card{background:var(--public-surface);color:var(--public-text);border:1px solid var(--public-border);border-radius:1.25rem;padding:clamp(1.25rem,4vw,2.5rem);box-shadow:0 1.5rem 4rem rgba(15,23,42,.22);text-align:left}.public-auth-heading{text-align:center;margin-bottom:1.5rem}.public-auth-heading h1{font-size:clamp(1.75rem,5vw,2.35rem);margin:.35rem 0}.public-auth-heading p,.public-auth-footer{color:var(--public-muted)}.public-auth-form{display:grid;gap:1.1rem}.public-password-field{display:grid;grid-template-columns:1fr auto}.public-password-field .form-control{border-radius:.5rem 0 0 .5rem}.public-password-field .btn{border-radius:0 .5rem .5rem 0}.public-auth-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;font-size:.85rem}.public-auth-footer .btn{white-space:nowrap}.public-auth-card :focus-visible{outline:3px solid var(--public-focus);outline-offset:2px}@media(max-width:575.98px){.public-auth-shell{padding-top:4.5rem}.public-auth-footer{align-items:flex-start;flex-direction:column}}
.public-reservation-shell{padding-top:8rem;padding-bottom:4rem;color:var(--public-text)}.public-reservation-header{max-width:48rem;margin-bottom:2rem}.public-reservation-header h1{font-size:clamp(2rem,5vw,3.2rem);margin:.35rem 0}.public-reservation-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(18rem,.8fr);gap:1.5rem;align-items:start}.public-booking-card,.public-booking-summary{background:var(--public-surface);border:1px solid var(--public-border);border-radius:1rem;padding:clamp(1.25rem,3vw,2rem);box-shadow:0 1rem 2.5rem rgba(15,23,42,.08)}.public-booking-summary{position:sticky;top:6rem}.public-booking-summary dl{display:grid;gap:.75rem;margin:1.25rem 0}.public-booking-summary dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--public-border);padding-bottom:.65rem}.public-booking-summary dt{color:var(--public-muted)}.public-booking-summary dd{font-weight:700;text-align:right;margin:0}.public-booking-summary .public-total{font-size:1.35rem;color:#b77900}[data-theme=dark] .public-booking-summary .public-total{color:#f7c66b}@media(max-width:991.98px){.public-reservation-grid{grid-template-columns:1fr}.public-booking-summary{position:static;order:-1}}@media(max-width:575.98px){.public-reservation-shell{padding-top:6rem}.public-booking-card,.public-booking-summary{border-radius:.75rem;padding:1rem}}

#mainNav { background: rgba(8, 24, 43, .88); backdrop-filter: blur(10px); }
#mainNav .navbar-brand { color: #fff; font-weight: 700; letter-spacing: .03em; }
#mainNav .navbar-brand::before { content: "◆"; color: var(--hotel-gold); margin-right: .55rem; }
#mainNav .nav-link { font-size: .78rem; letter-spacing: .08em; }

header.masthead {
    min-height: 760px;
    display: flex;
    align-items: center;
    padding: 10rem 0 12rem;
    background-image: linear-gradient(90deg, rgba(7, 22, 39, .9), rgba(7, 22, 39, .48), rgba(7, 22, 39, .7)), url("../assets/img/header-bg.jpg");
    background-position: center;
    background-size: cover;
    text-align: left;
}

header.masthead .container { max-width: 1180px; }
.hero-kicker, .eyebrow { color: var(--hotel-gold); font: 700 .78rem/1.4 Montserrat, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
header.masthead .masthead-heading { max-width: 820px; margin: 1rem 0; font-size: clamp(3rem, 7vw, 6rem); line-height: .98; text-transform: none; }
.hero-copy { max-width: 650px; color: rgba(255,255,255,.85); font-size: 1.2rem; line-height: 1.8; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.btn-primary { color: var(--hotel-navy); background: var(--hotel-gold); border-color: var(--hotel-gold); }
.btn-primary:hover { color: #fff; background: #c9972f; border-color: #c9972f; }

.availability-wrap { position: relative; z-index: 3; margin-top: -105px; scroll-margin-top: 90px; }
.availability-card { border-radius: 1.25rem; box-shadow: 0 24px 60px rgba(10, 34, 60, .18); }
.availability-heading { margin-bottom: 1.5rem; }
.availability-heading h2 { margin: .35rem 0; font-size: 1.8rem; }
.availability-heading p { margin: 0; color: #738095; }
.availability-card .form-label { font-family: Montserrat, sans-serif; font-weight: 700; }
.availability-card .form-control { min-height: 54px; border-color: #d8dee8; }

.experience-section { padding-top: 8rem; background: linear-gradient(180deg, #fff, var(--hotel-cream)); }
.experience-section .section-heading { margin: .75rem 0 1.25rem; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.1; text-transform: none; }
.experience-card { height: 100%; padding: 1.75rem; background: #fff; border: 1px solid #e5e8ed; border-radius: 1rem; box-shadow: 0 12px 30px rgba(16,35,63,.08); }
.experience-card.featured { color: #fff; background: var(--hotel-blue); transform: translateY(-12px); }
.experience-card i { margin-bottom: 1rem; color: var(--hotel-gold); font-size: 1.7rem; }
.experience-card h3 { font-size: 1rem; }
.experience-card p { margin: 0; color: #778195; font-size: .9rem; line-height: 1.7; }
.experience-card.featured p { color: rgba(255,255,255,.75); }

#portfolio .portfolio-item { overflow: hidden; border-radius: 1rem; box-shadow: 0 12px 35px rgba(16,35,63,.1); }
#portfolio .portfolio-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

@media (max-width: 767.98px) {
    header.masthead { min-height: 680px; padding: 9rem 0 10rem; text-align: center; }
    .hero-copy { margin-inline: auto; }
    .hero-actions { justify-content: center; }
    .availability-wrap { margin-top: -70px; }
    .experience-card.featured { transform: none; }
}
.public-contact-card{padding:2rem;border:1px solid rgba(255,255,255,.24);border-radius:1rem;background:rgba(4,18,38,.72)}
.public-contact-card i{font-size:1.75rem;color:#f0b83f;margin-bottom:1rem}.public-contact-card h3{font-size:1.25rem}.public-contact-card p{color:#d8e0eb}

.public-availability-shell{padding-top:8rem;padding-bottom:4rem;color:var(--public-text)}
.public-date-panel{display:grid;grid-template-columns:minmax(12rem,.6fr) minmax(0,1.4fr);gap:2rem;align-items:end;margin-bottom:3rem;padding:clamp(1.25rem,3vw,2rem);background:var(--public-surface);border:1px solid var(--public-border);border-radius:1rem;box-shadow:0 1rem 2.5rem rgba(15,23,42,.08)}
.public-date-panel h2,.public-section-heading h2{margin:.25rem 0 0;font-size:clamp(1.45rem,3vw,2rem)}
.public-date-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:1rem;align-items:end}
.public-date-form .form-control{min-height:50px}
.public-date-form .btn{min-height:50px;white-space:nowrap}
.public-section-heading{margin-bottom:1.25rem}
.public-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.public-room-card{overflow:hidden;background:var(--public-surface);border:1px solid var(--public-border);border-radius:1rem;box-shadow:0 1rem 2.5rem rgba(15,23,42,.08)}
.public-room-card>img{width:100%;height:230px;object-fit:cover}
.public-room-card-body{padding:1.5rem}
.public-room-card-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start}
.public-room-card-heading h3{margin:.25rem 0;font-size:1.25rem}
.public-room-card-heading>strong{color:#9a6500;font-size:1.25rem;white-space:nowrap}
[data-theme=dark] .public-room-card-heading>strong{color:#f7c66b}
.public-room-card-heading small{font-size:.75rem;color:var(--public-muted);font-weight:400}
.public-room-card-body>p{min-height:3rem;color:var(--public-muted)}
.public-room-facts{display:grid;gap:.5rem;margin:1rem 0 1.35rem;padding:0;list-style:none;color:var(--public-muted)}
.public-room-facts i{width:1.4rem;color:var(--hotel-blue)}
[data-theme=dark] .public-room-facts i{color:#7bb5df}
.public-empty-state{text-align:center;padding:3rem 1.5rem;background:var(--public-surface);border:1px solid var(--public-border);border-radius:1rem}
.public-empty-state i{font-size:2rem;color:var(--public-muted)}
@media(max-width:991.98px){.public-date-panel{grid-template-columns:1fr}.public-room-grid{grid-template-columns:1fr}}
@media(max-width:767.98px){.public-date-form{grid-template-columns:1fr}.public-availability-shell{padding-top:6rem}.public-room-card>img{height:200px}}
@media(max-width:389.98px){.public-room-card-heading{display:block}.public-room-card-heading>strong{display:block;margin:.5rem 0}.public-room-card-body{padding:1rem}}

.public-confirmation-shell{max-width:64rem;padding-top:8rem;padding-bottom:4rem;color:var(--public-text)}
.public-confirmation-heading{text-align:center;max-width:42rem;margin:0 auto 2rem}
.public-confirmation-heading h1{font-size:clamp(2rem,5vw,3.2rem);margin:.45rem 0}
.public-confirmation-heading p{color:var(--public-muted)}
.public-confirmation-icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;margin:0 auto 1rem;border-radius:50%;background:#e5f7ed;color:#08783f;font-size:1.35rem}
[data-theme=dark] .public-confirmation-icon{background:#123a29;color:#78dfa6}
.public-confirmation-card{overflow:hidden;background:var(--public-surface);border:1px solid var(--public-border);border-radius:1rem;box-shadow:0 1rem 2.5rem rgba(15,23,42,.08)}
.public-confirmation-reference{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding:1.5rem 2rem;background:var(--public-surface-soft);border-bottom:1px solid var(--public-border)}
.public-confirmation-reference h2{margin:.25rem 0 0;font-size:1.65rem;letter-spacing:.05em}
.public-confirmation-reference strong,.public-summary-label{display:block}
.public-summary-label{color:var(--public-muted);font-size:.85rem}
.public-confirmation-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;padding:2rem}
.public-confirmation-grid h3{font-size:1.1rem;margin-bottom:1rem}
.public-confirmation-list{display:grid;gap:.7rem;margin:0}
.public-confirmation-list>div{display:grid;grid-template-columns:minmax(7rem,.45fr) 1fr;gap:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--public-border)}
.public-confirmation-list dt{color:var(--public-muted);font-weight:500}.public-confirmation-list dd{margin:0;text-align:right;font-weight:700;overflow-wrap:anywhere}
.public-confirmation-total{font-size:1.2rem}.public-confirmation-total dd{color:#9a6500}[data-theme=dark] .public-confirmation-total dd{color:#f7c66b}
.public-confirmation-note{margin:1.25rem 0 0;padding:1rem;border-radius:.65rem;background:var(--public-surface-soft);color:var(--public-muted);font-size:.9rem}
.public-confirmation-actions{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}
@media(max-width:767.98px){.public-confirmation-shell{padding-top:6rem}.public-confirmation-reference{display:block;padding:1.25rem}.public-confirmation-reference .text-md-end{margin-top:1rem}.public-confirmation-grid{grid-template-columns:1fr;padding:1.25rem}.public-confirmation-actions{align-items:stretch;flex-direction:column}.public-confirmation-actions .btn{width:100%}}
@media(max-width:389.98px){.public-confirmation-list>div{grid-template-columns:1fr;gap:.2rem}.public-confirmation-list dd{text-align:left}}
@media print{#mainNav,.public-confirmation-actions,.footer{display:none!important}.public-confirmation-shell{padding:0}.public-confirmation-card{box-shadow:none}}
