﻿:root {
            --radius: .5rem;
            --background: oklch(99.5% .004 100);
            --foreground: oklch(32% .055 230);
            --card: oklch(100% 0 0);
            --muted: oklch(95.5% .014 95);
            --muted-foreground: oklch(52% .03 230);
            --primary: oklch(38% .09 152);
            --primary-foreground: oklch(98.5% .01 100);
            --secondary: oklch(42% .075 232);
            --secondary-foreground: oklch(98.5% .01 100);
            --accent: oklch(94% .03 140);
            --accent-foreground: oklch(32% .06 152);
            --destructive: oklch(55% .2 27);
            --border: oklch(90% .017 120);
            --sand: oklch(96.5% .022 92);
            --leaf: oklch(62% .12 148);
            --shadow-soft: 0 18px 40px -22px oklch(32% .055 230 / .28);
            --font-serif: "Playfair Display", Georgia, serif;
            --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
        }
        * { box-sizing: border-box; }
        html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
        body {
            margin: 0;
            min-height: 100vh;
            background: color-mix(in oklab, var(--muted) 60%, transparent);
            color: var(--foreground);
            font-family: var(--font-sans);
            line-height: 1.5;
        }
        h1, h2, h3, h4 {
            font-family: var(--font-serif);
            font-weight: 500;
            letter-spacing: -.01em;
            margin: 0;
        }
        a { color: inherit; text-decoration: none; }
        img { display: block; max-width: 100%; }
        button { font: inherit; }
        .du-wrap { width: min(64rem, calc(100% - 2rem)); margin-inline: auto; }
        .du-strong { font-weight: 600; color: var(--foreground); }

        .du-header {
            position: sticky; top: 0; z-index: 50;
            border-bottom: 1px solid var(--border);
            background: var(--background);
        }
        .du-header-inner {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            align-items: center;
            gap: 1rem;
            padding: .75rem 0;
        }
        .du-logo { height: 2rem; width: auto; }
        .du-nav { display: none; justify-content: center; gap: 1.5rem; }
        .du-nav a { font-size: .875rem; color: var(--muted-foreground); transition: color .15s; }
        .du-nav a:hover { color: var(--primary); }
        .du-btn {
            display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
            border-radius: calc(var(--radius));
            border: 0;
            cursor: pointer;
            font-weight: 500;
            transition: background .15s, color .15s, border-color .15s, opacity .15s;
        }
        .du-btn-primary {
            background: var(--primary);
            color: var(--primary-foreground);
            padding: .5rem 1rem;
            font-size: .875rem;
        }
        .du-btn-primary:hover { background: color-mix(in oklab, var(--primary) 90%, black); }
        .du-btn-primary:disabled { opacity: .45; cursor: not-allowed; }
        .du-btn-outline {
            background: var(--card);
            border: 1px solid var(--border);
            color: var(--foreground);
            padding: .5rem .75rem;
            font-size: .75rem;
            font-weight: 500;
        }
        .du-btn-outline:hover { border-color: var(--primary); color: var(--primary); }
        .du-cart {
            position: relative;
            margin-right: .35rem;
            color: var(--muted-foreground);
            font-size: .9rem;
        }
        .du-cart-badge {
            position: absolute; top: -8px; right: -10px;
            min-width: 16px; height: 16px; padding: 0 4px;
            border-radius: 999px; background: var(--destructive); color: #fff;
            font-size: .65rem; display: inline-flex; align-items: center; justify-content: center;
        }

        .du-main { padding: 1.5rem 0 2.5rem; }
        .du-card {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: calc(var(--radius) + 4px);
            overflow: hidden;
        }
        .du-card + .du-card, .du-section + .du-section, .du-card + .du-section, .du-section + .du-card { margin-top: 1.5rem; }
        .du-pad { padding: 1.5rem; }
        .du-title { font-size: 1.25rem; }
        .du-muted { color: var(--muted-foreground); }
        .du-text-sm { font-size: .875rem; }
        .du-text-xs { font-size: .75rem; }

        .du-hero {
            display: grid; gap: 1.5rem; align-items: center;
            padding: 1.5rem;
        }
        .du-kicker {
            display: flex; align-items: center; gap: .375rem;
            font-size: .75rem; text-transform: uppercase; letter-spacing: .1em;
            color: var(--primary); margin: 0;
        }
        .du-hero h1 { margin-top: .75rem; font-size: 1.875rem; line-height: 1.15; }
        .du-hero-copy { margin: 1rem 0 0; max-width: 32rem; font-size: .875rem; line-height: 1.625; color: var(--muted-foreground); }
        .du-hero-actions { margin-top: 1.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
        .du-hero-img {
            width: 100%; height: 12rem; object-fit: cover;
            border-radius: calc(var(--radius) + 2px);
        }

        .du-about-lead { margin: 1rem 0 0; font-size: 1rem; font-weight: 500; color: var(--foreground); }
        .du-about-body { margin-top: 1rem; max-width: 42rem; }
        .du-about-body p { margin: 0 0 .75rem; font-size: .875rem; line-height: 1.625; }
        .du-about-body p.du-about-lead { font-size: 1rem; font-weight: 500; color: var(--foreground); }
        .du-about-body p.du-muted { color: var(--muted-foreground); }
        .du-gallery {
            margin-top: 1.5rem;
            display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem;
        }
        .du-gallery button {
            position: relative; overflow: hidden; border: 0; padding: 0;
            border-radius: calc(var(--radius) + 2px); cursor: pointer; background: var(--muted);
        }
        .du-gallery img {
            width: 100%; height: 7rem; object-fit: cover;
            transition: transform .3s;
        }
        .du-gallery button:hover img { transform: scale(1.05); }

        .du-amenities {
            margin: 1.5rem 0 0;
            display: grid; gap: .75rem 2rem;
            list-style: none; padding: 0;
        }
        .du-amenities li {
            display: flex; align-items: center; gap: .625rem;
            font-size: .875rem;
        }
        .du-amenities i { color: var(--primary); width: 1rem; text-align: center; }

        .du-booking { padding: 1rem; }
        .du-booking-grid { display: grid; gap: 1.5rem; }
        .du-booking-side { }
        .du-calendar {
            border: 1px solid var(--border);
            border-radius: calc(var(--radius) + 4px);
            background: var(--card);
            padding: .75rem;
        }
        .du-cal-nav {
            display: flex; align-items: center; justify-content: space-between;
        }
        .du-cal-nav button {
            width: 2rem; height: 2rem; border: 0; border-radius: .375rem;
            background: transparent; color: var(--muted-foreground); cursor: pointer;
        }
        .du-cal-nav button:hover { background: var(--muted); }
        .du-cal-nav button:disabled { opacity: .3; cursor: not-allowed; }
        .du-cal-nav strong { font-size: .875rem; font-weight: 600; text-transform: capitalize; }
        .du-cal-grid {
            margin-top: .75rem;
            display: grid; grid-template-columns: repeat(7, 1fr); gap: .25rem;
        }
        .du-cal-weekday {
            text-align: center; font-size: .7rem; text-transform: uppercase;
            letter-spacing: .08em; color: var(--muted-foreground);
        }
        .du-cal-day {
            height: 3rem; border: 0; border-radius: .5rem;
            background: transparent; cursor: pointer;
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            font-size: .875rem; color: var(--foreground); transition: background .2s, color .2s;
        }
        .du-cal-day:hover:not(:disabled):not(.is-selected) { background: var(--accent); }
        .du-cal-day:disabled { cursor: not-allowed; background: color-mix(in oklab, var(--muted) 40%, transparent); color: color-mix(in oklab, var(--muted-foreground) 45%, transparent); }
        .du-cal-day.is-selected { background: var(--secondary); color: var(--secondary-foreground); box-shadow: var(--shadow-soft); }
        .du-cal-day .num { font-weight: 600; line-height: 1; }
        .du-cal-day .price { margin-top: .125rem; font-size: .6rem; }
        .du-cal-day.is-selected .price { color: color-mix(in oklab, var(--secondary-foreground) 80%, transparent); text-transform: lowercase; }
        .du-cal-day:not(.is-selected) .price.best { color: var(--leaf); }
        .du-cal-day:not(.is-selected) .price.weekend { color: var(--muted-foreground); }
        .du-cal-day.sold-out { background: color-mix(in oklab, var(--muted) 40%, transparent); color: color-mix(in oklab, var(--muted-foreground) 45%, transparent); text-decoration: line-through; }
        .du-cal-legend {
            margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--border);
            display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem;
            font-size: .7rem; color: var(--muted-foreground);
        }
        .du-cal-legend span { display: inline-flex; align-items: center; gap: .375rem; }
        .du-dot { width: .5rem; height: .5rem; border-radius: 999px; display: inline-block; }
        .du-social {
            margin-top: 1rem;
            display: flex; align-items: center; gap: .5rem;
            border-radius: .5rem; background: var(--accent);
            color: var(--accent-foreground);
            padding: .75rem; font-size: .75rem; font-weight: 500;
        }

        .du-empty {
            border: 1px dashed var(--border);
            border-radius: .5rem;
            background: color-mix(in oklab, var(--muted) 30%, transparent);
            padding: 1.5rem; text-align: center;
        }
        .du-ticket {
            display: grid; grid-template-columns: minmax(0, 1fr) auto;
            gap: .75rem; align-items: center;
            border: 1px solid var(--border);
            border-radius: .5rem;
            background: var(--card);
            padding: .875rem 1rem;
            margin-bottom: .625rem;
        }
        .du-ticket.is-active { border-color: var(--secondary); }
        .du-ticket-price { font-size: .875rem; font-weight: 600; color: var(--secondary); }
        .du-qty {
            display: inline-flex; align-items: center; gap: .25rem;
            border: 1px solid var(--border); border-radius: .375rem; padding: .125rem;
        }
        .du-qty button {
            width: 1.75rem; height: 1.75rem; border: 0; border-radius: .25rem;
            background: transparent; color: var(--muted-foreground); cursor: pointer;
        }
        .du-qty button.plus { color: var(--secondary); }
        .du-qty button.plus:hover { background: var(--secondary); color: var(--secondary-foreground); }
        .du-qty button:hover { background: var(--muted); }
        .du-qty span { width: 1.25rem; text-align: center; font-size: .875rem; font-weight: 600; }
        .du-summary { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px dashed var(--border); }
        .du-summary-line {
            display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem;
            font-size: .875rem; color: var(--muted-foreground); margin-bottom: .375rem;
        }
        .du-summary-total {
            display: grid; grid-template-columns: minmax(0, 1fr) auto;
            align-items: center; gap: .75rem;
        }
        .du-summary-total strong { font-size: 1.25rem; color: var(--secondary); font-weight: 600; }
        .du-secure {
            margin-top: .75rem; display: flex; align-items: center; justify-content: center; gap: .375rem;
            font-size: .75rem; color: var(--muted-foreground);
        }

        .du-map {
            margin-top: 1.25rem; overflow: hidden; border-radius: .5rem; border: 1px solid var(--border);
        }
        .du-map iframe { width: 100%; height: 16rem; border: 0; }
        .du-info-list { margin-top: 1.5rem; display: grid; gap: 1.5rem; }
        .du-info-row { display: flex; gap: .75rem; font-size: .875rem; }
        .du-info-row > i { margin-top: .125rem; color: var(--primary); width: 1rem; text-align: center; }
        .du-info-actions { margin-top: .5rem; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
        .du-icon-btn {
            width: 2rem; height: 2rem; display: grid; place-items: center;
            border: 1px solid var(--border); border-radius: .375rem;
            color: var(--muted-foreground);
        }
        .du-icon-btn:hover { border-color: var(--primary); color: var(--primary); }

        .du-alert {
            border: 1px solid color-mix(in oklab, var(--destructive) 25%, transparent);
            background: color-mix(in oklab, var(--destructive) 5%, transparent);
            border-radius: .5rem; padding: 1rem;
        }
        .du-alert + .du-alert { margin-top: 1rem; }
        .du-alert-row { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .75rem; }
        .du-alert-main { display: flex; gap: .75rem; }
        .du-alert-main > i { margin-top: .125rem; color: var(--destructive); }
        .du-alert strong { display: block; font-size: .875rem; color: var(--destructive); font-family: var(--font-sans); font-weight: 600; }
        .du-rules { margin-top: 1rem; display: grid; gap: 1.25rem; }
        .du-rules h3 { font-family: var(--font-sans); font-size: .875rem; font-weight: 500; }
        .du-rules ul { margin: .375rem 0 0; padding: 0; list-style: none; display: grid; gap: .25rem; }
        .du-rules li { display: flex; gap: .5rem; font-size: .875rem; color: var(--muted-foreground); line-height: 1.625; }
        .du-rules li::before { content: "•"; color: var(--primary); }
        .du-divider { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--border); }

        .du-faq { margin-top: 1.25rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
        .du-faq-item { border-bottom: 1px solid var(--border); }
        .du-faq-item:last-child { border-bottom: 0; }
        .du-faq-item summary {
            list-style: none; cursor: pointer;
            display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; align-items: center;
            padding: 1rem 0; font-size: .875rem; font-weight: 500;
        }
        .du-faq-item summary::-webkit-details-marker { display: none; }
        .du-faq-item summary i { color: var(--muted-foreground); transition: transform .2s; }
        .du-faq-item[open] summary i { transform: rotate(180deg); }
        .du-faq-item .answer { padding: 0 0 1rem; font-size: .875rem; line-height: 1.625; color: var(--muted-foreground); }

        .du-cta {
            text-align: center;
            background: var(--sand);
            border: 1px solid var(--border);
            border-radius: calc(var(--radius) + 4px);
            padding: 2rem 1.5rem;
        }
        .du-cta h2 { font-size: 1.5rem; }
        .du-cta p { margin: .5rem 0 0; font-size: .875rem; color: var(--muted-foreground); }
        .du-cta .du-btn { margin-top: 1.5rem; padding: .75rem 1.5rem; }

        .du-footer {
            border-top: 1px solid var(--border);
            background: var(--background);
            padding: 2.5rem 0;
        }
        .du-footer-grid { display: grid; gap: 2rem; }
        .du-footer h3 {
            font-family: var(--font-sans);
            font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 500;
        }
        .du-footer ul { list-style: none; margin: .75rem 0 0; padding: 0; display: grid; gap: .5rem; }
        .du-footer a { font-size: .875rem; color: var(--muted-foreground); }
        .du-footer a:hover { color: var(--primary); }
        .du-footer-copy {
            margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--border);
            font-size: .75rem; color: var(--muted-foreground);
        }

        .du-lightbox {
            position: fixed; inset: 0; z-index: 60;
            display: none; align-items: center; justify-content: center;
            background: rgba(0,0,0,.9); padding: 1rem;
        }
        .du-lightbox.is-open { display: flex; }
        .du-lightbox img { max-height: 85vh; max-width: 100%; border-radius: .5rem; object-fit: contain; }
        .du-lightbox-btn {
            position: absolute; border: 0; border-radius: 999px;
            background: rgba(0,0,0,.5); color: #fff; width: 2.5rem; height: 2.5rem;
            display: grid; place-items: center; cursor: pointer;
        }
        .du-lightbox-close { top: 1rem; right: 1rem; }
        .du-lightbox-prev { left: .5rem; top: 50%; transform: translateY(-50%); }
        .du-lightbox-next { right: .5rem; top: 50%; transform: translateY(-50%); }
        .du-lightbox-counter {
            position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%);
            background: rgba(0,0,0,.5); color: #fff; border-radius: 999px;
            padding: .375rem 1rem; font-size: .75rem;
        }

        @media (min-width: 640px) {
            .du-logo { height: 2.25rem; }
            .du-pad, .du-hero { padding: 2rem; }
            .du-hero h1 { font-size: 2.25rem; }
            .du-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
            .du-gallery img { height: 9rem; }
            .du-booking { padding: 1.5rem; }
            .du-calendar { padding: 1rem; }
            .du-map iframe { height: 18rem; }
            .du-cta { padding: 2.5rem; }
            .du-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
            .du-header-inner { padding-left: 0; padding-right: 0; }
            .du-amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }
        @media (min-width: 1024px) {
            .du-header-inner { grid-template-columns: auto minmax(0, 1fr) auto; }
            .du-nav { display: flex; }
            .du-hero { grid-template-columns: minmax(0, 1fr) 20rem; }
            .du-hero-img { height: 14rem; }
            .du-amenities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
            .du-booking-grid { grid-template-columns: 22rem minmax(0, 1fr); align-items: start; }
            .du-booking-side { position: sticky; top: 6rem; }
        }
