/* Hotel Alcira, a concept site by James Meehan Digital. */
:root{
  --plaster:#F4EEE4;
  --sand:#EADFCE;
  --terracotta:#B4573A;
  --olive:#6E6A3C;
  --green:#1F3A2E;
  --umber:#3B2A22;
  --line:rgba(59,42,34,.18);
}

/* local fallbacks sized to the Google faces, so the swap does not move the layout */
@font-face{font-family:"Alcira Display Fallback";src:local("Georgia");size-adjust:84%}
@font-face{font-family:"Alcira Text Fallback";src:local("Georgia");size-adjust:107%}
@font-face{font-family:"Alcira Text Fallback";font-style:italic;src:local("Georgia Italic"),local("Georgia-Italic");size-adjust:105%}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--plaster);color:var(--umber);font:400 17px/1.65 "Libre Caslon Text","Alcira Text Fallback",Georgia,serif;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
p,h1,h2,h3,figure,blockquote,ol,ul,dl,dd{margin:0}
ol,ul{padding:0;list-style:none}
h1,h2,h3{font-family:"Libre Caslon Display","Alcira Display Fallback",Georgia,serif;font-weight:400;line-height:1.02;letter-spacing:-.012em;text-wrap:balance}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--terracotta);outline-offset:3px}
.on-dark :focus-visible,.hero :focus-visible,.js .nav.over :focus-visible,.foot :focus-visible{outline-color:var(--plaster)}
.sr{position:absolute!important;top:0;left:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
.mono,.eyebrow,.lbl{font-family:"DM Mono",Menlo,ui-monospace,monospace;font-weight:400;font-size:12px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase}
.eyebrow{display:flex;align-items:center;gap:12px;color:var(--olive)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.8}
.muted{color:color-mix(in srgb,var(--umber) 80%,var(--plaster))}

/* skip + strip */
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--umber);color:var(--plaster);padding:12px 16px;font:400 13px "DM Mono",Menlo,ui-monospace,monospace;text-decoration:none}
.skip:focus{top:8px}
.strip{position:relative;z-index:60;background:var(--umber);color:var(--plaster);font:400 12px/1.4 "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.04em;text-align:center;padding:9px 16px}
.strip a{color:var(--plaster);text-decoration:underline;text-underline-offset:3px;margin-left:8px;display:inline-block;padding:4px 2px;margin-block:-4px;position:relative}
.strip a::after,.credit a::after,.foot-line a::after{content:"";position:absolute;left:-8px;right:-8px;top:50%;height:44px;transform:translateY(-50%)}
.credit a,.foot-line a{position:relative}

/* nav */
.nav{position:sticky;top:0;z-index:50;height:76px;transition:background-color .6s ease,color .6s ease,box-shadow .6s ease;background:var(--plaster);color:var(--umber);box-shadow:0 1px 0 var(--line)}
.js .nav.over{background:transparent;color:var(--plaster);box-shadow:none}
.nav .wrap{height:100%;display:flex;align-items:center;gap:28px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font:400 24px/1 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif;letter-spacing:.01em;white-space:nowrap;min-height:44px}
.brand svg{width:20px;height:28px}
.nav-links{display:flex;gap:30px;margin-left:auto}
.nav-links a,.nav-tel{font:400 12px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:14px 0;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:8px;height:1px;background:currentColor;transition:right .7s cubic-bezier(.16,1,.3,1)}
.nav-links a:hover::after{right:0}
.nav-tel{letter-spacing:.06em}
.nav .btn{min-height:44px;padding:0 20px}
.js .nav.over .btn-line{border-color:rgba(244,238,228,.6);color:var(--plaster)}

/* buttons + links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 28px;border:1px solid transparent;border-radius:2px;font:400 12.5px/1 "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .5s ease,color .5s ease,border-color .5s ease,transform .5s ease;white-space:nowrap}
.btn-primary{background:var(--terracotta);color:#fff}
.btn-primary:hover{background:#9E4A30}
.btn-line{background:transparent;border-color:var(--umber);color:var(--umber)}
.btn-line:hover{background:var(--umber);color:var(--plaster)}
.btn .ar{transition:transform .6s cubic-bezier(.16,1,.3,1)}
.btn:hover .ar{transform:translateX(4px)}
.link{font-style:italic;font-size:18px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;display:inline-flex;align-items:center;min-height:44px;transition:text-underline-offset .5s ease}
.link:hover{text-underline-offset:.45em}

/* hero */
.hero{position:relative;margin-top:-76px;height:max(620px,calc(100svh - 130px));max-height:1000px;color:var(--plaster);background:#4A3127;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media video{width:100%;height:100%;object-fit:cover;object-position:62% 0%}
.hero-scrim{position:absolute;inset:0;z-index:-1;background:radial-gradient(58% 60% at 24% 70%,rgba(43,29,23,.5),rgba(43,29,23,0)),linear-gradient(90deg,rgba(43,29,23,.72) 0%,rgba(43,29,23,.5) 40%,rgba(43,29,23,.1) 68%,rgba(43,29,23,0) 100%),linear-gradient(0deg,rgba(43,29,23,.5) 0%,rgba(43,29,23,0) 38%),linear-gradient(180deg,rgba(43,29,23,.66) 0%,rgba(43,29,23,.3) 14%,rgba(43,29,23,0) 26%)}
.hero-inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(120px,15vh,168px)}
.hero .eyebrow{color:var(--plaster)}
.hero h1{font-size:clamp(3.5rem,1.2rem + 7vw,8.25rem);line-height:.94;letter-spacing:-.022em;margin:22px 0 26px;max-width:6.6em}
.hero-sub{font-size:clamp(17px,1rem + .35vw,20px);line-height:1.6;max-width:34em;color:rgba(244,238,228,.92)}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 32px;margin-top:34px}
.hero .link{color:var(--plaster)}
.vid-toggle{position:absolute;right:clamp(16px,4vw,48px);bottom:clamp(96px,12vh,128px);z-index:2;display:inline-flex;align-items:center;gap:10px;min-height:44px;min-width:44px;padding:0 14px;border:1px solid rgba(244,238,228,.5);border-radius:999px;background:rgba(43,29,23,.66);color:var(--plaster);font:400 11px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.vid-toggle:hover{background:rgba(43,29,23,.6)}
.vid-toggle svg{width:12px;height:12px}
.vid-toggle .i-play{display:none}
.vid-toggle[data-state="paused"] .i-play{display:block}
.vid-toggle[data-state="paused"] .i-pause{display:none}

/* booking bar */
.booking{position:relative;z-index:3;margin-top:-64px}
.bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:stretch;background:var(--plaster);border:1px solid var(--umber);box-shadow:0 30px 60px -40px rgba(43,29,23,.55);position:relative}
.bar::before{content:"";position:absolute;inset:5px;border:1px solid var(--line);pointer-events:none}
.field{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:12px 24px 8px;min-width:0;position:relative}
.bar .field+.field{border-left:1px solid var(--line)}
.field label,.field .lbl{font:400 11.5px/1.2 "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--olive)}
.field input,.field select,.field textarea{width:100%;min-width:0;border:0;background:transparent;padding:4px 0;font:400 19px/1.3 "Libre Caslon Text","Alcira Text Fallback",Georgia,serif;color:var(--umber);border-radius:0;-webkit-appearance:none;appearance:none;min-height:44px}
.field select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%233B2A22' stroke-width='1.2'/%3E%3C/svg%3E") right 2px center no-repeat;padding-right:22px;cursor:pointer}
.field input::-webkit-calendar-picker-indicator{opacity:.65;cursor:pointer}
.field input:focus,.field select:focus,.field textarea:focus{outline:none}
.field:focus-within{background:rgba(234,223,206,.55);outline:2px solid var(--terracotta);outline-offset:-2px}
.field:focus-within::after{content:"";position:absolute;left:24px;right:24px;bottom:10px;height:1px;background:var(--terracotta)}
.bar .btn{height:auto;min-height:84px;margin:10px;border-radius:0;padding:0 34px}
.bar-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:16px;padding:0 4px}
.bar-note{font-style:italic;font-size:16.5px}
.bar-nights{color:var(--olive);font:400 12px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}
.err{color:#8E3A22;font-size:15px;min-height:0}
.err:empty{display:none}
[aria-invalid="true"]{box-shadow:inset 0 -2px 0 #8E3A22}

/* section shells */
.sec{padding:clamp(88px,11vw,168px) 0}
.sec-head{display:grid;gap:18px;margin-bottom:clamp(44px,6vw,80px);max-width:820px}
.sec-head h2,.h2{font-size:clamp(2.6rem,1.5rem + 3.6vw,5.25rem)}
.lead{font-size:clamp(18px,1rem + .45vw,22px);line-height:1.55;max-width:34em}
.orn{width:18px;height:26px;color:var(--terracotta)}

/* rooms */
.rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3.2vw,48px);align-items:start}
.room{position:relative;min-width:0}
.room:nth-child(2){margin-top:72px}
.arch{border:1px solid var(--umber);border-radius:999px 999px 3px 3px;padding:7px;background:var(--plaster)}
.arch-in{border-radius:999px 999px 1px 1px;overflow:hidden;aspect-ratio:3/4;background:var(--sand)}
.arch-in img{width:100%;height:100%;object-fit:cover;transform:scale(1.001);transition:transform 2.4s cubic-bezier(.16,1,.3,1)}
.room:hover .arch-in img{transform:scale(1.045)}
.room h3{font-size:clamp(30px,1.4rem + 1vw,38px);margin-top:28px}
.room-line{margin-top:8px;font-size:18px}
.room-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.price{font:400 12px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--olive)}
.price b{display:block;font:400 34px/1 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif;letter-spacing:0;text-transform:none;color:var(--umber);margin:6px 0 4px}
.room .link{font-size:17px}

