/* Coldstream Suites — page styles (DEMO v01). Colours and fonts come from tokens.css only. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;margin:0 0 .5em}
h1{font-size:var(--step-4)}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-2)}
h1 em,h2 em{font-style:italic;color:var(--mute)}
p{margin:0 0 1em;max-width:62ch}
.small{font-size:var(--step--1);color:var(--mute)}
.center{text-align:center;margin-inline:auto}
.eyebrow{font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gap)}
.section{padding:var(--section) 0}
.section-bone{background:var(--bone)}
.section-ink{background:var(--ink);color:var(--paper)}
.section-ink .small,.section-ink h2 em{color:#a9a8a3}
.rule-gold{width:56px;height:2px;background:var(--gold);margin:1.5rem 0}

/* demo bar + header */
.demo-bar{background:var(--gold);color:var(--ink);font-size:.75rem;text-align:center;padding:.4rem 1rem;letter-spacing:.04em}
.site-head{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem var(--gap);background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.wordmark{font-family:var(--serif);font-size:1.35rem;text-decoration:none;letter-spacing:.02em}
.wordmark span{font-style:italic;color:var(--gold)}
.nav{display:flex;gap:1.5rem;align-items:center;font-size:.9rem}
.nav a{text-decoration:none}
.nav a:hover{color:var(--gold)}
.nav-cta{border:1px solid var(--ink);padding:.45rem 1rem}
@media (max-width:680px){.nav a:not(.nav-cta){display:none}}

/* buttons */
.btn{display:inline-block;padding:.9rem 1.6rem;font:500 .9rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;border-radius:var(--radius);cursor:pointer}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-soft)}
.btn-gold:disabled{background:var(--line);color:var(--mute);cursor:not-allowed}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ghost{border-color:var(--paper);color:var(--paper)}
.btn-block{width:100%;margin-top:1rem}

/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink);color:var(--paper)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:680px){.hero-video{object-position:78% 50%}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.7))}
.hero-copy{position:relative;max-width:var(--max);width:100%;margin:0 auto;padding:0 var(--gap) clamp(3rem,8vw,6rem)}
.hero-copy .eyebrow{color:var(--gold-soft)}
.hero-copy h1 em{color:var(--paper)}
.lede{font-size:var(--step-1);max-width:46ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}

/* placeholder + photo frames */
.tag{position:absolute;left:1rem;top:1rem;background:rgba(14,14,14,.8);color:var(--gold-soft);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .6rem}
.tag-hero{top:auto;bottom:1rem;left:auto;right:1rem}
figure{margin:0}
.ph{position:relative;display:flex;align-items:center;justify-content:center;min-height:240px;background:repeating-linear-gradient(135deg,var(--bone) 0 14px,#ecebe7 14px 28px);border:1px dashed #bdbcb6;text-align:center}
.ph-label{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding:1rem}
.ph-label strong{display:block;margin-top:.4rem;font:400 1.1rem/1.3 var(--serif);letter-spacing:0;text-transform:none;color:var(--ink)}
.ph-tall{min-height:420px}
.ph-dark{background:repeating-linear-gradient(135deg,#1c1c1c 0 14px,#232323 14px 28px);border-color:#444;min-height:360px}
.ph-dark .ph-label strong{color:var(--paper)}
.shot{overflow:hidden;background:var(--bone)}
.shot img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9}
.shot-tall img{aspect-ratio:4/5;object-position:60% 50%}

/* layouts */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:var(--gap)}
.trio .ph{min-height:0;aspect-ratio:16/9}
@media (max-width:820px){.split,.trio{grid-template-columns:1fr}}

/* suite cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:2rem}
.card{background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column}
.card-live{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.ph-card{min-height:0;aspect-ratio:16/9;border:0;border-bottom:1px dashed #bdbcb6}
.card-body{padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.card-body .btn,.card-body .soon{margin-top:auto;align-self:flex-start}
.soon{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);border-top:1px solid var(--gold);padding-top:.5rem}
@media (max-width:820px){.cards{grid-template-columns:1fr}}

/* suite bee */
.film{margin:2rem 0 var(--gap);aspect-ratio:16/9;overflow:hidden;background:var(--ink)}
.film video{width:100%;height:100%;display:block;object-fit:cover;background:var(--ink)}
.film-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.35) brightness(.7)}
.play{position:relative;width:84px;height:84px;border-radius:50%;border:2px solid var(--paper)}
.play::after{content:"";position:absolute;left:34px;top:26px;border-left:22px solid var(--paper);border-top:16px solid transparent;border-bottom:16px solid transparent}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.g-wide{grid-column:span 2;grid-row:span 2}
.g-wide img{aspect-ratio:auto}
@media (max-width:820px){.gallery{grid-template-columns:repeat(2,1fr)}.g-wide{grid-row:auto}}

