:root{
  --rw-ink:#16211B; --rw-wood:#22402F; --rw-river:#557A8B; --rw-copper:#96562F;
  --rw-sand:#E7DFD1; --rw-bone:#FBF8F3; --rw-stone:#6B6558;
  /* The three ink cuts. Measured on the real grounds 2026-08-27: river reads 4.36:1
     on bone, copper 4.33:1 on sand and stone 4.38:1 on sand, so all three FAILED AA
     as text on this build. The SHIPPED Riverwoods build had already solved every one
     and states the policy in its own stylesheet: the master values are DECORATIVE
     ONLY and the ink cut carries every piece of text in that color. This build never
     got them. Adopting the sibling's values rather than deriving new ones, exactly as
     --el-stone was adopted on the Elements alt. Now 5.71, 4.59 and 4.57. The masters
     keep the borders, fills, chip backgrounds and the leaf marks, which are non-text
     graphics at a 3:1 floor. */
  --rw-river-ink:#486775; --rw-copper-ink:#90532D; --rw-stone-ink:#686256;
  --rw-line:rgba(22,33,27,.14);
  --measure:68ch; --page:1280px; --wide:1600px; --gut:clamp(20px,4vw,64px);
  --s2:8px; --s3:12px; --s4:20px; --s5:32px; --s6:52px; --s7:84px; --s8:136px;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --t:180ms cubic-bezier(.2,.7,.3,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--rw-bone);color:var(--rw-ink);font-family:var(--sans);
  font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;
  print-color-adjust:exact}
img,picture{max-width:100%}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;margin:0 0 var(--s4);line-height:1.1}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:300}
h2{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:300}
h3{font-size:1.22rem}
p{margin:0 0 var(--s4);max-width:var(--measure)}
a{color:inherit}
.wrap{max-width:var(--page);margin:0 auto;padding-inline:var(--gut)}
.wide{max-width:var(--wide);margin:0 auto;padding-inline:var(--gut)}
.micro{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--rw-ink);color:#fff;
  padding:10px 16px;border-radius:4px}
:focus-visible{outline:2px solid var(--rw-copper);outline-offset:3px}
.leafdefs{position:absolute;width:0;height:0;overflow:hidden}
.leaf{width:1.05em;height:1.05em;flex:none;color:var(--rw-copper)}

.cbar{background:var(--rw-ink);color:var(--rw-sand);font-size:.75rem;padding:11px 0;
  letter-spacing:.05em}
.cbar .wide{display:flex;gap:var(--s4);align-items:flex-start}
.cbar p{margin:0;max-width:none}
.cbar button{margin-left:auto;flex:none;background:none;
  border:1px solid rgba(231,223,209,.4);color:var(--rw-sand);border-radius:20px;
  width:30px;height:30px;cursor:pointer}

/* ---------- header, audience-segmented, persistent RFP ---------- */
.hdr{position:sticky;top:0;z-index:40;background:var(--rw-bone);
  border-bottom:1px solid var(--rw-line)}
/* padding-block, NOT the padding shorthand. .hdr-in shares its element with
   .wide, and a shorthand here resets .wide's padding-inline to 0, which bled the
   header to both screen edges while every other section stayed inset. */
.hdr-in{display:flex;align-items:center;gap:var(--s5);padding-block:14px}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.05}
.brand b{font-family:var(--serif);font-size:1.4rem;font-weight:500}
.brand span{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--rw-stone-ink);font-weight:600}
.mainnav{margin-left:auto}
.mainnav ul{display:flex;gap:var(--s5);list-style:none;margin:0;padding:0}
.mainnav a{font-size:.78rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;
  text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.mainnav a:hover{border-bottom-color:var(--rw-copper)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;
  padding:12px 20px;border-radius:2px;text-decoration:none;border:1px solid transparent;
  cursor:pointer;font-family:var(--sans);transition:var(--t)}
.btn-cop{background:var(--rw-copper);color:#fff}
.btn-cop:hover{background:#7E4726}
.btn-line{border-color:currentColor}
.navtoggle{display:none;background:none;border:0;cursor:pointer;font-weight:700;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:10px}
@media (max-width:1000px){
  .mainnav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--rw-bone);
    border-bottom:1px solid var(--rw-line);padding:var(--s4) var(--gut)}
  .mainnav.open{display:block}
  .mainnav ul{flex-direction:column;gap:var(--s3)}
  .navtoggle{display:block;margin-left:auto}
  .hdr-in{position:relative;flex-wrap:wrap}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:86svh;display:grid;place-items:center;
  background:var(--rw-ink);overflow:hidden;isolation:isolate}
.hero .frames{position:absolute;inset:0;z-index:-2}
.hero .frames .ph{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease-in-out}
.hero .frames .ph.on{opacity:1}
.hero .frames img{width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:no-preference){
  .hero .frames .ph.on img{animation:kb 15s ease-out forwards}
}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(22,33,27,.6),rgba(22,33,27,.34) 44%,rgba(22,33,27,.8))}
.hero-tx{text-align:center;color:var(--rw-bone);padding:var(--s8) var(--gut) var(--s7);
  max-width:960px}
