:root { --paper:#f6f3ec; --ink:#343d30; --muted:#66695e; --line:#dcded2; --green:#364331; --sage:#e8e9df; --clay:#a35c3e; --serif:'Cormorant Garamond',Georgia,serif; --sans:'DM Sans',system-ui,sans-serif; --gutter:clamp(24px,5.5vw,96px)}

*,*::before,*::after { box-sizing:border-box}
body,h1,h2,h3,p,figure { margin:0}
html { scroll-behavior:smooth; scroll-padding-top:110px}
body { background:var(--paper); color:var(--ink); font:400 15px/1.7 var(--sans); -webkit-font-smoothing:antialiased}
a { color:inherit; text-decoration:none}
button { font:inherit; cursor:pointer}
img { max-width:100%; display:block}
button,a { -webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible { outline:2px solid var(--clay); outline-offset:6px}
button:active,.button:active { transform:translateY(1px)}
svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0}
[hidden] { display:none!important}
.svg-definitions { position:absolute; width:0; height:0; overflow:hidden}
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.02; letter-spacing:-.04em}
h2 { font-size:clamp(44px,4.6vw,72px)}
h3 { font-size:30px; letter-spacing:-.025em}
em { font-weight:400}
.eyebrow { font-size:10px; letter-spacing:.2em; font-weight:500; line-height:1.6}
.section-wrap { max-width:1600px; margin:auto; padding:110px var(--gutter)}
.skip-link { position:fixed; z-index:100; top:8px; left:16px; padding:12px 20px; background:var(--paper); transform:translateY(-150%)}
.skip-link:focus { transform:translateY(0)}

