:root {
  color-scheme: light;
  --cp-bg: #f7f4ef;
  --cp-bg-elevated: #fcfbf8;
  --cp-surface: #ffffff;
  --cp-surface-soft: #f5f5f5;
  --cp-border: #dedede;
  --cp-border-strong: #919191;
  --cp-text: #242424;
  --cp-text-muted: #5c5c5c;
  --cp-text-soft: #6f6f6f;
  --cp-accent: #b11f4b;
  --cp-accent-hover: #9a1a41;
  --cp-accent-soft: rgba(177, 31, 75, 0.08);
  --cp-accent-fg: #ffffff;
  --cp-success: #16a34a;
  --cp-danger: #dc2626;
  --cp-warning: #f59e0b;
  --cp-link: #0078d4;
  --cp-shadow: 0 18px 48px rgba(0, 0, 0, 0.12);
  --cp-overlay: rgba(255, 255, 255, 0.8);
  --cp-panel: rgba(255, 255, 255, 0.86);
  --cp-panel-strong: rgba(255, 255, 255, 0.96);
  --cp-sheen: rgba(255, 255, 255, 0.55);
  --cp-highlight: rgba(177, 31, 75, 0.12);
}
html[data-theme="dark"] {
  color-scheme: dark;
  --cp-bg: #3d3b3a;
  --cp-bg-elevated: #343231;
  --cp-surface: #292929;
  --cp-surface-soft: #2e2e2e;
  --cp-border: #474747;
  --cp-border-strong: #5f5f5f;
  --cp-text: #dedede;
  --cp-text-muted: #919191;
  --cp-text-soft: #b0b0b0;
  --cp-accent: #fd8ea1;
  --cp-accent-hover: #fb7b91;
  --cp-accent-soft: rgba(253, 142, 161, 0.14);
  --cp-accent-fg: #1a1a1a;
  --cp-success: #4ade80;
  --cp-danger: #f87171;
  --cp-warning: #fbbf24;
  --cp-link: #4da6ff;
  --cp-shadow: 0 18px 48px rgba(0, 0, 0, 0.32);
  --cp-overlay: rgba(41, 41, 41, 0.88);
  --cp-panel: rgba(41, 41, 41, 0.72);
  --cp-panel-strong: rgba(41, 41, 41, 0.96);
  --cp-sheen: rgba(255, 255, 255, 0.04);
  --cp-highlight: rgba(253, 142, 161, 0.12);
}

