:root {
  --ink: #182019;
  --forest: #1d271f;
  --moss: #68715f;
  --cream: #f1ecdf;
  --paper: #f8f5ed;
  --clay: #b46f4d;
  --line: rgba(24, 32, 25, 0.18);
  --display: "Newsreader", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.booking-open, body.menu-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; background: #fff; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }

.site-header { position: absolute; z-index: 20; top: 0; left: 0; width: 100%; height: 94px; display: flex; align-items: center; justify-content: space-between; padding: 0 4vw; color: white; border-bottom: 1px solid rgba(255,255,255,.25); transition: background .3s, color .3s; }
.brand { display: flex; align-items: center; gap: .75rem; }
.brand-mark { font-family: var(--display); font-size: 2.45rem; line-height: .8; letter-spacing: -.08em; }
.brand-mark sup { font-family: var(--sans); font-size: .42em; position: relative; left: .08em; top: -.75em; }
.brand-name { font-size: .68rem; line-height: 1.05; letter-spacing: .13em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; gap: 2.3rem; font-size: .81rem; }
.site-nav a { position: relative; }
.site-nav a::after { content: ""; position: absolute; height: 1px; background: currentColor; left: 0; right: 100%; bottom: -.35rem; transition: right .25s; }
.site-nav a:hover::after { right: 0; }
.nav-book { border: 1px solid rgba(255,255,255,.6); background: transparent; padding: .75rem 1.1rem; cursor: pointer; }
.menu-button { display: none; }

.hero { position: relative; min-height: 100svh; color: #fff; overflow: hidden; }
.hero-image { position: absolute; inset: 0; height: 100%; object-fit: cover; animation: heroScale 1.8s cubic-bezier(.2,.7,.2,1) both; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,14,10,.78) 0%, rgba(10,14,10,.43) 32%, rgba(10,14,10,.05) 68%), linear-gradient(0deg, rgba(10,14,10,.42), transparent 38%); }
.hero-content { position: relative; z-index: 2; width: min(620px, 88vw); padding: clamp(9.5rem, 21vh, 14rem) 0 11rem 7.5vw; animation: heroText .9s .2s ease-out both; }
.eyebrow { margin: 0 0 1.25rem; font-size: .68rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; }
.hero-kicker { color: rgba(255,255,255,.76); }
h1, h2, h3, blockquote { font-family: var(--display); font-weight: 400; }
h1 { margin: 0; font-size: clamp(4.5rem, 8.4vw, 8.8rem); letter-spacing: -.06em; line-height: .73; }
h1 em, h2 em { font-weight: 400; }
.hero-copy { max-width: 390px; margin: 2.35rem 0 1.7rem; color: rgba(255,255,255,.82); font-size: 1rem; line-height: 1.65; }
.text-link { display: inline-flex; border: 0; border-bottom: 1px solid currentColor; background: transparent; align-items: center; justify-content: space-between; gap: 3rem; padding: 0 0 .45rem; font-size: .78rem; cursor: pointer; }
.text-link.light { color: white; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translate(4px, -3px); }
.availability-bar { position: absolute; z-index: 3; left: 7.5vw; right: 7.5vw; bottom: 2.5rem; min-height: 92px; display: grid; grid-template-columns: 1.4fr 1fr 1fr .8fr 1.05fr; background: rgba(248,245,237,.96); color: var(--ink); box-shadow: 0 20px 80px rgba(0,0,0,.22); }
.availability-bar label { display: flex; flex-direction: column; justify-content: center; gap: .5rem; padding: 1rem 1.5rem; border-right: 1px solid var(--line); }
.availability-bar label span { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--moss); }
.availability-bar input, .availability-bar select { border: 0; padding: 0; background: transparent; outline: 0; color: var(--ink); font-size: .83rem; min-width: 0; }
.availability-bar button { display: flex; justify-content: space-between; align-items: center; border: 0; padding: 0 1.6rem; background: var(--clay); color: white; cursor: pointer; }
.availability-bar button:hover { background: #9c5d40; }
.hero-caption { position: absolute; right: 1.1rem; bottom: 8.2rem; z-index: 2; margin: 0; font-size: .58rem; letter-spacing: .12em; writing-mode: vertical-rl; text-transform: uppercase; opacity: .65; }

.section-pad { padding: clamp(6rem, 12vw, 11rem) 7.5vw; }
.intro { background: var(--paper); }
.intro-grid { display: grid; grid-template-columns: 1.45fr .55fr; gap: 8vw; align-items: end; }
.intro h2, .section-heading h2, .closing h2 { margin: 0; font-size: clamp(3.8rem, 7vw, 7.7rem); letter-spacing: -.055em; line-height: .83; }
.intro-grid > div p { margin: 0 0 2rem; font-family: var(--display); font-size: 1.35rem; line-height: 1.45; }

.stays { padding-top: 2rem; }
.section-heading { display: grid; grid-template-columns: 1.45fr .55fr; gap: 8vw; align-items: end; margin-bottom: 5.5rem; }
.section-heading > p { margin: 0; font-family: var(--display); font-size: 1.25rem; line-height: 1.5; }
.featured-stay { display: grid; grid-template-columns: 1.38fr .62fr; background: var(--cream); }
.stay-media { position: relative; overflow: hidden; }
.stay-media img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.featured-stay:hover .stay-media img, .stay-item:hover .stay-media img { transform: scale(1.025); }
.image-note { position: absolute; left: 1rem; bottom: 1rem; padding: .5rem .7rem; background: rgba(248,245,237,.9); font-size: .61rem; letter-spacing: .12em; text-transform: uppercase; }
.stay-info { min-height: 610px; padding: 2.5rem; display: flex; flex-direction: column; }
.stay-number { font-family: var(--display); font-size: 1rem; margin-bottom: auto; }
.property-type { margin: 0 0 .65rem; font-size: .65rem; color: var(--moss); text-transform: uppercase; letter-spacing: .16em; }
.stay-info h3, .stay-item h3 { margin: 0; font-size: clamp(2.5rem, 4vw, 4.6rem); letter-spacing: -.04em; line-height: .95; }
.property-meta { margin: .8rem 0 0; font-size: .75rem; color: var(--moss); }
.property-description { margin: 2rem 0; font-family: var(--display); font-size: 1.1rem; line-height: 1.5; }
.property-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.button { border: 0; min-height: 50px; padding: 0 1.35rem; cursor: pointer; font-size: .75rem; letter-spacing: .02em; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button.dark { background: var(--ink); color: #fff; }
.button.cream { background: var(--cream); color: var(--ink); }
.button.wide { width: 100%; }
.platform-link { border: 0; background: transparent; font-size: .7rem; color: var(--moss); cursor: pointer; padding: .8rem .2rem; }
.stay-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; margin-top: 9rem; }
.stay-item.offset { margin-top: 9rem; }
.stay-item .stay-media { aspect-ratio: 4 / 4.5; }
.stay-item-heading { display: flex; justify-content: space-between; align-items: end; margin-top: 1.5rem; }
.stay-item h3 { font-size: clamp(2.5rem, 4vw, 4rem); }
.round-arrow { flex: 0 0 45px; width: 45px; height: 45px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.round-arrow:hover { background: var(--ink); color: white; transform: rotate(8deg); }

.direct-note { margin-top: 4rem; padding: clamp(7rem, 13vw, 12rem) 7.5vw; background: var(--forest); color: white; text-align: center; }
.direct-note blockquote { margin: 0 auto; max-width: 1000px; font-size: clamp(3.2rem, 6vw, 6.4rem); line-height: .95; letter-spacing: -.05em; }
.direct-benefits { margin: 3.5rem auto 2.5rem; display: flex; justify-content: center; flex-wrap: wrap; gap: 1.2rem 3.5rem; font-size: .72rem; color: rgba(255,255,255,.7); }
.direct-benefits span::before { content: "✓"; margin-right: .55rem; color: #d0ad8d; }

.closing { text-align: center; }
.closing h2 { font-size: clamp(4.3rem, 8vw, 8.5rem); }
.closing-actions { margin-top: 3.5rem; display: flex; justify-content: center; align-items: center; gap: 2.2rem; }

footer { padding: 6rem 7.5vw 2rem; background: #121713; color: white; }
.footer-brand { display: flex; align-items: start; gap: 1rem; }
.footer-brand .brand-mark { font-size: 4.5rem; }
.footer-brand p { margin: 0; font-family: var(--display); font-size: 1.6rem; color: rgba(255,255,255,.65); }
.footer-nav { display: grid; grid-template-columns: 1fr 1fr; max-width: 440px; margin: 6rem 0 6rem auto; }
.footer-nav div { display: flex; flex-direction: column; gap: .8rem; font-size: .75rem; }
.footer-nav div > span { margin-bottom: .4rem; color: rgba(255,255,255,.45); font-size: .6rem; text-transform: uppercase; letter-spacing: .15em; }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.5); font-size: .62rem; }

.booking-shell { position: fixed; z-index: 50; inset: 0; visibility: hidden; pointer-events: none; }
.booking-shell.is-open { visibility: visible; pointer-events: auto; }
.booking-scrim { position: absolute; inset: 0; border: 0; background: rgba(9,12,10,.56); opacity: 0; transition: opacity .35s; cursor: default; }
.booking-shell.is-open .booking-scrim { opacity: 1; }
.booking-panel { position: absolute; right: 0; top: 0; bottom: 0; width: min(590px, 100%); background: var(--paper); padding: 2rem clamp(1.25rem, 4vw, 3.5rem); overflow-y: auto; transform: translateX(100%); transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.booking-shell.is-open .booking-panel { transform: translateX(0); }
.booking-header { display: flex; justify-content: space-between; align-items: start; margin-bottom: 2rem; }
.booking-header h2 { margin: 0; font-size: 4rem; line-height: .9; }
.close-button { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; background: transparent; font-size: 1.5rem; cursor: pointer; }
.booking-form { display: grid; gap: 1rem; }
.booking-form label { display: grid; gap: .45rem; font-size: .64rem; color: var(--moss); text-transform: uppercase; letter-spacing: .1em; }
.booking-form input, .booking-form select, .booking-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--ink); padding: .9rem; outline: none; text-transform: none; letter-spacing: 0; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { border-color: var(--ink); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.estimate { padding: 1.25rem; background: var(--cream); }
.estimate div { display: flex; justify-content: space-between; align-items: baseline; }
.estimate span { font-family: var(--display); font-size: 1.2rem; }
.estimate strong { font-family: var(--display); font-size: 1.6rem; font-weight: 500; }
.estimate p { margin: .6rem 0 0; font-size: .64rem; color: var(--moss); }
.form-note { margin: 0; text-align: center; color: var(--moss); font-size: .62rem; line-height: 1.5; }
.toast { position: fixed; z-index: 100; left: 50%; bottom: 1.5rem; transform: translate(-50%, 20px); max-width: min(460px, 90vw); padding: .9rem 1.2rem; background: var(--ink); color: #fff; font-size: .72rem; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

.reveal { opacity: 0; transform: translateY(35px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in-view { opacity: 1; transform: none; }
@keyframes heroScale { from { transform: scale(1.06); } to { transform: scale(1); } }
@keyframes heroText { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

@media (max-width: 900px) {
  .site-header { height: 76px; padding: 0 1.2rem; }
  .menu-button { display: flex; z-index: 2; width: 42px; height: 42px; border: 0; background: transparent; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
  .menu-button span { width: 22px; height: 1px; background: currentColor; transition: transform .25s; }
  .menu-open .menu-button span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-open .menu-button span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .site-nav { position: fixed; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 2rem; background: var(--forest); font-family: var(--display); font-size: 2.3rem; opacity: 0; pointer-events: none; transition: opacity .3s; }
  .menu-open .site-nav { opacity: 1; pointer-events: auto; }
  .nav-book { font-family: var(--sans); font-size: .8rem; }
  .hero-content { padding: 10rem 1.25rem 14rem; }
  h1 { font-size: clamp(4.5rem, 22vw, 7rem); line-height: .78; }
  .hero-shade { background: linear-gradient(90deg, rgba(10,14,10,.75), rgba(10,14,10,.08)), linear-gradient(0deg, rgba(10,14,10,.5), transparent 45%); }
  .availability-bar { left: 1.25rem; right: 1.25rem; bottom: 1.25rem; min-height: 118px; grid-template-columns: 1fr 1fr; }
  .availability-bar label { padding: .75rem; }
  .availability-bar label:first-child, .availability-bar label:nth-child(4) { display: none; }
  .availability-bar button { grid-column: 1 / -1; min-height: 48px; }
  .hero-caption { display: none; }
  .section-pad { padding: 6rem 1.25rem; }
  .intro-grid, .section-heading { grid-template-columns: 1fr; gap: 2.5rem; }
  .intro h2, .section-heading h2 { font-size: clamp(3.5rem, 18vw, 5.5rem); }
  .intro-grid > div p, .section-heading > p { max-width: 580px; }
  .featured-stay { grid-template-columns: 1fr; }
  .featured-stay .stay-media { aspect-ratio: 1 / .92; }
  .stay-info { min-height: 500px; padding: 1.5rem; }
  .stay-pair { gap: 1.25rem; margin-top: 5rem; }
  .stay-item.offset { margin-top: 5rem; }
}

@media (max-width: 620px) {
  .brand-name { display: none; }
  .hero-content { padding-bottom: 13.5rem; }
  .hero-copy { max-width: 290px; font-size: .9rem; }
  .availability-bar { bottom: 1rem; }
  .stay-pair { grid-template-columns: 1fr; }
  .stay-item.offset { margin-top: 3rem; }
  .stay-item .stay-media { aspect-ratio: 1 / 1.08; }
  .direct-note { padding: 7rem 1.25rem; }
  .direct-benefits { flex-direction: column; gap: .9rem; }
  .closing-actions { flex-direction: column; }
  .footer-nav { grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 4rem; }
  .footer-bottom { flex-direction: column; gap: .5rem; }
  .form-row { grid-template-columns: 1fr; }
  .booking-header h2 { font-size: 3.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Booking application additions; retain the existing visual system. */
[hidden] { display: none !important; }
button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
:focus-visible { outline: 2px solid var(--clay); outline-offset: 4px; }
.service-banner { margin: 0; padding: 1rem 7.5vw; background: var(--cream); font-size: .76rem; line-height: 1.5; }
.hero-image { object-position: 50% 58%; }
.stay-pair figure { margin-left: 0; margin-right: 0; }
.stay-item figcaption { margin-top: 1.5rem; }
.stay-item figcaption h3 { font-size: 3rem; }
.stay-item .eyebrow { margin-bottom: 3rem; }
.booking-steps { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1000px; padding: 0; margin: 4rem auto; list-style: none; text-align: left; gap: 3rem; }
.booking-steps li { border-top: 1px solid rgba(255,255,255,.3); padding-top: 1.25rem; }
.booking-steps span { display: block; color: #d0ad8d; font-size: .7rem; margin-bottom: 1.5rem; }
.booking-steps strong { font-weight: 400; font-family: var(--display); font-size: 1.6rem; }
.booking-steps p { font-size: .85rem; line-height: 1.6; color: rgba(255,255,255,.75); }
.booking-intro { font-size: .85rem; line-height: 1.6; margin: -1rem 0 2rem; color: var(--moss); }
.estimate dl { margin: 1rem 0 0; }
.estimate dl:empty { display: none; }
.estimate dl div { display: flex; justify-content: space-between; padding: .35rem 0; font-size: .78rem; }
.estimate dd { margin: 0; }
.policy-details { border-top: 1px solid var(--line); padding-top: 1rem; font-size: .8rem; }
.policy-details summary { cursor: pointer; line-height: 1.5; }
.policy-details h4 { font-size: .8rem; margin: 1.5rem 0 .5rem; }
.policy-details p { white-space: pre-wrap; line-height: 1.65; }
.booking-form .checkbox-label { display: flex; align-items: flex-start; gap: .75rem; text-transform: none; letter-spacing: 0; font-size: .8rem; line-height: 1.5; }
.booking-form .checkbox-label input { width: 18px; height: 18px; margin: .2rem 0 0; flex-shrink: 0; accent-color: var(--ink); }
.privacy-note { margin: 0; font-size: .7rem; line-height: 1.6; color: var(--moss); }
.form-error { font-size: .82rem; line-height: 1.5; color: #9a3325; margin: 0; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 620px) { .booking-steps { grid-template-columns: 1fr; gap: 2rem; } .booking-steps span { margin-bottom: .75rem; } .service-banner { padding: 1rem 1.25rem; } }
@media (max-width: 900px) { .site-nav { visibility: hidden; } .menu-open .site-nav { visibility: visible; } }
.site-header { background: linear-gradient(180deg, rgba(9,18,13,.55), rgba(9,18,13,.16)); }
.home-details { padding-top: 0; }
.home-details h2,.host-story h2 { font-size: clamp(3.5rem,6vw,6.5rem); letter-spacing: -.05em; line-height: .95; margin: 0 0 3rem; }
.amenities { list-style: none; display: grid; grid-template-columns: repeat(3,1fr); padding: 0; margin: 0 0 5rem; border-top: 1px solid var(--line); }
.amenities li { padding: 1.2rem .5rem 1.2rem 0; border-bottom: 1px solid var(--line); font-size: .85rem; }
.sleeping-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.sleeping-layout h3 { font-size: 3rem; margin: 0; letter-spacing: -.04em; }
.sleeping-layout p { line-height: 1.7; color: var(--moss); max-width: 350px; }
.sleeping-layout dl { margin: 0; }
.sleeping-layout dl div { padding: 1rem 0; border-bottom: 1px solid var(--line); }
.sleeping-layout dt { font-size: .9rem; }.sleeping-layout dd { margin: .5rem 0 0; font-size: .8rem; line-height: 1.6; color: var(--moss); }
.room-photos { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin: 3rem 0; }
.room-photos figure { margin: 0; }.room-photos img { aspect-ratio: 4/3; object-fit: cover; }.room-photos figcaption { font-size: .7rem; margin-top: .75rem; color: var(--moss); }
.property-notes { border-block: 1px solid var(--line); padding: 1.5rem 0; font-size: .85rem; line-height: 1.8; }.property-notes summary { cursor: pointer; }
.host-story { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8vw; padding-top: 0; align-items: center; }
.host-photo img { aspect-ratio: 4/5; object-fit: cover; }.host-photo p { font-size: .75rem; color: var(--moss); }
.host-copy>p:not(.eyebrow) { line-height: 1.8; }.host-facts { display: flex; gap: .5rem 1.5rem; flex-wrap: wrap; padding-block: 1rem; font-size: .75rem; }
.host-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; border-top: 1px solid var(--line); padding-top: 1.5rem; margin-top: 1rem; }.host-stats dt { font-size: .65rem; color: var(--moss); }.host-stats dd { font-family: var(--display); font-size: 2rem; margin: .5rem 0 0; }
.host-copy .source-note { font-size: .7rem; color: var(--moss); margin-bottom: 2rem; }
.date-calendar { border-block: 1px solid var(--line); padding: 1rem 0; }.calendar-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }.calendar-toolbar .quiet-button { border: 1px solid var(--line); background: transparent; padding: .5rem .75rem; cursor: pointer; }.calendar-toolbar strong { font-size: .85rem; font-weight: 500; }.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .2rem; }.calendar-weekday { text-align: center; font-size: .65rem; color: var(--moss); padding: .5rem 0; }.calendar-day { border: 0; background: transparent; padding: .6rem 0; min-height: 36px; font-size: .8rem; cursor: pointer; }.calendar-day:not(:disabled):hover { background: var(--cream); }.calendar-day.unavailable { text-decoration: line-through; color: var(--moss); }.calendar-day.selected { background: var(--ink); color: white; }.calendar-day.in-range { background: var(--cream); }.calendar-status { font-size: .7rem; line-height: 1.6; color: var(--moss); }
@media(max-width:700px) { .amenities { grid-template-columns: 1fr 1fr; margin-bottom: 3rem; }.sleeping-layout,.host-story { grid-template-columns: 1fr; gap: 2.5rem; }.room-photos { grid-template-columns: 1fr; }.host-photo { max-width: 400px; }.host-stats { gap: .5rem; }.host-stats dd { font-size: 1.6rem; } }

/* Platform reservations remain useful while direct checkout is being connected. */
.platform-booking-bar {position:absolute;z-index:3;left:7.5vw;right:7.5vw;bottom:2.5rem;display:grid;grid-template-columns:1.4fr 1fr 1fr;background:var(--paper);color:var(--ink);min-height:92px;}
.platform-booking-bar>div {display:flex;flex-direction:column;justify-content:center;gap:.5rem;padding:1.25rem 1.5rem;}
.platform-booking-bar strong {font-weight:500;font-size:.85rem;}.platform-booking-bar span {font-size:.7rem;color:var(--moss);}
.platform-booking-bar>a {display:flex;align-items:center;justify-content:center;padding:1rem;border-left:1px solid var(--line);font-size:.8rem;transition:background .2s;}
.platform-booking-bar>a:hover {background:var(--cream);}.booking-alternatives {display:grid;gap:1rem;line-height:1.6;}.booking-alternatives .button {display:flex;align-items:center;justify-content:center;}
@media(max-width:800px){.platform-booking-bar{left:1.25rem;right:1.25rem;bottom:1.25rem;grid-template-columns:1fr 1fr;}.platform-booking-bar>div{grid-column:1/-1;padding:1rem;}.platform-booking-bar>a{font-size:.72rem;border-top:1px solid var(--line);padding:1rem .5rem;}.platform-booking-bar>a:first-of-type{border-left:0;}}

/* The Sanctuary — editorial desert-house direction */
:root{--ink:#242820;--forest:#292f27;--moss:#717466;--cream:#eee8dc;--paper:#f7f5ef;--clay:#a86742;--line:rgba(36,40,32,.18);--display:"Newsreader",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
body{background:var(--paper);color:var(--ink)}
.site-header{height:88px;padding:0 5vw;position:absolute;background:linear-gradient(180deg,rgba(21,26,22,.45),transparent);border-color:rgba(255,255,255,.2)}
.brand{gap:.7rem}.brand-mark{font-size:2.8rem;font-style:italic}.brand-name{font-size:.68rem;line-height:1.25;letter-spacing:.14em}.brand-name small{font-size:.58rem;letter-spacing:.1em;opacity:.72}
.site-nav{gap:clamp(1rem,2.2vw,2.3rem);font-size:.73rem}.site-nav a::after{bottom:-.5rem}.nav-book{padding:.8rem 1.15rem;border:1px solid rgba(255,255,255,.74);font-size:.7rem;letter-spacing:.07em;text-transform:uppercase}.nav-book:hover{background:white;color:var(--ink)}
.hero{height:min(920px,100svh);min-height:690px}.hero-image{object-position:50% 56%;animation-duration:2.2s}.hero-shade{background:linear-gradient(90deg,rgba(15,20,17,.7),rgba(15,20,17,.28) 45%,rgba(15,20,17,.02) 84%),linear-gradient(0deg,rgba(14,18,14,.43),transparent 50%)}
.hero-content{width:min(760px,88vw);padding:clamp(11rem,25vh,16rem) 0 11rem 9vw}.hero-kicker{font-size:.62rem;letter-spacing:.2em}.hero h1{font-size:clamp(5.4rem,10vw,10rem);line-height:.76;letter-spacing:-.07em}.hero h1 em{font-style:italic}.hero-copy{font-family:var(--display);font-size:clamp(1.15rem,1.7vw,1.55rem);line-height:1.4;max-width:440px;margin:2.1rem 0 1.8rem;color:rgba(255,255,255,.87)}
.hero-actions{display:flex;align-items:center;gap:1.6rem}.hero-actions .button{min-width:154px;display:flex;justify-content:space-between;align-items:center}.hero-explore{font-size:.7rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:.5rem}.hero-explore span{margin-left:.7rem}.hero-caption{right:2rem;bottom:3rem;font-size:.56rem}.hero-index{position:absolute;right:8vw;top:50%;z-index:2;writing-mode:vertical-rl;font-size:.57rem;letter-spacing:.2em;color:rgba(255,255,255,.76)}
.availability-bar{left:9vw;right:9vw;bottom:1.8rem;box-shadow:0 18px 60px rgba(0,0,0,.2);min-height:82px}.availability-bar button{background:var(--forest)}.availability-bar button:hover{background:#3d453b}
.service-banner{padding:.7rem 5vw;text-align:center;background:#ebe6db;color:#565b50;font-size:.67rem;letter-spacing:.025em}
.section-pad{padding:clamp(5.5rem,10vw,9.5rem) 8vw}.section-heading{grid-template-columns:1.2fr .8fr;gap:7vw;margin-bottom:4.2rem}.section-heading h2,.home h2,.local-guide h2,.house-rules h2,.contact h2{font-size:clamp(3.6rem,7.2vw,7.3rem);line-height:.82;letter-spacing:-.065em}.section-heading h2 em,.home h2 em,.local-guide h2 em,.house-rules h2 em,.contact h2 em{font-style:italic}.section-heading>.eyebrow{margin-bottom:1rem}.section-heading>p{max-width:430px;font-family:var(--display);font-size:1.35rem;line-height:1.42;color:#575b51}.eyebrow{font-size:.61rem;letter-spacing:.2em;color:var(--moss)}
.home{padding-top:8rem}.home-feature{display:grid;grid-template-columns:1.4fr .6fr;background:#eeeae0}.home-feature-photo{position:relative;min-height:610px;overflow:hidden}.home-feature-photo img{height:100%;object-fit:cover;object-position:center}.image-note{background:rgba(247,245,239,.92);font-size:.55rem;letter-spacing:.14em;padding:.65rem .8rem}.home-feature-copy{padding:clamp(2rem,4vw,4rem);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.property-type{font-size:.58rem;letter-spacing:.18em;color:var(--moss)}.home-feature-copy h3{margin:.4rem 0 0;font-size:clamp(2.7rem,4.5vw,4.6rem);line-height:.9;letter-spacing:-.055em}.property-meta{font-size:.72rem;color:var(--moss);margin:.85rem 0}.home-feature-copy .property-description{font-family:var(--display);font-size:1.14rem;line-height:1.5;margin:1.1rem 0 1.5rem}.button{font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;min-height:52px;padding:0 1.35rem}.button.dark{background:var(--forest)}.button.dark:hover{background:#40473e}
.home-details-block{display:grid;grid-template-columns:.62fr 1.38fr;gap:8vw;margin:8rem 0 3rem}.home-details-intro h3,.guide-food h3{font-family:var(--display);font-size:clamp(2.9rem,4.5vw,4.7rem);font-weight:400;line-height:.93;letter-spacing:-.05em;margin:0}.amenities{grid-template-columns:repeat(3,1fr);margin:0 0 4rem;border-top:1px solid var(--line)}.amenities li{font-family:var(--display);font-size:1.1rem;padding:1.05rem .5rem 1.05rem 0;border-bottom:1px solid var(--line)}.sleeping-layout{grid-template-columns:.65fr 1.35fr;gap:4vw}.sleeping-layout h4{font-family:var(--display);font-size:2rem;font-weight:400;margin:0}.sleeping-layout p{font-size:.82rem;line-height:1.7}.sleeping-layout dl{margin:0}.sleeping-layout dl div{padding:.75rem 0}.sleeping-layout dt{font-family:var(--display);font-size:1.1rem}.sleeping-layout dd{font-size:.74rem;line-height:1.5}.home-photo-pair{display:grid;grid-template-columns:1.15fr .85fr;gap:3vw;margin:7rem 0 3rem;align-items:center}.home-photo-pair figure{margin:0}.home-photo-pair figure:nth-child(2){margin-top:8rem}.home-photo-pair img{width:100%;aspect-ratio:4/3;object-fit:cover}.home-photo-pair figcaption{font-family:var(--display);font-size:1.1rem;margin-top:.7rem;color:#595e53}.property-notes{border-block:1px solid var(--line);padding:1.1rem 0;font-size:.75rem}.property-notes summary{cursor:pointer;letter-spacing:.05em}.property-notes ul{line-height:1.8;color:#5c6057}
.photo-tour{background:#eeece5;padding-bottom:8rem}.tour-heading{padding-bottom:3.2rem}.tour-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}.tour-toolbar>p{margin:0;color:var(--moss);font-size:.7rem;letter-spacing:.04em}.tour-filters{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.tour-filter{border:1px solid rgba(36,40,32,.25);background:transparent;color:var(--ink);padding:.62rem .85rem;font-size:.61rem;cursor:pointer;transition:background .2s,color .2s}.tour-filter.is-active,.tour-filter:hover{background:var(--forest);color:white;border-color:var(--forest)}.tour-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.35rem;padding:0 3vw}.tour-photo{margin:0;min-width:0}.tour-photo:nth-child(11n+1){grid-column:span 2;grid-row:span 2}.tour-photo-button{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden}.tour-photo img{width:100%;height:100%;min-height:220px;aspect-ratio:4/3;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .35s}.tour-photo:nth-child(11n+1) img{aspect-ratio:1.34;min-height:440px}.tour-photo-button:hover img{transform:scale(1.035);filter:saturate(1.04)}.tour-photo figcaption{font-size:.58rem;text-transform:uppercase;letter-spacing:.12em;color:#77786d;padding:.55rem .05rem .2rem}
.photo-lightbox{width:min(1120px,96vw);height:min(94svh,900px);max-width:none;max-height:none;border:0;padding:3rem 4.5rem 2rem;background:#191d19;color:#fff;overflow:hidden}.photo-lightbox::backdrop{background:rgba(13,17,14,.94)}.lightbox-toolbar{position:absolute;left:2rem;right:2rem;top:1.2rem;display:flex;justify-content:space-between;align-items:center}.lightbox-toolbar p,.lightbox-count{font-size:.65rem;letter-spacing:.1em;color:rgba(255,255,255,.68)}.lightbox-toolbar button{border:0;background:none;color:white;font-size:2rem;cursor:pointer}.photo-lightbox figure{height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.photo-lightbox figure img{width:auto;max-width:100%;height:auto;max-height:calc(100% - 3rem);object-fit:contain}.photo-lightbox figcaption{margin-top:1rem;font-family:var(--display);font-size:1.1rem}.lightbox-arrow{position:absolute;top:50%;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:transparent;color:white;width:44px;height:44px;cursor:pointer}.lightbox-arrow.previous{left:1rem}.lightbox-arrow.next{right:1rem}.lightbox-count{position:absolute;bottom:.3rem;left:0;right:0;text-align:center}
.local-guide{background:#f7f5ef}.guide-location{display:grid;grid-template-columns:.45fr 1.55fr;gap:8vw;align-items:start;padding:4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:5rem 0}.guide-coordinate{font-family:var(--display);font-size:1.25rem;line-height:1.4;color:var(--moss);margin:0}.guide-location h3{font-family:var(--display);font-size:clamp(2.8rem,5vw,5.2rem);font-weight:400;line-height:.9;letter-spacing:-.055em;margin:0 0 1.3rem}.guide-location>div>p:not(.eyebrow){max-width:550px;color:#65685e;font-size:.83rem;line-height:1.8}.guide-location .text-link{margin-top:.5rem;font-size:.7rem}.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.guide-list,.food-list{list-style:none;padding:0;margin:1rem 0 0}.guide-list li{display:flex;align-items:center;gap:1rem;justify-content:space-between;border-top:1px solid var(--line);padding:1.25rem 0}.guide-list li>div{max-width:500px}.guide-list h3{font-family:var(--display);font-size:1.35rem;font-weight:400;margin:0}.guide-list p{font-size:.72rem;line-height:1.55;color:#666a60;margin:.45rem 0 0}.guide-list li>a{flex:0 0 34px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:.85rem}.guide-list li>a:hover{background:var(--forest);color:white}.guide-food{display:grid;grid-template-columns:.7fr 1.3fr;gap:6vw;align-items:start;margin-top:8rem;padding:4rem 0;border-top:1px solid var(--line)}.food-list{margin:0}.food-list a{display:grid;grid-template-columns:30px 1fr 1.1fr 20px;gap:.8rem;align-items:baseline;padding:1.15rem 0;border-bottom:1px solid var(--line)}.food-list a>span,.food-list small{font-size:.6rem;color:var(--moss)}.food-list strong{font-family:var(--display);font-size:1.2rem;font-weight:400}.food-list b{font-weight:400}.food-list a:hover strong{text-decoration:underline;text-underline-offset:4px}.guide-note{font-size:.62rem;color:#74766d;margin:2rem 0 0}
.house-rules{background:#e9e6dd}.rules-list{list-style:none;padding:0;margin:1rem 0 0;border-top:1px solid var(--line)}.rules-list li{display:grid;grid-template-columns:.35fr .65fr;gap:3rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}.rules-list li>span{font-size:.65rem;color:var(--moss)}.rules-list h3{font-family:var(--display);font-size:1.6rem;font-weight:400;margin:0}.rules-list p{font-size:.78rem;line-height:1.7;color:#62665d;margin:.5rem 0 0;max-width:610px}.rules-footnote{font-size:.7rem;line-height:1.6;color:#666a60;margin-top:2rem}
.contact{background:var(--forest);color:#fff;text-align:center;padding-top:8rem;padding-bottom:8rem}.contact .eyebrow{color:rgba(255,255,255,.63)}.contact h2{font-size:clamp(4.2rem,8vw,8rem)}.contact-inner>p:not(.eyebrow){font-family:var(--display);font-size:1.3rem;color:rgba(255,255,255,.76);margin:2rem 0}.contact-email{display:inline-flex;gap:1rem;align-items:center;border-bottom:1px solid rgba(255,255,255,.5);padding:0 0 .6rem;font-size:.95rem}.contact-email:hover{color:#d4b99c}.contact-book{display:flex;justify-content:space-between;gap:3rem;align-items:center;margin:2.5rem auto 0;min-width:170px;background:#eee8dc}.contact-book:hover{background:#fff}
footer{padding:4.5rem 8vw 2rem;background:#1f241f;color:white}.footer-brand .brand-mark{font-size:3.5rem}.footer-brand p{font-size:1.3rem}.footer-brand small{font-family:var(--sans);font-size:.62rem;letter-spacing:.1em;color:rgba(255,255,255,.55)}.footer-nav{grid-template-columns:1fr 1fr;gap:2rem;max-width:420px;margin:4rem 0 4rem auto}.footer-nav div{gap:.65rem}.footer-nav button{padding:0;border:0;background:none;color:white;text-align:left;cursor:pointer;font:inherit}.footer-nav a,.footer-nav button{font-size:.7rem}.footer-nav a:hover,.footer-nav button:hover{text-decoration:underline;text-underline-offset:3px}.footer-bottom{font-size:.57rem;gap:1rem;align-items:center}
.mobile-booking{position:fixed;z-index:25;right:2rem;bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:2.3rem;min-width:160px;padding:1rem 1.25rem;border:0;background:var(--forest);color:white;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;box-shadow:0 8px 28px rgba(0,0,0,.22);cursor:pointer;transition:transform .2s,background .2s}.mobile-booking:hover{transform:translateY(-2px);background:#3b433a}
.booking-panel{background:var(--paper)}.booking-header .eyebrow{color:var(--moss)}.booking-intro{line-height:1.65}.booking-alternatives{background:#eeece5;padding:1.25rem;margin-bottom:1.5rem;font-size:.82rem}.booking-alternatives p{margin:0 0 .7rem}.booking-form .button{background:var(--forest)}
@media(max-width:1000px){.site-nav{gap:1rem}.tour-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tour-photo:nth-child(11n+1) img{min-height:380px}.home-feature{grid-template-columns:1.1fr .9fr}.home-feature-photo{min-height:500px}}
@media(max-width:760px){.site-header{height:72px;padding:0 1.25rem}.brand-mark{font-size:2.2rem}.brand-name{font-size:.58rem}.menu-button{display:flex;z-index:3;flex-direction:column;gap:6px;border:0;background:transparent;color:white;padding:.65rem}.menu-button span{display:block;width:24px;height:1px;background:currentColor}.site-nav{inset:0;gap:1.4rem;font-size:2rem}.nav-book{font-size:.68rem}.hero{height:88svh;min-height:650px}.hero-content{padding:10rem 1.25rem 12rem;width:100%}.hero h1{font-size:clamp(4.5rem,19vw,7rem)}.hero-copy{font-size:1.1rem;max-width:320px}.hero-index{display:none}.hero-caption{right:1.15rem;bottom:1.5rem}.section-pad{padding:5rem 1.25rem}.home{padding-top:5.5rem}.section-heading{grid-template-columns:1fr;gap:1.6rem;margin-bottom:2.7rem}.section-heading h2,.home h2,.local-guide h2,.house-rules h2{font-size:clamp(3.4rem,16vw,5.2rem)}.section-heading>p{font-size:1.15rem}.home-feature{grid-template-columns:1fr}.home-feature-photo{min-height:0;aspect-ratio:1/.88}.home-feature-copy{padding:1.5rem}.home-feature-copy h3{font-size:3.5rem}.home-details-block{grid-template-columns:1fr;gap:2rem;margin:5rem 0 2rem}.home-details-intro h3{font-size:3.2rem}.amenities{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:3rem}.amenities li{font-size:.95rem}.sleeping-layout{grid-template-columns:1fr;gap:1rem}.home-photo-pair{gap:1rem;margin:4rem 0 2rem}.home-photo-pair figure:nth-child(2){margin-top:4rem}.home-photo-pair img{aspect-ratio:3/4}.tour-heading{padding-top:5rem;padding-bottom:2rem}.tour-toolbar{align-items:flex-start;flex-direction:column;gap:1.2rem}.tour-filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;max-width:calc(100vw - 2.5rem);padding-bottom:.4rem}.tour-filter{white-space:nowrap}.tour-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;padding:0 .7rem}.tour-photo:nth-child(11n+1){grid-column:span 2;grid-row:span 1}.tour-photo img,.tour-photo:nth-child(11n+1) img{min-height:0;aspect-ratio:1/1}.tour-photo figcaption{font-size:.5rem;letter-spacing:.08em}.photo-lightbox{width:100vw;height:100dvh;padding:4rem .8rem 3.5rem}.lightbox-toolbar{left:1rem;right:1rem;top:.8rem}.photo-lightbox figure img{max-width:calc(100vw - 2rem);max-height:calc(100dvh - 9rem)}.lightbox-arrow{top:auto;bottom:1.6rem}.lightbox-arrow.previous{left:1.2rem}.lightbox-arrow.next{right:1.2rem}.lightbox-count{bottom:1.9rem}.guide-location{grid-template-columns:1fr;gap:1rem;padding:2rem 0;margin:3rem 0}.guide-coordinate{font-size:.9rem}.guide-location h3{font-size:3.2rem}.guide-columns{grid-template-columns:1fr;gap:3rem}.guide-food{grid-template-columns:1fr;gap:2rem;margin-top:5rem;padding-top:3rem}.food-list a{grid-template-columns:24px 1fr 20px;gap:.6rem}.food-list small{grid-column:2;grid-row:2}.food-list b{grid-column:3;grid-row:1/3}.rules-list li{grid-template-columns:28px 1fr;gap:1rem;padding:1.2rem 0}.rules-list h3{font-size:1.35rem}.contact{padding:6rem 1.25rem}.contact h2{font-size:clamp(4.1rem,18vw,6rem)}.contact-inner>p:not(.eyebrow){font-size:1.1rem}.contact-email{font-size:.82rem}.mobile-booking{left:0;right:0;bottom:0;width:100%;padding:1rem 1.4rem calc(1rem + env(safe-area-inset-bottom));box-shadow:0 -5px 20px rgba(0,0,0,.13)}footer{padding:4rem 1.25rem 5.8rem}.footer-nav{margin:3rem 0;max-width:none}.footer-bottom{align-items:flex-start}.booking-panel{padding-top:1.3rem}}
.photo-tour{padding-bottom:clamp(5rem,9vw,9rem)}.tour-heading{padding-bottom:2rem}.tour-heading .section-heading{margin-bottom:2rem}.gallery-open{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-width:220px}.photo-preview{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:.75rem;padding:0 3vw}.photo-preview-item{display:block;min-width:0;aspect-ratio:1.12;padding:0;border:0;background:#d9d4c7;cursor:pointer;overflow:hidden}.photo-preview-item img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1)}.photo-preview-item:hover img{transform:scale(1.04)}.photo-preview-item:focus-visible,.gallery-open:focus-visible{outline:3px solid #b99470;outline-offset:3px}.photo-gallery-dialog{width:min(1500px,96vw);height:min(94svh,1100px);max-width:none;max-height:none;padding:0;border:0;background:#eeece5;color:var(--ink);overflow:auto}.photo-gallery-dialog::backdrop{background:rgba(13,17,14,.78);backdrop-filter:blur(3px)}.gallery-dialog-header{position:sticky;z-index:2;top:0;display:flex;justify-content:space-between;align-items:center;padding:1.35rem 3vw;background:rgba(238,236,229,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.gallery-dialog-header .eyebrow{margin:0 0 .35rem;color:var(--moss);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase}.gallery-dialog-header h2{margin:0;font-family:var(--display);font-size:clamp(1.8rem,3vw,3rem);font-weight:400;letter-spacing:-.04em}.gallery-dialog-header>button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:1.7rem;line-height:1;cursor:pointer}.gallery-dialog-content{padding:1.7rem 0 3rem}.gallery-dialog-content .tour-toolbar{align-items:center;padding:0 3vw 1.4rem}.gallery-dialog-content .tour-grid{padding:0 3vw}.photo-lightbox{z-index:3}
.quick-facts{display:grid;grid-template-columns:repeat(4,1fr);padding:2rem 7.5vw;background:#f7f5ef;border-bottom:1px solid var(--line)}.quick-facts>div{display:flex;align-items:baseline;justify-content:center;gap:.7rem;padding:.6rem 1rem;border-right:1px solid var(--line)}.quick-facts>div:last-child{border-right:0}.quick-facts strong{font-family:var(--display);font-size:clamp(2rem,3vw,3rem);font-weight:400;line-height:1}.quick-facts span{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--moss)}.stay-highlights{background:#f7f5ef}.stay-highlights .section-heading{margin-bottom:3rem}.highlight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.highlight-grid article{min-height:230px;padding:1.5rem 1.5rem 1.8rem;border-right:1px solid var(--line)}.highlight-grid article:first-child{padding-left:0}.highlight-grid article:last-child{border-right:0}.highlight-grid article>span{color:var(--moss);font-size:.58rem;letter-spacing:.13em}.highlight-grid h3{margin:2.2rem 0 .7rem;font-family:var(--display);font-size:clamp(1.35rem,2vw,2rem);font-weight:400;line-height:1.05}.highlight-grid p{margin:0;max-width:270px;font-size:.72rem;line-height:1.7;color:#65685e}.rules-faq{max-width:1050px;border-top:1px solid var(--line)}.rules-faq details{border-bottom:1px solid var(--line)}.rules-faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 0;list-style:none;font-family:var(--display);font-size:clamp(1.2rem,2vw,1.65rem);cursor:pointer}.rules-faq summary::-webkit-details-marker{display:none}.rules-faq summary::after{content:'+';font-family:var(--sans);font-size:1.2rem;color:var(--moss);transition:transform .2s}.rules-faq details[open] summary::after{transform:rotate(45deg)}.rules-faq details p{max-width:760px;margin:0;padding:0 3rem 1.5rem 0;font-size:.78rem;line-height:1.75;color:#62665d}
@media(max-width:1000px){.photo-preview{grid-template-columns:repeat(4,minmax(0,1fr))}.photo-preview-item:first-child{grid-column:span 2;grid-row:span 2}.photo-preview-item{aspect-ratio:1}.gallery-dialog-content .tour-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-dialog-content .tour-photo:nth-child(11n+1) img{min-height:280px}}
@media(max-width:760px){.photo-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;padding:0 .7rem}.photo-preview-item:first-child{grid-column:span 2;grid-row:span 1;aspect-ratio:1.45}.photo-preview-item{aspect-ratio:1.1}.photo-gallery-dialog{width:100vw;height:100dvh}.gallery-dialog-header{padding:1rem 1.1rem}.gallery-dialog-header>button{flex:0 0 40px}.gallery-dialog-content{padding-top:1rem}.gallery-dialog-content .tour-toolbar{padding:0 1rem 1rem;gap:.8rem}.gallery-dialog-content .tour-grid{padding:0 .55rem;gap:.6rem}.gallery-dialog-content .tour-photo:nth-child(11n+1){grid-column:span 2;grid-row:span 1}.gallery-dialog-content .tour-photo img,.gallery-dialog-content .tour-photo:nth-child(11n+1) img{min-height:0;aspect-ratio:1/1}.gallery-dialog-content .tour-photo figcaption{font-size:.48rem}.gallery-open{min-width:0}.quick-facts{grid-template-columns:repeat(2,1fr);padding:1.2rem .8rem}.quick-facts>div{justify-content:flex-start;padding:.85rem .8rem}.quick-facts>div:nth-child(2){border-right:0}.quick-facts>div:nth-child(3),.quick-facts>div:nth-child(4){border-top:1px solid var(--line)}.quick-facts strong{font-size:2.2rem}.quick-facts span{font-size:.52rem}.highlight-grid{grid-template-columns:1fr 1fr}.highlight-grid article{min-height:0;padding:1.2rem .9rem 1.5rem;border-bottom:1px solid var(--line)}.highlight-grid article:nth-child(odd){border-right:1px solid var(--line)}.highlight-grid article:nth-child(even){border-right:0}.highlight-grid article:first-child{padding-left:.9rem}.highlight-grid article:nth-child(n+3){border-bottom:0}.highlight-grid h3{margin:1.5rem 0 .6rem;font-size:1.35rem}.highlight-grid p{font-size:.67rem}.rules-faq summary{padding:1.15rem 0}.rules-faq details p{font-size:.74rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-image{animation:none}.tour-photo img,.photo-preview-item img,.button,.mobile-booking{transition:none}}

.amenity-groups, .guest-details { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 2rem 4rem; margin: 2rem 0; }.amenity-groups h4, .guest-details h3 { font-size: 1.4rem; margin: 0 0 1rem; }.amenity-groups ul, .guest-details ul { padding-left: 1.2rem; }.amenity-groups li, .guest-details li, .guest-details p { font-size: .85rem; line-height: 1.8; margin-bottom: .45rem; }.guest-details { border-top: 1px solid var(--line); padding-top: 2rem; }@media(max-width:700px){.amenity-groups, .guest-details { grid-template-columns: minmax(0,1fr); gap: 2rem; }}