/* tile band */
.tiles{height:26px;border-block:1px solid var(--umber);background:var(--plaster) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M20 5C26 11 26 15 20 20 14 15 14 11 20 5ZM20 35C26 29 26 25 20 20 14 25 14 29 20 35ZM5 20C11 14 15 14 20 20 15 26 11 26 5 20ZM35 20C29 14 25 14 20 20 25 26 29 26 35 20Z' fill='%23B4573A'/%3E%3Ccircle cx='20' cy='20' r='2.4' fill='%23F4EEE4'/%3E%3Cpath d='M0 0h6a6 6 0 0 1-6 6ZM40 0v6a6 6 0 0 1-6-6ZM0 40v-6a6 6 0 0 1 6 6ZM40 40h-6a6 6 0 0 1 6-6Z' fill='%236E6A3C'/%3E%3C/svg%3E") 0 -7px/26px}

/* the stay */
.stay{background:var(--sand)}
.day{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,44px)}
.window{border:1px solid var(--umber);border-radius:999px 999px 3px 3px;padding:9px;background:var(--plaster)}
.win-in{border-radius:999px 999px 1px 1px;overflow:hidden;transform:translateZ(0)}
.window svg{width:100%;height:auto}
.moment h3{font-size:clamp(32px,1.5rem + 1.4vw,46px);margin-top:28px}
.moment p{margin-top:10px;font-size:18px;max-width:22em}
.window .sky,.window .sun,.window .glow{transition:opacity 2.6s ease,transform 3.6s cubic-bezier(.22,.8,.24,1)}
.moment:nth-child(2) .sky,.moment:nth-child(2) .sun,.moment:nth-child(2) .glow{transition-delay:.6s}
.moment:nth-child(3) .sky,.moment:nth-child(3) .sun,.moment:nth-child(3) .glow{transition-delay:1.2s}
.moment.rv-wait .sky{opacity:.15}
.moment.rv-wait .sun{transform:translateY(34px);opacity:0}
.moment.rv-wait .glow{opacity:0}
.drift{animation:drift 38s ease-in-out infinite alternate}
@keyframes drift{to{transform:translateX(26px)}}

