/* A shared photographic introduction for home, services and reading pages.
   Brand exceptions to the design guide: retain MaruBuri and the established
   56/44/34 home scale. Document headlines retain 48/40/32. Image files, faces,
   publication covers and official CI keep their original colour data. */
:root { --hero-ink:#203d43; --hero-paper:#fafbf8; }
.page-hero { position:relative; isolation:isolate; display:grid; min-height:560px; overflow:hidden; color:var(--hero-paper); background:var(--hero-ink); margin:0 0 56px; }
.page-hero-media { position:absolute; inset:0; margin:0; z-index:-2; }
.page-hero-media > img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:var(--hero-position,center 52%); }
.page-hero-media.tone-editorial > img { filter:saturate(.67) contrast(1.02); }
.page-hero-media.tone-neutral > img { filter:saturate(.9); }
.page-hero-media[data-hero-position="65% center"] { --hero-position:65% center; }
.page-hero-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(21,40,46,.88) 0%,rgba(21,40,46,.79) 38%,rgba(21,40,46,.65) 61%,rgba(21,40,46,.22) 84%,rgba(21,40,46,.10) 100%); }
.page-hero-shell { display:flex; flex-direction:column; width:100%; min-height:560px; position:relative; }
.page-hero .breadcrumb { display:flex; flex-wrap:wrap; align-items:center; width:100%; max-width:none; margin:0; padding:22px 0 0; gap:8px 12px; font-size:14px; line-height:22px; color:#edf0ec; }
.page-hero .breadcrumb a { display:inline-flex; align-items:center; min-height:36px; color:inherit; }
.page-hero .breadcrumb [aria-current] { color:inherit; }
.page-hero-content { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; flex:1; min-width:0; max-width:800px; padding:48px 0 64px; }
.page-hero h1 { margin:0; max-width:800px; font:600 48px/60px var(--serif); color:var(--hero-paper); letter-spacing:0; text-wrap:balance; word-break:keep-all; overflow-wrap:anywhere; text-shadow:0 1px 3px #14262c33; }
.page-hero :is(.intro-desc,.article-lead),.page-hero-content > p { margin:26px 0 0; max-width:760px; color:var(--hero-paper); font:400 21px/32px var(--sans); letter-spacing:.011em; text-wrap:pretty; }
.page-hero :is(.related-pages,.hero-actions,.contact-quick) { display:flex; flex-wrap:wrap; align-items:center; gap:20px 28px; margin:30px 0 0; padding:0; border:0; }
.page-hero :is(.text-link,.hero-contact,.contact-quick a) { display:inline-flex; align-items:center; gap:20px; min-height:48px; margin:0; padding:10px 0; border-bottom:1px solid #ffffffa6; color:var(--hero-paper); font:400 17px/23px var(--sans); }
.page-hero .button { display:inline-flex; justify-content:space-between; align-items:center; gap:28px; min-height:52px; padding:14px 22px; border:1px solid #f8faf5; background:#f8faf5; color:#203c40; font:600 17px/23px var(--sans); }
.page-hero .button:hover { background:#e3ebe4; border-color:#e3ebe4; }
.page-hero a:not(.button):hover { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.page-hero a:focus-visible { outline:3px solid #fff; outline-offset:5px; }
.page-hero .article-meta { display:flex; flex-wrap:wrap; gap:12px 24px; margin:26px 0 0; padding:18px 0 0; border-top:1px solid #ffffff52; color:#eef1ee; font:400 14px/22px var(--sans); }
.page-hero .article-meta a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.page-hero-media figcaption { position:absolute; right:max(22px,calc((100vw - 1208px)/2)); bottom:18px; max-width:36%; margin:0; padding:6px 10px; background:#192f36cc; color:#fff; font:400 12px/20px var(--sans); z-index:3; }
.page-hero--home { min-height:620px; margin-bottom:0; }
.page-hero--home .page-hero-shell { min-height:620px; }
.page-hero--home .page-hero-content { padding-block:100px; }
.page-hero--home h1 { font-size:56px; line-height:72px; letter-spacing:-.02em; }
.page-hero--home .page-hero-content > p { max-width:700px; }
.page-hero--article,.page-hero--article .page-hero-shell { min-height:520px; }
.page-hero--utility,.page-hero--utility .page-hero-shell { min-height:320px; }
.page-hero--utility { background:#29464a; }
.page-hero--utility .page-hero-shade { background:linear-gradient(100deg,#203a40,#3c5759); }
.page-hero--portrait,.page-hero--portrait .page-hero-shell { min-height:640px; }
.page-hero--portrait { background:linear-gradient(100deg,#253d43,#4a6266); }
.page-hero--portrait .page-hero-content { max-width:66%; }
.page-hero--portrait .page-hero-content > p { max-width:660px; }
.page-hero--portrait .page-hero-media > img { width:36%; height:92%; position:absolute; bottom:0; right:max(22px,calc((100vw - 1260px)/2)); object-fit:contain; object-position:right bottom; filter:none; }
.page-hero--portrait .page-hero-shade { background:linear-gradient(90deg,rgba(27,48,54,.4),transparent 72%); }
.hero-quicklinks { width:100%; margin-top:-20px; padding-block:0 36px; }
.hero-quicklinks .hub-shortcuts { margin:0; padding:0; }
.hero-quicklinks .hub-shortcuts-formats { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; max-width:none; border-top:0; }
.hero-quicklinks .hub-shortcuts-formats .hub-shortcut-link { align-items:center; min-height:52px; }
.project-detail > .article-body { grid-column:1; width:100%; }
.project-detail > .inquiry-aside { grid-column:2; grid-row:1; }
.insights-opening.insights-opening--text { display:block; padding-top:0; }
.insights-opening--text > div { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px 40px; align-items:start; }
.insights-opening.insights-opening--text > div > :is(h2,p) { margin-top:0; }
.insights-opening--text .insight-resource-links { grid-column:1 / -1; }
/* Subtle colour continuity for existing environmental/editorial photos only. */
main img[src*="/assets/editorial/"]:not(.page-hero-media img),.editorial-stage > img { filter:saturate(.78); }
@media(min-width:1600px) { .page-hero-shade { background:linear-gradient(90deg,rgba(21,40,46,.88),rgba(21,40,46,.75) 47%,rgba(21,40,46,.2) 84%,rgba(21,40,46,.1)); } }
@media(max-width:1068px) {
 .project-detail { grid-template-columns:minmax(0,1fr); gap:36px; }
 .project-detail > .inquiry-aside { grid-column:1; grid-row:auto; }
 .page-hero,.page-hero .page-hero-shell { min-height:520px; }
 .page-hero-content { max-width:78%; padding-block:44px 52px; }
 .page-hero h1 { font-size:40px; line-height:52px; }
 .page-hero :is(.intro-desc,.article-lead),.page-hero-content > p { font-size:19px; line-height:29px; letter-spacing:.012em; }
 .page-hero-shade { background:linear-gradient(90deg,rgba(21,40,46,.89),rgba(21,40,46,.74) 58%,rgba(21,40,46,.25)); }
 .page-hero--home,.page-hero--home .page-hero-shell { min-height:580px; }
 .page-hero--home .page-hero-content { padding-block:76px; }
 .page-hero--home h1 { font-size:44px; line-height:58px; }
 .page-hero--portrait .page-hero-content { max-width:66%; }
 .page-hero--portrait,.page-hero--portrait .page-hero-shell { min-height:600px; }
 .page-hero--portrait .page-hero-media > img { width:32%; right:22px; height:84%; }
 .page-hero--utility,.page-hero--utility .page-hero-shell { min-height:300px; }
 .page-hero-media figcaption { max-width:65%; }
}
@media(max-width:734px) {
 .page-hero { margin-bottom:36px; }
 .page-hero,.page-hero .page-hero-shell { min-height:510px; }
 .page-hero .breadcrumb { padding-top:14px; gap:4px 10px; font-size:12px; line-height:20px; }
 .page-hero .breadcrumb a { min-height:32px; }
 .page-hero-content { max-width:none; width:100%; padding-block:38px 52px; }
 .page-hero h1 { font-size:34px; line-height:44px; text-wrap:initial; }
 .page-hero h1 br { display:none; }
 .page-hero :is(.intro-desc,.article-lead),.page-hero-content > p { margin-top:24px; font-size:19px; line-height:29px; letter-spacing:.012em; }
 .page-hero-content > p br { display:none; }
 .page-hero-media > img { object-position:var(--hero-position,64% center); }
 .page-hero-shade { background:linear-gradient(90deg,rgba(21,40,46,.83),rgba(21,40,46,.72)),linear-gradient(0deg,rgba(21,40,46,.06),transparent); }
 .page-hero :is(.related-pages,.hero-actions,.contact-quick) { gap:12px 24px; margin-top:28px; }
 .page-hero .button { padding-inline:18px; }
 .page-hero .article-meta { gap:8px 18px; }
 .page-hero-media figcaption { right:22px; bottom:10px; max-width:calc(100% - 44px); font-size:12px; line-height:18px; }
 .page-hero--home { margin-bottom:0; }
 .page-hero--home,.page-hero--home .page-hero-shell { min-height:570px; }
 .page-hero--home .page-hero-content { padding-block:64px; }
 .page-hero--home h1 { font-size:34px; line-height:46px; letter-spacing:0; }
 .page-hero--article h1 { font-size:32px; line-height:42px; letter-spacing:.004em; }
 .page-hero--article,.page-hero--article .page-hero-shell { min-height:480px; }
 .page-hero--portrait { display:flex; flex-direction:column; min-height:0; }
 .page-hero--portrait .page-hero-shell { min-height:0; }
 .page-hero--portrait .page-hero-content { max-width:none; padding-bottom:28px; }
 .page-hero--portrait .page-hero-media { position:relative; inset:auto; order:2; width:100%; height:350px; z-index:0; }
 .page-hero--portrait .page-hero-media > img { position:static; width:100%; height:100%; object-position:center bottom; }
 .page-hero--portrait .page-hero-shade { background:linear-gradient(180deg,#213c4166,transparent); }
 .page-hero--utility,.page-hero--utility .page-hero-shell { min-height:280px; }
 .hero-quicklinks { margin-top:-8px; padding-bottom:24px; }
 .hero-quicklinks .hub-shortcuts-formats { grid-template-columns:minmax(0,1fr); gap:0; border-top:1px solid var(--line); }
 .insights-opening--text > div { display:block; }
 .insights-opening--text h2 { margin-bottom:20px; }
}
@media(prefers-reduced-motion:reduce) { .page-hero { scroll-behavior:auto; } }
