
:root{
  --spruce:#0E1C1B;
  --spruce-2:#142725;
  --lake:#1E4A48;
  --silt:#E4E8E1;
  --snow:#FAFBF8;
  --mist:#93A29A;
  --bob:#E8552B;          /* Big Orange Bridge */
  --rule:rgba(147,162,154,.28);

  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Newsreader",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;

  --gut:clamp(1.25rem,5vw,4.5rem);
  --max:1180px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--snow);color:var(--spruce);
  font-family:var(--body);font-size:clamp(1.02rem,.55vw + .92rem,1.16rem);
  line-height:1.62;font-weight:300;
}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}

h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.02;letter-spacing:-.03em;margin:0}
h2{font-size:clamp(1.9rem,3.6vw,3.1rem)}
h3{font-size:1.16rem;letter-spacing:-.01em;line-height:1.25}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}

.eyebrow{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--mist);margin:0 0 1.4rem;display:flex;align-items:center;gap:.7rem;
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--rule)}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--spruce);color:var(--silt);overflow:hidden;isolation:isolate}
.hero__topo{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.5}
.hero__inner{position:relative;z-index:2;padding-block:clamp(1.5rem,4vw,3rem) 0}
.hero .eyebrow{color:var(--mist)}
.hero__mark{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--bob);
}
.hero h1{
  font-size:clamp(2.25rem,4.6vw,3.8rem);font-weight:800;letter-spacing:-.025em;line-height:1.12;
  color:var(--snow);max-width:25ch;
}
.hero h1 em{font-style:normal;color:var(--bob)}
.hero__sub{
  font-size:clamp(1.15rem,1.5vw,1.35rem);max-width:60ch;margin-top:1rem;color:var(--silt);
}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.hero__facts{font-family:var(--display);font-size:1rem;line-height:1.6;color:var(--silt)}
.hero__reviews{font-family:var(--display);font-size:1rem;line-height:1.6;margin-top:.75rem}
.hero__reviews a{color:var(--snow);text-underline-offset:4px}
.hero__reviews small{display:block;font-size:.875rem;color:var(--silt);margin-top:.2rem}
.hero .eyebrow{font-size:.875rem;letter-spacing:.12em;margin-bottom:1rem}
.hero__mark{font-size:inherit;letter-spacing:inherit}
.hero__cta .btn{font-size:.875rem;letter-spacing:.02em;text-transform:none;text-align:center;padding:.85rem 1.2rem}

.btn{
  font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  padding:1.05rem 1.6rem;border:1px solid var(--bob);background:var(--bob);color:#150705;
  text-decoration:none;transition:transform .15s ease,background .15s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--silt);border-color:var(--rule)}
.btn--ghost:hover{border-color:var(--silt)}

.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:2rem 0}
.gallery-grid figure{margin:0}
.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gallery-grid figcaption{padding:.5rem 0}
#photo-viewer{width:min(1000px,94vw);max-height:94vh;padding:1rem;border:0;background:#142724;color:white}
#photo-viewer::backdrop{background:rgba(0,0,0,.85)}
#photo-large{display:block;width:100%;height:65vh;object-fit:contain;margin-top:1rem}
#photo-viewer button{padding:.65rem 1rem;cursor:pointer;font:inherit}
.photo-controls{display:flex;justify-content:space-between;gap:1rem}
@media(max-width:700px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}}
@media(max-width:400px){.gallery-grid{grid-template-columns:1fr}}
/* photo band */
.band{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:8px;margin-top:1.5rem;position:relative;z-index:2;align-items:stretch}
.band figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--spruce-2)}
.band img{width:100%;height:100%;object-fit:cover;filter:saturate(.95)}
.band figure{aspect-ratio:auto;height:clamp(200px,24vw,300px)}
@media(max-width:720px){
  .band{grid-template-columns:1fr 1fr}
  .band figure{height:auto;aspect-ratio:4/3}
  .band figure:first-child{grid-column:1/-1;aspect-ratio:16/9}
  .hero__cta .btn{flex:1 1 220px}
}

/* ---------- ledger (signature) ---------- */
.ledger{background:var(--spruce);color:var(--silt);padding-block:clamp(3rem,7vw,4.5rem)}
.ledger__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));
  border-top:1px solid var(--rule);
}
.ledger__cell{padding:1.5rem 1.2rem 1.4rem 0;border-bottom:1px solid var(--rule)}
.ledger__k{
  font-family:var(--mono);font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--mist);display:block;margin-bottom:.55rem;
}
.ledger__v{font-family:var(--display);font-size:1.55rem;font-weight:600;letter-spacing:-.03em;color:var(--snow);line-height:1.1}
.ledger__v small{display:block;font-family:var(--body);font-size:.86rem;font-weight:300;color:var(--mist);letter-spacing:0;margin-top:.35rem}

/* ---------- sections ---------- */
section{padding-block:clamp(3.5rem,8vw,6.5rem)}
.lede{font-size:clamp(1.15rem,1.7vw,1.4rem);max-width:60ch;margin-top:1.6rem}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media(max-width:820px){.cols{grid-template-columns:1fr}}

.answer{
  border-left:2px solid var(--bob);padding:.15rem 0 .15rem 1.15rem;margin:1.8rem 0;
  font-size:1.06rem;
}

/* amenity groups */
.kit{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:2.5rem}
.kit__col{background:var(--snow);padding:1.6rem 1.4rem}
.kit h3{margin-bottom:.9rem}
.kit ul{list-style:none;margin:0;padding:0;font-size:.97rem}
.kit li{padding:.32rem 0;border-bottom:1px dotted var(--rule);color:#2A3B38}
.kit li:last-child{border-bottom:0}

/* location table */
.dist{width:100%;border-collapse:collapse;margin-top:2rem;font-family:var(--mono);font-size:.87rem}
.dist caption{text-align:left;font-family:var(--mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mist);padding-bottom:.9rem}
.dist th,.dist td{text-align:left;padding:.85rem .5rem;border-bottom:1px solid var(--rule);vertical-align:top}
.dist th{font-weight:500;width:52%}
.dist td:last-child{text-align:right;color:var(--lake);white-space:nowrap}
@media(max-width:560px){.dist{font-size:.79rem}.dist th{width:58%}}

/* faq */
.faq{background:var(--silt)}
.faq details{border-bottom:1px solid rgba(20,39,37,.16);padding:1.15rem 0}
.faq details:first-of-type{border-top:1px solid rgba(20,39,37,.16)}
.faq summary{
  font-family:var(--display);font-weight:600;font-size:1.12rem;letter-spacing:-.015em;
  cursor:pointer;list-style:none;display:flex;gap:1rem;align-items:baseline;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;color:var(--bob);font-family:var(--mono);font-size:1.1rem}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:.9rem;max-width:72ch;font-size:1rem}

/* host */
.host{background:var(--lake);color:var(--silt)}
.host h2{color:var(--snow)}
.host a{color:var(--snow)}

/* cta */
.book{background:var(--spruce);color:var(--silt);text-align:center}
.book h2{color:var(--snow);max-width:18ch;margin-inline:auto}
.book p{max-width:52ch;margin-inline:auto;margin-top:1.3rem;opacity:.85}

footer{background:var(--spruce);color:var(--mist);padding-block:2.5rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.72rem;letter-spacing:.04em}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}

:focus-visible{outline:2px solid var(--bob);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
