/* Host adapter: canonical control structure/cascade, Domus Bella dark/gold brand. */
:root { --gold-soft:#c7ad6b; --gold-dark:#665021; --ink-strong:#171510; --paper:#fffdf7; --paper-soft:#f5f1e7; --glass:#fffdf7; --shadow:0 16px 48px #0006; --shadow-soft:0 8px 24px #0003; --radius:12px; --radius-sm:8px; --ease:cubic-bezier(.22,1,.36,1); }
[hidden] { display:none!important; }
button,input,select,textarea { font:inherit; }
.foundation-controls { --ink:#25231d; --muted:#625c50; color:var(--ink); }
.foundation-controls .btn { min-height:44px; line-height:1.35; }
.foundation-controls .btn-ghost { color:#40341b; }
.cookie-banner,.cookie-modal,.a11y-panel { color:#25231d; }
.cookie-banner p,.cookie-modal p,.a11y-panel p,.pref-row small { color:#625c50; }
.cookie-banner .cookie-actions .btn { background:#665021; color:#fff; border-color:#665021; }
.cookie-banner .cookie-x,.cookie-modal .cookie-x,.a11y-close { min-width:44px; min-height:44px; color:#4d442e; }
.cookie-policy-links { white-space:normal; }
.cookie-modal { z-index:150; box-shadow:0 0 0 100vmax #0008,var(--shadow); }
.a11y-toggle { display:inline-grid; place-items:center; opacity:1; pointer-events:auto; }
.a11y-toggle.is-away { opacity:0; pointer-events:none; }
.cookie-reopen,.a11y-toggle { color:#665021; bottom:calc(1rem + env(safe-area-inset-bottom,0px)); }
.cookie-reopen[hidden] { display:none; }
.cookie-banner h2 { padding-right:1.75rem; }
.a11y-panel .row { display:grid; grid-template-columns:1fr; }
.text-btn { background:transparent; color:inherit; border:0; text-decoration:underline; padding:.4rem; cursor:pointer; min-height:44px; }
.fh-booking-bar { grid-template-columns:minmax(15rem,1.6fr) minmax(7rem,.7fr) minmax(7rem,.7fr) minmax(6rem,.6fr) auto; }
.booking-wrap { width:100%; }
.booking-rooms { flex-wrap:wrap; }
.booking-rooms select { min-height:44px; width:100%; color:#25231d; background:#fff; border:1px solid #887955; border-radius:6px; }
.booking-dates .field-body { display:grid; text-align:left; }
.field-icon { flex-shrink:0; }
.field-label { font-size:.8rem; }
.field-value { font-size:.95rem; }
.stepper-btn { width:44px; height:44px; }
.booking-sheet-copy,.date-popover-head p,.date-weekdays span { color:#625c50; }
.date-close { min-width:44px; min-height:44px; color:#25231d; }
.date-nav button { width:44px; height:44px; }
.cal-day { min-height:36px; border:1px solid transparent; background:#fff; color:#25231d; border-radius:5px; padding:.2rem; cursor:pointer; font-size:.9rem; }
.cal-day:hover:not(:disabled),.cal-day:focus-visible { border-color:#665021; background:#f4ebd3; }
.cal-day.is-start,.cal-day.is-end { background:#665021; color:#fff; }
.cal-day.is-in-range { background:#f0e3bd; }
.cal-day:disabled { color:#999; cursor:default; }
.error { color:#fff; background:#7b211c; padding:.6rem; border-radius:6px; }
.booking-sheet .error { color:#7b211c; background:#fff; }
.services-slider { position:relative; }
.map-placeholder { display:grid; place-content:center; text-align:center; min-height:360px; padding:1.5rem; gap:.75rem; }
.map-placeholder button,.map-remove { min-height:44px; padding:.7rem 1rem; background:var(--gold); color:#111; border:0; border-radius:6px; cursor:pointer; }
.map-frame iframe { min-height:360px; }
.map-remove { position:absolute; z-index:2; top:.5rem; right:.5rem; }
.map-frame { position:relative; }
.no-js-note { padding:1rem; text-align:center; }
.legal h2 { font-family:var(--font-display); font-weight:400; margin-top:2rem; }
.legal table { border-collapse:collapse; width:100%; }
.legal th,.legal td { border:1px solid var(--line); padding:.65rem; vertical-align:top; text-align:left; }
.legal-table-scroll { overflow:auto; }
.legal .draft-notice { border-left:4px solid var(--gold); padding:1rem; background:#272219; color:#f5f2ea; }
html[data-text='md'] { font-size:112%; }
html[data-text='lg'] { font-size:125%; }
html[data-links='on'] a { text-decoration:underline!important; }
html[data-motion='reduce'] { scroll-behavior:auto; }
html[data-motion='reduce'] [data-animate] { opacity:1; transform:none; }
html[data-contrast='high'] { --ink:#fff; --muted:#fff; --bg:#000; --bg-raised:#000; --gold:#ffe18c; --line:#fff; }
html[data-contrast='high'] body,html[data-contrast='high'] .band,html[data-contrast='high'] .site-footer { color:#fff; background:#000; }
html[data-contrast='high'] .foundation-controls,html[data-contrast='high'] .foundation-controls p,html[data-contrast='high'] .foundation-controls small { color:#000; background:#fff; }
html[data-contrast='high'] .site-footer :is(p,a,h2,button),html[data-contrast='high'] .legal p { color:#fff; }
@media (max-width:1200px) and (min-width:961px) { .fh-booking-bar { grid-template-columns: minmax(15rem,1.5fr) 1fr 1fr; } .booking-submit.btn { border-radius:8px; } }
@media (max-width:960px) {
 .fh-booking-bar { grid-template-columns:1fr; }
 .booking-launch { margin:0; min-width:0; width:100%; }
 .booking-sheet-card { color:#25231d; }
 .booking-wrap .booking-panel { gap:.5rem; }
 .a11y-toggle { display:inline-grid; }
 .cookie-banner { max-height:calc(100dvh - 1.5rem); }
 .cookie-banner .cookie-actions .btn { min-height:44px; }
 .a11y-panel { padding-top:3rem; }
 .mobile-booking-dock:not([hidden]) { background:#665021; color:#fff; }
 .map-placeholder,.map-frame iframe { min-height:320px; }
}
@media (prefers-reduced-motion:reduce) { html {scroll-behavior:auto;} *,*::before,*::after {animation:none!important;transition:none!important;} [data-animate] {opacity:1!important;transform:none!important;} }

.booking-infants {flex-wrap:wrap;}
.booking-infants select {width:100%;min-height:44px;color:#25231d;background:#fff;border:1px solid #887955;border-radius:6px;}
@media (min-width:961px) { .fh-booking-bar {grid-template-columns:minmax(15rem,1.6fr) repeat(4,minmax(7rem,1fr));} .booking-submit.btn {grid-column:1/-1;border-radius:6px;min-height:48px;} }
@media (max-width:960px) { .booking-infants {flex-direction:column;align-items:stretch;} }

.foundation-controls .booking-submit.btn { background:var(--brand);color:#fff;border:1px solid var(--brand);font-weight:700;cursor:pointer; }
.foundation-controls .booking-submit.btn:hover { background:#49391c; }
.foundation-controls { --brand:#665021; --gold-deep:#77602e; }
.cookie-modal .cookie-actions .btn { background:#665021;color:#fff;border-color:#665021; }
.cookie-modal .cookie-actions .btn-ghost { background:#fffdf7;color:#40341b;border-color:#887955; }
.a11y-panel .btn-ghost[aria-pressed='false'] { background:#fffdf7;color:#40341b;border:1px solid #887955; }
.a11y-panel .btn-ghost[aria-pressed='false']:is(:hover,:focus-visible),
.cookie-modal .btn-ghost:is(:hover,:focus-visible) { background:#efe4c7;color:#40341b;border-color:#665021; }
.a11y-step-btn:is(:hover,:focus-visible):not(:disabled) { background:#665021;color:#fff;border-color:#665021; }
.a11y-panel .a11y-btn[aria-pressed='true']:is(:hover,:focus-visible) { background:#665021;color:#fff;border-color:#665021; }
@media (max-width:400px) {
 .a11y-text-control { flex-direction:column;align-items:flex-start; }
}