/* Hotel identity stays fixed while the preview controls follow the app theme. */
:root {
  --cp-hotel-charcoal: #222522;
  --cp-hotel-deep: #171a17;
  --cp-hotel-forest: #363b32;
  --cp-hotel-gold: #ad852a;
  --cp-hotel-gold-light: #dfbd69;
  --cp-hotel-sand: #ebe2d1;
  --cp-hotel-sand-soft: #f5f0e5;
  --cp-hotel-cream: #fdfaf4;
  --cp-hotel-white: #ffffff;
  --cp-hotel-ink: #2c3029;
  --cp-hotel-muted: #63665e;
  --cp-hotel-sage: #53624b;
  --cp-hotel-sage-soft: #e7ece1;
  --cp-hotel-line: rgba(44, 48, 41, .14);
  --cp-hotel-line-light: rgba(255, 255, 255, .24);
  --cp-hotel-glass: rgba(34, 37, 34, .97);
  --cp-hotel-white-soft: rgba(255, 255, 255, .86);
  --cp-hotel-shade: rgba(23, 26, 23, .86);
  --cp-hotel-shade-mid: rgba(23, 26, 23, .42);
  --cp-hotel-shade-light: rgba(23, 26, 23, .05);
  --cp-hotel-shadow-sm: 0 2px 10px rgba(23, 26, 23, .08);
  --cp-hotel-shadow: 0 18px 50px rgba(23, 26, 23, .15);
  --cp-hotel-shadow-lg: 0 30px 80px rgba(23, 26, 23, .2);
  --pine: var(--cp-hotel-charcoal);
  --pine-deep: var(--cp-hotel-deep);
  --forest: var(--cp-hotel-forest);
  --sand: var(--cp-hotel-sand);
  --sand-soft: var(--cp-hotel-sand-soft);
  --cream: var(--cp-hotel-cream);
  --white: var(--cp-hotel-white);
  --brass: var(--cp-hotel-gold);
  --brass-light: var(--cp-hotel-gold-light);
  --accent2: var(--cp-hotel-sage);
  --accent2-soft: var(--cp-hotel-sage-soft);
  --ink: var(--cp-hotel-ink);
  --ink-soft: var(--cp-hotel-muted);
  --line: var(--cp-hotel-line);
  --line-light: var(--cp-hotel-line-light);
  --shadow-sm: var(--cp-hotel-shadow-sm);
  --shadow: var(--cp-hotel-shadow);
  --shadow-lg: var(--cp-hotel-shadow-lg);
}
body { color-scheme:light; }
.topbar { background:var(--cp-hotel-deep); color:var(--cp-hotel-white-soft); }
.topbar a:hover { color:var(--cp-hotel-gold-light); }
.topbar-place { color:var(--cp-hotel-gold-light); font-size:.65rem; }
.site-header { background:var(--cp-hotel-white); color:var(--cp-hotel-ink); border-color:var(--cp-hotel-line); }
.brand img { height:76px; }
.nav { gap:1.75rem; }
.nav > a,.has-sub > .nav-top { font-size:.7rem; letter-spacing:.14em; }
.nav .is-active { color:var(--cp-hotel-gold); }
.sub { color:var(--cp-hotel-ink); }
.has-sub:focus-within .sub { opacity:1; visibility:visible; transform:none; }
.burger span { background:var(--cp-hotel-ink); }
.hero::after {
  background:linear-gradient(180deg,var(--cp-hotel-shade-mid),var(--cp-hotel-shade-light) 28%,var(--cp-hotel-shade)),
    linear-gradient(90deg,var(--cp-hotel-shade-mid),transparent 72%);
}
.hero-slide img { animation:none; }
.hero-slide.is-active img { transform:scale(1.025); }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-inner { padding-bottom:clamp(6rem,8vw,7.5rem); }
.hero h1,.hero .hero-title { max-width:23ch; }
.hero-sub { max-width:49ch; }
.hero-dots { align-items:center; gap:.8rem; bottom:.8rem; }
.hero-dots button { position:relative; height:3px; }
.hero-dots button::before { content:""; position:absolute; inset:-14px -4px; }
.hero-dots .hero-pause { width:26px; height:32px; background:none; color:var(--cp-hotel-white); font-size:.8rem; }
.bookbar { margin-top:-52px; }
.hero-note { padding-top:1.3rem; font-size:.73rem; color:var(--cp-hotel-white-soft); }
.section-head { margin-bottom:3.5rem; }
.services-section { padding-top:clamp(2.5rem,5vw,4rem); }
.intro-section { padding-top:clamp(2rem,4vw,4rem); }
.section-link { margin-top:2rem; }
.cards-more { margin-top:2.5rem; }
.tile .eyebrow { color:var(--cp-hotel-gold-light); }
.tile .link-arrow { color:var(--cp-hotel-white); border-color:var(--cp-hotel-gold-light); }
.activity-grid .tile { min-height:330px; }
.activity-grid h3 { font-size:1.4rem; }
.stat b { font-variant-numeric:lining-nums; }
.iconbar a { display:block; }
.iconbar svg { width:36px; height:36px; }
.famcard svg { width:36px; height:36px; }
.famstrip { margin-top:2.5rem; }
.famstrip-body .tags { margin-bottom:1rem; }
.dark .lead,.dark .muted,.accent .lead,.accent .muted { color:var(--cp-hotel-white-soft); }
.partner-note { border-left:3px solid var(--cp-hotel-gold); padding:.7rem 1rem; background:var(--cp-hotel-sand-soft); font-size:.86rem; }
.parallax .lead { color:var(--cp-hotel-white-soft); margin:1.4rem auto 2.4rem; }
.parallax .eyebrow { color:var(--cp-hotel-gold-light); justify-content:center; }
.accent .offer-categories > div { background:color-mix(in srgb,var(--cp-hotel-white) 12%,transparent); border:1px solid var(--cp-hotel-line-light); padding:1.4rem; text-align:center; }
.offer-categories { gap:1rem; margin:2rem 0; }
.offer-categories b { font-family:var(--serif); font-size:1.3rem; font-weight:400; }
.offer-categories span { display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; margin-top:.5rem; }
.manifesto h2 { max-width:27ch; margin-inline:auto; }
.manifesto p { max-width:55ch; margin:1.8rem auto 0; }
.footer-brand img { height:90px; }
.site-footer a[href^="mailto"] { overflow-wrap:anywhere; }
.footer-bottom { align-items:center; }
.plain-button { border:0; background:none; color:inherit; font:inherit; cursor:pointer; padding:0; text-align:left; }
.plain-button:hover { color:var(--cp-hotel-gold-light); }
.page-jump { display:flex; justify-content:center; flex-wrap:wrap; gap:.7rem 1.8rem; padding:1.5rem; border-bottom:1px solid var(--cp-hotel-line); background:var(--cp-hotel-white); }
.page-jump a { font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; }
.page-jump a:hover { color:var(--cp-hotel-gold); }
.room-detail + .room-detail { border-top:1px solid var(--cp-hotel-line); }
.room-detail .split-media > img { aspect-ratio:4/3; }
.room-detail .price { margin-top:1.8rem; }
.detail-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:.6rem; }
.detail-gallery button { padding:0; border:0; cursor:pointer; background:var(--cp-hotel-sand); }
.detail-gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.room-detail .ticks { margin:1.7rem 0; }
.room-detail .tags { margin:1.3rem 0; }
.gallery-toolbar { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin-bottom:2.2rem; }
.gallery-filter { background:var(--cp-hotel-white); border:1px solid var(--cp-hotel-line); color:var(--cp-hotel-ink); padding:.65rem 1.25rem; border-radius:999px; font:inherit; font-size:.8rem; cursor:pointer; }
.gallery-filter[aria-pressed="true"] { background:var(--cp-hotel-charcoal); border-color:var(--cp-hotel-charcoal); color:var(--cp-hotel-white); }
.full-gallery { grid-template-columns:repeat(3,1fr); gap:1rem; }
.full-gallery a { aspect-ratio:4/3; border-radius:10px; }
.full-gallery a[hidden] { display:none; }
.price-note { margin:1.5rem 0 2rem; }
.table-wrap + .table-wrap { margin-top:2rem; }
.price-caption { padding:1.4rem 1.6rem; font-family:var(--serif); font-size:1.5rem; }
.faq { margin-top:3rem; }
.faq h2 { margin-bottom:1.8rem; }
details { border-bottom:1px solid var(--cp-hotel-line); }
summary { list-style:none; cursor:pointer; padding:1.2rem 0; font-family:var(--serif); font-size:1.35rem; display:flex; justify-content:space-between; align-items:center; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; color:var(--cp-hotel-gold); }
details[open] summary::after { content:"−"; }
details > p { padding:0 0 1.5rem; color:var(--cp-hotel-muted); font-size:.95rem; }
.contact-panel { padding:2.5rem; border:1px solid var(--cp-hotel-line); background:var(--cp-hotel-white); }
.contact-panel h3 { margin-bottom:1.2rem; }
.dark .contact-panel { background:color-mix(in srgb,var(--cp-hotel-white) 5%,transparent); border-color:var(--cp-hotel-line-light); }
.contact-panel a { overflow-wrap:anywhere; }
.contact-separator { border:0; border-top:1px solid var(--cp-hotel-line); margin:1.8rem 0; }
.contact-address { display:flex; flex-direction:column; gap:.6rem; }
.local-form { display:grid; gap:1.5rem; }
.local-form .g2 { gap:1.5rem; }
.local-form .field input,.local-form .field select,.local-form .field textarea { border:1px solid var(--cp-hotel-line); border-radius:2px; padding:.8rem; background:var(--cp-hotel-white); }
.local-form textarea { min-height:140px; }
.local-form .btn { justify-self:start; }
.form-result { background:var(--cp-hotel-sand-soft); border-left:3px solid var(--cp-hotel-gold); padding:1.5rem; }
.form-result[hidden] { display:none; }
.form-result h3 { margin-bottom:.9rem; }
.form-result p { font-size:.92rem; }
.booking-layout { grid-template-columns:1.15fr .85fr; align-items:start; }
.booking-summary { background:var(--cp-hotel-charcoal); padding:2.5rem; border-radius:14px; color:var(--cp-hotel-white-soft); }
.booking-summary h3 { color:var(--cp-hotel-white); margin-bottom:1.5rem; }
.booking-summary .ticks { grid-template-columns:1fr; }
.booking-summary .eyebrow { color:var(--cp-hotel-gold-light); }
.booking-summary .ticks li::before { color:var(--cp-hotel-gold-light); }
.archived { filter:saturate(.7); }
.archive-note { border:1px solid var(--cp-hotel-line); background:var(--cp-hotel-white); padding:1.7rem; margin-bottom:2.5rem; }
.archive-note b { color:var(--cp-hotel-gold); }
.cta-band .hero-actions { margin-top:0; }
.badge-row { margin-bottom:1.2rem; }
.skip-link { position:fixed; top:-100px; left:1rem; padding:1rem; z-index:200; background:var(--cp-hotel-white); color:var(--cp-hotel-ink); }
.skip-link:focus { top:1rem; }
:focus-visible { outline:2px solid var(--cp-hotel-gold-light); outline-offset:5px; }
.preview-badge { position:fixed; bottom:1rem; left:1rem; z-index:41; display:flex; gap:.55rem; align-items:center; padding:.65rem 1rem; border-radius:999px; background:var(--cp-panel-strong); color:var(--cp-text); border:1px solid var(--cp-border); box-shadow:var(--cp-shadow); font-family:"Segoe UI",Aptos,Calibri,sans-serif; font-size:.7rem; cursor:pointer; }
.preview-badge > span { width:6px; height:6px; border-radius:50%; background:var(--cp-hotel-gold); }
.preview-badge b { display:grid; place-items:center; width:16px; height:16px; border:1px solid var(--cp-border-strong); border-radius:50%; font-size:.63rem; }
.preview-dialog { width:min(660px,calc(100% - 2rem)); max-height:88vh; padding:3rem; border:1px solid var(--cp-hotel-line); background:var(--cp-hotel-cream); color:var(--cp-hotel-ink); box-shadow:var(--cp-hotel-shadow-lg); }
.preview-dialog::backdrop,.photo-dialog::backdrop { background:var(--cp-hotel-shade); }
.preview-dialog h2 { font-size:2.7rem; margin-bottom:1.7rem; }
.preview-dialog p { font-size:.95rem; }
.preview-dialog .btn { margin-top:1rem; }
.dialog-close { position:absolute; top:.5rem; right:1rem; border:0; background:none; color:var(--cp-hotel-ink); font-size:2rem; cursor:pointer; }
.swatches { display:flex; gap:.6rem; margin:1.5rem 0; }
.swatches span { border-radius:8px; padding:1rem 1.3rem; font-size:.8rem; }
.swatch-charcoal { background:var(--cp-hotel-charcoal); color:var(--cp-hotel-white); }
.swatch-gold { background:var(--cp-hotel-gold); color:var(--cp-hotel-white); }
.swatch-cream { background:var(--cp-hotel-sand-soft); color:var(--cp-hotel-ink); border:1px solid var(--cp-hotel-line); }
.photo-dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; padding:2rem 5rem; border:0; background:var(--cp-hotel-shade); color:var(--cp-hotel-white); }
.photo-dialog[open] { display:flex; align-items:center; justify-content:center; }
.photo-dialog figure { margin:0; text-align:center; }
.photo-dialog img { max-width:82vw; max-height:80vh; object-fit:contain; margin-inline:auto; }
.photo-dialog figcaption { font-size:.9rem; margin-top:1rem; }
.photo-dialog button { position:absolute; border:0; background:none; color:var(--cp-hotel-white); cursor:pointer; padding:1rem; font-size:2.5rem; }
.photo-close { right:1rem; top:1rem; }
.photo-prev { left:1rem; top:45%; }
.photo-next { right:1rem; top:45%; }
html.modal-open { overflow:hidden; }
@media(max-width:1200px) {
  .site-header .wrap { gap:1.2rem; }
  .nav { gap:1.15rem; }
  .header-cta .btn { padding:.75rem 1.2rem; }
}
@media(max-width:1080px) {
  .booking-layout { grid-template-columns:1fr; }
}
@media(max-width:820px) {
  .brand img { height:64px; }
  .site-header .wrap { min-height:86px; }
  .hero { min-height:76svh; }
  .hero-inner { padding-bottom:4.5rem; }
  .hero h1,.hero .hero-title { font-size:clamp(2.6rem,8vw,4rem); }
  .hero-sub { font-size:1rem; margin-top:1.2rem; }
  .hero-actions { margin-top:1.8rem; gap:.7rem; }
  .hero-dots { bottom:-2.3rem; left:0; right:auto; }
  .bookbar { margin-top:-24px; }
  .preview-badge { bottom:5rem; left:.7rem; }
  .full-gallery { grid-template-columns:repeat(2,1fr); }
  .stack-imgs { padding-bottom:0; }
  .stack-imgs img:first-child { width:100%; aspect-ratio:4/3; }
  .contact-panel { padding:1.7rem; }
  .page-hero { min-height:360px; }
}
@media(max-width:560px) {
  .topbar-place { font-size:.58rem; }
  .wrap,.wrap-narrow { width:calc(100% - 2.5rem); }
  .hero h1,.hero .hero-title { font-size:2.75rem; }
  .hero-actions .btn { padding:.9rem 1.2rem; font-size:.65rem; }
  .hero-sub { max-width:34ch; }
  .hero-slide img { object-position:48% center; }
  .bookbar-inner { grid-template-columns:1fr 1fr; gap:1rem; padding:1.4rem 1.2rem; }
  .bookbar .btn { grid-column:span 2; font-size:.66rem; padding:1rem; }
  .field input,.field select { font-size:.9rem; min-width:0; }
  .iconbar { padding:1.3rem .5rem; }
  .g4 { grid-template-columns:1fr; }
  .activity-grid { grid-template-columns:1fr 1fr; gap:.8rem; }
  .activity-grid .tile { min-height:270px; }
  .activity-grid .tile-body { padding:1rem; }
  .activity-grid h3 { font-size:1.35rem; }
  .activity-grid p { font-size:.8rem; }
  .offer-categories { grid-template-columns:repeat(3,1fr); gap:.5rem; }
  .accent .offer-categories > div { padding:1rem .3rem; }
  .offer-categories b { font-size:1.1rem; }
  .offer-categories span { font-size:.55rem; }
  .local-form .g2 { grid-template-columns:1fr; }
  .preview-dialog { padding:2rem 1.4rem; }
  .preview-dialog h2 { font-size:2.3rem; }
  .swatches { gap:.3rem; }
  .swatches span { padding:.75rem 1rem; }
  .photo-dialog { padding:3rem .7rem; }
  .photo-dialog img { max-width:96vw; max-height:74vh; }
  .photo-prev,.photo-next { top:auto; bottom:1rem; }
  .full-gallery { gap:.6rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}