.site-header { height:100px; padding:0 var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:24px; position:relative; z-index:20; background:var(--paper)}
.brand { display:flex; gap:13px; align-items:center; flex-shrink:0}
.brand-mark { width:42px; height:48px; stroke-width:1}
.brand>span { font-family:var(--serif); font-size:35px; line-height:.85; letter-spacing:-.04em}
.brand small { display:block; font:500 8px/1 var(--sans); letter-spacing:.23em; margin-top:12px}
.desktop-nav { display:flex; gap:30px}
.desktop-nav a { font-size:12px; position:relative; padding:12px 0}
.desktop-nav a::after,.footer-links a::after { content:''; position:absolute; bottom:4px; left:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s}
.desktop-nav a:hover::after,.footer-links a:hover::after { transform:scaleX(1)}
.header-actions { display:flex; align-items:center; gap:16px}
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; padding:16px 24px; font-size:12px; font-weight:500; line-height:1.5; border:1px solid transparent; transition:background .25s,color .25s}
.button svg,.text-link svg { width:20px; height:20px; transition:transform .25s}
.button:hover svg,.text-link:hover svg { transform:translateX(4px)}
.button-dark { background:var(--green); color:var(--paper)}
.button-dark:hover { background:#4d5a44}
.button-light { background:var(--paper); color:var(--ink)}
.button-light:hover { background:#e1e5d7}
.menu-toggle { display:none; background:none; border:0; width:44px; height:44px; padding:11px; color:var(--ink)}
.menu-toggle span { display:block; width:22px; height:1px; background:currentColor; margin:6px 0; transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.5px) rotate(-45deg)}
.mobile-menu { position:absolute; top:100%; left:0; right:0; background:var(--paper); border-top:1px solid var(--line); padding:24px var(--gutter); box-shadow:0 20px 25px #20251a12}
.mobile-menu a { display:block; font:400 30px/1.8 var(--serif)}

.hero { min-height:630px; height:min(790px,calc(100svh - 100px)); position:relative; color:#fff; isolation:isolate; overflow:hidden}
.hero-photo,.hero-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2}
.hero-photo { object-position:center 44%; animation:arrive-photo 1.5s ease-out both}
.hero-shade { z-index:-1; background:linear-gradient(180deg,rgba(21,29,18,.24),transparent 30%,rgba(18,24,15,.15) 44%,rgba(18,24,15,.76) 100%)}
.hero-topline { display:flex; justify-content:space-between; align-items:center; position:absolute; top:32px; left:var(--gutter); right:var(--gutter)}
.hero-coordinate { font-size:10px; letter-spacing:.16em}
.hero-bottom { position:absolute; left:var(--gutter); right:var(--gutter); bottom:92px; display:flex; align-items:flex-end; justify-content:space-between; gap:30px}
.hero-copy { animation:arrive 1s .1s both}
.hero h1 { font-size:clamp(66px,7vw,108px); letter-spacing:-.045em; line-height:.93; text-shadow:0 2px 20px #101b1830}
.hero h1 em { color:#eee9d9}
.hero-copy>p { font-size:14px; line-height:1.7; margin-top:24px}
.hero-actions { display:flex; flex-direction:column; align-items:center; gap:20px; padding-bottom:4px; animation:arrive 1s .25s both}
.hero-tour { font-size:11px; letter-spacing:.04em; display:flex; gap:24px; align-items:center; padding:4px 0}
.hero-tour span { font-size:22px; transition:transform .25s}
.hero-tour:hover span { transform:translateY(4px)}
.hero-caption { position:absolute; bottom:22px; left:var(--gutter); right:var(--gutter); display:flex; justify-content:space-between; font-size:9px; letter-spacing:.12em; border-top:1px solid #ffffff40; padding-top:16px}
.hero-caption>span:last-child { letter-spacing:.02em; font-size:11px}

.at-a-glance { display:flex; align-items:center; justify-content:center; gap:0; padding:28px var(--gutter); border-bottom:1px solid var(--line)}
.at-a-glance p,.at-a-glance>a { display:flex; align-items:center; gap:9px; font-size:12px; padding:0 3.2vw; white-space:nowrap; border-right:1px solid var(--line)}
.at-a-glance p:first-child { padding-left:0}
.at-a-glance strong { font-size:16px; font-weight:500}
.at-a-glance>a { padding-right:0; border:0; flex-direction:column; gap:0; font-size:10px}
.at-a-glance>a:hover { color:var(--clay)}
.stars { color:var(--clay); letter-spacing:.13em; font-size:13px}

.welcome { display:grid; grid-template-columns:1.1fr 1fr; gap:50px 9%; padding-bottom:100px}
.welcome h2 { margin-top:22px}
.welcome-copy { padding-top:28px; max-width:460px}
.welcome-copy>p:first-child { font-family:var(--serif); font-size:25px; line-height:1.25; letter-spacing:-.015em; margin-bottom:22px}
.welcome-copy>p:nth-child(2) { font-size:13px; color:var(--muted); line-height:1.9}
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:40px; font-size:12px; font-weight:500; border-bottom:1px solid #8c9584; padding:10px 0; margin-top:22px}
.text-link:hover { color:var(--clay); border-color:var(--clay)}
.welcome-photos { grid-column:1/-1; position:relative; display:grid; grid-template-columns:1.6fr 1fr; gap:5%; align-items:start; padding-right:28px; margin-top:24px}
.photo-link { display:block; position:relative; overflow:hidden}
.bedroom-photo img { aspect-ratio:1.47; object-fit:cover; transition:transform .7s}
.photo-link:hover img { transform:scale(1.025)}
.photo-label { position:absolute; bottom:0; left:0; right:0; color:white; display:flex; justify-content:space-between; align-items:center; font-size:11px; padding:36px 22px 20px; background:linear-gradient(transparent,#17251bb8)}
.photo-label>span { font-size:22px}
.living-photo { padding-top:70px}
.living-photo img { width:100%; aspect-ratio:1.1; object-fit:cover}
.living-photo figcaption { font:italic 22px var(--serif); margin-top:18px}
.photo-side-note { position:absolute; right:-16px; top:67px; writing-mode:vertical-rl; font-size:9px; letter-spacing:.2em}

.moments { background:var(--green); color:var(--paper); position:relative}
.moments-inner { padding-top:95px; padding-bottom:45px}
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:48px}
.section-heading h2 { margin-top:20px}
.section-heading>p { font-size:13px; color:#d7dccc; line-height:1.9; padding-bottom:5px; width:260px}
.experience-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px}
.experience:nth-child(2) { padding-top:55px}
.experience:nth-child(3) { padding-top:110px}
.experience-image { position:relative; overflow:hidden}
.experience-image img { width:100%; height:370px; object-fit:cover; transition:transform .7s}
.experience:nth-child(1) img { object-position:70% center}
.experience:nth-child(3) img { object-position:56% center}
.experience:hover img { transform:scale(1.04)}
.image-number { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,#111e13aa); padding:35px 20px 18px; font-size:9px; letter-spacing:.17em}
.experience-title { display:flex; gap:16px; justify-content:space-between; align-items:center; margin-top:23px}
.experience-title h3 { font-size:28px; line-height:1.05}
.experience-title>span { font-size:22px; transition:transform .25s}
.experience:hover .experience-title>span { transform:translate(2px,-2px)}
.experience>p { font-size:12px; color:#d2d9cd; margin-top:14px; line-height:1.9; max-width:320px}
.comforts { margin-top:65px; padding-top:36px; border-top:1px solid #ffffff30; display:flex; justify-content:space-between; align-items:center; gap:20px}
.comforts>p { font-size:8px; letter-spacing:.16em; max-width:110px; line-height:1.9}
.comforts>span { display:flex; align-items:center; gap:12px; font-size:11px}
.comforts svg { width:29px; height:29px}

.photo-tour { padding-top:105px; padding-bottom:90px}
.photo-tour .section-heading { margin-bottom:40px}
.tour-grid { display:grid; grid-template-columns:1.6fr 1fr; grid-template-rows:235px 235px; gap:16px}
.tour-photo { position:relative; overflow:hidden; background:var(--sage)}
.tour-photo img { width:100%; height:100%; object-fit:cover; transition:transform .7s}
.tour-photo:hover img { transform:scale(1.035)}
.tour-main { grid-row:span 2}
.tour-main img { object-position:55% center}
.tour-photo>span { position:absolute; bottom:0; left:0; right:0; padding:42px 22px 18px; background:linear-gradient(transparent,#152015bd); color:white; display:flex; align-items:center; justify-content:space-between; font-size:11px}
.tour-photo>span>span { font-size:22px}
.gallery-note { font-size:10px; color:var(--muted); letter-spacing:.04em; text-align:center; margin-top:24px}

.sedona-section { display:grid; grid-template-columns:1.05fr 1fr; background:var(--sage)}
.sedona-image { overflow:hidden; min-height:680px}
.sedona-image img { width:100%; height:100%; object-fit:cover; object-position:50% center}
.sedona-copy { padding:85px clamp(32px,6vw,100px)}
.sedona-copy h2 { margin:25px 0 28px; font-size:clamp(46px,4.3vw,66px)}
.sedona-copy>p:not(.eyebrow) { color:var(--muted); font-size:13px; max-width:390px; line-height:1.9}
.location-detail { display:flex; align-items:center; gap:22px; border-top:1px solid #ccd0c0; margin-top:30px; padding-top:24px}
.location-detail>span { font:400 44px/1 var(--serif); white-space:nowrap}
.location-detail>span>small { font:500 9px var(--sans); letter-spacing:.1em}
.location-detail p { font-size:11px; line-height:1.8}
.location-detail p small { color:var(--muted); font-size:10px}
.sedona-copy .text-link { margin-top:18px}

.guest-notes { display:grid; grid-template-columns:1fr 1.4fr; gap:12%; padding-top:110px; padding-bottom:100px}
.review-intro h2 { margin:24px 0 26px; font-size:clamp(44px,4.2vw,64px)}
.review-intro>p:not(.eyebrow) { font-size:11px; line-height:2}
.review-platforms { display:block; font-size:8px; letter-spacing:.1em; color:var(--muted); margin-top:10px}
.review-slider { padding-top:15px; min-width:0}
.quote-mark { font-family:var(--serif); font-size:92px; color:#9b6b4e; line-height:.7; display:block; height:58px}
.review-slide blockquote { font:400 28px/1.4 var(--serif); margin:0; letter-spacing:-.015em}
.review-slides { min-height:355px}
.review-slide figcaption { display:flex; gap:14px; align-items:center; margin-top:28px; font-size:12px}
.guest-avatar { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:#e7e5d9; font:400 22px var(--serif)}
.review-slide figcaption small { display:block; color:var(--muted); font-size:10px; margin-top:3px}
.review-controls { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); padding-top:19px; margin-top:24px}
.review-controls>span { font-size:10px; letter-spacing:.13em; color:var(--muted)}
.review-controls>div { display:flex; gap:9px}
.circle-button { border:1px solid #aeb5a4; border-radius:50%; width:44px; height:44px; background:transparent; color:inherit; display:inline-flex; align-items:center; justify-content:center; transition:background .25s,color .25s}
.circle-button:hover { background:var(--green); color:var(--paper)}
#review-prev svg { transform:rotate(180deg)}

.stay-cta { background:#e9e4d8; text-align:center; padding:77px 24px 82px; position:relative; overflow:hidden}
.stay-agave { width:75px; height:75px; stroke-width:.7; color:#6f7a61; margin-bottom:22px}
.stay-cta h2 { font-size:clamp(50px,5.8vw,86px); margin:24px 0}
.stay-cta>p:not(.eyebrow) { font-size:12px; color:var(--muted)}
.stay-cta .button { margin:28px 0 16px; min-width:200px}
.direct-note { display:block; font-size:9px; letter-spacing:.025em; color:var(--muted)}
.site-footer { padding:60px var(--gutter) 22px; background:#f6f3ec}
.footer-top { display:flex; justify-content:space-between; gap:40px; padding-bottom:50px}
.site-footer .brand { align-self:flex-start}
.footer-links { display:grid; grid-template-columns:1fr 1fr; column-gap:36px; row-gap:13px; font-size:11px}
.footer-links a { position:relative; width:fit-content}
.footer-links a::after { bottom:-3px}
.footer-contact { font-size:11px}
.footer-contact p { font:italic 21px/1 var(--serif); margin-bottom:16px}
.footer-contact a { display:block; width:fit-content; margin-top:7px}
.footer-contact a:hover { text-decoration:underline}
.footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:22px; font-size:9px; color:var(--muted)}
.footer-bottom a:hover { color:var(--clay)}

.photo-dialog { border:0; background:#f6f3ec; color:var(--ink); padding:48px 24px 20px; max-width:1100px; width:calc(100% - 48px); max-height:95svh; overflow:auto}
.photo-dialog::backdrop { background:#142014dc; backdrop-filter:blur(5px)}
.dialog-close { position:absolute; right:12px; top:8px; width:32px; height:32px; font-size:24px; border:0}
.dialog-image-wrap img { max-height:70svh; width:100%; object-fit:contain}
.dialog-image-wrap p { text-align:center; font-size:12px; margin-top:15px}
.dialog-controls { display:flex; justify-content:center; align-items:center; gap:25px; margin-top:18px}
.dialog-controls>span { font-size:11px; letter-spacing:.1em}
.dialog-controls button { font-size:20px}
body:has(.photo-dialog[open]) { overflow:hidden}

@keyframes arrive { from { opacity:0; transform:translateY(20px)}
to { opacity:1; transform:translateY(0)}
}
@keyframes arrive-photo { from { transform:scale(1.04)}
to { transform:scale(1)}
}

@media(min-width:1700px) { .hero h1 { font-size:115px}
.hero-bottom,.hero-topline,.hero-caption { left:max(var(--gutter),calc((100vw - 1500px)/2)); right:max(var(--gutter),calc((100vw - 1500px)/2))}
}

@media(max-width:1100px) { .desktop-nav { gap:20px}
.desktop-nav a { font-size:11px}
.header-book { padding:14px 18px; gap:18px}
.brand>span { font-size:31px}
.brand-mark { width:34px}
.at-a-glance p,.at-a-glance>a { padding:0 2.5vw}
.hero { min-height:650px}
.hero-actions .button { font-size:11px; gap:18px}
.experience-image img { height:300px}
.experience-grid { gap:22px}
.experience-title h3 { font-size:26px}
.guest-notes { gap:8%}
.review-slides { min-height:400px}
.footer-top { gap:25px}
.footer-links { column-gap:20px}
.comforts>span { gap:8px; font-size:10px}
}

@media(max-width:1000px) { .site-header { height:88px}
.desktop-nav { display:none}
.menu-toggle { display:block}
.hero { height:740px; min-height:0; max-height:calc(100svh - 88px)}
.hero-bottom { bottom:86px}
.hero h1 { font-size:70px}
.hero-actions .button { max-width:210px}
.hero-actions { align-items:flex-start}
.hero-caption { font-size:8px}
.at-a-glance { flex-wrap:wrap; gap:20px; padding:25px 24px}
.at-a-glance p,.at-a-glance>a { padding:0 20px}
.at-a-glance>a { flex-direction:row; gap:12px}
.at-a-glance p:nth-child(4) { border:0}
.section-wrap { padding-top:75px; padding-bottom:75px}
.welcome { gap:35px 6%}
.welcome-copy { padding-top:5px}
.welcome-copy>p:first-child { font-size:23px}
.welcome h2 { font-size:49px}
.welcome-photos { padding-right:10px}
.living-photo { padding-top:50px}
.living-photo figcaption { font-size:19px}
.section-heading>p { width:220px}
.experience-image img { height:250px}
.experience-title h3 { font-size:24px}
.experience:nth-child(2) { padding-top:35px}
.experience:nth-child(3) { padding-top:70px}
.comforts { flex-wrap:wrap; justify-content:center; gap:24px; margin-top:40px; padding-top:25px}
.comforts>p { max-width:none; width:100%; text-align:center}
.tour-grid { grid-template-rows:180px 180px}
.sedona-copy { padding:60px 35px}
.sedona-image { min-height:630px}
.sedona-copy h2 { font-size:49px}
.sedona-copy .eyebrow { font-size:8px}
.guest-notes { grid-template-columns:1fr 1.25fr; gap:7%}
.review-intro h2 { font-size:47px}
.review-slide blockquote { font-size:24px}
.review-slides { min-height:390px}
.footer-top { flex-wrap:wrap}
.site-footer .brand { width:100%; margin-bottom:15px}
.footer-contact { margin-left:auto}
}

@media(max-width:600px) { html { scroll-padding-top:24px}
.site-header { height:80px; padding:0 20px; gap:10px}
.brand { gap:8px}
.brand>span { font-size:28px}
.brand small { font-size:6px; letter-spacing:.2em; margin-top:9px}
.brand-mark { width:31px; height:37px}
.header-actions { gap:4px}
.header-book { font-size:10px; padding:11px 12px; gap:0}
.header-book svg { display:none}
.menu-toggle { width:36px; padding:7px}
.hero { height:740px; max-height:none; min-height:0}
.hero-photo { object-position:52% 32%; height:63%; object-fit:cover}
.hero-shade { background:linear-gradient(180deg,#17251425 0%,transparent 24%,#2430201a 34%,#273323 62%,#273323 100%)}
.hero { background:#273323}
.hero-topline { top:24px; left:24px; right:24px}
.hero-topline .eyebrow { font-size:8px; letter-spacing:.14em}
.hero-coordinate { display:none}
.hero-bottom { left:24px; right:24px; bottom:80px; display:block}
.hero h1 { font-size:64px; line-height:.95}
.hero-copy>p { font-size:12px; line-height:1.7; margin-top:20px}
.hero-actions { margin-top:26px; display:flex; flex-direction:row; align-items:center; gap:20px}
.hero-actions .button { font-size:10px; gap:16px; padding:14px 17px; max-width:none}
.hero-tour { font-size:9px; line-height:1.6; gap:8px; max-width:110px}
.hero-tour span { font-size:19px}
.hero-caption { left:24px; right:24px; bottom:20px; font-size:7px; letter-spacing:.08em; gap:14px}
.hero-caption>span:last-child { font-size:8px}
.at-a-glance { display:grid; grid-template-columns:1fr 1fr; gap:0; padding:12px 24px}
.at-a-glance p,.at-a-glance>a { padding:12px 0; font-size:11px; justify-content:center}
.at-a-glance p:nth-child(2) { border-right:0}
.at-a-glance p:nth-child(3),.at-a-glance p:nth-child(4) { border-top:1px solid var(--line)}
.at-a-glance>a { grid-column:1/-1; border-top:1px solid var(--line); padding:14px 0 4px; font-size:10px}
.at-a-glance strong { font-size:14px}
.at-a-glance svg { width:22px}
.section-wrap { padding:65px 24px}
.welcome { grid-template-columns:1fr; gap:26px}
.eyebrow { font-size:8px; letter-spacing:.17em}
h2 { font-size:48px}
.welcome h2 { font-size:51px; margin-top:18px}
.welcome-copy { padding-top:0; max-width:none}
.welcome-copy>p:first-child { font-size:23px}
.welcome-copy>p:nth-child(2) { font-size:12px}
.text-link { font-size:11px; margin-top:16px}
.welcome-photos { grid-template-columns:1fr .72fr; gap:12px; padding-right:0; margin-top:14px; align-items:start}
.bedroom-photo { margin-right:-110px}
.bedroom-photo img { aspect-ratio:1.2; object-position:38% center}
.photo-label { padding:30px 14px 14px; font-size:9px; bottom:auto; top:0; background:linear-gradient(#15201599,transparent)}
.photo-label>span { display:none}
.living-photo { padding-top:160px; z-index:1; margin-left:-30px}
.living-photo img { aspect-ratio:1; border:6px solid var(--paper); border-right:0}
.living-photo figcaption { font-size:17px; margin-top:8px; padding-left:6px}
.photo-side-note { display:none}
.section-heading { display:block; margin-bottom:32px}
.section-heading h2 { margin-top:16px; font-size:49px}
.section-heading>p { font-size:12px; margin-top:25px}
.experience-grid { display:block}
.experience { display:block}
.experience:nth-child(2),.experience:nth-child(3) { padding-top:35px}
.experience-image img { height:auto; aspect-ratio:1.3; object-fit:cover}
.experience:nth-child(2) img { aspect-ratio:1.4}
.experience:nth-child(3) img { aspect-ratio:1.4; object-position:center}
.experience-title { margin-top:20px}
.experience-title h3 { font-size:29px}
.experience>p { font-size:12px; max-width:100%; margin-top:10px}
.comforts { display:grid; grid-template-columns:1fr 1fr; gap:24px 15px; margin-top:40px}
.comforts>p { grid-column:1/-1; text-align:left; font-size:8px}
.comforts>span { font-size:11px; gap:12px}
.comforts svg { width:26px}
.photo-tour .section-heading { margin-bottom:28px}
.photo-tour .section-heading h2 { font-size:46px}
.photo-tour .text-link { margin-top:20px}
.tour-grid { grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:10px}
.tour-main { grid-column:1/-1; grid-row:auto; aspect-ratio:1.1}
.tour-photo:not(.tour-main) { aspect-ratio:1}
.tour-photo:not(.tour-main)>span { font-size:9px; padding:25px 10px 12px; line-height:1.4}
.tour-photo>span>span { font-size:18px; padding-left:6px}
.tour-photo>span { font-size:10px}
.gallery-note { font-size:9px; max-width:240px; margin:22px auto 0}
.sedona-section { grid-template-columns:1fr}
.sedona-image { min-height:0; height:340px}
.sedona-image img { object-position:center 38%}
.sedona-copy { padding:50px 24px 55px}
.sedona-copy h2 { font-size:56px; margin:23px 0}
.sedona-copy>p:not(.eyebrow) { font-size:12px}
.location-detail { margin-top:25px}
.guest-notes { grid-template-columns:1fr; gap:35px}
.review-intro h2 { font-size:51px}
.review-intro>p:not(.eyebrow) { line-height:2.1}
.review-slider { padding-top:8px}
.review-slide blockquote { font-size:27px; line-height:1.35}
.review-slides { min-height:360px}
.review-controls { margin-top:22px}
.stay-cta { padding:58px 24px 62px}
.stay-agave { width:62px; height:62px; margin-bottom:18px}
.stay-cta h2 { font-size:55px}
.stay-cta>p:not(.eyebrow) { font-size:11px}
.direct-note { font-size:8px}
.site-footer { padding:45px 24px 24px}
.footer-top { display:grid; grid-template-columns:1fr; gap:28px; padding-bottom:35px}
.site-footer .brand { margin-bottom:5px}
.footer-links { display:flex; flex-wrap:wrap; gap:12px 22px; font-size:11px}
.footer-contact { margin-left:0}
.footer-contact p { font-size:22px}
.footer-bottom { flex-wrap:wrap; font-size:8px; gap:14px}
.footer-bottom>span:nth-child(2) { order:3; width:100%}
.footer-bottom>a { margin-left:auto}
.photo-dialog { width:calc(100% - 24px); padding:48px 12px 18px}
.dialog-image-wrap img { max-height:65svh}
.dialog-image-wrap p { font-size:11px}
.dialog-controls { margin-top:12px}
}

@media(max-width:360px) { .header-book { font-size:9px; padding:10px}
.brand>span { font-size:25px}
.brand-mark { width:27px}
.hero h1 { font-size:56px}
.hero-actions { gap:12px}
.hero-actions .button { padding:13px; gap:8px}
.hero-tour { font-size:8px}
.hero { height:710px}
.review-slides { min-height:420px}
.review-slide blockquote { font-size:25px}
.welcome h2 { font-size:46px}
}

@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto}
*,*::before,*::after { animation:none!important; transition:none!important}
}


.stay-details { border-top: 1px solid var(--line); }
.stay-details h2 { margin-bottom: 42px; }
.stay-details-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 45px; }
.stay-details h3 { font-size: 29px; margin-bottom: 15px; }
.stay-details-grid p { color: var(--muted); font-size: 13px; line-height: 1.9; margin-bottom: 18px; }
@media (max-width: 768px) { .stay-details-grid { grid-template-columns: 1fr; gap: 32px; } }