.hero-tx .micro{color:#D6C3B0;margin:0 0 var(--s4)}
.hero-tx h1{color:var(--rw-bone)}
.hero-tx p{margin:0 auto var(--s6);max-width:58ch;color:#E9E2D7}
.hero-cta{display:flex;gap:var(--s3);justify-content:center;flex-wrap:wrap}

/* ---------- credentials band, the Rogers pattern ---------- */
.creds{background:var(--rw-wood);color:var(--rw-bone);padding-block:var(--s6)}
.creds-in{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  text-align:center}
.cred b{display:block;font-family:var(--serif);font-size:clamp(2rem,3.4vw,2.9rem);
  font-weight:300;line-height:1;font-variant-numeric:tabular-nums}
.cred span{display:block;margin-top:9px;font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:#CBBBA6;font-weight:700}

.sec{padding-block:clamp(60px,8vw,120px)}
.sec.sand{background:var(--rw-sand)}
.head{max-width:64ch;margin-bottom:var(--s6)}
.head .micro{color:var(--rw-copper-ink);margin:0 0 var(--s3)}
.lead{font-family:var(--serif);font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.4;
  font-weight:300;max-width:46ch}

/* ---------- feature blocks with progressive disclosure ---------- */
.feats{display:grid;gap:var(--s4)}
.feat{background:var(--rw-bone);border:1px solid var(--rw-line);border-left:3px solid var(--rw-copper)}
.sec.sand .feat{background:var(--rw-bone)}
.feat>summary{list-style:none;cursor:pointer;padding:14px 32px;
  display:flex;align-items:center;gap:20px}
.feat>summary::-webkit-details-marker{display:none}
.feat .chev{width:20px;height:20px;flex:none;border-radius:6px;display:flex;
  align-items:center;justify-content:center;background:rgba(150,86,47,.14);
  color:var(--rw-copper-ink);transition:transform var(--t)}
.feat[open] .chev{transform:rotate(90deg);background:rgba(150,86,47,.28)}
.feat .gly{width:14px;height:14px}
.feat h3{margin:0;font-size:1.22rem}
.feat .sum{margin:2px 0 0;font-size:.92rem;color:var(--rw-stone-ink);max-width:none}
.feat .body{padding:0 var(--s5) var(--s5) calc(var(--s5) + 32px)}
.feat .body p{margin:0;font-size:.97rem}

/* ---------- capacity matrix, the NCCC shape ---------- */
.twrap{overflow-x:auto;border:1px solid var(--rw-line);background:var(--rw-bone)}
table{border-collapse:collapse;width:100%;font-size:.9rem;table-layout:auto}
th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--rw-line);
  overflow-wrap:normal;word-break:normal;hyphens:none}
th{white-space:nowrap;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:var(--rw-stone-ink);background:rgba(22,33,27,.045)}
td.id{white-space:nowrap;font-weight:600}
td.id span{display:inline-flex;align-items:center;gap:8px}
th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}
tbody tr:last-child td{border-bottom:0}
tbody tr.grp td{background:rgba(85,122,139,.09);font-weight:700;font-size:.74rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--rw-stone-ink)}
.np{color:var(--rw-stone-ink);opacity:.62;font-size:.82rem}
/* The column's vintage, stated in its own header. Normal case, not the caps the th
   carries, so it reads as a note about the column rather than as part of its name. */
th .csrc{display:block;margin-top:3px;font-size:.62rem;letter-spacing:.04em;
  text-transform:none;font-weight:500;color:var(--rw-stone-ink);opacity:.85}
/* The one cell in the square-feet column that is a CURRENT figure rather than a 2017
   one. Marks the mixed vintage at the cell, because the header cannot. */
td .cur{display:block;font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;
  font-weight:700;color:var(--rw-copper-ink);margin-top:2px}
.mnote{font-size:.86rem;color:var(--rw-stone-ink);margin-top:var(--s4)}
.mnote + .mnote{margin-top:var(--s3)}

/* ---------- room gallery ---------- */
.rooms{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  margin-bottom:var(--s6)}
.room{background:var(--rw-bone);border:1px solid var(--rw-line);display:flex;
  flex-direction:column;overflow:hidden}
/* height:auto, same trap as the Elements alt: the height ATTRIBUTE beats
   aspect-ratio when CSS only sets width. */
.room img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;
  transition:transform 520ms cubic-bezier(.2,.7,.3,1)}
.room:hover img{transform:scale(1.04)}
.room-b{padding:var(--s4) var(--s5) var(--s5);display:flex;flex-direction:column;
  gap:7px;flex:1}
