@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');
:root { --ink:#193b38; --ink-dark:#102b2b; --cream:#f7f4ed; --paper:#fffcf6; --muted:#5d6862; --line:#d6d9cf; --accent:#a25e3b; --serif:Georgia,'Times New Roman',serif; --sans:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box }
html { scroll-behavior:smooth }
body { margin:0; color:var(--ink); background:var(--cream); font-family:var(--sans); font-size:16px; line-height:1.55 }
button,a { -webkit-tap-highlight-color:transparent }
button { font:inherit }
a { color:inherit }
img { display:block; max-width:100% }
:focus-visible { outline:3px solid #d39852; outline-offset:3px }
.skip-link { position:absolute; z-index:20; top:-100px; left:1rem; background:white; padding:.7rem 1rem }
.skip-link:focus { top:1rem }
.site-header { height:82px; padding:0 clamp(24px,4vw,72px); display:flex; align-items:center; justify-content:space-between; gap:2rem; background:var(--paper); }
.wordmark { display:flex; align-items:center; gap:14px; text-decoration:none; font-size:.9rem; font-weight:700; letter-spacing:.14em; white-space:nowrap; line-height:1.1 }
.wordmark small { display:block; font-size:.62rem; letter-spacing:.16em; font-weight:500; margin-top:6px; color:var(--muted) }
.wordmark-mark { width:56px; height:56px; flex-shrink:0; display:block }
.mark-dot { color:var(--accent) }
.site-header nav { display:flex; align-items:center; gap:clamp(16px,2.8vw,44px); font-size:.83rem; font-weight:600 }
.site-header nav a { text-decoration:none; white-space:nowrap; padding:12px 0; border-bottom:1px solid transparent }
.site-header nav a:hover { border-color:currentColor }
.site-header nav .nav-download { border:1px solid var(--ink); padding:12px 17px }
.nav-download span { margin-left:10px }
.hero { height:min(690px,73vw); min-height:530px; position:relative; overflow:hidden; color:#fff }
.hero-image,.hero-shade { position:absolute; inset:0 }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center bottom }
.hero-shade { background:linear-gradient(90deg,rgba(10,34,31,.48),rgba(10,34,31,.15) 39%,rgba(10,34,31,0) 70%),linear-gradient(0deg,rgba(9,33,28,.12),transparent 30%) }
.hero-content { position:relative; z-index:1; max-width:760px; padding:clamp(80px,10vw,147px) 0 0 clamp(32px,9vw,144px) }
.eyebrow,.section-kicker { font-size:.73rem; font-weight:700; letter-spacing:.21em; line-height:1.5 }
.eyebrow { color:#f0e9d9; display:flex; align-items:center; gap:16px; white-space:nowrap }
.eyebrow .line { width:33px; height:1px; background:#e7d9bc }
h1,h2,h3,h4,p { margin-top:0 }
h1,h2,h3 { font-family:var(--serif); font-weight:400 }
h1 { font-size:clamp(4rem,7.2vw,7.8rem); line-height:.99; letter-spacing:-.055em; margin:36px 0 29px }
h1 em { font-weight:400 }
.hero-content > p:not(.eyebrow) { font-size:1.16rem; line-height:1.6; max-width:440px; color:#f7f4eb }
.hero-link { display:inline-flex; gap:30px; align-items:center; margin-top:29px; padding-bottom:13px; font-size:.88rem; letter-spacing:.04em; font-weight:700; text-decoration:none; border-bottom:1px solid #f9f3e6 }
.hero-link span { font-size:1.2rem }
.hero-caption { position:absolute; bottom:25px; right:clamp(24px,4vw,72px); z-index:1; color:#fff; font-size:.76rem; text-shadow:0 1px 6px #1d2829 }
.at-a-glance { display:grid; grid-template-columns:repeat(4,1fr); background:var(--ink); color:#f8f4e9; padding:31px clamp(28px,5.5vw,96px); }
.at-a-glance > div { border-left:1px solid #5d7972; padding:5px 20px 4px clamp(20px,2.5vw,45px); min-height:74px; display:flex; align-items:center; gap:16px }
.at-a-glance > div:first-child { border:0; padding-left:0 }
.at-a-glance strong { font-family:var(--serif); font-size:clamp(1.7rem,2.4vw,2.7rem); font-weight:400; white-space:nowrap }
.at-a-glance span { color:#dbe5dc; line-height:1.35; font-size:.79rem }
.intro-section { display:grid; grid-template-columns:.65fr 1.55fr .85fr; gap:clamp(25px,4.5vw,80px); padding:112px clamp(32px,8vw,130px) 116px; max-width:1600px; margin:auto; align-items:start }
.section-kicker { color:var(--accent) }
.intro-section .section-kicker { padding-top:14px }
h2 { font-size:clamp(2.5rem,4.1vw,4.8rem); line-height:1.08; letter-spacing:-.04em; margin-bottom:25px }
.intro-copy p { max-width:670px; font-size:1.1rem; color:#455651; line-height:1.73 }
.intro-aside { border-top:1px solid var(--ink); padding-top:13px; color:#4d5c56; font-size:.93rem; }
.intro-aside .small-sun { color:var(--accent); font-size:1.7rem }
.intro-aside p { margin-top:9px; line-height:1.65 }
.tour-section { background:var(--paper); padding:98px clamp(26px,8vw,130px) 88px; scroll-margin-top:30px }
.tour-heading { max-width:1440px; margin:auto; display:flex; align-items:end; justify-content:space-between; gap:40px }
.tour-heading h2 { margin-bottom:25px }
.tour-heading > p { max-width:330px; color:#52655c; font-size:.94rem; margin-bottom:25px }
.tour-tabs { max-width:1440px; margin:10px auto 28px; display:flex; gap:6px; border-bottom:1px solid var(--line); overflow-x:auto }
.tour-tabs button { border:0; background:none; color:#51635b; padding:15px 22px 16px; cursor:pointer; white-space:nowrap; font-weight:600; border-bottom:3px solid transparent; font-size:.91rem }
.tour-tabs button:first-child { padding-left:0 }
.tour-tabs button[aria-selected="true"] { color:var(--ink); border-bottom-color:var(--accent) }
.tour-panel { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(290px,.8fr); gap:clamp(30px,4vw,65px); max-width:1440px; margin:auto; }
.tour-stage { background:#d8dbd0; height:clamp(380px,45vw,650px); position:relative; overflow:hidden }
.stage-photo { border:0; background:none; width:100%; height:100%; padding:0; cursor:zoom-in }
.stage-photo img { width:100%; height:100%; object-fit:cover; object-position:center }
.stage-count { position:absolute; top:22px; left:23px; background:rgba(22,50,46,.86); color:#fff; padding:7px 11px; font-size:.8rem; letter-spacing:.08em; pointer-events:none }
.stage-arrow { position:absolute; bottom:21px; border:1px solid #fff; color:#fff; background:rgba(16,43,43,.72); width:47px; height:47px; border-radius:50%; cursor:pointer; font-size:2rem; line-height:1; display:grid; place-items:center; padding-bottom:5px }
.stage-arrow:hover { background:var(--ink-dark) }
.stage-prev { right:76px }.stage-next { right:20px }
.tour-information { display:flex; flex-direction:column; justify-content:space-between; padding:10px 0 }
.caption-label { color:var(--accent); font-size:.74rem; font-weight:700; letter-spacing:.18em; margin-bottom:20px }
.stage-caption h3 { font-size:clamp(2.1rem,3.2vw,3.8rem); line-height:1.08; margin-bottom:19px; letter-spacing:-.035em }
.stage-caption p:not(.caption-label) { font-size:1rem; color:#55665d; }
.zoom-hint { display:block; color:#748078; font-size:.78rem; margin-top:20px }
.tour-notes { border-top:1px solid var(--line); padding-top:27px }
.tour-notes h4 { font-family:var(--serif); font-weight:400; font-size:1.5rem; margin-bottom:9px }
.tour-notes p { color:#4e6057; font-size:.91rem; line-height:1.65 }
.tour-notes .fine { font-size:.8rem; color:#737d73 }
.thumbnail-strip { max-width:1440px; margin:21px auto 0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px }
.thumb { background:none; border:0; text-align:left; padding:0; color:#5d6862; cursor:pointer; font-size:.8rem; line-height:1.4 }
.thumb img { width:100%; height:103px; object-fit:cover; border:3px solid transparent; opacity:.74; transition:opacity .2s }
.thumb.selected img,.thumb:hover img { opacity:1 }
.thumb.selected img { border-color:var(--accent) }
.thumb span { display:block; margin-top:6px }
.photo-note { max-width:1440px; margin:38px auto 0; color:#65736a; font-size:.82rem }
.feature-band { height:470px; position:relative; overflow:hidden; display:grid; align-items:center; color:#fff; }
.feature-band > img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center 46% }
.feature-band::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,32,27,.78),rgba(10,35,30,.14) 75%) }
.feature-band > div { z-index:1; position:relative; padding-left:clamp(32px,9vw,144px) }
.feature-band .section-kicker { color:#ead3aa }
.feature-band p:not(.section-kicker) { font:400 clamp(2.3rem,4.2vw,5rem)/1.12 var(--serif); letter-spacing:-.04em; max-width:750px; margin:18px 0 24px }
.feature-band span { font-size:.78rem }
.details-section { display:grid; grid-template-columns:minmax(280px,.85fr) minmax(450px,1.15fr); gap:clamp(40px,9vw,150px); padding:115px clamp(32px,8vw,130px) 130px; max-width:1600px; margin:auto; scroll-margin-top:30px }
.details-intro > p:not(.section-kicker) { max-width:420px; color:#52635a; line-height:1.7 }
.download-button { display:inline-flex; align-items:center; justify-content:space-between; gap:38px; margin-top:26px; text-decoration:none; color:#fff; background:var(--ink); padding:16px 21px; font-weight:700; font-size:.88rem }
.download-button:hover { background:var(--ink-dark) }
.details-list { border-top:1px solid #a8b2a8 }
details { border-bottom:1px solid #a8b2a8 }
summary { list-style:none; cursor:pointer; display:flex; align-items:baseline; gap:22px; padding:23px 0; font-family:var(--serif); font-size:1.35rem }
summary::-webkit-details-marker { display:none }
summary span { font-family:var(--sans); font-size:.77rem; color:var(--accent); font-weight:700 }
summary b { margin-left:auto; font-family:var(--sans); font-weight:400; font-size:1.5rem; line-height:1; transition:transform .2s }
details[open] summary b { transform:rotate(45deg) }
.details-body { max-width:625px; color:#4e6058; line-height:1.72; padding:0 20px 18px 45px }
.details-body p { margin-bottom:15px }
footer { background:var(--ink-dark); color:#d7e2d8; padding:56px clamp(32px,8vw,130px) 62px; display:grid; grid-template-columns:1fr 1fr; column-gap:60px; font-size:.81rem }
footer .footer-brand { color:#fff; font-size:1rem; font-weight:700; letter-spacing:.16em; grid-row:span 2 }
footer .footer-brand span { display:block; margin-top:8px; font-size:.69rem; font-weight:500 }
footer p { max-width:520px; margin:0 0 11px }
dialog { border:0; background:#142c2b; color:#fff; width:min(96vw,1200px); max-height:96vh; padding:16px; box-shadow:0 15px 80px #0715129e }
dialog::backdrop { background:rgba(4,15,13,.88) }
dialog img { max-height:calc(96vh - 100px); width:100%; object-fit:contain }
dialog p { margin:10px 0 0; font-size:.83rem }
dialog button { position:absolute; top:18px; right:18px; width:42px; height:42px; border:0; background:#fff; color:var(--ink); font-size:1.8rem; line-height:1; cursor:pointer }
@media (max-width:1100px) {
  .at-a-glance { grid-template-columns:repeat(2,1fr); row-gap:22px }
  .at-a-glance > div:nth-child(3) { border-left:0; padding-left:0 }
  .intro-section { grid-template-columns:1fr 2fr; gap:30px }
  .intro-aside { grid-column:2 }
  .thumbnail-strip { grid-template-columns:repeat(4,minmax(0,1fr)) }
}
@media (max-width:780px) {
  .site-header { height:auto; min-height:76px; padding:13px 22px; align-items:flex-start; flex-direction:column; gap:8px }
  .site-header nav { width:100%; justify-content:space-between; gap:10px; font-size:.75rem }
  .site-header nav .nav-download { border:0; padding:10px 0 }
  .site-header nav a { padding:10px 0 }
  .hero { min-height:610px; height:76vh; max-height:780px }
  .hero-image img { object-position:48% bottom }
  .hero-shade { background:linear-gradient(90deg,rgba(9,34,30,.46),rgba(9,34,30,.08)),linear-gradient(0deg,rgba(10,32,29,.15),transparent 50%) }
  .hero-content { padding:96px 28px 0; max-width:590px }
  h1 { font-size:clamp(3.7rem,11vw,6rem) }
  .hero-caption { bottom:15px; right:25px }
  .intro-section { display:block; padding:74px 28px }
  .intro-aside { max-width:440px; margin-top:44px }
  .tour-section { padding:75px 22px }
  .tour-heading { display:block }
  .tour-heading > p { max-width:550px }
  .tour-tabs button { padding:15px 14px }
  .tour-panel { display:block }
  .tour-stage { height:clamp(360px,75vw,620px) }
  .tour-information { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:22px }
  .tour-notes { border-top:0; border-left:1px solid var(--line); padding:5px 0 0 24px }
  .thumbnail-strip { grid-template-columns:repeat(4,minmax(0,1fr)) }
  .feature-band { height:370px }
  .feature-band > div { padding:0 30px }
  .details-section { display:block; padding:80px 28px }
  .details-intro { margin-bottom:55px }
}
@media (max-width:560px) {
  .wordmark { font-size:.76rem }
  .wordmark small { font-size:.56rem }
  .site-header nav a:first-child { display:none }
  .eyebrow { font-size:.62rem; white-space:normal }
  .hero-content > p:not(.eyebrow) { font-size:1.01rem }
  .hero-caption { font-size:.68rem }
  .at-a-glance { padding:25px 20px; gap:0 }
  .at-a-glance > div { display:block; border:0; border-top:1px solid #57736b; min-height:100px; padding:15px 8px!important }
  .at-a-glance > div:nth-child(-n+2) { border-top:0 }
  .at-a-glance strong { display:block; font-size:1.9rem; line-height:1 }
  .at-a-glance span { display:block; margin-top:7px; font-size:.72rem }
  .tour-stage { height:330px }
  .tour-information { display:block }
  .tour-notes { margin-top:30px; border-left:0; border-top:1px solid var(--line); padding:23px 0 0 }
  .thumbnail-strip { display:flex; overflow-x:auto; gap:9px; scroll-snap-type:x mandatory; padding-bottom:8px }
  .thumb { flex:0 0 105px; scroll-snap-align:start }
  .thumb img { height:82px }
  .feature-band p:not(.section-kicker) { font-size:2.5rem }
  .details-body { padding-left:0 }
  footer { display:block; padding:50px 28px }
  footer .footer-brand { margin-bottom:30px }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto } *,*::before,*::after { transition:none!important } }

.language-tabs{display:flex;gap:4px;font-size:14px;white-space:nowrap}.language-tabs a{padding:8px;text-decoration:none;border-bottom:2px solid transparent}.language-tabs a[aria-current]{border-color:var(--accent)}.story-section{max-width:1400px;margin:auto;padding:50px clamp(28px,8vw,110px);display:grid;grid-template-columns:1fr 1fr;gap:38px 70px}.story-block h3{font-size:29px;line-height:1.2}.story-block p{line-height:1.75;color:#455651;font-size:16px}.hero-content{padding-top:65px}.hero h1{font-size:clamp(3rem,5.4vw,5.7rem);max-width:660px}.site-header{gap:20px;height:auto;min-height:82px}.stage-photo img{object-fit:contain}.thumbnail-strip .thumb img{object-fit:contain}@media(max-width:900px){.site-header{flex-wrap:wrap;padding-top:15px;padding-bottom:15px}.story-section{grid-template-columns:1fr;gap:24px}.hero-content{padding-top:55px}.hero{min-height:620px}.site-header nav{font-size:14px}.language-tabs{margin-left:auto}}
.rainbow-introduction{margin:0 0 20px}.rainbow-introduction img{width:100%;height:auto}.rainbow-introduction figcaption{font-size:14px;line-height:1.5;margin-top:8px}.intro-section{grid-template-columns:.4fr 1.3fr 1.1fr}.slide-caption{position:absolute;bottom:0;left:0;right:0;padding:34px 18px 14px;background:linear-gradient(transparent,rgba(9,30,27,.92));color:white;font-size:18px;font-weight:600;pointer-events:none;line-height:1.4}.stage-arrow{z-index:2}.stage-count{z-index:2}.thumbnail-strip{display:flex!important;overflow-x:auto;gap:10px;padding-bottom:12px}.thumb{flex:0 0 140px}.thumb img{height:100px}.tour-tabs{flex-wrap:wrap;overflow-x:visible}.stage-photo img{object-fit:contain}@media(max-width:780px){.intro-section{display:block}.rainbow-introduction{max-width:540px}.thumb{flex-basis:110px}.slide-caption{font-size:16px}.tour-tabs button{font-size:14px;padding:12px 10px}}
.contact-section{padding:64px clamp(28px,8vw,110px);max-width:1400px;margin:auto;border-top:1px solid #d7ded9}.contact-section h2{font-size:clamp(2rem,4vw,3.2rem);margin:12px 0}.contact-section>p:not(.section-kicker){max-width:680px;font-size:1rem;line-height:1.75}.contact-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.contact-choice{display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--ink);color:white;text-decoration:none}.contact-choice strong{font-size:1.1rem}.contact-choice span{font-size:1rem;overflow-wrap:anywhere}.contact-choice:hover{background:var(--ink-dark)}.contact-choice:focus-visible{outline:3px solid #eead16;outline-offset:4px}@media(max-width:700px){.contact-options{grid-template-columns:1fr}.site-header nav{flex-wrap:wrap;justify-content:flex-start;column-gap:18px}}

.location-section{max-width:1400px;margin:auto;padding:54px clamp(28px,8vw,110px);border-top:1px solid #d7ded9}.location-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:24px}.location-heading h2{font-size:clamp(2rem,4vw,3.2rem);margin:0 0 12px}.location-heading p{margin:0;font-size:1rem}.location-links{display:flex;flex-wrap:wrap;gap:12px}.location-links a{padding:14px 20px;background:var(--ink);color:white;text-decoration:none;font-size:1rem;line-height:1.4}.location-links a:hover{background:var(--ink-dark)}.location-links a:focus-visible{outline:3px solid #eead16;outline-offset:4px}.location-map{display:block;width:100%;height:360px;border:1px solid #d7ded9}@media(max-width:700px){.location-map{height:300px}.location-links a{padding:12px 16px}}

.location-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start}.location-layout .location-map{height:550px}.travel-panel h3{font-size:1.65rem;line-height:1.3;margin:0 0 12px}.travel-panel>p{font-size:1rem;line-height:1.6;margin:0 0 18px;color:#455651}.travel-cards{display:grid;gap:8px}.travel-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border:1px solid #d7ded9;background:white;color:var(--ink);text-decoration:none;line-height:1.4}.travel-card strong{font-size:1rem}.travel-card span{font-size:.95rem;text-align:right}.travel-card:hover{border-color:var(--ink);background:#edf2ee}.travel-card:focus-visible,.travel-form input:focus-visible,.travel-form button:focus-visible{outline:3px solid #eead16;outline-offset:3px}.travel-form{display:grid;gap:10px;margin-top:22px}.travel-form label{font-size:1rem;font-weight:600}.travel-form input[type=text]{width:100%;box-sizing:border-box;border:1px solid #829487;border-radius:0;padding:13px;font:inherit;background:white;color:var(--ink)}.travel-form button{border:0;padding:14px 18px;background:var(--ink);color:white;font:inherit;line-height:1.4;cursor:pointer}.travel-form button:hover{background:var(--ink-dark)}@media(max-width:1000px){.location-layout{grid-template-columns:1fr}.location-layout .location-map{height:340px}}@media(max-width:500px){.travel-card{flex-wrap:wrap;gap:6px}.location-layout .location-map{height:280px}}

.site-header nav{flex-wrap:wrap;row-gap:4px}@media(max-width:1200px){.site-header{flex-wrap:wrap;padding-top:15px;padding-bottom:15px}.site-header nav{column-gap:18px}.language-tabs{margin-left:auto}}

#floorplan-explorer[hidden],#tour-panel[hidden],#thumbnail-strip[hidden]{display:none!important}.floorplan-explorer{padding:28px 0}.floorplan-explorer>h3{font-size:2rem;margin:0 0 12px}.floorplan-explorer>p{font-size:1rem;line-height:1.65;max-width:780px}.fp-floor-switch{display:flex;gap:10px;margin:22px 0}.fp-floor-switch button,.fp-room-choice,.fp-photo-controls button{font:inherit;padding:12px 16px;background:white;color:var(--ink);border:1px solid #829487;cursor:pointer}.fp-floor-switch button[aria-pressed=true],.fp-room-choice[aria-pressed=true]{background:var(--ink);color:white}.fp-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start}.fp-map-scroll{overflow-x:auto;background:white;border:1px solid #d7ded9}.fp-map{position:relative;min-width:580px}.fp-map>img{display:block;width:100%;height:auto}.fp-marker{position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;border:2px solid white;border-radius:50%;background:var(--ink);color:white;font:600 1rem system-ui;box-shadow:0 1px 5px #0005;cursor:pointer}.fp-marker[aria-pressed=true]{background:#b05b31}.fp-room-list{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.fp-room-choice{font-size:.95rem;padding:10px 12px;line-height:1.4}.fp-room-content{padding:22px;background:#edf2ee;min-width:0}.fp-room-content h4{font-size:1.5rem;margin:0 0 14px}.fp-room-content p{font-size:1rem;line-height:1.65}.fp-photo{display:block;width:100%;padding:0;border:0;background:white;cursor:zoom-in}.fp-photo img{display:block;width:100%;height:320px;object-fit:contain}.fp-photo-caption{font-weight:600}.fp-photo-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.fp-photo-controls button{font-size:.9rem;padding:10px}.fp-marker:focus-visible,.fp-room-choice:focus-visible,.fp-floor-switch button:focus-visible,.fp-photo:focus-visible,.fp-photo-controls button:focus-visible{outline:3px solid #eead16;outline-offset:3px}@media(max-width:1000px){.fp-layout{grid-template-columns:1fr}.fp-photo img{height:350px}}

/* Keep cover lettering readable while letting the photograph show through. */
.hero-content { text-shadow:0 2px 7px rgba(0,0,0,.8),0 1px 2px rgba(0,0,0,.6) }

/* Frame the cover lower, keeping the facade and reducing the sky. */
.hero-image img { transform:scale(1.06); transform-origin:center bottom }

.fp-bathroom-outline { position:absolute; left:49%; top:37.8%; width:14%; height:9%; border:2px dashed #ad542d; background:rgba(199,101,56,.14); pointer-events:none; box-sizing:border-box }

.asking-price { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px 24px; padding:20px 28px; background:#f7f4eb; color:var(--ink) }
.asking-price span { font-size:1rem }
.asking-price strong { font-size:2rem; line-height:1.2; font-weight:600 }

/* A solid panel keeps cover text legible without darkening the house. */
.hero-shade { display:none }
.hero-content { margin:28px 0 28px clamp(28px,5vw,80px); padding:28px 32px; width:min(550px,calc(100% - 56px)); max-width:none; background:#123f36; text-shadow:none; box-sizing:border-box }
.hero h1 { font-size:clamp(3rem,4.4vw,4rem); margin:22px 0; max-width:100%; line-height:1.04 }
.hero-content > p:not(.eyebrow) { max-width:none; font-size:1.06rem; line-height:1.6; margin-bottom:0 }
.hero-content .eyebrow { white-space:normal; font-size:.8rem; margin-bottom:0 }
.hero-link { margin-top:22px; font-size:.95rem }
.hero-caption { background:rgba(18,63,54,.85); padding:7px 12px; font-size:.85rem }
@media(max-width:700px) {
 .hero { height:auto; min-height:0; max-height:none }
 .hero-image { position:relative; height:360px }
 .hero-content { margin:0; width:100%; padding:28px; max-width:none }
 .hero h1 { font-size:3rem }
 .hero-caption { top:315px; bottom:auto; right:18px }
}

.story-photo { margin:24px 0 28px }
.story-photo img { display:block; width:100%; height:auto; border-radius:2px }
.story-photo figcaption { margin-top:9px; font-size:.9rem; line-height:1.5; color:#455651 }
@media(max-width:900px) { .story-section { gap:38px } .story-photo { margin:22px 0 26px } }

/* Keep the opening photograph unobstructed on every screen. */
.hero { --cover-photo-height:clamp(360px,44vw,620px); height:auto; min-height:0; max-height:none }
.hero-image { position:relative; height:var(--cover-photo-height) }
.hero-content { margin:0; width:100%; max-width:none; padding:36px clamp(28px,8vw,110px) 40px }
.hero h1 { max-width:1000px }
.hero-content > p:not(.eyebrow) { max-width:850px }
.hero-caption { top:calc(var(--cover-photo-height) - 48px); bottom:auto; right:24px }
@media(max-width:700px) { .hero { --cover-photo-height:360px } .hero-content { padding:28px } .hero-caption { right:18px } }