/* buyouts */
.on-dark{background:var(--green);color:var(--plaster)}
.on-dark .eyebrow{color:rgba(244,238,228,.82)}
.on-dark .lead{color:rgba(244,238,228,.9)}
.buyout-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:center}
.buyout .h2{margin-top:18px}
.buyout .lead{margin-top:26px}
.buyout .btn{margin-top:38px}
.court{border:1px solid rgba(244,238,228,.5);border-radius:999px 999px 3px 3px;padding:9px}
.court svg{width:100%;height:auto;border-radius:999px 999px 1px 1px;background:#18302A}
.bulb{animation:bulb 5.5s ease-in-out infinite alternate}
.bulb:nth-child(3n){animation-delay:-2s}.bulb:nth-child(3n+1){animation-delay:-3.7s}
@keyframes bulb{from{opacity:.55}to{opacity:1}}

/* reviews */
.quotes{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:clamp(48px,6vw,88px)}
.quote{position:relative;padding-top:22px;border-top:1px solid var(--umber)}
.quote:nth-child(1){grid-column:1/8}
.quote:nth-child(2){grid-column:7/13}
.quote:nth-child(3){grid-column:3/10}
.quote blockquote p{font-style:italic;font-size:clamp(26px,1.2rem + 1.7vw,44px);line-height:1.22;letter-spacing:-.005em}
.quote:nth-child(1) blockquote p{font-size:clamp(30px,1.3rem + 2.4vw,56px)}
.quote::before{content:"\201C";display:block;height:.42em;margin:0 0 .12em -.04em;font:400 104px/1 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif;color:var(--terracotta)}
.quote figcaption{margin-top:18px;color:var(--olive)}

/* proposal + thread */
.proposal{background:var(--sand)}
.proposal .sec-head{margin-bottom:36px}
.prop-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:start}
.card{background:var(--plaster);border:1px solid var(--umber);padding:clamp(22px,3vw,40px);position:relative}
.card::before{content:"";position:absolute;inset:5px;border:1px solid var(--line);pointer-events:none}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid .field,.flow .field{border:1px solid var(--line);background:rgba(234,223,206,.28)}
.form-grid .full{grid-column:1/-1}
.field textarea{resize:vertical;min-height:84px;font-size:17px}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:22px}
.demo-note{font:400 12px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.08em;color:color-mix(in srgb,var(--umber) 80%,var(--plaster))}
.done{display:none}
.card.sent form{display:none}
.card.sent .done{display:block}
.done h3{font-size:clamp(30px,1.5rem + 1.2vw,42px)}
.done p{margin-top:12px;max-width:30em}
.done .btn{margin-top:24px}

