/* ==========================================================================
   Estate pages — shared CSS for the Lodge, the Farmhouse, dark skies, gallery,
   questions, getting here, terms, privacy and the history page.
   Skin: .skin-core. Every rule scoped under .cr-estate-page.
   Breakpoints (min-width, mobile-first): 480 / 768 / 1024 / 1280
   ========================================================================== */

.cr-estate-page .cr-hero { min-height: clamp(520px, 78vh, 640px); }
@media (min-width: 1024px) { .cr-estate-page .cr-hero { min-height: clamp(620px, 74vh, 860px); } }
.cr-estate-page .cr-hero__inner { padding-bottom: 72px; }
.cr-estate-page .cr-hero__sub { max-width: 42ch; }
.cr-estate-page .cr-hero__img { object-position: 50% 50%; }
/* Where the subject sits in each hero photograph: phone (portrait crop) first, then wider screens */
.page-the-lodge .cr-hero__img { object-position: 42% 65%; }
@media (min-width: 768px) { .page-the-lodge .cr-hero__img { object-position: 48% 70%; } }
.page-the-farmhouse .cr-hero__img { object-position: 60% 52%; }
@media (min-width: 768px) { .page-the-farmhouse .cr-hero__img { object-position: 50% 56%; } }
.page-getting-here .cr-hero__img { object-position: 50% 62%; }
.page-dark-skies .cr-hero__img { object-position: 50% 50%; }

/* Pages without a hero start with a plain top section */
.cr-estate-page .es-top { padding-top: 120px; }
@media (min-width: 1024px) { .cr-estate-page .es-top { padding-top: 150px; } }
.cr-estate-page .es-h1 { font-size: clamp(34px, 5vw, 54px); max-width: 16ch; }
.cr-estate-page .es-toc { font-size: 14px; color: var(--muted); margin: -20px 0 36px; line-height: 2; }
.cr-estate-page .es-toc a { color: var(--accent-on-light); text-decoration: none; border-bottom: 1px solid var(--line-on-light); }

/* Facts strip */
.cr-estate-page .es-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; margin-top: 8px; }
@media (min-width: 768px) { .cr-estate-page .es-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cr-estate-page .es-facts { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.cr-estate-page .es-fact { border-top: 2px solid var(--accent); padding-top: 12px; min-width: 0; }
.cr-estate-page .es-fact b { display: block; font-family: var(--font-display); font-weight: 500; font-size: 34px; line-height: 1; color: var(--ink); margin-bottom: 6px; font-variant-numeric: tabular-nums; }
.cr-estate-page .es-fact span { font-size: 14px; line-height: 1.4; color: var(--muted); }

/* Heading + paragraph rows */
.cr-estate-page .es-rows { display: grid; grid-template-columns: 1fr; gap: 0 32px; margin-top: 8px; max-width: 980px; }
@media (min-width: 768px) { .cr-estate-page .es-rows { grid-template-columns: 1fr 1fr; } }
.cr-estate-page .es-row { padding: 18px 0; border-top: 1px solid var(--line-on-light); min-width: 0; }
.cr-estate-page .es-row h3 { font-family: var(--font-display); font-weight: 500; font-size: 21px; line-height: 1.25; margin: 0 0 6px; color: var(--ink); }
.cr-estate-page .es-row p { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--text); }
.cr-estate-page .es-prose { max-width: 62ch; font-size: 17px; line-height: 1.65; color: var(--text); margin: 0 0 1em; }
.cr-estate-page .es-prose a, .cr-estate-page .es-row a, .cr-estate-page .cr-lede a, .cr-estate-page .cr-faq__a a { color: var(--accent-on-light); }

/* Photo grids built from .cr-tile */
.cr-estate-page .es-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 8px 0 36px; }
@media (min-width: 768px) { .cr-estate-page .es-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cr-estate-page .es-gallery--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cr-estate-page .es-gallery .cr-tile, .cr-estate-page .es-gallery .cr-toshoot { aspect-ratio: 4 / 3; min-width: 0; }
.cr-estate-page .es-group { font-family: var(--font-display); font-weight: 500; font-size: 24px; margin: 36px 0 12px; color: var(--ink); }
.cr-estate-page .es-group:first-of-type { margin-top: 8px; }

/* Days out */
.cr-estate-page .es-places { display: grid; grid-template-columns: 1fr; gap: 22px 18px; margin-top: 8px; }
@media (min-width: 480px) { .cr-estate-page .es-places { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cr-estate-page .es-places { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cr-estate-page .es-place { min-width: 0; }
.cr-estate-page .es-place .cr-tile, .cr-estate-page .es-place .cr-toshoot { aspect-ratio: 4 / 3; margin-bottom: 10px; }
.cr-estate-page .es-place p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--muted); }

/* Questions */
.cr-estate-page .es-qcat { font-size: 26px; margin: 44px 0 10px; }
.cr-estate-page .es-qcat:first-of-type { margin-top: 0; }
.cr-estate-page .cr-faq { max-width: 820px; }

/* Article */
.cr-estate-page .es-article { max-width: 760px; }
.cr-estate-page .es-article p { font-size: 18px; line-height: 1.7; color: var(--text); margin: 0 0 1.1em; }
.cr-estate-page .es-article__img { aspect-ratio: 3 / 2; margin: 0 0 28px; }

/* Blank tiles everywhere on these pages keep their labels readable */
.cr-estate-page .cr-toshoot { min-width: 0; }
.cr-estate-page .cr-toshoot__label { min-width: 0; overflow-wrap: anywhere; }

/* Hero legibility over photographs: darker on the text side, darker still on phones */
.cr-estate-page .cr-hero { --hero-scrim: linear-gradient(rgba(14,23,41,0.82) 0%, rgba(14,23,41,0.62) 55%, rgba(14,23,41,0.35) 100%); }
@media (min-width: 768px) { .cr-estate-page .cr-hero { --hero-scrim: linear-gradient(92deg, rgba(14,23,41,0.86) 0%, rgba(14,23,41,0.62) 45%, rgba(14,23,41,0.28) 80%, rgba(14,23,41,0.18) 100%); } }
