.page-share { position: static; flex: 0 0 44px; z-index: 150; font-size: 14px; pointer-events: auto; color: inherit; }
.page-share > summary { display: flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; cursor: pointer; list-style: none; padding: 0; color: inherit; background: transparent; border: 0; box-shadow: none; }
.page-share > summary::-webkit-details-marker { display: none; }
.page-share > summary:hover, .page-share > summary:focus-visible, .page-share[open] > summary { color: var(--red); text-decoration: underline; text-underline-offset: 5px; outline-offset: 3px; }
.site-header.is-scrolled:not(.is-on-light) .page-share { color: white; }
.site-header.is-scrolled:not(.is-on-light) .page-share > summary:hover, .site-header.is-scrolled:not(.is-on-light) .page-share > summary:focus-visible { color: #ff5a52; }
.page-share-panel { position: absolute; right: 0; top: calc(100% + 12px); width: min(360px, calc(100vw - 36px)); max-height: calc(100dvh - var(--header-h) - 24px); overflow-y: auto; padding: 22px; color: var(--ink); background: var(--white); border: 1px solid var(--line); box-shadow: 0 8px 32px #0002; }
.page-share-close { float: right; min-width: 44px; min-height: 44px; margin: -12px -12px 0 0; background: transparent; color: #111; border: 0; font-size: 24px; cursor: pointer; }
.page-share-panel p { margin: 12px 0; }
.page-share-floating .page-share-drag-bar{position:sticky;top:-20px;background:#c00000;z-index:2}
.activity-report-table{border-collapse:collapse;width:100%;margin-top:24px;font-size:14px}.activity-report-table :is(th,td){padding:12px;border:1px solid #ccc;text-align:left;overflow-wrap:anywhere}.activity-report-table th{background:#eee}
.website-activity-preferences{flex-basis:100%;max-width:800px;font-size:13px;line-height:1.6;margin-top:20px}.website-activity-preferences summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.website-activity-preferences button{min-height:44px;margin-right:8px;padding:8px 12px;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer}
.page-share-floating{position:fixed!important;inset:auto;right:auto!important;left:12px;top:12px;width:min(380px,calc(100vw - 24px))!important;max-height:calc(100dvh - 24px);box-sizing:border-box;z-index:1000;background:#c00000;color:#fff;border:1px solid #fff6;box-shadow:0 12px 44px #0005;overflow:auto;padding:20px}
.page-share-floating[hidden]{display:none!important}.page-share-drag-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #fff6;margin-bottom:16px}.page-share-drag-bar [data-share-drag]{min-height:44px;flex:1;display:flex;align-items:center;justify-content:space-between;gap:20px;border:0;background:none;color:inherit;font:inherit;font-weight:800;text-align:left;cursor:move;touch-action:none}.page-share-floating .page-share-close{float:none;margin:0;color:#fff}.page-share-floating .page-share-options :is(a,button){color:#fff;border-color:#fff6}.page-share-floating .page-share-options :is(a,button):hover{color:#fff;border-color:#fff}.page-share-floating .page-share-link input{color:#111;background:#fff;box-sizing:border-box}.page-share-floating :focus-visible{outline:3px solid #fff;outline-offset:3px}
.page-share-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.page-share-options a, .page-share-options button { display: flex; align-items: center; min-height: 44px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; padding: 8px 0; text-align: left; }
.page-share-options :is(a, button):hover, .page-share-options :is(a, button):focus-visible { color: var(--red); border-bottom-color: var(--red); }
.page-share-options [data-share-native] { grid-column: 1 / -1; }
.page-share-options [hidden] { display: none; }
.page-share-options [aria-disabled], .page-share-options :disabled { opacity: .5; cursor: default; }
.page-share-link { display: block; margin-top: 18px; }
.page-share-link input { display: block; width: 100%; margin-top: 6px; padding: 10px; border: 1px solid #bbb; font-size: 14px; }
.page-share-help, [data-share-status] { font-size: 13px; line-height: 1.5; }
.page-share-options .page-share-sms { display: none; }
@media (pointer: coarse) { .page-share-options .page-share-sms { display: flex; } }
.services-introduction { max-width: 880px; margin: 24px 0 64px; }
.specialized-service-list { margin: 0 0 56px; padding: clamp(20px, 3vw, 36px); background: #efeeea; border: 1px solid #ccc; border-radius: var(--gray-card-radius, 22px); scroll-margin-top: 130px; }
.specialized-service-list > h3 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.12; margin: 0 0 28px; }
.service-list-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 28px; }
.service-list-groups a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; min-height: 44px; font-size: 16px; border-bottom: 1px solid #ccc; text-decoration: none; }
.catalogue-group { scroll-margin-top: calc(var(--header-h) + 24px); }
.catalogue-group:focus { outline: none; }
.service-list-groups a:hover, .service-list-groups a:focus-visible { color: #c00000; }
.service-list-return { display: inline-flex; min-height: 44px; align-items: center; margin: 0 0 20px; font-size: 16px; text-underline-offset: 5px; }
.sage-login-preview { margin-top: 32px; }
.sage-login-preview > summary { cursor: pointer; width: fit-content; list-style: none; }
.sage-login-preview > summary::-webkit-details-marker { display: none; }
.sage-login-preview > summary:focus-visible { outline: 3px solid #008000; outline-offset: 4px; }
.sage-login-panel { margin-top: 20px; padding: clamp(20px, 3vw, 32px); border: 1px solid #ccc; border-radius: var(--gray-card-radius, 22px); background: #efeeea; max-width: 520px; }
.sage-login-panel h3 { font-size: 30px; margin: 16px 0; }
.sage-login-panel p, .sage-login-panel label { font-size: 16px; line-height: 1.5; }
.sage-login-panel label { display: block; margin-top: 24px; }
.sage-login-panel input { display: block; width: 100%; padding: 14px; margin: 8px 0 20px; color: #555; background: #fff; border: 1px solid #888; }
.sage-login-panel button:disabled { opacity: .65; cursor: not-allowed; }
.sage-login-note { font-size: 14px; color: #555; margin-top: 12px; }
/* Display focus preserves the unaltered source studies in the enlarged gallery. */
.page-hero :is(.hero-slide, .hero-slide-accent)[src="/media/featured/master-planning/site-study.webp"] { --slide-base-scale: 1.5; transform: scale(1.5); transform-origin: left bottom; object-position: left bottom; }
.featured-project-panel > img[src="/media/featured/master-planning/site-study.webp"] { transform: scale(1.5); transform-origin: left bottom; object-position: left bottom; }
.page-project :is(.hero-slide, .hero-slide-accent)[src="/media/service-galleries/planning-05.webp"] { --slide-base-scale: 1.5; transform: scale(1.5); transform-origin: right center; object-position: right center; }
.page-project :is(.hero-slide, .hero-slide-accent)[src="/media/service-galleries/planning-02.webp"] { --slide-base-scale: 1.6; transform: scale(1.6); transform-origin: 60% 58%; object-position: center; }
.portfolio-entry-section:not(.is-departing) .portfolio-route-rail { visibility: hidden; pointer-events: none; }
.portfolio-entry-section.is-departing .portfolio-entry-card { pointer-events: none; }
.portfolio-entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; margin-top: 44px; }
.portfolio-entry-card { --entry-card-padding: clamp(18px, 3vw, 40px); position: relative; isolation: isolate; display: grid; place-items: center; aspect-ratio: 1 / 1; min-width: 0; padding: var(--entry-card-padding); overflow: hidden; background: #171717; color: #fff; border: 1px solid #333; text-decoration: none; text-align: center; }
.portfolio-entry-card::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.38), rgba(0,0,0,.66) 45%, rgba(0,0,0,.62)); pointer-events: none; }
.portfolio-entry-card:hover, .portfolio-entry-card:focus-visible { border-color: #c00000; color: #fff; }
.portfolio-entry-card:focus-visible { outline: 3px solid var(--red); outline-offset: 5px; }
.portfolio-entry-card .eyebrow { color: #fff; margin: 0; font-size: .875rem; }
.portfolio-entry-card h3 { font-family: "Helvetica Neue", "Segoe UI", Arial, sans-serif; font-weight: 200; font-size: clamp(24px, 3vw, 50px); line-height: 1.12; letter-spacing: .045em; text-transform: uppercase; margin: 0; text-shadow: 0 2px 16px #000; }
.portfolio-entry-card .portfolio-entry-subtitle { margin-top: 16px; font-size: 16px; line-height: 1.4; }
.portfolio-entry-card p { font-size: 18px; line-height: 1.5; margin: 0; max-width: 38ch; color: #eee; }
.portfolio-entry-card strong { font-size: 1rem; }
.portfolio-entry-photo { position: absolute; inset: 0; z-index: -2; display: block; overflow: hidden; background: var(--ink); }
.portfolio-entry-photo img { display: block; width: 100%; height: 100%; min-width: 0; object-fit: cover; filter: none; }
.portfolio-complete-link { margin: 24px 0 0; font-size: 15px; }
.portfolio-complete-link a { color: var(--ink); text-underline-offset: 5px; }
.portfolio-complete-link a:hover, .portfolio-complete-link a:focus-visible { color: var(--red); }
.portfolio-complete-intro { max-width: 850px; margin: 18px 0 48px; }
.portfolio-complete section + section { margin-top: 64px; }
.portfolio-complete section h2 { font-size: clamp(25px, 3vw, 38px); margin: 0 0 10px; }
.portfolio-complete section > p { max-width: 720px; margin: 0 0 20px; }
.portfolio-complete-list { list-style: none; padding: 0; margin: 22px 0 0; border-top: 1px solid var(--line); }
.portfolio-complete-item { border-bottom: 1px solid var(--line); }
.portfolio-complete-item article { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr); gap: clamp(20px, 3vw, 42px); padding: 24px 0; }
.portfolio-complete-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper); }
.portfolio-complete-image img { width: 100%; height: 100%; object-fit: cover; }
.portfolio-complete-copy h3 { margin: 9px 0; font-size: clamp(20px, 2.3vw, 30px); }
.portfolio-complete-review { display: inline-block; margin: 0 0 5px; padding: 5px 9px; border: 1px solid #b87300; border-radius: 3px; background: #fff5de; color: #683b00; font-size: 12px; font-weight: 800; letter-spacing: .02em; }
.portfolio-complete-copy h3 a { color: var(--ink); text-decoration: none; }
.portfolio-complete-copy h3 a:hover, .portfolio-complete-copy h3 a:focus-visible { color: var(--red); text-decoration: underline; }
.portfolio-complete-copy > p:not(.portfolio-complete-date) { max-width: 75ch; margin: 0 0 14px; line-height: 1.5; }
.portfolio-complete-date { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 0; color: #555; font-size: 13px; }
.portfolio-complete-date time { color: var(--red-dark); font-weight: 800; }
.portfolio-complete-action { color: var(--red-dark); font-weight: 700; text-underline-offset: 4px; }
.section.portfolio-dedicated { padding-top: 80px; }
[data-portfolio-route-section] > .section-inner { scroll-margin-top: calc(var(--header-h) + 24px); }
html.route-arrival-pending main { visibility: hidden; }
[data-portfolio-route-section] > .section-inner:focus,
.project-overview-grid:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { html.route-arrival-pending main { visibility: visible; } }
.portfolio-page-links { display: flex; flex-wrap: wrap; gap: 16px 28px; margin-bottom: 48px; font-size: 14px; }
.portfolio-page-intro { max-width: 820px; margin: 24px 0 44px; }
.portfolio-route-rail .focus-rail-list { display: grid; gap: 7px; }
.portfolio-route-rail .focus-rail-control { width: 100%; }
.portfolio-route-rail [aria-current='page'] { background: #c00000; color: #fff; border-color: #c00000; }
.portfolio-route-rail [aria-current='page'] .service-rail-number { color: inherit; }
@media (min-width: 901px) {
  .portfolio-route-rail { position: fixed; z-index: 112; top: var(--content-rail-top, calc(var(--header-h) + 14px)); left: 2px; width: max(32px, calc(var(--linea-rail-x) - 61px)); }
  .portfolio-route-rail.is-outside-content, .focus-mode .portfolio-route-rail { visibility: hidden; pointer-events: none; }
}
@media (max-width: 900px) {
  .portfolio-entry-grid { grid-template-columns: 1fr; }
  .portfolio-entry-card h3 { font-size: clamp(28px, 7vw, 64px); }
  .portfolio-complete-item article { grid-template-columns: minmax(105px, 30%) minmax(0, 1fr); gap: 16px; }
  .portfolio-route-rail { margin: 0 20px 32px; }
  .portfolio-route-rail .focus-rail-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .section.portfolio-dedicated { padding-top: 48px; }
}
@media (max-width: 520px) {
  .portfolio-complete-item article { grid-template-columns: 1fr; }
  .portfolio-complete-image { max-width: 100%; aspect-ratio: 16 / 9; }
}

:root {
  --red: #c00000;
  --red-dark: #930000;
  --ink: #111111;
  --charcoal: #272727;
  --muted: #6c6c69;
  --paper: #f4f3ef;
  --white: #ffffff;
  --line: rgba(17,17,17,.16);
  --header-h: 112px;
  --gutter: clamp(22px, 5.2vw, 86px);
  --content: 1480px;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Aptos', 'Helvetica Neue', Arial, sans-serif;
  --ease: cubic-bezier(.2,.75,.25,1);
  --linea-rail-x: clamp(92px, 8.2vw, 132px);
  --linea-rail-origin-y: var(--header-h);
  --linea-rail-width: 3px;
}
.portfolio-gateways { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:44px 0 28px; }
.portfolio-gateway { display:flex; flex-direction:column; gap:18px; text-align:left; padding:28px; border:1px solid #cececa; background:#f4f3ef; color:#111; cursor:pointer; }
.portfolio-gateway strong { font-size:clamp(24px,2.2vw,36px); line-height:1.1; letter-spacing:-.035em; }
.portfolio-gateway > span:not(.eyebrow) { font-size:16px; line-height:1.5; }
.portfolio-gateway .portfolio-gateway-action { margin-top:auto; padding-top:18px; font-weight:700; }
.portfolio-gateway:hover,.portfolio-gateway:focus-visible,.portfolio-gateway[aria-pressed="true"] { border-color:var(--red); background:#f4f3ef; }
.portfolio-gateway[aria-pressed="true"] strong { color:var(--red); }
.portfolio-type-control { display:flex; align-items:end; gap:24px; margin-bottom:28px; }
.portfolio-type-control label { display:grid; gap:8px; font-size:14px; font-weight:700; }
.portfolio-type-control select { max-width:100%; padding:12px; border:1px solid #cececa; background:#f4f3ef; font:inherit; }
@media(max-width:1100px) { .portfolio-gateways {grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:650px) { .portfolio-gateways {grid-template-columns:1fr;} .portfolio-type-control {align-items:stretch;flex-direction:column;} }

* { box-sizing: border-box; }
[hidden] { display: none !important; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
html { scroll-behavior: smooth; background: var(--paper); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.55;
  overflow-x: hidden;
}
.linea-rail {
  position: fixed;
  z-index: 110;
  inset: 0 auto 0 var(--linea-rail-x);
  width: var(--linea-rail-width);
  background: var(--red);
  clip-path: inset(var(--linea-rail-origin-y) 0 0 0);
  transform: translateX(-50%);
  pointer-events: none;
  will-change: clip-path, opacity;
}
.motion-enabled body.rail-intro-pending .linea-rail {
  opacity: 0;
  clip-path: inset(var(--linea-rail-origin-y) 0 calc(100% - var(--linea-rail-origin-y)) 0);
}
.motion-enabled body.linea-rail-ready .linea-rail {
  opacity: 1;
  clip-path: inset(var(--linea-rail-origin-y) 0 0 0);
}
.brand-entry-pending .brand img, .brand-entry-pending .brand-division-label, .brand-entry-pending .linea-rail { opacity: 0; }
.brand-intro-running .brand img, .brand-intro-running .brand-division-label { animation: brand-logo-fade 1.5s ease-out both; }
@keyframes brand-logo-fade { from { opacity: 0; } to { opacity: 1; } }
.motion-enabled body.rail-intro-running .linea-rail { animation: home-rail-draw var(--rail-draw-duration, 4500ms) linear both; }
.rail-intro-pending .division-rail-nav a { opacity: 0; }
.rail-intro-running .division-rail-nav a { animation: home-division-appear .5s ease-in-out var(--rail-label-delay, 0ms) both; }
.rail-intro-pending .division-rail-nav a:focus-visible { opacity: 1; animation: none; }
@keyframes home-rail-draw {
  from { clip-path: inset(var(--linea-rail-origin-y) 0 calc(100% - var(--linea-rail-origin-y)) 0); }
  to { clip-path: inset(var(--linea-rail-origin-y) 0 0 0); }
}
@keyframes home-division-appear { from { opacity: 0; } to { opacity: 1; } }
.knowledge-hero--film { align-items:center; }
.knowledge-hero-layout { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(28px,4vw,64px); width:100%; max-width:var(--content); margin-inline:auto; padding-left:clamp(18px,5vw,72px); }
.knowledge-hero--film .knowledge-hero-content { min-width:0; padding:0; margin:0; }
.page-hero.knowledge-hero--film h1 { font-size:clamp(44px,5.2vw,84px); }
.page-hero.knowledge-hero--film .summary { font-size:clamp(18px,1.8vw,24px); }
.knowledge-hero-welcome { display:flex; align-items:center; gap:28px; margin-top:30px; }
.knowledge-hero--film .knowledge-hero-brandmark { position:relative; inset:auto; width:100px; flex:none; opacity:1; }
.knowledge-hero-welcome p { max-width:320px; color:#ddd; font-size:16px; line-height:1.5; }
.knowledge-hero-film { min-width:0; }
.knowledge-hero-film .featured-video-frame video { object-fit:contain; }
@media (max-width:1100px) {
  .knowledge-hero-layout { grid-template-columns:1fr; gap:36px; }
  .knowledge-hero--film .knowledge-hero-content { max-width:760px; }
  .knowledge-hero--film .knowledge-hero-brandmark { width:80px; }
  .knowledge-hero-welcome { margin-top:24px; }
}
@media (max-width:650px) {
  .knowledge-hero-layout { padding-left:0; }
  .knowledge-hero-welcome { gap:22px; }
  .knowledge-hero-welcome p { font-size:14px; }
  .knowledge-hero--film .knowledge-hero-brandmark { width:64px; }
  .knowledge-hero-film .featured-video-caption-panel > div { gap:12px; }
  .motion-enabled .division-grid .reveal:nth-child(n),
  .motion-enabled .work-grid .reveal:nth-child(n),
  .motion-enabled .portfolio-grid .reveal:nth-child(n) { --reveal-x:0; --reveal-y:26px; }
}

.partners-intro { padding-top:calc(var(--header-h) + 80px); padding-bottom:64px; }
.page-affiliate-partners main > .partners-intro[data-page-intro] { min-height:0; }
.partners-intro h1 { max-width:1050px; }
.partners-intro .lead { margin-top:28px; max-width:740px; }
.partners-directory { padding-top:64px; }
.partner-group + .partner-group { margin-top:64px; }
.partner-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:24px; }
.partner-card { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:clamp(24px,3vw,40px); background:var(--white); border:1px solid var(--line); border-top:3px solid var(--red); text-decoration:none; }
.partner-logo { display:flex; align-items:center; justify-content:flex-start; width:100%; height:132px; margin:0 0 28px; padding:16px; background:#fff; }
.partner-logo--dark { background:#17252e; }
.partner-logo img { display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.partner-card h3 { font-size:clamp(24px,2.4vw,36px); line-height:1.1; letter-spacing:-.035em; margin:0 0 20px; overflow-wrap:anywhere; }
.partner-card p { font-size:16px; line-height:1.6; color:var(--muted); margin:0 0 30px; }
.partner-card-link { margin-top:auto; font-size:14px; font-weight:700; }
.partner-card:hover { border-color:var(--red); }
.partner-card:hover .partner-card-link { color:var(--red); }
.partner-card:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.partner-directory-note { margin-top:48px; max-width:740px; color:var(--muted); font-size:14px; }
@media (max-width:700px) {
  .partners-intro { padding-top:calc(var(--header-h) + 48px); padding-bottom:40px; }
  .partners-directory { padding-top:40px; }
  .partner-grid { grid-template-columns:1fr; gap:16px; }
}

@media (prefers-reduced-motion: reduce) {
  .brand-intro-running .brand img, .brand-intro-running .brand-division-label, .rail-intro-running .linea-rail, .rail-intro-running .division-rail-nav a { animation: none; }
  .brand-entry-pending .brand img, .brand-entry-pending .brand-division-label, .brand-entry-pending .linea-rail { opacity: 1; }
  .rail-intro-pending .division-rail-nav a { opacity: 1; }
}
.motion-enabled body.is-scrolled.linea-rail-ready .linea-rail {
  clip-path: inset(0);
  transition: clip-path .5s var(--ease), opacity .12s linear;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--red); color: var(--white); }

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 500;
  padding: 10px 14px;
  background: var(--ink);
  color: white;
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--header-h);
  z-index: 100;
  display: grid;
  grid-template-columns: minmax(185px, 290px) 1fr auto;
  align-items: center;
  gap: clamp(18px, 3vw, 48px);
  padding: 12px var(--gutter);
  background: rgba(248,247,243,.95);
  border-bottom: 2px solid var(--red);
  backdrop-filter: blur(14px);
  transition: background-color .42s var(--ease), border-color .42s var(--ease), box-shadow .42s var(--ease), backdrop-filter .42s var(--ease);
}
.site-header.is-compact {
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
}
.site-header.is-scrolled {
  background: rgba(248,247,243,.18);
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  pointer-events: none;
}
.site-header.is-scrolled.is-on-light { background: rgba(236,235,231,.88); }
.header-breadcrumb { position: absolute; left: max(calc(var(--linea-rail-x) + 72px), 27vw); right: var(--gutter); top: 4px; font-size: 12px; line-height: 1.5; color: #555550; pointer-events: auto; }
.header-breadcrumb ol { list-style: none; display: flex; justify-content: flex-end; flex-wrap: nowrap; gap: 0 8px; margin: 0; padding: 0; }
.header-breadcrumb li { min-width: 0; }
.header-breadcrumb li + li::before { content: '/'; margin-right: 8px; opacity: .6; }
.header-breadcrumb a { display: inline-flex; align-items: center; min-height: 24px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: currentColor; cursor: pointer; }
.header-breadcrumb a:hover { color: var(--red); text-decoration: underline; }
.header-breadcrumb a:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.header-breadcrumb [aria-current] { font-weight: 600; }
.site-header.is-scrolled:not(.is-on-light) .header-breadcrumb { color: #eeeeea; }
@media(max-width:900px) {
  .header-breadcrumb { left: max(calc(var(--linea-rail-x) + 24px), 36vw); right: var(--gutter); top: 2px; }
  .header-breadcrumb ol { flex-wrap: nowrap; }
  .header-breadcrumb li:last-child { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
}
.brand {
  --header-brand-width: 230px;
  position: relative;
  display: block;
  width: min(var(--header-brand-width), 100%);
  min-width: 0;
  transition: opacity .34s var(--ease), transform .34s var(--ease), visibility 0s linear;
}
.brand img { width: 100%; height: auto; transition: filter .24s var(--ease); }
/* One transparent master preserves the LINEA scale and red-I origin on every route. */
.brand--division img { clip-path: inset(0 0 22.07% 0); }
.brand--team img { clip-path: polygon(0 0,19.533% 0,19.533% 77.93%,21.331% 77.93%,21.331% 0,100% 0,100% 77.93%,0 77.93%); }
.brand-division-label { position: absolute; left: calc(100% + 5px); bottom: 5%; color: var(--ink); font-family: "Times New Roman", Times, serif; font-size: calc(var(--header-brand-width) * .14); font-weight: 400; line-height: 1; white-space: nowrap; }
.brand-division-label--sage { color: #008000; }
.sage-heading-word { color: #008000; }
.brand-division-label--sage, .sage-heading-word, .site-footer .footer-sage-link { font-family: "Times New Roman", Times, serif; font-weight: 400; letter-spacing: normal; }
.site-footer .footer-sage-link { color: #008000; font-size: 1.5rem; line-height: 1.2; }
.site-footer .footer-sage-link:hover, .site-footer .footer-sage-link:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
.brand-division-label--forensics { font-size: calc(var(--header-brand-width) * .11); }
/* Keep the bracket beside the A at every size, with its baseline slightly lower. */
@media (min-width: 1101px) {
  .site-header:has(.brand--division) { grid-template-columns: minmax(410px, 440px) 1fr; gap: 20px; }
}
.brand:focus-visible { outline: 2px solid var(--red); outline-offset: 6px; }
.linea-i-anchor {
  position: absolute;
  left: 19.533%;
  top: 2.59%;
  width: 1.798%;
  height: 75.34%;
  pointer-events: none;
}
.site-header.is-scrolled .header-cta {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-16px);
  transition-delay: 0s, 0s, .34s;
}
.site-header.is-scrolled .brand {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}
.site-header.is-scrolled .brand.is-on-dark img { filter: brightness(0) invert(1); }
.site-header.is-scrolled .brand.is-on-dark .brand-division-label { color: white; }
.site-header.is-scrolled .brand.is-on-dark:focus-visible { outline-color: white; }
.site-header.is-scrolled .site-nav,
.site-header.is-scrolled .menu-toggle { pointer-events: auto; }
.site-nav > ul,
.nav-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
}
.site-nav > ul {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: clamp(15px, 1.8vw, 34px);
}
.nav-client-login { display: none; }
.site-nav { transition: color .34s var(--ease), background-color .34s var(--ease), box-shadow .34s var(--ease); }
.header-social { position: absolute; right: var(--gutter); bottom: 7px; display: flex; align-items: center; gap: 9px; }
.header-social a { width: 18px; height: 18px; display: grid; place-items: center; color: currentColor; opacity: .58; transition: opacity .18s, color .18s, transform .18s; }
.header-social a:hover,
.header-social a:focus-visible { color: var(--red); opacity: 1; transform: translateY(-2px); }
.header-social svg { width: 15px; height: 15px; fill: currentColor; }
.header-social .header-social-logo { display: block; width: 18px; height: 18px; }
.site-nav.is-on-dark .header-social a { color: white; }
.site-nav.is-on-dark .header-social a:hover,
.site-nav.is-on-dark .header-social a:focus-visible { color: #ff5a52; }
.footer-houzz-logo-link img { display: block; width: 132px; height: auto; }
/* Utility links share one top row; the logo and main navigation sit below it. */
@media (min-width: 901px) {
  .site-nav > ul { padding-top: 26px; }
  .header-breadcrumb { top: 6px; right: calc(var(--gutter) + 124px); }
  .header-breadcrumb ol { align-items: center; height: 28px; }
  .header-breadcrumb li { white-space: nowrap; }
  .header-breadcrumb li:last-child { overflow: hidden; text-overflow: ellipsis; }
  .header-social { top: 6px; bottom: auto; gap: 8px; border-left: 1px solid currentColor; padding-left: 12px; }
  .header-social a { width: 28px; height: 28px; opacity: .8; }
}
.division-rail-nav { display: none; }
.nav-link,
.nav-trigger {
  position: relative;
  border: 0;
  background: none;
  padding: 11px 0;
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .095em;
  text-transform: uppercase;
  white-space: nowrap;
}
.nav-link::after,
.nav-trigger::after {
  content: '';
  position: absolute;
  height: 2px;
  left: 0;
  right: 100%;
  bottom: 4px;
  background: var(--red);
  transition: right .25s var(--ease);
}
.nav-link:hover::after,
.nav-link:focus-visible::after,
.nav-link.is-active::after,
.nav-trigger:hover::after,
.nav-trigger:focus-visible::after { right: 0; }
.nav-item { position: relative; }
.nav-link--home { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.nav-link--home svg { display: block; width: 22px; height: 22px; }
.nav-link--home:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.nav-item--contact { position: relative; display: flex; align-items: center; gap: 4px; }
.hero-linea-invitation { display: block; margin-top: 12px; }
.hero-linea-word { white-space: nowrap; }
.linea-invitation-logo { display: inline-flex; align-items: flex-start; gap: .12em; vertical-align: -.25em; white-space: nowrap; line-height: 1; }
.linea-invitation-logo img { display: block; width: 3.1em; height: auto; }
.linea-invitation-logo > span { color: var(--red); font-family: "Helvetica Neue", "Segoe UI", Arial, sans-serif; font-weight: 300; font-size: .9em; margin-top: .08em; }
.hero .linea-invitation-logo img, .section-dark .linea-invitation-logo img { filter: brightness(0) invert(1); }
.contact-consultation { margin-top: 32px; padding-top: 24px; border-top: 1px solid #ddd; }
.contact-consultation h3 { font-size: 24px; margin: 0 0 12px; }
.contact-consultation p { margin-bottom: 20px; }
.site-header .site-nav .nav-item--contact > .nav-link { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; min-height: 48px; padding: 11px 0; }
.nav-link--contact svg { display: block; width: 22px; height: 22px; }
.nav-link--contact:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.nav-link--knowledge { display: flex; align-items: center; justify-content: center; min-width: 48px; min-height: 64px; padding: 4px 0; }
.nav-link--knowledge img { display: block; width: 42px; height: 56px; object-fit: contain; }
.nav-link--knowledge:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.nav-link--knowledge::after { bottom: 0; }
.nav-item--knowledge { margin-inline-start: clamp(12px, 1.3vw, 24px); padding-inline: 12px; }
.nav-item--knowledge { position: relative; display: flex; align-items: center; }
.knowledge-nav-logo { display: block; width: 42px; height: 56px; overflow: visible; }
.knowledge-menu-toggle { border: 0; background: transparent; color: inherit; padding: 8px 4px; cursor: pointer; font: inherit; }
.knowledge-nav-panel { position: absolute; top: 100%; right: 0; width: min(420px, calc(100vw - 40px)); padding: 28px; border: 1px solid #ccc; border-radius: 24px; background: #efeeea; color: #111; box-shadow: 0 16px 40px #0003; text-align: left; z-index: 10; }
.knowledge-nav-panel[hidden] { display: none; }
.knowledge-nav-panel h2 { font-family: "Times New Roman", serif; font-size: 34px; margin: 0 0 26px; line-height: 1.05; }
.knowledge-nav-panel p:not(.eyebrow) { margin: 12px 0 24px; font-size: 18px; line-height: 1.5; letter-spacing: normal; text-transform: none; font-weight: 400; }
.knowledge-menu-close { position: absolute; top: 7px; right: 10px; padding: 4px 8px; color: #111; background: transparent; border: 0; font-size: 28px; cursor: pointer; }
.knowledge-menu-visit { display: inline-block; color: #a90000; border-bottom: 1px solid currentColor; padding: 8px 0; font-weight: 700; font-size: 16px; letter-spacing: normal; text-transform: none; }
.knowledge-menu-toggle:focus-visible, .knowledge-menu-close:focus-visible, .knowledge-menu-visit:focus-visible { outline: 2px solid #c00000; outline-offset: 3px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .knowledge-nav-logo { transition: transform .2s ease; transform-origin: center; }
  .nav-item--knowledge.is-open .knowledge-nav-logo { transform: scale(1.16); }
}
@media (max-width: 760px) { .knowledge-nav-panel { position: fixed; top: calc(var(--header-h) + 12px); right: 20px; max-height: calc(100dvh - var(--header-h) - 36px); overflow-y: auto; } }
.nav-trigger { display: flex; align-items: center; gap: 7px; }
.nav-trigger svg { width: 12px; transition: transform .2s; }
.nav-item.is-open .nav-trigger svg,
html:not(.js-enabled) .nav-item:hover .nav-trigger svg,
html:not(.js-enabled) .nav-item:focus-within .nav-trigger svg { transform: rotate(180deg); }
.nav-submenu {
  position: absolute;
  min-width: 235px;
  top: calc(100% + 12px);
  left: -22px;
  padding: 12px;
  background: var(--ink);
  color: white;
  box-shadow: 0 22px 60px rgba(0,0,0,.25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: .2s var(--ease);
}
.nav-item.is-open .nav-submenu,
html:not(.js-enabled) .nav-item:hover .nav-submenu,
html:not(.js-enabled) .nav-item:focus-within .nav-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-submenu a {
  display: block;
  padding: 10px 12px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-left: 2px solid transparent;
}
.nav-submenu a:hover,
.nav-submenu a:focus-visible { color: white; border-color: var(--red); background: rgba(255,255,255,.07); }
.header-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border: 1px solid var(--ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: opacity .34s var(--ease), transform .34s var(--ease), visibility 0s linear, background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.header-cta:hover,
.header-cta:focus-visible { background: var(--red); color: white; border-color: var(--red); }
.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid var(--ink);
  background: transparent;
  align-items: center;
  justify-content: center;
}
.menu-toggle span,
.menu-toggle span::before,
.menu-toggle span::after {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ink);
  transition: .2s;
}
.menu-toggle span { position: relative; }
.menu-toggle span::before,
.menu-toggle span::after { content: ''; position: absolute; left: 0; }
.menu-toggle span::before { top: -7px; }
.menu-toggle span::after { top: 7px; }
.menu-toggle[aria-expanded='true'] span { background: transparent; }
.menu-toggle[aria-expanded='true'] span::before { top: 0; transform: rotate(45deg); }
.menu-toggle[aria-expanded='true'] span::after { top: 0; transform: rotate(-45deg); }

main { min-height: 70vh; }
.hero {
  position: relative;
  min-height: max(760px, 100svh);
  padding: calc(var(--header-h) + 80px) var(--gutter) 78px;
  display: flex;
  align-items: flex-end;
  color: white;
  background-color: #171717;
  background-position: center;
  background-size: cover;
  isolation: isolate;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, rgba(0,0,0,.89) 0%, rgba(0,0,0,.62) 47%, rgba(0,0,0,.20) 100%);
}
.hero::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: auto 0 0;
  height: 46%;
  background: linear-gradient(0deg, rgba(0,0,0,.58), transparent);
}
.entry-hero-video {
  position: absolute;
  inset: 0;
  z-index: -3;
  overflow: hidden;
  background: #171717;
}
.entry-hero-video video { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.entry-video-toggle {
  position: absolute;
  z-index: 3;
  right: max(var(--gutter), 24px);
  bottom: 28px;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,.62);
  background: rgba(17,17,17,.68);
  color: white;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.entry-video-toggle:hover,
.entry-video-toggle:focus-visible { background: var(--red); border-color: var(--red); }
.hero-gridline {
  position: absolute;
  inset: var(--header-h) 0 auto;
  height: 1px;
  background: rgba(255,255,255,.25);
}
.hero-content { width: min(1020px, 92%); margin-left: clamp(20px, 5vw, 74px); }
.home-hero-layout { width: 100%; }
.hero--knowledge-slideshow { flex-direction: column; align-items: center; justify-content: center; }
.hero--knowledge-slideshow::before { z-index: -1; }
.hero--knowledge-slideshow .home-hero-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; width: min(var(--content), 100%); margin: 0 auto; padding-left: clamp(18px, 5vw, 72px); }
.hero--knowledge-slideshow .hero-content { width: 100%; min-width: 0; margin: 0; }
.hero--knowledge-slideshow .hero-title { font-size: clamp(48px, 5.2vw, 92px); }
.hero--knowledge-slideshow .hero-summary { font-size: clamp(18px, 1.5vw, 23px); }
.hero--knowledge-slideshow .hero-linea-logo { width: min(320px, 90%); }
.hero--knowledge-slideshow > .hero-slideshow-controls { width: min(var(--content), 100%); padding-left: clamp(18px, 5vw, 72px); margin-top: 42px; }
.home-hero-knowledge { display: grid; grid-template-columns: clamp(100px, 9vw, 150px) minmax(0, 1fr); gap: 12px 24px; align-items: center; min-width: 0; padding: clamp(20px, 2vw, 30px); background: rgba(0,0,0,.68); }
.home-hero-knowledge .knowledge-hero-brandmark { position: relative; inset: auto; width: 100%; grid-row: 1 / 3; margin: 0; filter: none; }
.home-hero-knowledge .knowledge-hero-brandmark::after { display: none; }
.home-hero-knowledge > .knowledge-brand-type { margin: 0; font-size: clamp(28px, 2.2vw, 36px); line-height: 1.1; align-self: end; }
.home-hero-knowledge-summary { max-width: 470px; margin: 0; font-size: 16px; line-height: 1.5; color: rgba(255,255,255,.94); align-self: start; }
/* Keep the complete headline visible from first paint. Applying this filter to
   each whole row gives white text, red lettering and both logo layers the same
   dark grey, without changing their original colors or animating the I alone. */
.brand-entry .hero-title--sequence > span { opacity: 1; filter: brightness(0) invert(.25); }
.brand-entry .hero-division-links > * { opacity: 0; }
.brand-entry .rail-intro-running .hero-title--sequence > span { animation: home-title-color .5s linear var(--hero-reveal-delay, 0ms) both; }
.brand-entry .rail-intro-running .hero-division-links > * { animation: home-title-fade .3s ease-out var(--hero-division-delay, 0ms) both; }
.brand-entry .hero-division-links > a:focus-visible { opacity: 1; animation: none; }
.hero-title .hero-team-line { display: flex; align-items: baseline; gap: .18em; white-space: nowrap; }
.hero-title .hero-team-copy { display: inline-flex; align-items: baseline; gap: .18em; }
.hero-team-prefix { color: white; }
.hero-team-word { color: var(--red); font-family: "Times New Roman", Times, serif; font-weight: 400; letter-spacing: -.025em; }
.hero-title .hero-knowledge-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2em; font-size: .62em; margin-top: .24em; line-height: 1.12; }
.hero-title .hero-knowledge-line > span { display: inline-block; }
.hero-title .hero-knowledge-word { color: #fff; font-family: "Times New Roman", Times, serif; font-weight: 400; letter-spacing: -.025em; background: transparent; padding: 0; }
/* The box ends at the master wordmark's letter baseline (452 of 1669 pixels).
   Pronunciation extends below; the complete wordmark gains color with its row. */
.hero-title .hero-logo-sequence { position: relative; flex: 0 0 2.25em; width: 2.25em; height: calc(2.25em * 452 / 1669); margin: 0; }
.hero-title .hero-logo-sequence .hero-linea-logo { position: absolute; inset: 0 auto auto 0; display: block; width: 100%; margin: 0; clip-path: polygon(0 0,19.533% 0,19.533% 77.93%,21.331% 77.93%,21.331% 0,100% 0,100% 100%,0 100%); }
.hero-linea-red-i { position: absolute; inset: 0; display: block; width: 100%; height: auto; clip-path: inset(2.59% 78.669% 22.07% 19.533%); }
@keyframes home-title-color {
  from { filter: brightness(0) invert(.25); }
  to { filter: brightness(1) invert(0); }
}
@keyframes home-title-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .brand-entry .hero-title--sequence > span, .brand-entry .hero-division-links > *,
  .brand-entry .rail-intro-running .hero-title--sequence > span,
  .brand-entry .rail-intro-running .hero-division-links > * { animation: none; opacity: 1; }
  .brand-entry .hero-title--sequence > span,
  .brand-entry .rail-intro-running .hero-title--sequence > span { filter: none; }
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  color: var(--red);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.eyebrow::before { content: ''; width: 42px; height: 2px; background: currentColor; flex: 0 0 auto; }
.hero .eyebrow { color: white; }
.hero-title {
  margin: 0;
  max-width: 940px;
  font-size: clamp(54px, 8.3vw, 140px);
  line-height: .84;
  letter-spacing: -.072em;
  font-weight: 760;
  text-wrap: balance;
}
.hero-title span { display: block; }
.hero-title .accent { color: var(--red); }
.hero-title .hero-linea-logo { width: min(440px, 78%); height: auto; margin-top: .18em; filter: brightness(0) invert(1); }
.mobile-view-note { display: none; }
.hero-summary {
  max-width: 710px;
  margin: 30px 0 0;
  font-size: clamp(18px, 2vw, 27px);
  line-height: 1.35;
  color: rgba(255,255,255,.9);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 34px; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 25px;
  border: 1px solid currentColor;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
  transition: transform .2s var(--ease), background .2s, color .2s, border-color .2s;
}
.btn:hover,
.btn:focus-visible { transform: translateY(-2px); }
.btn-primary { background: var(--red); border-color: var(--red); color: white; }
.btn-primary:hover,
.btn-primary:focus-visible { background: white; border-color: white; color: var(--ink); }
.btn-ghost { color: white; background: transparent; }
.btn-ghost:hover,
.btn-ghost:focus-visible { color: var(--ink); background: white; }
.btn-dark { color: white; background: var(--ink); border-color: var(--ink); }
.btn-dark:hover,
.btn-dark:focus-visible { color: white; background: var(--red); border-color: var(--red); }

.ticker {
  overflow: hidden;
  border-top: 2px solid var(--red);
  border-bottom: 1px solid var(--line);
  background: white;
  white-space: nowrap;
}
.ticker-track {
  display: inline-flex;
  align-items: center;
  gap: 35px;
  min-width: max-content;
  padding: 15px 0;
  animation: none;
}
.ticker-track span { font-size: clamp(28px, 4.4vw, 74px); font-weight: 300; line-height: 1; letter-spacing: -.04em; text-transform: uppercase; }
.ticker-track b { color: var(--red); font-weight: 400; }

.section {
  position: relative;
  padding: clamp(82px, 10vw, 150px) var(--gutter);
}
.section-inner { width: min(var(--content), 100%); margin: 0 auto; padding-left: clamp(18px, 5vw, 72px); }
.section-dark { background: var(--ink); color: white; }
.section-white { background: white; }
.section-red { background: var(--red); color: white; }
.section-warm { background: #ddd0bf; }
.section-kicker { margin-bottom: 42px; }
.display {
  max-width: 1120px;
  margin: 0;
  font-size: clamp(42px, 6.1vw, 102px);
  line-height: .94;
  letter-spacing: -.055em;
  font-weight: 690;
  text-wrap: balance;
}
.display-sm { font-size: clamp(37px, 4.8vw, 76px); }
.lead {
  max-width: 780px;
  margin: 28px 0 0;
  font-size: clamp(20px, 2.4vw, 31px);
  line-height: 1.35;
  color: var(--charcoal);
}
.section-dark .lead { color: rgba(255,255,255,.74); }
.copy { max-width: 700px; color: var(--muted); }
.copy p { margin: 0 0 1em; }
.split {
  display: grid;
  grid-template-columns: minmax(220px, .65fr) minmax(440px, 1.35fr);
  gap: clamp(40px, 9vw, 150px);
  align-items: start;
}
.split-balanced { grid-template-columns: 1fr 1fr; }
.sticky-label { position: sticky; top: calc(var(--header-h) + 40px); }
.client-guides-module { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(230px, 1fr); gap: clamp(32px, 5vw, 80px); padding: clamp(24px, 4vw, 64px); border: 1px solid #d4d3cf; background: var(--paper); }
.client-guides-label { margin: 0 0 22px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.client-guides-copy .lead { font-size: clamp(19px, 1.7vw, 25px); }
.client-guides-cta { margin-top: 32px; white-space: normal; }
.client-guides-tab-note { color: var(--muted); font-size: 12px; margin: 12px 0 0; }
.client-guides-support { color: var(--muted); max-width: 480px; font-size: 14px; line-height: 1.6; margin: 28px 0 0; }
.client-guides-index { align-self: center; }
.client-guides-index ol { list-style: none; padding: 0; margin: 0; }
.client-guides-index li { display: flex; align-items: baseline; gap: 20px; padding: 25px 0; border-top: 1px solid #d4d3cf; }
.client-guides-index li > span { color: var(--red); font-size: 11px; font-weight: 800; }
.client-guides-index h3 { margin: 0; font-size: clamp(20px, 1.7vw, 28px); letter-spacing: -.035em; }
.client-guides-index li p { color: var(--muted); font-size: 15px; line-height: 1.5; margin: 8px 0 0; }
.client-guides-index-note { font-size: 11px; line-height: 1.7; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding-top: 24px; border-top: 1px solid #d4d3cf; }
.client-guides-back { display: inline-block; margin-bottom: 32px; font-size: 12px; font-weight: 700; }
.forensic-reports-back { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 28px; font-size: .875rem; font-weight: 700; }
.forensic-reports-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 1fr); grid-template-areas: 'copy access' 'features access'; column-gap: clamp(32px, 5vw, 80px); align-items: start; }
.forensic-reports-copy { grid-area: copy; }
.forensic-reports-access { grid-area: access; }
.forensic-reports-copy .lead { font-size: clamp(1.125rem, 1.8vw, 1.6rem); }
.forensic-reports-features { grid-area: features; margin: 36px 0 0; }
.forensic-reports-features > div { border-top: 1px solid #d4d3cf; padding: 22px 0; }
.forensic-reports-features dt { font-size: 1.125rem; font-weight: 750; }
.forensic-reports-features dd { margin: 8px 0 0; font-size: 1rem; color: var(--muted); line-height: 1.6; }
.forensic-reports-secure { padding: clamp(24px, 3vw, 48px); background: var(--ink); color: white; }
.forensic-reports-secure .eyebrow { color: #ff6666; }
.forensic-reports-secure h2 { margin: 0; font-size: clamp(2rem, 3vw, 3.2rem); letter-spacing: -.045em; line-height: 1.05; }
.forensic-reports-secure > p:not(.eyebrow) { font-size: 1rem; line-height: 1.65; color: #d6d6d6; margin: 24px 0; }
.forensic-reports-secure .btn { min-height: 48px; white-space: normal; font-size: .875rem; }
.forensic-reports-secure > p.forensic-reports-note { font-size: .875rem; margin-bottom: 0; }
.forensic-reports-sample { margin-top: 20px; background: var(--paper); border: 1px solid #d4d3cf; padding: clamp(24px, 3vw, 40px); }
.forensic-reports-sample-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; }
.forensic-reports-sample h2 { font-size: 1.4rem; margin: 0; }
.forensic-reports-pending { font-size: .875rem; padding: 6px 10px; border: 1px solid #aaa; }
.forensic-reports-sample p { font-size: 1rem; line-height: 1.6; color: var(--muted); margin-bottom: 0; }
.forensic-reports-entry { display: flex; align-items: center; justify-content: space-between; gap: 32px; background: var(--paper); border: 1px solid #d4d3cf; padding: clamp(24px, 3vw, 48px); }
.forensic-reports-entry:hover, .forensic-reports-entry:focus-visible { border-color: var(--red); }
.forensic-reports-entry h2 { font-size: clamp(2rem, 3vw, 3rem); margin: 0; letter-spacing: -.04em; }
.forensic-reports-entry p:not(.eyebrow) { font-size: 1rem; line-height: 1.6; max-width: 620px; margin-bottom: 0; }
.forensic-reports-entry .card-link { flex-shrink: 0; }
.footer-client-link + .footer-client-link { margin-top: 16px; }
nav.division-rail-nav a:hover { color: var(--red); background: transparent; opacity: 1; outline: none; }
nav.division-rail-nav a:focus-visible { color: var(--red); outline: 2px solid var(--red); outline-offset: 3px; }
nav.division-rail-nav a[aria-current='page'] { color: var(--red); }
nav.division-rail-nav a.is-on-dark:hover,
nav.division-rail-nav a.is-on-dark:focus-visible,
nav.division-rail-nav a.is-on-dark[aria-current='page'] { color: #ff6666; }
.staff-tabs { display:flex; flex-wrap:wrap; gap:12px 28px; padding:28px var(--gutter) 0 calc(var(--linea-rail-x) + 40px); }
.staff-tabs a { display:inline-flex; align-items:center; min-height:44px; border-bottom:1px solid var(--line); font-weight:700; }
.staff-tabs a:hover { border-color:var(--red); }
.staff-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:40px 0; }
.staff-cards article,.staff-coming { padding:30px; border:1px solid var(--line); background:var(--paper); }
.staff-cards h3,.staff-coming h3 { font-size:26px; line-height:1.1; margin-bottom:20px; letter-spacing:-.025em; }
.staff-cards p { margin-bottom:24px; }
.staff-native .section { padding-top:70px; padding-bottom:70px; }
.staff-native .specialized-service-panel p { margin:20px 0; }
.staff-native .specialized-service-panel h4 { font-size:22px; margin-top:26px; }
.staff-native .specialized-service-panel ul { padding-left:24px; }
.staff-native .specialized-service-panel .btn { margin-top:30px; }
.staff-steps { padding-left:28px; }
.staff-steps li { padding:14px 0; border-bottom:1px solid var(--line); }
.staff-search { display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; margin:40px 0; }
.staff-search label { font-weight:700; }
.staff-search input,.staff-search select { min-height:52px; width:100%; border:1px solid var(--line); background:var(--paper); padding:12px; font:inherit; }
.staff-search label:nth-of-type(2) { grid-column:2; grid-row:1; }
.staff-search .btn { justify-self:start; }
.staff-coming { margin-top:32px; }
.staff-confidentiality { margin-top:36px; color:#666; }
.staff-presentation-hero { background:linear-gradient(90deg,rgba(0,0,0,.025) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.025) 1px,transparent 1px); background-size:72px 72px; }
.staff-line-path { display:flex; justify-content:space-between; gap:20px; border-bottom:2px solid var(--red); margin-top:50px; padding-bottom:18px; }
.staff-line-path span { font-weight:800; }
@media(max-width:1000px){.staff-cards{grid-template-columns:1fr 1fr}.staff-tabs{padding-left:96px}}
@media(max-width:600px){.staff-cards,.staff-search{grid-template-columns:1fr}.staff-search label:nth-of-type(2){grid-column:auto;grid-row:auto}.staff-line-path{flex-direction:column;border-bottom:0;border-left:2px solid var(--red);padding-left:20px}.staff-tabs{padding-left:68px}.staff-native .section{padding-top:44px;padding-bottom:44px}}
@media (max-width: 1000px) {
  .forensic-reports-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'copy' 'access' 'features'; }
  .forensic-reports-access { margin-top: 32px; }
  .forensic-reports-entry { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 900px) {
  .client-guides-module { grid-template-columns: minmax(0, 1fr); }
}
.red-rule { width: 72px; height: 3px; margin: 18px 0 0; background: var(--red); }

.division-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 16px;
  margin-top: 58px;
}
.division-card {
  position: relative;
  grid-column: auto;
  min-width: 0;
  min-height: 360px;
  aspect-ratio: 1;
  padding: 30px;
  display: flex;
  align-items: flex-end;
  color: white;
  background-color: #252525;
  background-position: center;
  background-size: cover;
  overflow: hidden;
  isolation: isolate;
}
.division-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(0deg, rgba(0,0,0,.88), rgba(0,0,0,.05) 70%);
  transition: background .35s;
}
.division-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border: 0 solid var(--red);
  transition: border-width .25s;
}
.division-card:hover::after,
.division-card:focus-visible::after { border-width: 7px; }
.division-card:hover::before,
.division-card:focus-visible::before { background: linear-gradient(0deg, rgba(0,0,0,.95), rgba(0,0,0,.28)); }
.card-number { color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.division-card h3 { margin: 8px 0 8px; font-size: clamp(28px, 3vw, 48px); line-height: 1; letter-spacing: -.035em; }
.division-card p { max-width: 520px; margin: 0 0 20px; color: rgba(255,255,255,.8); }
.card-link { display: inline-flex; align-items: center; gap: 10px; color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.card-link::after { content: '→'; font-size: 19px; transition: transform .2s; }
.division-card:hover .card-link::after { transform: translateX(5px); }

.knowledge-video {
  position: relative;
  min-height: 420px;
  border-radius: 180px 24px 180px 24px;
  overflow: hidden;
  background: #111;
}
.knowledge-video-module { margin: 60px 0 0; }
.knowledge-video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.knowledge-video-cover {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  min-height: 100%;
  padding: 40px;
  display: grid;
  place-items: center;
  align-content: center;
  border: 0;
  color: white;
  text-align: center;
  font: inherit;
  cursor: pointer;
  background: linear-gradient(130deg, rgba(0,0,0,.88), rgba(0,0,0,.28));
}
.knowledge-video-cover .eyebrow { justify-content: center; }
.knowledge-video-cover strong { display: block; margin: 0 0 12px; }
.knowledge-video-cover > span:last-child { max-width: 940px; }
.knowledge-video-cover:hover .play-button,
.knowledge-video-cover:focus-visible .play-button { transform: scale(1.08); background: rgba(192,0,0,.78); }
.knowledge-video-cover:focus-visible { outline: 4px solid var(--red); outline-offset: -8px; }
.knowledge-video.is-playing video { object-fit: contain; }
.knowledge-video.is-playing { border-radius: 24px; }
.knowledge-video .play-button {
  transition: transform .2s var(--ease), background-color .2s var(--ease);
}
@media (max-width: 900px) {
  .hero--knowledge-slideshow .home-hero-layout { grid-template-columns: 1fr; gap: 42px; }
  .hero--knowledge-slideshow .hero-title { font-size: clamp(44px, 7.5vw, 82px); }
  .home-hero-knowledge { grid-template-columns: 120px 1fr; column-gap: 24px; }
}
@media (max-width: 650px) {
  .hero--knowledge-slideshow .hero-title { font-size: clamp(28px, 8.6vw, 50px); }
  .hero--knowledge-slideshow .home-hero-layout, .hero--knowledge-slideshow > .hero-slideshow-controls { padding-left: 0; gap: 24px; }
  .home-hero-knowledge { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; padding: 20px; }
  .home-hero-knowledge .knowledge-hero-brandmark { width: 72px; grid-row: auto; }
  .home-hero-knowledge-summary { grid-column: 1 / -1; }
  .home-hero-knowledge > .knowledge-brand-type { font-size: 27px; margin: 0; align-self: center; }
}
.knowledge-caption-box {
  position: relative;
  width: min(880px, calc(100% - 80px));
  min-height: 112px;
  margin: -2px auto 0;
  padding: 22px 28px 24px 34px;
  border-top: 5px solid var(--red);
  background: var(--ink);
  color: white;
  box-shadow: 0 18px 36px rgba(0,0,0,.12);
}
.knowledge-caption-box::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 8px; background: var(--red); }
.knowledge-caption-box > span { display: block; margin-bottom: 8px; color: #ff5a52; font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.knowledge-caption-box p { margin: 0; font-size: clamp(17px, 2vw, 24px); font-weight: 650; line-height: 1.35; }
.play-button {
  width: 94px;
  height: 94px;
  display: grid;
  place-items: center;
  margin: 0 auto 20px;
  border: 2px solid white;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: white;
}
.play-button::after { content: ''; border-left: 22px solid currentColor; border-top: 13px solid transparent; border-bottom: 13px solid transparent; margin-left: 6px; }

.featured-video {
  position: relative;
  padding: clamp(58px, 7vw, 100px) var(--gutter);
  color: white;
  background: #0b0b0b;
  border-top: 1px solid rgba(255,255,255,.14);
  border-bottom: 1px solid rgba(255,255,255,.14);
  overflow: hidden;
}
.featured-video-inner {
  width: min(var(--content), 100%);
  margin: 0 auto;
  padding-left: clamp(62px, 5.5vw, 82px);
  display: grid;
  grid-template-columns: minmax(270px, .55fr) minmax(0, 1.45fr);
  gap: clamp(36px, 6vw, 90px);
  align-items: center;
}
.featured-video-copy { max-width: 520px; }
.featured-video-copy h2 { margin: 16px 0 22px; font-size: clamp(40px, 5vw, 76px); line-height: .94; letter-spacing: -.055em; }
.featured-video-copy > p:not(.eyebrow) { color: rgba(255,255,255,.68); line-height: 1.65; }
.featured-video-copy .featured-video-accessibility { margin-top: 18px; color: rgba(255,255,255,.52); font-size: 13px; }
.featured-video-caption-label { display: flex; align-items: center; gap: 10px; margin-top: 20px; font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.featured-video-caption-label span { display: inline-grid; min-width: 30px; min-height: 24px; place-items: center; color: white; border: 1px solid var(--red); }
.featured-video-transcript { display: inline-block; margin-top: 18px; padding-bottom: 5px; color: white; border-bottom: 1px solid var(--red); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.featured-video-copy .featured-video-review-note { margin-top: 22px; padding-top: 16px; color: rgba(255,255,255,.48); border-top: 1px solid rgba(255,255,255,.14); font-size: 11px; letter-spacing: .055em; text-transform: uppercase; }
.featured-video-player { min-width: 0; }
.featured-video-frame { position: relative; overflow: hidden; background: black; border-left: 3px solid var(--red); }
.featured-video-frame video { display: block; width: 100%; aspect-ratio: 16 / 9; background: black; object-fit: cover; }
.featured-video-sound {
  position: absolute;
  z-index: 2;
  top: 16px;
  right: 16px;
  min-height: 44px;
  padding: 10px 19px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  color: white;
  background: var(--red);
  box-shadow: 0 9px 28px rgba(0,0,0,.3);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.featured-video-sound:hover,
.featured-video-sound:focus-visible { background: #9e0000; }
.featured-video-sound:focus-visible { outline: 3px solid white; outline-offset: 3px; }
.featured-video-sound[hidden] { display: none; }
.featured-video-caption-panel { min-height: 116px; padding: 18px clamp(20px, 3vw, 34px) 22px; color: var(--ink); background: var(--paper); border-top: 1px solid rgba(17,17,17,.16); border-left: 3px solid var(--red); }
.featured-video-caption-panel > div { display: flex; justify-content: space-between; gap: 20px; color: rgba(17,17,17,.48); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.featured-video-caption-panel > div span:first-child { color: var(--red); }
.featured-video-caption-panel b { margin-right: 8px; }
.featured-video-caption-panel p { min-height: 3em; margin: 12px 0 0; font-size: clamp(16px, 1.6vw, 21px); font-weight: 650; line-height: 1.45; }
.featured-video--projects { background: #141414; }
.project-film-placeholder { position: relative; min-width: 0; aspect-ratio: 16 / 9; overflow: hidden; border-left: 3px solid var(--red); background: #050505; }
.project-film-frames { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; opacity: .63; }
.project-film-frames span { background-position: center; background-size: cover; filter: grayscale(100%); }
.project-film-placeholder::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.18), rgba(0,0,0,.62)); }
.project-film-status { position: absolute; z-index: 1; inset: 0; display: grid; place-content: center; justify-items: center; text-align: center; }
.project-film-status .play-button { width: 76px; height: 76px; margin-bottom: 18px; }
.project-film-status strong { font-size: clamp(22px, 3vw, 42px); letter-spacing: -.035em; }
.project-film-status small { margin-top: 7px; color: rgba(255,255,255,.65); font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.project-swatches { min-width: 0; border-left: 3px solid var(--red); }
.project-swatch-grid { display: grid; grid-template-columns: repeat(var(--swatch-columns, 4), minmax(0, 1fr)); gap: 3px; background: var(--ink); }
.project-swatch { position: relative; min-width: 0; min-height: clamp(400px, 40vw, 590px); overflow: hidden; background: #222; }
.project-swatch-slide { position: absolute; inset: 0; display: block; color: white; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s; text-decoration: none; }
.project-swatch-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
.project-swatch-slide img { width: 100%; height: 100%; object-fit: cover; }
.project-swatch-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 10%, rgba(0,0,0,.28) 45%, rgba(0,0,0,.94) 100%); }
.project-swatch-copy { position: absolute; z-index: 1; inset: auto 0 0; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(14px, 1.7vw, 26px); gap: 10px; }
.project-swatch-number { padding: 5px 8px; background: var(--red); color: white; font-size: 12px; font-weight: 750; }
.project-swatch-division { color: #eee; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.project-swatch-copy strong { font-size: clamp(18px, 1.6vw, 26px); line-height: 1.08; letter-spacing: -.025em; overflow-wrap: normal; }
.project-swatch-link { font-size: 13px; margin-top: 6px; }
.project-swatch-slide:focus-visible { outline: 3px solid white; outline-offset: -6px; }
@media (max-width: 1100px) { .project-swatch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .project-swatch { min-height: 370px; }
  .project-swatch-copy { padding: 9px; gap: 8px; }
  .project-swatch-copy strong { font-size: 17px; }
  .project-swatch-division { font-size: 9px; }
  .project-swatch-link { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .project-swatch-slide { transition: none; } }

.relationships { margin-top: 56px; border-top: 1px solid var(--line); }
.relationship-row {
  display: grid;
  grid-template-columns: 90px minmax(220px,.7fr) minmax(300px,1fr);
  gap: 26px;
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.relationship-row .num { color: var(--red); font-weight: 800; letter-spacing: .1em; }
.relationship-row h3 { margin: 0; font-size: clamp(23px, 2.4vw, 38px); letter-spacing: -.03em; }
.relationship-row p { margin: 0; color: var(--muted); }
.section-dark .relationships { border-color: rgba(255,255,255,.18); }
.section-dark .relationship-row { border-color: rgba(255,255,255,.18); }
.section-dark .relationship-row p { color: rgba(255,255,255,.65); }

.work-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 50px;
}
.work-card { position: relative; min-height: 560px; overflow: hidden; background: #222; color: white; }
.work-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(30%); transition: transform .7s var(--ease), filter .4s; }
.work-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.88), transparent 66%); }
.work-card-content { position: absolute; z-index: 2; inset: auto 26px 27px; }
.work-card .eyebrow { margin-bottom: 9px; color: white; }
.work-card h3 { margin: 0; font-size: clamp(25px, 2.4vw, 39px); line-height: 1.04; }
.work-card:hover img,
.work-card:focus-within img { transform: scale(1.06); filter: grayscale(0); }

.portfolio-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr);
  align-items: end;
  gap: clamp(36px, 8vw, 130px);
  margin-bottom: clamp(42px, 7vw, 92px);
}
.portfolio-intro .lead { margin: 0 0 8px; }
.portfolio-search-panel { padding: clamp(22px, 3vw, 36px); margin: 0 0 36px; border: 1px solid #cececa; border-radius: var(--gray-panel-radius, 32px); background: #efeeea; color: var(--ink); }
.portfolio-search-panel .portfolio-status { margin-bottom: 0; }
.portfolio-search-panel .portfolio-type-control label { min-width: 0; }
.portfolio-search-panel .portfolio-type-control { flex-wrap: wrap; }
.portfolio-search-panel .portfolio-type-control label { flex: 1 1 320px; max-width: 740px; font-size: 1rem; }
.portfolio-search-panel .portfolio-type-control select { width: 100%; min-height: 64px; padding: 16px 20px; border: 2px solid var(--red); background: var(--red); color: white; font-size: clamp(1.125rem, 1.1vw, 1.375rem); font-weight: 750; }
.portfolio-search-panel .portfolio-type-control select:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.portfolio-search-panel .portfolio-type-control :is(option, optgroup) { background: white; color: var(--ink); }
@media (max-width: 650px) {
  .portfolio-search-panel .portfolio-type-control label { flex-basis: auto; }
}
.portfolio-toolbar {
  display: none;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 340px);
  align-items: end;
  gap: 28px;
  margin-bottom: 22px;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.portfolio-enabled .portfolio-toolbar { display: grid; }
.portfolio-filter-stack { display: grid; gap: 13px; }
.portfolio-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.portfolio-filter {
  border: 1px solid rgba(17,17,17,.28);
  border-radius: 999px;
  background: transparent;
  padding: 9px 14px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
  transition: color .2s, background-color .2s, border-color .2s;
}
.portfolio-filter span { margin-left: 5px; opacity: .62; }
.portfolio-filter:hover,
.portfolio-filter:focus-visible,
.portfolio-filter.is-active { color: white; background: var(--ink); border-color: var(--ink); }
.portfolio-filter:focus-visible { outline: 3px solid rgba(192,0,0,.28); outline-offset: 3px; }
.portfolio-sectors {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  padding: 13px 0 0;
  border-top: 1px solid var(--line);
}
.portfolio-sectors > span {
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.portfolio-sectors > div { display: flex; flex-wrap: wrap; gap: 7px; }
.portfolio-sector {
  min-height: 42px;
  padding: 8px 13px;
  border: 1px solid var(--red);
  background: transparent;
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.portfolio-sector:hover,
.portfolio-sector:focus-visible,
.portfolio-sector.is-active { color: white; background: var(--red); }
.portfolio-sector:focus-visible { outline: 3px solid rgba(192,0,0,.25); outline-offset: 3px; }
.portfolio-search { display: grid; gap: 7px; }
.portfolio-search span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.portfolio-search input {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  padding: 9px 2px 11px;
  color: var(--ink);
  outline: none;
}
.portfolio-search input:focus { border-color: var(--red); box-shadow: 0 2px 0 var(--red); }
.portfolio-status { min-height: 1.5em; margin: 0 0 24px; color: var(--muted); font-size: 13px; }
[data-portfolio-houzz][hidden] { display: none; }
.featured-projects { scroll-margin-top: 130px; }
.featured-project-label { display: table; margin: 0 0 18px; padding: 10px 16px; color: white; background: var(--red); font-size: 1rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.project-back.btn { min-height: 44px; font-size: .875rem; white-space: normal; }
.portfolio-status a { margin-left: 8px; color: var(--ink); font-weight: 800; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 4px; }
.portfolio-status a:hover,
.portfolio-status a:focus-visible { color: var(--red); }
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(22px, 3vw, 46px) clamp(18px, 2.4vw, 34px);
}
.portfolio-card { grid-column: span 6; min-width: 0; background: white; }
.portfolio-card--wide { grid-column: span 7; }
.portfolio-card--portrait { grid-column: span 5; }
.portfolio-card--full { grid-column: span 12; }
.portfolio-card--compact { grid-column: span 4; }
.portfolio-card-link { display: block; height: 100%; }
.portfolio-card-link:focus-visible { outline: 4px solid var(--red); outline-offset: 5px; }
.portfolio-card-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #1a1a1a; }
.portfolio-card--portrait .portfolio-card-media { aspect-ratio: 4 / 5; }
.portfolio-card--full .portfolio-card-media { aspect-ratio: 21 / 8; }
.portfolio-card--compact .portfolio-card-media { aspect-ratio: 16 / 10; }
.portfolio-card-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.38)); }
.portfolio-card-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(28%); transition: transform .72s var(--ease), filter .45s var(--ease); }
.portfolio-card-index { position: absolute; z-index: 1; top: 18px; right: 20px; color: white; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-shadow: 0 1px 12px rgba(0,0,0,.38); }
.portfolio-card-copy { display: flex; min-height: 280px; flex-direction: column; padding: clamp(23px, 3vw, 38px); border: 1px solid var(--line); border-top: 0; }
.portfolio-card--compact .portfolio-card-copy { min-height: 245px; padding: 24px; }
.portfolio-card-division { margin: 0 0 13px; color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.portfolio-card h3 { margin: 0; font-size: clamp(28px, 3vw, 48px); line-height: .98; letter-spacing: -.045em; }
.portfolio-card--compact h3 { font-size: clamp(25px, 2.35vw, 36px); }
.portfolio-card-meta { margin: 15px 0 0; color: var(--muted); font-size: 13px; font-weight: 700; }
.portfolio-card-summary { margin: 19px 0 26px; color: var(--muted); }
.portfolio-card-action { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.portfolio-card-action span { color: var(--red); transition: transform .22s var(--ease); }
.portfolio-card:hover .portfolio-card-media img,
.portfolio-card:focus-within .portfolio-card-media img { transform: scale(1.045); filter: grayscale(0); }
.portfolio-card:hover .portfolio-card-action span,
.portfolio-card:focus-within .portfolio-card-action span { transform: translateX(5px); }
.portfolio-more { margin-top: 42px; }
.portfolio-empty { padding: 70px 26px; text-align: center; border: 1px solid var(--line); background: var(--paper); }
.portfolio-empty h3 { margin: 8px auto 26px; font-size: clamp(30px, 4vw, 55px); line-height: 1; }

.project-hero { overflow: hidden; background: #171717; }
.project-hero--dark-red .project-hero-image { filter: brightness(.72) contrast(1.06); }
.project-hero-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.project-back { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 28px; color: rgba(255,255,255,.82); font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.project-back:hover,
.project-back:focus-visible { color: white; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 5px; }
.section.project-overview { padding-left: max(var(--gutter), calc(var(--linea-rail-x) + clamp(24px, 3vw, 48px))); }
.project-overview-return .project-back { color: var(--ink); background: none; border: 0; padding: 0; margin-bottom: 14px; min-height: 44px; font-size: 14px; }
.project-overview-return .project-back:hover, .project-overview-return .project-back:focus-visible { border-color: var(--red); }
.project-overview-grid { display: grid; grid-template-columns: minmax(230px, .55fr) minmax(0, 1.45fr); gap: clamp(32px, 6vw, 100px); padding: clamp(24px, 4vw, 60px); border: 1px solid var(--line); background: var(--paper); }
.project-overview-grid { scroll-margin-top: calc(var(--header-h) + 24px); }
.project-file { align-self: start; position: sticky; top: 145px; }
.project-file-heading { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.project-file-heading .eyebrow { margin: 0; }
.project-file .project-collection-label { font-size: 14px; line-height: 1.5; }
.project-collection-return { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; min-height: 44px; margin-top: 20px; padding: 8px 0; color: var(--ink); font-size: 1rem; font-weight: 750; line-height: 1.45; text-decoration: none; }
.project-collection-return[hidden] { display: none; }
.project-collection-return > span:first-child { flex: 0 0 auto; color: var(--red); font-size: 2rem; font-weight: 700; line-height: 1; transition: transform .2s ease; }
.project-collection-return:hover > span:first-child, .project-collection-return:focus-visible > span:first-child { transform: translateX(-4px); }
.project-collection-return:hover { color: var(--red); }
.project-collection-return:focus-visible { outline: 2px solid var(--red); outline-offset: 5px; }
.project-file-number { display: grid; place-items: center; flex: 0 0 72px; box-sizing: border-box; width: 72px; height: 72px; padding: 0; border-radius: 0; background: var(--red); color: white; font-family: var(--sans); font-size: 3.5rem; font-weight: 850; line-height: 1; letter-spacing: -.055em; }
.project-file dl { margin: 27px 0 0; }
.project-file dl div { display: grid; grid-template-columns: minmax(90px, .8fr) 1fr; gap: 18px; padding: 15px 0; border-top: 1px solid var(--line); }
.project-file dl div:last-child { border-bottom: 1px solid var(--line); }
.project-file dt { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.project-file dd { margin: 0; font-weight: 750; }
.project-houzz-link { display: inline-flex; align-items: center; width: max-content; min-height: 44px; padding: 0; background: transparent; color: var(--ink); text-decoration: none; }
.project-houzz-link img { display: block; width: 136px; height: auto; }
.project-houzz-link:hover img { opacity: .75; }
.project-houzz-link:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.project-file-links { display: grid; gap: 14px; margin-top: 28px; }
.project-file-links .project-resource-link { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; margin: 0; font-size: 14px; line-height: 1.5; font-weight: 700; text-transform: none; letter-spacing: normal; text-decoration: underline; text-underline-offset: 4px; }
.project-file-links .project-houzz-link { text-decoration: none; }
.project-resource-link:hover, .project-resource-link:focus-visible { color: var(--red); }
.project-link-pending { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 0; min-height: 44px; font-size: 14px; }
.project-link-pending span { color: #666; }
.project-mini-nav { margin-top: 30px; padding-top: 20px; border-top: 2px solid var(--red); }
.project-mini-nav > p { margin: 0 0 12px; color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.project-mini-nav ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.project-mini-nav a { display: grid; grid-template-columns: 70px 1fr; align-items: center; gap: 12px; min-height: 54px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font-size: 12px; font-weight: 800; line-height: 1.2; }
.project-mini-nav a[aria-current='page'] { border-color: var(--red); background: #f3ece8; }
.project-mini-nav a:hover,
.project-mini-nav a:focus-visible { border-color: var(--red); transform: translateX(3px); }
.project-mini-nav img { width: 70px; height: 54px; object-fit: cover; filter: grayscale(30%); }
.project-badge { display: inline-flex; margin: 22px 0 0; padding: 7px 10px; border: 1px solid var(--red); color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.project-type-visual { position: relative; min-height: 300px; margin: 0 0 clamp(38px, 5vw, 68px); overflow: hidden; background: var(--ink); }
.project-type-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,.68)); pointer-events: none; }
.project-type-visual img { width: 100%; height: 100%; min-height: 300px; aspect-ratio: 16 / 8; object-fit: cover; filter: saturate(.7) contrast(1.04); }
.project-type-visual figcaption { position: absolute; z-index: 1; inset: auto auto 0 0; display: grid; gap: 5px; min-width: min(270px, 82%); padding: 17px 20px 18px; background: rgba(192,0,0,.92); color: white; }
.project-type-visual figcaption span { font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.project-type-visual figcaption strong { font-size: clamp(23px, 3vw, 38px); line-height: .98; }
.project-story .copy { max-width: 920px; }
.project-story .copy p:first-child { margin-top: 0; }
.project-references { max-width: 920px; margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line); }
.project-references ul { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.project-references a { display: inline-flex; min-height: 44px; align-items: center; color: var(--ink); text-decoration-color: var(--red); text-underline-offset: 5px; }
.project-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 34px 0 0; padding: 0; list-style: none; }
.project-tags li { padding: 8px 11px; border: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 750; }
.project-review-note { max-width: 850px; margin: 34px 0 0; padding: 20px 22px; border-left: 3px solid var(--red); background: #eceae5; color: var(--muted); font-size: 14px; }
.project-review-note strong { color: var(--ink); }
.project-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 42px; background: rgba(255,255,255,.18); }
.project-highlight { min-height: 220px; padding: 28px; background: #171717; display: flex; flex-direction: column; justify-content: flex-end; }
.project-highlight strong { color: white; font-size: clamp(42px, 6vw, 90px); line-height: .9; }
.project-highlight span { margin-top: 15px; color: rgba(255,255,255,.62); }
.project-gallery { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: clamp(16px, 2.2vw, 32px); margin-top: 48px; }
.project-gallery-item { grid-column: span 6; margin: 0; }
.project-gallery-item--wide { grid-column: span 12; }
.project-gallery-item--portrait { grid-column: span 5; }
.project-gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.project-gallery-item--wide img { aspect-ratio: 18 / 8; }
.project-gallery-item--portrait img { aspect-ratio: 4 / 5; }
.project-gallery-item figcaption { display: flex; justify-content: space-between; gap: 24px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.project-gallery-item figcaption small { font-size: inherit; }
.project-gallery-intro { margin-top: 24px; color: var(--muted); }
.project-gallery--browse { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 28px; margin-top: 28px; }
.project-gallery--browse .project-gallery-item { grid-column: auto; min-width: 0; }
.project-gallery--browse .project-gallery-item a { display: block; border: 1px solid var(--line); background: var(--white); color: var(--ink); text-decoration: none; }
.project-gallery--browse .project-gallery-item a:hover,
.project-gallery--browse .project-gallery-item a:focus-visible { border-color: var(--red); outline: 2px solid var(--red); outline-offset: 3px; }
.project-gallery--browse .project-gallery-item img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.project-gallery-enlarge { display: block; padding: 14px; font-size: 14px; font-weight: 800; color: var(--red); }
.project-gallery--browse figcaption { border: 0; font-size: 14px; display: block; line-height: 1.5; }
.project-gallery--browse figcaption small { display: block; margin-top: 6px; }
.project-gallery-dialog [data-design-large] { touch-action: pan-y pinch-zoom; }
.project-gallery-dialog [data-design-status]:empty { display: none; }
.design-gallery-dialog-bar button:disabled { opacity: .4; cursor: default; border-color: var(--line); }
@media (max-width: 640px) {
  .project-gallery--browse { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
  .project-gallery-enlarge { padding: 12px 8px; }
}
.portfolio-grid--related .portfolio-card { grid-column: span 6; }

.team-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 18px;
  margin-top: 55px;
}
.team-division-filter { display: grid; grid-template-columns: minmax(220px, 360px) auto; align-items: end; gap: 10px 18px; margin-top: 40px; }
.team-division-filter label { grid-column: 1; color: var(--red); font-size: 12px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.team-division-filter select { grid-column: 1; min-height: 48px; padding: 10px 42px 10px 14px; border: 1px solid var(--line); background: #fff; color: var(--ink); font: inherit; }
.team-division-filter p { grid-column: 2; grid-row: 2; margin: 0; color: var(--muted); font-size: 14px; }
.team-division-filter + .team-grid { margin-top: 28px; }
.team-card { position: relative; min-width: 0; }
.team-card-button { width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
.team-card-button:focus-visible { outline: 4px solid var(--red); outline-offset: 5px; }
.team-portrait {
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  border: 2px solid var(--red);
  overflow: hidden;
  background: #d9d7d0;
}
.team-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: grayscale(100%); transition: transform .5s var(--ease), filter .3s; }
.team-card:hover img { transform: scale(1.035); filter: grayscale(20%); }
.team-initials {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: #5c5b56;
  font-size: clamp(48px, 7vw, 96px);
  font-weight: 300;
  letter-spacing: -.06em;
  background: linear-gradient(145deg, #e5e3dc, #c8c5bd);
}
.team-meta { display: block; padding: 18px 3px 4px; }
.team-meta .division { display: block; min-height: 2.7em; color: var(--red); font-size: 11px; font-weight: 800; line-height: 1.35; letter-spacing: .11em; text-transform: uppercase; }
.linea-copy-wordmark { display: inline-flex; align-items: baseline; white-space: nowrap; font-family: "Helvetica Neue", "Arial Narrow", Arial, sans-serif; font-weight: 300; letter-spacing: .045em; }
.linea-copy-wordmark .linea-copy-i { color: var(--red); }
.linea-copy-wordmark--on-dark .linea-copy-i { color: #fff; }
.team-name { display: block; margin: 7px 0 4px; font-size: clamp(19px, 1.6vw, 28px); font-weight: 700; line-height: 1.05; letter-spacing: -.025em; }
.team-role { display: block; color: var(--muted); font-size: 14px; line-height: 1.4; }
.bio-toggle { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; padding: 8px 0; border: 0; border-bottom: 1px solid var(--red); background: none; color: var(--ink); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px,1fr));
  margin-top: 56px;
  margin-left: calc(var(--linea-rail-x) + 48px);
  margin-right: var(--gutter);
  border-top: 1px solid currentColor;
  border-left: 1px solid currentColor;
}
.stat { min-height: 175px; padding: 24px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; display: flex; flex-direction: column; justify-content: space-between; }
.stat strong { font-size: clamp(42px, 5.3vw, 82px); line-height: .9; letter-spacing: -.05em; font-weight: 650; }
.stat span { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .72; }
@media (max-width: 650px) { .stats-grid { margin-left: 24px; margin-right: 24px; } }

.service-list { margin-top: 55px; counter-reset: service; }
.service-row {
  width: 100%;
  display: grid;
  grid-template-columns: 110px minmax(260px,.7fr) minmax(320px,1fr) 36px;
  gap: clamp(20px,4vw,64px);
  align-items: center;
  min-height: 145px;
  padding: 24px 0;
  border-top: 1px solid var(--line);
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  transition: padding .25s var(--ease), background .25s;
}
.service-row:last-child { border-bottom: 1px solid var(--line); }
.service-row:hover,
.service-row:focus-visible { padding-left: 18px; padding-right: 18px; background: rgba(210,10,10,.04); }
.service-row:focus-visible { outline: 3px solid var(--red); outline-offset: -3px; }
.section-dark .service-row { border-color: rgba(255,255,255,.2); }
.section-dark .service-row:hover { background: rgba(255,255,255,.05); }
.service-number { color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .11em; }
.service-row-heading { margin: 0; font-size: clamp(24px, 2.9vw, 45px); font-weight: 700; line-height: 1.05; letter-spacing: -.035em; }
.service-row-copy { margin: 0; color: var(--muted); }
.section-dark .service-row-copy { color: rgba(255,255,255,.66); }
.service-arrow { color: var(--red); font-size: 30px; }

.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin-top: 55px;
  background: var(--line);
  border: 1px solid var(--line);
}
.process-card { min-height: 300px; padding: 30px; background: var(--paper); display: flex; flex-direction: column; }
.section-dark .process-grid { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.2); }
.section-dark .process-card { background: #171717; }
.process-card .num { color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .1em; }
.process-card h3 { margin: auto 0 13px; font-size: clamp(24px, 2.3vw, 36px); line-height: 1.02; letter-spacing: -.03em; }
.process-card p { margin: 0; color: var(--muted); }
.section-dark .process-card p { color: rgba(255,255,255,.62); }

.fee-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 55px; }
.fee-card { min-height: 390px; padding: 28px; display: flex; flex-direction: column; background: white; border-top: 5px solid var(--red); }
.fee-card .subtitle { color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.fee-card h3 { margin: 12px 0; font-size: 35px; }
.fee-card .value { margin: auto 0 18px; font-size: clamp(29px, 3vw, 50px); line-height: 1; letter-spacing: -.04em; }
.fee-card p { margin: 0; color: var(--muted); }

.catalogue-groups { margin-top: 55px; }
.catalogue-group + .catalogue-group { margin-top: 56px; }
.catalogue-group-title { margin: 0 0 20px; font-size: clamp(24px, 3vw, 36px); line-height: 1.15; letter-spacing: -.025em; }
.catalogue-group .catalogue-grid { margin-top: 0; }
.catalogue-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1px;
  margin-top: 55px;
  background: var(--line);
  border: 1px solid var(--line);
}
.catalogue-card {
  position: relative;
  min-height: 410px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  transition: background .25s, color .25s;
}
.catalogue-card-button { width: 100%; border: 0; color: inherit; text-align: left; }
.catalogue-card-button:focus-visible { z-index: 1; outline: 4px solid var(--red); outline-offset: -4px; }
.catalogue-card:hover { background: var(--ink); color: white; }
.catalogue-card .division { color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.catalogue-card h2,
.catalogue-card-title { display: block; margin: auto 0 12px; font-size: clamp(28px, 2.9vw, 44px); font-weight: 700; line-height: 1; letter-spacing: -.04em; }
.catalogue-card .kicker,
.catalogue-card-kicker { display: block; margin: 0 0 12px; font-weight: 700; }
.catalogue-card p,
.catalogue-card-copy { display: block; margin: 0 0 22px; color: var(--muted); }
.catalogue-card:hover p,
.catalogue-card:hover .catalogue-card-copy { color: rgba(255,255,255,.68); }
.catalogue-card--photo { isolation: isolate; overflow: hidden; background: var(--ink); color: white; }
.catalogue-card--photo .catalogue-card-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: none; }
.catalogue-card--photo::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.65) 35%, rgba(0,0,0,.94) 100%); }
.catalogue-card--photo::after { content: ''; position: absolute; inset: 0; z-index: -1; background: #000; opacity: 0; pointer-events: none; }
.catalogue-card--photo:hover::after, .catalogue-card--photo:focus-visible::after { opacity: .75; }
.catalogue-card--photo:hover p, .catalogue-card--photo:focus-visible p, .catalogue-card--photo:focus-visible .catalogue-card-copy { color: #fff; }
@media (prefers-reduced-motion: no-preference) { .catalogue-card--photo::after { transition: opacity .25s ease; } }
.catalogue-card--photo .division { margin-bottom: 64px; color: #ff9999; }
.catalogue-card--photo .catalogue-card-copy,
.catalogue-card--photo:hover .catalogue-card-copy { color: rgba(255,255,255,.9); }
.catalogue-card--photo .card-link { color: #ff9999; }
.catalogue-card--photo:focus-visible { outline-color: white; box-shadow: inset 0 0 0 7px var(--red); }
.catalogue-imagery-pending { order: 1; margin-top: auto; padding-top: 18px; font-size: 14px; color: var(--muted); }
.catalogue-card:hover .catalogue-imagery-pending { color: #ddd; }

.focus-collection { position: relative; }
.focus-viewer {
  position: relative;
  min-height: 620px;
  margin-top: 38px;
  scroll-margin-top: calc(var(--header-h) + 26px);
}
.focus-viewer-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.focus-viewer-toolbar .eyebrow { margin: 0; }
.focus-viewer-close {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid var(--red);
  background: transparent;
  color: var(--ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.focus-viewer-close:hover,
.focus-viewer-close:focus-visible { color: var(--red); }
.focus-viewer-close:focus-visible { outline: 3px solid rgba(192,0,0,.28); outline-offset: 4px; }
.focus-stage { min-width: 0; padding-top: clamp(34px, 5vw, 72px); }
.focus-collection--portfolio .focus-stage { padding-top: 24px; }
.focus-collection--portfolio .focus-panel { padding: clamp(24px,3vw,48px); background: var(--paper); border: 1px solid var(--line); }
.portfolio-selection-heading h3 { font-size: clamp(34px,4vw,62px); line-height: 1.05; margin: 16px 0; letter-spacing: -.04em; }
.portfolio-selection-heading > p:last-child { font-size: 18px; margin-bottom: 28px; }
.focus-collection--portfolio .focus-rail-control { min-height: 66px; height: auto; }
.focus-panel { min-width: 0; outline: none; scroll-margin-top: calc(var(--header-h) + 24px); }
.focus-panel:focus-visible { outline: none; }
.focus-panel:focus-visible h3 { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 8px; }
html.focus-transitioning .focus-panel:focus-visible h3 { text-decoration-color: transparent; }
.motion-enabled .focus-panel:not([hidden]) { animation: focus-panel-enter .34s var(--ease) both; }
.motion-enabled .has-switched .focus-panel:not([hidden]) { animation: none; }
@keyframes focus-panel-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.focus-rail { display: none; }
.focus-rail-list { display: grid; gap: 4px; }
.focus-rail-control {
  position: relative;
  display: grid;
  width: 52px;
  min-height: 52px;
  place-items: center;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(17,17,17,.2);
  background: rgba(244,243,239,.94);
  color: var(--ink);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .06em;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
  backdrop-filter: blur(9px);
  transition: color .2s, background-color .2s, border-color .2s, transform .24s var(--ease);
}
.focus-rail-control img { width: 100%; height: 62px; object-fit: cover; object-position: center top; filter: grayscale(100%); transition: filter .25s, transform .35s var(--ease); }
.project-rail-control { height: auto; min-height: 92px; grid-template-rows: 54px auto; align-content: start; }
.project-rail-control img { height: 54px; }
.project-rail-name { width: 100%; padding: 5px 3px 7px; font-size: 7px; font-weight: 850; letter-spacing: .025em; line-height: 1.1; overflow-wrap: anywhere; }
.focus-rail-control:hover,
.focus-rail-control:focus-visible { z-index: 1; color: var(--ink); background: rgba(244,243,239,.94); border-color: var(--red); }
.focus-rail-control.is-active,
.focus-rail-control[aria-current='page'] { z-index: 1; color: white; background: var(--red); border-color: var(--red); }
.focus-rail-control:hover img,
.focus-rail-control:focus-visible img,
.focus-rail-control.is-active img,
.focus-rail-control[aria-current='page'] img { filter: grayscale(0); transform: scale(1.045); }
.focus-rail-control:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.focus-rail-index { display: block; max-width: 46px; padding: 5px; overflow-wrap: anywhere; }
.service-rail-label {
  display: grid;
  width: 100%;
  max-width: none;
  gap: 4px;
  padding: 6px 3px;
}
.service-rail-number { color: var(--red); font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.service-rail-name { font-size: 8px; font-weight: 850; letter-spacing: .035em; line-height: 1.12; overflow-wrap: anywhere; }
.focus-collection--services .focus-rail-control,
.focus-collection--catalogue .focus-rail-control { min-height: 66px; height: auto; }
.focus-rail-initials { font-size: 15px; letter-spacing: -.03em; }
.service-focus-heading { max-width: 980px; }
.service-focus-heading h3,
.specialized-service-panel h3,
.team-focus-copy h3 { margin: 14px 0 20px; font-size: clamp(48px, 7vw, 102px); line-height: .9; letter-spacing: -.06em; }
.portfolio-grid--service { margin-top: 48px; }
.portfolio-grid--service .portfolio-card { grid-column: span 6; }
.service-portfolio-empty {
  max-width: 980px;
  margin: 48px 0 34px;
  padding: clamp(30px, 5vw, 70px);
  border: 1px solid var(--line);
  background: white;
}
.service-portfolio-empty h4 { max-width: 760px; margin: 12px 0 18px; font-size: clamp(30px, 4vw, 56px); line-height: .98; letter-spacing: -.045em; }
.service-portfolio-empty p:last-child { max-width: 780px; color: var(--muted); }
.specialized-service-panel { max-width: 1050px; padding: clamp(26px, 5vw, 76px); border: 1px solid var(--line); background: var(--paper); }
.specialized-service-kicker { max-width: 780px; margin: 0 0 18px; font-size: clamp(20px, 2.2vw, 30px); font-weight: 750; }
.specialized-service-panel .lead { max-width: 850px; }
.specialized-service-details { display: grid; gap: 26px; margin-top: 30px; }
.specialized-service-details h4 { margin: 0 0 10px; font-size: 22px; }
.specialized-service-details p { margin: 0; font-size: 18px; line-height: 1.6; }
.architecture-service-external { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); }
.architecture-service-external p { font-size: 18px; line-height: 1.6; }
.service-videos { display: grid; gap: 32px; margin-top: 32px; }
.service-video h4 { margin: 0 0 14px; font-size: 22px; }
.service-video .youtube-frame { min-height: 0; }
.service-video .youtube-frame iframe { min-height: 0; }
.specialized-service-panel .btn { margin-top: 28px; }
.specialized-service-work { border-top: 1px solid var(--line); margin-top: 34px; padding-top: 26px; }
.specialized-service-work h4 { margin: 0; font-size: 22px; }
.specialized-service-work .portfolio-grid { margin-top: 24px; }
.specialized-service-work .portfolio-card-copy h3 { font-size: clamp(24px, 2.3vw, 32px); line-height: 1.15; letter-spacing: -.025em; }
.specialized-service-work .portfolio-card-summary { font-size: 16px; }
.service-sample-note { font-size: 16px; color: var(--muted); }
.service-portfolio-link { display: inline-block; padding: 10px 0; border-bottom: 1px solid var(--red); font-weight: 700; }
.service-contact-prompt { margin: 24px 0 32px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.service-contact-prompt p { margin: 0; font-size: 18px; }
.featured-project-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; margin-top: 36px; }
@media (max-width:1200px) { .featured-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.featured-project-card { padding: 0; text-align: left; color: var(--ink); background: var(--paper); border: 1px solid var(--line); }
.featured-project-card:hover, .featured-project-card:focus-visible { border-color: var(--red); background: var(--paper); }
.featured-project-card > img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.featured-project-card-copy { padding: 24px; display: grid; gap: 16px; }
.featured-project-card-copy strong { font-size: clamp(24px,2.2vw,34px); line-height: 1.15; letter-spacing: -.035em; }
.featured-project-panel { position: relative; isolation: isolate; overflow: hidden; background: #252525; color: white; border: 1px solid #555; display: grid; min-width: 0; }
.featured-project-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
/* The photograph stays square; the text can grow beyond it at enlarged text sizes. */
.featured-project-panel > img { grid-area: 1 / 1; align-self: start; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center; filter: grayscale(1); }
.featured-project-panel::before { content: ''; grid-area: 1 / 1; z-index: 1; background: linear-gradient(180deg, #0007, #000d); pointer-events: none; }
.featured-project-panel-copy { grid-area: 1 / 1; z-index: 2; display: flex; flex-direction: column; gap: 18px; padding: 26px; min-width: 0; }
.featured-project-panel h3 { font-size: clamp(26px, 2.2vw, 36px); line-height: 1.1; margin: 0; letter-spacing: -.035em; overflow-wrap: anywhere; }
.featured-project-panel-copy > p { font-size: 16px; line-height: 1.5; margin: 0; }
.featured-project-panel-copy > .eyebrow { font-size: 12px; color: #ff8888; }
.featured-project-panel-link { margin-top: auto; padding-top: 18px; font-size: 16px; font-weight: 700; color: #ff8888; text-decoration: none; }
.featured-project-panel-link::after { content: ''; position: absolute; inset: 0; }
.featured-project-panel:has(a:hover), .featured-project-panel:focus-within { border-color: var(--red); }
.featured-project-panel:has(a:hover)::before, .featured-project-panel:focus-within::before { background: #000d; }
.featured-project-panel:has(a:focus-visible) { outline: 3px solid var(--red); outline-offset: 4px; }
@media(max-width:1200px) { .featured-project-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:650px) { .featured-project-list,.featured-project-grid { grid-template-columns: 1fr; } }
.specialized-service-panel .service-contact-prompt .btn { margin-top: 16px; }
.team-focus-layout { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); gap: clamp(34px, 7vw, 110px); align-items: start; }
.team-focus-portrait { min-width: 0; aspect-ratio: 1 / 1; border: 2px solid var(--red); overflow: hidden; background: #d9d7d0; }
.team-focus-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: grayscale(12%); }
.team-focus-copy { align-self: center; max-width: 820px; }
/* Profile cards stay light even when embedded in the dark homepage section. */
.team-focus-copy h3 { color: var(--ink); }
.team-focus-role { color: var(--red); font-weight: 750; }
.team-focus-role--primary { margin: 0 0 26px; font-size: clamp(18px, 2vw, 27px); }
.team-focus-role--primary.has-secondary { margin-bottom: 4px; }
.team-focus-role--extended { margin: 0 0 24px; font-size: clamp(15px, 1.55vw, 22px); line-height: 1.15; }
.team-focus-bio { color: var(--muted); font-size: clamp(18px, 1.55vw, 23px); line-height: 1.58; }
.team-focus-bio p { margin: 0 0 18px; }
.team-focus-note { margin: 22px 0 0; padding: 14px 18px; color: #6b3b3b; background: rgba(192,0,0,.055); border-left: 3px solid var(--red); font-size: 13px; font-weight: 650; line-height: 1.45; }
.team-focus-contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 30px; margin: 30px 0 0; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.team-focus-contact div { min-width: 0; }
.team-focus-contact dt { margin-bottom: 6px; color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.team-focus-contact dd { margin: 0; font-size: clamp(15px, 1.35vw, 19px); overflow-wrap: anywhere; }
.team-focus-contact a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 5px; }
.team-contact-card a { gap: 8px; }
.linkedin-mark { display: inline-grid; width: 22px; height: 22px; place-items: center; border-radius: 2px; background: #0a66c2; color: white; font-size: 13px; font-weight: 850; line-height: 1; text-decoration: none; }
.team-focus-contact a:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.team-focus-quote { margin: 30px 0 0; padding: 0 0 0 24px; border-left: 4px solid var(--red); }
.team-focus-quote blockquote { margin: 0; }
.team-focus-quote p { margin: 0; color: var(--ink); font-size: clamp(20px, 2.1vw, 30px); font-weight: 650; line-height: 1.3; letter-spacing: -.025em; }
.team-focus-quote figcaption { margin-top: 12px; color: var(--muted); font-size: 13px; }
.team-focus-credentials { margin-top: 30px; }
.team-focus-credentials ul { display: grid; gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.team-focus-credentials li { position: relative; padding-left: 24px; color: var(--muted); line-height: 1.45; }
.team-focus-credentials li::before { content: ''; position: absolute; top: .7em; left: 0; width: 12px; height: 2px; background: var(--red); }
.team-focus-organizations { margin-top: 30px; }
.team-focus-organizations ul { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.team-focus-organizations a { display: inline-flex; min-height: 44px; align-items: center; color: var(--ink); text-decoration-color: var(--red); text-underline-offset: 5px; }
.design-gallery { margin-top: 20px; }
.design-gallery-intro { font-size: 1rem; margin: 0 0 8px; max-width: 980px; }
.design-gallery-note { color: var(--muted); font-size: .875rem; margin: 0 0 16px; }
.design-gallery-disclaimer { margin-top: 20px; }
.design-gallery-documents { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); }
.design-gallery-documents h4 { font-size: 1.5rem; margin: 0 0 16px; }
.design-gallery-documents ul { padding-left: 20px; }
.design-gallery-documents a { display: inline-block; padding: 10px 0; color: var(--red); text-underline-offset: 4px; }
.design-gallery-documents a:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.design-gallery-documents span { font-size: .875rem; }
.client-guide-native .lead { max-width: 900px; }
.client-guide-notice { margin: 28px 0; padding: 18px 20px; border-left: 3px solid var(--red); background: var(--paper); color: var(--muted); line-height: 1.6; }
.client-guide-notice strong { color: var(--ink); }
.client-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 42px; }
.client-guide-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--line); background: white; }
.client-guide-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #efeee9; border-bottom: 1px solid var(--line); }
.client-guide-card > div { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 24px; }
.client-guide-card h2 { margin: 4px 0 12px; font-size: 1.55rem; line-height: 1.12; letter-spacing: -.025em; }
.client-guide-card p:not(.eyebrow) { flex: 1; color: var(--muted); line-height: 1.55; }
.client-guide-card .btn { margin-top: 20px; }
.client-guide-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 480px); align-items: start; gap: clamp(32px, 6vw, 90px); }
.client-guide-detail figure { margin: 0; border: 1px solid var(--line); background: var(--paper); }
.client-guide-detail figure img { display: block; width: 100%; height: auto; }
.client-guide-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.client-guide-pagination { display: flex; justify-content: space-between; gap: 24px; margin-top: 42px; padding-top: 24px; border-top: 1px solid var(--line); }
.client-guide-pagination a { max-width: 46%; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:1000px){.client-guide-grid{grid-template-columns:1fr 1fr}.client-guide-detail{grid-template-columns:1fr}.client-guide-detail figure{max-width:520px}}
@media(max-width:600px){.client-guide-grid{grid-template-columns:1fr}.client-guide-pagination{flex-direction:column}.client-guide-pagination a{max-width:none}.client-guide-actions .btn{width:100%}}
.design-gallery-row { margin-top: 18px; min-width: 0; scroll-margin-top: calc(var(--header-h) + 24px); }
.design-gallery-row-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; border-top: 1px solid var(--line); padding-top: 10px; }
.design-gallery-row-heading h4 { font-size: 1.25rem; line-height: 1.2; margin: 0; }
.design-gallery-row-nav { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.design-gallery-row-nav span { font-size: .875rem; font-variant-numeric: tabular-nums; margin-right: 6px; }
.design-gallery-row-nav button { width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); background: transparent; color: var(--ink); font-size: 1.25rem; }
.design-gallery-row-nav button:hover:not(:disabled) { border-color: var(--red); color: var(--red); }
.design-gallery-row-nav button:disabled { opacity: .35; cursor: default; }
.design-gallery-row-nav button:focus-visible, .design-gallery-track:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.design-gallery-track { --design-visible: 6; --design-gap: 12px; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--design-visible) - 1) * var(--design-gap)) / var(--design-visible)); gap: var(--design-gap); overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--red) transparent; padding: 4px 0 10px; cursor: grab; direction: ltr; }
.design-gallery-track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.design-gallery-track figure { min-width: 0; margin: 0; scroll-snap-align: start; }
.design-gallery-track a { display: block; background: #fff; }
.design-gallery-track a:focus-visible { outline: 2px solid var(--red); outline-offset: -2px; }
.design-gallery-track img { display: block; width: 100%; height: clamp(100px,9vw,150px); object-fit: cover; user-select: none; }
.design-gallery-track figcaption { font-size: .875rem; line-height: 1.25; padding-top: 8px; min-height: 2.5em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.design-gallery-empty { font-size: .875rem; color: var(--muted); margin: 0; }
@media (max-width: 1050px) { .design-gallery-track { --design-visible: 3; } .design-gallery-track img { height: 140px; } }
@media (max-width: 640px) { .design-gallery-track { --design-visible: 2; } .design-gallery-row-heading { align-items: flex-start; flex-wrap: wrap; } .design-gallery-row-nav { margin-left: auto; } .design-gallery-track img { height: 125px; } }
.design-gallery-dialog { width: min(1200px,94vw); max-height: 94dvh; padding: 20px; background: #f5f4f0; color: #111; border: 1px solid var(--red); }
.design-gallery-dialog::backdrop { background: rgba(0,0,0,.86); }
.service-photo-gallery { margin: 28px 0; }
.service-photo-sample-title { margin: 0 0 12px; font-size: 1.5rem; line-height: 1.2; }
.service-photo-sample-summary { margin: 0 0 20px; font-size: 1rem; line-height: 1.6; }
.service-photo-note { font-size: 14px; margin: 0 0 16px; }
.service-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; }
.service-photo-grid figure { margin: 0; min-width: 0; }
.service-photo-grid a { display: block; background: #fff; }
.service-photo-grid img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.service-photo-grid figcaption { margin-top: 10px; font-size: 16px; line-height: 1.5; }
@media (max-width: 1000px) { .service-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .service-photo-grid { grid-template-columns: minmax(0, 1fr); } }
.design-gallery-dialog img { display: block; width: 100%; height: min(66dvh,850px); object-fit: contain; background: white; }
.design-gallery-dialog-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
.design-gallery-dialog-bar button { min-height: 44px; border: 0; border-bottom: 1px solid var(--red); background: transparent; font: inherit; cursor: pointer; }
.design-gallery-dialog-bar [data-design-close] { margin-left: auto; }
.design-gallery-dialog h4 { font-size: 24px; margin: 20px 0 8px; }
.design-gallery-dialog p { margin: 0; }
@media (max-width: 640px) { .design-gallery-dialog { padding: 12px; } }
.page-hero {
  position: relative;
  min-height: max(620px, 78svh);
  padding: calc(var(--header-h) + 90px) var(--gutter) 78px;
  display: flex;
  align-items: flex-end;
  color: white;
  background-color: #222;
  background-position: center;
  background-size: cover;
  isolation: isolate;
}
.page-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.90), rgba(0,0,0,.24)); }
.page-hero .entry-hero-video { z-index: -2; }
.page-hero--architecture-film { --architecture-film-inset: calc(var(--linea-rail-x) + clamp(16px, 2vw, 32px)); min-height: max(680px, 86svh); padding-bottom: 110px; background-color: #111; background-size: calc(100% - var(--architecture-film-inset)) auto; background-position: right center; background-repeat: no-repeat; }
/* Keep the film's own lettering to the right of the fixed division rail.
   Contain preserves the full frame; the headline and navigation do not move. */
.architecture-hero-film { position: absolute; z-index: -2; inset: var(--header-h) 0 0 var(--architecture-film-inset); width: calc(100% - var(--architecture-film-inset)); height: calc(100% - var(--header-h)); object-fit: contain; background: #111; }
.page-hero--architecture-film::before { transition: opacity .65s ease; }
.page-hero--architecture-film .page-hero-content { transition: opacity .65s ease; }
.page-hero--architecture-film.film-intro .page-hero-content { opacity: 0; pointer-events: none; }
.page-hero--architecture-film.film-intro::before { opacity: .12; }
.architecture-film-toggle { position: absolute; bottom: 24px; right: var(--gutter); min-height: 44px; padding: 10px 18px; border: 1px solid white; background: rgba(0,0,0,.72); color: white; font: inherit; cursor: pointer; }
.architecture-film-toggle:focus-visible { outline: 3px solid white; outline-offset: 4px; }
.architecture-film-toggle[hidden], .architecture-hero-film[hidden] { display: none; }
.page-hero--architecture-film[data-film-phase="film"] .hero-slides,
.page-hero--architecture-film[data-film-phase="film"] .hero-slide-captions,
.page-hero--architecture-film[data-film-phase="film"] .hero-slideshow-controls { display: none; }
.page-hero--architecture-film .hero-slides { filter: brightness(.55) contrast(1.08); }
@media (prefers-reduced-motion: reduce) { .page-hero--architecture-film .page-hero-content, .page-hero--architecture-film::before { transition: none; } }
.page-hero-content { width: min(var(--content), 100%); margin: 0 auto; padding-left: clamp(18px, 5vw, 72px); }
.page-hero h1 { max-width: 1000px; margin: 0; font-size: clamp(58px, 9vw, 144px); line-height: .84; letter-spacing: -.07em; text-wrap: balance; }
.page-hero .summary { max-width: 800px; margin: 26px 0 0; font-size: clamp(19px,2.1vw,29px); line-height: 1.35; color: rgba(255,255,255,.85); }
.hero-slides { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: #222; }
.hero-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.2s ease; }
.hero-slide.is-active { opacity: 1; }
@keyframes banner-pan { from { transform: scale(var(--slide-base-scale, 1)); } to { transform: scale(calc(var(--slide-base-scale, 1) * var(--hero-zoom, 1.16))); } }
@keyframes banner-pan-repeat { from { transform: scale(var(--slide-base-scale, 1)); } to { transform: scale(calc(var(--slide-base-scale, 1) * var(--hero-zoom, 1.16))); } }
@media (prefers-reduced-motion: no-preference) {
  [data-slideshow-running] .hero-slide.is-active,
  [data-slideshow-running] .hero-slide.is-active + .hero-slide-accent { animation: banner-pan var(--hero-duration, 7s) ease-in-out both paused; }
  [data-banner-pass="true"] .hero-slide.is-active,
  [data-banner-pass="true"] .hero-slide.is-active + .hero-slide-accent { animation-name: banner-pan-repeat; }
  [data-slideshow-running="true"] .hero-slide.is-active,
  [data-slideshow-running="true"] .hero-slide.is-active + .hero-slide-accent { animation-play-state: running; }
}
.page-forensics .hero-slide { filter: grayscale(1) contrast(1.04); }
.hero-slide[data-treatment="selective-red"] { filter: none; }
.hero-slide[data-treatment="monochrome"] { filter: grayscale(1) brightness(.66) contrast(1.08); }
.hero-treatment-filter { position: absolute; pointer-events: none; }
.hero-slide-accent[data-accent-tint="red"] { filter: url(#linea-hero-red-ink); }
.page-interior-design .hero-slides { filter: brightness(.72) contrast(1.08); }
.page-services .hero-slides { filter: brightness(.78) contrast(1.06); }
.hero-slideshow-selectors { flex-wrap: wrap; }
.hero-slide-accent { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; visibility: hidden; transition: opacity 1.2s ease; }
.hero-slide-accent[data-ready="true"] { visibility: visible; }
.hero-slide.is-active + .hero-slide-accent { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .hero-slide-accent { transition: none; } }
.hero-slideshow-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 30px; }
.hero-slideshow-countdown { color: #fff; background: rgba(0,0,0,.65); padding: 10px 14px; min-height: 44px; display: inline-flex; align-items: center; font-size: .875rem; font-variant-numeric: tabular-nums; }
.hero-slideshow-controls button:disabled { opacity: .55; cursor: default; }
.hero-slideshow-controls[hidden], .hero-slides[hidden] { display: none; }
.hero-slideshow-selectors { display: flex; gap: 8px; }
.hero-slide-captions { max-width: 660px; margin-top: 24px; padding: 14px 18px; border-left: 2px solid var(--red); background: rgba(0,0,0,.66); }
.hero-slide-project { margin: 0 0 6px; font-weight: 700; font-size: .875rem; letter-spacing: .08em; text-transform: uppercase; }
.hero-slide-caption { margin: 0; font-size: 1rem; line-height: 1.45; color: #fff; }
.hero-slide-captions [hidden], .hero-slide-captions:not(:has(> :not([hidden]))) { display: none; }
.hero-slideshow-controls button { min-height: 44px; min-width: 44px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.6); background: rgba(0,0,0,.5); color: #fff; font: inherit; font-size: .875rem; cursor: pointer; }
.hero-slideshow-controls button:hover, .hero-slideshow-controls button[aria-pressed="true"] { background: var(--red); border-color: var(--red); }
.hero-slideshow-controls button:focus-visible { outline: 2px solid white; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .hero-slide { transition: none; } }
.knowledge-hero { overflow: hidden; }
.knowledge-hero-content { position: relative; z-index: 2; padding-right: clamp(270px, 29vw, 405px); }
.knowledge-brand-type { font-family: "Times New Roman", Times, serif; font-weight: 400; letter-spacing: -.025em; line-height: .94; }
.knowledge-brand-type--red { color: var(--red); }
.process-journey { margin-top: 36px; }
.process-journey-help { color: #bcbcbc; font-size: 16px; margin-bottom: 30px; }
.process-journey-track { --journey-progress: 0; display: grid; grid-template-columns: repeat(var(--journey-count), minmax(0,1fr)); position: relative; isolation: isolate; gap: 0; }
.process-journey-track::before, .process-journey-track::after { content: ''; position: absolute; height: 2px; top: 9px; left: 10px; z-index: -1; }
.process-journey-track::before { width: calc(100% - 100% / var(--journey-count)); background: var(--red); }
.process-journey-track::after { width: calc((100% - 100% / var(--journey-count)) * var(--journey-progress)); background: var(--red); transition: width .35s ease; }
.process-journey-step { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 0 0 16px; color: #bbb; text-decoration: none; min-width: 0; min-height: 100px; }
.process-journey-dot { display: block; width: 20px; height: 20px; border: 2px solid var(--red); border-radius: 0; background: var(--red); }
.process-journey-step strong { font-size: clamp(18px, 2.2vw, 28px); line-height: 1.2; overflow-wrap: anywhere; }
.process-journey-step[aria-selected='true'], .process-journey-step:hover { color: #fff; }
.process-journey-step[aria-selected='true'] .process-journey-dot { border-color: var(--red); background: #fff; box-shadow: 0 0 0 5px #e4e3e0; }
.process-journey-step:focus-visible, .process-journey-panel:focus-visible { outline: 2px solid #fff; outline-offset: 7px; }
.process-journey-status { color: #bbb; min-height: 24px; margin: 14px 0; font-size: 14px; }
.process-journey-panel { display: grid; grid-template-columns: minmax(90px,.3fr) minmax(0,1fr); gap: clamp(24px,4vw,64px); align-items: start; border: 1px solid #d0ceca; border-radius: 36px; padding: clamp(28px,4vw,56px); background: #efeeea; color: #111; scroll-margin-top: calc(var(--header-h) + 24px); }
.process-journey-panel + .process-journey-panel { margin-top: 24px; }
.process-journey-panel[hidden] { display: none; }
.process-journey-visual { position: relative; isolation: isolate; display: grid; place-items: center; width: 100%; max-width: 240px; aspect-ratio: 1 / 1; overflow: hidden; background: var(--red); }
.process-journey-visual img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.process-journey-visual::after { content: ''; position: absolute; z-index: -1; inset: 0; background: rgba(164, 0, 0, .7); }
.process-journey-brand { padding: 8px 10px; background: #efeeea; color: #333; font-family: "Times New Roman", Times, serif; font-size: clamp(11px, 1.5vw, 21px); line-height: .98; letter-spacing: .06em; text-transform: uppercase; }
.process-journey-visual .process-journey-visual-title { position: relative; margin: 0; padding: 12px; color: white; font-size: clamp(18px, 2.2vw, 32px); font-weight: 750; line-height: 1.12; text-align: center; text-wrap: balance; }
.process-journey-panel h3 { font-size: clamp(30px,4vw,52px); margin: 0 0 18px; line-height: 1.1; }
.process-journey-panel p { font-size: clamp(18px,2vw,24px); line-height: 1.55; color: #333; max-width: 760px; margin: 0; }
.journey-story { margin-top: 24px; }
.process-journey-panel .card-link::after { content: none; }
.journey-story-paragraph { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 20px; padding: 0 0 26px; position: relative; }
.journey-story-paragraph:last-child { padding-bottom: 0; }
.journey-story-paragraph:not(:last-child)::before { content: ''; position: absolute; top: 32px; bottom: 0; left: 15px; width: 1px; background: #c9c6c1; }
.journey-story-marker { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--red); color: var(--red); font-size: 13px; font-weight: 700; background: #efeeea; }
.journey-number-pending { visibility: hidden; }
.process-journey-visual.journey-number-flight { position: fixed; z-index: 90; max-width: none; pointer-events: none; transform-origin: top left; margin: 0; border-radius: 0; }
.process-journey[data-journey-enhanced] .process-journey-panel { margin-top: 0; }
@media (max-width: 600px) {
  .process-journey-track { gap: 0; }
  .process-journey-step { min-height: 104px; gap: 12px; }
  .process-journey-step strong { font-size: 16px; }
  .process-journey-panel { grid-template-columns: minmax(0,1fr); gap: 18px; padding: 24px; }
  .process-journey-visual { max-width: 120px; }
  .process-journey-visual .process-journey-visual-title { font-size: 16px; padding: 6px; }
}
@media (prefers-reduced-motion: reduce) { .process-journey-track::after { transition: none; } }
.knowledge-hero-brandmark {
  position: absolute;
  z-index: 1;
  right: clamp(24px, 6vw, 88px);
  bottom: clamp(46px, 6vw, 82px);
  width: clamp(225px, 23vw, 335px);
  margin: 0;
  filter: drop-shadow(0 22px 32px rgba(0,0,0,.34));
}
.knowledge-hero-brandmark::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 13px -13px -13px 13px;
  border: 1px solid rgba(255,255,255,.28);
}
.knowledge-hero-brandmark img { display: block; width: 100%; height: auto; animation: knowledge-brand-dissolve 3s ease-out both; }
@keyframes knowledge-brand-dissolve {
  0% { opacity: 0; filter: grayscale(1); }
  75% { opacity: 1; filter: grayscale(1); }
  100% { opacity: 1; filter: grayscale(0); }
}
@media (prefers-reduced-motion: reduce) {
  .knowledge-hero-brandmark img { animation: none; opacity: 1; filter: none; }
}

html.focus-transitioning::view-transition-group(*) {
  animation-duration: 1s;
  animation-timing-function: cubic-bezier(.4,0,.2,1);
}
html.focus-transitioning::view-transition-old(root),
html.focus-transitioning::view-transition-new(root) {
  animation: none;
  mix-blend-mode: normal;
}

.video-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.video-card { background: white; }
.video-frame { position: relative; aspect-ratio: 16 / 9; background: #171717 url('/assets/visuals/architecture-night.webp') center / cover; display: grid; place-items: center; overflow: hidden; }
.video-frame::before { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,.48); }
.video-frame .play-button { position: relative; z-index: 1; margin: 0; }
.video-copy { padding: 26px; }
.video-copy .category { color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.video-copy h2 { margin: 9px 0 12px; font-size: clamp(25px, 2.5vw, 38px); line-height: 1.05; }
.video-copy p { margin: 0; color: var(--muted); }
.video-channel-link { margin-top: 26px; }
.youtube-frame { background: #111; aspect-ratio: 16/9; min-height: 200px; }
.youtube-frame iframe { display: block; width: 100%; height: 100%; min-height: 200px; border: 0; }
.video-library-note { font-size: 16px; color: var(--muted); margin: 20px 0 32px; }

.contact-layout { display: grid; grid-template-columns: minmax(270px,.65fr) minmax(430px,1.35fr); gap: clamp(45px, 8vw, 130px); }
.contact-facts { display: grid; gap: 30px; margin-top: 40px; }
.contact-fact span { display: block; color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contact-fact strong, .contact-fact a { display: block; margin-top: 7px; font-size: 20px; line-height: 1.35; }
a[href^="tel:"] { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: .2em; }
.contact-fact address { margin-top: 7px; font-size: 20px; font-style: normal; line-height: 1.5; }
.contact-fact .contact-phone-link, .contact-fact .contact-email-link { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: .2em; }
.contact-email-guidance { margin: 8px 0 0; font-size: 16px; line-height: 1.5; opacity: 0; pointer-events: none; }
.contact-email-guidance a { display: inline; margin: 0; font: inherit; text-decoration: underline; text-underline-offset: .2em; }
.contact-fact--email:hover .contact-email-guidance,
.contact-fact--email:focus-within .contact-email-guidance { opacity: 1; pointer-events: auto; }
.contact-fact a:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
@media (hover: none), (pointer: coarse) {
  .contact-email-guidance { opacity: 1; pointer-events: auto; }
}
#contact-form { scroll-margin-top: calc(var(--header-h) + 24px); }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; }
.field { display: grid; gap: 7px; }
.field-full { grid-column: 1 / -1; }
.field label { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.field input, .field select, .field textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  padding: 12px 3px;
  color: var(--ink);
  outline: none;
}
.field textarea { min-height: 150px; resize: vertical; border: 1px solid var(--ink); padding: 13px; }
.contact-context-intro { margin: 24px 0; font-size: 1rem; line-height: 1.6; }
.contact-message-help { margin: 10px 0 0; font-size: .875rem; line-height: 1.5; color: var(--muted); }
[data-contact-reset] { white-space: normal; text-align: left; margin-bottom: 24px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--red); box-shadow: 0 2px 0 var(--red); }
.consent-field { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 12px; font-size: 14px; line-height: 1.5; }
.consent-field input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--red); }
.consent-field label { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 500; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-form button[disabled] { cursor: not-allowed; opacity: .5; }
.form-status { min-height: 1.5em; margin: 0; color: var(--red); }

.consultation-hero::before { background: linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.31)); }
.consultation-hero .page-hero-content { max-width: 1250px; }
.consultation-facts { padding: 0 var(--gutter) 0; background: var(--red); color: white; }
.consultation-facts-inner { display: grid; grid-template-columns: repeat(3,1fr); width: min(var(--content),100%); margin: 0 auto; padding-left: clamp(18px,5vw,72px); }
.consultation-facts-inner > div { display: grid; gap: 7px; min-height: 150px; align-content: center; padding: 26px 38px; border-left: 1px solid rgba(255,255,255,.3); }
.consultation-facts-inner > div:last-child { border-right: 1px solid rgba(255,255,255,.3); }
.consultation-facts strong { font-size: clamp(30px,3.5vw,56px); line-height: .95; letter-spacing: -.05em; }
.consultation-facts span { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.consultation-intake-layout { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(540px,1.28fr); gap: clamp(48px,8vw,120px); align-items: start; }
.consultation-intake-copy { position: sticky; top: calc(var(--header-h) + 40px); }
.consultation-mini-steps { display: grid; gap: 0; margin: 38px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.consultation-mini-steps li { display: grid; grid-template-columns: 46px 1fr; align-items: center; min-height: 62px; border-bottom: 1px solid var(--line); font-weight: 700; }
.consultation-mini-steps span { color: var(--red); font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.consultation-sample .consultation-mini-steps { border-color: rgba(255,255,255,.25); }
.consultation-sample .consultation-mini-steps li { border-color: rgba(255,255,255,.25); color: #fff; }
.consultation-policy-note { margin: 25px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.consultation-form { padding: clamp(28px,4vw,58px); background: #efeee9; border-top: 4px solid var(--red); }
.consultation-project-type { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; border: 0; }
.consultation-project-type legend { width: 100%; margin-bottom: 7px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.consultation-project-type label { cursor: pointer; }
.consultation-project-type input { position: absolute; opacity: 0; pointer-events: none; }
.consultation-project-type span { display: inline-flex; min-width: 145px; min-height: 48px; align-items: center; justify-content: center; padding: 10px 18px; border: 1px solid var(--ink); font-size: 12px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; transition: .2s var(--ease); }
.consultation-project-type input:checked + span { color: white; background: var(--red); border-color: var(--red); }
.consultation-project-type input:focus-visible + span { outline: 3px solid var(--red); outline-offset: 3px; }
.consultation-postal-field { max-width: calc(50% - 9px); }
.consultation-sample { padding: clamp(80px,10vw,150px) var(--gutter); }
.consultation-sample-layout { display: grid; grid-template-columns: minmax(280px,.65fr) minmax(520px,1.35fr); gap: clamp(48px,8vw,120px); align-items: center; }
.consultation-sample-copy { padding-left: clamp(18px,5vw,72px); }
.consultation-review-label { margin-top: 28px; color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.consultation-video-placeholder { position: relative; min-height: 480px; display: flex; align-items: flex-end; padding: clamp(25px,4vw,48px); isolation: isolate; overflow: hidden; background-position: center; background-size: cover; border-left: 3px solid var(--red); }
.consultation-video-placeholder::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.88), rgba(0,0,0,.16)); }
.consultation-video-placeholder > div { display: grid; gap: 7px; margin-left: 24px; }
.consultation-video-placeholder strong { font-size: clamp(22px,2.5vw,36px); letter-spacing: -.03em; }
.consultation-video-placeholder div span { color: rgba(255,255,255,.67); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.consultation-play { width: 58px; height: 58px; flex: 0 0 58px; border: 2px solid white; border-radius: 50%; }
.consultation-play::after { content: ''; display: block; margin: 18px 0 0 22px; border-top: 9px solid transparent; border-bottom: 9px solid transparent; border-left: 14px solid white; }
.consultation-deliverables-intro { max-width: 900px; }
.consultation-deliverable-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 52px; }
.consultation-deliverable-card { background: #efeee9; border-bottom: 3px solid var(--red); }
.consultation-deliverable-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: grayscale(.55); }
.consultation-deliverable-card > div { padding: 27px; }
.consultation-deliverable-card span { color: var(--red); font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.consultation-deliverable-card h3 { margin: 12px 0; font-size: clamp(25px,2.4vw,38px); line-height: 1.03; letter-spacing: -.04em; }
.consultation-deliverable-card p { margin: 0; color: var(--muted); line-height: 1.55; }
.consultation-process { background: #efeee9; }
.consultation-process-list { margin-top: 48px; border-top: 1px solid #c9c8c3; }
.consultation-process-list article { display: grid; grid-template-columns: 105px minmax(0,1fr); gap: 28px; padding: 34px 0; border-bottom: 1px solid #c9c8c3; }
.consultation-process-list article > span { color: var(--red); font-size: 13px; font-weight: 900; letter-spacing: .12em; }
.consultation-process-list h3 { margin: 0 0 8px; font-size: clamp(25px,2.7vw,42px); line-height: 1; letter-spacing: -.04em; }
.consultation-process-list p { max-width: 880px; margin: 0; color: var(--muted); font-size: clamp(16px,1.5vw,21px); line-height: 1.55; }
.consultation-closing .cta-inner { max-width: var(--content); }

.cta {
  position: relative;
  padding: clamp(72px, 9vw, 140px) var(--gutter);
  background: var(--red);
  color: white;
  overflow: hidden;
}
.cta::after { content: 'LINEA'; position: absolute; right: -3vw; bottom: -5vw; color: rgba(255,255,255,.1); font-size: 28vw; line-height: .72; font-weight: 700; letter-spacing: -.1em; }
.cta-inner { position: relative; z-index: 1; width: min(var(--content),100%); margin: 0 auto; padding-left: clamp(18px,5vw,72px); }
.cta h2 { max-width: 1000px; margin: 0; font-size: clamp(46px, 6.5vw, 106px); line-height: .92; letter-spacing: -.06em; }
.cta p { max-width: 720px; margin: 24px 0 33px; font-size: clamp(18px,2vw,26px); }

.site-footer { padding: 70px var(--gutter) 35px; background: var(--ink); color: white; }
.footer-inner { width: min(var(--content),100%); margin: 0 auto; padding-left: clamp(18px,5vw,72px); }
.footer-grid, .footer-grid--client { display: grid; grid-template-columns: minmax(200px,.85fr) minmax(0,2fr); gap: clamp(32px,5vw,76px); }
.footer-navigation { min-width: 0; }
.footer-brand { max-width: 620px; }
.footer-logo { width: 210px; margin-bottom: 30px; filter: invert(1) grayscale(1) brightness(3); }
.footer-brand p { color: rgba(255,255,255,.62); }
.footer-knowledge { display: block; width: 138px; margin-top: 26px; border: 1px solid rgba(255,255,255,.2); background: white; transition: transform .2s var(--ease), border-color .2s var(--ease); }
.footer-knowledge:hover,
.footer-knowledge:focus-visible { border-color: var(--red); transform: translateY(-3px); }
.footer-knowledge img { display: block; width: 100%; height: auto; }
.footer-heading { margin: 0 0 16px; color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.footer-links a { display: inline-flex; min-height: 44px; align-items: center; color: rgba(255,255,255,.76); }
.footer-links a:hover { color: white; text-decoration: underline; text-decoration-color: var(--red); }
.footer-division-links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.footer-division-links a { gap: 10px; }
.footer-division-number { color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.footer-contact-links a,.footer-contact-location { display: flex; align-items: flex-start; gap: 12px; }
.footer-contact-links a { padding: 8px 0; }
.footer-contact-location { padding: 8px 0; color: rgba(255,255,255,.76); }
.footer-contact-icon { display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; color: #fff; }
.footer-contact-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.footer-contact-location .footer-contact-icon { color: #ff6a6a; }
.footer-explore { margin-top: 30px; }
.footer-explore .footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
.footer-video-link { justify-content: center; gap: 8px; min-width: 44px; }
.footer-video-link svg { width: 34px; height: 34px; fill: currentColor; }
.footer-video-link:focus-visible { outline: 2px solid white; outline-offset: 3px; }
.footer-menus { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); align-items: start; gap: 16px 28px; margin-top: 32px; }
.footer-menu { min-width: 0; }
.footer-menu > summary { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 0; border: 0; background: transparent; color: white; cursor: pointer; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; list-style: none; }
.footer-menu > summary::-webkit-details-marker { display: none; }
.footer-menu > summary::before { content: ''; flex: 0 0 7px; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
.footer-menu[open] > summary::before { transform: rotate(45deg); }
.footer-menu > summary:hover { text-decoration: underline; text-underline-offset: 6px; }
.footer-menu > summary:focus-visible { outline: none; text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.footer-menu > summary:focus-visible::before { color: var(--red); }
.footer-contact-strip a:focus-visible, .footer-links a:focus-visible { outline: 2px solid white; outline-offset: 4px; }
.footer-menu-panel { padding: 18px 4px 0; }
.footer-contact-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 28px; list-style: none; padding: 0; margin: 42px 0 0; color: rgba(255,255,255,.76); font-size: 14px; }
.footer-contact-strip li, .footer-contact-strip a { display: flex; align-items: center; gap: 10px; min-height: 44px; min-width: 0; }
.footer-contact-strip a { overflow-wrap: anywhere; }
.footer-contact-strip > li:first-child { flex: 1 1 220px; }
.footer-contact-strip .footer-contact-location { flex: 1 1 270px; }
.footer-client-access p { max-width: 290px; margin: 0 0 22px; color: rgba(255,255,255,.62); font-size: 14px; }
.footer-client-link { display: flex; width: 100%; align-items: center; gap: 12px; min-height: 48px; padding: 4px 0 8px; border-bottom: 0; color: white; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.footer-access-label { min-width: 0; }
.footer-page-reference { flex: 0 0 auto; color: var(--red); font: 800 12px/1.2 var(--sans); letter-spacing: 0; }
.mobile-knowledge-link { display: none; }
@media (max-width: 650px) {
  .mobile-knowledge-link { display: grid; position: absolute; right: 76px; top: 12px; width: 36px; min-height: 44px; place-items: center; }
  .mobile-knowledge-link img { display: block; width: 28px; height: auto; }
  .mobile-knowledge-link:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
}
.footer-houzz-logo-link { display: inline-flex; align-items: center; gap: 10px; }
.footer-sage-link .footer-page-reference { font-family: var(--sans); }
.website-tree { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 40px; margin-top: 48px; }
.website-tree section { border-top: 2px solid var(--red); padding-top: 20px; min-width: 0; }
.website-tree ul { list-style: none; padding: 0; margin: 0; }
.website-tree li { padding: 12px 0; border-bottom: 1px solid #ddd; break-inside: avoid; }
.website-tree li > a { display: flex; align-items: baseline; gap: 14px; min-height: 30px; }
.tree-reference { flex: 0 0 auto; color: var(--red); font-weight: 800; padding-right: 8px; }
.website-tree small { display: block; overflow-wrap: anywhere; color: #666; font-size: 12px; margin-top: 4px; }
.website-tree a:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.footer-client-link:hover,
.footer-client-link:focus-visible { color: #ff8f8f; }
.footer-client-link.footer-taggart-link, .footer-client-link.footer-allora-link { font-size: .875rem; line-height: 1.5; letter-spacing: normal; text-transform: none; }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; margin-top: 20px; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.52); font-size: 12px; }
.socials { display: flex; gap: 18px; }

body.nav-open { overflow: hidden; }

.reveal { opacity: 1; transform: none; }
.motion-enabled .reveal {
  opacity: 0;
  transform: translate3d(var(--reveal-x, 0), var(--reveal-y, 46px), 0);
  transition: opacity .76s var(--ease), transform .92s var(--ease);
  transition-delay: 0s;
  will-change: opacity, transform;
}
.motion-enabled .reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-delay: var(--reveal-delay, 0ms);
}
.motion-enabled .reveal:focus,
.motion-enabled .reveal:focus-within { opacity: 1; transform: translate3d(0, 0, 0); }
.motion-enabled .division-grid .reveal:nth-child(odd),
.motion-enabled .work-grid .reveal:nth-child(odd),
.motion-enabled .portfolio-grid .reveal:nth-child(odd) { --reveal-x: -48px; --reveal-y: 18px; }
.motion-enabled .division-grid .reveal:nth-child(even),
.motion-enabled .work-grid .reveal:nth-child(even),
.motion-enabled .portfolio-grid .reveal:nth-child(even) { --reveal-x: 48px; --reveal-y: 18px; }
.motion-enabled .relationship-row,
.motion-enabled .service-row { --reveal-x: 54px; --reveal-y: 0; }
.hero-content,
.page-hero-content {
  opacity: var(--hero-opacity, 1);
  transform: translate3d(0, var(--hero-shift, 0), 0);
  will-change: opacity, transform;
}
.hero-content:focus-within,
.page-hero-content:focus-within { opacity: 1; transform: none; }

@media (min-width: 901px) {
  .nav-item--divisions { display: none; }
  .division-rail-nav {
    position: fixed;
    z-index: 109;
    top: calc(var(--header-h) + 14px);
    left: calc(var(--linea-rail-x) - 53px);
    display: block;
    width: 47px;
    max-height: calc(100svh - var(--header-h) - 28px);
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
    color: var(--ink);
    transition: opacity .28s var(--ease), transform .34s var(--ease);
  }
  .division-rail-nav ul {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .division-rail-nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 46px;
    padding: 3px 5px;
    color: inherit;
    background: transparent;
    border: 0;
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: .1em;
    word-spacing: .16em;
    line-height: 1;
    white-space: nowrap;
    opacity: .78;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    transition: opacity .2s, transform .2s;
  }
  .division-rail-nav a:hover,
  .division-rail-nav a:focus-visible {
    color: inherit;
    background: transparent;
    opacity: 1;
    outline: 2px solid currentColor;
    outline-offset: 3px;
  }
  .division-rail-nav a[aria-current='page'] {
    color: inherit;
    background: transparent;
    font-weight: 900;
    opacity: 1;
  }
  .division-rail-nav a.is-on-dark { color: white; }
  .focus-viewer .focus-rail,
  .project-route-rail {
    position: fixed;
    z-index: 112;
    top: var(--content-rail-top, calc(var(--header-h) + 14px));
    left: 2px;
    display: block;
    width: max(32px, calc(var(--linea-rail-x) - 61px));
    max-height: none;
    overflow: visible;
  }
  .focus-viewer .focus-rail-control,
  .project-route-rail .focus-rail-control { width: 100%; }
  .focus-rail.is-outside-content,
  .project-route-rail.is-outside-content { visibility: hidden; pointer-events: none; }
  .site-nav {
    padding: 6px 14px;
    margin: -6px -14px;
  }
  .site-header.is-scrolled .site-nav {
    color: #595959;
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .site-header.is-scrolled .nav-link,
  .site-header.is-scrolled .nav-trigger { color: #595959; }
  .site-header.is-scrolled .nav-link.is-active,
  .site-header.is-scrolled .nav-trigger.is-active { color: var(--ink); }
  .site-header.is-scrolled .nav-link:hover,
  .site-header.is-scrolled .nav-link:focus-visible,
  .site-header.is-scrolled .nav-trigger:hover,
  .site-header.is-scrolled .nav-trigger:focus-visible { color: var(--ink); }
  .site-header.is-scrolled .site-nav.is-on-dark .nav-link,
  .site-header.is-scrolled .site-nav.is-on-dark .nav-trigger { color: #eeeeee; }
  .site-header.is-scrolled .site-nav.is-on-dark .nav-link.is-active,
  .site-header.is-scrolled .site-nav.is-on-dark .nav-trigger.is-active,
  .site-header.is-scrolled .site-nav.is-on-dark .nav-link:hover,
  .site-header.is-scrolled .site-nav.is-on-dark .nav-link:focus-visible,
  .site-header.is-scrolled .site-nav.is-on-dark .nav-trigger:hover,
  .site-header.is-scrolled .site-nav.is-on-dark .nav-trigger:focus-visible { color: white; }
  .site-header.is-scrolled .nav-link::after,
  .site-header.is-scrolled .nav-trigger::after { display: none; }
}

@media (max-width: 1160px) {
  :root { --header-h: 92px; }
  .site-header { grid-template-columns: minmax(160px,220px) 1fr auto; }
  .brand { --header-brand-width: 220px; }
  .nav-link--knowledge { min-height: 52px; }
  .nav-link--knowledge img { width: 33px; height: 44px; }
  .site-nav > ul { gap: 16px; }
  .header-cta { display: none; }
  .nav-client-login { display: list-item; }
  .team-grid { grid-template-columns: repeat(3,1fr); }
  .catalogue-grid { grid-template-columns: repeat(2,1fr); }
  .division-card:nth-child(n) { grid-column: auto; }
}

@media (max-width: 900px) {
  :root { --linea-rail-x: 75px; --linea-rail-width: 3px; }
  .division-rail-nav {
    position: fixed;
    z-index: 109;
    top: calc(var(--header-h) + 8px);
    left: max(2px, calc(var(--linea-rail-x) - 48px));
    display: block;
    width: 42px;
    max-height: calc(100svh - var(--header-h) - 16px);
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
    color: var(--ink);
    transition: opacity .24s var(--ease), transform .28s var(--ease);
  }
  .division-rail-nav::-webkit-scrollbar { display: none; }
  .division-rail-nav ul { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; margin: 0; padding: 0; list-style: none; }
  .division-rail-nav a {
    display: flex;
    width: 40px;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    padding: 6px 7px;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.25rem;
    font-weight: 850;
    letter-spacing: .1em;
    word-spacing: .16em;
    line-height: 1;
    white-space: nowrap;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    opacity: .8;
  }
  .division-rail-nav a:hover,
  .division-rail-nav a:focus-visible { color: inherit; background: transparent; opacity: 1; outline: 2px solid currentColor; outline-offset: 2px; }
  .division-rail-nav a[aria-current='page'] { color: inherit; background: transparent; font-weight: 900; opacity: 1; }
  .division-rail-nav a.is-on-dark { color: white; }
  body.nav-open .division-rail-nav { opacity: 0; pointer-events: none; }
}

/* Only phone-sized viewports use the expandable primary menu. */
@media (max-width: 650px) {
  .site-header { grid-template-columns: 1fr auto; padding-left: 38px; }
  .site-header:has(.brand--division) { grid-template-columns: 1fr auto; }
  .brand { --header-brand-width: 180px; width: 180px; }
  .menu-toggle { display: flex; }
  .site-header.is-scrolled .menu-toggle {
    color: #555550;
    background: rgba(236,235,231,.72);
    border-color: rgba(17,17,17,.35);
    backdrop-filter: blur(9px) grayscale(.45);
  }
  body.nav-open .site-header {
    background: rgba(248,247,243,.97);
    border-bottom-color: var(--red);
    backdrop-filter: blur(14px);
    pointer-events: auto;
  }
  body.nav-open .site-header .brand {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition-delay: 0s;
  }
  body.nav-open .site-header .brand img { filter: none; }
  body.nav-open .site-header .brand .brand-division-label { color: var(--ink); }
  body.nav-open .site-header .brand .brand-division-label--sage { color: #008000; }
  body.nav-open .site-header .menu-toggle { background: transparent; backdrop-filter: none; }
  .site-nav {
    position: fixed;
    inset: var(--header-h) 0 auto;
    max-height: calc(100vh - var(--header-h));
    overflow: auto;
    padding: 24px 30px 36px 42px;
    background: var(--paper);
    border-bottom: 2px solid var(--red);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: .2s var(--ease);
  }
  .header-social { position: static; justify-content: flex-start; gap: 15px; margin-top: 24px; }
  .header-social a { width: 28px; height: 28px; opacity: .8; }
  .header-social svg { width: 19px; height: 19px; }
  .site-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .site-nav > ul { display: grid; justify-content: stretch; gap: 0; }
  .nav-link, .nav-trigger { width: 100%; justify-content: space-between; padding: 15px 0; text-align: left; font-size: 15px; border-bottom: 1px solid var(--line); }
  .nav-link--knowledge { justify-content: flex-start; padding: 10px 0; }
  .nav-link--knowledge img { width: 48px; height: 64px; }
  .nav-item--knowledge { margin-inline-start: 0; padding-inline: 0; }
  .nav-submenu { position: static; display: none; min-width: 0; padding: 5px 0 12px 14px; color: var(--ink); background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .nav-item.is-open .nav-submenu { display: block; }
  .nav-submenu a { font-size: 13px; border-left-color: var(--line); }
}

@media (max-width: 900px) {
  .focus-viewer .focus-rail,
  .project-route-rail {
    position: sticky;
    z-index: 82;
    top: calc(var(--header-h) + 8px);
    display: block;
    margin: 18px 0 30px;
    padding: 7px;
    background: rgba(244,243,239,.94);
    border: 1px solid var(--line);
    box-shadow: 0 10px 28px rgba(0,0,0,.08);
    backdrop-filter: blur(12px);
  }
  .focus-rail-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
  .focus-rail-control { width: 100%; min-height: 76px; }
  .service-rail-name { font-size: 9px; overflow-wrap: normal; }
  .focus-rail-control img { height: 76px; }
  .knowledge-hero-content { padding-right: 0; }
  .knowledge-hero-brandmark {
    top: calc(var(--header-h) + 34px);
    right: -34px;
    bottom: auto;
    width: clamp(160px, 34vw, 240px);
    opacity: .32;
  }
  .hero, .page-hero, .section, .cta, .site-footer { padding-left: 96px; }
  .hero-content, .section-inner, .page-hero-content, .cta-inner, .footer-inner { padding-left: 0; }
  .split, .split-balanced, .contact-layout, .consultation-intake-layout, .consultation-sample-layout { grid-template-columns: 1fr; }
  .consultation-intake-copy { position: static; }
  .consultation-sample-copy { padding-left: 0; }
  .consultation-deliverable-grid { grid-template-columns: 1fr 1fr; }
  .sticky-label { position: static; }
  .work-grid, .fee-grid { grid-template-columns: 1fr; }
  .work-card { min-height: 460px; }
  .portfolio-intro { grid-template-columns: 1fr; gap: 26px; }
  .portfolio-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .portfolio-card,
  .portfolio-card--wide,
  .portfolio-card--portrait,
  .portfolio-card--full,
  .portfolio-card--compact,
  .portfolio-grid--related .portfolio-card { grid-column: span 12; }
  .portfolio-card--portrait .portfolio-card-media,
  .portfolio-card--full .portfolio-card-media { aspect-ratio: 16 / 10; }
  .project-overview-grid { grid-template-columns: 1fr; gap: 34px; padding: 24px; }
  .project-file { position: static; }
  .project-highlights { grid-template-columns: repeat(2, 1fr); }
  .project-gallery-item,
  .project-gallery-item--portrait { grid-column: span 6; }
  .process-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid--client { grid-template-columns: 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  :root { --gutter: 22px; --header-h: 82px; --linea-rail-x: 48px; --linea-rail-width: 2.6px; }
  body { font-size: 16px; }
  .site-header { height: var(--header-h); padding-left: 18px; padding-right: 18px; }
  .site-header.is-compact { height: var(--header-h); }
  .brand { width: 145px; }
  .hero { min-height: 780px; padding: calc(var(--header-h) + 60px) 22px 58px 68px; }
  .hero-content { width: 100%; margin-left: 0; }
  .hero-title { font-size: clamp(50px, 16vw, 82px); }
  .hero-summary { font-size: 18px; }
  .page-hero { min-height: 670px; padding: calc(var(--header-h) + 70px) 22px 55px 68px; }
  .page-hero h1 { font-size: clamp(52px,16vw,84px); }
  .section { padding: 78px 22px 78px 68px; }
  .division-grid { grid-template-columns: 1fr; }
  .division-card:nth-child(n) { grid-column: auto; min-height: 340px; aspect-ratio: auto; }
  .relationship-row { grid-template-columns: 56px 1fr; gap: 16px; }
  .relationship-row p { grid-column: 2; }
  .team-grid { grid-template-columns: repeat(2,1fr); gap: 14px; }
  .team-division-filter { grid-template-columns: 1fr; }
  .team-division-filter p { grid-column: 1; grid-row: auto; }
  .team-name { font-size: 20px; }
  .team-role { font-size: 12px; }
  .service-row { grid-template-columns: 52px 1fr 24px; gap: 13px; }
  .service-row-copy { grid-column: 2 / -1; }
  .focus-viewer-toolbar { align-items: flex-start; flex-direction: column; gap: 8px; }
  .focus-viewer .focus-rail { margin-left: -46px; margin-right: 0; }
  .project-route-rail { margin-left: 0; margin-right: 0; }
  .focus-rail-control { min-height: 66px; }
  .focus-rail-control img { height: 66px; }
  .team-focus-layout { grid-template-columns: 1fr; gap: 28px; }
  .team-focus-contact { grid-template-columns: 1fr; }
  .team-focus-portrait { max-width: 420px; }
  .portfolio-grid--service .portfolio-card { grid-column: span 12; }
  .process-grid, .catalogue-grid, .video-grid { grid-template-columns: 1fr; }
  .catalogue-card { min-height: 350px; }
  .portfolio-filters { gap: 6px; }
  .portfolio-filter { padding: 8px 11px; }
  .portfolio-card-copy,
  .portfolio-card--compact .portfolio-card-copy { min-height: 0; padding: 24px 22px 28px; }
  .portfolio-card-summary { margin-bottom: 22px; }
  .project-file dl div { grid-template-columns: 96px 1fr; }
  .project-type-visual,
  .project-type-visual img { min-height: 240px; }
  .project-highlights { grid-template-columns: 1fr; }
  .project-gallery-item,
  .project-gallery-item--wide,
  .project-gallery-item--portrait { grid-column: span 12; }
  .project-gallery-item--wide img { aspect-ratio: 4 / 3; }
        .contact-form { grid-template-columns: 1fr; }
  .field-full { grid-column: auto; }
  .consultation-facts-inner { grid-template-columns: 1fr; }
  .consultation-facts-inner > div { min-height: 112px; border-right: 1px solid rgba(255,255,255,.3); border-bottom: 1px solid rgba(255,255,255,.3); }
  .consultation-facts-inner > div:last-child { border-bottom: 0; }
  .consultation-form { padding: 26px 20px; }
  .consultation-postal-field { max-width: none; }
  .consultation-video-placeholder { min-height: 360px; }
  .consultation-deliverable-grid { grid-template-columns: 1fr; }
  .consultation-process-list article { grid-template-columns: 52px minmax(0,1fr); gap: 12px; }
  .knowledge-video-module { margin-top: 42px; }
  .knowledge-video { min-height: 360px; border-radius: 90px 18px 90px 18px; }
  .knowledge-caption-box { width: calc(100% - 28px); min-height: 104px; padding: 18px 20px 20px 26px; }
  .featured-video-inner { grid-template-columns: 1fr; }
  .featured-video-copy { max-width: 720px; }
  .featured-video-sound { top: 10px; right: 10px; }
  .featured-video-caption-panel { min-height: 132px; }
  .project-film-placeholder { aspect-ratio: 4 / 3; }
  .cta { padding-left: 68px; }
  .site-footer { padding-left: 68px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid--client { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-menus { grid-template-columns: 1fr; }
  .footer-contact-strip { align-items: flex-start; flex-direction: column; gap: 8px; }
  .footer-contact-strip > li:first-child, .footer-contact-strip .footer-contact-location { flex: initial; }
  .footer-division-links { gap: 8px 18px; }
  .footer-bottom { display: grid; }
  .motion-enabled .division-grid .reveal,
  .motion-enabled .work-grid .reveal,
  .motion-enabled .portfolio-grid .reveal,
  .motion-enabled .relationship-row,
  .motion-enabled .service-row { --reveal-x: 0; --reveal-y: 26px; }
}

.staff-process-hero { display:grid; grid-template-columns:1.15fr .85fr; margin-left:var(--linea-rail-x); background:#111; color:white; }
.process-hero-copy { padding:clamp(32px,5vw,88px); background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px); background-size:48px 48px; }
.staff-process-hero h1 { font-size:clamp(48px,6vw,112px); font-weight:300; text-transform:uppercase; letter-spacing:-.055em; line-height:.91; margin:36px 0; }
.staff-process-hero h1 span { display:block; color:#a9a9a9; }
.staff-process-hero .lead { color:#ccc; font-size:20px; }
.staff-process-hero .eyebrow { color:#ef8888; }
.staff-process-hero figure { position:relative; margin:0; min-height:440px; }
.staff-process-hero figure img { width:100%; height:100%; position:absolute; object-fit:cover; filter:grayscale(1); }
.staff-process-hero figcaption { position:absolute; bottom:0; inset-inline:0; padding:32px; background:#111b; border-top:1px solid #ffffff44; }
.staff-process-hero figcaption div { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.process-stats { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid #ffffff33; margin-top:56px; padding:24px 0; }
.process-stats strong { display:block; font-size:32px; font-weight:300; }
.process-stats span { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:#ccc; }
.process-mission .section-inner { display:grid; grid-template-columns:1fr 1.25fr .7fr; gap:40px; align-items:center; }
.process-mission h2,.process-meaning h2 { font-size:clamp(36px,4.5vw,72px); text-transform:uppercase; font-weight:300; line-height:1; margin:22px 0; letter-spacing:-.04em; }
.process-mission .eyebrow { color:inherit; }
.process-meaning { background:#f0efeb; }
.process-meaning .lead { max-width:950px; }
.process-meaning .staff-line-path { margin:48px 0; position:relative; border-bottom:0; padding-bottom:24px; }
.process-meaning .staff-line-path::after { content:""; position:absolute; bottom:0; left:0; width:100%; height:2px; background:var(--red); transform-origin:left; transform:scaleX(0); transition:transform 1.8s var(--ease); }
.process-meaning .staff-line-path.is-visible::after { transform:scaleX(1); }
.process-explorer { display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(24px,4vw,64px); margin-top:60px; scroll-margin-top:calc(var(--header-h) + 24px); }
.process-phase-nav { align-self:start; position:sticky; top:calc(var(--header-h) + 24px); display:grid; gap:6px; }
.process-phase-nav button { display:flex; align-items:center; gap:18px; min-height:70px; padding:16px; text-align:left; background:var(--paper); border:1px solid var(--line); }
.process-phase-nav button span { color:var(--red); font-size:13px; }
.process-phase-nav button:hover,.process-phase-nav button:focus-visible { border-color:var(--red); }
.process-phase-nav button[aria-pressed=true] { background:#171717; color:white; }
.process-phase-nav button[aria-pressed=true] span { color:#ef8888; }
.process-phase-stage { min-width:0; }
.process-phase-stage article { scroll-margin-top:calc(var(--header-h) + 24px); animation:process-phase-in .45s ease; }
.process-phase-stage article[hidden] { display:none; }
.process-phase-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:30px; align-items:end; border-bottom:1px solid var(--line); padding-bottom:32px; }
.process-phase-heading h3 { font-size:clamp(32px,3.5vw,60px); text-transform:uppercase; font-weight:300; line-height:1.02; letter-spacing:-.04em; margin:24px 0 0; }
.process-phase-heading aside { border-left:2px solid var(--red); padding-left:24px; }
.process-phase-intro { display:grid; grid-template-columns:1.2fr .8fr; gap:32px; padding:32px 0; }
.process-phase-intro .lead { font-size:20px; }
.process-step-title { text-transform:uppercase; font-weight:400; font-size:28px; margin:16px 0; }
.process-steps { list-style:none; margin:0; padding:0; }
.process-steps li { display:grid; grid-template-columns:40px 1fr 1.3fr; gap:20px; border-top:1px solid var(--line); padding:26px 0; }
.process-steps li > span { color:var(--red); font-size:13px; }
.process-steps h5 { font-size:16px; text-transform:uppercase; margin:0; }
.process-steps p { margin:0; font-size:16px; color:#666; }
.process-readiness { background:#171717; color:white; padding:clamp(24px,3vw,42px); margin-top:24px; }
.process-readiness .eyebrow { color:#ef8888; }
.process-readiness h4 { font-size:32px; text-transform:uppercase; font-weight:300; margin:20px 0; }
.process-readiness h5 { font-size:16px; }
.process-readiness-columns { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:28px; }
.process-readiness ul { padding-left:18px; color:#ccc; }
.process-next { margin-top:32px; }
@keyframes process-phase-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media (max-width:1000px) {
  .staff-process-hero { grid-template-columns:1fr; }
  .staff-process-hero figure { min-height:350px; }
  .process-mission .section-inner { grid-template-columns:1fr; gap:24px; }
  .process-explorer { grid-template-columns:1fr; }
  .process-phase-nav { position:static; grid-template-columns:repeat(5,minmax(0,1fr)); }
  .process-phase-nav > p { grid-column:1/-1; }
  .process-phase-nav button { flex-direction:column; gap:8px; font-size:14px; padding:12px 6px; }
}
@media (max-width:600px) {
  .process-phase-heading,.process-phase-intro,.process-readiness-columns { grid-template-columns:1fr; }
  .process-steps li { grid-template-columns:30px 1fr; }
  .process-steps p { grid-column:2; }
  .process-phase-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .linea-rail { opacity: 1 !important; clip-path: inset(0) !important; transform: translateX(-50%) !important; }
  .ticker-track { animation: none !important; transform: none !important; }
  .reveal, .motion-enabled .reveal, .motion-enabled .reveal.is-visible { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero-content, .page-hero-content { opacity: 1 !important; transform: none !important; }
  .focus-panel { animation: none !important; }
  .entry-hero-video video { transform: none !important; }
}

/* Give the home headline and division navigation room to breathe. */
.hero-title--sequence > span:nth-child(-n + 3) { line-height: 1.12; margin-bottom: .1em; }
.hero-division-links { display: block; }
.hero-division-links a { display: inline-block; color: inherit; transition: color .18s ease; }
.hero-division-links a:hover,
.hero-division-links a:focus-visible { color: var(--red); }
.hero-summary-continuation { display: block; margin-top: .5em; }

.home-mission-label { margin-bottom: 32px; }
.home-mission-title { margin: 0 0 20px; font-size: clamp(26px, 3vw, 42px); line-height: 1.15; letter-spacing: -.025em; }
.home-mission .display { max-width: none; line-height: 1.2; letter-spacing: -.02em; word-spacing: .06em; }
.home-mission .lead { max-width: none; margin-top: 28px; line-height: 1.65; }
.home-mission .home-knowledge-link { color: #111; text-decoration: none; }
.home-mission .home-knowledge-link:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .12em; }
.home-mission .home-knowledge-link:focus-visible { outline: 2px solid var(--red); outline-offset: 6px; }
.home-mission-anchor { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 32px 0 48px; border-top: 1px solid #ccc; }
.home-mission-anchor .eyebrow { margin: 0; }
.home-mission-brand { margin: 0; font-size: clamp(44px, 6.5vw, 94px); line-height: 1.04; }
.home-mission-brand .home-knowledge-link { display: inline-block; }
.vision-manifesto { padding-top: 28px; border-top: 1px solid #ccc; }
.motion-enabled .vision-manifesto.reveal { opacity: 1; transform: none; transition: none; will-change: auto; }
.vision-opening { max-width: 27ch; margin: 20px 0 40px; font-size: clamp(29px, 4vw, 58px); line-height: 1.16; letter-spacing: -.035em; }
.vision-opening strong { color: var(--red); font-weight: 750; }
.vision-beliefs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
.vision-belief { min-width: 0; }
.brand-number-tile { display: grid; place-items: center; width: 100%; aspect-ratio: 1 / 1; margin-bottom: 24px; background: var(--red); color: #fff; border-radius: 0; container-type: inline-size; }
.brand-number-tile > span { font-family: var(--sans); font-size: 80cqw; line-height: 1; font-weight: 800; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.vision-belief-lead { display: block; margin-bottom: 8px; font-size: 14px; color: #555; }
.vision-belief strong { display: block; font-size: clamp(23px, 2.4vw, 34px); line-height: 1.1; letter-spacing: -.03em; overflow-wrap: anywhere; }
.vision-belief-ending { display: block; margin-top: 12px; font-size: 17px; line-height: 1.45; }
.home-mission-section { padding-bottom: 0; }
.vision-relationship-bridge { position: relative; z-index: 1; height: clamp(80px, 9vw, 128px); margin-top: 48px; }
.vision-relationship-bridge::before { content: ''; position: absolute; left: 50%; width: 2px; background: var(--red); top: 0; bottom: -56px; }
.vision-relationship-bridge::after { content: ''; position: absolute; left: calc(50% - 4px); top: 0; width: 10px; height: 10px; border-radius: 50%; background: var(--red); }
.home-relationships { position: relative; }
.relationship-card-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 28px; border: 0; }
.relationship-card { min-width: 0; }
.relationship-card h3 { margin: 0 0 14px; font-size: clamp(21px, 2.1vw, 30px); line-height: 1.1; letter-spacing: -.025em; overflow-wrap: anywhere; }
.relationship-card p { margin: 0; color: #ccc; font-size: 16px; line-height: 1.5; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .brand-number-tile { transition: transform .2s ease; }
  .vision-belief:hover .brand-number-tile, .relationship-card:hover .brand-number-tile { transform: scale(1.025); }
}
@media (max-width: 1000px) {
  .home-mission-anchor { grid-template-columns: minmax(0, 1fr); }
  .vision-beliefs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .relationship-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .vision-beliefs, .relationship-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 18px; }
  .vision-belief strong { font-size: 23px; }
  .brand-number-tile { margin-bottom: 18px; }
}
/* Soft light-gray surfaces; red, dark and photographic motifs remain square. */
:root { --gray-panel-radius: clamp(24px, 3.2vw, 44px); --gray-card-radius: 22px; }
.project-overview-grid, .specialized-service-panel,
.focus-collection--portfolio .focus-panel, .client-guides-module, .forensic-reports-sample,
.forensic-reports-entry, .staff-coming, .consultation-form, .consultation-process,
.portfolio-empty, .design-gallery-dialog { border-radius: var(--gray-panel-radius); }
.portfolio-gateway, .featured-project-panel, .staff-cards article, .project-review-note,
.consultation-deliverable-card, .process-meaning, .featured-project-card,
.catalogue-card:not(.catalogue-card--photo), .process-card,
.featured-video-caption-panel, .process-phase-nav button { border-radius: var(--gray-card-radius); }
.featured-project-card { overflow: hidden; }
.focus-rail-control, .portfolio-route-rail a, .project-mini-nav a { border-radius: 10px; overflow: hidden; }
.focus-rail-control.is-active, .focus-rail-control[aria-current="page"], .focus-rail-control[aria-pressed="true"],
.portfolio-route-rail [aria-current="page"], .project-mini-nav [aria-current="page"],
.section-dark .process-card, .catalogue-card:hover,
.brand-number-tile, .process-journey-visual, .portfolio-entry-card { border-radius: 0; }
.team-story-intro { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 52px; }
.page-hero--team { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.2fr); align-items: center; gap: clamp(28px, 4vw, 64px); background: #111; padding-top: calc(var(--header-h) + 64px); padding-bottom: 64px; }
.page-hero--team::before { display: block; background: linear-gradient(90deg, rgba(10,14,18,.91), rgba(10,14,18,.72)); }
.page-hero--team h1 { font-size: clamp(48px, 5.8vw, 88px); line-height: .98; letter-spacing: -.055em; }
.page-hero--team .summary { font-size: clamp(18px, 1.8vw, 25px); }
.team-field-mantra { display: flex; flex-direction: column; gap: 4px; margin-top: 28px; border-left: 2px solid var(--red); padding-left: 18px; color: #ff6b6b; font-family: "Times New Roman", serif; font-size: clamp(22px, 2.7vw, 38px); }
.team-photo-masthead { display: flex; align-items: center; gap: 16px; padding: 0 0 18px; color: #fff; font-size: 12px; letter-spacing: .09em; }
.team-photo-masthead b { display: block; margin-top: 5px; font-size: 18px; letter-spacing: 0; }
.team-photo-index { display: grid; place-items: center; width: 64px; height: 64px; color: #fff; background: var(--red); font-family: var(--sans); font-size: 50px; font-weight: 800; letter-spacing: -.06em; }
.team-header-photo figcaption { padding: 18px 20px; background: #c00000; color: #fff; }
.team-header-photo figcaption p { margin: 0; font-size: 18px; line-height: 1.45; }
.team-header-photo figcaption .team-photo-credit { margin-top: 10px; font-size: 13px; font-style: italic; }
.team-header-photo { margin: 0; border-left: 3px solid var(--red); }
.team-header-photo img { display: block; width: 100%; height: auto; }
@media (max-width: 900px) {
  .page-hero--team { grid-template-columns: minmax(0, 1fr); padding-top: calc(var(--header-h) + 40px); }
  .page-hero--team .page-hero-content { padding-left: 0; }
}
.focus-rail .focus-rail-control, .project-route-rail .focus-rail-control, .portfolio-route-rail .focus-rail-control { display: block; min-height: 0; height: auto; padding: 0; background: #fff; color: #111; border: 0; border-radius: 0; }
.focus-rail-control .service-rail-label { gap: 0; padding: 0; container-type: inline-size; }
.focus-rail-control .service-rail-name { display: grid; place-items: center; min-height: 25px; padding: 5px 2px; color: #111; background: #fff; font-size: 7px; font-weight: 750; letter-spacing: .015em; line-height: 1.1; }
.focus-rail-control .service-rail-number { display: grid; place-items: center; width: 100%; aspect-ratio: 1 / 1; padding: 0; background: #e9e8e4; color: #111; border: 1px solid #ccc; border-radius: 8px; font-family: var(--sans); font-size: 80cqw; font-weight: 800; line-height: 1; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.focus-collection--team .focus-rail-control .service-rail-number { font-size: min(80cqw, calc(88cqw / var(--initial-count, 2))); white-space: nowrap; overflow-wrap: normal; }
.knowledge-bio-link { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; color: var(--ink); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.knowledge-bio-link:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.focus-rail-control:is(.is-active, [aria-current="page"], [aria-pressed="true"]) .service-rail-number { color: white; background: var(--red); border-color: var(--red); border-radius: 0; }
.focus-rail-control:hover .service-rail-number, .focus-rail-control:focus-visible .service-rail-number { border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); }
.team-story .display { margin: 0; }
.team-story-lead { margin: 0; font-size: clamp(22px, 2.2vw, 32px); line-height: 1.3; color: #555; }
.team-story-timeline { list-style: none; margin: 0; padding: 0; }
#team-story-history { scroll-margin-top: calc(var(--header-h, 120px) + 100px); }
.team-story-original a { color: #a50000; text-underline-offset: 4px; }
.team-story-milestone { position: relative; display: grid; grid-template-columns: 64px minmax(0, .8fr) minmax(0, 1.2fr); column-gap: clamp(24px, 4vw, 60px); padding: 0 0 44px; }
.team-story-milestone::before { content: ''; position: absolute; left: 31px; top: 0; bottom: 0; width: 2px; background: var(--red); }
.team-story-marker { position: relative; z-index: 1; display: grid; place-items: center; align-self: start; width: 64px; height: 64px; border: 2px solid var(--red); border-radius: 50%; background: var(--paper); color: var(--red); font-size: 22px; font-weight: 750; font-variant-numeric: tabular-nums; }
.team-story-label { margin: 0 0 10px; color: var(--red); font-size: 12px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.team-story-chapter, .team-story-detail { border-top: 1px solid #ccc; padding-top: 20px; min-width: 0; }
.team-story-chapter h3 { font-size: clamp(26px, 2.8vw, 38px); letter-spacing: -.03em; line-height: 1.12; margin: 0; }
.team-story-detail { font-size: 18px; line-height: 1.6; }
.team-story-detail > p { margin: 0 0 14px; }
.team-story-detail summary { cursor: pointer; width: fit-content; padding: 10px 0; font-size: 14px; font-weight: 700; text-underline-offset: 4px; }
.team-story-detail summary:hover { text-decoration: underline; }
.team-story-detail summary:focus-visible { outline: 2px solid var(--red); outline-offset: 5px; }
.team-story-original { padding: 8px 0 0; color: #444; }
.team-story-original p { margin: 0 0 1em; }
.team-story-closing { margin: 0 0 44px 31px; padding: 0 0 20px 32px; border-left: 2px solid var(--red); font-size: clamp(22px, 2.5vw, 36px); line-height: 1.35; font-weight: 650; }
.team-story-closing p { margin: 0 0 .4em; }
.team-story-closing p:last-child { color: var(--red); }
.linea-heading-wordmark { display: inline-block; width: 2.75em; height: .82em; overflow: hidden; vertical-align: -.06em; }
.linea-heading-wordmark img { display: block; width: 100%; height: auto; transform: translateY(-.02em); }
@media (max-width: 700px) {
  .team-story-intro { display: block; margin-bottom: 36px; }
  .team-story-lead { margin-top: 24px; }
  .team-story-milestone { grid-template-columns: 44px minmax(0, 1fr); column-gap: 20px; padding-bottom: 32px; }
  .team-story-marker { width: 44px; height: 44px; font-size: 16px; }
  .team-story-milestone::before { left: 21px; }
  .team-story-chapter { padding-top: 12px; }
  .team-story-detail { grid-column: 2; border-top: 0; padding-top: 16px; font-size: 17px; }
  .team-story-closing { margin-left: 21px; padding-left: 22px; }
}

.portfolio-gateway { background-color: #171717; background-size: cover; background-position: center; color: white; border-color: #363636; min-height: 340px; }
.portfolio-gateway:hover, .portfolio-gateway:focus-visible, .portfolio-gateway[aria-pressed="true"] { background-color: #171717; background-size: cover; border-color: var(--red); }
.portfolio-gateway .eyebrow, .portfolio-gateway .portfolio-gateway-action { color: #ff5757; }
.portfolio-gateway { position: relative; isolation: isolate; overflow: hidden; }
.portfolio-gateway::before { content: ''; position: absolute; inset: 0; z-index: -1; background: #000; opacity: 0; pointer-events: none; }
.portfolio-gateway:hover::before, .portfolio-gateway:focus-visible::before { opacity: .78; }
.portfolio-gateway:hover, .portfolio-gateway:focus-visible { color: white; }
.portfolio-gateway[aria-pressed="true"] strong { color: white; }
@media (prefers-reduced-motion: no-preference) { .portfolio-gateway::before { transition: opacity .25s ease; } }
.design-gallery-track img, .project-gallery-item img, .project-gallery-item--wide img, .project-gallery-item--portrait img { aspect-ratio: 1 / 1; height: auto; object-fit: cover; }
.project-type-visual--media::after { display: none; }
.project-type-visual--media video, .project-type-visual--media iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #111; }
.project-type-visual--media figcaption { position: static; min-width: 0; }
.project-type-visual--media figcaption strong { font-size: clamp(18px, 2vw, 26px); line-height: 1.35; }
.media-sound-prompt { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; padding: 14px 18px; background: #171717; color: #fff; font-size: 14px; line-height: 1.5; }
.project-type-visual .media-sound-prompt, .video-copy .media-sound-prompt, .service-video .media-sound-prompt { color: #fff; font-size: 14px; margin: 0; }

/* Building Forensics playlist: individual Shorts and descriptive captions. */
.forensics-video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; max-width: 820px; margin: 40px auto 0; align-items: start; }
.forensics-video { margin: 0; min-width: 0; }
.forensics-video .youtube-frame { aspect-ratio: 9 / 16; min-height: 0; }
.forensics-video .youtube-frame iframe { min-height: 0; }
.forensics-video h3 { margin: 0 0 12px; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.2; }
.forensics-video .video-copy p { font-size: 16px; line-height: 1.6; }
@media (max-width: 600px) { .forensics-video-grid { grid-template-columns: minmax(0, 1fr); max-width: 390px; } }
/* Market choice leads the portfolio search; disabled menus explain the next step. */
.portfolio-search-panel > .portfolio-sectors { margin-bottom: 1rem; }
.portfolio-type-help { font-size: .8rem; color: #555; margin: .55rem 0 1rem; }
[data-portfolio-type]:disabled { cursor: not-allowed; opacity: .55; }
.allora-hero-brand { display: inline-block; padding: 0; background: transparent; margin-bottom: 1rem; max-width: 100%; }
.allora-hero-brand img { width: 400px; max-width: 100%; height: auto; display: block; }
.allora-partner-logo { width: 200px; height: auto; display: block; }
.page-project-allora .page-hero h1 { font-size: clamp(38px,5.5vw,88px); }
.page-hero--allora-film { min-height: clamp(660px, 80svh, 790px); overflow: hidden; background-color: #111; background-position: center; background-size: cover; }
.page-hero--allora-film::before { background: linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.88) 42%, rgba(0,0,0,.62) 68%, rgba(0,0,0,.48) 100%); }
.page-hero--allora-film .page-hero-content { width: min(48%, 720px); margin-left: 0; padding-right: clamp(28px,4vw,64px); }
.allora-hero-film-frame { position: absolute; top: 50%; right: clamp(28px,4vw,72px); z-index: 0; width: clamp(440px,38vw,620px); margin: calc(var(--header-h) / 2) 0 0; padding: 12px 12px 0; transform: translateY(-50%); background: rgba(13,13,13,.94); border: 1px solid rgba(255,255,255,.25); box-shadow: 0 34px 88px rgba(0,0,0,.58), 0 0 0 1px rgba(0,0,0,.2); }
.allora-hero-film-frame::before { content: ""; position: absolute; top: -1px; left: -1px; width: 30%; height: 3px; background: var(--red); }
.allora-hero-film-screen { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #050505; }
.allora-hero-film { display: block; width: 100%; height: 100%; object-fit: cover; background: #000; }
.allora-hero-film-frame figcaption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 42px; color: rgba(255,255,255,.68); font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.allora-hero-film-frame figcaption time { color: rgba(255,255,255,.42); font-variant-numeric: tabular-nums; }
@media(max-width:800px) {
  .page-hero--allora-film { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding: calc(var(--header-h) + 40px) 24px 46px; background-position: center; }
  .page-hero--allora-film::before { background: linear-gradient(180deg, rgba(0,0,0,.92), rgba(0,0,0,.76)); }
  .page-hero--allora-film .page-hero-content { order: 1; width: 100%; padding: 0; }
  .allora-hero-film-frame { position: relative; inset: auto; order: 2; z-index: 0; width: min(100%, 680px); margin: 30px auto 0; transform: none; }
}
.allora-partnership { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 3rem; margin: 2rem 0 3rem; }
.allora-model-intro { max-width: 760px; margin-bottom: 1.5rem; }
.allora-viewer { position: relative; scroll-margin-top: calc(var(--header-h) + 70px); width: 100%; }
.allora-model-loading { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 1rem; padding: clamp(24px,5vw,64px); text-align: center; background: #eeedeb; border: 1px solid #aaa; }
.allora-model-loading[hidden], .allora-model-loading button[hidden] { display: none; }
.allora-model-loading strong { font-size: clamp(22px,3vw,38px); line-height: 1.2; max-width: 24ch; }
.allora-model-loading p { max-width: 48ch; margin: 0; }
.allora-model-loading [data-allora-countdown] { color: #a00000; font-weight: 700; font-variant-numeric: tabular-nums; }
.allora-viewer iframe { width: 100%; height: min(850px,85vh); min-height: 680px; border: 1px solid #aaa; background: #e8eeed; display: block; }
.allora-model-note { font-size: .85rem; line-height: 1.6; color: #555; margin-top: 1rem; }
.allora-team { margin-top: 4rem; }
.allora-team-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.allora-team-grid article > img { width: 100%; height: 280px; object-fit: contain; object-position: bottom; background: #eeedeb; }
.allora-team-grid h4 { font-size: 1.25rem; margin: 1rem 0 .5rem; }
.allora-team-grid .eyebrow { margin: 0 0 .75rem; }
@media(max-width:640px) { .allora-partnership,.allora-team-grid { grid-template-columns: 1fr; gap: 1.5rem; } .allora-viewer iframe { height: 760px; min-height: 0; } .allora-team-grid article > img { height: 300px; } .allora-hero-brand img { width: 280px; } }

/* Full-viewport video hero; the page masthead remains available above it. */
.page-hero.videos-hero { display:block; height:100svh; min-height:0; padding:var(--header-h) 0 0; background:#141414; }
.videos-hero-player { position:relative; width:100%; height:100%; margin:0; }
.videos-hero-player video { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 35%; background:#141414; }
.videos-hero-controls { position:absolute; right:clamp(10px,2vw,24px); bottom:clamp(10px,2vw,24px); z-index:2; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; max-width:calc(100% - 20px); }
.videos-hero-controls button { cursor:pointer; }

.videos-hero-controls button { min-height:44px; background:rgba(15,15,15,.88); border:1px solid rgba(255,255,255,.5); color:#fff; }
.videos-hero-controls button:focus-visible { outline:3px solid #fff; outline-offset:3px; }
@media(max-width:600px) { .videos-hero-controls button { padding:10px 12px; font-size:12px; } }

/* Text-first career register: retain credits even when project photographs are unavailable. */
.career-register { margin: 4rem 0 6rem; }
.career-register, .career-register-group, .career-register-illustrated { scroll-margin-top: calc(var(--header-h) + 90px); }
.career-register > h2, .career-register-illustrated h2 { font-size: clamp(28px, 4vw, 48px); line-height: 1.12; }
.career-register-note { max-width: 85ch; color: #555; font-size: .9rem; line-height: 1.65; }
.career-register-index { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.5rem 0 2.5rem; }
.career-register-index a { border: 1px solid #bbb; color: #111; padding: .65rem .85rem; font-size: .85rem; line-height: 1.4; }
.career-register-index a:hover, .career-register-index a:focus-visible { color: #a00000; border-color: #b00000; }
.career-register-group { border-top: 1px solid #ccc; padding: 2rem 0; }
.career-register-group header { border-left: 3px solid #c00000; padding-left: 1rem; margin-bottom: 1.5rem; }
.career-register-group h3 { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.2; margin: 0 0 .7rem; }
.career-register-group header p { color: #555; max-width: 85ch; margin: 0; line-height: 1.6; }
.career-register-group ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; list-style: none; padding: 0; margin: 0; }
.career-register-group li { border-bottom: 1px solid #e2e2e2; padding: 1rem 0; min-width: 0; }
.career-register-group li p { font-size: 1rem; line-height: 1.6; margin: 0; overflow-wrap: anywhere; }
@media(max-width:700px) {
  .career-register-group ul { grid-template-columns: 1fr; }
  .career-register { margin-top: 2.5rem; }
  .career-register-index a { min-height: 44px; }
}



.forensics-library-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:40px; align-items:start; }
.forensics-library-card { margin:0; min-width:0; }
.forensics-library-card video { display:block; width:100%; aspect-ratio:var(--field-video-ratio,9/16); object-fit:contain; background:#171717; }
.forensics-library-card h3 { margin:0 0 12px; font-size:clamp(21px,2vw,28px); line-height:1.2; }
.forensics-library-card p { font-size:16px; line-height:1.6; }
@media(max-width:1000px) { .forensics-library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .forensics-library-grid { grid-template-columns:minmax(0,1fr); max-width:390px; margin-inline:auto; } }

/* Every video shares its public YouTube counterpart. */
.video-share-actions { display:flex; flex-wrap:wrap; align-items:start; gap:10px 18px; margin-top:18px; color:inherit; font-size:14px; line-height:1.4; }
.video-share-watch,.video-share-menu>summary { display:inline-block; cursor:pointer; padding:10px 14px; border:1px solid currentColor; font-weight:650; text-decoration:none; }
.video-share-menu { position:relative; }
.video-share-menu>summary { list-style:none; }
.video-share-menu>summary::-webkit-details-marker { display:none; }
.video-share-options { position:relative; z-index:8; display:flex; flex-wrap:wrap; gap:12px; padding:16px; margin-top:8px; background:#fff; color:#181818; border:1px solid #aaa; max-width:340px; box-shadow:0 8px 24px #0002; }
.video-share-options button,.video-share-options a { padding:6px; cursor:pointer; color:#a40000; font:inherit; background:none; border:0; text-decoration:underline; }
.video-share-options input { min-width:0; width:100%; padding:8px; border:1px solid #aaa; font:inherit; color:#181818; background:#fff; }
.video-share-status { flex-basis:100%; font-size:13px; }
.video-share-actions :focus-visible { outline:3px solid #b40000; outline-offset:3px; }
.featured-video-player .video-share-actions,.project-hero .video-share-actions { color:inherit; }

video { -webkit-touch-callout:none; }

/* Public residential plan collection in the portfolio. */
.portfolio-plan-entry { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(24px,5vw,70px); align-items:center; margin-top:32px; padding:clamp(24px,4vw,48px); border-top:4px solid var(--red); background:#efeeea; color:#111; text-decoration:none; }
.portfolio-plan-entry img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; background:white; }
.portfolio-plan-entry-media { position:relative; min-width:0; }
.portfolio-plan-entry .portfolio-entry-reference { display:grid; margin:0; border:0; }
.portfolio-plan-entry h3 { font-size:clamp(30px,4vw,58px); font-weight:300; line-height:1.06; margin:12px 0; }
.portfolio-plan-entry span { display:inline-block; margin-top:15px; font-weight:700; border-bottom:2px solid var(--red); }
.portfolio-plan-entry:focus-visible { outline:3px solid var(--red); outline-offset:5px; }
@media(max-width:700px) { .portfolio-plan-entry { grid-template-columns:1fr; } }
