/* 2026-09-08: solid colour, responsive presentation scale and contained stages.
   Content is never cropped to force a viewport height. */
:root {
  --gold: #efb52e;
  --gold-deep: var(--gold);
  --fg: #f6f5ef;
  --muted: #bbc6cd;
  --surface: #1c2c37;
  --surface-raised: #263b47;
  --line: #ffffff26;
  --content-max: clamp(1380px, calc(65vw + 236px), 2240px);
  --rail: max(6vw, calc((100vw - var(--content-max)) / 2));
}
body { background:#111e28; color:var(--fg); }
html { scroll-padding-top:calc(var(--reading-header-height,var(--nav-height,82px)) + var(--reading-rail-height,0px)); }
body[class^="page-"] .wrap,.nav-wrap { width:min(88%,var(--content-max));max-width:var(--content-max); }
.spf-page { --sp-gold:var(--gold);--sp-muted:#bbc6cd;--sp-ground:#111e28;--sp-surface:#1c2c37;--sp-raised:#263b47;--sp-ink:#f6f5ef; }
.spf-page .section--tint { background:#203340; }
.spf-page .section--dark { background:#152632; }
.spf-page .spf-section:not(.refinement-section) { padding-block:clamp(48px,6svh,84px); }
.section { padding-block:clamp(48px,6svh,84px); }
.section--dark { background:#152632; --muted:#bbc6cd; }
.section--tint { background:#203340; }
.eyebrow,.section--dark .eyebrow,.number { color:var(--gold); }
.button { background:var(--gold);border-color:var(--gold);color:#14212b; }
.button:hover { background:var(--gold);border-color:var(--gold); }
.button--outline { background:transparent;border-color:#dbe5e05c;color:#f6f5ef; }
.button--outline:hover { background:#ffffff0b;color:var(--gold); }
.nav-link[aria-current=page],.nav-link:hover { color:var(--gold); }
.site-header.is-scrolled,body.menu-open .site-header { background:#101d27fa; }
.lang-switch button[aria-pressed=true] { background:var(--gold); }
.reading-progress__fill,.chapter-progress__fill { background:var(--gold); }
.progress-chapters a.is-current { background:color-mix(in srgb,var(--gold) 3.92%,transparent);color:var(--gold); }
.progress-chapters a.is-current .number { color:inherit; }
.text-link { border-color:color-mix(in srgb,var(--gold) 43.92%,transparent); }
.opening-cinema h1 em,.company-scene h1 em { color:var(--gold); }

/* Photograph detail remains visible outside the text's local shade. */
.opening-cinema__image { filter:saturate(1.02) brightness(.98); }
.opening-cinema:after { background:linear-gradient(90deg,#071723c2 0%,#07172382 32%,#07172310 67%),linear-gradient(0deg,#111e28,transparent 30%); }
.res-hero:after,.res-building-hero:after { background:linear-gradient(90deg,#061523d9,#06152365 47%,#06152300 78%),linear-gradient(0deg,#07172470,transparent 54%); }
.work-card__image { filter:saturate(1) brightness(.98); }
.work-plaque { background:#142634f5;border-color:#ffffff30;backdrop-filter:none; }
.work-plaque .eyebrow { color:var(--gold); }
.work-plaque>p:not(.eyebrow) { color:#c9d3da; }
.service-scene>img { filter:saturate(.95) brightness(.94); }
.service-scene:hover>img { filter:saturate(1) brightness(1); }
.company-scene__image { filter:brightness(1) saturate(1); }
.spf-hero__media img { filter:brightness(1.07) saturate(1.04); }
.company-scene__shade { background:linear-gradient(90deg,#071724e8 0%,#071724bb 27%,#07172442 60%,transparent),linear-gradient(0deg,#111e28b0,transparent 30%); }
.company-member__portrait img,.company-office img,.company-location img,.project-stage .company-case__image img { filter:none; }

/* A single project occupies the gallery frame, at every desktop width. */
.selected-work { background:#111e28; }
.work-track { width:min(88%,var(--content-max));margin-inline:auto;padding:0;scroll-padding-inline:0;gap:24px; }
.work-card { flex:0 0 100%;height:clamp(340px,51svh,760px);scroll-snap-align:start;border-radius:14px; }
.work-plaque { width:clamp(340px,29%,510px);border-radius:12px; }
.selected-work .section-head { align-items:end; }
.gallery-controls { margin-top:18px; }
.viewer-ready~.home-layer-strip { display:none; }
.method-heading-copy>p { color:var(--muted);font-size:15px;line-height:1.8;margin-bottom:8px; }
.method-heading-copy .text-link { font-size:12px; }
.method-intro>.wrap>.section-head { margin-bottom:20px;align-items:end; }
.method-intro .viewer-presentation { margin-top:0; }

/* The first view scales with the actual screen, including ultra-wide screens. */
@media(min-width:901px) {
  .opening-cinema,.res-hero,.res-building-hero,.spf-page .spf-hero,.company-scene {
    min-height:max(640px,100svh);height:auto;
  }
  .opening-cinema__inner { min-height:inherit;padding-top:calc(var(--nav-height) + 60px); }
  .opening-cinema__copy { align-self:center;padding-bottom:48px; }
  .res-hero .hero__content,.res-building-hero .hero__content { padding-block:calc(var(--nav-height) + 80px) 100px; }
  .company-scene__content { padding-block:calc(var(--nav-height) + 64px) 140px; }
  .selected-work { min-height:calc(100svh - var(--nav-height));display:flex;flex-direction:column;justify-content:center; }
  .dfence-r2 { min-height:calc(100svh - var(--nav-height) - 64px);padding-block:clamp(42px,6svh,84px);display:grid;align-items:center; }
  .dfence-r2__grid { width:min(88%,var(--content-max));min-height:0;grid-template-columns:1fr 1fr;gap:8%; }
  .dfence-r2__copy { max-width:700px; }
  .method-intro h2 br { display:none; }
}
@media(min-width:901px) and (max-height:950px) {
  .section.method-intro { padding-block:28px; }
  .method-intro .section-head h2,html[lang=en] .method-intro .section-head h2 { font-size:36px; }
  .method-intro .section-head .eyebrow { margin-bottom:10px; }
  .method-intro>.wrap>.section-head { gap:36px;margin-bottom:18px; }
  .method-heading-copy>p { font-size:14px;line-height:1.65; }
}

/* Each consultant has a stable, individual architectural background. */
.consultant-quote { background:#091923;min-height:clamp(380px,52svh,640px);padding-block:clamp(48px,6svh,90px); }
.consultant-quote .consultant-quote__background { filter:none;opacity:1; }
.consultant-quote:after { background:linear-gradient(90deg,#05142124,#05142166 43%,#05142180); }
.consultant-quote__body { border-color:var(--gold); }
.consultant-quote__mark,.consultant-quote .consultant-quote__caption strong { color:var(--gold); }
.consultant-quote .consultant-quote__body p { color:#d0d9de; }
.consultant-quote .consultant-quote__identity>img { border-color:color-mix(in srgb,var(--gold) 50.20%,transparent); }

@media(min-width:1921px) {
  body { font-size:clamp(17px,.69vw,23px); }
  .brand img { width:clamp(106px,4.8vw,155px);max-height:none; }
  .nav-link,.nav-enquiry { font-size:clamp(14px,.58vw,19px); }
  .main-nav { gap:clamp(34px,1.65vw,55px); }
  .section h2,html[lang=en] .section h2 { font-size:clamp(42px,2.15vw,68px); }
  .opening-cinema h1,html[lang=en] .opening-cinema h1,.res-hero h1,html[lang=en] .res-hero h1,.res-building-hero h1,html[lang=en] .res-building-hero h1,.spf-hero__copy h1,html[lang=en] .spf-hero__copy h1,.company-scene h1,html[lang=en] .company-scene h1 { font-size:clamp(72px,3.6vw,110px);max-width:15em; }
  .opening-cinema__copy { max-width:1200px; }
  .opening-cinema .lede,.res-hero .lede,.res-building-hero .lede,.spf-hero__copy .lede,.company-scene .lede,.section-head>p,.section-head>.lede { font-size:clamp(18px,.7vw,23px); }
  .res-hero .lede,.res-building-hero .lede { max-width:38em; }
  .section-head>div:last-child:not(:first-child) { max-width:580px; }
  .button { font-size:clamp(15px,.6vw,20px);padding:16px 30px; }
  .eyebrow,.opening-cinema .eyebrow { font-size:clamp(12px,.46vw,15px); }
  .work-plaque { padding:32px 36px; }
  .work-plaque h3,html[lang=en] .work-plaque h3 { font-size:clamp(30px,1.25vw,42px); }
  .work-plaque>p:not(.eyebrow),.work-plaque .text-link { font-size:clamp(15px,.56vw,19px); }
  .consultant-quote__grid { grid-template-columns:minmax(250px,330px) 1fr;gap:7%; }
  .consultant-quote__body { max-width:1320px; }
  .consultant-quote .consultant-quote__body .consultant-quote__lead { font-size:clamp(31px,1.28vw,42px); }
  .consultant-quote .consultant-quote__body p { font-size:clamp(17px,.62vw,21px); }
  .consultant-quote .consultant-quote__identity>img { width:clamp(236px,9vw,290px); }
}
@media(max-width:900px) {
  .section { padding-block:56px; }
  .opening-cinema { min-height:100svh; }
  .work-card { height:auto;min-height:0;display:flex;flex-direction:column; }
  .work-card__image { position:relative;inset:auto;aspect-ratio:4/3;height:auto;z-index:0; }
  .work-card:after { display:none; }
  .work-card__top { z-index:1;inset:18px 20px auto;text-shadow:0 1px 6px #000; }
  .work-plaque { position:relative;inset:auto;flex:1;width:100%;padding:25px;border:0;border-radius:0; }
  .work-credit { position:relative;bottom:auto;right:auto;padding:7px 20px 12px;background:#142634;font-size:9px; }
  .work-plaque h3 { font-size:27px; }
  .consultant-quote { min-height:0; }
}
@media(max-width:650px) {
  body[class^="page-"] .wrap,.nav-wrap,.work-track { width:calc(100% - 40px); }
  .section { padding-block:44px; }
  .selected-work .section-head { display:flex;align-items:end;gap:16px;margin-bottom:24px; }
  .selected-work .section-head h2 { font-size:28px; }
  .selected-work .section-head>div:last-child:not(:first-child) { flex:none;width:94px; }
  .selected-work .section-head>div:last-child:not(:first-child)>p { display:none; }
  .selected-work .section-head .text-link { font-size:11px;gap:6px; }
  .work-card__image { aspect-ratio:16/10; }
  .opening-cinema:after { background:linear-gradient(0deg,#061624f0,#061624b8 37%,#0616241a 85%); }
  .res-hero:after,.res-building-hero:after { background:linear-gradient(0deg,#061523f0,#061523a8 44%,#06152300 88%); }
  .consultant-quote { padding-block:44px; }
}
