/* One banner system: held photograph, scrolling title, real content transition. */
body:has(.estate-banner) header{position:sticky;top:0;z-index:20}
.estate-banner{position:relative;isolation:isolate;background:#000;color:#fff;--banner-header:118px}
.estate-banner-photo{position:sticky;top:var(--banner-header);z-index:0;margin:0;height:min(calc(100svh - var(--banner-header)), var(--banner-photo-height,70svh));overflow:hidden;background:#000}
.estate-banner-photo>img{display:block;width:100%;height:100%;object-fit:contain;filter:none;transform:translate3d(0,var(--photo-shift,0px),0);will-change:transform}
.our-story-banner .estate-banner-photo>img{filter:brightness(.9) saturate(.82)}
.estate-banner-title{position:absolute;top:0;left:0;right:0;z-index:2;text-align:center;padding:22px 24px 90px;background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.35) 55%,transparent);pointer-events:none}
.estate-banner-title h1{font:400 clamp(2rem,6.2vw,7.2rem)/1.1 Cinzel,Georgia,serif;letter-spacing:.1em;color:var(--gold);margin:0;text-shadow:0 2px 8px #000}
.estate-banner-subtitle{font-size:clamp(1rem,2.4vw,2.2rem);line-height:1.4;margin:12px auto 0;text-align:center;color:var(--gold);font-weight:600;font-style:italic;text-shadow:0 1px 2px #000,0 2px 6px #000}
.estate-banner-subtitle p{max-width:none;margin:0;white-space:normal}
.estate-banner-transition{position:relative;z-index:1;min-height:50svh;padding:36px 24px 56px;background:linear-gradient(180deg,rgba(0,0,0,.1),#000 65%);text-align:center}
.estate-banner-transition .page-opening-phrases{padding:0;margin:0 auto;color:var(--gold)}
.estate-banner-opening{padding:0;margin:0 auto;background:transparent;color:#fff}
.estate-banner-opening blockquote{margin:0 auto 20px;max-width:850px}
.estate-banner-opening blockquote p{font-size:clamp(1.5rem,2.4vw,2.2rem);font-style:italic;line-height:1.3;margin:0 auto 12px}
.estate-banner-opening cite{font:.8rem Cinzel,Georgia,serif;color:#fff}
.estate-banner-opening>p{margin:0 auto;font-size:1.5rem}
.story-banner+.story{position:relative;z-index:1;background:transparent;box-shadow:none;clip-path:none;padding-top:36px}
@media(max-width:700px){.estate-banner-title{padding:14px 16px 65px}.estate-banner-title h1{font-size:clamp(1.7rem,6.4vw,3.5rem)}.estate-banner-transition{padding-inline:16px;min-height:40svh}}
@media(prefers-reduced-motion:reduce){.estate-banner-photo{position:relative;top:0}.estate-banner-photo>img{transform:none;will-change:auto}.estate-banner-transition{min-height:0}}

/* Fit the family banner to the photograph’s proportions at full width. */
.our-story-banner .estate-banner-photo,.venue-banner .estate-banner-photo{height:auto;aspect-ratio:4/3}
.our-story-banner .estate-banner-photo>img,.venue-banner .estate-banner-photo>img{width:100%;height:100%;object-fit:contain}

.story>img[src$="story-entryway.jpeg"]{width:100%;height:auto;object-fit:contain;align-self:center}

@media(min-width:851px){.story:has(>img[src$="story-entryway.jpeg"]){grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}.story>img[src$="story-entryway.jpeg"]{height:100%;min-height:0;object-fit:cover;align-self:stretch}.story:has(>img[src$="story-entryway.jpeg"])>div>p{margin-bottom:0}}

/* Equal photo frames with all image details visible. */
.estate-grid .estate-feature-photos{width:100%;height:244px;overflow:visible}
.estate-grid .estate-feature-photos>img[src]{width:100%;height:100%;object-fit:contain;object-position:center;margin:0;aspect-ratio:auto}


@media(min-width:651px){.estate-grid article{grid-template-columns:minmax(180px,320px) minmax(0,1fr)}}
@media(max-width:650px){.estate-grid .estate-feature-photos{height:145px}}

.estate-grid .estate-feature-photos>img[src$="floors-detail.jpeg"]{width:min(100%,260px);height:auto;max-height:100%;object-fit:contain;margin-inline:auto}

.estate-grid .estate-feature-photos:has(>img[src$="floors-detail.jpeg"]){height:auto;aspect-ratio:auto}

.family-timeline .family-history-intro{font-size:1.5rem;line-height:1.4;max-width:none;margin:0 0 32px}

.venue-banner .estate-banner-transition{min-height:0;padding:36px 24px 20px}
.venue-banner .estate-banner-transition>h1{font-size:clamp(2rem,4.5vw,4rem);line-height:1.15;margin:0;text-align:center}
.venue-banner+.intro{padding:24px 24px 48px;text-align:center}
.venue-banner+.intro>p{max-width:760px;margin:0 auto;font-size:clamp(1.4rem,2.4vw,1.8rem);line-height:1.5}
.venue-banner~.celebration-history{padding-top:32px}

/* Events closing welcome: larger type with closer supporting copy. */
.event-inquiry .events-welcome{font-size:clamp(1.9rem,3.2vw,2.7rem);line-height:1.3;margin-bottom:18px}

/* Fill the Our Story banner with the restored family photograph. */
.our-story-banner .estate-banner-photo>img{object-fit:cover;object-position:50% 30%}

/* Give the Our Story photograph a longer pause before its quote rises. */
.our-story-banner .estate-banner-transition{padding-top:calc(36px + 30svh)}
@media(prefers-reduced-motion:reduce){.our-story-banner .estate-banner-transition{padding-top:36px}}

/* Match the Story mission quotes to the homepage section quotes. */
.story-banner .estate-banner-title .estate-banner-subtitle,.our-story-banner .estate-banner-title .estate-banner-subtitle{font-size:clamp(1.6rem,2.4vw,2.4rem)}
.story-banner .estate-banner-title .estate-banner-subtitle p,.our-story-banner .estate-banner-title .estate-banner-subtitle p{font-size:inherit}
/* Crop the aerial from the right to match the adjacent 3:4 portrait photos. */
.estate-grid .estate-feature-photos>img[src$="historic-aerial-grounds.webp"]{display:block;width:min(100%,183px);max-width:none;height:244px;object-fit:cover;object-position:left center;margin:0 auto;aspect-ratio:3/4}
@media(max-width:650px){.estate-grid .estate-feature-photos>img[src$="historic-aerial-grounds.webp"]{width:min(100%,108.75px);height:145px}}

/* Match architectural place headings to the homepage section headings. */
.estate-grid .estate-feature-text>h3{font-family:Cinzel,Georgia,serif;font-size:1.5rem;font-weight:600;font-style:normal;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 15px}
/* Bring Lancaster's quote closer to the Five-Part description. */
.estate-grid article:has(>blockquote){row-gap:8px}
.estate-grid article>blockquote{margin-top:0;padding-top:0}

/* Introduce the history cards with the shared gold heading and mission quote style. */
.history-chapters>h2{display:flex;align-items:center;justify-content:center;gap:24px;font:600 1.5rem/1.4 Cinzel,Georgia,serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 28px}
.history-chapters>h2>span{min-width:0}
.history-chapters>h2::before,.history-chapters>h2::after{content:"";height:1px;flex:0 1 64px;min-width:18px;background:var(--gold);opacity:.65}
.history-chapters>p.mission-quote{font:italic 400 clamp(1.6rem,2.4vw,2.4rem)/1.4 'Cormorant Garamond',Georgia,serif;color:#fff;max-width:none}
@media(max-width:650px){.history-chapters>h2{gap:14px}}

/* The architectural overview uses the same gold heading and side lines as history. */
.estate-details>h2.estate-section-heading{display:flex;align-items:center;justify-content:center;gap:24px;font:600 1.5rem/1.4 Cinzel,Georgia,serif;letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--gold);margin:0 0 28px}
.estate-details>h2.estate-section-heading>span{min-width:0}
.estate-details>h2.estate-section-heading::before,.estate-details>h2.estate-section-heading::after{content:"";height:1px;flex:0 1 64px;min-width:18px;background:var(--gold);opacity:.65}
@media(max-width:650px){.estate-details>h2.estate-section-heading{gap:14px}}

/* Keep each chapter's reading link in the same bottom position. */
.history-chapter-grid{grid-auto-rows:1fr;align-items:stretch}
.history-chapter-grid>.history-chapter-card{display:flex;flex-direction:column;height:100%}
.history-chapter-card>.history-chapter-link{display:block;margin-top:auto}

/* Separate the two linked distinctions on one row beneath the Newcomb quote. */
.story-banner .estate-banner-opening>p.estate-sources{display:flex;align-items:center;justify-content:space-between;gap:32px;max-width:none;width:100%;font-size:clamp(1.1rem,1.75vw,1.5rem)}
.story-banner .estate-sources>a{display:block;white-space:nowrap}
@media(max-width:800px){.story-banner .estate-banner-opening>p.estate-sources{flex-direction:column;gap:12px}.story-banner .estate-sources>a{white-space:normal}}

/* Keep special-feature titles more compact than section headings. */
.estate-grid .estate-feature-text>h3{font-size:1.2rem;letter-spacing:.12em}

/* Equal 15px labels for architectural features and the acknowledgment. */
.estate-grid .estate-feature-text>h3,.ack .wrap>small{font-family:Cinzel,Georgia,serif;font-size:15px;font-weight:600;font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}

/* Featured In matches the homepage Gallery label. */
.featured-in>h2{display:flex;align-items:center;justify-content:center;gap:24px;font:600 1.5rem/1.4 Cinzel,Georgia,serif;letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--gold);margin:0 0 28px}
.featured-in>h2>span{min-width:0}
.featured-in>h2::before,.featured-in>h2::after{content:"";height:1px;flex:0 1 64px;min-width:18px;background:var(--gold);opacity:.65}
@media(max-width:650px){.featured-in>h2{gap:14px}}

/* Framed return links and gold italic introductions on every history chapter. */
.history-chapter-page>.history-back-link{display:inline-block;background:transparent;color:var(--gold);border:1px solid var(--gold);box-shadow:inset 0 0 0 8px #244a3b,inset 0 0 0 9px var(--gold);padding:18px 30px;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;max-width:100%;text-align:center}
.history-chapter-page>.history-back-link:hover,.history-chapter-page>.history-back-link:focus-visible{color:#fff;text-decoration:none}
.history-chapter-page .history-chapter-lead{color:var(--gold);font-style:italic}

/* Frame every bottom chapter navigation link in forest green and gold. */
.history-chapter-page .history-chapter-navigation{display:flex;flex-wrap:wrap;align-items:stretch;gap:16px;margin-top:24px}
.history-chapter-page .history-chapter-navigation>a,.history-chapter-page .history-chapter-navigation>a:last-child,.history-chapter-page .history-chapter-navigation>a.history-next{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--gold);border:1px solid var(--gold);box-shadow:inset 0 0 0 8px #244a3b,inset 0 0 0 9px var(--gold);padding:18px 30px;text-decoration:none;text-align:center;white-space:normal;max-width:100%}
.history-chapter-page .history-chapter-navigation>a:hover,.history-chapter-page .history-chapter-navigation>a:focus-visible{color:#fff;background:transparent;text-decoration:none}
@media(max-width:800px){.history-chapter-page .history-chapter-navigation{flex-direction:column}.history-chapter-page .history-chapter-navigation>a{width:100%}}

/* Match chapter titles and reading copy to the wider site content area. */
.history-chapter-page{max-width:1160px}
.history-chapter-page .history-chapter-heading,.history-chapter-page .history-chapter-heading h1,.history-chapter-page .history-chapter-lead,.history-chapter-page .history-chapter-prose,.history-chapter-page .history-chapter-prose p{width:100%;max-width:none}

/* Keep decade suffixes smaller and lowercase beside the year numerals. */
.history-chapter-heading .decade-suffix{font-size:.7em;text-transform:none;letter-spacing:0}

/* Approved muted family banner: retain its color grade and show the family. */
.our-story-banner .estate-banner-photo>img{object-position:50% 60%;filter:brightness(.9) saturate(1)}

/* Show the approved photograph at its native proportions without cropping. */
.our-story-banner .estate-banner-photo{height:auto;aspect-ratio:3/4}
.our-story-banner .estate-banner-photo>img{width:100%;height:auto;object-fit:contain;object-position:center}

/* Trim excess sky while preserving the approved photo scale and shared scroll. */
.our-story-banner .estate-banner-photo{height:auto;aspect-ratio:4/3}
.our-story-banner .estate-banner-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.our-story-banner .estate-banner-transition{padding-top:36px}

/* Original family sticker, scaled down onto the front steps; follows the photo scroll. */
.our-story-banner .estate-banner-photo>img.our-story-step-sticker{position:absolute;left:46.2%;top:48%;width:6.5%;height:auto;max-width:none;object-fit:contain;object-position:center;filter:brightness(.9) saturate(1);pointer-events:none;z-index:1}

/* Enlarge the family sticker while keeping its feet anchored on the steps. */
.our-story-banner .estate-banner-photo>img.our-story-step-sticker{left:44.45%;top:44.9%;width:10%}

/* Landscape family photograph: show its complete composition with the shared scroll. */
.our-story-banner .estate-banner-photo{height:auto;aspect-ratio:3/2}
.our-story-banner .estate-banner-photo>img{width:100%;height:100%;object-fit:contain;object-position:center;filter:brightness(.9) saturate(.9)}

/* Center the final two chapters and give the family quotes their requested treatment. */
@media(min-width:801px){.history-chapter-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.history-chapter-grid>.history-chapter-card{grid-column:span 2}.history-chapter-grid>.history-chapter-card:nth-last-child(2):nth-child(3n+1){grid-column:2/span 2}.history-chapter-grid>.history-chapter-card:last-child:nth-child(3n+2){grid-column:4/span 2}}
.our-story-banner .estate-banner-title .estate-banner-subtitle .mission-quote{color:#fff}
.family-timeline .timeline-content .family-legacy-quote{margin-top:1.48em}

/* Events opening: quotation by the photograph, then two introduction lines. */
.venue-banner .events-nelly-quote{margin-bottom:32px}
.venue-banner+.intro>.events-opening-lines{max-width:none;font-size:clamp(1.2rem,1.65vw,1.6rem);line-height:1.5}
.events-opening-lines>span{display:block}
@media(min-width:1000px){.events-opening-lines>span:first-child{white-space:nowrap}}

/* Events heading and introduction match the family timeline opening. */
.venue-banner+.events-history-intro>.events-family-heading{font:600 1.5rem/1.4 Cinzel,Georgia,serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 16px}
.venue-banner+.events-history-intro>.events-opening-lines{font:400 1.5rem/1.4 "Cormorant Garamond",Georgia,serif;max-width:none;margin:0 0 32px}

/* Align the Events opening with the family page and tighten the gathering transition. */
.venue-banner+.events-history-intro{text-align:left;padding-left:0;padding-right:0}
.venue-banner+.events-history-intro:before{margin-left:0;margin-right:auto}
.venue-banner+.events-history-intro>.events-opening-lines{margin-left:0;margin-right:0}
.celebration-history{padding-bottom:24px}
.celebration-history+.gathering-details{padding-top:32px}

/* Exact uploaded family image; hide its outer white margin through layout only. */
.our-story-banner .estate-banner-photo{aspect-ratio:1355/904;height:auto}
.our-story-banner .estate-banner-photo>img[src="/assets/families-banner-upload-v419.png"]{position:absolute;left:-23.985240%;top:-33.628319%;width:151.143911%;height:169.911504%;max-width:none;object-fit:fill;filter:brightness(.9) saturate(.9)}

/* Keep the upload’s white margin hidden during the shared photo scroll. */
.our-story-banner .estate-banner-photo>img[src="/assets/families-banner-upload-v419.png"]{clip-path:inset(19.791667% 17.968750% 21.354167% 15.869141%)}

/* Shared banner phrase sizes and roll transitions; preserve individual photo framing and filters. */
.estate-banner-title .estate-banner-subtitle,
.story-banner .estate-banner-title .estate-banner-subtitle,
.our-story-banner .estate-banner-title .estate-banner-subtitle{
 font:italic 600 clamp(1.6rem,2.4vw,2.4rem)/1.4 'Cormorant Garamond',Georgia,serif;
}
.estate-banner-title .estate-banner-subtitle p{font-size:inherit;line-height:inherit}
.estate-banner .estate-banner-transition,
.venue-banner .estate-banner-transition,
.gallery-banner .estate-banner-transition,
.our-story-banner .estate-banner-transition{
 min-height:0;padding:36px 24px 56px;
}
.gallery-banner .estate-banner-photo>img{
 transform:translate3d(0,var(--photo-shift,0px),0);
}
@media(max-width:700px){.estate-banner .estate-banner-transition{padding:28px 16px 40px}}
@media(prefers-reduced-motion:reduce){
 .estate-banner .estate-banner-photo{position:relative;top:0}
 .estate-banner .estate-banner-photo>img{transform:none;will-change:auto}
}

/* Let the three opening quotations travel across the held banner photograph. */
.story-banner .estate-banner-transition,
.our-story-banner .estate-banner-transition,
.venue-banner .estate-banner-transition{
 margin-top:calc(-1 * var(--banner-quote-overlap,180px));
 min-height:calc(var(--banner-quote-overlap,180px) + 160px);
 padding-top:36px;padding-bottom:80px;
 background:linear-gradient(180deg,transparent,rgba(0,0,0,.12) 55%,#000 100%);
}
.story-banner .estate-banner-opening,
.our-story-banner .estate-banner-opening,
.venue-banner .estate-banner-opening{
 text-shadow:0 1px 3px #000,0 2px 10px #000,0 0 20px rgba(0,0,0,.8);
}
@media(max-width:700px){
 .story-banner .estate-banner-transition,.our-story-banner .estate-banner-transition,.venue-banner .estate-banner-transition{padding-top:28px;padding-bottom:56px}
}
@media(prefers-reduced-motion:reduce){
 .story-banner .estate-banner-transition,.our-story-banner .estate-banner-transition,.venue-banner .estate-banner-transition{margin-top:0;min-height:0;background:#000}
}

/* Slightly larger matching gold editorial section headings. */
.estate-details>h2.estate-section-heading,
.history-chapters>h2,
.family-timeline>small,
.venue-banner+.events-history-intro>.events-family-heading{
 font-family:Cinzel,Georgia,serif;font-size:1.65rem;font-weight:600;
 font-style:normal;line-height:1.4;letter-spacing:.16em;color:var(--gold);
}
/* Remove only the line above the Events introduction. */
.venue-banner+.events-history-intro::before{display:none}
/* Give the gathering section its requested white, larger heading. */
.gathering-details>h2{font-size:1.65rem;color:#fff}

/* White, larger Events spaces introduction and FAQ heading. */
.spaces-heading>h2{font-size:1.85rem;color:#fff}
.faq-banner .estate-banner-transition>h2{font-size:1.65rem;color:#fff}

/* Acknowledgment heading matches Featured In. */
.ack .wrap>small{font:600 1.5rem/1.4 Cinzel,Georgia,serif;letter-spacing:.16em;color:var(--gold)}

/* Keep the architectural overview title on one responsive line. */
.estate-details>h2.estate-section-heading{font-size:clamp(.65rem,2.2vw,1.65rem)}
.estate-details>h2.estate-section-heading>span{white-space:nowrap}
@media(max-width:650px){
 .estate-details>h2.estate-section-heading{gap:8px}
 .estate-details>h2.estate-section-heading::before,.estate-details>h2.estate-section-heading::after{min-width:8px;flex-basis:16px}
}

/* Separate Carole’s sentences and fit Martha’s quote on one desktop line. */
.our-story-banner .estate-banner-opening blockquote{max-width:none}
.our-story-banner .estate-banner-opening blockquote p .family-quote-sentence{display:block}
.our-story-banner .estate-banner-opening blockquote p .family-quote-sentence+span{margin-top:8px}
.venue-banner .events-nelly-quote blockquote{max-width:none}
@media(min-width:851px){
 .our-story-banner .estate-banner-opening blockquote p{font-size:clamp(1.1rem,1.55vw,1.7rem)}
 .our-story-banner .estate-banner-opening blockquote p .family-quote-sentence{white-space:nowrap}
 .venue-banner .events-nelly-quote blockquote p{font-size:clamp(1.2rem,1.8vw,2rem);white-space:nowrap;max-width:none}
}

/* Carole’s quote matches the other opening quotation sizes. */
.our-story-banner .estate-banner-opening blockquote p{font-size:clamp(1.5rem,2.4vw,2.2rem)}

/* Temporary edition: historic house banner, without added people; conceal scan edges through framing. */
.our-story-banner .estate-banner-photo{height:auto;aspect-ratio:954/670}
.our-story-banner .estate-banner-photo>img[src="/assets/families-house-east-v483.jpg"]{
 position:absolute;left:-2.515723%;top:-4.477612%;
 width:107.337526%;height:109.104478%;max-width:none;
 object-fit:fill;object-position:center;filter:brightness(.9) saturate(.9);
 clip-path:inset(4.103967% 4.492188% 4.240766% 2.34375%);
}

/* Fill the Ridgeway Story banner width while preserving the photograph’s proportions. */
.story-banner .estate-banner-photo>img[src="/assets/story-historic-straightened-v488.webp"]{
 width:100%;height:100%;object-fit:cover;object-position:center 65%;
}
