/* Shared final layout contract: branding, readable reflow and keyboard access. */
:root{--header-height:96px;--reading-width:70ch}
html{scroll-padding-top:calc(var(--header-height) + 24px)}
body{font-size:clamp(1.2rem,1.1rem + .25vw,1.4rem);line-height:1.6}
body .site-header,body:has(.hero) .site-header{position:sticky;top:0;min-height:96px;padding:14px max(24px,calc((100vw - 1320px)/2));display:flex;flex-wrap:nowrap;justify-content:space-between;gap:32px;background:#080808;border-bottom:1px solid #514632;z-index:50}
body .site-header .header-logo{display:block;width:180px;max-width:42vw;flex:none}
body .site-header .header-logo img{width:100%;height:auto}
body .site-header nav,body:has(.hero) .site-header nav,body .site-header.nav-scrolled nav{display:flex;position:static;transform:none;transition:none;margin:0 0 0 auto;width:auto;gap:clamp(12px,1.6vw,26px);font-size:.8rem;letter-spacing:.05em}
body .site-header nav a{display:flex;align-items:center;min-height:44px;padding:10px 0;color:#e5c78f;white-space:normal;line-height:1.4}
body .site-header nav a[aria-current]{color:#fff;text-decoration:underline;text-underline-offset:8px}
body .site-header nav a:last-child{padding:12px 22px}
body #menu{display:none;font:500 .9rem/1.4 Cinzel,Georgia,serif;color:#fff;background:transparent;border:1px solid #c8aa78;padding:10px 14px;min-height:44px;cursor:pointer}
.skip-link{position:fixed;left:16px;top:12px;transform:translateY(-160%);z-index:1000;background:#f6f2e8;color:#080808;padding:12px 20px;font:600 1rem/1.5 system-ui}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid #f5ce85;outline-offset:5px}
main:focus{outline:none}
[hidden]{display:none!important}
body main :is(p,blockquote,.belief,.family-history-intro,.family-quote-sentence,.events-opening-lines>span,.estate-sources>a){white-space:normal;overflow-wrap:break-word}
body main :is(h1,h2,h3,h4){text-wrap:balance;overflow-wrap:break-word;line-height:1.25}
body :is(main,section,article,.wrap,.split>div,.timeline-content,.history-chapter-card){min-width:0}
body main :is(.history-chapter-prose p,.timeline-content p,.estate-feature-text p,.home-statements p){max-width:var(--reading-width);line-height:1.65;font-size:1.25rem}
body :is(small,.copyright,figcaption,.note){font-size:max(.8rem,13px);line-height:1.6}
body :is(.footer-nav a,summary,.gallery-filters button){min-height:44px}
body .footer-location a[href^="mailto:"]{font-size:1.15rem;white-space:normal;overflow-wrap:anywhere}
body main .btn{font-size:.85rem;line-height:1.5;white-space:normal;min-height:48px}
body .home-hero-stage{height:auto;min-height:0;position:relative;padding:0}
body .home-transition .hero{position:relative;top:0;height:clamp(420px,70svh,780px);min-height:420px}
body .home-transition .hero>img{inset:0;width:100%;height:100%;transform:none;will-change:auto;object-fit:cover;object-position:center}
body .home-transition .hero .shade{background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.15) 90%)}
body .home-transition .hero-copy{position:absolute;inset:0 0 auto;height:clamp(420px,70svh,780px);pointer-events:none}
body .home-transition .hero-copy .hero-bottom{left:max(24px,calc((100vw - 1160px)/2));right:24px;bottom:40px;max-width:1000px;text-shadow:0 2px 6px #000}
body .home-transition .hero-bottom h1.home-welcome-title{font-size:clamp(2.2rem,4.6vw,4.8rem);line-height:1.16}
body .hero-eyebrow{font:500 .85rem/1.6 Cinzel,Georgia,serif;color:#e5c78f;letter-spacing:.09em;margin:0 0 16px}
body .home-transition .hero-copy .hero-bottom p.home-hero-belief{font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.5}
body .home-estate-history-roll{background:#080808;text-shadow:none;padding-block:56px 16px}
body .home-estate-history-roll p{max-width:var(--reading-width);font-size:1.25rem;line-height:1.65}
body .home-transition .intro{min-height:0;padding-block:40px 64px;background:#080808}
body .estate-banner .estate-banner-photo{position:relative;top:0}
body .estate-banner .estate-banner-photo>img{transform:none;will-change:auto}
body .estate-banner .estate-banner-transition{margin-top:0;min-height:0;background:#080808;padding-top:32px}
body .estate-banner-title{position:relative;background:#080808;padding-block:32px;height:auto;min-height:0}
body .estate-details>h2.estate-section-heading{font-size:clamp(1.2rem,2vw,1.65rem)}
body .estate-details>h2.estate-section-heading>span{white-space:normal}
body .history-chapter-page .history-chapter-prose{max-width:76ch;margin-inline:auto}
@media(max-width:1100px){
 body .site-header,body:has(.hero) .site-header{flex-wrap:wrap;min-height:84px;padding:12px 24px;gap:12px}
 body .site-header .header-logo{width:156px}
 body #menu{display:flex;align-items:center;gap:8px;margin-left:auto}
 body .site-header nav,body:has(.hero) .site-header nav{display:none;width:100%;margin:0;flex-direction:column;align-items:stretch;gap:2px;padding:12px 0;max-height:calc(100svh - 110px);overflow-y:auto}
 body .site-header nav.open,body:has(.hero) .site-header nav.open{display:flex}
 body .site-header nav a{padding:12px 16px;justify-content:flex-start;font-size:.9rem}
 body .site-header nav a:last-child{margin-top:8px}
 body .estate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
 body .site-header,body:has(.hero) .site-header{padding:10px 16px;min-height:76px}
 body .site-header .header-logo{width:140px}
 body .wrap{width:calc(100% - 40px);max-width:1160px}
 body .home-transition .hero,body .home-transition .hero-copy{height:520px;min-height:0}
 body .home-transition .hero-copy .hero-bottom{left:20px;right:20px;bottom:32px}
 body .home-transition .hero-bottom h1.home-welcome-title{font-size:clamp(2rem,8vw,3rem)}
 body .hero-eyebrow{font-size:.8rem;letter-spacing:.04em}
 body .home-transition .intro{padding-block:32px 48px}
 body :is(.estate-grid,.cards,.home-showcase-grid,.home-gallery-preview-grid,.featured-grid,.history-chapter-grid){grid-template-columns:1fr}
 body .split{grid-template-columns:1fr}
 body .split>div{padding:32px 20px}
 body .split.reverse>img{order:0}
 body .split>img{min-height:0;height:auto;aspect-ratio:4/3}
 body .timeline-entry{grid-template-columns:1fr;gap:20px}
 body .foot{gap:28px}
 body .estate-banner-title h1{font-size:clamp(2rem,9vw,3.5rem)}
 body .gallery-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 body .gallery-filters button{font-size:.8rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Architectural features remain spacious photo-and-copy rows. */
body .estate-grid{grid-template-columns:1fr}
@media(max-width:650px){body .estate-grid article{grid-template-columns:1fr;gap:20px}body .estate-grid .estate-feature-photos{height:auto;min-height:180px}body .estate-grid .estate-feature-photos>img[src]{height:auto;max-height:340px;max-width:100%;margin-inline:auto}}
@media(max-height:540px) and (min-width:651px){body .site-header{position:relative}body .home-transition .hero,body .home-transition .hero-copy{height:420px}}
/* Ridgeway wordmark stays in the hero, with a smaller text masthead above it. */
body .site-header .header-logo{width:auto;max-width:42vw;color:#e5c78f;text-decoration:none;font:500 clamp(1.15rem,1.8vw,1.65rem)/1 Cinzel,Georgia,serif;letter-spacing:.17em;white-space:nowrap}
body .site-header .header-logo:focus-visible{color:#fff}
body .home-transition .hero-copy .hero-top{position:absolute;top:7%;left:24px;right:24px;text-align:center;z-index:2;text-shadow:0 2px 8px #000}
body .home-transition .hero-copy .hero-wordmark{font:500 clamp(2.7rem,6.5vw,5.8rem)/1 Cinzel,Georgia,serif;letter-spacing:.17em;color:#e5c78f;margin:0}
body .home-transition .hero-copy .hero-bottom{bottom:30px}
body .home-estate-history-roll{display:flow-root;width:min(1160px,calc(100% - 48px));height:auto;max-height:none;min-height:0;overflow:visible;padding:48px 24px 20px;background:#080808;color:#f6f2e8;text-align:left;text-shadow:none}
body .home-estate-history-roll p{display:block;width:100%;max-width:70ch;height:auto;max-height:none;overflow:visible;white-space:normal;overflow-wrap:anywhere;margin:0 auto 22px;font-size:clamp(1.15rem,1.1rem + .3vw,1.4rem);line-height:1.7}
body .home-estate-history-roll .home-estate-vision{color:#e5c78f;margin-bottom:0}
body main .btn,body main .event-inquiry .btn,body main .cta .btn,body main .home-gallery-preview>.btn,body main .home-showcase>.btn,body main .home-estate-copy>.btn,body main .history-chapter-page>.btn,body .site-header nav a[href="/contact/"]{background:#c8aa78;color:#111c18;border:1px solid #c8aa78;box-shadow:none;border-radius:3px;padding:14px 24px;font-size:.82rem;font-weight:600;letter-spacing:.09em;text-decoration:none;min-height:48px}
body main .btn:hover,body main .btn:focus-visible,body main .event-inquiry .btn:hover,body main .cta .btn:hover,body .site-header nav a[href="/contact/"]:hover{background:#e3c997;color:#111c18;border-color:#e3c997;box-shadow:none}
body main .btn:active,body .site-header nav a[href="/contact/"]:active{background:#b8935b;transform:translateY(1px)}
body main .btn.ghost{background:transparent;color:#fff;border:0;border-bottom:1px solid #e5c78f;border-radius:0;box-shadow:none}
body main .btn.ghost:hover{background:transparent;color:#e5c78f}
@media(max-width:650px){body .site-header .header-logo{font-size:1.05rem;letter-spacing:.13em}body .home-transition .hero-copy .hero-top{top:6%}body .home-transition .hero-copy .hero-wordmark{font-size:clamp(2.35rem,10vw,3.5rem)}body .home-estate-history-roll{width:calc(100% - 40px);padding:36px 4px 20px}body .home-estate-history-roll p{font-size:1.15rem;line-height:1.7}}
