/* Static replacements for the React/shadcn widgets in the original build. */
svg.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* Mobile menu sheet */
.sheet-backdrop{position:fixed;inset:0;z-index:60;background:#10365066;opacity:0;pointer-events:none;transition:opacity .3s}
.sheet{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(380px,85vw);background:#fffdf8;color:#173f59;padding:45px 28px;overflow-y:auto;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.7,.2,1);box-shadow:-10px 0 40px #1036501f}
body.menu-open .sheet{transform:none}
body.menu-open .sheet-backdrop{opacity:1;pointer-events:auto}
.sheet-title{font:400 2.5rem/1 var(--font-heading);letter-spacing:-.045em}
.sheet-desc{font-size:.875rem;color:#5d7381;margin-top:8px}
.sheet nav{display:flex;flex-direction:column;gap:25px;margin:35px 0}
.sheet nav a{font:400 1.65rem/1.2 var(--font-heading);letter-spacing:-.035em}
.sheet .button{margin-top:12px}
.sheet-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;color:inherit;padding:0}
.sheet-close svg{width:20px;height:20px}

/* Testimonial fade */
.guest-quote{transition:opacity .35s}
.guest-quote.is-fading{opacity:0}

/* Select (matches shadcn/Radix Select, position="popper") */
.x-select{position:relative}
[data-slot=select-trigger]{color:inherit;font:inherit}
[data-slot=select-trigger] .chev{width:14px;height:14px;color:#516470}
.x-pop{position:absolute;top:100%;left:0;z-index:50;margin-top:4px;background:#fffdf8;color:#173f59;border:1px solid #cfdee6;border-radius:2px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;transform-origin:top left;animation:x-pop-in .15s ease-out}
.x-pop[hidden]{display:none}
.x-pop.search-options{min-width:max(8rem,100%);padding:4px;max-height:320px;overflow-y:auto}
[data-slot=select-item]{position:relative;display:flex;align-items:center;gap:8px;width:100%;padding:10px 29px 10px 12px;border:0;background:transparent;color:inherit;font:inherit;font-size:.9375rem;line-height:1.43;text-align:left;border-radius:2px;cursor:default;white-space:nowrap;outline:none}
[data-slot=select-item]:hover,[data-slot=select-item]:focus{background:#e5f2f8;color:#166b98}
[data-slot=select-item] .tick{position:absolute;right:8px;width:16px;height:16px;stroke-width:2}
@keyframes x-pop-in{from{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:none}}

/* Date popover + calendar (matches shadcn Popover + Calendar/react-day-picker) */
.x-date{position:relative}
.x-pop.calendar-panel{width:auto;padding:12px}
.date-button{color:inherit;font:inherit}
[data-slot=calendar]{--cell-size:36px;position:relative;padding:12px;width:fit-content}
.cal-nav{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between}
.cal-nav button{width:var(--cell-size);height:var(--cell-size);display:grid;place-items:center;border:0;background:transparent;border-radius:2px;padding:0;color:inherit}
.cal-nav button:hover:not(:disabled){background:#e5f2f8}
.cal-nav button:disabled{opacity:.5;cursor:default}
.cal-nav svg{width:16px;height:16px;stroke-width:2}
.cal-caption{height:var(--cell-size);display:flex;align-items:center;justify-content:center;padding:0 var(--cell-size);font-size:.875rem;font-weight:500;user-select:none}
.cal-grid{margin-top:16px}
.cal-weekdays,.cal-week{display:flex}
.cal-week{margin-top:8px}
.cal-weekdays span{width:var(--cell-size);text-align:center;font-size:.8rem;color:#5d7381;user-select:none}
.cal-day{width:var(--cell-size);height:var(--cell-size);display:flex;align-items:center;justify-content:center;border:0;padding:0;background:transparent;color:inherit;font:inherit;font-size:.875rem;line-height:1;border-radius:2px}
.cal-day:hover:not(:disabled){background:#e5f2f8;color:#166b98}
.cal-day.is-today{background:#e5f2f8;color:#166b98}
.cal-day.is-outside{color:#5d7381}
.cal-day:disabled{color:#5d7381;opacity:.5;cursor:default}
.cal-day.is-selected,.cal-day.is-selected:hover{background:#166b98;color:#fff}
.cal-day:focus-visible{outline:none;box-shadow:0 0 0 3px #526c7d80;position:relative;z-index:1}
.flexible{font-size:.875rem;text-decoration:underline;padding:0 12px 8px;border:0;background:transparent;color:inherit}

/* Coastal blue and sun-warmed rust. Colour-only overrides. */
:root{--holiday-rust:#ad5035;--holiday-rust-dark:#893c28}
.booking-section{background:#edf7fb}
.collection,.guest-note{background:#fffdf8}
.attractions-intro .eyebrow,.section-heading .eyebrow,.way-inner .eyebrow,.guest-note>.eyebrow,.homeowner-strip .eyebrow,.home-area{color:var(--holiday-rust)}
.home-category{background:#fff1e6ef;color:#863b28}
.search-submit,.is-scrolled .header-book{background:var(--cta-green);border-color:var(--cta-green);color:#fffdf8;}
.search-submit:hover,.is-scrolled .header-book:hover{background:var(--cta-dark);border-color:var(--cta-dark);color:#fffdf8}
.text-link{color:#166b98}
.quote-controls button[aria-pressed=true] span{background:var(--holiday-rust)}
.homeowner-strip{background:#faf0e7}
.light-button{background:#fffdf8;border-color:var(--cta-dark);color:var(--cta-dark);}
.light-button:hover{background:var(--cta-soft);color:var(--cta-dark);border-color:var(--cta-dark)}
::selection{background:#c5e8f6;color:#173f59}

/* Riviera refinement: ocean, porcelain, sun-baked clay. */
:root{--background:#fcfaf5;--foreground:#183e52;--primary:#176b91;--holiday-rust:#a84d34;--holiday-rust-dark:#853820}
body{background:var(--background)}
.hero-shade{background:linear-gradient(180deg,rgba(8,38,55,.38),transparent 36%,rgba(6,41,58,.08) 60%,rgba(8,38,55,.42))}
.site-header.is-scrolled{background:#fcfaf5f5;border-bottom-color:#d6e3e6;box-shadow:0 5px 30px #123c4d0a}
.header-book{border-radius:3px}
.booking-section{background:linear-gradient(115deg,#143e55 0%,#185b78 62%,#25768e 100%);color:#fffaf1;border-color:#ffffff18}
.booking-intro>p{color:#d2e7eb}
.search-form{background:#fffdf8;color:#183e52;border-color:#ffffffaa;border-radius:6px;box-shadow:0 12px 32px #072d3e24}
.search-field{border-color:#dce6e6}
.search-label{color:#586f79}
.search-submit{background:var(--cta-green);border-color:var(--cta-green);border-radius:3px;box-shadow:0 4px 12px #173e351a;}
.search-submit:hover{background:var(--cta-dark);border-color:var(--cta-dark);color:#fffdf8}
.collection{background:#fcfaf5}
.home-image{border-radius:5px;background:#f0ebe3;box-shadow:0 6px 22px #183e5209}
.home-category{background:#fffcf4f5;color:#91432e;border:1px solid #ffffffa0;border-radius:2px}
.home-bottom{border-color:#d9e1df}
.home-bottom>a{color:#a84d34;border-radius:50%;background:#f5e9df}
.home-bottom>a:hover{background:#a84d34;color:#fffaf2}
.home-area{color:#985039}
.home-copy h3{color:#183e52}
.text-link{color:#176486;border-bottom-color:#7cabbc}
.text-link:hover{color:#a84d34;border-bottom-color:#a84d34}
.attractions{background:#eef5f5}
.attractions-intro{border-color:#d6e3e6}
.attractions-intro .eyebrow{color:#96513a}
.attractions-intro-note>p{color:#506e7a}
.attraction-progress .is-complete{background:#eed0b0}
.aliving-way{background:linear-gradient(115deg,#17465b,#1b627a);color:#fffaf1}
.way-inner .eyebrow{color:#f0c6a5}
.way-copy>p{color:#d5e8eb}
.way-promises{color:#fffaf1}
.way-promises svg{color:#eec6a5}
.way-copy .text-link{color:#fffaf1;border-bottom-color:#a8ccd2}
.way-copy .text-link:hover{color:#f0c6a5;border-bottom-color:#f0c6a5}
.guest-note{background:#fcfaf5}
.guest-note blockquote{color:#1c536b}
.guest-note>.eyebrow{color:#a04c34}
.guest-name>span{color:#667c83}
.quote-controls button span{background:#c7d8da}
.quote-controls button[aria-pressed=true] span{background:#a84d34}
.homeowner-strip{background:#f4e7da;border-color:#e6d6c6}
.homeowner-strip h2{color:#624436}
.homeowner-strip .eyebrow{color:#914b33}
.homeowner-strip .text-link{color:#814630;border-color:#b8896f}
.site-footer{background:#102e41;color:#e6f0f1}
.footer-brand p,.footer-col p{color:#b0cad2}
.footer-col>h3{color:#edc8a8}
.footer-bottom{color:#a7c2cd;border-color:#ffffff1f}
.float-contact{background:#fffdf8;color:#a84d34;border-color:#dfc8b8;box-shadow:0 4px 22px #102e4120}
.x-pop{border-color:#d0e0e5;box-shadow:0 10px 32px #102e411c}
.cal-day.is-selected,.cal-day.is-selected:hover{background:#a84d34;color:white}
.cal-day.is-today{background:#e2f0f3;color:#18536c}
:focus-visible{outline-color:#a84d34}
.booking-section .search-error{color:#8e3526;background:#fffdf8}
