
/* Full-width photographs with restrained white editorial copy. */
body .landscape-story{position:relative;isolation:isolate;margin:0;width:100%;height:auto;min-height:0;overflow:hidden}
body .landscape-story>img{display:block;width:100%;height:clamp(500px,72vh,900px);max-height:none;object-fit:cover}
body .landscape-story::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(27,27,23,.53));pointer-events:none;z-index:1}
body .landscape-story .landscape-copy{position:absolute;z-index:2;left:50%;bottom:54px;transform:translateX(-50%);width:min(760px,calc(100% - 80px));margin:0;text-align:center;color:white!important}
body .landscape-copy :is(h2,p){color:white!important}
body .landscape-copy h2{margin:0 0 22px;font-family:var(--serif)!important}
body .landscape-copy p{max-width:68ch;margin:0 auto;line-height:1.85!important}
body .photo-view{position:relative;display:block;isolation:isolate;overflow:hidden}
body .photo-view::after{content:"";position:absolute;inset:0;background:rgba(145,139,122,.52);opacity:0;transition:opacity .45s ease;z-index:1;pointer-events:none}
body .photo-view-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:white;font-size:14px;letter-spacing:.4em;text-transform:uppercase;opacity:0;transition:opacity .45s ease;z-index:2;pointer-events:none}
@media(hover:hover){body a:hover>.photo-view::after,body a:hover>.photo-view>.photo-view-label{opacity:1}}
body a:focus-visible>.photo-view::after,body a:focus-visible>.photo-view>.photo-view-label{opacity:1}
@media(max-width:700px){body .landscape-story>img{height:66vh;min-height:480px}body .landscape-story .landscape-copy{width:calc(100% - 40px);bottom:35px}body .landscape-copy h2{margin-bottom:16px}body .landscape-copy p{font-size:12px!important}}
@media(prefers-reduced-motion:reduce){body .photo-view::after,body .photo-view-label{transition:none}}

/* A quieter wordmark, with the existing white/dark colour behaviour. */
body #header .brand{width:90px;height:auto;flex-shrink:0}
body .complete-footer .footer-wordmark{width:84px}
body img.scotland-landscape{object-position:center 62%}
@media(max-width:700px){body #header .brand{width:76px}body .complete-footer .footer-wordmark{width:76px}}

/* A single five-image interior sequence. */
body .cabin-interior-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:start;margin-top:38px;padding-bottom:12px}
body .cabin-interior-strip figure{margin:0;min-width:0}
body .cabin-interior-strip img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
body .cabin-interior-strip figcaption{margin-top:18px;letter-spacing:normal}
body .cabin-interior-strip h3{font-family:var(--serif);font-size:12px;line-height:1.6;letter-spacing:.18em;margin-bottom:10px;text-transform:uppercase}
body .cabin-interior-strip p{font-size:12px;line-height:1.7;margin:0}
@media(max-width:900px){body .cabin-interior-strip{grid-template-columns:repeat(4,minmax(180px,1fr));overflow-x:auto;scroll-snap-type:x proximity;gap:18px}body .cabin-interior-strip figure{scroll-snap-align:start}}

body .zwanzig-project{padding-top:70px;padding-bottom:80px}
body .zwanzig-intro{max-width:660px;margin:0 auto 42px;text-align:center}
body .zwanzig-intro h2{margin:0 0 16px}
body .zwanzig-location{font-size:12px;letter-spacing:.08em;margin-bottom:24px}
body .zwanzig-project figure{margin:0}
body .zwanzig-project img{width:100%;height:auto;object-fit:contain;mix-blend-mode:multiply}
body .zwanzig-plan{max-width:1160px;margin:0 auto 50px}
body .zwanzig-plan figcaption{text-align:center}
body .zwanzig-long{max-width:1160px;margin:auto}
body .zwanzig-ends{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:10px auto 30px;max-width:1160px}
body .zwanzig-ends a{display:block;aspect-ratio:2.4;overflow:hidden;position:relative}
body .zwanzig-ends img{position:absolute;width:140%;max-width:none;height:auto;top:50%;transform:translateY(-50%)}
body .zwanzig-ends figure:first-child img{right:0}
body .zwanzig-ends figure:last-child img{left:0}
body .zwanzig-project>.small-note{text-align:center}
@media(max-width:700px){body .zwanzig-project{padding:45px 0}body .zwanzig-ends{grid-template-columns:1fr;gap:30px}}

/* Cream titles, white supporting copy over photography. */
body .landscape-copy :is(h1,h2,h3){color:#f4f2eb!important}
body .landscape-copy p{color:#fff!important}

/* The coastal cabin photograph reaches both viewport edges. */
body.home .landscape-story.edge-to-edge-cabin{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

body #process .process-illustration figure{margin:32px 0 0;max-width:100%}
body #process .process-illustration img{width:100%;height:auto;max-height:900px;object-fit:contain;mix-blend-mode:multiply}
@media(max-width:760px){body #process .process-illustration img{max-height:750px}}

/* Unified photographic overlay hierarchy. */
body #main :is(.hero-caption,.hero-copy,.landscape-copy,.photo-feature-copy,.feature-copy,.feature-caption) :is(h1,h2,h3){color:#f4f2eb!important}
body #main :is(.hero-caption,.hero-copy,.landscape-copy,.photo-feature-copy,.feature-copy,.feature-caption) p{color:#fff!important}
/* Three aligned interior photographs, with generous paper gutters. */
body .homes-interior-row{padding-top:80px;padding-bottom:110px}
body .homes-interior-intro{max-width:650px;margin:0 auto 65px;text-align:center}
body .homes-interior-intro h2{margin-bottom:28px}
body .homes-interior-row>.photo-story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,4.5vw,76px);margin-top:45px}
body .homes-interior-row .photo-story-grid img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
body.hospitality-page #guest-spaces{padding-top:100px;padding-bottom:110px;width:calc(100% - 160px);max-width:1400px;margin-inline:auto}
body.hospitality-page #guest-spaces>p{max-width:700px;margin-left:auto;margin-right:auto}
body.hospitality-page #guest-spaces .cabin-interior-strip{margin-top:65px;gap:36px}
@media(max-width:760px){body .homes-interior-row>.photo-story-grid{grid-template-columns:1fr;gap:45px}body .homes-interior-row{padding-block:60px}body.hospitality-page #guest-spaces{width:calc(100% - 48px);padding-block:65px}body.hospitality-page #guest-spaces .cabin-interior-strip{margin-top:40px;gap:24px}}
