: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);
}
/* The hotel canvas follows Avena's brand, independently of the preview controls. */
:root {
  --cp-brand-blue: #6e97bf;
  --cp-brand-deep: #244765;
  --cp-brand-footer: #19354c;
  --cp-brand-forest: #527da5;
  --cp-brand-sand: #e8eef2;
  --cp-brand-soft: #f0f4f7;
  --cp-brand-cream: #fafaf7;
  --cp-brand-white: #ffffff;
  --cp-brand-gold: #bc842b;
  --cp-brand-gold-original: #dd9933;
  --cp-brand-gold-light: #efc46c;
  --cp-brand-ink: #223748;
  --cp-brand-muted: #5b6b76;
  --cp-brand-line: rgba(34, 55, 72, .14);
  --cp-brand-line-light: rgba(255, 255, 255, .28);
  --cp-brand-shadow-sm: 0 2px 10px rgba(25, 53, 76, .08);
  --cp-brand-shadow: 0 18px 50px rgba(25, 53, 76, .15);
  --cp-brand-shadow-lg: 0 30px 80px rgba(25, 53, 76, .20);
  --pine: var(--cp-brand-deep);
  --pine-deep: var(--cp-brand-footer);
  --forest: var(--cp-brand-forest);
  --sand: var(--cp-brand-sand);
  --sand-soft: var(--cp-brand-soft);
  --cream: var(--cp-brand-cream);
  --white: var(--cp-brand-white);
  --brass: var(--cp-brand-gold);
  --brass-light: var(--cp-brand-gold-light);
  --accent2: var(--cp-brand-forest);
  --accent2-soft: var(--cp-brand-sand);
  --ink: var(--cp-brand-ink);
  --ink-soft: var(--cp-brand-muted);
  --line: var(--cp-brand-line);
  --line-light: var(--cp-brand-line-light);
  --shadow-sm: var(--cp-brand-shadow-sm);
  --shadow: var(--cp-brand-shadow);
  --shadow-lg: var(--cp-brand-shadow-lg);
}
body { color-scheme: light; }
[hidden] { display:none !important; }
.icon-definitions { position:absolute; width:0; height:0; overflow:hidden; }
.service-icon { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.3; }
.skip-link { position:fixed; left:1rem; top:-10rem; z-index:300; padding:.8rem 1.2rem; background:var(--white); color:var(--ink); }
.skip-link:focus { top:1rem; }
:focus-visible { outline:2px solid var(--brass); outline-offset:5px; }
.topbar { background:var(--cp-brand-blue); color:var(--white); }
.topbar-note { font-size:.62rem; white-space:nowrap; }
.site-header { background:color-mix(in srgb,var(--cream) 96%,transparent); }
.brand img { height:72px; }
.nav { gap:1.75rem; }
.has-sub:focus-within .sub { opacity:1; visibility:visible; transform:translateY(0); }
.nav-top.is-active { color:var(--brass); }
.services-section { padding-top:clamp(2.5rem,5vw,4rem); }
.intro-section { padding-top:clamp(2rem,4vw,4rem); }
.section-heading { margin-bottom:3.5rem; }
.section-heading h2 + p { margin-top:1rem; }
.action-line { margin-top:2rem; }
.spacious-list { margin:2rem 0; }
.secondary-tiles { margin-top:2rem; }
.tile .eyebrow,.tile .link-arrow { color:var(--brass-light); }
.tile .link-arrow { border-color:var(--brass-light); }
.tile .eyebrow { font-size:.63rem; }
.famstrip { margin-top:2.5rem; }
.famstrip-body .tags { margin-bottom:1rem; }
.famstrip-body h3 { margin-bottom:1rem; }
.light-eyebrow { color:var(--brass-light); justify-content:center; }
.light-lead { color:var(--white); margin:1.4rem auto 2.4rem; }
.activity-tiles .tile { min-height:330px; }
.activity-tiles h3 { font-size:1.4rem; }
.package-options { gap:1rem; margin:2rem 0; }
.package-options > div { padding:1.3rem .8rem; background:color-mix(in srgb,var(--white) 12%,transparent); border:1px solid var(--line-light); text-align:center; }
.package-options b { font-family:var(--serif); font-size:1.6rem; font-weight:400; display:block; }
.package-options span { font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.accent { background:var(--cp-brand-blue); }
.accent .btn-light:hover { color:var(--pine); }
.brand-statement .lead { margin:1.7rem auto 0; }
.brand-statement h2 { font-size:clamp(2.5rem,4.5vw,4rem); }
.cta-actions { display:flex; flex-wrap:wrap; gap:1rem; }
.footer-brand img { height:94px; }
.site-footer .footer-brand p { max-width:34ch; }
.native-accordion { margin-top:2.5rem; }
.native-accordion details { border-bottom:1px solid var(--line); padding:1.3rem 0; }
.native-accordion summary { cursor:pointer; font-family:var(--serif); font-size:1.35rem; }
.native-accordion details p { color:var(--ink-soft); margin-top:1.2rem; }
.section-links { justify-content:center; }
.section-links a { display:block; }
.contact-split { align-items:start; }
.contact-split h3 { font-size:1.5rem; margin:1.6rem 0 .7rem; }
.contact-panel { padding:2.5rem; background:var(--white); box-shadow:var(--shadow-sm); border-top:3px solid var(--brass); }
.contact-panel h3 { margin-top:0; }
.contact-panel form { display:grid; gap:1.5rem; margin-top:2rem; }
.offer-cards .price { font-size:3rem; margin:1rem 0; }
.booking-child-ages { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.content-dialog { width:min(680px,calc(100% - 2rem)); max-height:86dvh; overflow:auto; border:0; padding:3rem; background:var(--cream); color:var(--ink); box-shadow:var(--shadow-lg); border-top:4px solid var(--brass); }
dialog::backdrop { background:color-mix(in srgb,var(--pine-deep) 78%,transparent); backdrop-filter:blur(5px); }
.content-dialog h2 { margin-bottom:1.2rem; font-size:2.7rem; }
.dialog-close { position:absolute; top:.5rem; right:.75rem; padding:.25rem .75rem; border:0; background:none; color:inherit; font-size:2rem; cursor:pointer; }
.message-summary { margin-top:1.5rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.gallery-dialog { width:100vw; height:100dvh; max-width:none; max-height:none; border:0; padding:3rem 5rem; background:var(--pine-deep); color:var(--white); }
.gallery-dialog[open] { display:flex; align-items:center; justify-content:center; }
.gallery-dialog figure { margin:0; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.gallery-dialog img { max-height:78dvh; width:auto; max-width:85vw; object-fit:contain; }
.gallery-dialog figcaption { font-size:.85rem; }
.gallery-prev,.gallery-next { position:absolute; top:50%; transform:translateY(-50%); background:none; border:0; padding:1rem; font-size:3rem; color:var(--white); cursor:pointer; }
.gallery-prev { left:.5rem; } .gallery-next { right:.5rem; }
.preview-tools,.preview-mini { position:fixed; left:1.1rem; bottom:1.1rem; z-index:80; display:flex; align-items:center; gap:.6rem; padding:.6rem .7rem; border:1px solid var(--cp-border); background:var(--cp-panel-strong); color:var(--cp-text); border-radius:.625rem; box-shadow:var(--cp-shadow); font-family:"Segoe UI",Aptos,Calibri,-apple-system,BlinkMacSystemFont,sans-serif; font-size:.71rem; line-height:1.4; }
.preview-dot { width:7px; height:7px; border-radius:50%; background:var(--cp-success); }
.preview-tools b { font-weight:600; font-size:.64rem; letter-spacing:.1em; }
.preview-label { color:var(--cp-text-muted); border-right:1px solid var(--cp-border); padding-right:.7rem; }
.preview-tools button { border:0; padding:.25rem .45rem; background:var(--cp-surface-soft); color:var(--cp-text); border-radius:.3rem; cursor:pointer; }
.preview-mini { cursor:pointer; }
.brand-palette { display:grid; grid-template-columns:32px 1fr 32px 1fr; gap:.7rem; align-items:center; margin:1.8rem 0; }
.brand-palette small { display:block; font-size:.7rem; color:var(--ink-soft); }
.brand-palette span { width:30px; height:30px; border-radius:50%; }
.swatch-blue { background:var(--cp-brand-blue); } .swatch-gold { background:var(--cp-brand-gold-original); }
@media (max-width:1200px) { .nav { gap:1rem; } .site-header .wrap { gap:1rem; } .nav > a,.has-sub > .nav-top { font-size:.69rem; letter-spacing:.1em; } }
@media (max-width:820px) {
  .booking-child-ages { grid-template-columns:1fr; }
  .topbar-note { display:none; }
  .hero { min-height:690px; }
  .hero-inner { padding-bottom:4.5rem; }
  .hero h1,.hero .hero-title { font-size:clamp(2.5rem,7.5vw,3.7rem); }
  .hero-sub { font-size:1.05rem; }
  .hero-dots { bottom:-2rem; right:auto; left:0; }
  .stack-imgs { padding-bottom:0; }
  .stack-imgs img:first-child { width:100%; aspect-ratio:4/3; }
  .preview-tools { bottom:auto; top:9rem; left:auto; right:.5rem; }
  .preview-mini { bottom:auto; top:.3rem; left:auto; right:.5rem; padding:.45rem .7rem; }
  .content-dialog { padding:2.5rem 1.5rem; }
  .content-dialog h2 { font-size:2.2rem; }
  .brand-palette { grid-template-columns:32px 1fr; }
  .gallery-dialog { padding:3rem 2.6rem; }
  .gallery-dialog img { max-width:80vw; }
  .gallery-prev,.gallery-next { padding:.4rem; }
  .contact-panel { padding:1.5rem; }
  .package-options { grid-template-columns:repeat(3,1fr); gap:.5rem; }
  .package-options b { font-size:1.4rem; }
  .package-options span { font-size:.66rem; }
}
@media (max-width:420px) {
  .hero { min-height:680px; }
  .hero-actions { gap:.7rem; }
  .hero-actions .btn { padding:.95rem .8rem; font-size:.6rem; letter-spacing:.11em; }
  .preview-label { display:none; }
  .activity-tiles { grid-template-columns:1fr; }
}
@media print { .preview-tools,.preview-mini,.mobile-cta,.burger { display:none; } .reveal { opacity:1; transform:none; } }