/* guests say (reviews) */
.reviews{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap);margin-top:2rem}
.review{margin:0;padding:1.75rem;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;gap:.75rem}
.review p{margin:0}
.review .stars{color:var(--gold);letter-spacing:.15em;font-size:.9rem}
.review-feature{grid-column:1/-1;border-color:var(--ink)}
.review-feature p:not(.stars){font:400 var(--step-1)/1.5 var(--serif)}
.review .reply{font-size:var(--step--1);color:var(--mute);border-left:2px solid var(--gold);padding-left:.75rem}
.review .reply span{color:var(--ink)}
.review footer{margin-top:auto;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
@media (max-width:820px){.reviews{grid-template-columns:1fr}}

/* listing + booker */
.listing{display:grid;grid-template-columns:1fr 420px;gap:clamp(2rem,5vw,4rem);margin-top:var(--section);align-items:start;scroll-margin-top:6rem}
@media (max-width:900px){.listing{grid-template-columns:1fr}}
.facts{list-style:none;margin:0 0 1rem;padding:0;border-top:1px solid var(--line)}
.facts li{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.facts li span:first-child{color:var(--mute)}
.tbc{font-size:.7rem;letter-spacing:.14em;color:var(--gold);border:1px solid var(--gold);padding:.1rem .45rem;align-self:center}
.booker{border:1px solid var(--ink);padding:1.5rem;background:var(--paper)}
.rate{font:400 1.9rem/1 var(--serif)}
.cal-nav{display:flex;justify-content:space-between;margin:.5rem 0}
.cal-nav button{background:none;border:1px solid var(--line);width:2.2rem;height:2.2rem;font-size:1.2rem;cursor:pointer}
.cal-months{display:grid;gap:1.25rem}
.cal-title{font:400 1.1rem/1 var(--serif);margin:0 0 .5rem;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{font-size:.65rem;text-align:center;color:var(--mute);letter-spacing:.1em;padding-bottom:.25rem}
.day{aspect-ratio:1;border:0;background:var(--paper);font:400 .85rem var(--sans);cursor:pointer;border-radius:var(--radius)}
.day:hover:not(:disabled){outline:1px solid var(--ink)}
.day:disabled{cursor:default;color:#b9b8b3}
.day.blocked{background:var(--blocked);text-decoration:line-through;color:#a3a29d}
.day.in-range{background:var(--gold-soft)}
.day.edge{background:var(--ink);color:var(--paper)}
.day.empty{visibility:hidden}
.legend{display:flex;align-items:center;gap:.4rem;font-size:.7rem;color:var(--mute);margin:.75rem 0}
.k{display:inline-block;width:.8rem;height:.8rem;border:1px solid var(--line);margin-left:.5rem}
.k-blocked{background:var(--blocked)}
.k-sel{background:var(--ink)}
.summary{border-top:1px solid var(--line);padding-top:1rem;margin-top:.5rem}
.sum-row{display:flex;justify-content:space-between;font-size:.9rem;padding:.2rem 0}
.sum-total{font-weight:600;border-top:1px solid var(--line);margin-top:.4rem;padding-top:.5rem}
.done{margin-top:1rem;padding:1rem;background:var(--bone);border-left:3px solid var(--gold)}

/* footer */
.site-foot{background:var(--ink);color:var(--paper);padding:3rem 0;border-top:1px solid #222}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center}
.foot .small{color:#a9a8a3;margin:0}
.foot .wordmark{margin:0}

/* suite highlights (private entrance first — Jason 2026-09-27) */
.highlights{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;max-width:none}
.highlights span{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--gold);color:var(--ink);padding:.4rem .75rem}
.highlights .hl-key{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* booking section (LIVE v02, 2026-10-25): one calendar for all three suites, request form */
.book-wrap{display:grid;grid-template-columns:1fr 480px;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (max-width:900px){.book-wrap{grid-template-columns:1fr}}
.suite-tabs{display:flex;gap:.4rem;margin-bottom:1rem}
.suite-tab{flex:1;background:none;border:1px solid var(--line);padding:.7rem .5rem;font:500 .8rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.suite-tab.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.req{display:grid;gap:.6rem;margin-top:1rem}
.req label{display:grid;gap:.25rem;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.req input,.req select,.req textarea{font:400 1rem var(--sans);padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);width:100%}
.req input:focus,.req select:focus,.req textarea:focus{outline:2px solid var(--gold);outline-offset:0}
.req textarea{min-height:5rem;resize:vertical}
.req .two{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.req .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.req .btn-block{margin-top:.4rem}
.err{margin-top:.75rem;padding:.75rem 1rem;border-left:3px solid #b3261e;background:#fbf1f0;font-size:.9rem}
.book-steps{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:1rem}
.book-steps li{display:grid;grid-template-columns:2.2rem 1fr;gap:.75rem;align-items:start}
.book-steps b{font:400 1.4rem/1 var(--serif);color:var(--gold)}
.listing-solo{grid-template-columns:1fr;max-width:640px}
[hidden]{display:none!important}