.room-b h3{margin:0;display:flex;align-items:center;gap:9px;font-size:1.2rem}
.room-b .cap{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:var(--rw-copper-ink);font-variant-numeric:tabular-nums}
.room-b .cap.none{color:var(--rw-stone-ink);opacity:.75}
.room-b p{margin:0;font-size:.9rem;color:var(--rw-stone-ink);max-width:none}
.nophoto{background:var(--rw-sand);aspect-ratio:3/2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:10px;text-align:center;padding:var(--s4)}
.nophoto .leaf{width:52px;height:52px}
.nophoto p{font-size:.78rem;color:var(--rw-stone-ink);max-width:30ch;margin:0}

/* ---------- events ---------- */
.evs{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.ev{border:1px solid var(--rw-line);background:var(--rw-bone);padding:var(--s4) var(--s5)}
.ev .micro{color:var(--rw-river-ink);margin:0 0 6px}
.ev h3{font-size:1.05rem;margin:0 0 6px;font-family:var(--sans);font-weight:600}
.ev p{margin:0;font-size:.86rem;color:var(--rw-stone-ink);max-width:none}
.callout{border:1px solid var(--rw-copper);background:rgba(150,86,47,.06);
  padding:var(--s5);margin-bottom:var(--s6)}
.callout p:last-child{margin-bottom:0}

/* ---------- RFP form, modeled on the Rogers field set ---------- */
.rfp{background:var(--rw-bone);border:1px solid var(--rw-line);padding:var(--s6) var(--s5)}
.fset{border:0;padding:0;margin:0 0 var(--s6)}
.fset legend{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;
  font-weight:700;color:var(--rw-copper-ink);padding:0;margin-bottom:var(--s4)}
.frow{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  margin-bottom:var(--s4)}
.f{display:flex;flex-direction:column;gap:6px}
.f label{font-size:.74rem;letter-spacing:.06em;font-weight:700;color:var(--rw-stone-ink)}
.f input,.f select,.f textarea{font-family:var(--sans);font-size:.95rem;padding:11px 12px;
  border:1px solid var(--rw-line);background:#fff;color:var(--rw-ink);border-radius:2px}
.f textarea{min-height:110px;resize:vertical}
.f .hint{font-size:.76rem;color:var(--rw-stone-ink);font-weight:400;letter-spacing:0}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{display:block;border:1px solid var(--rw-line);border-radius:20px;
  padding:8px 16px;font-size:.82rem;cursor:pointer;transition:var(--t)}
.chip input:checked+span{background:var(--rw-copper);color:#fff;border-color:var(--rw-copper)}
.chip input:focus-visible+span{outline:2px solid var(--rw-copper);outline-offset:2px}
.fitwrap{margin-top:var(--s3);font-size:.88rem;color:var(--rw-stone-ink)}
.fitwrap b{color:var(--rw-ink)}
.fitlist{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.fitlist span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--rw-line);
  border-radius:20px;padding:5px 12px;font-size:.8rem;background:var(--rw-bone)}
.submitrow{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap}
.formnote{font-size:.82rem;color:var(--rw-stone-ink);max-width:46ch;margin:0}
.ok{display:none;border:1px solid var(--rw-copper);background:rgba(150,86,47,.07);
  padding:var(--s5);margin-top:var(--s5)}
.ok.on{display:block}
.ok h3{margin-top:0}
.ok dl{display:grid;grid-template-columns:auto 1fr;gap:6px var(--s4);margin:0 0 var(--s4);
  font-size:.9rem}
.ok dt{font-weight:700;color:var(--rw-stone-ink)}
.ok dd{margin:0}
.err{color:var(--rw-copper-ink);font-size:.8rem;font-weight:600}

.g3{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.g3 h3{font-family:var(--sans);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--rw-copper-ink);margin:0 0 var(--s3)}
.g3 p{margin:0 0 6px;font-size:.95rem;max-width:none}
.hrow{display:flex;justify-content:space-between;gap:var(--s4);padding:7px 0;
  border-bottom:1px solid var(--rw-line);font-size:.92rem}
.hrow:last-child{border-bottom:0}
.ph{position:relative;display:block}
.cbadge{position:absolute;left:10px;top:10px;z-index:2;background:rgba(22,33,27,.82);
  color:var(--rw-sand);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:700;padding:4px 8px;border-radius:2px}
.ft{background:var(--rw-ink);color:var(--rw-sand);padding-block:var(--s7) var(--s5)}
.ft h3{color:#D6C3B0}
.ft a{color:var(--rw-sand)}
.ft-b{margin-top:var(--s6);padding-top:var(--s4);
  border-top:1px solid rgba(231,223,209,.18);font-size:.76rem;
  color:rgba(231,223,209,.72);display:flex;gap:var(--s4);flex-wrap:wrap}
.ft-b p{margin:0;max-width:none}