.phone-col{display:flex;flex-direction:column;align-items:center;gap:18px;position:sticky;top:100px}
.phone{width:min(340px,100%);height:600px;border-radius:46px;background:var(--umber);padding:11px;box-shadow:0 40px 80px -40px rgba(43,29,23,.65),inset 0 0 0 1px rgba(255,255,255,.08)}
.screen{height:100%;border-radius:36px;background:#FBF8F3;display:flex;flex-direction:column;overflow:hidden}
.notch{width:96px;height:26px;border-radius:14px;background:var(--umber);margin:10px auto 0;flex:none}
.ph-head{flex:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 12px;border-bottom:1px solid #E8E0D4}
.ph-av{width:42px;height:42px;border-radius:50%;background:var(--terracotta);display:grid;place-items:center;color:#fff}
.ph-head .ph-av{color:#fff}
.ph-av svg{width:14px;height:20px}
.ph-head b{font:400 15px "Libre Caslon Text","Alcira Text Fallback",Georgia,serif}
.ph-head span{font:400 10.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:#6E5E52}
.thread{flex:1;overflow-y:auto;padding:16px 14px 18px;display:flex;flex-direction:column;gap:8px;font-size:14.5px;line-height:1.45;scroll-behavior:smooth}
.ph-empty{margin:auto;text-align:center;font-style:italic;font-size:17px;color:#6E5E52;max-width:17em}
.bub{max-width:84%;padding:10px 14px;border-radius:19px;animation:pop .6s cubic-bezier(.16,1,.3,1) both}
.bub.them{align-self:flex-start;background:#ECE4D8;color:var(--umber);border-bottom-left-radius:6px}
.bub.me{align-self:flex-end;background:var(--green);color:var(--plaster);border-bottom-right-radius:6px}
.typing{display:flex;gap:4px;padding:14px 16px}
.typing i{width:7px;height:7px;border-radius:50%;background:#8A7A6E;animation:dot 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
.badge{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;margin:-2px 0 4px 4px;font:400 11px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.06em;color:#4F4A26;animation:pop .6s cubic-bezier(.16,1,.3,1) both}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--olive)}
.divider{display:flex;align-items:center;gap:10px;margin:10px 0 4px;font:400 10.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#6E5E52;animation:pop .6s ease both}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:#E0D6C8}
.stamp{align-self:center;font:400 10.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:#6E5E52;margin-bottom:4px}
.phone-cap{font-style:italic;font-size:16px;text-align:center;max-width:24em}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes dot{0%,60%,100%{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-3px)}}

/* footer */
.foot{background:var(--umber);color:var(--plaster);padding:clamp(72px,9vw,128px) 0 40px;overflow:hidden}
.foot-word{font:400 clamp(96px,22vw,320px)/.8 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1px rgba(244,238,228,.42);white-space:nowrap;margin-left:-.04em}
.foot-line{margin-top:clamp(36px,5vw,60px);font-size:clamp(17px,1rem + .4vw,21px)}
.foot-line a{text-decoration:underline;white-space:nowrap}
.foot-links{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:26px}
.foot-links a{font:400 12px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.foot-links a:hover{text-decoration:underline}
.credit{margin-top:40px;padding-top:20px;border-top:1px solid rgba(244,238,228,.2);font:400 12px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.06em;color:rgba(244,238,228,.78)}
.credit a{color:var(--plaster)}

/* sticky phone bar */
.mbar{display:none}

/* demo assistant */
.ask-launch{position:fixed;right:24px;bottom:24px;z-index:70;display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 22px 0 18px;border:1px solid rgba(244,238,228,.25);border-radius:999px;background:var(--green);color:var(--plaster);font:400 12.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:0 18px 40px -18px rgba(31,58,46,.8);transition:transform .5s cubic-bezier(.16,1,.3,1),background-color .4s ease}
.ask-launch:hover{transform:translateY(-2px)}
.ask-launch svg{width:16px;height:16px}
.ask-launch[aria-expanded="true"]{visibility:hidden}
.ask-launch.tuck{opacity:0;transform:translateY(14px);pointer-events:none;visibility:hidden;transition:opacity .5s ease,transform .5s ease,visibility 0s linear .5s}
.ask{position:fixed;right:24px;bottom:24px;z-index:80;width:min(380px,calc(100vw - 32px));height:min(560px,calc(100svh - 120px));display:flex;flex-direction:column;background:var(--plaster);border:1px solid var(--umber);box-shadow:0 40px 80px -30px rgba(43,29,23,.6);transform-origin:100% 100%;animation:askIn .5s cubic-bezier(.16,1,.3,1) both}
.ask[hidden]{display:none}
@keyframes askIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.ask-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 18px;background:var(--green);color:var(--plaster)}
.ask-head h2{font:400 21px/1.1 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif;letter-spacing:0}
.ask-head p{font:400 10.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:rgba(244,238,228,.82);margin-top:3px}
.ask-x{margin-left:auto;width:44px;height:44px;border:0;background:transparent;color:var(--plaster);cursor:pointer;display:grid;place-items:center;border-radius:50%}
.ask-x:hover{background:rgba(244,238,228,.12)}
.ask-head :focus-visible{outline-color:var(--plaster)}
.ask-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:9px;font-size:15.5px;line-height:1.5}
.ask-log .bub.them{max-width:90%}
.ask-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.chip{min-height:44px;padding:0 14px;border:1px solid var(--umber);border-radius:999px;background:transparent;color:var(--umber);font:400 11.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.06em;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background-color .35s ease,color .35s ease}
.chip:hover{background:var(--umber);color:var(--plaster)}
.chip.go{background:var(--terracotta);border-color:var(--terracotta);color:#fff}
.chip.go:hover{background:#9E4A30}
.ask-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px}
.ask-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.ask-form input{flex:1;min-width:0;min-height:46px;border:1px solid var(--line);background:#fff;padding:0 14px;font-size:16px;border-radius:2px}
.ask-form input:focus{outline:2px solid var(--terracotta);outline-offset:0}
.ask-form .btn{min-height:46px;padding:0 16px}

/* reveal: visible at rest; JS only hides what is below the fold, then brings it in slowly */
.mo .rv{transition:opacity 1.5s cubic-bezier(.16,1,.3,1),transform 1.8s cubic-bezier(.16,1,.3,1)}
.mo .rv.rv-wait{opacity:0;transform:translateY(30px)}
.mo .moment.rv-wait{opacity:1;transform:none}

/* booking page */
.page-book .nav{position:relative}
.book-hero{padding:clamp(48px,7vw,96px) 0 clamp(28px,4vw,48px)}
.book-hero h1{font-size:clamp(3rem,1.6rem + 4.6vw,6.25rem);margin-top:18px}
.book-hero .lead{margin-top:18px;font-style:italic}
.book-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:start;padding-bottom:clamp(80px,10vw,140px)}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:28px;counter-reset:st}
.steps li{counter-increment:st}
.steps button{width:100%;min-height:52px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:6px;padding:0 0 10px;border:0;border-bottom:2px solid var(--line);background:none;text-align:left;font:400 11.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--umber) 80%,var(--plaster));cursor:pointer}
.steps button::before{content:"0" counter(st);font-size:11px;color:var(--olive)}
.steps button:disabled{cursor:default;opacity:.62}
.steps [aria-current="step"]{border-bottom-color:var(--terracotta);color:var(--umber)}
.steps .done-step button{border-bottom-color:var(--umber)}
.steps .skip button{text-decoration:line-through;text-decoration-thickness:1px}
.flow fieldset{border:0;margin:0;padding:0;min-width:0}
.flow legend{padding:0;font:400 clamp(28px,1.3rem + 1.2vw,40px)/1.08 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif;margin-bottom:8px}
.legend-sub{margin-bottom:22px}
.js .flow .step{display:none}
.js .flow .step.on{display:block;animation:stepIn .8s cubic-bezier(.16,1,.3,1) both}
@keyframes stepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.flow .fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.flow .fields .full{grid-column:1/-1}
.kind{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--umber);margin-bottom:18px}
.kind label{position:relative;display:flex;align-items:center;justify-content:center;min-height:54px;padding:8px 12px;cursor:pointer;font:400 12px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;text-align:center;transition:background-color .4s ease,color .4s ease}
.kind label+label{border-left:1px solid var(--umber)}
.kind input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.kind label:has(input:checked){background:var(--umber);color:var(--plaster)}
.kind label:has(input:focus-visible){outline:2px solid var(--terracotta);outline-offset:2px}
.pick{display:grid;gap:14px}
.opt{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:18px;align-items:center;padding:12px 20px 12px 12px;border:1px solid var(--line);background:rgba(234,223,206,.28);cursor:pointer;transition:border-color .4s ease,background-color .4s ease}
.opt:hover{border-color:var(--umber)}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt:has(input:checked){border-color:var(--umber);background:var(--plaster);box-shadow:inset 0 0 0 1px var(--umber)}
.opt:has(input:focus-visible){outline:2px solid var(--terracotta);outline-offset:3px}
.opt img{width:112px;height:138px;object-fit:cover;border-radius:56px 56px 2px 2px}
.o-name{display:block;font:400 28px/1.05 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif}
.o-line{display:block;font-size:16px;margin-top:4px}
.opt .tot{text-align:right;font:400 11.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--olive);white-space:nowrap}
.opt .tot b{display:block;font:400 30px/1 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif;letter-spacing:0;text-transform:none;color:var(--umber);margin:5px 0}
.opt .mark{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:50%;border:1px solid var(--umber);display:grid;place-items:center}
.opt:has(input:checked) .mark::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--terracotta)}
.flow-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:28px}
.flow-nav .btn-primary{margin-left:auto}
.flow-nav .demo-note{flex-basis:100%;text-align:right}
.review{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 28px;padding:22px 0;border-block:1px solid var(--line)}
.review dt{font:400 11.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--olive);padding-top:4px}
.review dd{font-size:18px}
.perks{margin-top:22px;display:grid;gap:10px}
.perks li{display:flex;gap:12px;align-items:baseline}
.perks li::before{content:"";flex:none;width:9px;height:9px;transform:rotate(45deg) translateY(-2px);background:var(--terracotta)}
.summary{position:sticky;top:24px;display:grid;gap:28px}
.sum h2{font-size:30px}
.sum dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 20px;margin-top:18px}
.sum dt{font:400 11.5px "DM Mono",Menlo,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--olive);padding-top:3px}
.sum dd{font-size:17px;text-align:right}
.sum .total{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.sum .total b{font:400 36px/1 "Libre Caslon Display","Alcira Display Fallback",Georgia,serif}
.sum .perks{font-size:16px}
.sum-art{border-radius:999px 999px 2px 2px;overflow:hidden;aspect-ratio:16/10;margin:-4px -4px 20px;background:var(--sand)}
.sum-art img{width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.summary .phone-col{position:static}
.summary .phone-col[hidden]{display:none}

/* responsive */
@media (max-width:1080px){
  .nav-links{display:none}
  .nav-tel{margin-left:auto}
  .buyout-grid,.prop-grid,.book-grid{grid-template-columns:minmax(0,1fr)}
  .phone-col{position:static}
  .summary{position:static}
  .court{max-width:560px}
}
@media (max-width:900px){
  .bar{grid-template-columns:1fr 1fr}
  .bar .field:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}
  .bar .btn{grid-column:1/-1;min-height:56px;margin:0 10px 10px}
  .rooms-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:0 calc(-1 * clamp(20px,5vw,64px));padding:4px clamp(20px,5vw,64px) 18px;scrollbar-width:none;overscroll-behavior-x:contain}
  .rooms-grid::-webkit-scrollbar{display:none}
  .room{flex:0 0 min(78vw,340px);scroll-snap-align:center}
  .room:nth-child(2){margin-top:0}
  .day{grid-template-columns:minmax(0,1fr);gap:56px;max-width:440px}
  .quotes{grid-template-columns:minmax(0,1fr)}
  .quote:nth-child(n){grid-column:1/-1}
}
@media (max-width:760px){
  html{scroll-padding-top:24px}
  .strip{font-size:11px;padding:7px 12px}
  .nav{position:relative;height:64px}
  .nav .btn{display:none}
  .brand{font-size:21px}
  .nav-tel{font-size:12px}
  .hero{margin-top:-64px;height:max(600px,calc(100svh - 92px));max-height:none}
  .hero-media video{object-position:60% 0%}
  .hero-scrim{background:radial-gradient(90% 42% at 30% 62%,rgba(43,29,23,.45),rgba(43,29,23,0)),linear-gradient(0deg,rgba(43,29,23,.88) 0%,rgba(43,29,23,.76) 45%,rgba(43,29,23,.62) 62%,rgba(43,29,23,.26) 80%,rgba(43,29,23,.3) 100%)}
  .hero-inner{padding-bottom:96px}
  .hero h1{margin:16px 0 18px}
  .hero-cta{margin-top:26px;gap:6px 24px}
  .vid-toggle{top:76px;bottom:auto;right:14px}
  .vid-toggle .t{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .vid-toggle{padding:0}
  .vid-toggle svg{margin:auto}
  .booking{margin-top:-52px}
  .field{padding:14px 16px}
  .field:focus-within::after{left:16px;right:16px}
  .bar-foot{flex-direction:column}
  .form-grid,.flow .fields{grid-template-columns:minmax(0,1fr)}
  .phone{height:560px}
  .foot{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}
  .mbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;position:fixed;z-index:65;left:0;right:0;bottom:0;padding:8px max(10px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px));background:var(--plaster);border-top:1px solid var(--umber)}
  .mbar .btn{min-height:52px;padding:0 16px}
  .mbar .btn-line{letter-spacing:.04em}
  .mbar-one{grid-template-columns:minmax(0,1fr)}
  .ask-launch{right:12px;bottom:calc(80px + env(safe-area-inset-bottom,0px));min-height:48px;padding:0 16px 0 14px}
  .ask{right:8px;left:8px;bottom:8px;width:auto;height:min(600px,calc(100svh - 24px))}
  .opt{grid-template-columns:76px minmax(0,1fr);gap:14px;padding:10px 40px 10px 10px}
  .opt img{width:76px;height:96px}
  .o-name{font-size:24px}
  .opt .tot{grid-column:2;text-align:left}
  .steps button{font-size:10.5px;letter-spacing:.08em}
  .flow-nav .demo-note{text-align:left}
  .review{grid-template-columns:minmax(0,1fr);gap:2px}
  .review dd{margin-bottom:10px}
}
@media (max-width:360px){
  .hero-scrim{background:radial-gradient(90% 42% at 30% 62%,rgba(43,29,23,.45),rgba(43,29,23,0)),linear-gradient(0deg,rgba(43,29,23,.88) 0%,rgba(43,29,23,.78) 45%,rgba(43,29,23,.66) 68%,rgba(43,29,23,.56) 100%)}
  .hero-media video{object-position:55% 0%}
  .strip a{margin-left:4px}
  .mbar .btn{padding:0 10px;font-size:11.5px;letter-spacing:.08em}
  .btn{padding:0 20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .mo .rv.rv-wait{opacity:1;transform:none}
}
