/* Shared wayfinding, page proportions and form interaction across LINEA. */
:root { --page-wayfinding-height: 0px; --header-base-height: 112px; --page-hero-height: max(100svh, 760px, calc(var(--header-h) + var(--page-wayfinding-height, 110px) + var(--division-label-height, 960px))); --page-wayfinding-left: max(68px, calc(var(--linea-rail-x) + clamp(24px, 4vw, 72px))); }
html body main > [data-page-intro] { min-height: var(--page-hero-height); padding-top: calc(var(--header-h) + var(--page-wayfinding-height, 110px) + 44px); }
html body main > :is(.page-hero, .hero, .architecture-stages-hero)[data-page-intro] { align-items: center; align-content: center; padding-bottom: 44px; }
html body main > .architecture-stages-hero[data-page-intro] { display: grid; }
.site-header, .site-header:has(.brand--division) { --header-lockup-width: 230px; --tab-surface: rgba(248,247,243,.95); height: auto; min-height: var(--header-base-height); grid-template-columns: var(--header-lockup-width) minmax(240px, 340px) minmax(900px, 1fr); gap: clamp(16px, 1.5vw, 28px); }
.site-header:has(.brand--division) { --header-lockup-width: 230px; }
.site-header.is-compact { height: auto; }
.site-header, .site-header.is-scrolled { border-bottom-width: 3px; border-bottom-color: var(--red); }
/* A small drafting grip marks the junction without adding another control. */
body::after { content: ''; position: fixed; z-index: 111; left: var(--linea-rail-x); top: calc(var(--header-h) - 1.5px); width: 10px; height: 10px; box-sizing: border-box; background: var(--red); border: 2px solid var(--paper); outline: 1px solid var(--red); box-shadow: 0 1px 4px #0003; transform: translate(-50%, -50%); pointer-events: none; }
.site-header > .brand { grid-column: 1; grid-row: 1; }
.site-header > .site-nav { grid-column: 3; grid-row: 1; }
.site-header:has(.page-return[hidden]) { grid-template-columns: var(--header-lockup-width) minmax(0, 1fr); }
.site-header:has(.page-return[hidden]) > .site-nav { grid-column: 2; }
.site-header > .site-nav > ul { gap: clamp(18px, 1.5vw, 28px); }
.site-header .nav-page-number { display: inline-block; margin-right: .55em; color: var(--red); font-variant-numeric: tabular-nums; }
.site-header .site-nav.is-on-dark .nav-page-number { color: #fff; }
@media (min-width: 1641px) { .site-header > .site-nav { padding: 0; margin: 0; } }
.site-header .header-social { border-left: 0; padding-left: 0; }
@media (min-width: 651px) {
  .site-header .header-breadcrumb { right: calc(var(--gutter) + var(--header-social-width, 136px) + 24px); }
}
/* The knowledge panel belongs below the header rule, not beside the logo. */
.site-header .nav-item--knowledge { position: static; }
.site-header .knowledge-nav-panel { top: calc(100% + 8px); right: var(--gutter); border: 1px solid var(--red); border-radius: 0; background: var(--red); color: #fff; box-shadow: 0 4px 0 #760000, 0 14px 28px #0005; max-height: calc(100dvh - var(--header-h) - 24px); overflow-y: auto; }
.site-header .knowledge-nav-panel :is(.eyebrow, h2, p, .knowledge-menu-close, .knowledge-menu-visit) { color: #fff; }
.site-header .knowledge-nav-panel :focus-visible { outline-color: #fff; }
@media (max-width: 650px) {
  .site-header .nav-item--knowledge { flex-wrap: wrap; }
  .site-header .knowledge-nav-panel { position: static; flex: 0 0 100%; width: 100%; max-height: none; margin: 12px 0 20px; padding: 28px 22px; overflow: visible; }
  .site-header .knowledge-nav-panel .knowledge-menu-close { position: static; float: right; margin: -20px -14px 0 8px; }
}
.site-header .mobile-view-note { display: none; }
.page-return { position: relative; isolation: isolate; grid-column: 2; grid-row: 1; align-self: end; box-sizing: border-box; width: 100%; min-width: 0; margin: 0 0 -12px; padding: 10px 20px 0; pointer-events: auto; background: transparent; text-align: center; }
.page-return[hidden] { display: none; }
.page-return[data-home-return] { display: none !important; }
/* Content never changes the folder footprint; only its lettering adapts. */
.site-header .page-return { --page-tab-width: clamp(220px, calc(100vw - 650px), 340px); width: var(--page-tab-width); height: 80px; min-height: 80px; max-height: 80px; display: grid; grid-template-rows: 32px 32px; gap: 2px; padding: 10px 20px 4px; }
.site-header .page-return[hidden] { display: none; }
.site-header .page-return .page-return-title { min-height: 0; height: 32px; line-height: 1.1; }
.site-header .page-return .page-title-text { display: block; width: 100%; max-height: 100%; overflow-wrap: anywhere; }
.site-header .page-return .linea-back { width: 100%; height: 32px; min-height: 32px; padding: 0; line-height: 1.1; }
.site-header .page-return .linea-back > span:last-child { flex: 0 1 auto; min-width: 0; max-height: 100%; overflow-wrap: anywhere; }
@media (min-width: 1641px) {
  /* Reserve the widest division lockup on every page, so equal tabs never collide with navigation. */
  .site-header { --desktop-page-tab-width: min(470px, calc(100vw - 1150px - var(--gutter) - var(--gutter) - clamp(16px, 1.5vw, 28px) - clamp(16px, 1.5vw, 28px))); }
  .site-header, .site-header:has(.brand--division) { grid-template-columns: var(--header-lockup-width) var(--desktop-page-tab-width) minmax(850px, 1fr); }
  .site-header .page-return { width: var(--desktop-page-tab-width); }
}
.page-return::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--tab-surface); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 -4px 12px rgb(0 0 0 / .12); }
.page-return::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background-image: linear-gradient(var(--red), var(--red)), linear-gradient(var(--red), var(--red)), linear-gradient(var(--red), var(--red)); background-position: left bottom, left top, right top; background-repeat: no-repeat; background-size: 2px 100%, 100% 2px, 2px 100%; }
.site-header.is-scrolled { --tab-surface: rgba(248,247,243,.18); }
.site-header.is-scrolled.is-on-light { --tab-surface: rgba(236,235,231,.88); }
.site-header.is-scrolled .page-return::before { -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.site-header.is-scrolled:not(.is-on-light) .page-return::before { -webkit-backdrop-filter: blur(20px) brightness(.4); backdrop-filter: blur(20px) brightness(.4); }
.site-header.is-scrolled:not(.is-on-light) .page-return :is(.page-return-title, .linea-back) { color: #fff; }
.page-return-title { display: flex; align-items: center; justify-content: center; min-height: 24px; padding: 0; margin: 0; color: var(--red); font-size: 20px; font-weight: 800; letter-spacing: .035em; line-height: 1.2; text-transform: uppercase; overflow-wrap: anywhere; }
.page-title-line { display: none; }
.page-title-text { min-width: 0; text-align: center; text-wrap: balance; }
.site-header .page-return :is(.page-title-text, .linea-back > span:last-child) { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .page-return::after { animation: page-tab-trace 1.7s 100ms linear both; }
  .page-return-title, .page-return .linea-back { animation: page-back-arrive 1s .35s both; }
  .brand-entry .page-return::after { animation: none; background-size: 2px 0, 0 2px, 2px 0; }
  .brand-entry .page-return-title, .brand-entry .page-return .linea-back { animation: none; opacity: 0; }
  .brand-entry .rail-intro-running .page-return::after { animation: page-tab-trace 1.7s 0ms linear both; }
  .brand-entry .rail-intro-running .page-return-title, .brand-entry .rail-intro-running .page-return .linea-back { animation: page-back-arrive 1s .3s both; }
  .page-return.is-arrival-complete::after { animation: none; background-size: 2px 100%, 100% 2px, 2px 100%; }
  .page-return.is-arrival-complete .page-return-title, .page-return.is-arrival-complete .linea-back { animation: none; opacity: 1; }
  .page-return:focus-within::after, .brand-entry .rail-intro-running .page-return:focus-within::after { animation: none; background-size: 2px 100%, 100% 2px, 2px 100%; }
  .page-return:focus-within .page-return-title, .page-return .linea-back:focus-visible, .brand-entry .page-return .linea-back:focus-visible { animation: none; opacity: 1; }
}
/* Sketch the left, top and right edges in sequence from the header rule. */
@keyframes page-tab-trace {
  0% { background-size: 2px 0, 0 2px, 2px 0; }
  35% { background-size: 2px 100%, 0 2px, 2px 0; }
  70% { background-size: 2px 100%, 100% 2px, 2px 0; }
  100% { background-size: 2px 100%, 100% 2px, 2px 100%; }
}
@keyframes page-back-arrive { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 651px) {
  body.has-sticky-return .division-rail-nav { top: calc(var(--header-h) + 14px); height: calc(100svh - var(--header-h) - 28px); max-height: calc(100svh - var(--header-h) - 28px); display: flex; flex-direction: column; }
  body.has-sticky-return .division-rail-nav ul { flex: 0 0 auto; margin-block: auto; }
}
.project-overview-return { display: none; }
.hero-media-card { padding: clamp(18px, 2vw, 28px); background: rgba(239, 238, 234, .9); color: #111; border: 1px solid #ffffff80; border-radius: 22px; backdrop-filter: blur(4px); }
.consultation-hero .consultation-hero-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(28px, 4vw, 64px); max-width: var(--content); opacity: 1; transform: none; }
.consultation-hero-copy { min-width: 0; }
.consultation-hero-copy h1 { font-size: clamp(38px, 4.4vw, 70px); }
.consultation-hero .consultation-sample { min-width: 0; margin: 0; padding: clamp(18px, 2vw, 28px); }
.consultation-hero .consultation-sample-copy { padding: 0; }
.consultation-hero .consultation-sample-copy h2 { margin: 18px 0 10px; font-size: clamp(22px, 2vw, 30px); line-height: 1.15; }
.consultation-hero .consultation-sample-description { margin: 0; font-size: 16px; line-height: 1.5; color: #333; }
.consultation-hero .consultation-video-placeholder { min-height: 0; aspect-ratio: 16 / 9; border-radius: 10px; color: white; padding: 24px; }
.consultation-hero .consultation-video-placeholder strong { font-size: clamp(18px, 1.7vw, 26px); }
.consultation-hero .consultation-mini-steps { margin-top: 20px; border-color: #bbb; }
.consultation-hero .consultation-mini-steps li { min-height: 48px; border-color: #bbb; color: #222; font-size: 14px; }
.consultation-hero .consultation-review-label { margin-top: 14px; }
.consultation-intake-copy { top: calc(var(--header-h) + var(--page-wayfinding-height, 110px) + 24px); }
@media (max-width: 1000px) { .consultation-hero .consultation-hero-layout { grid-template-columns: minmax(0, 1fr); } }
.specialized-service-panel, .architecture-service-panel, .sample-detail { background: #efeeea; border-color: #d5d2cd; }
.team-focus-layout { padding: clamp(24px, 4vw, 60px); background: #efeeea; border: 1px solid #d5d2cd; border-radius: var(--gray-panel-radius, 32px); gap: clamp(28px, 4vw, 64px); }
/* Image branding stays unobstructed; the work-type tab hangs below its red rule. */
.project-type-visual:not(.project-type-visual--media) { min-height: 0; overflow: visible; background: transparent; }
.project-type-visual:not(.project-type-visual--media)::after { display: none; }
.project-type-visual:not(.project-type-visual--media) > img { display: block; border-bottom: 3px solid var(--red); filter: none; }
.project-type-visual:not(.project-type-visual--media) > figcaption { position: relative; inset: auto; width: fit-content; min-width: 0; max-width: 100%; box-sizing: border-box; border-radius: 0; background: var(--red); background-image: linear-gradient(155deg, #ffffff14, transparent 46%), linear-gradient(180deg, #cc0000 0%, var(--red) 45%, #990000 100%); box-shadow: 0 6px 14px #0002, inset 0 1px 0 #fff4; }
.project-type-visual:not(.project-type-visual--media) > figcaption span { font-size: 12px; }
.project-type-visual:not(.project-type-visual--media) > figcaption strong { overflow-wrap: anywhere; }
@media (min-width: 901px) {
  .focus-viewer .focus-rail, .project-route-rail, .portfolio-route-rail { clip-path: inset(var(--content-rail-clip, 0px) -6px -6px -6px); }
}
main .eyebrow.page-context-label, main .section-inner > .eyebrow:not([data-section-label]), main .page-hero-content > .eyebrow, main .hero-content > .eyebrow, main .architecture-stages-copy > .eyebrow { display: none; }
html body main :is([id], [data-focus-panel]) { scroll-margin-top: calc(var(--header-h) + var(--page-wayfinding-height, 110px) + 24px); }
.linea-back { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; max-width: 100%; padding: 8px 0; border: 0; background: transparent; color: #c00000; font: inherit; font-size: 1rem; font-weight: 700; line-height: 1.4; text-align: left; text-transform: none; letter-spacing: .025em; cursor: pointer; text-decoration: none; }
.page-return .linea-back { display: flex; align-items: center; justify-content: center; gap: 8px; width: fit-content; max-width: 100%; pointer-events: auto; padding: 4px 0; margin: 0 auto; font-size: 14px; font-weight: 600; color: var(--red); }
.page-return .linea-back:hover, .page-return .linea-back:focus-visible { color: #8a0000; text-decoration: underline; text-underline-offset: 4px; }
.page-return .linea-back:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; border-radius: 3px; }
.page-return .return-arrow { flex-basis: 24px; width: 24px; }
.linea-back[hidden] { display: none; }
.return-name { text-decoration: none; overflow-wrap: anywhere; }
.return-arrow { display: block; position: relative; width: 42px; height: 2px; background: currentColor; flex: 0 0 42px; }
.return-arrow::before { content: ''; position: absolute; left: 0; top: -4px; width: 10px; height: 10px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.linea-back:hover { color: #8a0000; }
.project-overview-return .project-back.linea-back { color: #c00000; font-size: 1rem; }
.project-overview-return .project-back.linea-back:hover { color: #8a0000; }
.linea-back:focus-visible { outline: 3px solid #c00000; outline-offset: 4px; }
.focus-viewer-toolbar { flex-direction: row-reverse; justify-content: space-between; }
.focus-viewer-toolbar .eyebrow { display: none; }
.numbered-heading { display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); margin: 20px 0; }
.numbered-heading h2, .numbered-heading h3 { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.current-item-number { display: inline-grid; place-items: center; flex: 0 0 auto; box-sizing: border-box; width: 1.8em; height: 1.8em; padding: 0; border-radius: 0; background: #c00000; color: white; text-align: center; font-size: clamp(30px, 3vw, 52px); font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1; }
.page-heading-number { display: inline-grid; place-items: center; box-sizing: border-box; min-width: 1.8em; min-height: 1.8em; margin: 0 .34em .12em 0; padding: .12em .2em; vertical-align: middle; background: var(--red); color: #fff; font-family: var(--font-sans, Arial, sans-serif); font-size: clamp(24px, .62em, 48px); font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: 0; line-height: 1; white-space: nowrap; }
.page-heading-number[data-reference-length="4"], .page-heading-number[data-reference-length="5"], .page-heading-number[data-reference-length="6"] { font-size: clamp(18px, .42em, 30px); }
.page-heading-number[data-reference-length="4"] { min-width: max(2.4em, 62px); }
.page-heading-number[data-reference-length="5"] { min-width: max(2.8em, 76px); }
.page-heading-number[data-reference-length="6"] { min-width: max(3.2em, 90px); }
.project-file-heading h2 { margin: 0; min-width: 0; font-size: clamp(20px, 2vw, 30px); line-height: 1.15; overflow-wrap: anywhere; }
.eyebrow.page-context-label { color: #c00000; font-size: clamp(20px, 2vw, 30px); font-weight: 800; letter-spacing: .07em; line-height: 1.3; }
.knowledge-brand-type--red { text-transform: uppercase; }
.eyebrow.page-context-label.knowledge-brand-type { font-family: "Times New Roman", Times, serif; font-weight: 400; letter-spacing: -.025em; line-height: 1.1; }
body.nav-open .page-return { visibility: hidden; }
body.has-sticky-return :is(.focus-viewer-toolbar, .service-list-return, .sample-back, .taggart-preview-back, .portfolio-page-links a:first-child) { display: none; }
.knowledge-bio-link { border: 0; padding: 0; background: none; font: inherit; font-weight: 700; cursor: pointer; }
.page-context-label::before { flex-shrink: 0; }
@media (min-width: 601px) {
  .division-rail-nav ul { gap: 30px; }
  .division-rail-nav a[href="/forensics/"] { word-spacing: -.08em; }
}
.contact-form { padding: clamp(20px, 3vw, 42px); border: 1px solid #d5d2cd; border-radius: 22px; background: #efeeea; align-content: start; }
.contact-form-introduction { padding-bottom: 24px; margin-bottom: 4px; border-bottom: 1px solid #ccc8c1; }
.contact-form-introduction h2 { margin: 0 0 14px; color: #111; font-size: clamp(26px, 2.4vw, 36px); line-height: 1.1; letter-spacing: -.025em; }
.contact-form-introduction p { max-width: 65ch; margin: 0; color: #333; font-size: 1rem; line-height: 1.6; }
.contact-form-introduction .contact-form-reassurance { margin-top: 14px; color: #111; font-weight: 700; }
.contact-form .field :is(input:not([type="hidden"]), select, textarea) { min-height: 48px; border: 1px solid #aaa; border-radius: 6px; padding: 12px; background: #fff; color: #111; }
.contact-form .field textarea { min-height: 180px; }
.contact-form .field :is(input, select, textarea):is(:hover, :focus) { background: #c00000; color: #fff; border-color: #c00000; caret-color: #fff; }
.contact-form .field :is(input, select, textarea):focus-visible { outline: 3px solid #c00000; outline-offset: 3px; }
.contact-form .field :is(input, textarea):is(:hover, :focus)::placeholder { color: #fff; opacity: .9; }
.contact-form select option { background: #fff; color: #111; }
.contact-hero-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(480px, .8fr); align-items: center; gap: clamp(32px, 5vw, 80px); }
.contact-hero h1 { font-size: clamp(38px, 4.5vw, 72px); line-height: 1; }
.contact-hero { align-items: center; }
.contact-hero .page-hero-content { opacity: 1; transform: none; }
.contact-hero .hero-slide { filter: grayscale(1) brightness(.6) contrast(1.08); }
.contact-hero .hero-slide[data-treatment="selective-red"] { filter: brightness(.75) contrast(1.08); }
.contact-hero-invitation { font-size: 18px; line-height: 1.5; margin: 20px 0; }
.contact-quick-links { display: flex; align-items: center; flex-wrap: wrap; gap: 24px 48px; padding-bottom: 24px; margin-bottom: 36px; border-bottom: 1px solid #ffffff50; }
.contact-quick-links a { min-height: 44px; color: white; font-size: clamp(20px, 1.8vw, 28px); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.contact-quick-links a span:first-child { display: block; margin-bottom: 6px; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: #ff7777; }
.contact-quick-links a[href^="tel:"] { display: block; }
.contact-quick-links .contact-form-jump { font-size: 16px; margin-left: auto; }
.contact-quick-links a:hover { color: #ff7777; }
.contact-form-introduction .contact-form-availability { margin-top: 18px; }
a[href^="tel:"], .contact-fact .contact-phone-link { text-decoration: none; }
a[href^="tel:"]:hover { color: var(--red); }
.featured-project-panel { aspect-ratio: 1 / 1; border-radius: 0; display: block; }
.featured-project-panel > img { position: absolute; inset: 0; height: 100%; }
.featured-project-panel::before { position: absolute; inset: 0; }
.featured-project-panel-copy { position: relative; min-height: 100%; overflow: visible; gap: 10px; padding: clamp(14px, 1.4vw, 22px); }
.featured-project-panel-copy > .service-sample-note { display: none; }
#featured-projects .featured-project-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1000px) { #featured-projects .featured-project-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { #featured-projects .featured-project-list { grid-template-columns: 1fr; } }
.featured-project-panel-copy > p:not(.eyebrow):not(.service-sample-note) { display: none; }
.featured-project-panel h3 { font-size: clamp(20px, 1.8vw, 28px); }
.featured-project-panel-link { padding-top: 10px; min-height: 44px; }

/* A full-hero welcome film over the existing image; the copy survives playback. */
.page-hero.knowledge-hero--film { min-height: 100svh; padding-top: calc(var(--header-h) + 90px); padding-bottom: 80px; overflow-anchor: none; }
.knowledge-hero--film .knowledge-hero-layout { position: static; display: block; }
.knowledge-hero--film .knowledge-hero-content { max-width: 760px; transition: opacity .45s ease; }
.knowledge-hero--film .knowledge-hero-film { margin-top: 28px; }
.knowledge-hero--film:not(.knowledge-film-playing) { display: block; padding-left: calc(var(--linea-rail-x, 107px) + 24px); }
.knowledge-hero--film .knowledge-film-replay { margin-top: 24px; }
.knowledge-film-stage { position: absolute; z-index: 4; inset: var(--header-h) 0 0; background: #141414; opacity: 0; transition: opacity .45s ease; pointer-events: none; }
.knowledge-film-stage[hidden], .knowledge-film-replay[hidden] { display: none; }
.knowledge-film-stage video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: right center; }
.knowledge-film-playing .knowledge-film-stage { opacity: 1; pointer-events: auto; }
.knowledge-film-playing .knowledge-hero-content { opacity: 0; }
html body main > .knowledge-hero--film.knowledge-film-playing { height: 100svh; min-height: 100svh; padding: 0; }
.knowledge-film-playing .knowledge-hero-content { position: absolute; visibility: hidden; }
.knowledge-film-actions { position: absolute; z-index: 2; right: 22px; bottom: max(18px, env(safe-area-inset-bottom)); display: flex; gap: 10px; }
.knowledge-film-actions .btn { min-height: 44px; padding: 10px 16px; }
.knowledge-film-callouts { position: absolute; left: calc(var(--linea-rail-x, 107px) + 24px); top: 76px; width: min(420px, calc(100% - var(--linea-rail-x, 107px) - 48px)); pointer-events: none; }
.knowledge-film-callout { padding: 16px 20px 18px; background: rgb(248 247 243 / .96); color: #151515; border-left: 3px solid var(--red); box-shadow: 0 6px 24px #0002; }
.knowledge-film-callout[hidden], .knowledge-film-caption[hidden] { display: none; }
.knowledge-film-callout > div { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--red); padding-bottom: 6px; font-size: 10px; font-weight: 700; text-transform: uppercase; color: #a00000; }
.knowledge-film-callout p { margin: 10px 0 7px; font-size: clamp(21px, 2vw, 29px); line-height: 1.05; font-weight: 650; }
.knowledge-film-callout small { display: block; font-size: 12px; line-height: 1.35; }
.knowledge-film-caption { position: absolute; left: max(calc(var(--linea-rail-x, 107px) + 24px), 10%); right: 24px; bottom: 82px; width: fit-content; max-width: 900px; margin: 0 auto; padding: 10px 16px; color: white; background: rgb(0 0 0 / .85); font-size: clamp(16px, 1.5vw, 22px); line-height: 1.4; text-align: center; pointer-events: none; }
.knowledge-film-playing .knowledge-film-replay { display: none; }
/* One caption row above a separate, wrapping controls row. Natural grid flow
   prevents collisions at narrow widths, enlarged text and iOS safe areas. */
.knowledge-film-stage video::cue { color: transparent; background: transparent; text-shadow: none; }
.knowledge-film-footer { position: absolute; z-index: 2; left: max(calc(var(--linea-rail-x, 107px) + 24px), 10%); right: 22px; bottom: max(18px, env(safe-area-inset-bottom)); display: grid; gap: 12px; pointer-events: none; }
.knowledge-film-footer .knowledge-film-caption { position: static; left: auto; right: auto; bottom: auto; width: fit-content; max-width: 100%; box-sizing: border-box; margin: 0 auto; overflow-wrap: break-word; }
.knowledge-film-footer .knowledge-film-actions { position: static; right: auto; bottom: auto; max-width: 100%; flex-wrap: wrap; justify-content: flex-end; pointer-events: auto; }
@media (max-width: 650px) {
  .page-hero.knowledge-hero--film { padding-bottom: 40px; }
  /* Keep both speakers visible in portrait rather than cropping one away. */
  .knowledge-film-stage video { object-fit: contain; object-position: center; }
  .knowledge-film-actions { right: 14px; gap: 8px; }
  .knowledge-film-actions .btn { font-size: 11px; padding: 10px 12px; }
  .knowledge-film-callouts { top: 76px; left: calc(var(--linea-rail-x, 12px) + 18px); width: calc(100% - var(--linea-rail-x, 12px) - 36px); }
  .knowledge-film-callout { padding: 12px 14px; }
  .knowledge-film-callout p { font-size: 23px; }
  .knowledge-film-callout > div { font-size: 9px; }
  .knowledge-film-caption { left: calc(var(--linea-rail-x, 12px) + 18px); right: 14px; bottom: 80px; padding: 10px 12px; font-size: 16px; }
  .knowledge-film-footer { left: calc(var(--linea-rail-x, 12px) + 18px); right: 14px; }
}
@media (orientation: landscape) and (max-height: 550px) {
  .knowledge-film-stage video { object-fit: contain; object-position: center; }
  .knowledge-film-callouts { top: 14px; width: min(390px, calc(100% - var(--linea-rail-x, 107px) - 390px)); }
  .knowledge-film-callout { padding: 8px 12px; }
  .knowledge-film-callout > div { font-size: 8px; padding-bottom: 3px; }
  .knowledge-film-callout p { font-size: 18px; margin: 5px 0; }
  .knowledge-film-callout small { font-size: 10px; }
  .knowledge-film-caption { bottom: 72px; font-size: 14px; padding: 6px 10px; }
  .knowledge-film-actions { bottom: 12px; }
  .knowledge-film-actions .btn { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .knowledge-film-stage, .knowledge-hero--film .knowledge-hero-content { transition: none; }
}
.contact-hero .contact-consultation { box-sizing: border-box; width: 100%; max-width: 640px; aspect-ratio: 1; display: flex; flex-direction: column; justify-content: center; gap: 18px; margin: 0; padding: clamp(24px, 2vw, 32px); border: 1px solid var(--red); border-radius: 0; color: white; background: transparent; background-image: linear-gradient(155deg, #ffffff14, transparent 46%), linear-gradient(180deg, rgb(204 0 0 / .78) 0%, rgb(192 0 0 / .72) 45%, rgb(153 0 0 / .82) 100%); box-shadow: 0 6px 0 #760000, 0 24px 48px rgb(0 0 0 / .45), 8px 8px 18px rgb(0 0 0 / .24), inset 0 1px 0 #fff4, inset 1px 0 0 #fff2, inset -1px 0 0 #0002; }
.contact-consultation-icons { display: flex; gap: clamp(18px, 2vw, 30px); margin: 0; }
.contact-consultation-icons span { display: grid; gap: 8px; justify-items: start; flex: 1; min-width: 0; font-size: 14px; line-height: 1.25; }
.contact-consultation-icons svg { width: 42px; height: 42px; }
.contact-hero .contact-consultation h3 { margin: 0; font-size: clamp(28px, 2.5vw, 40px); line-height: 1.05; letter-spacing: -.03em; }
.contact-hero .contact-consultation p { margin: 0; font-size: 16px; line-height: 1.5; }
.contact-hero .contact-consultation .btn { width: 100%; background: #fff; color: #a00000; border-color: #fff; }
.contact-hero .contact-consultation .btn:hover { background: #efeeea; }
.contact-hero .contact-consultation .btn:focus-visible { outline: 3px solid white; outline-offset: 5px; }
html body main > :is(.interior-comparison-hero, .architecture-stages-hero)[data-page-intro] { padding-right: clamp(18px, 2vw, 36px); }
.interior-hero-layout { display: grid; width: 100%; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); align-items: center; gap: clamp(24px, 3vw, 48px); opacity: 1 !important; transform: none !important; }
.interior-hero-copy { min-width: 0; }
.interior-hero-copy, .architecture-stages-copy { padding-top: 0; }
.interior-comparison-hero h1 { font-size: clamp(38px, 4.7vw, 76px); line-height: .98; letter-spacing: -.055em; }
.interior-comparison-hero .summary { font-size: clamp(18px, 1.5vw, 24px); line-height: 1.5; }
.interior-hero-layout > .sketch-comparison { min-width: 0; margin: 0; }
@media (max-width: 1000px) { .interior-hero-layout { grid-template-columns: minmax(0, 1fr); } .interior-comparison-hero h1 { font-size: clamp(36px, 6vw, 58px); } }
.section.division-discipline { padding-top: clamp(38px, 4vw, 64px); padding-bottom: clamp(48px, 5vw, 80px); }
.division-discipline .sticky-label { position: static; }
.division-discipline .copy { margin-top: 0; color: #444; }
.division-discipline + .stats-grid { margin-top: 0; margin-bottom: 48px; }
@media (max-width: 1200px) { .contact-hero-layout { grid-template-columns: minmax(0, 1fr); } }
.specialized-service-panel > .service-portfolio-link { display: table; margin: 0 0 24px; }
@media (max-width: 600px) {
  :root { --page-hero-height: 100svh; --page-wayfinding-left: 68px; }
  .page-return-title { letter-spacing: .035em; }
  .linea-back { font-size: .875rem; }
  .numbered-heading { align-items: flex-start; gap: 14px; }
  .current-item-number { font-size: 28px; }
}

/* Narrower laptop and tablet windows need a separate navigation row. */
@media (min-width: 651px) and (max-width: 1399px) {
  .site-header, .site-header:has(.brand--division), .site-header:has(.page-return[hidden]) {
    grid-template-columns: var(--header-lockup-width) minmax(0, 1fr);
    grid-template-rows: auto auto; gap: 0 24px;
    padding: 12px var(--gutter) 8px;
  }
  .site-header > .menu-toggle { display: none; }
  .site-header > .brand { grid-column: 1; grid-row: 2; }
  .site-header > .site-nav, .site-header:has(.page-return[hidden]) > .site-nav {
    grid-column: 1 / -1; grid-row: 1; min-width: 0; margin: 0; padding: 0;
  }
  .site-header > .site-nav > ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 18px; padding: 30px 0 0; }
  .site-header .nav-item--knowledge { margin-inline-start: 0; padding-inline: 0; }
  .site-header .nav-client-login { display: none; }
  .site-header .page-return { grid-column: 2; grid-row: 2; width: min(370px, 100%); justify-self: start; }
  .site-header .header-breadcrumb { top: 6px; right: calc(var(--gutter) + var(--header-social-width, 136px) + 24px); }
  .site-header .header-social { position: absolute; top: 6px; right: var(--gutter); bottom: auto; margin: 0; gap: 8px; }
  .site-header .header-social a { width: 28px; height: 28px; }
  .site-header .nav-item--contact { position: static; }
  .site-header .page-share-panel { left: auto; right: var(--gutter); top: calc(100% + 8px); width: min(360px, calc(100vw - 44px)); }
  .site-header .knowledge-nav-panel { position: absolute; }
  .site-header.is-scrolled .brand img { filter: none; }
  .site-header.is-scrolled .brand-division-label { color: var(--ink); }
  .site-header.is-scrolled .brand-division-label--sage { color: #008000; }
  .site-header.is-scrolled .site-nav :is(.nav-link, .nav-trigger, .page-share, .knowledge-menu-toggle, .header-social a) { color: var(--ink); }
}
/* Wide laptops have room for one row once the tab is below the red rule. */
@media (min-width: 1400px) and (max-width: 1589px) {
  .site-header, .site-header:has(.brand--division), .site-header:has(.page-return[hidden]) {
    grid-template-columns: minmax(380px, 420px) minmax(0, 1fr);
    gap: 16px;
    padding-block: 10px;
  }
  .site-header > .site-nav, .site-header:has(.page-return[hidden]) > .site-nav {
    grid-column: 2; grid-row: 1; min-width: 0; margin: 0; padding: 0;
  }
  .site-header > .site-nav > ul { justify-content: flex-end; gap: 0 12px; }
  .site-header .nav-item--knowledge { margin-inline-start: 0; padding-inline: 0; }
  .site-header .nav-client-login { display: none; }
}
/* On desktop, the folder and horizontal navigation share the original header row. */
@media (min-width: 1590px) and (max-width: 1799px) {
  .site-header, .site-header:has(.brand--division) {
    grid-template-columns: var(--header-lockup-width) clamp(320px, 24vw, 370px) minmax(0, 1fr);
    gap: 16px;
  }
  .site-header > .site-nav { grid-column: 3; grid-row: 1; min-width: 0; margin: 0; padding: 0; }
  .site-header > .site-nav > ul { gap: clamp(12px, 1vw, 18px); }
  .site-header .nav-item--knowledge { margin-inline-start: 0; padding-inline: 0; }
  .site-header .page-return { grid-column: 2; grid-row: 1; width: 100%; }
}
/* At narrower tablet widths the tab takes its own full-width row. */
@media (min-width: 651px) and (max-width: 900px) {
  .site-header > .site-nav > ul { justify-content: center; gap: 0 20px; }
  .site-header .header-breadcrumb { left: var(--gutter); }
  .site-header .page-return { grid-column: 1 / -1; grid-row: 3; justify-self: center; }
}
@media (max-width: 650px) {
  .site-header > .site-nav { grid-area: auto; }
  .site-header > .site-nav > ul { gap: 0; }
  body.nav-open .site-header > .site-nav.is-open { background: var(--paper); border-bottom: 2px solid var(--red); }
  body.nav-open :is(.division-rail-nav, .focus-rail, .project-route-rail, .portfolio-route-rail) { visibility: hidden; pointer-events: none; }
}
@media (max-width: 650px) {
  .site-header, .site-header:has(.brand--division), .site-header:has(.page-return[hidden]) { grid-template-columns: minmax(0, 1fr) 46px; grid-template-rows: auto auto; gap: 4px 12px; }
  .site-header .page-return { grid-column: 1 / -1; grid-row: 2; justify-self: center; width: min(300px, calc(100% - 32px)); margin-top: 4px; padding: 6px 14px 0; }
  .site-header .page-return-title { min-height: 20px; line-height: 1.05; }
  .site-header .page-return .linea-back { min-height: 30px; padding: 0; line-height: 1.1; }
  .site-header .page-return { height: 72px; min-height: 72px; max-height: 72px; grid-template-rows: 32px 30px; gap: 2px; padding-block: 6px 2px; }
  .site-header .page-return .linea-back { height: 30px; min-height: 30px; }
  .site-header > .menu-toggle { grid-column: 2; grid-row: 1; }
}
@media (max-width: 650px) {
  body::after { left: calc(var(--linea-rail-x) + var(--linea-rail-width) / 2); }
  .site-header, .site-header:has(.brand--division) { --header-base-height: 76px; padding: 10px 18px 8px 24px; border-bottom-color: var(--red); }
  .site-header .page-return { width: 100%; margin-bottom: -8px; padding: 5px 12px 0; }
  .site-header .page-return-title { font-size: 20px; }
  body.has-sticky-return .linea-rail { inset: var(--header-h) auto 0 var(--linea-rail-x); width: var(--linea-rail-width); height: auto; transform: none; clip-path: inset(0); }
  .motion-enabled body.has-sticky-return.rail-intro-pending .linea-rail { opacity: 0; clip-path: inset(0 0 100% 0); }
  .motion-enabled body.has-sticky-return.rail-intro-running .linea-rail { opacity: 1; animation: page-phone-rail-draw var(--rail-draw-duration, 4500ms) linear both; }
  .site-header .brand--division { grid-column: 1; grid-row: 1; }
  .site-header:has(.brand--division) > .menu-toggle { grid-column: 2; grid-row: 1; }
  .site-header:has(.brand--division) > .page-return { grid-row: 2; }
  .page-return .linea-back { font-size: 14px; gap: 8px; }
  .page-return .return-arrow { flex-basis: 24px; width: 24px; }
  .site-header .page-return { padding-block: 6px 2px; }
}
@keyframes page-phone-rail-draw { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0); } }

/* A compact drafting tab keeps its number, title and return link in one graphic unit. */
.site-header .page-return { --reference-size: 52px; grid-template-columns: max-content minmax(0, 1fr); grid-template-rows: auto; align-items: center; gap: 0; padding: 6px; height: 64px; min-height: 64px; max-height: 64px; }
.site-header .page-reference { display: grid; place-items: center; min-width: var(--reference-size); width: max-content; height: var(--reference-size); padding-inline: 8px; background: var(--red); color: #fff; font-size: 26px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.site-header .page-return-details { display: grid; grid-template-rows: 21px 21px; align-content: center; gap: 2px; min-width: 0; padding-left: 12px; text-align: left; }
.site-header .page-return .page-return-title { justify-content: flex-start; height: 21px; min-height: 21px; font-size: 13px; line-height: 1.2; }
.site-header .page-return .page-title-text { white-space: nowrap; overflow-wrap: normal; text-wrap: nowrap; }
.site-header .page-return .page-title-text { text-align: left; }
.site-header .page-return .linea-back { justify-content: flex-start; height: 21px; min-height: 21px; margin-left: 0; font-size: 13px; line-height: 1.2; white-space: nowrap; }
.site-header .page-return .linea-back > span:last-child { overflow-wrap: normal; }
@media (max-width: 650px) {
  .site-header .page-return { --reference-size: 44px; padding: 8px; min-height: 60px; height: 60px; max-height: 60px; }
  .site-header .page-reference { font-size: 24px; }
  .site-header .page-return { width: calc(100% + 42px); justify-self: start; margin-left: -24px; }
  .site-header .page-return .linea-back { gap: 6px; min-width: 0; }
  .site-header .page-return .return-arrow { flex-basis: 20px; width: 20px; }
}
@media (max-width: 360px) {
  .site-header .page-return { height: auto; min-height: 60px; max-height: none; }
  .site-header .page-return-details { grid-template-rows: auto auto; }
  .site-header .page-return .page-return-title,
  .site-header .page-return .linea-back { height: auto; min-height: 22px; white-space: normal; }
  .site-header .page-return .page-title-text,
  .site-header .page-return .linea-back > span:last-child { white-space: normal; text-wrap: wrap; overflow-wrap: normal; }
}

/* Bracketed division labels sit beside the A, with phone sizing that clears the menu. */
/* Decimal wayfinding retains square geometry without squeezing the labels. */
.site-header .page-reference { font-size: 20px; white-space: nowrap; }
.focus-rail-control .service-rail-number[data-decimal-reference],
.panel-strip .focus-rail-control .service-rail-number[data-decimal-reference] { font-size: 32cqw; letter-spacing: -.04em; white-space: nowrap; }
.focus-rail-control .service-rail-number[data-reference-length="5"],
.panel-strip .focus-rail-control .service-rail-number[data-reference-length="5"],
.focus-rail-control .service-rail-number[data-reference-length="6"],
.panel-strip .focus-rail-control .service-rail-number[data-reference-length="6"] { font-size: 25cqw; }
.current-item-number[data-decimal-reference], .project-file-number[data-decimal-reference] { width: 80px; height: 80px; font-size: 24px; white-space: nowrap; }
.portfolio-entry-reference { position: absolute; z-index: 2; top: 18px; left: 18px; display: grid; place-items: center; width: 112px; height: 112px; background: rgb(192 0 0 / 76%); color: #fff; font-size: 46px; font-weight: 800; flex: 0 0 auto; }
@media (max-width: 720px) { .portfolio-entry-reference { top: 14px; left: 14px; width: 88px; height: 88px; font-size: 36px; } }
.site-header .brand .brand-division-label,
body.nav-open .site-header .brand .brand-division-label,
.site-header.is-scrolled .brand.is-on-dark .brand-division-label {
  left: calc(100% + 8px); right: auto; bottom: 5%; max-width: none;
  color: var(--red); font-family: Arial, sans-serif; font-size: 14px;
  font-weight: 400; line-height: 1.1; text-align: left; white-space: nowrap;
}
@media (max-width: 650px) {
  .site-header .brand .brand-division-label,
  body.nav-open .site-header .brand .brand-division-label,
  .site-header.is-scrolled .brand.is-on-dark .brand-division-label {
    font-size: 11px;
  }
}
@media (max-width: 360px) {
  .site-header .brand { --header-brand-width: 120px; width: min(120px, 100%); }
  .site-header .brand .brand-division-label,
  body.nav-open .site-header .brand .brand-division-label,
  .site-header.is-scrolled .brand.is-on-dark .brand-division-label { font-size: 10px; }
}

/* The four home divisions use the shared focus transition, with readable grey
   selectors beside the selected division instead of the narrow site rail. */
.focus-collection--home-divisions [data-focus-grid][hidden],
.focus-collection--home-divisions [data-focus-viewer][hidden],
.focus-collection--home-divisions [data-focus-panel][hidden] { display: none; }
.home-division-viewer { display: grid; grid-template-columns: minmax(150px, 210px) minmax(0, 1fr); gap: 0 clamp(20px, 3vw, 48px); min-height: 0; }
body.has-sticky-return .home-divisions .home-division-viewer .focus-viewer-toolbar,
.home-divisions .home-division-viewer .focus-viewer-toolbar { display: flex; grid-column: 1 / -1; }
.home-division-viewer .focus-viewer-toolbar .eyebrow { display: block; color: white; }
.home-division-viewer .focus-viewer-close { color: white; }
.home-division-viewer .focus-viewer-close:hover, .home-division-viewer .focus-viewer-close:focus-visible { color: #ff7070; }
.home-division-viewer .focus-stage { grid-column: 2; padding-top: 24px; }
.focus-viewer .focus-rail.home-division-rail { position: static; inset: auto; z-index: 1; display: block; width: auto; max-height: none; margin: 24px 0 0; padding: 0; overflow: visible; background: transparent; border: 0; box-shadow: none; clip-path: none; scroll-margin-top: calc(var(--header-h) + 28px); }
.home-division-index { display: block; margin-bottom: 12px; color: var(--red); font-size: 26px; font-weight: 800; }
.home-division-rail .focus-rail-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.focus-rail.home-division-rail .focus-rail-control { display: grid; place-items: center; width: 100%; min-height: 86px; padding: 12px; background: #e9e8e4; border: 1px solid #bdbbb6; border-radius: 6px; color: #222; font-size: clamp(13px, 1.3vw, 17px); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; text-align: center; text-transform: none; }
.focus-rail.home-division-rail .focus-rail-control:hover,
.focus-rail.home-division-rail .focus-rail-control:focus-visible { background: #d9d8d4; border-color: var(--red); }
.focus-rail.home-division-rail .focus-rail-control.is-active { background: #bdbbb6; border: 2px solid var(--red); color: #111; }
.home-division-panel { background: #e9e8e4; color: #111; }
.home-division-panel > img { display: block; width: 100%; max-height: 430px; aspect-ratio: 16 / 9; object-fit: cover; }
.home-division-panel > div { padding: clamp(24px, 3vw, 48px); }
.home-division-panel h3 { margin: 0 0 16px; font-size: clamp(34px, 4vw, 60px); line-height: 1.02; }
.home-division-panel p:not(.eyebrow) { max-width: 700px; font-size: clamp(18px, 1.7vw, 24px); line-height: 1.4; }
.home-division-panel .btn { margin-top: 20px; }
@media (max-width: 750px) {
  .home-division-viewer { grid-template-columns: minmax(0, 1fr); }
  .home-division-viewer .focus-stage { grid-column: 1; padding-top: 12px; }
  .focus-viewer .focus-rail.home-division-rail { margin-top: 18px; }
  .home-division-rail .focus-rail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .focus-rail.home-division-rail .focus-rail-control { min-height: 70px; }
}

/* The fixed header is the phone menu's containing block on Safari. Keep the
   expanded panel anchored to its full width, not to a 46px grid track. */
@media (max-width: 650px) {
  .site-header > .site-nav,
  .site-header:has(.page-return[hidden]) > .site-nav {
    position: absolute;
    inset: 100% 0 auto;
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    max-height: calc(100dvh - var(--header-h));
    box-sizing: border-box;
  }
  .site-header:has(.page-return:not([hidden])) {
    grid-template-rows: 60px;
    align-content: center;
  }
  .site-header .page-return:not([hidden]) {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
    width: min(330px, 100%);
    margin: 0;
  }
}

/* The same drafting tab now hangs below the header rule, without joining its grid. */
.site-header .page-return:not([hidden]) {
  position: absolute;
  top: 100%;
  left: calc(var(--gutter) + var(--header-lockup-width) + clamp(16px, 1.5vw, 28px));
  width: var(--page-tab-width);
  margin: 0;
  align-self: auto;
  justify-self: auto;
  grid-column: auto;
  grid-row: auto;
}
@media (min-width: 1800px) {
  .site-header .page-return:not([hidden]) { width: var(--desktop-page-tab-width); }
}
@media (min-width: 1590px) and (max-width: 1799px) {
  .site-header .page-return:not([hidden]) { left: calc(var(--gutter) + var(--header-lockup-width) + 16px); width: clamp(320px, 24vw, 370px); }
}
@media (min-width: 901px) and (max-width: 1589px) {
  .site-header .page-return:not([hidden]) { left: calc(var(--gutter) + var(--header-lockup-width) + 24px); width: min(370px, calc(100% - var(--gutter) - var(--gutter) - var(--header-lockup-width) - 24px)); }
}
@media (min-width: 651px) and (max-width: 900px) {
  .site-header .page-return:not([hidden]) { left: 50%; width: min(370px, calc(100% - var(--gutter) - var(--gutter))); transform: translateX(-50%); }
}
@media (max-width: 650px) {
  .site-header .page-return:not([hidden]) { left: 50%; width: min(330px, calc(100% - 32px)); transform: translateX(-50%); }
}

/* Right-hand study: the red tab drops from the header rule while the header
   itself keeps its background-responsive transparency. */
.site-header .knowledge-nav-panel {
  position: fixed;
  top: calc(var(--header-h) + 8px);
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  pointer-events: auto;
}
@media (min-width: 651px) and (max-width: 1200px) {
  .site-header .knowledge-nav-panel { top: calc(var(--header-h) + 76px); }
}
@media (max-width: 650px) {
  .site-header .knowledge-nav-panel {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    transform: none;
  }
}
/* The mobile logo opens the same panel below the header, above the video. */
.site-header:has(> .knowledge-nav-panel:not([hidden])) { z-index: 150; pointer-events: auto; }
@media (max-width: 650px), (max-width: 1024px) and (max-height: 500px) and (orientation: landscape) {
  html body .site-header > .knowledge-nav-panel {
    position: fixed; top: calc(var(--header-h) + 8px); left: 12px; right: 12px;
    width: auto; box-sizing: border-box; margin: 0; padding: 28px 24px;
    max-height: calc(100dvh - var(--header-h) - 24px); overflow-y: auto;
    transform: none; z-index: 140; pointer-events: auto;
  }
  html body .site-header > .knowledge-nav-panel .knowledge-menu-close {
    position: absolute; top: 6px; right: 8px; float: none;
    min-width: 44px; min-height: 44px; margin: 0;
  }
}
.site-header .page-return:not([hidden]) {
  left: auto;
  right: 0;
  width: clamp(320px, 24vw, 370px);
  transform: none;
}
.site-header .page-return::before,
.site-header.is-scrolled .page-return::before,
.site-header.is-scrolled:not(.is-on-light) .page-return::before {
  background: var(--red);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 8px 20px rgb(0 0 0 / .22);
}
.site-header .page-return::after {
  content: none;
}
.site-header .page-reference {
  box-sizing: border-box;
  border: 2px solid #fff;
  background: transparent;
  color: #fff;
}
.site-header .page-return :is(.page-return-title, .linea-back),
.site-header.is-scrolled .page-return :is(.page-return-title, .linea-back) {
  color: #fff;
}
.site-header .page-return .linea-back:is(:hover, :focus-visible) { color: #ffe06a; }
.site-header .page-return .linea-back:focus-visible { outline-color: #fff; }
@media (max-width: 900px) {
  .site-header .page-return:not([hidden]) { width: min(370px, calc(100% - 16px)); }
}
@media (max-width: 650px) {
  .site-header .page-return:not([hidden]) { width: min(330px, calc(100% - 16px)); }
}
@media (prefers-reduced-motion: no-preference) {
  .site-header .page-return:not([hidden]) { animation: page-tab-drop 1.1s 100ms cubic-bezier(.22,1,.36,1) both; }
  .brand-entry .site-header .page-return:not([hidden]) { animation: none; clip-path: inset(0 0 100% 0); }
  .brand-entry .rail-intro-running .site-header .page-return:not([hidden]) { animation: page-tab-drop 1.1s 0ms cubic-bezier(.22,1,.36,1) both; }
  .site-header .page-return:not([hidden]).is-arrival-complete,
  .site-header .page-return:not([hidden]):focus-within { animation: none; clip-path: inset(0); }
  .site-header .page-return::after,
  .brand-entry .site-header .page-return::after,
  .brand-entry .rail-intro-running .site-header .page-return::after { animation: none; }
}
@keyframes page-tab-drop {
  from { clip-path: inset(0 0 100% 0); }
  to { clip-path: inset(0); }
}

/* The video library hero fills the viewport without the text-hero bottom band. */
.page-videos main .page-hero.videos-hero[data-page-intro] { height:100svh; min-height:0; padding-bottom:0; }

/* Short phone landscape viewports need one shallow header row, not the
   wrapped desktop navigation. Preserve the independent left division rail. */
@media (max-width: 1024px) and (max-height: 500px) and (orientation: landscape) {
  html { --header-base-height: 60px; --header-h: 60px; }
  html body .site-header,
  html body .site-header:has(.brand--division),
  html body .site-header:has(.page-return[hidden]) {
    --header-base-height: 60px;
    --header-lockup-width: 140px;
    grid-template-columns: minmax(0, 1fr) 44px;
    grid-template-rows: 44px;
    align-content: center;
    gap: 0 16px;
    height: 60px; min-height: 60px;
    padding: 6px max(16px, env(safe-area-inset-right)) 7px max(24px, env(safe-area-inset-left));
    background: var(--paper); color: var(--ink);
    transition: transform .2s ease;
  }
  html body .site-header > .brand { grid-column: 1; grid-row: 1; --header-brand-width: 140px; width: 140px; max-height: 44px; margin: 0; opacity: 1; visibility: visible; transform: none; }
  html body .site-header .brand img,
  html body .site-header .brand.is-on-dark img { filter: none; }
  html body .site-header .brand .brand-division-label { color: var(--red); font-size: 10px; }
  html body .site-header > .menu-toggle { display: flex; grid-column: 2; grid-row: 1; width: 44px; height: 44px; min-height: 44px; margin: 0; color: var(--ink); background: transparent; }
  html body .site-header > :is(.header-breadcrumb, .mobile-view-note, .page-return) { display: none; }
  html body .site-header > .site-nav,
  html body .site-header:has(.page-return[hidden]) > .site-nav {
    position: absolute; inset: 100% 0 auto; grid-column: auto; grid-row: auto;
    width: 100%; min-width: 0; max-height: calc(100dvh - 60px);
    margin: 0; padding: 12px max(24px, env(safe-area-inset-right)) 24px max(24px, env(safe-area-inset-left));
    overflow-y: auto; overscroll-behavior: contain; box-sizing: border-box;
    background: var(--paper); color: var(--ink); border-bottom: 2px solid var(--red);
    opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px);
  }
  html body .site-header > .site-nav.is-open,
  html body .site-header:has(.page-return[hidden]) > .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  html body.nav-open .site-header { pointer-events: auto; }
  html body .site-header > .site-nav > ul { display: grid; justify-content: stretch; gap: 0; padding: 0; }
  .site-header .site-nav :is(.nav-link, .nav-trigger) { display: flex; align-items: center; width: 100%; min-height: 44px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 15px; color: var(--ink); }
  .site-header .nav-submenu { position: static; display: none; min-width: 0; padding: 5px 0 12px 14px; background: transparent; color: var(--ink); box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .site-header .nav-item.is-open .nav-submenu { display: block; }
  html body .site-header .header-social { position: static; justify-content: flex-start; margin: 16px 0 0; gap: 16px; }
  .site-header .header-social a { min-width: 44px; min-height: 44px; }
  .site-header .nav-item--knowledge { justify-content: flex-start; }
  .site-header .nav-link--knowledge img { width: 36px; height: 48px; }
  .mobile-collection-menu { display: grid; gap: 0; margin-bottom: 12px; }
  .mobile-collection-menu summary, .mobile-utility-menu summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-weight: 800; }
  .mobile-collection-heading { margin: 0; min-height: 44px; padding: 12px 0; font: inherit; font-weight: 800; }
  .mobile-collection-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; padding: 0 0 12px; }
  .mobile-collection-options :is(a, button) { display: block; min-height: 44px; padding: 12px 8px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; font: inherit; text-align: left; }
  .mobile-collection-options [aria-current='page'] { color: var(--red); font-weight: 800; }
  body.nav-open :is(.division-rail-nav, .focus-rail, .project-route-rail, .portfolio-route-rail) { visibility: hidden; pointer-events: none; }
  body.landscape-header-hidden:not(.nav-open) .site-header:not(:has(:focus-visible)) { transform: translateY(-100%); }
  body.landscape-header-hidden .linea-rail { top: 0; }
  body.landscape-header-hidden::after { top: 0; }
  body.landscape-header-hidden.has-sticky-return .division-rail-nav { top: 14px; height: calc(100svh - 28px); max-height: calc(100svh - 28px); }
  .hero .walking-welcome { padding: 8px 0 56px; }
  .hero .walking-welcome-copy { gap: 8px; }
  .hero .walking-countdown { width: 64px; font-size: 42px; }
  .hero .walking-welcome-copy p { font-size: 20px; }
  .hero .walking-welcome-logo { width: 140px; }
  /* Square cards cannot force the narrow landscape grid wider than the phone. */
  .division-card { aspect-ratio: auto; }
}
@media (max-width: 1024px) and (max-height: 500px) and (orientation: landscape) and (prefers-reduced-motion: reduce) {
  html body .site-header { transition: none; }
}

/* Keep the original logo colors and usable controls on the phone's light
   glass header. The shared phone rule below owns scroll transparency. */
@media (max-width: 650px) and (orientation: portrait) {
  html body .site-header.is-scrolled,
  html body .site-header.is-scrolled.is-on-light {
    color: var(--ink);
    pointer-events: auto;
  }
  html body .site-header.is-scrolled .brand img,
  html body .site-header.is-scrolled .brand.is-on-dark img { filter: none; }
  html body .site-header.is-scrolled .brand .brand-division-label { color: var(--red); }
  html body .site-header.is-scrolled .brand:focus-visible { outline-color: var(--red); }
  html body .site-header.is-scrolled .menu-toggle {
    color: var(--ink);
    background: transparent;
    backdrop-filter: none;
  }
}

/* A quiet phone-only note below the logo/menu row. Natural height lets large
   text wrap; the existing header observer reserves its full space for heroes. */
@media (max-width: 650px), (max-width: 1024px) and (max-height: 500px) and (orientation: landscape) {
  html body .site-header,
  html body .site-header:has(.brand--division),
  html body .site-header:has(.page-return[hidden]),
  html body .site-header:has(.page-return:not([hidden])) { height: auto; grid-template-rows: auto auto; }
  html body .site-header > .mobile-view-note,
  html body .site-header:has(.brand--division) > .mobile-view-note,
  html body .site-header.is-scrolled > .mobile-view-note,
  html body .site-header.is-scrolled:not(.is-on-light) > .mobile-view-note,
  html body .site-header.is-scrolled.is-on-light > .mobile-view-note {
    display: block;
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 4px 0 0;
    padding: 8px 0 2px;
    border-top: 1px solid #c9c8c3;
    color: #444;
    -webkit-text-fill-color: currentColor;
    opacity: 1;
    visibility: visible;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
    overflow-wrap: break-word;
  }
  html body .site-header:has(> .mobile-view-note) { background: #ecebe7; }
  html body .site-header.is-scrolled:has(> .mobile-view-note),
  html body .site-header.is-scrolled.is-on-light:has(> .mobile-view-note) {
    background: rgba(236,235,231,.78);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    pointer-events: auto;
  }
  html body.nav-open .site-header:has(> .mobile-view-note) { background: #ecebe7; }
}

/* Keep the mobile divisions beside the red line after the introduction.
   Preserve natural scrolling for the complete hero message and enlarged text. */
@media (max-width: 650px) and (orientation: portrait) {
  html body main > .hero.hero--knowledge-slideshow[data-page-intro]:not(.is-walking-intro-active):has(> .mobile-hero-divisions) {
    min-height: 100svh;
    height: auto;
    padding-top: calc(var(--header-h) + 18px);
    padding-bottom: 80px;
    justify-content: flex-start;
  }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-summary { margin-top: 16px; font-size: 16px; line-height: 1.35; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-summary-continuation { margin-top: 0; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; gap: 8px; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-actions .btn { min-height: 48px; padding: 8px; font-size: 10px; letter-spacing: .04em; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-slide-captions { margin-top: 12px; padding: 8px 10px; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-slide-project { margin: 0; font-size: 10px; line-height: 1.3; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-slide-caption { margin: 4px 0 0; font-size: 12px; line-height: 1.3; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) > .hero-slideshow-controls { margin-top: 12px; gap: 8px; flex-wrap: nowrap; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-slideshow-toggle { flex: 0 0 auto; padding: 8px; font-size: 11px; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-slideshow-selectors { min-width: 0; flex-wrap: nowrap; overflow-x: auto; padding: 4px; }
  .hero.hero--knowledge-slideshow:not(.is-walking-intro-active) .hero-slideshow-selectors button { flex: 0 0 44px; }
}
