/*
Theme Name: Signature Giorgiutti
Theme URI: https://www.giorgiutti.it/
Author: Interlaced
Description: Tema editoriale modulare per studi professionali, ottimizzato per ACF Pro e Polylang Pro.
Version: 2.14.23
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: signature
*/

/*
 * CSS INDEX
 * 01. Design tokens
 * 02. Global elements and utilities
 * 03. Header and mega-menu
 * 04. Homepage: hero
 * 05. Homepage: introduction
 * 06. Homepage: founders
 * 07. Homepage: services
 * 08. Homepage: profiles
 * 09. Homepage: feature image
 * 10. Homepage: figures
 * 11. Homepage: communications
 * 12. Footer and newsletter
 * 13. Internal pages and archives
 * 14. Modular content
 * 15. Motion and accessibility utilities
 * 16. Base responsive rules
 * 17. Resolved component refinements
 * 18. Editorial system and single templates
 * 19. Homepage artwork controls
 * 20. PSD fidelity and definitive typography
 * 21. Final homepage type tuning
 * 22. Homepage positioning and interaction polish
 * 23. Final motion, arrows and footer content layout
 * 24. Fixed-size logo and final homepage details
 * 25. Stable services arrow and footer scale
 * 26. Definitive font names and footer headings
 * 27. Times webfont and PSD services geometry
 * 28–33. Responsive type, parallax and component refinements
 * 34. Services showcase
 * 35. Homepage lead and mobile team
 * 36. Hero alignment and responsive controls
 * 37. Homepage spacing, readable copy and in-flow arrows
 * 38. Mobile services: swipe through pairs of stories
 */

/* ==========================================================================
   01. Design tokens
   ========================================================================== */

:root {
  --ink: #11284a;
  --ink-deep: #0b213d;
  --gold: #b7a174;
  --paper: #f7f6f2;
  --white: #fff;
  --line: rgba(183,161,116,.38);
  --serif: "times-new-roman",serif;
  --sans: "futura-pt","Futura PT",Futura,sans-serif;
  --services-art-brightness: 1.65;
  --services-art-whiteness: 1;
  --services-art-opacity: .64;
  --gutter: clamp(1.25rem,6vw,7.5rem);
  --ease: cubic-bezier(.22,1,.36,1);
}

/* ==========================================================================
   02. Global elements and utilities
   ========================================================================== */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 15px/1.7 var(--sans);
  overflow-x: hidden;
}

body.menu-open {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button,input {
  font: inherit;
}

button {
  color: inherit;
}

.container {
  width: min(1680px,100%);
  margin: auto;
  padding-inline: var(--gutter);
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .68rem;
}

.display,.section-title,h1,h2,h3 {
  font-family: var(--serif);
  font-weight: 400;
}

.section-title {
  font-size: clamp(3rem,5vw,5.7rem);
  line-height: .95;
  margin: 0;
  color: var(--gold);
}

.rich-text>*:first-child {
  margin-top: 0;
}

.rich-text>*:last-child {
  margin-bottom: 0;
}

.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 1.1rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .65rem;
}

.arrow-link::after {
  content: "→";
  font-size: 1.5rem;
  transition: transform .35s var(--ease);
}

.arrow-link:hover::after {
  transform: translateX(.5rem);
}

/* ==========================================================================
   03. Header and mega-menu
   ========================================================================== */

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  color: #fff;
  transition: background .55s var(--ease),box-shadow .55s var(--ease);
}

.site-header.is-scrolled,.site-header.menu-active {
  background: var(--ink);
  box-shadow: 0 1px rgba(255,255,255,.1);
}

.header-bar {
  height: 88px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding-inline: var(--gutter);
}

.header-brand {
  width: 118px;
  opacity: 0;
  transform: translateY(-8px);
  transition: .45s var(--ease);
}

.is-scrolled .header-brand,.menu-active .header-brand {
  opacity: 1;
  transform: none;
}

.header-brand img {
  width: 100%;
  max-height: 48px;
  object-fit: contain;
  object-position: left;
}

.menu-toggle {
  justify-self: center;
  border: 0;
  background: none;
  padding: .5rem 1rem;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: .62rem;
}

.menu-toggle .close-label {
  display: none;
}

.menu-active .menu-toggle .open-label {
  display: none;
}

.menu-active .menu-toggle .close-label {
  display: inline;
}

.header-contact {
  justify-self: end;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .62rem;
}

.mega-menu {
  position: absolute;
  top: 88px;
  left: 0;
  width: 100%;
  height: min(540px,calc(100vh - 88px));
  padding: clamp(2rem,5vw,5rem) var(--gutter);
  background: linear-gradient(rgba(6,12,20,.92),rgba(6,12,20,.92)),var(--menu-image) center/cover;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-16px);
  transition: opacity .45s var(--ease),transform .45s var(--ease),visibility .45s;
}

.menu-active .mega-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

.mega-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  height: 100%;
  max-width: 1680px;
  margin: auto;
}

.mega-column {
  padding: 0 clamp(1.2rem,3vw,3.5rem);
  border-left: 1px solid rgba(255,255,255,.18);
}

.mega-column:last-child {
  border-right: 1px solid rgba(255,255,255,.18);
}

.mega-column h2 {
  font-size: clamp(1.5rem,2vw,2.3rem);
  color: var(--gold);
  margin: 0 0 1.2rem;
}

.mega-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mega-column li {
  margin: .5rem 0;
}

.mega-column a {
  font-size: .76rem;
  opacity: .82;
  transition: .25s;
}

.mega-column a:hover {
  color: var(--gold);
  opacity: 1;
}

/* ==========================================================================
   04. Homepage: hero
   ========================================================================== */

.hero {
  height: 100svh;
  min-height: 620px;
  position: relative;
  overflow: hidden;
  background: #555;
  color: #fff;
}

.hero-media {
  position: absolute;
  inset: -7%;
  will-change: transform;
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,rgba(10,18,27,.5),transparent 30%,rgba(10,18,27,.12));
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
}

.hero-emblem {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(38vw,710px);
  transform: translate(-50%,-50%);
  z-index: 2;
  will-change: transform,opacity;
}

.hero-emblem img {
  width: 100%;
  filter: brightness(0) invert(1);
  transition: filter .65s var(--ease);
}

.hero.is-progressed .hero-emblem img {
  filter: sepia(1) saturate(.45) brightness(.95);
}

.hero-scroll {
  position: absolute;
  left: 50%;
  bottom: 2rem;
  z-index: 3;
  transform: translateX(-50%);
  font-size: .58rem;
  text-transform: uppercase;
  letter-spacing: .16em;
}

.hero-scroll::after {
  content: "";
  display: block;
  width: 1px;
  height: 38px;
  margin: .8rem auto 0;
  background: #fff;
  transform-origin: top;
  animation: pulseLine 2s ease-in-out infinite;
}

@keyframes pulseLine {
  0%,100% {
    transform: scaleY(.25);
    opacity: .4;
  }

  50% {
    transform: scaleY(1);
    opacity: 1;
  }

}

/* ==========================================================================
   05. Homepage: introduction
   ========================================================================== */

.intro {
  background: var(--ink);
  color: #fff;
  padding: clamp(6rem,10vw,11rem) 0;
  overflow: hidden;
}

.intro-grid {
  display: grid;
  grid-template-columns: 1fr 2.15fr;
  gap: clamp(3rem,8vw,10rem);
  align-items: center;
}

.intro-brand {
  text-align: center;
}

.intro-brand img {
  width: min(290px,70%);
  margin: auto;
}

.intro-brand .wordmark {
  width: min(230px,70%);
  margin: 2.2rem auto 0;
}

.intro-copy h2 {
  color: var(--gold);
  font-size: clamp(3.2rem,5.3vw,6rem);
  line-height: .82;
  margin: 0 0 2.5rem;
  max-width: 1100px;
}

.intro-copy {
  position: relative;
  isolation: isolate;
}

.intro-copy > * {
  position: relative;
  z-index: 1;
}

.intro-copy .rich-text {
  max-width: 1000px;
  font-size: .9rem;
  color: rgb(255, 255, 255);
}

/* ==========================================================================
   06. Homepage: founders
   ========================================================================== */

.founders {
  position: relative;
  height: min(70vw,920px);
  min-height: 620px;
  overflow: hidden;
  background: #ddd;
}

.founders>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.founders::after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(transparent,rgba(0,0,0,.44));
}

.founders-badge {
  position: absolute;
  top: 7%;
  left: 50%;
  transform: translateX(-50%);
  width: 72px;
  z-index: 2;
}

.founders h2 {
  position: absolute;
  left: 50%;
  bottom: 9%;
  z-index: 2;
  transform: translateX(-50%);
  width: min(90%,1100px);
  margin: 0;
  color: #fff;
  text-align: center;
  font-size: clamp(4rem,8vw,9rem);
  line-height: .76;
}

/* ==========================================================================
   07. Homepage: services
   ========================================================================== */

.services {
  position: relative;
  min-height: 980px;
  background: var(--ink);
  color: #fff;
  overflow: hidden;
  padding: clamp(6rem,9vw,10rem) 0;
}

.services-figure {
  position: absolute;
  right: -14%;
  top: 0;
  width: 78%;
  height: 100%;
  opacity: .21;
}

.services-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
}

.services-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9vw;
}

.services-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.services-list button {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 1rem 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.32);
  background: none;
  color: #fff;
  text-align: left;
  text-transform: uppercase;
  font-size: .76rem;
  letter-spacing: .04em;
  cursor: pointer;
}

.services-list button::after {
  content: "+";
}

.services-list button[aria-selected=true] {
  color: var(--gold);
}

.services-list button[aria-selected=true]::after {
  content: "—";
}

.service-detail {
  display: none;
  min-height: 300px;
  align-content: center;
  text-align: center;
}

.service-detail.is-active {
  display: grid;
  animation: fadeUp .65s var(--ease);
}

.service-detail h3 {
  margin: 0 0 1.4rem;
  color: var(--gold);
  font-size: clamp(3.5rem,6vw,6.5rem);
  line-height: 1;
}

.service-detail p {
  max-width: 580px;
  margin: auto;
  color: rgba(255,255,255,.72);
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: none;
  }

}

/* ==========================================================================
   08. Homepage: profiles
   ========================================================================== */

.profiles {
  background: #fff;
  padding: clamp(6rem,9vw,10rem) 0;
}

.profiles-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 4rem;
}

.profiles-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(330px,30vw);
  gap: clamp(1.5rem,3vw,4rem);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: none;
  padding-bottom: 1rem;
  scrollbar-width: thin;
  cursor: grab;
}

.profiles-track.is-dragging {
  cursor: grabbing;
  user-select: none;
}

.profiles-track.is-dragging * {
  cursor: grabbing !important;
  user-select: none;
}

.profile-card {
  scroll-snap-align: start;
}

.profile-card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  filter: grayscale(1);
  transition: .55s var(--ease);
}

.profile-card:hover img {
  filter: grayscale(0);
}

.profile-meta {
  border-top: 1px solid var(--line);
  margin-top: 1.4rem;
  padding-top: .8rem;
}

.profile-meta small {
  display: block;
  font-size: .65rem;
}

.profile-meta h3 {
  margin: .2rem 0;
  color: var(--gold);
  font-size: 1.8rem;
}

.profiles-intro {
  max-width: 680px;
  margin-top: 3.5rem;
  font-size: .8rem;
}

/* ==========================================================================
   09. Homepage: feature image
   ========================================================================== */

.feature {
  position: relative;
  height: min(82vw,950px);
  min-height: 650px;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
}

.feature-bg {
  position: absolute;
  inset: -8%;
  background-position: center;
  background-size: cover;
  filter: grayscale(1);
  will-change: transform;
}

.feature::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.28);
}

.feature h2 {
  position: relative;
  z-index: 1;
  width: min(1200px,90%);
  margin: 0;
  text-align: center;
  font-size: clamp(4rem,9vw,10rem);
  line-height: .77;
}

/* ==========================================================================
   10. Homepage: figures
   ========================================================================== */

.numbers {
  position: relative;
  background: var(--ink);
  color: #fff;
  padding: clamp(6rem,9vw,10rem) 0;
  overflow: hidden;
}

.numbers::before {
  content: "G";
  position: absolute;
  left: -8vw;
  bottom: -19vw;
  color: rgba(183,161,116,.06);
  font: 500 74vw/.8 var(--serif);
}

.numbers-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 10vw;
}

.stats {
  margin-top: 3rem;
}

.stat {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: center;
  border-bottom: 3px solid rgba(255,255,255,.18);
  padding: 1.2rem 0;
}

.stat strong {
  font: 600 clamp(4rem,6vw,7rem)/.8 var(--serif);
  color: var(--gold);
}

.stat span {
  font-size: .72rem;
  max-width: 180px;
}

.quote {
  align-self: center;
}

.quote blockquote {
  margin: 0 0 3rem;
  font: 400 clamp(2rem,3vw,3.8rem)/1.05 var(--serif);
}

.quote .rich-text {
  font-size: .8rem;
  color: rgba(255,255,255,.65);
}

/* ==========================================================================
   11. Homepage: communications
   ========================================================================== */

.communications {
  background: #fff;
  padding: clamp(6rem,9vw,10rem) 0;
}

.communications-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4rem;
}

.communications-filter {
  color: var(--gold);
  font-family: var(--serif);
  font-size: 1.25rem;
}

.news-list {
  width: min(1120px,100%);
  margin: auto;
}

.news-card {
  display: grid;
  grid-template-columns: 270px 1fr;
  gap: 2.8rem;
  padding: 2rem 0;
  border-bottom: 1px solid var(--line);
}

.news-card img {
  width: 100%;
  aspect-ratio: 1.55;
  object-fit: cover;
  filter: grayscale(1);
}

.news-card time {
  font-size: .62rem;
  color: var(--gold);
}

.news-card h3 {
  font-family: var(--sans);
  font-weight: 600;
  font-size: .9rem;
  text-transform: uppercase;
  margin: .4rem 0;
}

.news-card p {
  font-size: .74rem;
  color: #6d7682;
}

/* ==========================================================================
   12. Footer and newsletter
   ========================================================================== */

.site-footer {
  background: var(--ink-deep);
  color: #fff;
  padding: 5rem var(--gutter) 2rem;
}

.newsletter {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 5vw;
  padding-bottom: 4rem;
}

.newsletter h2 {
  font: 500 .75rem var(--sans);
  text-transform: uppercase;
  letter-spacing: .12em;
}

.newsletter-form {
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.newsletter-form input {
  flex: 1;
  padding: 1rem 0;
  background: transparent;
  border: 0;
  color: #fff;
  outline: 0;
}

.newsletter-form button {
  background: none;
  border: 0;
  font-size: 1.5rem;
  cursor: pointer;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.3fr .7fr;
  gap: 4vw;
  padding-top: 3rem;
}

.footer-column h2 {
  font: 500 .72rem var(--sans);
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .12em;
}

.footer-column,.footer-column a {
  font-size: .7rem;
  color: rgba(255,255,255,.72);
}

.footer-column ul {
  list-style: none;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
}

.footer-logo {
  width: 230px;
  margin: 6rem auto 2rem;
}

.footer-copy {
  text-align: center;
  font-size: .55rem;
  color: rgba(255,255,255,.4);
}

/* ==========================================================================
   13. Internal pages and archives
   ========================================================================== */

.page-hero {
  isolation: isolate;
  min-height: clamp(560px,78svh,820px);
  padding: 0;
  display: flex;
  align-items: end;
  background: var(--ink);
  color: #fff;
  position: relative;
  overflow: hidden;
}

.page-hero img {
  position: absolute;
  z-index: -2;
  inset: -5%;
  width: 110%;
  height: 110%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  filter: grayscale(.25);
}

.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg,rgba(5,21,42,.94) 0%,rgba(5,21,42,.62) 56%,rgba(5,21,42,.28) 100%);
}

.page-hero .template-hero-copy {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-top: clamp(9rem,16vh,12rem);
  padding-bottom: clamp(3.8rem,6vw,6rem);
}

.page-hero .eyebrow {
  display: block;
  width: min(980px,88%);
  margin-bottom: .85rem;
  color: var(--gold);
  font-size: clamp(.84rem,.92vw,1rem);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.page-hero h1 {
  box-sizing: content-box;
  width: min(1100px,88%);
  padding-bottom: .2em;
  font-size: clamp(4rem,7vw,8rem);
  line-height: .94;
  letter-spacing: -.035em;
  margin: 0;
  overflow: visible;
}

.page-hero__description {
  width: min(730px,88%);
  margin-top: 1.35rem;
  color: rgba(255,255,255,.78);
  font-size: clamp(1.05rem,1.3vw,1.4rem);
  line-height: 1.58;
}

.page-hero__description p { margin: 0; color: inherit; font: inherit; }
.page-hero__description p + p { margin-top: .7em; }
.page-hero__line {
  position: absolute;
  right: var(--gutter);
  bottom: clamp(2rem,4vw,4rem);
  width: clamp(80px,12vw,190px);
  height: 1px;
  background: var(--gold);
  transform-origin: right;
}

@media (max-width: 600px) {
  .page-hero { min-height: 72svh; }
  .page-hero .template-hero-copy { padding-top: 8rem; padding-bottom: 3.5rem; }
  .page-hero .eyebrow,.page-hero h1,.page-hero__description { width: 100%; }
  .page-hero h1 { padding-bottom: .24em; font-size: clamp(3.45rem,15vw,5.2rem); line-height: .94; }
  .page-hero__description { font-size: 1rem; line-height: 1.55; }
  .page-hero__line { right: var(--gutter); bottom: 2rem; width: 70px; }
}

.page-content {
  background: #fff;
  padding: clamp(5rem,9vw,10rem) var(--gutter);
}

.page-content>.entry-content {
  width: min(920px,100%);
  margin: auto;
}

.archive-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 3rem;
}

.archive-card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  filter: grayscale(1);
}

.archive-card h2 {
  color: var(--gold);
  font-size: 2.2rem;
}

/* ==========================================================================
   14. Modular content
   ========================================================================== */

.modular-intro,.modular-text,.modular-image-text,.modular-cta {
  padding: clamp(5rem,9vw,10rem) var(--gutter);
}

.modular-intro {
  background: var(--ink);
  color: #fff;
}

.modular-intro>div {
  width: min(1000px,100%);
  margin: auto;
  font: 400 clamp(2rem,3.5vw,4rem)/1.15 var(--serif);
}

.modular-text>div {
  width: min(1000px,100%);
  margin: auto;
}

.modular-text .section-title {
  margin-bottom: 2.5rem;
}

.modular-image-text {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem,8vw,9rem);
  align-items: center;
  background: #fff;
}

.modular-image-text.is-reverse .modular-image {
  order: 2;
}

.modular-image img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  filter: grayscale(1);
}

.modular-image-text .section-title {
  margin-bottom: 2rem;
}

.modular-cta {
  background: var(--ink);
  color: #fff;
  text-align: center;
}

.modular-cta>div {
  width: min(900px,100%);
  margin: auto;
}

.modular-cta h2 {
  font-size: clamp(3rem,6vw,6rem);
  line-height: .95;
  color: var(--gold);
  margin: 0 0 1rem;
}

/* ==========================================================================
   15. Motion and accessibility utilities
   ========================================================================== */

[data-reveal] {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity .9s var(--ease),transform .9s var(--ease);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ==========================================================================
   16. Base responsive rules
   ========================================================================== */

@media(max-width:900px) {
  .header-bar {
    height: 70px;
  }

  .header-contact {
    display: none;
  }

  .header-brand {
    width: 92px;
  }

  .menu-toggle {
    justify-self: end;
  }

  .mega-menu {
    top: 70px;
    height: calc(100svh - 70px);
    overflow: auto;
  }

  .mega-grid {
    grid-template-columns: 1fr 1fr;
    height: auto;
  }

  .mega-column {
    padding: 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,.18);
  }

  .hero {
    min-height: 560px;
  }

  .hero-emblem {
    width: min(72vw,480px);
  }

  .intro-grid,.services-grid,.numbers-grid {
    grid-template-columns: 1fr;
  }

  .intro-brand {
    display: flex;
    align-items: center;
    gap: 2rem;
  }

  .intro-brand img {
    width: 130px;
    margin: 0;
  }

  .intro-brand .wordmark {
    width: 160px;
    margin: 0;
  }

  .founders {
    height: 85svh;
  }

  .founders h2 {
    font-size: clamp(3.5rem,13vw,7rem);
  }

  .services {
    min-height: auto;
  }

  .services-figure {
    right: -50%;
    width: 150%;
  }

  .service-detail {
    min-height: 350px;
  }

  .profiles-track {
    grid-auto-columns: 75vw;
  }

  .feature {
    height: 80svh;
  }

  .stat {
    grid-template-columns: 120px 1fr;
  }

  .communications-head {
    display: block;
  }

  .communications-filter {
    margin-top: 1rem;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .archive-grid {
    grid-template-columns: 1fr 1fr;
  }

  .modular-image-text {
    grid-template-columns: 1fr;
  }

  .modular-image-text.is-reverse .modular-image {
    order: 0;
  }

}

@media(max-width:600px) {
  :root {
    --gutter: 1.25rem;
  }

  .mega-grid {
    grid-template-columns: 1fr;
  }

  .mega-column {
    border-right: 0!important;
  }

  .intro {
    padding-top: 5rem;
  }

  .intro-grid {
    gap: 4rem;
  }

  .intro-brand {
    justify-content: center;
  }

  .intro-copy h2 {
    font-size: 2.8rem;
  }

  .founders {
    min-height: 560px;
  }

  .founders-badge {
    width: 52px;
  }

  .services {
    padding: 5rem 0;
  }

  .profiles-head {
    display: block;
  }

  .profiles-head .arrow-link {
    margin-top: 1rem;
  }

  .profiles-track {
    grid-auto-columns: 83vw;
  }

  .feature h2 {
    font-size: 3.5rem;
  }

  .stat {
    grid-template-columns: 100px 1fr;
  }

  .stat strong {
    font-size: 3.6rem;
  }

  .news-card {
    grid-template-columns: 110px 1fr;
    gap: 1rem;
  }

  .newsletter {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer-logo {
    margin-top: 4rem;
  }

  .archive-grid {
    grid-template-columns: 1fr;
  }

}

/* Editorial detail navigation and filterable related stories. */
.single-article .article-hero h1 {
  width: min(1050px,92%);
  font-size: clamp(3.2rem,5.2vw,6.5rem);
  line-height: .9;
  overflow-wrap: anywhere;
}

.editorial-category-list {
  display: grid;
  gap: 0;
  margin-top: .75rem;
  border-top: 1px solid rgba(177,145,93,.38);
}

.article-aside .editorial-category-list a,
.press-aside .editorial-category-list a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.35rem;
  padding: .8rem 1.9rem .8rem 0;
  border-bottom: 1px solid rgba(12,35,65,.13);
  color: var(--ink);
  font: 400 1.08rem/1.2 var(--sans);
  transition: color .35s var(--ease),padding-left .35s var(--ease),border-color .35s var(--ease);
}

.editorial-category-list a::after {
  content: "\2197";
  position: absolute;
  right: .1rem;
  color: var(--gold);
  font-size: .9rem;
  transition: transform .35s var(--ease);
}

.editorial-category-list a:hover,
.editorial-category-list a:focus-visible {
  padding-left: .5rem;
  border-color: var(--gold);
  color: var(--gold);
}

.editorial-category-list a:hover::after,
.editorial-category-list a:focus-visible::after {
  transform: translate(.2rem,-.2rem);
}

.editorial-related {
  position: relative;
  overflow: hidden;
  padding: clamp(5rem,8vw,9rem) 0 clamp(6rem,9vw,10rem);
  background:
    radial-gradient(circle at 88% 12%,rgba(177,145,93,.13),transparent 26rem),
    var(--paper);
}

.editorial-related::before {
  content: "";
  position: absolute;
  top: 0;
  right: max(4vw,2rem);
  width: min(22vw,250px);
  height: 1px;
  background: var(--gold);
  transform-origin: right;
}

.editorial-related__head {
  display: grid;
  grid-template-columns: minmax(280px,.75fr) minmax(0,1.25fr);
  gap: clamp(2rem,6vw,7rem);
  align-items: end;
  margin-bottom: clamp(3rem,5vw,5rem);
}

.editorial-related .editorial-related__head h2 {
  margin: 0;
  color: var(--gold);
  font-size: clamp(3rem,5.5vw,6.5rem);
  line-height: .86;
}

.editorial-related__controls {
  display: grid;
  gap: 1.5rem;
  justify-items: end;
}

.editorial-related__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .55rem;
}

.editorial-related__filters button {
  appearance: none;
  padding: .72rem 1.05rem;
  border: 1px solid rgba(12,35,65,.23);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: 500 .72rem/1 var(--sans);
  letter-spacing: .055em;
  text-transform: none;
  cursor: pointer;
  transition: background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease),transform .35s var(--ease);
}

.editorial-related__filters button:hover,
.editorial-related__filters button:focus-visible {
  border-color: var(--gold);
  transform: translateY(-2px);
}

.editorial-related__filters button.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}

.editorial-related__more {
  display: inline-flex;
  align-items: center;
  gap: .85rem;
  color: var(--ink);
  font: 500 .78rem/1 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.editorial-related__more span {
  color: var(--gold);
  font-size: 1.45rem;
  transition: transform .35s var(--ease);
}

.editorial-related__more:hover span {
  transform: translateX(.4rem);
}

.editorial-related__panel[hidden] {
  display: none;
}

.editorial-related__panel.is-active {
  animation: editorialPanelIn .65s var(--ease) both;
}

.editorial-related .article-grid {
  gap: clamp(2rem,3vw,3.5rem);
}

.editorial-related .article-card,
.editorial-related .article-card:first-child {
  grid-column: span 4;
}

.editorial-related .article-card__media img {
  aspect-ratio: 4/3;
}

.editorial-related .article-card__meta {
  justify-content: flex-end;
  min-height: 1em;
}

.editorial-related .article-card__body h3 {
  font-size: clamp(1.65rem,2vw,2.5rem);
}

.quote cite {
  display: block;
  margin: -1.7rem 0 2.4rem;
  color: var(--gold);
  font: normal 500 .78rem/1.3 var(--sans);
  letter-spacing: .1em;
  text-transform: none;
}

@keyframes editorialPanelIn {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}

@media(max-width:900px) {
  .editorial-related__head {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .editorial-related__controls {
    justify-items: start;
  }

  .editorial-related__filters {
    justify-content: flex-start;
  }

  .editorial-related .article-card,
  .editorial-related .article-card:first-child {
    grid-column: span 6;
  }
}

@media(max-width:600px) {
  .single-article .article-hero {
    min-height: 68svh;
  }

  .single-article .article-hero h1 {
    width: 100%;
    font-size: clamp(2.65rem,11vw,3.8rem);
    line-height: .94;
  }

  .editorial-related__filters {
    flex-wrap: nowrap;
    width: calc(100vw - 2 * var(--container-pad));
    padding-bottom: .4rem;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }

  .editorial-related__filters button {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .editorial-related .article-card,
  .editorial-related .article-card:first-child {
    grid-column: 1/-1;
  }
}

@media(prefers-reduced-motion:reduce) {
  .editorial-related__panel.is-active {
    animation: none;
  }
}

/* 2.3 editorial proportions follow the approved homepage draft. */
.communications .news-list {
  width: min(1040px,calc(100% - clamp(0px,5vw,72px)));
  margin-right: auto;
  margin-left: clamp(0px,5vw,72px);
}

.communications .communications-card,
.communications .communications-card--news,
.communications .communications-card--press {
  grid-template-columns: minmax(180px,220px) minmax(0,1fr);
  gap: clamp(2rem,3.6vw,4.25rem);
  min-height: 0;
  padding: clamp(1.35rem,2vw,2rem) 0;
  overflow: visible;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  align-items: start;
}

.communications .communications-card__media,
.communications .communications-card--press .communications-card__media {
  grid-column: 1;
  grid-row: 1;
  position: relative;
  min-height: 0;
  overflow: hidden;
}

.communications .communications-card__media img,
.communications .communications-card--news .communications-card__media img,
.communications .communications-card--press .communications-card__media img {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 416/264;
  object-fit: cover;
  filter: grayscale(1);
}

.communications .communications-card__body,
.communications .communications-card--news .communications-card__body,
.communications .communications-card--press .communications-card__body {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  display: block;
  padding: .2rem 0 0;
}

.communications .communications-card h3,
.communications .communications-card--news h3,
.communications .communications-card--press h3 {
  margin: .5rem 0 .65rem;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(1rem,1.15vw,1.3rem);
  font-weight: 600;
  line-height: 1.25;
}

.communications .communications-card h3 a,
.communications .communications-card--press h3 a,
.communications .communications-card p,
.communications .communications-card--press p,
.communications .communications-card .arrow-link {
  color: #111;
}

.communications .communications-card p,
.communications .communications-card--news p {
  margin: 0 0 .8rem;
  font-size: clamp(.88rem,.92vw,1.04rem);
  line-height: 1.45;
}

.communications-card__media--document > span,
.press-document-card__media > span {
  position: absolute;
  right: .65rem;
  bottom: .65rem;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .55rem .7rem;
  background: rgba(12,35,65,.94);
  color: #fff;
  font: 600 .62rem/1 var(--sans);
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: background-color .35s var(--ease),transform .35s var(--ease);
}

.communications-card__media--document:hover > span,
.press-document-card__media:hover > span {
  background: var(--gold);
  color: var(--ink);
  transform: translate(-.2rem,-.2rem);
}

.communications .communications-document__actions,
.press-document-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .85rem;
}

.communications .communications-document__actions a,
.press-document-card__actions a {
  padding: .65rem .8rem;
  border: 1px solid rgba(12,35,65,.25);
  background: transparent;
  color: var(--ink);
  font-size: .67rem;
}

.communications .communications-document__actions a:hover,
.press-document-card__actions a:hover {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--ink);
}

.editorial-archive--news .editorial-archive__grid .article-card,
.editorial-archive--news .editorial-archive__grid .article-card:first-child,
.editorial-archive--insight .editorial-archive__grid .article-card,
.editorial-archive--insight .editorial-archive__grid .article-card:first-child {
  grid-column: span 4;
}

.editorial-archive--news .article-card__body h3,
.editorial-archive--insight .article-card__body h3 {
  font-size: clamp(1.65rem,2vw,2.5rem);
}

.editorial-archive--press .press-document-card,
.editorial-archive--press .press-document-card:first-child {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: minmax(220px,280px) minmax(0,1fr);
  gap: clamp(2rem,4vw,5rem);
  min-height: 0;
  padding: clamp(1.5rem,2.5vw,2.5rem) 0;
  overflow: visible;
  border-top: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
}

.editorial-archive--press .press-document-card__media {
  min-height: 0;
}

.editorial-archive--press .press-document-card__media img {
  aspect-ratio: 416/264;
}

.editorial-archive--press .press-document-card__body {
  align-self: center;
  padding: 0;
}

.editorial-archive--press .press-document-card__body h3 {
  margin: .7rem 0 1rem;
  color: var(--ink);
  font-family: var(--sans);
  font-size: clamp(1.7rem,2.6vw,3.2rem);
  font-weight: 500;
  line-height: 1.02;
}

.editorial-archive--press .press-document-card__body h3 a,
.editorial-archive--press .press-document-card__body p {
  color: var(--ink);
}

.editorial-archive--press .press-document-card__body p {
  color: rgba(12,35,65,.67);
}

.editorial-related .article-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: start;
}

.editorial-related .article-card,
.editorial-related .article-card:first-child,
.editorial-related .press-document-card,
.editorial-related .press-document-card:first-child {
  grid-column: auto!important;
  display: block;
  min-width: 0;
  min-height: 0;
  padding: 0;
  background: transparent;
  color: var(--ink);
}

.editorial-related .press-document-card__preview,
.editorial-related .press-document-card__media {
  min-height: 0;
}

.editorial-related .press-document-card__body {
  padding: 1.4rem 0 0;
}

.editorial-related .press-document-card__body h3,
.editorial-related .press-document-card__body h3 a,
.editorial-related .press-document-card__body p {
  color: var(--ink);
}

@media(max-width:900px) {
  .editorial-archive--news .editorial-archive__grid .article-card,
  .editorial-archive--news .editorial-archive__grid .article-card:first-child,
  .editorial-archive--insight .editorial-archive__grid .article-card,
  .editorial-archive--insight .editorial-archive__grid .article-card:first-child {
    grid-column: span 6;
  }

  .editorial-related .article-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media(max-width:600px) {
  .communications .news-list {
    width: 100%;
    margin-left: 0;
  }

  .communications .communications-card,
  .communications .communications-card--news,
  .communications .communications-card--press,
  .editorial-archive--press .press-document-card {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .communications .communications-card__body,
  .communications .communications-card--news .communications-card__body,
  .communications .communications-card--press .communications-card__body {
    grid-column: 1;
    grid-row: 2;
    padding: 0 0 1rem;
  }

  .editorial-archive--news .editorial-archive__grid .article-card,
  .editorial-archive--news .editorial-archive__grid .article-card:first-child,
  .editorial-archive--insight .editorial-archive__grid .article-card,
  .editorial-archive--insight .editorial-archive__grid .article-card:first-child {
    grid-column: 1/-1;
  }

  .editorial-related .article-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   32. Premium motion system
   ========================================================================== */

.motion-enabled [data-reveal] {
  --motion-delay: 0ms;
  opacity: 0;
  transform: translate3d(0,32px,0);
  filter: blur(2px);
  transition:
    opacity .9s var(--ease) var(--motion-delay),
    transform 1.05s var(--ease) var(--motion-delay),
    filter .9s var(--ease) var(--motion-delay),
    clip-path 1.2s var(--ease) var(--motion-delay);
}

.motion-enabled [data-reveal][data-motion="title"] {
  transform: translate3d(0,48px,0);
  filter: blur(5px);
}

.motion-enabled [data-reveal][data-motion="card"] {
  transform: translate3d(0,42px,0) scale(.985);
}

.motion-enabled [data-reveal][data-motion="media"] {
  transform: translate3d(0,24px,0) scale(1.025);
  clip-path: inset(0 0 100% 0);
}

.motion-enabled [data-reveal][data-motion="soft"] {
  transform: translate3d(0,20px,0);
}

.motion-enabled [data-reveal].is-visible,
.motion-enabled [data-reveal][data-motion].is-visible {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: blur(0);
  clip-path: inset(0 0 0 0);
}

/* Scroll depth is written to custom properties so it remains composable. */
[data-parallax],
[data-parallax-fixed],
.founders-bg,
.feature-bg,
.page-hero > img,
.article-hero__media img,
.service-hero__image img {
  --motion-parallax-y: 0%;
  --motion-parallax-scale: 1;
  transform: translate3d(0,var(--motion-parallax-y),0) scale(var(--motion-parallax-scale));
  transform-origin: center;
  backface-visibility: hidden;
}

.founders-bg,
.feature-bg {
  inset: -7%;
  width: 114%;
  height: 114%;
  background-attachment: scroll;
  will-change: transform;
}

.page-hero > img,
.article-hero__media img,
.service-hero__image img {
  will-change: transform;
}

/* Quiet ambient light prevents large dark bands from feeling static. */
.services::after,
.numbers::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: -35%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%,rgba(183,161,116,.1),transparent 34%);
  opacity: .7;
  animation: signature-ambient-light 16s ease-in-out infinite alternate;
}

@keyframes signature-ambient-light {
  from { transform: translate3d(-9%,-3%,0) scale(.94); }
  to { transform: translate3d(9%,4%,0) scale(1.06); }
}

/* Editorial image hover: measured zoom, colour return and a soft highlight. */
.profile-card > a,
.archive-card > a,
.article-card__media,
.related-service__media,
.news-card > a,
.modular-image {
  position: relative;
  display: block;
  overflow: hidden;
}

.profile-card img,
.archive-card img,
.article-card img,
.related-service__media img,
.news-card img,
.modular-image img {
  transition: transform 1.1s var(--ease),filter .75s var(--ease);
  will-change: transform;
}

@media(hover:hover) and (pointer:fine) {
  .profile-card:hover img,
  .archive-card:hover img,
  .article-card:hover img,
  .related-service:hover .related-service__media img,
  .news-card:hover img,
  .modular-image:hover img {
    transform: scale(1.045);
    filter: grayscale(.12);
  }

  .arrow-link,
  .band-arrow,
  .category-pills a,
  .profiles-team-link {
    transition: color .35s var(--ease),border-color .35s var(--ease),transform .45s var(--ease),background-color .35s var(--ease);
  }

  .band-arrow:hover {
    transform: translate3d(.35rem,-.18rem,0);
  }
}

.motion-enabled .mega-column {
  opacity: 0;
  transform: translate3d(0,-16px,0);
  transition: opacity .65s var(--ease),transform .75s var(--ease);
}

.motion-enabled .menu-active .mega-column {
  opacity: 1;
  transform: translate3d(0,0,0);
}

.motion-enabled .menu-active .mega-column:nth-child(2) { transition-delay: 70ms; }
.motion-enabled .menu-active .mega-column:nth-child(3) { transition-delay: 140ms; }
.motion-enabled .menu-active .mega-column:nth-child(4) { transition-delay: 210ms; }

.motion-enabled .services-list button {
  transition:
    opacity .8s var(--ease) var(--motion-delay),
    transform .9s var(--ease) var(--motion-delay),
    color .35s var(--ease),
    border-color .35s var(--ease);
}

@media(max-width:900px) {
  .founders-bg,
  .feature-bg {
    inset: -4%;
    width: 108%;
    height: 108%;
  }

  .motion-enabled [data-reveal],
  .motion-enabled [data-reveal][data-motion="title"],
  .motion-enabled [data-reveal][data-motion="card"] {
    transform: translate3d(0,24px,0);
  }
}

@media(prefers-reduced-motion:reduce) {
  [data-parallax],
  [data-parallax-fixed],
  .founders-bg,
  .feature-bg,
  .page-hero > img,
  .article-hero__media img,
  .service-hero__image img {
    transform: none!important;
    will-change: auto;
  }

  .services::after,
  .numbers::after {
    animation: none;
  }

  [data-reveal] {
    opacity: 1!important;
    transform: none!important;
    filter: none!important;
    clip-path: none!important;
  }
}

/* ==========================================================================
   34. News, insights and press review
   ========================================================================== */

.news-card h3,
.news-card h3 a,
.article-card__body h3,
.article-card__body h3 a,
.article-hero h1,
.category-hero h1,
.press-hero h1,
.archive-card h2,
.archive-card h2 a {
  text-transform: none;
}

.communications-card {
  min-height: 290px;
}

.communications-card__media {
  display: block;
  overflow: hidden;
}

.communications-card__media img {
  height: 100%;
  min-height: 230px;
  aspect-ratio: auto;
  transition: transform .9s var(--ease),filter .6s ease;
}

.communications-card:hover .communications-card__media img {
  transform: scale(1.035);
  filter: grayscale(.25);
}

.communications-card__body {
  align-self: center;
}

.communications-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  color: var(--gold);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.communications-card--insight {
  grid-template-columns: minmax(300px,.85fr) minmax(0,1.15fr);
  gap: 0;
  padding: 0;
  background: var(--paper);
  border: 1px solid rgba(17,40,74,.12);
}

.communications-card--insight .communications-card__body {
  padding: clamp(2.25rem,4vw,4.5rem);
}

.communications-card--insight h3 {
  font-family: var(--serif);
  font-size: clamp(2.2rem,3.4vw,4.4rem);
  font-weight: 400;
  line-height: .95;
}

.communications-card--press {
  grid-template-columns: minmax(0,1fr) minmax(220px,32%);
  gap: 0;
  padding: 0;
  overflow: hidden;
  background: var(--ink);
  border: 0;
}

.communications-card--press .communications-card__media {
  grid-column: 2;
  grid-row: 1;
}

.communications-card--press .communications-card__body {
  grid-column: 1;
  grid-row: 1;
  padding: clamp(2.25rem,4vw,4.5rem);
}

.communications-card--press h3,
.communications-card--press h3 a,
.communications-card--press p,
.communications-card--press .arrow-link {
  color: #fff;
}

.communications-card--press h3 {
  margin-block: 1rem;
  font-family: var(--serif);
  font-size: clamp(2.4rem,4vw,5rem);
  font-weight: 400;
  line-height: .9;
}

.communications-card--press .communications-card__media img {
  filter: grayscale(1) contrast(1.06);
}

.editorial-archive__hero {
  min-height: 72svh;
}

.editorial-type-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: clamp(2.5rem,4vw,4rem);
}

.editorial-type-tabs a {
  padding: .72rem 1.1rem;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 100px;
  color: #fff;
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: background .3s ease,color .3s ease,border-color .3s ease;
}

.editorial-type-tabs a:hover,
.editorial-type-tabs a[aria-current] {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--ink);
}

.editorial-archive--insight .editorial-archive__hero {
  background: linear-gradient(118deg,var(--paper) 0 58%,#e7e2d8 100%);
  color: var(--ink);
}

.editorial-archive--insight .editorial-archive__hero h1 {
  color: var(--ink);
}

.editorial-archive--insight .editorial-type-tabs a {
  border-color: rgba(17,40,74,.25);
  color: var(--ink);
}

.editorial-archive--insight .editorial-type-tabs a:hover,
.editorial-archive--insight .editorial-type-tabs a[aria-current] {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}

.editorial-archive--insight .article-card {
  grid-column: span 6;
  padding: clamp(1rem,1.5vw,1.5rem);
  background: var(--paper);
}

.editorial-archive--insight .article-card__media img {
  aspect-ratio: 16/10;
}

.editorial-archive--press .editorial-archive__hero {
  background: linear-gradient(125deg,var(--ink-deep),#193c68);
}

.editorial-archive--press .editorial-archive__grid {
  gap: 0;
}

.editorial-archive--press .article-card {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: minmax(220px,31%) minmax(0,1fr);
  gap: clamp(2rem,5vw,6rem);
  padding-block: clamp(2rem,3vw,3.5rem);
  border-top: 1px solid var(--line);
}

.editorial-archive--press .article-card:last-child {
  border-bottom: 1px solid var(--line);
}

.editorial-archive--press .article-card__media img {
  height: 100%;
  min-height: 240px;
  aspect-ratio: 16/10;
}

.editorial-archive--press .article-card__body {
  align-self: center;
  padding: 0;
}

.editorial-archive--press .article-card__body h3 {
  font-family: var(--serif);
  font-size: clamp(2.4rem,4.5vw,5.5rem);
  font-weight: 400;
  line-height: .9;
}

.article-hero__standfirst {
  width: min(760px,90%);
  margin: 0 0 2rem;
  color: rgba(255,255,255,.84);
  font-size: clamp(1.1rem,1.4vw,1.5rem);
  line-height: 1.5;
}

.article-hero--insight .article-hero__overlay {
  background: linear-gradient(90deg,rgba(8,18,33,.96) 0 46%,rgba(8,18,33,.66) 72%,rgba(8,18,33,.35));
}

.editorial-document-link {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

.editorial-related {
  padding: clamp(6rem,9vw,10rem) 0;
  background: var(--paper);
}

.editorial-related h2 {
  margin: 0 0 clamp(3rem,5vw,5rem);
  color: var(--gold);
  font-size: clamp(3.5rem,6vw,7rem);
  line-height: .86;
}

.press-hero {
  min-height: 88svh;
  display: grid;
  grid-template-columns: minmax(0,1.12fr) minmax(340px,.88fr);
  align-items: stretch;
  background: var(--ink);
  color: #fff;
}

.press-hero__content {
  align-self: end;
  padding-top: 12rem;
  padding-bottom: clamp(5rem,8vw,9rem);
}

.press-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 2rem;
  color: var(--gold);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.press-hero h1 {
  width: min(900px,100%);
  margin: 1.5rem 0 2rem;
  color: #fff;
  font-size: clamp(4rem,6.5vw,8rem);
  line-height: .84;
}

.press-hero__content > p {
  width: min(680px,90%);
  color: rgba(255,255,255,.72);
  font-size: clamp(1.05rem,1.25vw,1.35rem);
}

.press-hero__media {
  min-width: 0;
  margin: 0;
  overflow: hidden;
}

.press-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.04);
}

.press-layout {
  display: grid;
  grid-template-columns: minmax(220px,.38fr) minmax(0,1fr);
  gap: clamp(3rem,8vw,10rem);
  align-items: start;
  padding-block: clamp(6rem,9vw,11rem);
}

.press-aside {
  position: sticky;
  top: 150px;
  display: grid;
  gap: .8rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gold);
}

.press-aside strong {
  color: var(--ink);
  font: 400 clamp(1.8rem,2.5vw,3rem)/1 var(--serif);
}

.press-aside time {
  color: #697383;
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.press-aside a {
  margin-top: .75rem;
  padding-bottom: .35rem;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}

@media(max-width:900px) {
  .communications-card--insight,
  .communications-card--press {
    grid-template-columns: minmax(220px,.75fr) minmax(0,1.25fr);
  }

  .editorial-archive--insight .article-card {
    grid-column: span 6;
  }

  .press-hero {
    grid-template-columns: 1fr;
  }

  .press-hero__media {
    min-height: 55svh;
    grid-row: 1;
  }

  .press-hero__content {
    grid-row: 2;
    padding-top: 5rem;
  }

  .press-layout {
    grid-template-columns: 1fr;
  }

  .press-aside {
    position: static;
  }
}

@media(max-width:600px) {
  .communications-card--insight,
  .communications-card--press {
    grid-template-columns: 1fr;
  }

  .communications-card--press .communications-card__media,
  .communications-card--press .communications-card__body {
    grid-column: 1;
    grid-row: auto;
  }

  .communications-card__media img {
    min-height: 220px;
  }

  .editorial-type-tabs {
    gap: .45rem;
  }

  .editorial-type-tabs a {
    padding: .62rem .8rem;
    font-size: .65rem;
  }

  .editorial-archive--insight .article-card,
  .editorial-archive--press .article-card {
    grid-column: 1/-1;
  }

  .editorial-archive--press .article-card {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .editorial-archive--press .article-card__media img {
    min-height: 210px;
  }

  .press-hero h1 {
    font-size: clamp(3.4rem,15vw,5rem);
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior: auto!important;
    animation-duration: .01ms!important;
    animation-iteration-count: 1!important;
    transition-duration: .01ms!important;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }

}

/* ==========================================================================
   17. Resolved component refinements
   Keep this section after the base rules: these declarations intentionally
   refine the original component proportions and responsive behavior.
   ========================================================================== */

/* Homepage proportions and logo docking */

.hero-media {
  inset: 0;
  transform-origin: center 58%;
}

.hero-emblem {
  pointer-events: none;
}

.hero.has-logo-motion .hero-emblem {
  position: fixed;
  z-index: 60;
  margin: 0;
}

.hero-emblem.is-gold img {
  filter: none;
}

.intro {
  padding-block: clamp(7rem,9vw,10.5rem);
}

.intro-grid {
  grid-template-columns: minmax(230px,.72fr) minmax(0,2.15fr);
  gap: clamp(4rem,8vw,9rem);
  align-items: center;
}

.intro-brand {
  display: flex;
  min-height: 350px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.intro-brand .brand-mark {
  width: min(285px,100%);
  margin: 0;
  opacity: 0;
  transition: opacity .2s ease;
}

.intro-brand .wordmark {
  width: min(230px,88%);
  margin: 1.6rem auto 0;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .75s var(--ease) .12s,transform .75s var(--ease) .12s;
}

.intro-brand.is-docked .brand-mark,.intro-brand.is-docked .wordmark {
  opacity: 1;
}

.intro-brand.is-docked .wordmark {
  transform: none;
}

.intro-copy h2 {
  max-width: 940px;
  margin-bottom: 2rem;
  font-size: clamp(3.25rem,4.1vw,5rem);
  line-height: .88;
}

.intro-copy .rich-text {
  max-width: 920px;
  font-size: 1.4rem;
  line-height: 1.75;
}

.intro-copy .arrow-link {
  margin-top: 1.8rem;
}

.founders h2 {
  max-width: 980px;
  font-size: clamp(4rem,6.6vw,7.6rem);
  line-height: .78;
}

.founders h2 br {
  display: block;
}

.services {
  min-height: clamp(820px,58vw,1040px);
}

.services-grid {
  align-items: center;
}

.services-list button {
  padding: .8rem 0;
}

.service-detail {
  min-height: 420px;
}

.service-detail h3 {
  max-width: 700px;
  margin-inline: auto;
  font-size: clamp(3.4rem,4.8vw,5.8rem);
  line-height: .9;
}

.profiles {
  padding-block: clamp(6rem,8vw,9rem);
}

.profiles-head {
  margin-bottom: clamp(3rem,5vw,5.5rem);
}

.profiles-track {
  grid-auto-columns: minmax(300px,27vw);
}

.profile-meta h3 {
  font-size: clamp(1.35rem,1.5vw,1.9rem);
}

.profiles-intro:empty {
  display: none;
}

.feature {
  height: clamp(680px,62vw,920px);
}

.feature h2 {
  max-width: 1120px;
  font-size: clamp(4rem,7.5vw,8.5rem);
  line-height: .8;
  overflow-wrap: normal;
}

.feature--image-only {
  height: clamp(540px,46vw,760px);
}

.numbers {
  padding-block: clamp(7rem,9vw,10rem);
}

.numbers--solo .numbers-grid {
  grid-template-columns: minmax(0,900px);
  justify-content: start;
}

.numbers--solo .stats {
  max-width: 780px;
}

.stat {
  grid-template-columns: clamp(120px,10vw,180px) minmax(0,1fr);
}

.stat strong {
  font-size: clamp(4rem,5.5vw,6.5rem);
}

.communications {
  padding-block: clamp(6rem,8vw,9rem);
}

.communications:has(.news-list .empty-state) {
  padding-bottom: clamp(4rem,5vw,6rem);
}

.empty-state {
  margin: 0;
  padding: 2rem 0;
  border-top: 1px solid var(--line);
  color: #7b8390;
  font-size: .78rem;
}

.site-footer {
  padding-top: clamp(4rem,6vw,6rem);
}

@media(max-width:900px) {
  .intro {
    padding-block: 5rem;
  }

  .intro-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .intro-brand {
    min-height: 210px;
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .intro-brand .brand-mark {
    width: 150px;
  }

  .intro-brand .wordmark {
    width: 165px;
    margin-top: 1rem;
  }

  .intro-copy h2 {
    font-size: clamp(2.35rem,9vw,4.25rem);
    line-height: .93;
  }

  .founders {
    height: 76svh;
    min-height: 600px;
  }

  .founders h2 {
    font-size: clamp(3.4rem,12vw,6rem);
  }

  .services-grid {
    gap: 2rem;
  }

  .service-detail {
    min-height: 310px;
    padding-top: 3rem;
  }

  .profiles-track {
    grid-auto-columns: minmax(270px,74vw);
  }

  .feature,.feature--image-only {
    height: 70svh;
    min-height: 560px;
  }

  .feature h2 {
    font-size: clamp(3.3rem,12vw,6rem);
  }

  .numbers--solo .numbers-grid {
    grid-template-columns: 1fr;
  }

}

@media(max-width:600px) {
  .hero-emblem {
    width: 66vw;
  }

  .intro-brand {
    min-height: 180px;
  }

  .founders {
    min-height: 540px;
  }

  .founders h2 {
    bottom: 8%;
    width: 88%;
  }

  .founders-badge {
    top: 5%;
  }

  .services-list button {
    font-size: .67rem;
  }

  .service-detail h3 {
    font-size: 3.15rem;
  }

  .communications {
    padding-block: 5rem;
  }

  .communications-head {
    margin-bottom: 2.5rem;
  }

  .news-card {
    align-items: start;
  }

}

@media(prefers-reduced-motion:reduce) {
  .hero.has-logo-motion .hero-emblem {
    position: absolute;
    left: 50%!important;
    top: 50%!important;
    width: min(66vw,710px)!important;
    transform: translate(-50%,-50%)!important;
  }

  .intro-brand .brand-mark,.intro-brand .wordmark {
    opacity: 1;
    transform: none;
  }

}

/* Shared components: profile groups, archive grids and service cards */

.hero.is-progressed .hero-emblem img {
  filter: brightness(0) invert(1);
}

.hero .hero-emblem.is-gold img {
  filter: none;
}

.founders-badge {
  width: clamp(48px,4.2vw,72px);
  height: auto;
  object-fit: contain;
  z-index: 3;
}

.services {
  background: var(--ink);
}

.services-figure {
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .2;
}

.services-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(1);
  mix-blend-mode: luminosity;
}

.services::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(17,40,74,.42);
  pointer-events: none;
}

.services-grid {
  z-index: 3;
  grid-template-columns: minmax(390px,.86fr) minmax(0,1.14fr);
}

.services-list button {
  font-size: clamp(.78rem,.78vw,.95rem);
  padding: 1rem 0;
}

.service-detail {
  align-content: center;
  text-align: left;
}

.service-detail-inner {
  width: min(760px,100%);
  margin-inline: auto;
}

.service-detail h3 {
  max-width: none;
  margin: 0 0 1.6rem;
  font-size: clamp(4.5rem,5.8vw,7rem);
  line-height: .8;
  text-align: left;
}

.service-description {
  max-width: 650px;
  color: rgba(255,255,255,.74);
  font-size: clamp(.82rem,.82vw,1rem);
  line-height: 1.75;
}

.service-detail .arrow-link {
  margin-top: 2rem;
}

.profiles-track {
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}

.profiles-track::-webkit-scrollbar {
  display: none;
}

.numbers::before {
  content: "";
  left: -8vw;
  bottom: -18vw;
  width: min(72vw,1100px);
  height: min(72vw,1100px);
  background: url("assets/images/hero-mark.png") center/contain no-repeat;
  filter: brightness(0) invert(1);
  opacity: .035;
}

.numbers-grid {
  z-index: 1;
}

.profile-department {
  padding: clamp(5rem,8vw,9rem) var(--gutter);
  background: #fff;
}

.profile-department:nth-child(even) {
  background: var(--paper);
}

.profile-department__head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: end;
  gap: 2rem;
  margin-bottom: clamp(2.5rem,4vw,4.5rem);
}

.profile-department__head h2 {
  margin: 0;
  color: var(--gold);
  font-size: clamp(3rem,5vw,6rem);
  line-height: .9;
}

.profile-grid {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: clamp(1.5rem,3vw,4rem);
}

.profile-grid>.profile-card {
  grid-column: span 2;
}

/* Centre incomplete rows while preserving the width of a three-card row. */
.profile-grid>.profile-card:nth-last-child(1):nth-child(3n+1) {
  grid-column: 3/span 2;
}

.profile-grid>.profile-card:nth-last-child(2):nth-child(3n+1) {
  grid-column: 2/span 2;
}

/* The seven labour consultants are intentionally arranged as 3 + 2 + 2. */
.profile-department--lead-seven .profile-grid>.profile-card:nth-child(n+4) {
  grid-column: auto/span 2;
}

.profile-department--lead-seven .profile-grid>.profile-card:nth-child(4),
.profile-department--lead-seven .profile-grid>.profile-card:nth-child(6) {
  grid-column: 2/span 2;
}

.template-hero-copy {
  position: relative;
  z-index: 2;
  max-width: 1050px;
}

.template-hero-copy p {
  max-width: 680px;
  color: rgba(255,255,255,.78);
}

.template-intro {
  padding: clamp(5rem,8vw,9rem) var(--gutter);
  background: var(--ink);
  color: #fff;
}

.template-intro>div {
  width: min(1050px,100%);
  margin: auto;
}

.service-archive-grid,.communication-grid,.resource-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(1.5rem,3vw,4rem);
}

.service-tile,.communication-tile,.resource-tile {
  padding: 2rem 0;
  border-top: 1px solid var(--line);
}

.service-tile h2,.communication-tile h2,.resource-tile h2 {
  font-size: clamp(2rem,3vw,3.5rem);
  line-height: 1;
  color: var(--gold);
}

.service-tile .arrow-link,.communication-tile .arrow-link,.resource-tile .arrow-link {
  margin-top: 1.25rem;
}

@media(max-width:1100px) {
  .service-archive-grid,.communication-grid,.resource-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

}

@media(max-width:900px) {
  .services-grid {
    grid-template-columns: 1fr;
  }

  .services-figure {
    opacity: .14;
  }

  .service-detail h3 {
    font-size: clamp(3.4rem,11vw,5rem);
  }

  .service-detail-inner {
    padding-inline: .25rem;
  }

  .profile-grid {
    grid-template-columns: repeat(4,minmax(0,1fr));
  }

  .profile-grid>.profile-card,
  .profile-grid>.profile-card:nth-last-child(1):nth-child(3n+1),
  .profile-grid>.profile-card:nth-last-child(2):nth-child(3n+1),
  .profile-department--lead-seven .profile-grid>.profile-card:nth-child(n+4),
  .profile-department--lead-seven .profile-grid>.profile-card:nth-child(4),
  .profile-department--lead-seven .profile-grid>.profile-card:nth-child(6) {
    grid-column: auto/span 2;
  }

  .profile-grid>.profile-card:nth-last-child(1):nth-child(2n+1) {
    grid-column: 2/span 2;
  }

}

@media(max-width:600px) {
  .profile-grid,.service-archive-grid,.communication-grid,.resource-grid {
    grid-template-columns: 1fr;
  }

  .profile-department__head {
    grid-template-columns: 1fr;
  }

  .profile-grid>.profile-card,
  .profile-grid>.profile-card:nth-last-child(1):nth-child(2n+1) {
    grid-column: 1;
  }

  .service-detail h3 {
    font-size: 3.25rem;
  }

  .service-description {
    font-size: .8rem;
  }

}

/* Contact page */

.contact-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(2rem,5vw,6rem);
}

.contact-card {
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  color: #4f5d6d;
}

.contact-card h2 {
  margin: 0 0 1.5rem;
  color: var(--gold);
  font-size: clamp(2.4rem,3.5vw,4rem);
  line-height: 1;
}

.contact-card a {
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-underline-offset: .25em;
}

@media(max-width:900px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }

}

/* Founders badge and services presentation */

.founders > .founders-badge {
  width: clamp(36px,3vw,52px);
  height: auto;
  top: 5.5%;
  left: 50%;
  object-fit: contain;
}

.services-figure {
  inset: 0 0 0 auto;
  width: 52%;
  height: 100%;
  opacity: .42;
}

.services-figure img {
  object-position: center;
  mix-blend-mode: normal;
}

.services::after {
  display: none;
}

.services-list button {
  font-size: clamp(1rem,1.15vw,1.3rem);
  line-height: 1.2;
  padding: 1.15rem 0;
  letter-spacing: .015em;
}

.service-detail h3 {
  font-size: clamp(5rem,6.4vw,7.8rem);
}

.service-description {
  font-size: clamp(1rem,1vw,1.15rem);
  line-height: 1.65;
}

.profiles .profile-card {
  opacity: 1;
  transform: none;
}

@media(max-width:900px) {
  .services-figure {
    left: auto;
    right: -18%;
    width: 92%;
    opacity: .24;
  }

  .services-list button {
    font-size: 1rem;
  }

  .founders > .founders-badge {
    width: 38px;
  }

}

/* Navigation, profile typography and figures */

.services {
  background: var(--ink);
}

.services-figure {
  inset: 0 auto 0 0;
  width: 50%;
  height: 100%;
  opacity: .22;
}

.services-figure img {
  object-position: center;
  mix-blend-mode: luminosity;
}

.profile-meta small {
  font-size: clamp(.82rem,.82vw,1rem);
  line-height: 1.5;
}

.profile-meta h3 {
  font-size: clamp(2rem,2.15vw,2.65rem);
  line-height: 1;
  margin-top: .45rem;
}

.profiles-intro {
  max-width: 820px;
  font-size: clamp(.92rem,.9vw,1.08rem);
  line-height: 1.8;
}

.profiles-link {
  padding: .9rem 1.25rem;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: .78rem;
  transition: background .3s var(--ease),color .3s var(--ease);
}

.profiles-link:hover {
  background: var(--gold);
  color: var(--ink);
}

.stat strong {
  font-weight: 600;
  letter-spacing: -.045em;
  -webkit-text-stroke:.35px currentColor
}

.stat span {
  max-width: 240px;
  font-size: clamp(.9rem,.9vw,1.08rem);
  line-height: 1.45;
}

.quote blockquote {
  font-weight: 500;
}

.quote .rich-text {
  font-size: clamp(.92rem,.9vw,1.08rem);
  line-height: 1.75;
}

.mega-column>div>ul,.mega-column>ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

@media(max-width:900px) {
  .services-figure {
    inset: 0;
    width: 100%;
    opacity: .13;
  }

  .profiles-link {
    display: inline-flex;
  }

  .stat span {
    font-size: .9rem;
  }

}

/* Services background and artwork position */

.services {
  background: #1a2c47;
}

.services-figure {
  inset: 0 0 0 auto;
  width: 50%;
  height: 100%;
  opacity: .22;
}

.services-figure img {
  object-position: center;
}

@media(max-width:900px) {
  .services-figure {
    inset: 0 -18% 0 auto;
    width: 92%;
    opacity: .18;
  }

}

/* Homepage profile-card scale */

.profiles .profile-meta h3 {
  font-size: clamp(.95rem,1vw,1.18rem);
  line-height: 1.2;
}

.profiles .profile-meta small {
  font-size: clamp(.72rem,.72vw,.88rem);
}

/* Profile hierarchy and services artwork */

.services {
  background: #1a2c47;
}

.services-figure {
  inset: 0 0 0 auto;
  width: 50%;
  background: #1a2c47;
  opacity: 1;
}

.services-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(1) contrast(1.08);
  mix-blend-mode: luminosity;
  opacity: .28;
}

.profile-card img,.profile-card:hover img {
  filter: none;
}

.profile-department__head h2 {
  font-size: clamp(2.1rem,3.2vw,4rem);
  line-height: .95;
}

.profiles .profile-meta small {
  padding-bottom: .2rem;
  color: #1a2e4cc9;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.25;
}
.profile-meta h3,.profiles .profile-meta h3 {
  margin-top: .55rem;
  color: var(--gold);
  font-family: var(--sans);
  font-size: clamp(.82rem,.82vw,.98rem);
  font-weight: 400;
  line-height: 1.35;
}

.profile-department .profile-card img {
  filter: none;
}

@media(max-width:900px) {
  .services-figure {
    inset: 0 -18% 0 auto;
    width: 92%;
    background: #1a2c47;
  }

  .services-figure img {
    opacity: .18;
  }

  .profile-department__head h2 {
    font-size: clamp(1.9rem,8vw,3rem);
  }

}

/* Hero rendering performance */

.hero-media {
  will-change: transform;
  backface-visibility: hidden;
}

.hero-emblem {
  will-change: left,top,width,opacity;
  backface-visibility: hidden;
}

.hero-emblem img {
  backface-visibility: hidden;
}

/* Hero scroll cue */

.hero-scroll {
  bottom: 2.5rem;
  font-size: clamp(.82rem,.8vw,1rem);
  font-weight: 500;
  letter-spacing: .2em;
}

.hero-scroll::after {
  width: 2px;
  height: 62px;
  margin-top: 1rem;
}

@media(max-width:600px) {
  .hero-scroll {
    bottom: 1.5rem;
    font-size: .78rem;
  }

  .hero-scroll::after {
    height: 48px;
  }

}

/* Final services artwork, profile states and menu visibility */

.services {
  background: #1a2c47;
}

.services-figure {
  background: transparent;
  opacity: 1;
}

.services-figure img {
  background: transparent;
  filter: none;
  mix-blend-mode: normal;
  opacity: .34;
}

.profiles .profile-card img {
  filter: grayscale(1);
}

.profiles .profile-card:hover img,.profiles .profile-card:focus-within img {
  filter: none;
}

.profiles-page .profile-card img {
  filter: none;
}

.profiles-track {
  overscroll-behavior: auto;
}

.menu-active .mega-menu,.site-header.menu-active .mega-menu {
  visibility: visible;
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.footer-fallback-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
}

.footer-fallback-menu li {
  margin: .35rem 0;
}

@media(max-width:900px) {
  .services-figure img {
    opacity: .24;
  }

}

/* Services detail alignment */

.service-detail,.service-detail-inner {
  text-align: center;
}

.service-detail h3 {
  margin-inline: auto;
  text-align: center;
}

.service-description {
  margin-inline: auto;
  text-align: center;
}

.service-detail .arrow-link {
  justify-content: center;
}

/* ==========================================================================
   18. Editorial system and single templates
   ========================================================================== */

/* Larger global typography */

body {
  font-size: 17px;
}

.rich-text,
.entry-content {
  font-size: 1.05rem;
}

.arrow-link {
  font-size: .78rem;
}

/* Larger header */

.header-bar {
  height: 112px;
}

.header-brand {
  width: 168px;
}

.header-brand img {
  max-height: 72px;
}

.menu-toggle,
.header-contact {
  font-size: .8rem;
}

.menu-toggle {
  padding: .8rem 1.25rem;
}

.mega-menu {
  top: 112px;
  height: min(600px,calc(100vh - 112px));
}

.mega-column h2 {
  font-size: clamp(2rem,2.4vw,3rem);
}

.mega-column a {
  font-size: .92rem;
}

/* Homepage type scale */

.intro-copy .rich-text {
  font-size: clamp(1rem,1vw,1.18rem);
}

.founders > .founders-badge {
  width: clamp(78px,6vw,112px);
}

.news-card time {
  font-size: .76rem;
}

.news-card h3 {
  font-size: clamp(1.15rem,1.2vw,1.4rem);
  line-height: 1.35;
}

.news-card p {
  font-size: clamp(.95rem,.95vw,1.08rem);
  line-height: 1.7;
}

.communications-filter {
  font-size: clamp(1.35rem,1.5vw,1.8rem);
}

.footer-column,
.footer-column a {
  font-size: .84rem;
}

/* Article cards and category discovery */

.editorial-discovery {
  padding: clamp(6rem,9vw,11rem) 0;
  background: var(--paper);
}

.editorial-discovery__head {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(320px,.8fr);
  gap: 2rem 6vw;
  align-items: end;
  padding-bottom: clamp(3rem,5vw,6rem);
  border-bottom: 1px solid var(--line);
}

.editorial-discovery__head > .eyebrow {
  grid-column: 1/-1;
  color: var(--gold);
}

.editorial-discovery__head h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(3.8rem,6vw,7.5rem);
  line-height: .82;
}

.category-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: flex-end;
}

.category-pills a {
  padding: .7rem 1rem;
  border: 1px solid var(--line);
  border-radius: 100px;
  color: var(--ink);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  transition: background .3s var(--ease),color .3s var(--ease);
}

.category-pills a:hover {
  background: var(--ink);
  color: #fff;
}

.editorial-group {
  padding: clamp(4rem,6vw,7rem) 0;
  border-bottom: 1px solid var(--line);
}

.editorial-group__title {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 2rem;
  margin-bottom: 2.5rem;
}

.editorial-group__title h3 {
  margin: 0;
  color: var(--gold);
  font-size: clamp(2.6rem,4vw,4.8rem);
  line-height: .9;
}

.article-grid {
  display: grid;
  grid-template-columns: repeat(12,minmax(0,1fr));
  gap: clamp(1.5rem,2.5vw,3rem);
}

.article-card {
  grid-column: span 3;
  min-width: 0;
}

.article-card:first-child {
  grid-column: span 6;
}

.article-card__media {
  display: block;
  overflow: hidden;
  background: var(--ink);
}

.article-card__media img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  filter: grayscale(1);
  transition: transform .8s var(--ease),filter .5s var(--ease);
}

.article-card:hover .article-card__media img {
  transform: scale(1.045);
  filter: grayscale(0);
}

.article-card__body {
  padding-top: 1.4rem;
}

.article-card__meta {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: #697383;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.article-card__body h3 {
  margin: 1rem 0;
  color: var(--ink);
  font-size: clamp(1.7rem,2.2vw,2.8rem);
  line-height: 1;
}

.article-card__body p {
  color: #303640;
  font-size: .98rem;
  line-height: 1.65;
}

/* Single article */

.article-hero {
  position: relative;
  min-height: 82svh;
  display: flex;
  align-items: end;
  overflow: hidden;
  background: var(--ink);
  color: #fff;
}

.article-hero__media,
.article-hero__overlay {
  position: absolute;
  inset: 0;
}

.article-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.article-hero__overlay {
  background: linear-gradient(180deg,rgba(8,18,33,.18),rgba(8,18,33,.9));
}

.article-hero__content {
  position: relative;
  z-index: 2;
  padding-bottom: clamp(4rem,7vw,8rem);
}

.article-hero__content .eyebrow {
  color: var(--gold);
}

.article-hero h1 {
  width: min(1250px,100%);
  margin: 1.2rem 0 2rem;
  font-size: clamp(4rem,7.2vw,9rem);
  line-height: .84;
}

.article-hero__meta {
  display: flex;
  gap: 2rem;
  font-size: .85rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.article-layout {
  display: grid;
  grid-template-columns: minmax(180px,.35fr) minmax(0,1fr);
  gap: clamp(3rem,8vw,10rem);
  align-items: start;
  padding-block: clamp(6rem,9vw,11rem);
  background: #fff;
}

.article-aside {
  position: sticky;
  top: 150px;
  display: grid;
  gap: .8rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--gold);
}

.article-aside a {
  color: var(--gold);
  font-family: var(--serif);
  font-size: 1.35rem;
}

.article-content {
  width: min(860px,100%);
  color: #111;
  font-size: clamp(1.15rem,1.25vw,1.38rem);
  line-height: 1.85;
}

.article-content h2,
.article-content h3,
.article-content h4 {
  color: #111;
  line-height: 1;
}

.article-content h2 {
  margin: 3.5rem 0 1.5rem;
  font-size: clamp(2.8rem,4.5vw,5rem);
}

.article-content h3 {
  margin: 2.8rem 0 1.2rem;
  font-size: clamp(2rem,3vw,3.4rem);
}

.article-content a {
  color: #111;
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: .2em;
}

.article-content blockquote {
  margin: 3rem 0;
  padding: 2.5rem;
  border-left: 3px solid var(--gold);
  background: var(--paper);
  color: var(--ink);
  font: 500 clamp(1.8rem,2.8vw,3.2rem)/1.1 var(--serif);
}

.category-hero {
  min-height: 68svh;
  display: flex;
  align-items: end;
  padding: 12rem 0 6rem;
  background: var(--ink);
  color: #fff;
}

.category-hero h1 {
  margin: 1rem 0;
  color: var(--gold);
  font-size: clamp(4.5rem,8vw,10rem);
  line-height: .78;
}

.category-hero__description {
  width: min(700px,100%);
  font-size: 1.15rem;
}

.category-results {
  padding: clamp(6rem,9vw,11rem) 0;
  background: #fff;
}

.category-pagination {
  margin-top: 5rem;
  font-size: 1rem;
}

/* Single service */

.service-hero {
  position: relative;
  min-height: 92svh;
  display: flex;
  align-items: end;
  overflow: hidden;
  background: #1a2c47;
  color: #fff;
}

.service-hero__art {
  position: absolute;
  inset: 0 0 0 auto;
  width: 55%;
  opacity: .16;
}

.service-hero__art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(.2) brightness(1.25) contrast(.92);
}

.service-hero__image {
  position: absolute;
  inset: 0;
  opacity: .2;
}

.service-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
}

.service-hero__content {
  position: relative;
  z-index: 2;
  padding-bottom: clamp(5rem,8vw,9rem);
}

.service-hero h1 {
  width: min(1200px,85%);
  margin: 1.2rem 0 2rem;
  color: var(--gold);
  font-size: clamp(5rem,9vw,11rem);
  line-height: .74;
}

.service-hero__content p {
  width: min(680px,80%);
  font-size: clamp(1.1rem,1.3vw,1.45rem);
}

.service-hero__index {
  position: absolute;
  right: var(--gutter);
  bottom: 2rem;
  color: rgba(255,255,255,.12);
  font: 600 clamp(8rem,18vw,22rem)/.7 var(--serif);
}

.service-story,
.profile-story {
  display: grid;
  grid-template-columns: minmax(220px,.55fr) minmax(0,1fr);
  gap: clamp(3rem,9vw,12rem);
  align-items: start;
  padding-block: clamp(7rem,10vw,12rem);
}

.service-story aside,
.profile-story aside {
  position: sticky;
  top: 150px;
}

.service-story aside h2,
.profile-story aside h2 {
  margin: 1rem 0 0;
  color: var(--gold);
  font-size: clamp(2.5rem,4vw,5rem);
  line-height: .9;
}

.service-story__content,
.profile-story__content {
  color: #111;
  font-size: clamp(1.1rem,1.2vw,1.32rem);
  line-height: 1.85;
}

.service-story__content h2,
.profile-story__content h2 {
  color: var(--ink);
  font-size: clamp(2.8rem,4vw,4.8rem);
  line-height: 1;
}

.related-services,
.profile-colleagues {
  padding: clamp(6rem,8vw,10rem) 0;
  background: var(--ink);
  color: #fff;
}

.related-services > .container > h2,
.profile-colleagues > .container > h2 {
  margin: 0 0 clamp(3rem,5vw,6rem);
  color: var(--gold);
  font-size: clamp(3.5rem,6vw,7rem);
  line-height: .85;
}

.related-services__grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(1.25rem,2.5vw,3rem);
  background: transparent;
}

.related-service {
  position: relative;
  min-height: 410px;
  overflow: hidden;
  background: var(--ink);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(5,18,34,.2);
  transition: border-color .35s ease,transform .55s var(--ease),box-shadow .55s var(--ease);
}

@media(hover:hover) and (pointer:fine) {
  .related-service:hover {
    border-color: rgba(183,161,116,.58);
    box-shadow: 0 32px 72px rgba(5,18,34,.34);
    transform: translateY(-.55rem);
  }
}

.related-service__media,
.related-service__shade {
  position: absolute;
  inset: 0;
}

.related-service__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
  transition: filter .5s var(--ease),transform .8s var(--ease);
}

.related-service__shade {
  background: linear-gradient(180deg,rgba(10,24,44,.2),rgba(10,24,44,.92));
  transition: background .4s var(--ease);
}

.related-service__content {
  position: relative;
  z-index: 2;
  min-height: 410px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(2rem,3vw,4rem);
}

.related-service__content strong {
  display: block;
  margin-top: 1.5rem;
  color: var(--gold);
  font: 400 clamp(2.3rem,3.5vw,4.2rem)/.9 var(--serif);
}

.related-service:hover .related-service__media img {
  filter: grayscale(0);
  transform: scale(1.05);
}

.related-service:hover .related-service__shade {
  background: linear-gradient(180deg,rgba(10,24,44,.05),rgba(10,24,44,.82));
}

.related-service__arrow {
  margin-top: 2rem;
  align-self: flex-end;
  font-size: 2rem;
  line-height: 1;
}

/* Single profile */

.profile-hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  overflow: hidden;
  background: var(--paper);
}

.profile-hero__portrait {
  min-height: 100svh;
  overflow: hidden;
}

.profile-hero__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10rem var(--gutter) 6rem clamp(3rem,7vw,9rem);
}

.profile-hero__content .eyebrow {
  color: var(--gold);
}

.profile-hero h1 {
  margin: 1.5rem 0 3rem;
  color: var(--ink);
  font-size: clamp(4.8rem,7.5vw,9rem);
  line-height: .78;
}

.profile-email {
  width: fit-content;
  padding-bottom: .45rem;
  border-bottom: 1px solid var(--gold);
  color: var(--ink);
  font-size: 1rem;
}

.profile-hero__mark {
  position: absolute;
  right: -8vw;
  bottom: -18vw;
  width: min(50vw,850px);
  opacity: .035;
  animation: profile-mark-drift 18s ease-in-out infinite alternate;
}

@keyframes profile-mark-drift {
  from {
    transform: translate3d(0,0,0) rotate(-2deg);
  }

  to {
    transform: translate3d(-3%,-4%,0) rotate(3deg);
  }
}

.profile-colleagues .profile-card img {
  filter: grayscale(1);
}

.profile-colleagues .profile-meta small {
  color: #fff;
}

.profile-card > a {
  display: block;
  width: 100%;
  height: 100%;
}

/* Controlled parallax bands and one-shot service hero motion */

.founders-bg,
.services-figure > img,
.feature-bg {
  will-change: transform;
  backface-visibility: hidden;
}

.founders h2 {
  left: var(--gutter);
  right: var(--gutter);
  bottom: clamp(2rem,7%,5rem);
  width: auto;
  max-width: none;
  transform: none;
  font-size: clamp(3.2rem,6vw,7.2rem);
  line-height: .82;
  overflow-wrap: break-word;
}

.service-hero::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: var(--gutter);
  bottom: 2.5rem;
  width: min(260px,22vw);
  height: 1px;
  background: var(--gold);
  transform-origin: left;
  animation: service-line-reveal 1.4s var(--ease) .35s both;
}

.service-hero__index {
  animation: service-index-reveal 1.2s var(--ease) .25s both;
}

@keyframes service-line-reveal {
  from {
    opacity: 0;
    transform: scaleX(0);
  }

  to {
    opacity: 1;
    transform: scaleX(1);
  }
}

@keyframes service-index-reveal {
  from {
    opacity: 0;
    transform: translate3d(0,30px,0);
  }

  to {
    opacity: 1;
    transform: translate3d(0,0,0);
  }
}

/* Responsive editorial and single layouts */

@media(max-width:900px) {
  .header-bar {
    height: 82px;
  }

  .header-brand {
    width: 122px;
  }

  .header-brand img {
    max-height: 58px;
  }

  .mega-menu {
    top: 82px;
    height: calc(100svh - 82px);
  }

  .editorial-discovery__head,
  .article-layout,
  .service-story,
  .profile-story {
    grid-template-columns: 1fr;
  }

  .category-pills {
    justify-content: flex-start;
  }

  .article-card,
  .article-card:first-child {
    grid-column: span 6;
  }

  .article-aside,
  .service-story aside,
  .profile-story aside {
    position: static;
  }

  .profile-hero {
    grid-template-columns: 1fr;
  }

  .profile-hero__portrait {
    min-height: 68svh;
  }

  .profile-hero__content {
    padding-block: 5rem;
  }

  .related-services__grid {
    grid-template-columns: 1fr;
  }
}

@media(max-width:600px) {
  body {
    font-size: 16px;
  }

  .founders > .founders-badge {
    width: 70px;
  }

  .founders h2 {
    left: var(--gutter);
    right: var(--gutter);
    bottom: 2.25rem;
    width: auto;
    font-size: clamp(2.6rem,11vw,4.2rem);
    line-height: .88;
  }

  .news-card {
    grid-template-columns: 1fr;
  }

  .editorial-discovery__head h2,
  .article-hero h1,
  .service-hero h1,
  .profile-hero h1 {
    font-size: clamp(3.5rem,16vw,5.5rem);
  }

  .article-card,
  .article-card:first-child {
    grid-column: 1/-1;
  }

  .article-hero {
    min-height: 76svh;
  }

  .article-layout {
    padding-inline: var(--gutter);
  }

  .article-content {
    font-size: 1.08rem;
  }

  .service-hero__art {
    width: 100%;
  }

  .service-hero__index {
    font-size: 9rem;
  }
}

/* ========================================================================== 
   19. Homepage artwork controls
   ========================================================================== */

/* Shared large arrow used at the edges of the PSD bands. */

.band-arrow {
  position: absolute;
  z-index: 5;
  display: block;
  width: clamp(82px,5.75vw,110px);
  height: 44px;
  overflow: hidden;
  color: inherit;
  font-size: 0;
  transition: transform .45s var(--ease),opacity .45s var(--ease);
}

.band-arrow::before {
  content: "";
  position: absolute;
  right: 2px;
  top: 50%;
  width: calc(100% - 3px);
  height: 1px;
  background: currentColor;
  transform: translateY(-50%);
}

.band-arrow::after {
  content: "";
  position: absolute;
  right: 3px;
  top: 50%;
  width: 17px;
  height: 17px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

.band-arrow:hover,
.band-arrow:focus-visible {
  transform: translateX(10px);
}

.section-title {
  font-size: clamp(3.25rem,5vw,6rem);
  line-height: .82;
}

/* Introduction. */

.intro {
  position: relative;
}

.intro-copy h2 {
  font-size: clamp(3rem,4vw,4.75rem);
  line-height: .92;
}

.intro-copy .rich-text,
.intro-copy .rich-text p {
  font-size: clamp(.95rem,1.05vw,1.25rem);
  line-height: 1.5;
}

.intro > .intro-grid > .band-arrow,
.intro .band-arrow--right {
  right: clamp(1.25rem,7.92vw,9.5rem);
  bottom: clamp(2.5rem,4vw,4.8rem);
  color: rgba(255,255,255,.24);
}

/* Founders. */

.founders h2 {
  text-align: center;
  font-size: clamp(4rem,8.2vw,9.75rem);
  line-height: .91;
}

/* Services. */

.services-grid {
  position: static;
}

.services-grid > div {
  position: relative;
  z-index: 3;
}

.service-detail {
  position: static;
}

.services-list button {
  font-size: clamp(.92rem,1.08vw,1.3rem);
}

.service-detail h3 {
  font-size: clamp(3.75rem,5.2vw,6.2rem);
  line-height: .82;
}

.service-description,
.service-description p {
  font-size: clamp(.95rem,1.05vw,1.25rem);
  line-height: 1.5;
}

.services .band-arrow--left {
  left: clamp(1.25rem,7.92vw,9.5rem);
  bottom: clamp(2.5rem,4vw,4.8rem);
  color: rgba(255,255,255,.24);
}

/* Profiles: name, rule, role and the ACF text block below the carousel. */

.profiles-head {
  display: block;
}

.profiles .profile-meta {
  margin-top: clamp(1rem,1.55vw,1.85rem);
  padding-top: 0;
  border-top: 0;
}

.profiles .profile-meta small {
  padding-bottom: .2rem;
  font-size: clamp(.82rem,.9vw,1.08rem);
  font-weight: 400;
  line-height: 1.25;
}

.profiles .profile-meta h3 {
  margin: 0;
  padding-top: .5rem;
  border-top: 1.5px solid rgb(183, 161, 116);
  font-size: clamp(1.05rem,1.28vw,1.54rem);
  font-weight: 600;
  line-height: 1.1;
}

.profiles-bottom {
  position: relative;
  min-height: clamp(180px,15vw,288px);
  margin-top: clamp(3rem,6vw,7.2rem);
  padding-right: clamp(120px,12vw,230px);
}

.profiles-copy {
  width: min(43vw,820px);
  max-width: 100%;
}

.profiles-intro {
  width: 100%;
  max-width: none;
  margin: 0;
  font-size: clamp(.95rem,1.05vw,1.25rem);
  line-height: 1.5;
}

.profiles-team-link {
  display: inline-block;
  margin-top: clamp(1.25rem,1.8vw,2.15rem);
  color: var(--ink);
  font-size: clamp(.9rem,.95vw,1.14rem);
  font-weight: 600;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}

.profiles-bottom > .band-arrow {
  right: 0;
  bottom: 18%;
  color: rgba(17,40,74,.18);
}

/* Slightly calmer typography in the remaining homepage panels. */

.feature h2 {
  font-size: clamp(4rem,8.2vw,9.75rem);
  line-height: .91;
}

.stat strong {
  font-size: clamp(5rem,7.7vw,9.25rem);
}

.stat span,
.quote .rich-text,
.quote .rich-text p,
.news-card h3,
.news-card p {
  font-size: 1.4rem;
}

.quote blockquote {
  font-size: clamp(2.2rem,3vw,3.6rem);
}

.communications-filter {
  font-size: clamp(1.5rem,2.15vw,2.6rem);
}

.hero-emblem {
  will-change: transform,opacity;
}

.hero-emblem.is-motion-logo {
  position: fixed;
  z-index: 60;
  margin: 0;
  pointer-events: none;
}

html.has-motion-logo .intro-brand .brand-mark,
html.has-motion-logo .intro-brand.is-docked .brand-mark {
  opacity: 0!important;
  transition: none;
}

html.has-motion-logo .intro-brand.is-docked .wordmark {
  opacity: 1;
  transform: none;
}

@media(max-width:900px) {
  .intro .band-arrow--right,
  .services .band-arrow--left {
    right: auto;
    left: clamp(1.25rem,5vw,3rem);
    bottom: 2rem;
  }

  .intro {
    padding-bottom: 8rem;
  }

  .services {
    padding-bottom: 8rem;
  }

  .profiles-copy {
    width: min(100%,680px);
  }

  .profiles-bottom {
    padding-right: 120px;
  }
}

@media(max-width:600px) {
  .band-arrow {
    width: 78px;
  }

  .founders h2 {
    font-size: clamp(2.6rem,11.5vw,3.8rem);
  }

  .profiles .profile-meta small {
    font-size: .84rem;
  }

  .profiles .profile-meta h3 {
    font-size: 1.1rem;
  }

  .profiles-bottom {
    min-height: 220px;
    padding-right: 0;
    padding-bottom: 5rem;
  }

  .profiles-bottom > .band-arrow {
    right: 0;
    bottom: 0;
  }
}

/* ========================================================================== 
   20. PSD fidelity and definitive typography
   Source: Giorgiutti B 02, desktop artboard 1920 x 11023.
   This is the authoritative type and spacing layer for the whole theme.
   ========================================================================== */

html {
  font-family: var(--sans);
  font-synthesis: none;
}

body,
button,
input,
select,
textarea {
  font-family: var(--sans);
  font-weight: 300;
}

strong,
b {
  font-weight: 600;
}

.display,
.section-title,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--serif);
  font-weight: 400;
}

.container {
  width: 100%;
  max-width: none;
  padding-inline: clamp(1.25rem,7.92vw,9.5rem);
}

.section-title {
  font-size: clamp(3.5rem,6.14vw,7.375rem);
  line-height: .75;
}

.arrow-link::after {
  content: "\2192";
}

/* Header: 119 px high and 57 px side inset on the 1920 px artboard. */

.header-bar {
  height: clamp(88px,6.2vw,119px);
  padding-inline: clamp(1.5rem,3vw,3.6rem);
}

.header-brand {
  width: clamp(124px,6.46vw,148px);
}

.header-brand img {
  max-height: clamp(58px,3.02vw,70px);
}

.menu-toggle,
.header-contact {
  font-family: var(--serif);
  font-size: clamp(.72rem,.9vw,1.077rem);
  font-weight: 400;
  letter-spacing: .02em;
}

.mega-menu {
  top: clamp(88px,6.2vw,119px);
  height: min(934px,calc(100svh - clamp(88px,6.2vw,119px)));
}

.mega-column h2 {
  font-size: clamp(2rem,2.76vw,3.3125rem);
  line-height: 1;
}

.mega-column a {
  font-size: clamp(.9rem,1.3vw,1.5625rem);
  font-weight: 300;
  line-height: 1.65;
}

/* Hero and introductory panel. */

.hero {
  height: 100svh;
  min-height: 640px;
}

.hero-scroll {
  font-family: var(--sans);
  font-weight: 300;
}

.intro {
  min-height: clamp(640px,53vw,1018px);
  display: flex;
  align-items: center;
  padding-block: clamp(5rem,7vw,8.4rem);
}

.intro-grid {
  grid-template-columns: minmax(0,30.5%) minmax(0,61.5%);
  gap: 8%;
}

.intro-brand {
  min-height: 0;
}

.intro-brand .brand-mark {
  width: min(19.65vw,377px);
}

.intro-brand .wordmark {
  width: min(14.7vw,282px);
  margin-top: clamp(1rem,2.05vw,2.46rem);
}

.intro-copy h2 {
  max-width: 1022px;
  margin-bottom: 2rem;
  color: var(--gold);
  font-size: clamp(3.25rem,4.6875vw,5.625rem);
  line-height: .89;
}

.intro-copy .rich-text,
.intro-copy .rich-text p {
  max-width: 968px;
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 1.4;
}

/* Founders panel. */

.founders {
  min-height: 0;
}

.founders > .founders-badge {
  top: 9.4%;
  width: clamp(58px,5.89vw,113px);
}

.founders h2 {
  left: 50%;
  right: auto;
  bottom: 9.8%;
  width: min(58.35vw,1120px);
  max-width: 1120px;
  transform: translateX(-50%);
  font-size: clamp(4.25rem,9.895vw,11.875rem);
  line-height: .895;
  overflow-wrap: normal;
}

/* Services panel. */

.services {
  min-height: clamp(780px,61vw,1171px);
  padding-block: clamp(5rem,9vw,10.8rem);
}

.services-grid {
  grid-template-columns: minmax(0,34%) minmax(0,48%);
  gap: 18%;
}

.services-list button {
  padding: clamp(.72rem,1.18vw,1.42rem) 0;
  font-size: clamp(1rem,1.302vw,1.5625rem);
  font-weight: 300;
  line-height: 1.12;
  letter-spacing: 0;
}

.service-detail {
  min-height: 520px;
}

.service-detail h3 {
  font-size: clamp(4rem,6.14vw,7.375rem);
  line-height: .75;
}

.service-description,
.service-description p {
  font-size: clamp(1rem,1.302vw,1.5625rem);
  font-weight: 300;
  line-height: 1.4;
}

/* Profiles panel. */

.profiles {

  padding-block: clamp(5rem,8vw,9.6rem);
}

.profiles-head {
  margin-bottom: clamp(3rem,5.9vw,7.1rem);
}

.profiles-track {
  grid-auto-columns: minmax(360px,32.35vw);
  gap: clamp(2.5rem,6.2vw,7.45rem);
  padding-bottom: 0;
  touch-action: pan-y pinch-zoom;
}

.profile-meta {
  margin-top: clamp(1rem,2.4vw,2.85rem);
  padding-top: clamp(.55rem,1.35vw,1.6rem);
}

.profiles .profile-meta small {
  color: var(--ink);
  font-size: clamp(.95rem,1.5625vw,1.875rem);
  font-weight: 400;
  line-height: 1;
}

.profiles .profile-meta h3 {
  margin-top: clamp(.45rem,1.1vw,1.3rem);
  color: var(--gold);
  font-size: clamp(1.45rem,2.604vw,3.125rem);
  font-weight: 600;
  line-height: .9;
}

.profiles-intro {
  width: min(40vw,768px);
  max-width: none;
  margin-top: clamp(3rem,7.35vw,8.8rem);
  font-size: clamp(1rem,1.302vw,1.5625rem);
  font-weight: 300;
  line-height: 1.4;
}

.profiles-link {
  font-size: clamp(.8rem,.95vw,1.14rem);
}

/* Full-width feature panel. */

.feature,
.feature--image-only {
  height: clamp(620px,53.4vw,1025px);
  min-height: 0;
}

.feature h2 {
  width: min(68.45vw,1314px);
  max-width: 1314px;
  font-size: clamp(4.5rem,9.895vw,11.875rem);
  line-height: .895;
}

/* Figures panel. */

.numbers {
  min-height: clamp(900px,74.4vw,1428px);
  padding-block: clamp(5rem,10vw,12rem);
}

.numbers-grid {
  grid-template-columns: minmax(0,52%) minmax(0,34%);
  gap: 14%;
}

.stats {
  margin-top: clamp(3rem,6vw,7.2rem);
}

.stat {
  grid-template-columns: minmax(170px,12.6vw) minmax(0,1fr);
  align-items: end;
  min-height: clamp(120px,10.7vw,205px);
  padding: 1.2rem 0;
  border-bottom: 3px dotted rgba(255,255,255,.18);
}

.stat strong {
  color: var(--gold);
  font-family: var(--sans);
  font-size: clamp(5.5rem,9vw,10.8rem);
  font-weight: 700;
  line-height: .7;
  letter-spacing: -.06em;
}

.stat span,
.quote .rich-text,
.quote .rich-text p {
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 1.32;
}

.stat span {
  transform: translateY(.3rem);
}

.quote blockquote {
  font-size: clamp(2.5rem,3.45vw,4.125rem);
  font-weight: 400;
  line-height: 1;
}

/* Communications panel. */

.communications {
  min-height: clamp(820px,68.4vw,1314px);
  padding-block: clamp(5rem,8vw,9.6rem);
}

.communications-head {
  margin-bottom: clamp(3rem,5.5vw,6.6rem);
}

.communications-filter {
  font-size: clamp(1.7rem,2.604vw,3.125rem);
  line-height: .8;
}

.news-list {
  width: min(84vw,1612px);
  margin-left: clamp(0px,3.4vw,65px);
}

.news-card {
  grid-template-columns: minmax(250px,21.67vw) minmax(0,1fr);
  gap: clamp(3rem,7.75vw,9.3rem);
  min-height: clamp(300px,22.45vw,431px);
  padding: 0;
  align-items: start;
}

.news-card img {
  aspect-ratio: 416/264;
}

.news-card time {
  font-size: clamp(.72rem,.78vw,.9375rem);
  font-weight: 600;
}

.news-card h3 {
  margin: .45rem 0;
  font-family: var(--sans);
  font-size: clamp(1rem,1.302vw,1.5625rem);
  font-weight: 600;
  line-height: 1.25;
}

.news-card p {
  font-size: clamp(1rem,1.302vw,1.5625rem);
  font-weight: 300;
  line-height: 1.4;
}

/* The same family and weight hierarchy applies to every internal template. */

.entry-content,
.page-content,
.article-content,
.service-story__content,
.profile-story__content,
.template-intro,
.contact-card,
.article-card__body p {
  font-family: var(--sans);
  font-weight: 300;
}

.eyebrow,
.arrow-link,
.article-card__meta,
.article-hero__meta,
.category-pills a {
  font-family: var(--sans);
}

@media(max-width:900px) {
  .container {
    padding-inline: clamp(1.25rem,5vw,3rem);
  }

  .header-bar {
    height: 82px;
    padding-inline: 1.25rem;
  }

  .header-brand {
    width: 122px;
  }

  .menu-toggle,
  .header-contact {
    font-family: var(--sans);
    font-size: .72rem;
  }

  .mega-menu {
    top: 82px;
    height: calc(100svh - 82px);
  }

  .intro {
    min-height: 0;
  }

  .intro-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .intro-brand .brand-mark {
    width: 150px;
  }

  .intro-brand .wordmark {
    width: 165px;
  }

  .founders {
    height: 76svh;
    min-height: 560px;
  }

  .founders h2 {
    left: 50%;
    right: auto;
    width: min(88%,720px);
    transform: translateX(-50%);
    font-size: clamp(3.4rem,12vw,6rem);
  }

  .services {
    min-height: 0;
  }

  .services-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .service-detail {
    min-height: 320px;
  }

  .profiles {
    min-height: 0;
  }

  .profiles-track {
    grid-auto-columns: minmax(280px,74vw);
    gap: 2rem;
  }

  .profiles .profile-meta small {
    font-size: 1rem;
  }

  .profiles .profile-meta h3 {
    font-size: 1.65rem;
  }

  .profiles-intro {
    width: min(100%,680px);
    margin-top: 3.5rem;
  }

  .feature,
  .feature--image-only {
    height: 70svh;
    min-height: 560px;
  }

  .numbers {
    min-height: 0;
  }

  .numbers-grid {
    grid-template-columns: 1fr;
    gap: 5rem;
  }

  .stat {
    grid-template-columns: minmax(120px,28vw) minmax(0,1fr);
    min-height: 130px;
  }

  .communications {
    min-height: 0;
  }

  .news-list {
    width: 100%;
    margin-left: 0;
  }
}

@media(max-width:600px) {
  .section-title {
    padding-bottom: .1em;
    font-size: clamp(2.8rem,13vw,4.1rem);
    line-height: .96;
  }

  .founders > .founders-badge {
    top: 6%;
    width: 70px;
  }

  .founders h2 {
    bottom: 2.25rem;
    width: calc(100% - 2.5rem);
    font-size: clamp(2.75rem,13vw,4.2rem);
    line-height: .88;
  }

  .services-list button {
    font-size: .92rem;
  }

  .service-detail h3 {
    font-size: clamp(3rem,15vw,4.5rem);
  }

  .profiles-head {
    align-items: flex-start;
    gap: 2rem;
  }

  .profiles-link {
    flex: 0 0 auto;
  }

  .feature h2 {
    width: calc(100% - 2.5rem);
    padding-bottom: .08em;
    font-size: clamp(2.8rem,12vw,4.4rem);
    line-height: .98;
  }

  .stat strong {
    font-size: clamp(5rem,24vw,7rem);
  }

  .communications-head {
    align-items: flex-start;
    gap: 2rem;
  }

  .communications-filter {
    font-size: 1.35rem;
    line-height: 1;
  }

  .news-card {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 1.5rem;
    padding-block: 2rem;
  }
}

/* ========================================================================== 
   21. Final homepage type tuning
   Keeps the PSD proportions while using the slightly calmer requested scale.
   ========================================================================== */

.section-title {
  font-size: clamp(3.25rem,5vw,6rem);
  line-height: .82;
}

.intro-copy h2 {
  font-size: clamp(3rem,4vw,4.75rem);
  line-height: .92;
}

.intro-copy .rich-text,
.intro-copy .rich-text p,
.service-description,
.service-description p,
.profiles-intro,
.stat span,
.quote .rich-text,
.quote .rich-text p,
.news-card h3,
.news-card p {
  font-size: 1.2rem;
  line-height: 1.3;
}

.founders h2 {
  text-align: center;
  font-size: clamp(4rem,8.2vw,9.75rem);
  line-height: .91;
}

.services-list button {
  font-size: clamp(.92rem,1.08vw,1.3rem);
}

.service-detail h3 {
  font-size: clamp(3.75rem,5.2vw,6.2rem);
  line-height: .82;
}

.profiles .profile-meta {
  margin-top: clamp(1rem,1.55vw,1.85rem);
  padding-top: 0;
  border-top: 0;
}

.profiles .profile-meta small {
  padding-bottom: .2rem;
  color: #11284ad4;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.25;
}
.profiles .profile-meta h3 {
  margin: 0;
  padding-top: .5rem;
  border-top: 1.5px solid rgb(183, 161, 116);
  color: var(--gold);
  font-family: var(--sans);
  font-size: clamp(1.05rem,1.28vw,1.54rem);
  font-weight: 600;
  line-height: 1.1;
}

.profiles-intro {
  width: 100%;
  max-width: none;
  margin: 0;
}

.feature h2 {
  font-size: clamp(4rem,8.2vw,9.75rem);
  line-height: .91;
}

.stat strong {
  font-size: clamp(5rem,7.7vw,9.25rem);
}

.quote blockquote {
  font-size: clamp(2.2rem,3vw,3.6rem);
}

.communications-filter {
  font-size: clamp(1.5rem,2.15vw,2.6rem);
}

@media(max-width:600px) {
  .founders h2 {
    font-size: clamp(2.6rem,11.5vw,3.8rem);
  }

  .profiles .profile-meta small {
    font-size: .84rem;
  }

  .profiles .profile-meta h3 {
    font-size: 1.1rem;
  }
}

/* ========================================================================== 
   22. Homepage positioning and interaction polish
   ========================================================================== */

/* Shorter, heavier band arrows. */

.band-arrow {
  width: clamp(62px,4vw,76px);
  height: 46px;
}

.band-arrow::before {
  right: 3px;
  width: calc(100% - 5px);
  height: 3px;
}

.band-arrow::after {
  right: 4px;
  width: 18px;
  height: 18px;
  border-top-width: 3px;
  border-right-width: 3px;
}

/* The reveal animation must preserve the founders title centering transform. */

.founders h2,
.founders h2[data-reveal].is-visible {
  top: 50%;
  left: 50%;
  right: auto;
  bottom: auto;
  width: min(68vw,1305px);
  transform: translate(-50%,-50%);
  text-align: center;
}

.founders h2[data-reveal] {
  transform: translate(-50%,calc(-50% + 35px));
}

/* Smaller, clearer services artwork and controls. */

.services-figure {
  inset: 6% 3% 6% auto;
  width: 44%;
  height: 88%;
  pointer-events: none;
}

.services-figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  opacity: .46;
}

.services-grid,
.services-grid > div,
.service-detail {
  position: static;
}

.services-list,
.service-detail-inner {
  position: relative;
  z-index: 3;
}

.services-list button {
  padding: clamp(.72rem,.8vw,.95rem) 0 clamp(.3rem,.38vw,.45rem);
  border-bottom: 2px solid rgba(255,255,255,.58);
}

.services .band-arrow--left {
  left: clamp(1.25rem,7.92vw,9.5rem);
  right: auto;
  bottom: clamp(2.75rem,4.4vw,5.25rem);
}

/* The watermark begins directly below the figures heading. */

.numbers::before {
  top: clamp(120px,9vw,173px);
  bottom: auto;
}

/* Communications hierarchy and footer arrow. */

.communications {
  position: relative;
  padding-bottom: clamp(7rem,10vw,12rem);
}

.news-card time,
.news-card h3,
.news-card h3 a {
  color: #111;
}

.news-card .arrow-link {
  gap: 0;
  color: #111;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}

.news-card .arrow-link::after {
  display: none;
}

.communications-arrow {
  right: clamp(1.25rem,7.92vw,9.5rem);
  bottom: clamp(2.75rem,4.4vw,5.25rem);
  color: rgba(17,40,74,.28);
}

@media(max-width:900px) {
  .services-figure {
    inset: 8% -8% 8% auto;
    width: 70%;
    height: 84%;
  }

  .services .band-arrow--left {
    left: clamp(1.25rem,5vw,3rem);
  }
}

@media(max-width:600px) {
  .founders h2,
  .founders h2[data-reveal].is-visible {
    top: 50%;
    bottom: auto;
    width: calc(100% - 2.5rem);
    transform: translate(-50%,-50%);
  }

  .founders h2[data-reveal] {
    transform: translate(-50%,calc(-50% + 24px));
  }

  .services-figure {
    inset: 12% -18% 12% auto;
    width: 105%;
    height: 76%;
  }

  .communications-arrow {
    right: 1.25rem;
    bottom: 2rem;
  }
}

/* ========================================================================== 
   23. Final motion, arrows and footer content layout
   ========================================================================== */

/* Larger arrows with a more generous shaft. */

.band-arrow {
  width: clamp(90px,6vw,116px);
  height: 52px;
}

.band-arrow::before {
  width: calc(100% - 5px);
}

.band-arrow::after {
  width: 20px;
  height: 20px;
}

/* Lower title placement requested for the founders banner. */

.founders h2,
.founders h2[data-reveal].is-visible {
  top: 62%;
}

/* Larger and clearer service illustration. */

.services-figure {
  inset: 2% 0 2% auto;
  width: 52%;
  height: 96%;
}

.services-figure img {
  opacity: .64;
}

/* Arrow below the figures paragraph. */

.quote .numbers-arrow {
  position: relative;
  inset: auto;
  display: block;
  margin-top: clamp(1.75rem,2.5vw,3rem);
  color: rgba(255,255,255,.25);
}

/* Tighter ending for communications and a clearer article link. */

.communications {
  min-height: 0;
  padding-bottom: clamp(4rem,5vw,6rem);
}

.news-card .arrow-link {
  font-size: clamp(1rem,1.1vw,1.3rem);
  font-weight: 700;
}

.communications-arrow {
  bottom: clamp(1rem,1.8vw,2rem);
}

/* Footer content is code-driven; only the WordPress menu remains dynamic. */

.newsletter-form {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: end;
  border-bottom: 0;
}

.newsletter-form input,
.newsletter-form button {
  min-height: 52px;
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.newsletter-privacy {
  grid-column: 1/-1;
  margin: .75rem 0 0;
  color: rgba(255,255,255,.42);
  font-size: .9rem;
  line-height: 1.45;
}

.footer-column .rich-text p {
  margin: 0 0 1.25rem;
}

@media(max-width:600px) {
  .founders h2,
  .founders h2[data-reveal].is-visible {
    top: 60%;
  }

  .services-figure {
    inset: 8% -12% 8% auto;
    width: 112%;
    height: 84%;
  }
}

/* ========================================================================== 
   24. Fixed-size logo and final homepage details
   ========================================================================== */

body {
  color: #111;
}

.hero-emblem.is-gold,
.hero-emblem.is-motion-logo {
  width: min(19.65vw,377px);
}

/* Requested proportional arrow width with a larger arrowhead. */

.band-arrow {
  width: 3%;
  min-width: 72px;
  max-width: 104px;
  height: 62px;
}

.band-arrow::after {
  width: 25px;
  height: 25px;
}

/* Founders title lower in the image. */

.founders h2,
.founders h2[data-reveal].is-visible {
  top: 70%;
}

/* Artwork size and brightness are independently editable here. */

.services-figure {
  inset: -4% -2% -4% auto;
  width: 61%;
  height: 108%;
}

.services-figure img {
  opacity: .76;
  filter: brightness(var(--services-art-brightness));
}

/* Paragraphs on light backgrounds use neutral black. */

.profiles p,
.communications p,
.page-content p,
.article-content p,
.service-story__content p,
.profile-story__content p,
.contact-card p {
  color: #111;
}

.quote .numbers-arrow {
  left: 0;
  margin-left: 0;
  transform: none;
}

/* First news category gold, following categories grey. */

.communications-filter {
  display: flex;
  flex-wrap: wrap;
  color: #8b8f95;
}

.communications-filter span {
  color: #8b8f95;
}

.communications-filter span.is-active {
  color: var(--gold);
}

.communications-filter span + span::before {
  content: " | ";
  margin-inline: .22em;
  color: #a2a5aa;
}

.news-card:last-child {
  border-bottom: 0;
}

.news-card p {
 color: rgba(17,40,74,.66);
}

.footer-column p {
  margin: 0 0 1.25rem;
}

@media(max-width:600px) {
  .hero-emblem.is-gold,
  .hero-emblem.is-motion-logo {
    width: 150px;
  }

  .founders h2,
  .founders h2[data-reveal].is-visible {
    top: 67%;
  }

  .services-figure {
    inset: 2% -24% 2% auto;
    width: 128%;
    height: 96%;
  }
}

/* ========================================================================== 
   25. Stable services arrow and footer scale
   ========================================================================== */

/* One persistent arrow below the services list. */

.services .services-main-arrow {
  position: relative;
  inset: auto;
  display: block;
  margin-top: clamp(1.75rem,2.4vw,2.9rem);
  color: rgba(255,255,255,.32);
}

/* A larger white artwork. Adjust the three services variables in :root. */

.services-figure {
  inset: -9% -6% -9% auto;
  width: 69%;
  height: 118%;
}

.services-figure img {
  opacity: var(--services-art-opacity);
  filter: grayscale(1) brightness(var(--services-art-brightness)) contrast(.78);
}

/* Larger footer typography and the exact code-defined PSD menu. */

.newsletter h2,
.footer-column h2 {
  font-size: 1.8rem;
  font-weight: 600;
}

.newsletter > div > p,
.newsletter-form input {
  font-size: 1.4rem;
}

.footer-column,
.footer-column a,
.footer-column p {
  font-size: 1.3rem;
  line-height: 1.4;
}

.footer-column p {
  font-size: 1.2rem;
}

.footer-code-menu {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-code-menu li {
  margin: .28rem 0;
}

.footer-code-menu a {
  transition: color .25s ease;
}

.footer-code-menu a:hover {
  color: var(--gold);
}

.footer-copy {
  font-size: clamp(.75rem,.72vw,.88rem);
  line-height: 1.5;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: .15rem;
}

.footer-copy-item + .footer-copy-item::before {
  content: "|";
  margin: 0 .65rem 0 .5rem;
}

.footer-legal-link {
  padding: .2rem 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.85);
  font: inherit;
  letter-spacing: .06em;
  text-decoration: underline;
  text-underline-offset: .2em;
  cursor: pointer;
}

.footer-legal-link:hover,
.footer-legal-link:focus-visible {
  color: var(--gold);
}

.footer-legal-link:focus-visible,
.legal-notes-dialog__close:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}

.legal-notes-dialog {
  width: min(46rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  padding: 0;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink-deep);
  box-shadow: 0 1.5rem 5rem rgba(0,0,0,.28);
}

.legal-notes-dialog::backdrop {
  background: rgba(6,20,39,.75);
}

.legal-notes-dialog__content {
  position: relative;
  padding: clamp(1.5rem,5vw,3rem);
}

.legal-notes-dialog__close {
  position: absolute;
  top: .8rem;
  right: 1rem;
  padding: .25rem .45rem;
  border: 0;
  background: transparent;
  color: var(--ink-deep);
  font: 2rem/1 var(--sans);
  cursor: pointer;
}

.legal-notes-dialog h2 {
  margin: 0 2rem 2rem 0;
  color: var(--gold);
  font: 600 .8rem/1.4 var(--sans);
  letter-spacing: .14em;
}

.legal-notes-dialog__company + .legal-notes-dialog__company {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line);
}

.legal-notes-dialog__company h3 {
  margin: 0 0 .8rem;
  font: 500 clamp(1.35rem,2.5vw,1.7rem)/1.2 var(--serif);
}

.legal-notes-dialog__company p {
  margin: 0;
  font: 400 .95rem/1.7 var(--sans);
}

@media (max-width: 600px) {
  .footer-copy {
    flex-direction: column;
    gap: .4rem;
  }

  .footer-copy-item + .footer-copy-item::before {
    content: none;
  }
}

@media(max-width:600px) {
  .services .services-main-arrow {
    margin-top: 1.75rem;
  }

  .services-figure {
    inset: -2% -30% -2% auto;
    width: 142%;
    height: 104%;
  }
}

/* ========================================================================== 
   26. Definitive font names and footer headings
   ========================================================================== */

body,
button,
input,
select,
textarea,
label {
  font-family: var(--sans);
}

.display,
.section-title,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--serif);
}

.profile-meta h3,
.news-card h3,
.article-card__body h3,
.footer-column h2,
.newsletter h2 {
  font-family: var(--sans);
}

.newsletter h2,
.footer-column h2 {
  color: var(--gold);
  font-size: clamp(1.15rem,1.12vw,1.35rem);
  font-weight: 600;
  line-height: 1.15;
}

.newsletter-form {
  grid-template-columns: minmax(0,1fr);
}

.newsletter-form input {
  grid-column: 1/-1;
  width: 100%;
}

/* ========================================================================== 
   27. Times webfont and PSD services geometry
   ========================================================================== */

/* Keep every editorial/serif element on the same embedded Times family. */

.display,
.section-title,
h1,
h2,
h3,
h4,
h5,
h6,
.communications-filter,
.quote blockquote,
.founders h2,
.feature h2,
.service-detail h3 {
  font-family: var(--serif);
}

/* The artwork deliberately rises beyond the band and is clipped by it. */

.services {
  position: relative;
  overflow: hidden;
}

.services-figure {
  inset: -6% -5% -9% auto;
  width: 69%;
  height: 119%;
  pointer-events: none;
}

.services-figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center top;
}

.services-grid {
  position: relative;
  z-index: 2;
}

.services-grid > div:first-child {
  align-self: stretch;
}

.services-list {
  width: 100%;
}

.services-list button {
  position: relative;
  padding: clamp(1.3rem,1.55vw,1.85rem) 0 .8rem;
  border: 0;
  align-items: flex-end;
  font-size: clamp(1.08rem,1.28vw,1.54rem);
  line-height: 1.12;
}

/* No plus/minus glyphs. The line itself communicates the active item. */

.services-list button::after {
  content: none !important;
  display: none !important;
}

.services-list button::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 5px;
  background: linear-gradient(90deg,rgba(255, 255, 255, 0.28) 0 75%,rgba(255,255,255,.16) 75% 100%);
  transition: height .28s ease,background-color .28s ease;
}

.services-list button[aria-selected="true"]::before {
  height: 4px;
  background: rgba(255,255,255,.82);
}

.services .services-main-arrow {
  position: relative;
  inset: auto;
  margin-top: clamp(2rem,3vw,3.6rem);
}

/* In the PSD the copy starts beneath the figure's chest, not at band top. */

.service-detail-inner {
  position: absolute;
  z-index: 3;
  top: 20%;
  right: 11%;
  width: min(38vw,730px);
}

.service-detail h3,
.service-description {
  text-align: center;
}

@media(max-width:900px) {
  .services-figure {
    inset: 0 -22% auto auto;
    width: 100%;
    height: 73%;
  }

  .services-list button {
    min-height: 64px;
    font-size: clamp(1rem,2.2vw,1.2rem);
  }

  .service-detail-inner {
    position: relative;
    inset: auto;
    width: 100%;
    margin-top: clamp(3rem,37vw,17rem);
  }
}

@media(max-width:600px) {
  .services-figure {
    inset: 2% -38% auto auto;
    width: 136%;
    height: 61%;
  }

  .services-list button {
    min-height: 60px;
    padding-top: 1.15rem;
  }

  .service-detail-inner {
    margin-top: clamp(6rem,58vw,15rem);
  }
}

/* ========================================================================== 
   28. Unified Times typography
   ========================================================================== */

/* No sans fallback: body copy and editorial display use the same PSD family. */

body,
button,
input,
select,
textarea,
label,
p,
li {
  font-family: var(--sans);
}

p,
.service-description,
.intro-copy,
.profile-copy,
.news-card__excerpt,
.article-content {
  font-size: clamp(1.08rem,1.18vw,1.4rem);
  font-weight: 400;
  line-height: 1.3;
  color: color-mix(in srgb,currentColor 68%,transparent);
}

/* A shallower crop shows more air above the founders' heads. */


.founders-bg {
  background-position: center;
}

@media(max-width:900px) {
  .founders {
    height: clamp(560px,76vw,760px);
  }

  .founders-bg {
    background-position: center;
  }
}

/* Both full-width image bands share the exact same fixed-background parallax. */

.founders-bg,
.feature-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  will-change: auto;
}

@media(max-width:900px), (prefers-reduced-motion:reduce) {
  .founders-bg,
  .feature-bg {
    background-attachment: scroll;
  }
}

@media(max-width:600px) {
  p,
  .service-description,
  .intro-copy,
  .profile-copy,
  .news-card__excerpt,
  .article-content {
    font-size: clamp(1.05rem,4.7vw,1.22rem);
  }
}

/* ========================================================================== 
   29. Light editorial copy
   ========================================================================== */

.intro-copy .rich-text,
.intro-copy .rich-text p,
.profiles-intro,
.profiles-intro p {
  font-family: "futura-pt",sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}

.profiles-intro p {
  color: rgba(0, 0, 0, 0.45);
}

/* ========================================================================== 
   30. Unified rich-text paragraphs
   ========================================================================== */

.rich-text p {
  font-size: 1.4rem;
  line-height: 1.3;
}

/* ========================================================================== 
   31. Introduction artwork and founders geometry
   ========================================================================== */

.founders {
  height: clamp(480px,36vw,680px);
  min-height: 0;
}

.founders-content {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(.65rem,1vw,1.15rem);
  padding: clamp(1.5rem,3.5vw,4rem) var(--gutter);
}

.founders-content .founders-badge {
  position: static;
  width: clamp(58px,5.89vw,113px);
  height: auto;
  transform: none;
  object-fit: contain;
}

.founders-content h2,
.founders-content h2[data-reveal],
.founders-content h2[data-reveal].is-visible {
  position: static;
  width: min(68vw,1305px);
  margin: 0;
  transform: none;
  text-align: center;
}

@media(max-width:600px) {
  .founders {
    height: clamp(400px,105vw,500px);
  }

  .founders-content {
    gap: .55rem;
    padding-block: 1.5rem;
  }

  .founders-content h2,
  .founders-content h2[data-reveal],
  .founders-content h2[data-reveal].is-visible {
    width: calc(100% - 1rem);
  }
}

/* Final cascade lock for motion rules after legacy component refinements. */
.founders-bg,
.feature-bg {
  inset: -7%;
  width: 114%;
  height: 114%;
  background-attachment: scroll;
  will-change: transform;
}

.services::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: -35%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%,rgba(183,161,116,.1),transparent 34%);
  opacity: .7;
  animation: signature-ambient-light 16s ease-in-out infinite alternate;
}

.numbers-grid {
  z-index: 2;
}

@media(max-width:900px) {
  .founders-bg,
  .feature-bg {
    inset: -4%;
    width: 108%;
    height: 108%;
  }
}

@media(prefers-reduced-motion:reduce) {
  .founders-bg,
  .feature-bg {
    inset: 0;
    width: 100%;
    height: 100%;
    will-change: auto;
  }

  .services::before {
    animation: none;
  }
}

/* Motion correction: preserve the original artwork and founders crop. */
.motion-enabled .intro-copy[data-reveal],
.motion-enabled .intro-copy[data-reveal].is-visible {
  transform: none;
  filter: none;
  clip-path: none;
}

.founders-bg {
  inset: 0;
  width: 100%;
  height: 100%;
  background-attachment: fixed;
  transform: none!important;
  will-change: auto;
}

.services::before,
.numbers::after {
  display: none;
}

/* Visible, scroll-linked motion replaces the decorative ambient effects. */
html.motion-enabled .section-title[data-reveal].is-visible {
  --motion-scroll-x: 0px;
  transform: translate3d(var(--motion-scroll-x),0,0);
}

html.motion-enabled .page-hero h1[data-reveal].is-visible,
html.motion-enabled .article-hero__content[data-reveal].is-visible,
html.motion-enabled .service-hero__content[data-reveal].is-visible {
  --motion-scroll-y: 0px;
  transform: translate3d(0,var(--motion-scroll-y),0);
}

@media(max-width:900px), (prefers-reduced-motion:reduce) {
  .founders-bg {
    background-attachment: scroll;
  }
}

@media(prefers-reduced-motion:reduce) {
  .section-title,
  .page-hero h1,
  .article-hero__content,
  .service-hero__content {
    transform: none!important;
    will-change: auto;
  }
}

/* ==========================================================================
   32. Interactive communications and services mother page
   ========================================================================== */

/* The active panel itself must never become a temporary containing block:
   its absolutely positioned child would otherwise jump at animation end. */
.service-detail.is-active {
  animation: none;
}

.service-detail.is-active .service-detail-inner {
  animation: service-copy-reveal .58s var(--ease) both;
}

@keyframes service-copy-reveal {
  from { opacity: 0; clip-path: inset(0 0 18% 0); }
  to { opacity: 1; clip-path: inset(0); }
}

.service-discover {
  display: inline-block;
  margin-top: clamp(1.25rem,1.8vw,2rem);
  padding-bottom: .22rem;
  border-bottom: 1px solid var(--gold);
  color: #fff;
  font-size: clamp(.82rem,.84vw,1rem);
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: color .3s ease,border-color .3s ease;
}

.service-discover:hover,
.service-discover:focus-visible {
  color: var(--gold);
  border-color: #fff;
}

.communications-filter button {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8b8f95;
  font: inherit;
  cursor: pointer;
  transition: color .3s ease;
}

.communications-filter button.is-active,
.communications-filter button:hover,
.communications-filter button:focus-visible { color: var(--gold); }

.communications-filter button + button::before {
  content: " | ";
  margin-inline: .22em;
  color: #a2a5aa;
}

.communications-panel[hidden] { display: none; }
.communications-panel.is-active .news-card { animation: communication-card-reveal .55s var(--ease) both; }

@keyframes communication-card-reveal {
  from { opacity: 0; clip-path: inset(0 0 14% 0); }
  to { opacity: 1; clip-path: inset(0); }
}

.page-content--services {
  padding: 0;
  overflow: clip;
}

.services-directory {
  position: relative;
  min-height: min(1120px,92svh);
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--ink);
  color: #fff;
}

.services-directory::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg,var(--ink) 0 40%,rgba(17,40,74,.86) 58%,rgba(17,40,74,.2));
}

.services-directory__art {
  position: absolute;
  z-index: 0;
  top: 50%;
  right: clamp(-13rem,-8vw,-4rem);
  width: min(72vw,1140px);
  opacity: .48;
}

.services-directory__art[data-reveal] {
  transform: translate3d(8%,calc(-50% + 35px),0);
  transition-duration: 1.15s;
}

.services-directory__art[data-reveal].is-visible { transform: translate3d(0,-50%,0); }

.services-directory__art img {
  position: relative;
  z-index: 1;
  width: 100%;
  filter: grayscale(1) brightness(1.35) contrast(.82);
}

.services-directory__orbit {
  position: absolute;
  z-index: 2;
  inset: 14% 14% 13%;
  border: 1px solid rgba(183,161,116,.48);
  border-radius: 50%;
}

.services-directory__orbit::before,
.services-directory__orbit::after {
  content: "";
  position: absolute;
  background: rgba(183,161,116,.34);
}

.services-directory__orbit::before { top: 50%; right: -9%; left: -9%; height: 1px; }
.services-directory__orbit::after { top: -9%; bottom: -9%; left: 50%; width: 1px; }

.services-directory__index {
  position: relative;
  z-index: 2;
  margin-block: clamp(5rem,8vw,9rem);
}

.services-directory__heading {
  width: min(620px,48%);
  margin-bottom: clamp(2rem,4vw,4.5rem);
}

.services-directory__heading .eyebrow { color: var(--gold); }
.services-directory__heading h2 {
  margin: .5rem 0 0;
  color: var(--gold);
  font-size: clamp(4rem,7.2vw,8.5rem);
  line-height: .8;
}

.services-directory__index nav { width: min(720px,52%); }
.services-directory__index ol { margin: 0; padding: 0; list-style: none; }
.services-directory__index li { border-top: 1px solid rgba(255,255,255,.3); }
.services-directory__index li:last-child { border-bottom: 1px solid rgba(255,255,255,.3); }

.services-directory__index a {
  display: grid;
  grid-template-columns: 3.3rem minmax(0,1fr) 2rem;
  gap: 1rem;
  align-items: center;
  padding: clamp(.8rem,1.25vw,1.35rem) 0;
  transition: color .3s ease,padding-left .45s var(--ease);
}

.services-directory__index a > span {
  color: var(--gold);
  font-size: .7rem;
  letter-spacing: .15em;
}

.services-directory__index a strong {
  font-size: clamp(.95rem,1.15vw,1.35rem);
  font-weight: 300;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.services-directory__index a i {
  color: rgba(255,255,255,.4);
  font-family: var(--serif);
  font-size: 1.5rem;
  font-style: normal;
  transition: transform .35s var(--ease),color .3s ease;
}

.services-directory__index a:hover,
.services-directory__index a:focus-visible,
.services-directory__index a[aria-current] {
  padding-left: .75rem;
  color: var(--gold);
}

.services-directory__index a:hover i,
.services-directory__index a:focus-visible i {
  color: var(--gold);
  transform: translateY(.35rem);
}

.services-showcase { background: #fff; }

.service-showcase {
  position: relative;
  min-height: clamp(560px,61vw,920px);
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  gap: clamp(3rem,9vw,11rem);
  align-items: center;
  padding: clamp(6rem,10vw,12rem) var(--gutter);
  scroll-margin-top: 88px;
  overflow: hidden;
  border-top: 1px solid var(--line);
}

.service-showcase:nth-child(even) { background: var(--paper); }
.service-showcase:nth-child(even) .service-showcase__title { grid-column: 2; }
.service-showcase:nth-child(even) .service-showcase__copy { grid-column: 1; grid-row: 1; }

.service-showcase__number {
  position: absolute;
  right: clamp(1rem,2.5vw,3rem);
  bottom: clamp(1.25rem,2.5vw,3rem);
  color: rgba(17,40,74,.075);
  font: 400 clamp(16rem,38vw,44rem)/.7 var(--serif);
  pointer-events: none;
}

.service-showcase:nth-child(even) .service-showcase__number {
  right: auto;
  left: clamp(1rem,2.5vw,3rem);
}
.service-showcase__title,.service-showcase__copy { position: relative; z-index: 1; }
.service-showcase__title[data-reveal] { transform: translate3d(-48px,0,0); }
.service-showcase__copy[data-reveal] { transform: translate3d(48px,0,0); }
.service-showcase:nth-child(even) .service-showcase__title[data-reveal] { transform: translate3d(48px,0,0); }
.service-showcase:nth-child(even) .service-showcase__copy[data-reveal] { transform: translate3d(-48px,0,0); }
.service-showcase__title[data-reveal].is-visible,
.service-showcase__copy[data-reveal].is-visible,
.service-showcase:nth-child(even) .service-showcase__title[data-reveal].is-visible,
.service-showcase:nth-child(even) .service-showcase__copy[data-reveal].is-visible { transform: none; }
.service-showcase__title .eyebrow { color: var(--gold); }

.service-showcase__title h2 {
  margin: 1rem 0 0;
  color: var(--ink);
  font-size: clamp(3.5rem,6.2vw,7.4rem);
  line-height: .82;
  overflow-wrap: anywhere;
}

.service-showcase__copy { width: min(720px,100%); }
.service-showcase__copy .rich-text,
.service-showcase__copy .rich-text p {
  color: #111;
  font-family: var(--sans);
  font-size: clamp(1.05rem,1.18vw,1.35rem);
  font-weight: 300;
  line-height: 1.55;
}

@media(max-width:900px) {
  .services-directory { min-height: 0; }
  .services-directory__art { right: -38%; width: 125%; opacity: .26; }
  .services-directory::before { background: linear-gradient(90deg,var(--ink) 0 62%,rgba(17,40,74,.6)); }
  .services-directory__heading,.services-directory__index nav { width: min(620px,75%); }
  .service-showcase { min-height: 0; grid-template-columns: 1fr; gap: 2.5rem; scroll-margin-top: 82px; }
  .service-showcase:nth-child(even) .service-showcase__title,
  .service-showcase:nth-child(even) .service-showcase__copy { grid-column: 1; grid-row: auto; }
}

@media(max-width:600px) {
  .service-discover { font-size: .78rem; }
  .communications-filter { align-items: baseline; }
  .services-directory__index { margin-block: 5rem; }
  .services-directory__heading,.services-directory__index nav { width: 100%; }
  .services-directory__art { top: 18%; right: -58%; width: 155%; opacity: .34; }
  .services-directory__art[data-reveal] { transform: translate3d(12%,35px,0); }
  .services-directory__art[data-reveal].is-visible { transform: none; }
  .services-directory::before { background: linear-gradient(180deg,rgba(17,40,74,.75),var(--ink) 48%); }
  .services-directory__index a { grid-template-columns: 2.5rem minmax(0,1fr) 1.5rem; gap: .6rem; }
  .service-showcase { padding-block: 5rem; }
  .service-showcase__title h2 { font-size: clamp(2.75rem,13vw,4rem); overflow-wrap: break-word; hyphens: auto; }
}

@media(prefers-reduced-motion:reduce) {
  .service-detail.is-active .service-detail-inner,
  .communications-panel.is-active .news-card { animation: none; }
  .services-directory__art[data-reveal],
  .services-directory__art[data-reveal].is-visible,
  .service-showcase__title[data-reveal],
  .service-showcase__copy[data-reveal] { transform: none; }
}

/* ==========================================================================
   33. Services visual edition
   ========================================================================== */

/* The directory belongs to the page flow: no solid band and no visible
   rectangle around the Vitruvian artwork. */
.page-content--services {
  background: #fff;
}

.services-directory {
  min-height: clamp(760px,90svh,1040px);
  background: var(--ink);
  color: #fff;
  isolation: isolate;
}

.services-directory::before {
  z-index: -1;
  background:
    radial-gradient(circle at 74% 48%,rgba(183,161,116,.16),transparent 26%),
    linear-gradient(115deg,var(--ink-deep) 0 42%,var(--ink) 68%,#17365f 100%);
}

.services-directory__art {
  --directory-art-x: 0px;
  --directory-art-y: 0px;
  right: clamp(2rem,5vw,7rem);
  width: min(49vw,780px);
  opacity: 0;
  mix-blend-mode: normal;
  -webkit-mask-image: none;
  mask-image: none;
  transition: opacity .7s ease,transform .85s var(--ease);
}

.services-directory__art[data-reveal] {
  transform: translate3d(calc(8% + var(--directory-art-x)),calc(-50% + 35px + var(--directory-art-y)),0);
}

.services-directory__art[data-reveal].is-visible {
  opacity: .42;
  transform: translate3d(var(--directory-art-x),calc(-50% + var(--directory-art-y)),0);
}

.services-directory__art img {
  display: block;
  width: 100%;
  height: auto;
  filter: grayscale(.35) brightness(1.34) contrast(.92);
}

.services-directory__orbit {
  inset: 2%;
  border-color: rgba(183,161,116,.34);
}

.services-directory__orbit::before,
.services-directory__orbit::after {
  background: rgba(183,161,116,.18);
}

.services-directory__index li,
.services-directory__index li:last-child {
  border-color: rgba(255,255,255,.2);
}

.services-directory__index nav {
  position: relative;
  z-index: 3;
  width: min(760px,58%);
  padding: 0 clamp(1.5rem,3vw,3rem) 0 0;
  border-top: 0;
  background: linear-gradient(90deg,rgba(11,33,61,.92) 0 72%,rgba(11,33,61,.6) 88%,transparent 100%);
}

.services-directory__index li:first-child { border-top-color: rgba(255,255,255,.2); }

.services-directory__index a {
  min-height: clamp(3.6rem,5.3vw,5rem);
  padding-block: .75rem;
}

.services-directory__index a:hover,
.services-directory__index a:focus-visible,
.services-directory__index a[aria-current] {
  padding-left: 0;
}

.services-directory__index a:hover strong,
.services-directory__index a:focus-visible strong,
.services-directory__index a[aria-current] strong {
  transform: translateX(.55rem);
}

.services-directory__index a strong {
  transition: color .3s ease,transform .4s var(--ease);
}

.services-directory__index a,
.services-directory__index a strong {
  color: #fff;
}

.services-directory__index a i {
  color: rgba(255,255,255,.46);
}

.services-directory__index a:hover,
.services-directory__index a:focus-visible,
.services-directory__index a[aria-current] {
  color: var(--gold);
}

/* Each service becomes an editorial spread built around its featured image. */
.service-showcase {
  min-height: clamp(820px,96svh,1220px);
  grid-template-columns: repeat(12,minmax(0,1fr));
  grid-template-rows: minmax(0,1fr) auto;
  gap: 0;
  padding-block: clamp(5rem,7vw,8rem);
  background: #fff;
  border-top-color: rgba(17,40,74,.12);
}

.service-showcase:nth-child(even) {
  background: linear-gradient(120deg,var(--paper),#fff 72%);
}

.service-showcase::before {
  content: "";
  position: absolute;
  width: min(36vw,620px);
  aspect-ratio: 1;
  right: -14%;
  bottom: -31%;
  border: 1px solid rgba(183,161,116,.18);
  border-radius: 50%;
  pointer-events: none;
}

.service-showcase:nth-child(even)::before {
  right: auto;
  left: -14%;
}

.service-showcase__media {
  position: relative;
  z-index: 1;
  grid-column: 1 / 7;
  grid-row: 1 / 3;
  align-self: stretch;
  width: 100%;
  height: auto;
  min-height: clamp(660px,70vw,980px);
  margin: 0;
  overflow: hidden;
  clip-path: inset(0);
  background: var(--ink);
  box-shadow: 0 40px 90px rgba(17,40,74,.12);
}

.service-showcase:nth-child(even) .service-showcase__media {
  grid-column: 7 / 13;
  clip-path: inset(0);
}

.service-showcase:nth-child(3n) .service-showcase__media {
  clip-path: inset(0);
}

.service-showcase:nth-child(3n + 2) .service-showcase__media {
  clip-path: inset(0);
}

.service-showcase__media[data-reveal] {
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  transform: translate3d(-40px,28px,0) scale(.985);
  transition: opacity 1s var(--ease),transform 1.1s var(--ease),clip-path 1.25s var(--ease);
}

.service-showcase:nth-child(3n) .service-showcase__media[data-reveal]:not(.is-visible) {
  clip-path: inset(100% 0 0 0);
}

.service-showcase:nth-child(3n + 2) .service-showcase__media[data-reveal]:not(.is-visible) {
  clip-path: inset(0 0 0 100%);
}

.service-showcase:nth-child(even) .service-showcase__media[data-reveal] {
  clip-path: inset(0 0 0 100%);
  transform: translate3d(40px,28px,0) scale(.985);
}

.service-showcase__media[data-reveal].is-visible,
.service-showcase:nth-child(even) .service-showcase__media[data-reveal].is-visible {
  opacity: 1;
  clip-path: inset(0);
  transform: none;
}

.service-showcase__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.03);
  transition: filter .65s ease;
  will-change: transform;
}

.service-showcase:hover .service-showcase__image {
  filter: grayscale(.58) contrast(1.02);
}

.service-showcase__image--fallback {
  opacity: .62;
}

.service-showcase__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg,rgba(17,40,74,.06),rgba(17,40,74,.34)),
    linear-gradient(90deg,transparent 60%,rgba(17,40,74,.24));
  pointer-events: none;
}

.service-showcase:nth-child(even) .service-showcase__media::after {
  background:
    linear-gradient(180deg,rgba(17,40,74,.06),rgba(17,40,74,.34)),
    linear-gradient(270deg,transparent 60%,rgba(17,40,74,.24));
}

.service-showcase__media figcaption {
  position: absolute;
  z-index: 2;
  right: clamp(2rem,4vw,4rem);
  bottom: clamp(1.5rem,3vw,3rem);
  left: clamp(2rem,4vw,4rem);
  display: flex;
  gap: 1rem;
  align-items: baseline;
  color: #fff;
  font-size: clamp(.72rem,.78vw,.9rem);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.service-showcase__media figcaption span {
  color: var(--gold);
  font-family: var(--serif);
  font-size: 1.5em;
}

.service-showcase__title {
  grid-column: 7 / 13;
  grid-row: 1;
  align-self: end;
  z-index: 3;
  padding: clamp(2.5rem,5vw,6rem) clamp(2.5rem,5vw,6rem) clamp(1.25rem,2vw,2rem);
  background: transparent;
}

.service-showcase:nth-child(even) .service-showcase__title {
  grid-column: 1 / 7;
  grid-row: 1;
  padding-right: clamp(2.5rem,5vw,6rem);
  padding-left: 0;
  background: transparent;
}

.service-showcase__copy {
  grid-column: 7 / 13;
  grid-row: 2;
  align-self: start;
  z-index: 3;
  width: 100%;
  padding: 0 clamp(2.5rem,5vw,6rem) clamp(3rem,5vw,6rem);
  background: transparent;
}

.service-showcase:nth-child(even) .service-showcase__copy {
  grid-column: 1 / 7;
  grid-row: 2;
  padding-right: clamp(2.5rem,5vw,6rem);
  padding-left: 0;
  background: transparent;
}

.service-showcase__single-link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin-top: clamp(1.75rem,3vw,3rem);
  padding-bottom: .35rem;
  border-bottom: 1px solid var(--gold);
  color: var(--ink);
  font-size: clamp(.78rem,.82vw,.95rem);
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: color .3s ease,border-color .3s ease;
}

.service-showcase__single-link i {
  color: var(--gold);
  font-family: var(--serif);
  font-size: 1.45rem;
  font-style: normal;
  line-height: .7;
  transition: transform .45s var(--ease);
}

.service-showcase__single-link:hover,
.service-showcase__single-link:focus-visible {
  color: var(--gold);
  border-color: var(--ink);
}

.service-showcase__single-link:hover i,
.service-showcase__single-link:focus-visible i {
  transform: translateX(.5rem);
}

.service-showcase__title h2 {
  margin-top: 0;
  font-size: clamp(3.2rem,4.8vw,6rem);
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
}

.service-showcase__number {
  z-index: 0;
  opacity: 1;
}

.service-showcase__media .service-showcase__number {
  z-index: 3;
  top: clamp(1.5rem,3vw,3.5rem);
  right: auto;
  bottom: auto;
  left: clamp(1.5rem,3vw,3.5rem);
  color: #fff;
  font: 400 clamp(3.75rem,6.5vw,7.5rem)/.78 var(--serif);
  letter-spacing: -.045em;
  opacity: 1;
  text-shadow: 0 3px 24px rgba(11,33,61,.34);
}

.service-showcase:nth-child(even) .service-showcase__media .service-showcase__number {
  right: clamp(1.5rem,3vw,3.5rem);
  left: auto;
}

.service-showcase__media .service-showcase__number[data-reveal] {
  transform: translate3d(0,24px,0);
  transition: opacity .65s ease .35s,transform .8s var(--ease) .35s;
}

.service-showcase__media .service-showcase__number[data-reveal].is-visible {
  transform: none;
}

.service-showcase__number[data-reveal] {
  transform: translate3d(0,40px,0) scale(.94);
  transition-duration: 1.2s;
}

.service-showcase__number[data-reveal].is-visible {
  transform: none;
}

@media(max-width:900px) {
  .services-directory {
    min-height: 760px;
  }

  .services-directory__art {
    right: clamp(1.5rem,3vw,3rem);
    width: min(52vw,620px);
    opacity: 0;
  }

  .services-directory__art[data-reveal].is-visible { opacity: .36; }

  .services-directory__index nav {
    width: min(620px,68%);
    background: linear-gradient(90deg,rgba(11,33,61,.94) 0 82%,rgba(11,33,61,.7) 92%,transparent);
  }

  .service-showcase {
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    padding-block: 4.5rem;
  }

  .service-showcase__media,
  .service-showcase:nth-child(even) .service-showcase__media {
    grid-column: 1;
    grid-row: 1;
    height: clamp(460px,82vw,720px);
    min-height: 0;
    clip-path: inset(0);
  }

  .service-showcase__media[data-reveal]:not(.is-visible) {
    clip-path: inset(0 100% 0 0);
  }

  .service-showcase:nth-child(even) .service-showcase__media[data-reveal]:not(.is-visible) {
    clip-path: inset(0 0 0 100%);
  }

  .service-showcase__title,
  .service-showcase:nth-child(even) .service-showcase__title {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    margin: 0;
    padding: 2.5rem var(--gutter) 1.5rem 2rem;
    background: transparent;
  }

  .service-showcase:nth-child(even) .service-showcase__title {
    margin: 0;
    padding-right: 2rem;
    padding-left: var(--gutter);
    background: transparent;
  }

  .service-showcase__copy,
  .service-showcase:nth-child(even) .service-showcase__copy {
    grid-column: 1;
    grid-row: 3;
    padding: 1rem var(--gutter) 0;
  }
}

@media(max-width:600px) {
  .services-directory {
    min-height: 0;
    display: block;
  }

  .services-directory__art {
    top: auto;
    right: 50%;
    bottom: clamp(2.5rem,10vw,4.5rem);
    width: min(88vw,520px);
    opacity: 0;
    mix-blend-mode: normal;
  }

  .services-directory__art[data-reveal],
  .services-directory__art[data-reveal].is-visible {
    transform: translate3d(calc(50% + var(--directory-art-x)),calc(28px + var(--directory-art-y)),0) scale(.97);
  }

  .services-directory__art[data-reveal].is-visible {
    opacity: .32;
    transform: translate3d(calc(50% + var(--directory-art-x)),var(--directory-art-y),0);
  }

  .services-directory__index nav {
    width: 100%;
    padding-right: 0;
    background: transparent;
  }

  .services-directory__index {
    margin-block: 0;
    padding-top: 5rem;
    padding-bottom: min(108vw,620px);
  }

  .service-showcase__media,
  .service-showcase:nth-child(even) .service-showcase__media {
    height: 88vw;
    min-height: 340px;
  }

  .service-showcase__title h2 {
    font-size: clamp(2.4rem,10vw,3.4rem);
    overflow-wrap: normal;
    hyphens: none;
  }

  .service-showcase__media figcaption {
    right: 1.25rem;
    bottom: 1.25rem;
    left: 1.25rem;
  }
}

@media(prefers-reduced-motion:reduce) {
  .services-directory__art,
  .services-directory__art[data-reveal],
  .services-directory__art[data-reveal].is-visible,
  .service-showcase__media[data-reveal],
  .service-showcase__media[data-reveal].is-visible,
  .service-showcase__number[data-reveal],
  .service-showcase__number[data-reveal].is-visible {
    transform: none;
    transition: none;
  }
}

/* Editorial variants stay last in the cascade so their three layouts remain distinct. */
.news-card h3,
.news-card h3 a,
.article-card__body h3,
.article-card__body h3 a,
.article-hero h1,
.category-hero h1,
.press-hero h1 {
  text-transform: none;
}

.communications-card--insight {
  grid-template-columns: minmax(300px,.85fr) minmax(0,1.15fr);
  gap: 0;
  padding: 0;
}

.communications-card--insight .communications-card__body,
.communications-card--press .communications-card__body {
  padding: clamp(2.25rem,4vw,4.5rem);
}

.communications-card--insight h3 {
  font-family: var(--serif);
  font-size: clamp(2.2rem,3.4vw,4.4rem);
  font-weight: 400;
  line-height: .95;
  text-transform: none;
}

.communications-card--press {
  grid-template-columns: minmax(0,1fr) minmax(220px,32%);
  gap: 0;
  padding: 0;
}

.communications-card--press .communications-card__media {
  grid-column: 2;
  grid-row: 1;
}

.communications-card--press .communications-card__body {
  grid-column: 1;
  grid-row: 1;
}

.communications-card--press h3 {
  font-family: var(--serif);
  font-size: clamp(2.4rem,4vw,5rem);
  font-weight: 400;
  line-height: .9;
  text-transform: none;
}

.communications-card--press h3,
.communications-card--press h3 a,
.communications-card--press p,
.communications-card--press .arrow-link {
  color: #fff;
}

.editorial-archive--insight .editorial-archive__grid .article-card {
  grid-column: span 6;
}

.editorial-archive--press .editorial-archive__grid .article-card {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: minmax(220px,31%) minmax(0,1fr);
}

.editorial-archive--press .article-card__body h3 {
  font-family: var(--serif);
  font-size: clamp(2.4rem,4.5vw,5.5rem);
  font-weight: 400;
  line-height: .9;
  text-transform: none;
}

@media(max-width:900px) {
  .communications-card--insight,
  .communications-card--press {
    grid-template-columns: minmax(220px,.75fr) minmax(0,1.25fr);
  }
}

@media(max-width:600px) {
  .communications-card--insight,
  .communications-card--press {
    grid-template-columns: 1fr;
  }

  .communications-card--press .communications-card__media,
  .communications-card--press .communications-card__body {
    grid-column: 1;
    grid-row: auto;
  }

  .editorial-archive--insight .editorial-archive__grid .article-card,
  .editorial-archive--press .editorial-archive__grid .article-card {
    grid-column: 1/-1;
  }

  .editorial-archive--press .editorial-archive__grid .article-card {
    grid-template-columns: 1fr;
  }

  .editorial-archive__hero h1 {
    font-size: clamp(2.8rem,11.5vw,4rem);
    overflow-wrap: anywhere;
    hyphens: auto;
  }
}

/* Editorial refinements: independent taxonomies and document-led press review. */
.quote cite {
  margin-top: -1.25rem;
  font: normal 400 clamp(1.2rem,1.55vw,1.75rem)/1.15 var(--serif);
  letter-spacing: .025em;
}

.communications .news-list {
  width: min(1180px,100%);
  margin-inline: auto;
}

.communications-card--news {
  grid-template-columns: minmax(280px,38%) minmax(0,1fr);
  gap: 0;
  min-height: clamp(300px,28vw,410px);
  padding: 0;
  border: 1px solid rgba(12,35,65,.12);
  background: #fff;
  align-items: stretch;
}

.communications-card--news .communications-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.2rem,4.5vw,5rem);
}

.communications-card--news .communications-card__media img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
}

.communications-card--news h3 {
  margin: .7rem 0 1rem;
  font-size: clamp(1.65rem,2.35vw,2.8rem);
  line-height: 1.08;
}

.communications-card--news p {
  margin: 0 0 1.4rem;
  font-size: clamp(1rem,1.12vw,1.25rem);
  line-height: 1.55;
}

.communications-card--press.communications-document {
  grid-template-columns: minmax(280px,42%) minmax(0,1fr);
  min-height: clamp(390px,34vw,530px);
  background:
    radial-gradient(circle at 12% 15%,rgba(177,145,93,.23),transparent 22rem),
    var(--ink);
}

.communications-document__preview,
.press-document-card__preview {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  overflow: hidden;
  background: rgba(255,255,255,.045);
  perspective: 1000px;
}

.communications-document__preview::before,
.press-document-card__preview::before {
  content: "";
  position: absolute;
  inset: 13% 10%;
  border: 1px solid rgba(177,145,93,.35);
  transition: inset .65s var(--ease),transform .65s var(--ease);
}

.communications-document__sheet,
.press-document-card__paper {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: min(62%,310px);
  aspect-ratio: .74;
  overflow: hidden;
  background: #f5f2eb;
  box-shadow: 0 28px 70px rgba(0,0,0,.35);
  transform: rotate(-3deg) translateY(3%);
  transition: transform .75s var(--ease),box-shadow .75s var(--ease);
}

.communications-document__sheet img,
.press-document-card__paper img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  filter: grayscale(1) contrast(.94);
}

.communications-document__mark,
.press-document-card__filetype {
  color: var(--gold);
  font: 400 clamp(2rem,4vw,4rem)/1 var(--serif);
  letter-spacing: .08em;
}

.communications-document__open,
.press-document-card__corner {
  position: absolute;
  z-index: 2;
  top: 1.5rem;
  right: 1.5rem;
  color: var(--gold);
  font-size: 1.4rem;
  transition: transform .45s var(--ease);
}

.communications-document__preview:hover::before,
.press-document-card__preview:hover::before {
  inset: 9% 7%;
  transform: rotate(1deg);
}

.communications-document__preview:hover .communications-document__sheet,
.press-document-card__preview:hover .press-document-card__paper {
  transform: rotate(0) translateY(-1%) scale(1.035);
  box-shadow: 0 38px 90px rgba(0,0,0,.46);
}

.communications-document__preview:hover .communications-document__open,
.press-document-card__preview:hover .press-document-card__corner {
  transform: translate(.25rem,-.25rem);
}

.communications-document__actions,
.press-document-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin-top: 1.8rem;
}

.communications-document__actions a,
.press-document-card__actions a,
.press-document-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  padding: .9rem 1.15rem;
  border: 1px solid rgba(177,145,93,.52);
  color: #fff;
  font: 600 .74rem/1 var(--sans);
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: background-color .35s var(--ease),color .35s var(--ease),transform .35s var(--ease);
}

.communications-document__actions a:hover,
.press-document-card__actions a:hover,
.press-document-actions a:hover {
  background: var(--gold);
  color: var(--ink);
  transform: translateY(-2px);
}

.editorial-archive--press .editorial-archive__grid {
  gap: clamp(2rem,4vw,5rem);
}

.editorial-archive--press .press-document-card {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: minmax(280px,38%) minmax(0,1fr);
  min-height: clamp(430px,34vw,560px);
  overflow: hidden;
  background:
    radial-gradient(circle at 90% 0,rgba(177,145,93,.15),transparent 25rem),
    var(--ink);
  color: #fff;
}

.press-document-card__body {
  align-self: center;
  padding: clamp(2.5rem,5vw,6rem);
}

.press-document-card__body h3 {
  margin: 1rem 0 1.35rem;
  color: #fff;
  font: 400 clamp(2.6rem,4.8vw,6rem)/.9 var(--serif);
}

.press-document-card__body h3 a,
.press-document-card__body p {
  color: #fff;
}

.press-document-card__body p {
  width: min(620px,100%);
  color: rgba(255,255,255,.7);
  font-size: clamp(1rem,1.15vw,1.25rem);
  line-height: 1.55;
}

.press-document-card .article-card__meta {
  color: var(--gold);
}

.editorial-related .press-document-card,
.editorial-related .press-document-card:first-child {
  grid-column: span 4;
  grid-template-columns: 1fr;
  min-height: 0;
}

.editorial-related .press-document-card__preview {
  min-height: 320px;
}

.editorial-related .press-document-card__body {
  padding: 2rem;
}

.editorial-related .press-document-card__body h3 {
  font-size: clamp(1.65rem,2vw,2.5rem);
}

.press-document-actions {
  display: grid;
  gap: .65rem;
  margin: 1.25rem 0 .5rem;
}

.press-document-actions a {
  width: 100%;
  margin: 0;
  border-color: rgba(12,35,65,.22);
  color: var(--ink);
}

.press-document-actions b {
  color: var(--gold);
  font-size: 1.1rem;
}

@media(max-width:900px) {
  .communications-card--news,
  .communications-card--press.communications-document,
  .editorial-archive--press .press-document-card {
    grid-template-columns: minmax(240px,40%) minmax(0,1fr);
  }

  .editorial-related .press-document-card,
  .editorial-related .press-document-card:first-child {
    grid-column: span 6;
  }
}

@media(max-width:600px) {
  .quote cite {
    font-size: 1.25rem;
  }

  .communications-card--news,
  .communications-card--press.communications-document,
  .editorial-archive--press .press-document-card {
    grid-template-columns: 1fr;
  }

  .communications-card--news .communications-card__media,
  .communications-document__preview,
  .press-document-card__preview {
    min-height: 320px;
  }

  .communications-card--news .communications-card__body,
  .communications-card--press .communications-card__body,
  .press-document-card__body {
    padding: 2rem 1.5rem 2.5rem;
  }

  .editorial-related .press-document-card,
  .editorial-related .press-document-card:first-child {
    grid-column: 1/-1;
  }
}

@media(prefers-reduced-motion:reduce) {
  .communications-document__sheet,
  .press-document-card__paper,
  .communications-document__preview::before,
  .press-document-card__preview::before {
    transform: none!important;
    transition: none!important;
  }
}

/* ==========================================================================
   31. Team page hierarchy and card proportions
   ========================================================================== */

.profile-department__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(1120px,100%);
  margin: 0 auto clamp(2.5rem,4vw,4.5rem);
  gap: .7rem;
  text-align: center;
}

.profile-department__head h2 {
  max-width: 1120px;
  margin: 0;
  padding-bottom: .18em;
  font-size: clamp(2.4rem,3.2vw,4rem);
  line-height: 1.06;
}

.profile-department__head .eyebrow {
  display: block;
  margin: 0;
}

.profile-department .profile-grid {
  width: min(1400px,100%);
  margin-inline: auto;
}

.profiles-page .profile-department {
  padding-inline: clamp(1.25rem,3vw,4rem);
}

.profile-department .profile-card,
.profile-department .profile-card > a,
.profile-department .profile-meta {
  min-width: 0;
  overflow: visible;
}

.profile-department .profile-meta {
  margin-top: clamp(.9rem,1.3vw,1.25rem);
  padding-top: clamp(.7rem,1vw,.95rem);
}

.profile-department .profile-meta small {
  color: var(--ink);
  font-size: clamp(1.08rem,1.15vw,1.25rem);
  font-weight: 500;
  line-height: 1.25;
}

.profile-department .profile-meta h3 {
  margin: .55rem 0 0;
  color: var(--gold);
  font-size: clamp(.7rem,2.65vw,.86rem);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.018em;
  white-space: nowrap;
}

/* Keep long professional roles readable on compact desktop screens. */
@media(min-width:901px) and (max-width:1320px) {
  .profile-department .profile-grid {
    grid-template-columns: repeat(4,minmax(0,1fr));
  }

  .profile-department .profile-grid>.profile-card,
  .profile-department .profile-grid>.profile-card:nth-last-child(1):nth-child(3n+1),
  .profile-department .profile-grid>.profile-card:nth-last-child(2):nth-child(3n+1),
  .profile-department--lead-seven .profile-grid>.profile-card:nth-child(n+4),
  .profile-department--lead-seven .profile-grid>.profile-card:nth-child(4),
  .profile-department--lead-seven .profile-grid>.profile-card:nth-child(6) {
    grid-column: auto/span 2;
  }

  .profile-department .profile-grid>.profile-card:nth-last-child(1):nth-child(2n+1) {
    grid-column: 2/span 2;
  }
}

@media(min-width:901px) {
  .profile-department .profile-meta h3 {
    font-size: clamp(.78rem,.78vw,.95rem);
    white-space: nowrap;
  }
}

@media(max-width:600px) {
  .profile-department__head {
    gap: .55rem;
  }

  .profile-department__head h2 {
    font-size: clamp(2.15rem,10vw,3rem);
  }
}

/* Definitive text safety: reserve room for serif ascenders/descenders. */
.section-title,
.intro-copy h2,
.feature h2,
.service-detail h3 {
  box-sizing: content-box;
  padding-bottom: .14em;
  overflow: visible;
}

.section-title {
  line-height: .96;
}

.intro-copy h2,
.feature h2 {
  line-height: 1;
}

.founders h2 {
  box-sizing: content-box;
  padding-bottom: .16em;
  line-height: 1;
  overflow: visible;
}

.communications-filter button {
  line-height: 1.3;
  overflow: visible;
}

@media(max-width:600px) {
  .section-title {
    font-size: clamp(2.7rem,12.5vw,4rem);
    line-height: 1;
  }

  .feature h2 {
    width: calc(100% - 2.5rem);
    font-size: clamp(2.2rem,9.5vw,3.8rem);
    line-height: 1.02;
  }

  .service-detail h3 {
    line-height: .98;
  }
}

/* Persistent, compact language access in the shared header. */
.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: clamp(1rem,1.7vw,2rem);
}

.language-switcher ul {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.language-switcher li {
  display: flex;
  align-items: center;
}

.language-switcher li+li::before {
  content: '';
  width: 1px;
  height: .75rem;
  margin-right: .55rem;
  background: currentColor;
  opacity: .3;
}

.language-switcher a {
  position: relative;
  display: inline-flex;
  padding: .5rem 0;
  color: inherit;
  font-family: var(--sans);
  font-size: clamp(.65rem,.67vw,.8rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: .1em;
  text-decoration: none;
  opacity: .58;
  transition: color .25s ease,opacity .25s ease;
}

.language-switcher a::after {
  content: '';
  position: absolute;
  right: .1em;
  bottom: .22rem;
  left: 0;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .3s var(--ease);
}

.language-switcher a:hover,
.language-switcher a:focus-visible,
.language-switcher a[aria-current="page"] {
  color: var(--gold);
  opacity: 1;
}

.language-switcher a:hover::after,
.language-switcher a:focus-visible::after,
.language-switcher a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.language-switcher a:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

@media(max-width:900px) {
  .header-actions {
    gap: 0;
  }

  .language-switcher ul {
    gap: .42rem;
  }

  .language-switcher li+li::before {
    margin-right: .42rem;
  }

  .language-switcher a {
    font-size: .65rem;
    letter-spacing: .06em;
  }
}

@media(max-width:420px) {
  .header-brand {
    width: 104px;
  }

  .menu-toggle {
    padding-inline: .4rem;
  }
}

/* Hero payoff stays in place while the emblem travels toward the intro. */
.hero-payoff {
  position: absolute;
  z-index: 3;
  top: auto;
  bottom: clamp(2.5rem,6vh,5rem);
  left: 50%;
  width: min(90vw,980px);
  margin: 0;
  color: var(--gold);
  font-family: var(--sans);
  font-size: clamp(1.6rem,3vw,3.6rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%);
  will-change: opacity;
  pointer-events: none;
}

.hero::after {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  height: min(38%,360px);
  content: "";
  background: linear-gradient(to top,rgba(4,13,24,.8) 0%,rgba(4,13,24,.42) 40%,rgba(4,13,24,.12) 70%,transparent 100%);
  pointer-events: none;
}

@media(max-width:600px) {
  .hero-payoff {
    top: auto;
    bottom: clamp(2rem,5vh,3rem);
    width: calc(100% - 2rem);
    font-size: clamp(1.15rem,5.4vw,1.55rem);
    letter-spacing: .055em;
  }
}

/* ==========================================================================
   34. Homepage services showcase
   ========================================================================== */

/* One central artwork, one active story and a responsive service matrix.
   All visible content remains driven by WordPress. */

.services.services--showcase {
  position: relative;
  isolation: isolate;
  display: block;
  min-height: max(900px,100svh);
  padding: 0;
  overflow: hidden;
  background: var(--ink-deep);
  color: #fff;
}

.services.services--showcase::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  content: "";
  background: linear-gradient(135deg,#071b31 0%,#0a223b 50%,#071c33 100%);
  animation: none;
  transform: none;
  pointer-events: none;
}

.services.services--showcase::after {
  display: none;
  animation: none;
  content: none;
}

.services--showcase .services-figure {
  position: absolute;
  z-index: 1;
  top: clamp(1.5rem,2.5vw,3rem);
  right: auto;
  bottom: auto;
  left: 50%;
  width: clamp(550px,47vw,900px);
  height: auto;
  aspect-ratio: 1;
  opacity: 1;
  transform: translateX(-50%);
  pointer-events: none;
}

.services--showcase .services-figure img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  opacity: .68;
  filter: grayscale(1) brightness(var(--services-art-brightness)) contrast(.8);
  mix-blend-mode: screen;
}

.services--showcase .services-shell {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-rows: minmax(570px,1fr) auto auto;
  min-height: max(900px,100svh);
  padding-top: clamp(1.5rem,3vw,3rem);
  padding-bottom: clamp(2.75rem,4vw,4.5rem);
}

.services--showcase .services-panels {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 0;
}

.services--showcase .service-detail,
.services--showcase .service-detail.is-active {
  position: relative;
  inset: auto;
  grid-area: 1 / 1;
  width: min(760px,56vw);
  min-height: 0;
  align-content: center;
  padding: clamp(5rem,9vw,10rem) 0 clamp(2rem,4vw,4rem);
  text-align: center;
}

.services--showcase .service-detail[hidden] {
  display: none;
}

.services--showcase .service-detail-inner {
  position: static;
  inset: auto;
  width: 100%;
  margin: 0 auto;
  animation: none;
}

.services--showcase .service-detail.is-active .service-detail-inner {
  animation: none;
}

.services--showcase .service-detail h3 {
  max-width: none;
  margin-inline: auto;
  text-align: center;
  text-wrap: balance;
}

.services--showcase .service-description,
.services--showcase .service-description p {
  max-width: 680px;
  margin-inline: auto;
  color: rgba(255,255,255,.88);
  text-align: center;
  text-wrap: pretty;
}

.services--showcase .service-discover {
  min-width: clamp(110px,8vw,150px);
  margin-top: clamp(1.5rem,2.2vw,2.5rem);
  padding: .75rem .4rem 0;
  border-top: 1px solid rgba(255,255,255,.76);
  border-bottom: 0;
  color: #fff;
  text-align: center;
}

.services--showcase .service-discover:hover,
.services--showcase .service-discover:focus-visible {
  border-top-color: var(--gold);
  color: var(--gold);
}

.services--showcase .services-list {
  position: relative;
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(.65rem,1vw,1.15rem);
  width: min(1120px,100%);
  margin: 0 auto;
  padding: 0;
}

.services--showcase .services-list button {
  position: relative;
  display: grid;
  flex: 0 1 calc(20% - 1rem);
  place-content: center;
  place-items: center;
  justify-content: center;
  min-width: 0;
  height: clamp(56px,3.5vw,66px);
  min-height: 0;
  padding: .65rem .85rem;
  border: 1.5px solid rgba(255,255,255,.76);
  border-radius: 5px;
  background: rgba(4,22,39,.12);
  color: rgba(255,255,255,.94);
  font-size: clamp(.8rem,.9vw,1rem);
  line-height: 1.15;
  text-align: center;
  text-wrap: balance;
  transition: border-color .3s ease,color .3s ease,background-color .3s ease,transform .3s var(--ease);
}

.services--showcase .services-list button::before,
.services--showcase .services-list button::after {
  display: none !important;
  content: none !important;
}

.services--showcase .services-list button:hover,
.services--showcase .services-list button:focus-visible {
  border-color: #fff;
  background: rgba(255,255,255,.045);
  transform: translateY(-2px);
}

.services--showcase .services-list button[aria-selected="true"] {
  border-color: var(--gold);
  background: rgba(183,161,116,.055);
  color: var(--gold);
}

.services--showcase .services-list button:focus-visible,
.services--showcase .services-nav:focus-visible,
.services--showcase .service-discover:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}

.services--showcase .services-progress {
  position: relative;
  z-index: 4;
  width: min(550px,43vw);
  height: 5px;
  margin: clamp(2rem,3vw,3.25rem) auto 0;
  overflow: hidden;
  background: rgba(255,255,255,.2);
}

.services--showcase .services-progress span {
  display: block;
  width: calc(100% / var(--services-count));
  height: 100%;
  background: var(--gold);
  transform: translate3d(0,0,0);
  transition: transform .55s var(--ease),width .3s ease;
}

.services--showcase .services-nav {
  position: absolute;
  z-index: 5;
  top: 43%;
  display: flex;
  gap: clamp(.85rem,1.4vw,1.6rem);
  align-items: center;
  padding: 1rem;
  border: 0;
  background: transparent;
  color: var(--gold);
  cursor: pointer;
  transform: translateY(-50%);
}

.services--showcase .services-nav--prev {
  left: clamp(1rem,5vw,6rem);
}

.services--showcase .services-nav--next {
  right: clamp(1rem,5vw,6rem);
}

.services--showcase .services-nav svg {
  width: clamp(18px,1.5vw,28px);
  height: clamp(32px,2.5vw,48px);
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 2;
  transition: transform .3s var(--ease);
}

.services--showcase .services-nav span {
  width: clamp(22px,2vw,38px);
  height: 1px;
  background: var(--gold);
}

.services--showcase .services-nav:hover svg,
.services--showcase .services-nav:focus-visible svg {
  transform: scale(1.08);
}

@media(max-width:1100px) {
  .services--showcase .services-list {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
  }

  .services--showcase .services-list button {
    height: 72px;
  }
}

@media(max-width:900px) {
  .services.services--showcase,
  .services--showcase .services-shell {
    min-height: 0;
  }

  .services--showcase .services-shell {
    grid-template-rows: minmax(540px,80vw) auto auto;
    padding-top: 0;
    padding-bottom: clamp(4.5rem,12vw,7rem);
  }

  .services--showcase .services-figure {
    display: block;
    top: clamp(1rem,4vw,2rem);
    width: min(78vw,680px);
  }

  .services--showcase .services-figure img {
    opacity: .7;
  }

  .services--showcase .service-detail,
  .services--showcase .service-detail.is-active {
    width: min(78vw,680px);
    padding: clamp(5.5rem,18vw,8rem) 0 clamp(2rem,5vw,3rem);
  }

  .services--showcase .services-list {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: clamp(.55rem,2vw,.9rem);
    width: 92%;
  }

  .services--showcase .services-list button {
    height: clamp(72px,15vw,82px);
    padding: .6rem clamp(.4rem,1.5vw,.75rem);
  }

  .services--showcase .services-progress {
    width: min(76vw,550px);
    margin-top: clamp(3rem,9vw,5rem);
  }

  .services--showcase .services-nav {
    top: clamp(12rem,36vw,20rem);
    gap: .65rem;
    padding: .7rem;
  }

  .services--showcase .services-nav--prev {
    left: clamp(.4rem,2vw,1.25rem);
  }

  .services--showcase .services-nav--next {
    right: clamp(.4rem,2vw,1.25rem);
  }
}

@media(max-width:600px) {
  .services--showcase .services-shell {
    grid-template-rows: minmax(410px,105vw) auto auto;
  }

  .services--showcase .services-figure {
    display: block;
    top: 1.25rem;
    width: min(94vw,430px);
  }

  .services--showcase .service-detail,
  .services--showcase .service-detail.is-active {
    width: min(80vw,460px);
    max-width: calc(100vw - 4.5rem);
    padding-top: clamp(5.25rem,21vw,7rem);
  }

  .services--showcase .service-detail-inner,
  .services--showcase .service-detail h3,
  .services--showcase .service-description,
  .services--showcase .service-description p {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
  }

  .services--showcase .service-detail h3 {
    padding-bottom: .16em;
    font-size: clamp(2rem,8.8vw,2.4rem);
    line-height: 1;
    overflow-wrap: break-word;
  }

  .services--showcase .service-description,
  .services--showcase .service-description p {
    font-size: clamp(1rem,4.45vw,1.15rem);
    line-height: 1.35;
  }

  .services--showcase .service-description,
  .services--showcase .service-description p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
  }

  .services--showcase .services-list button {
    height: clamp(62px,17vw,68px);
    padding: .45rem .35rem;
    font-size: clamp(.72rem,3.2vw,.82rem);
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .services--showcase .services-list button:first-child {
    padding-inline: .1rem;
    font-size: clamp(.56rem,2.45vw,.68rem);
    line-height: 1.2;
    letter-spacing: 0;
  }

  .services--showcase .services-nav {
    top: clamp(13rem,57vw,16rem);
  }

  .services--showcase .services-nav span {
    width: 20px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .services--showcase .services-list button,
  .services--showcase .services-progress span,
  .services--showcase .services-nav svg,
  .services--showcase .service-detail.is-active .service-detail-inner {
    animation: none;
    transition: none;
  }
}

/* ==========================================================================
   35. Homepage opening band, hero lockup and mobile reading modes
   ========================================================================== */

/* --------------------------------------------------------------------------
   35.1 Hero: on desktop the payoff spreads over three points and the founding
   year takes the place of the old single line. Mobile keeps the original line.
   -------------------------------------------------------------------------- */

.hero-lockup,
.hero-since {
  display: none;
}

@media(min-width:901px) {
  .hero-payoff {
    display: none;
  }

  .hero-lockup {
    position: absolute;
    z-index: 3;
    bottom: clamp(4.6rem,9vh,7.2rem);
    left: 50%;
    display: grid;
    width: min(86vw,1460px);
    grid-template-columns: repeat(3,minmax(0,1fr));
    margin: 0;
    color: var(--gold);
    font-family: var(--sans);
    font-size: clamp(1.5rem,2.3vw,2.85rem);
    font-weight: 500;
    line-height: 1;
    letter-spacing: .1em;
    text-transform: uppercase;
    transform: translateX(-50%);
    pointer-events: none;
  }

  .hero-lockup span {
    justify-self: center;
  }

  .hero-since {
    position: absolute;
    z-index: 3;
    display: block;
    bottom: clamp(1.9rem,4vh,3rem);
    left: 50%;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-family: var(--sans);
    font-size: clamp(.78rem,.95vw,1.05rem);
    font-weight: 400;
    letter-spacing: .38em;
    text-indent: .38em;
    text-transform: uppercase;
    transform: translateX(-50%);
    pointer-events: none;
  }
}

/* --------------------------------------------------------------------------
   35.2 Opening band: the brand stays put on the left while introduction,
   figures and map scroll past it. When the band ends the brand scrolls away.
   -------------------------------------------------------------------------- */

.home-lead {
  position: relative;
  background: var(--ink);
}

.home-lead__rail-inner .intro-brand {
  min-height: 0;
}

.home-map {
  position: relative;
  padding-block: clamp(3.5rem,8vw,7rem);
  background: var(--ink);
  color: #fff;
}

.home-map__layout {
  display: grid;
}

/* The map keeps the original artwork, so it sits on its own light sheet. */
.home-map__visual {
  display: flex;
  margin: 0;
  padding: clamp(1.25rem,2.6vw,2.75rem);
  justify-content: center;
  background: #fff;
  box-shadow: 0 24px 60px rgba(0,0,0,.22);
}

.home-map__visual img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(56svh,650px);
  object-fit: contain;
}

@media(min-width:901px) {
  .home-lead {
    --lead-rail: 30.5%;
    --lead-gap: 8%;
  }

  .home-lead__rail {
    position: absolute;
    z-index: 3;
    inset: 0;
    pointer-events: none;
  }

  .home-lead__rail-inner {
    position: sticky;
    top: var(--sig-header,96px);
    display: grid;
    height: calc(100svh - var(--sig-header,96px));
    grid-template-columns: minmax(0,var(--lead-rail)) minmax(0,1fr);
    column-gap: var(--lead-gap);
    align-items: center;
  }

  .home-lead .intro-grid,
  .home-lead .numbers-grid,
  .home-lead .home-map__layout {
    grid-template-columns: minmax(0,var(--lead-rail)) minmax(0,1fr);
    column-gap: var(--lead-gap);
    row-gap: clamp(2.5rem,4vw,4.5rem);
    align-items: center;
  }

  .home-lead .intro-grid > *,
  .home-lead .numbers-grid > *,
  .home-lead .home-map__layout > * {
    grid-column: 2;
  }

  .home-lead > section {
    display: flex;
    align-items: center;
  }

  .home-lead > section > .container {
    width: 100%;
  }

  /* Smaller, calmer proportions so the next panel is felt below the fold. */
  .home-lead .intro {
    min-height: min(86svh,900px);
    padding-block: clamp(3.5rem,5vw,6rem);
  }

  .home-lead .intro-copy h2 {
    max-width: 24ch;
    margin-bottom: 1.4rem;
    font-size: clamp(2.1rem,2.9vw,3.5rem);
  }

  .home-lead .intro-copy .rich-text,
  .home-lead .intro-copy .rich-text p {
    max-width: 66ch;
    font-size: clamp(.98rem,1.02vw,1.15rem);
    line-height: 1.55;
  }

  .home-lead .numbers,
  .home-lead .home-map {
    min-height: 100svh;
    padding-block: clamp(3.5rem,5vw,6rem);
  }

  .home-lead .numbers .section-title {
    font-size: clamp(2.4rem,3.35vw,4rem);
  }

  .home-lead .numbers .stats {
    /* Knob shared with assets/css/editorial.css. */
    --signature-stat-size: clamp(2.2rem,3.6vw,4.4rem);
    margin-top: clamp(1.5rem,2.4vw,2.8rem);
  }

  .home-lead .numbers .stat {
    grid-template-columns: minmax(0,18vw) minmax(0,1fr);
    column-gap: clamp(1.25rem,2vw,2.25rem);
    min-height: 0;
    padding: .7rem 0;
    border-bottom-width: 2px;
  }

  .home-lead .numbers .stat span,
  .home-lead .quote .rich-text,
  .home-lead .quote .rich-text p {
    font-size: clamp(.95rem,1vw,1.15rem);
    line-height: 1.4;
  }

  .home-lead .numbers-page-link {
    margin-top: clamp(1.5rem,2.4vw,2.6rem);
  }

  .home-lead .quote blockquote {
    font-size: clamp(1.6rem,2.15vw,2.6rem);
  }
}

@media(max-width:900px) {
  .home-lead__rail-inner {
    padding-block: clamp(5.5rem,17vw,7.5rem) 0;
  }

  .home-lead .intro {
    padding-top: clamp(2rem,6vw,3rem);
  }
}

@media(max-width:600px) {
  .home-lead .numbers .stats {
    --signature-stat-size: clamp(2.1rem,11vw,3.2rem);
  }

  .home-lead .numbers .stat {
    grid-template-columns: minmax(0,1fr);
    align-items: start;
    row-gap: .3rem;
    padding-block: 1rem;
  }

  .home-lead .numbers .stat span {
    max-width: none;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   35.3 Homepage team on small screens: profiles stack and the team link sits
   below all of them.
   -------------------------------------------------------------------------- */

@media(max-width:600px) {
  .profiles-track {
    display: grid;
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: minmax(0,1fr);
    gap: clamp(2.25rem,8vw,3rem);
    padding-bottom: 0;
    overflow: visible;
    cursor: auto;
    touch-action: auto;
  }

  .profiles-bottom {
    min-height: 0;
    margin-top: clamp(2.25rem,8vw,3rem);
    padding-bottom: 0;
  }

  .profiles-bottom > .band-arrow {
    display: none;
  }

  .profiles-team-link {
    display: inline-block;
    margin-top: clamp(1.25rem,5vw,1.75rem);
  }
}

/* ===========================================================================
   36. Homepage final alignment and responsive rhythm
   ========================================================================== */

/* A continuous veil supports all three hero labels without flattening the
   photograph. The caption remains independent from the travelling emblem. */
.hero-media::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: linear-gradient(to bottom,rgba(4,13,24,.72) 0%,rgba(4,13,24,.54) 24%,rgba(4,13,24,.34) 46%,rgba(4,13,24,.14) 64%,transparent 79%);
  pointer-events: none;
}

.hero-media::after {
  z-index: 2;
}

.hero-media img {
  position: relative;
  z-index: 0;
}

.hero-caption {
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  will-change: opacity;
}

.hero-payoff,
.hero-lockup span,
.hero-since {
  text-shadow: 0 2px 18px rgba(4,13,24,.9),0 1px 2px rgba(4,13,24,.95);
}

@media(min-width:901px) {
  /* Place the three descriptors around the central emblem. */
  .hero-lockup {
    position: absolute;
    z-index: 3;
    inset: 0;
    display: block;
    width: auto;
    margin: 0;
    transform: none;
  }

  .hero-lockup span {
    position: absolute;
    display: block;
    margin: 0;
    color: var(--gold);
    font-weight: 500;
    white-space: nowrap;
  }

  .hero-lockup__payroll {
    top: 19%;
    left: 50%;
    transform: translateX(-50%);
  }

  .hero-lockup__hr {
    top: 38%;
    right: calc(50% + clamp(5rem,12vw,13rem));
    left: auto;
  }

  .hero-lockup__consulting {
    top: 38%;
    right: auto;
    left: calc(50% + clamp(5rem,12vw,13rem));
  }

  /* One shared rhythm keeps the introduction, figures and map compact. */
  .home-lead .intro,
  .home-lead .numbers,
  .home-lead .home-map {
    min-height: min(76svh,760px);
    padding-block: clamp(2.75rem,4vw,4.25rem);
  }

  .home-lead .home-map {
    align-items: flex-start;
    padding-top: clamp(2.25rem,3vw,3rem);
  }

  .home-map__visual {
    padding: 0;
    background: transparent;
    box-shadow: none;
  }

  .communications .communications-panels,
  .communications .communications-panel,
  .communications .communications-card,
  .communications .communications-card__media {
    margin-left: 0;
  }

  .communications .communications-panel {
    width: 100%;
    max-width: none;
  }

  .communications .communications-card {
    padding-left: 0;
  }

  .communications .communications-panel.is-active .news-card {
    transform: none !important;
  }
}

@media(max-width:900px) {
  .home-lead .intro,
  .home-lead .numbers,
  .home-lead .home-map {
    padding-block: clamp(2.75rem,9vw,4rem);
  }

  .home-map__visual {
    padding: 0;
    background: transparent;
    box-shadow: none;
  }
}

/* Slightly smaller controls retain the same grid rhythm and optical spacing. */
.services--showcase .services-list {
  width: min(1040px,100%);
}

.services--showcase .services-list button {
  flex-basis: calc(20% - 1rem);
  height: clamp(50px,3.1vw,56px);
  padding: .55rem .75rem;
  font-size: clamp(.72rem,.8vw,.9rem);
  text-align: center;
}

.services--showcase .services-nav,
.services--showcase .services-nav svg {
  color: var(--gold);
}

@media(max-width:1100px) {
  .services--showcase .services-list button {
    height: 58px;
  }
}

@media(max-width:600px) {
  .hero {
    height: min(82svh,700px);
    min-height: 600px;
  }

  .hero-caption {
    inset: calc(32% + 4.7rem) 1rem auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-align: center;
  }

  .hero-caption .hero-payoff,
  .hero-caption .hero-since {
    position: static;
    width: 100%;
    margin: 0;
    transform: none;
  }

  .hero-caption .hero-payoff {
    text-wrap: balance;
  }

  .hero-since {
    display: block;
    color: rgba(255,255,255,.92);
    font-family: var(--sans);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .34em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .home-lead,
  .founders,
  .services,
  .profiles,
  .feature,
  .communications {
    --gutter: clamp(1.75rem,7.5vw,2.25rem);
  }

  .home-lead .container,
  .founders .container,
  .services .container,
  .profiles .container,
  .feature .container,
  .communications .container {
    --gutter: clamp(1.75rem,7.5vw,2.25rem);
    padding-inline: clamp(1.75rem,7.5vw,2.25rem);
  }

  .services--showcase .services-shell {
    grid-template-rows: minmax(330px,88vw) auto auto;
    padding-bottom: clamp(2.75rem,10vw,4rem);
  }

  .services--showcase .services-panels,
  .services--showcase .service-detail,
  .services--showcase .service-detail.is-active,
  .services--showcase .service-detail-inner,
  .services--showcase .service-detail h3,
  .services--showcase .service-description,
  .services--showcase .service-description p {
    text-align: center;
  }

  .services--showcase .service-detail,
  .services--showcase .service-detail.is-active {
    padding-top: clamp(4rem,16vw,4.75rem);
    padding-bottom: .5rem;
  }

  .services--showcase .service-discover {
    margin-top: .75rem;
  }

  .services--showcase .services-nav {
    top: clamp(5.5rem,24vw,7rem);
  }

  .services--showcase .services-list {
    width: 100%;
    gap: clamp(.5rem,2.25vw,.7rem);
  }

  .services--showcase .services-list button,
  .services--showcase .services-list button:first-child {
    height: clamp(48px,13.3vw,54px);
    padding: .35rem .25rem;
    border-radius: 4px;
    font-size: clamp(.6rem,2.65vw,.72rem);
    line-height: 1.14;
    text-align: center;
  }

  .services--showcase .services-progress {
    margin-top: clamp(2rem,7vw,2.75rem);
  }

  .profiles,
  .profiles .container,
  .profiles-head {
    overflow: visible;
  }

  .profiles-head .section-title {
    width: calc(100% - .08em);
    margin-left: .08em;
  }

  .profiles-page .page-hero h1 {
    max-width: 100%;
    margin-left: 0;
    padding-left: .12em;
    overflow: visible;
  }
}

/* ===========================================================================
   37. Homepage production readiness
   ========================================================================== */

/* Figures and map share one uninterrupted navy field. */
.home-lead__continuation {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.home-lead__continuation::before {
  content: none;
}

.home-lead__continuation .numbers,
.home-lead__continuation .home-map {
  position: relative;
  z-index: 1;
  background: transparent;
}

.home-lead__continuation .numbers::before {
  display: none;
}

/* One spacing token keeps the content-led bands on the same rhythm. */
.home-lead,
.profiles,
.communications {
  --home-section-space: clamp(2.75rem,4vw,4rem);
}

/* Content determines each band's height; the grid must also fit long
   translated headings instead of widening beyond the mobile viewport. */
.home-lead .intro,
.home-lead .numbers,
.home-lead .home-map {
  min-height: 0;
}

.home-lead .intro-copy,
.home-lead .quote {
  min-width: 0;
}

.home-lead .intro-copy h2 {
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Keep the CTA in flow, so longer editorial copy cannot run underneath it. */
.home-lead .intro > .intro-grid > .band-arrow {
  position: relative;
  inset: auto;
  justify-self: end;
  margin-top: 1.5rem;
}

.home-lead .intro-grid {
  row-gap: 0;
}

.home-lead .quote .rich-text,
.home-lead .quote .rich-text p {
  color: rgba(255,255,255,.72);
}

@media(min-width:901px) {
  .home-lead > section,
  .home-lead__continuation > section {
    display: flex;
    align-items: center;
  }

  .home-lead > section > .container,
  .home-lead__continuation > section > .container {
    width: 100%;
  }

  .home-lead .intro,
  .home-lead .numbers,
  .home-lead .home-map,
  .profiles,
  .communications {
    padding-block: var(--home-section-space);
  }

  .home-lead .home-map {
    align-items: flex-start;
    padding-top: clamp(.75rem,1.4vw,1.4rem);
  }

  .home-lead .intro-copy .rich-text,
  .home-lead .intro-copy .rich-text p,
  .home-lead .quote .rich-text,
  .home-lead .quote .rich-text p,
  .profiles-intro,
  .profiles-intro p {
    font-size: clamp(1.2rem,1.4vw,1.4rem);
    line-height: 1.55;
  }
}

@media(max-width:900px) {
  .home-lead,
  .profiles,
  .communications {
    --home-section-space: clamp(2.75rem,9vw,3.5rem);
  }

  .home-lead .intro-copy h2 {
    font-size: clamp(2rem,9vw,2.4rem);
    line-height: 1.08;
  }

  .home-lead .intro,
  .home-lead .numbers,
  .profiles,
  .communications {
    padding-block: var(--home-section-space);
  }

  .home-lead .home-map {
    padding-block: clamp(.75rem,3vw,1.25rem) var(--home-section-space);
  }

  .home-lead .intro-copy .rich-text,
  .home-lead .intro-copy .rich-text p,
  .home-lead .quote .rich-text,
  .home-lead .quote .rich-text p,
  .profiles-intro,
  .profiles-intro p {
    font-size: clamp(1.08rem,4.7vw,1.2rem);
    line-height: 1.55;
  }

}

@media(min-width:601px) and (max-width:900px) {
  .home-lead .numbers .stat {
    grid-template-columns: 190px minmax(0,1fr);
    column-gap: 1.5rem;
  }
}

@media(min-width:901px) {
  .home-lead .numbers .stat {
    grid-template-columns: minmax(130px,14vw) minmax(0,1fr);
  }

  .home-lead .numbers .stat span {
    max-width: none;
    white-space: nowrap;
  }
}

/* ===========================================================================
   38. Mobile services — two full-width stories per vertical page
   ========================================================================== */

@media(max-width:600px) {
  .services--showcase .services-list,
  .services--showcase .services-nav {
    display: none;
  }

  .services--showcase .services-shell {
    display: block;
    min-height: 0;
    padding-block: 2.5rem 2rem;
  }

  .services--showcase .services-panels {
    display: grid;
    grid-template-columns: 100%;
    grid-auto-flow: row;
    grid-auto-rows: 50%;
    width: 100%;
    height: clamp(500px,68svh,600px);
    gap: 0;
    place-items: stretch;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: auto;
    scroll-snap-type: y mandatory;
    scrollbar-width: none;
    touch-action: pan-y;
  }

  .services--showcase .services-panels::-webkit-scrollbar {
    display: none;
  }

  .services--showcase .services-panels:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 4px;
  }

  .services--showcase .service-detail,
  .services--showcase .service-detail.is-active {
    position: relative;
    display: grid;
    grid-area: auto;
    align-content: center;
    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: .5rem 0;
    scroll-snap-align: none;
    animation: none;
  }

  .services--showcase .service-detail:nth-child(odd) {
    scroll-snap-align: start;
  }

  .services--showcase .service-detail:nth-child(even) {
    border-top: 1px solid rgba(183,161,116,.25);
    padding-top: 1.5rem;
  }

  .services--showcase .service-detail:last-child:nth-child(odd) {
    grid-row: span 2;
  }

  .services--showcase .service-detail h3 {
    margin-bottom: 1rem;
    font-size: clamp(1.8rem,7.8vw,2.15rem);
    line-height: 1.08;
  }

  .services--showcase .service-description,
  .services--showcase .service-description p {
    -webkit-line-clamp: 3;
  }

  .services--showcase .service-discover {
    margin-top: 1rem;
    padding-top: .75rem;
  }

  .services--showcase .services-figure {
    top: 50%;
    width: min(100%,430px);
    transform: translate(-50%,-50%);
  }

  .services--showcase .services-progress {
    width: 100%;
    height: 3px;
    margin-top: 1.75rem;
  }
}

/* ==========================================================================
   39. Hero home — posizione del payoff, ombra morbida e lettura mobile
   ========================================================================== */

/* Le tre parole salgono di qualche punto percentuale: sugli schermi più
   diffusi restano sul cielo e non toccano più tetti e alberi. Il monogramma
   centrale e la fotografia non cambiano posizione. */
@media(min-width:901px) {
  .hero-lockup__payroll {
    top: 15%;
  }

  .hero-lockup__hr,
  .hero-lockup__consulting {
    top: 29%;
  }
}

/* Ombra sfumata: nessun contorno netto sotto le lettere, solo una diffusione
   ampia che stacca il testo dalla fotografia. */
.hero-payoff,
.hero-lockup span,
.hero-since {
  text-shadow: 0 1px 14px rgba(4,13,24,.5),0 8px 38px rgba(4,13,24,.42);
}

/* Fino a 900 px il payoff perde i separatori a pallino: le tre parole si
   leggono una sotto l'altra, centrate. */
@media(max-width:900px) {
  .hero-payoff {
    display: none;
  }

  .hero-lockup {
    display: flex;
    width: min(90vw,520px);
    flex-direction: column;
    align-items: center;
    gap: .4em;
    margin: 0;
    color: var(--gold);
    font-family: var(--sans);
    font-size: clamp(1.15rem,4.8vw,1.7rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: .07em;
    text-align: center;
    text-transform: uppercase;
    pointer-events: none;
  }

  .hero-lockup span {
    display: block;
  }
}

/* Su tablet il gruppo resta ancorato in basso, come prima faceva la riga
   unica del payoff. */
@media(min-width:601px) and (max-width:900px) {
  .hero-lockup {
    position: absolute;
    z-index: 3;
    bottom: clamp(2.5rem,6vh,5rem);
    left: 50%;
    transform: translateX(-50%);
  }
}

/* Su telefono le tre parole scorrono nel flusso della caption, sopra
   l'anno di fondazione. */
@media(max-width:600px) {
  .hero-caption .hero-lockup {
    position: static;
    width: 100%;
    transform: none;
  }
}

/* ==========================================================================
   40. Home — titolo introduttivo su tre righe e team completo in vista
   ========================================================================== */

/* Il titolo accetta gli a capo scritti nel backoffice: con tre righe il logo
   che si compone durante la transizione resta leggibile. */
@media(min-width:901px) {
  .home-lead .intro-copy h2 {
    max-width: 27ch;
  }
}

/* Su telefono gli a capo forzati tornano naturali, così il titolo non esce
   mai dalla colonna. */
@media(max-width:600px) {
  .intro-copy h2 br {
    display: none;
  }
}

/* I profili in home non scorrono più: i tre consulenti restano in prima
   fila, gli altri quattro si leggono subito sotto. */
@media(min-width:901px) {
  .profiles-track {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: repeat(12,minmax(0,1fr));
    grid-auto-columns: auto;
    gap: clamp(1.75rem,2.6vw,3.25rem);
    padding-bottom: 0;
    overflow: visible;
    cursor: auto;
  }

  .profiles-track > .profile-card {
    grid-column: span 3;
  }

  .profiles-track > .profile-card:nth-child(-n+3) {
    grid-column: span 4;
  }
}

/* Su tablet due per riga: restano tutti visibili senza trascinamento. */
@media(min-width:601px) and (max-width:900px) {
  .profiles-track {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-auto-columns: auto;
    gap: clamp(1.75rem,4vw,2.75rem);
    padding-bottom: 0;
    overflow: visible;
    cursor: auto;
  }
}

/* ==========================================================================
   41. Servizi — la frase di partnership tra il vitruviano e i tasti
   ========================================================================== */

.services--showcase .services-partnership {
  max-width: 44ch;
  margin: clamp(1.75rem,3.2vw,3rem) auto clamp(1.5rem,2.6vw,2.25rem);
  color: var(--gold);
  font-family: var(--sans);
  font-size: clamp(.95rem,1.15vw,1.2rem);
  font-weight: 500;
  letter-spacing: .14em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
  text-wrap: balance;
}

/* Da tablet in su la frase occupa una riga propria della griglia, tra la
   fascia dei racconti e i tasti dei servizi. */
@media(min-width:601px) {
  .services--showcase .services-panels {
    grid-row: 1;
  }

  .services--showcase .services-partnership {
    grid-row: 2;
  }

  .services--showcase .services-list {
    grid-row: 3;
  }

  .services--showcase .services-progress {
    grid-row: 4;
  }
}

/* Su telefono la frase si legge prima che i servizi inizino a scorrere. */
@media(max-width:600px) {
  .services--showcase .services-partnership {
    margin: clamp(.25rem,2vw,.75rem) auto clamp(1.25rem,5vw,1.75rem);
    font-size: clamp(.85rem,3.5vw,1rem);
    letter-spacing: .11em;
  }

  .services--showcase .services-figure {
    top: calc(50% + 1.5rem);
  }
}

/* ==========================================================================
   42. Fascia fondatori con fotografia caricata dal backoffice
   ========================================================================== */

/* Una foto a colori scelta dal cliente viene riportata al bianco e nero del
   sito e velata, così il titolo sovrapposto resta leggibile. L'immagine
   predefinita del tema non è interessata. */
.founders--photo .founders-bg {
  filter: grayscale(1) brightness(.74) contrast(1.02);
  background-position: center top;
  background-attachment: scroll;
}

@media(min-width:901px) {
  .founders--photo .founders-bg {
    background-position: center calc(0px - clamp(34px,3vw,58px));
  }

  .founders--photo .founders-content h2,
  .founders--photo .founders-content h2[data-reveal],
  .founders--photo .founders-content h2[data-reveal].is-visible {
    transform: translateY(clamp(64px,5.5vw,88px));
  }
}

.founders--photo::after {
  inset: 0;
  background: linear-gradient(rgba(4,13,24,.3) 0%,rgba(4,13,24,.42) 45%,rgba(4,13,24,.62) 100%);
}

/* ==========================================================================
   43. Ritocchi richiesti dal cliente: titolo fondatori su una riga, frase
   di partnership sempre sotto il vitruviano, hero perfetta su ogni device
   ========================================================================== */

/* "HR a 360° in un click" resta su una sola riga SOLO da desktop (>=901px):
   la dimensione si adatta alla larghezza disponibile invece di andare a
   capo, con un corpo più contenuto rispetto alla versione precedente.
   Da mobile/tablet questa regola non si applica: il titolo torna al
   comportamento naturale (le regole preesistenti più sopra nel file) e va
   a capo su due righe come richiesto. */
@media(min-width:901px) {
  .founders h2 {
    white-space: nowrap;
    width: auto;
    max-width: none;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    font-size: clamp(1.8rem,7vw,6rem);
  }
}

/* La prima riga non deve espandersi fino all'altezza della fascia: il disegno
   ha margini trasparenti e lascia spazio per avvicinare la frase successiva.
   L'altezza segue la figura con una riduzione fluida e un minimo che lascia
   spazio al titolo e alla descrizione del servizio. */
@media(min-width:901px) {
  .services--showcase .services-shell {
    grid-template-rows: max(520px,calc(clamp(1.5rem,2.5vw,3rem) + clamp(550px,47vw,900px) + .75rem - clamp(3.75rem,6vw,5.5rem))) auto auto auto;
    align-content: start;
  }
}

@media(min-width:601px) and (max-width:900px) {
  .services--showcase .services-shell {
    grid-template-rows: max(500px,calc(clamp(1rem,4vw,2rem) + min(78vw,680px) + .75rem - clamp(3.75rem,6vw,5.5rem))) auto auto auto;
    align-content: start;
  }
}

/* Da mobile la hero deve coprire l'intero schermo, senza far intravedere la
   sezione blu successiva: torna all'altezza piena invece del precedente
   82svh, che lasciava scoperta una fascia in basso. */
@media(max-width:600px) {
  .hero {
    height: 100svh;
  }
}

/* Da desktop "Since 1953" era troppo vicino al bordo inferiore della hero:
   viene sollevato, restando comunque sotto alle tre parole del payoff. */
@media(min-width:901px) {
  .hero-since {
    bottom: clamp(3rem,6.5vh,5rem);
  }
}

/* ==========================================================================
   44. Foto di gruppo nella sezione introduttiva (prima sezione della home)
   Elemento immagine autonomo, non a tutta larghezza: una cornice che scala
   in modo fluido su qualunque schermo mantenendo le proporzioni grazie ad
   aspect-ratio + object-fit. Da desktop la sezione home-lead allinea tutti
   i contenuti (testo intro, numeri, mappa) sulla colonna di destra della
   griglia a due colonne (rail del logo + contenuto): la foto usa la STESSA
   griglia (.intro-photo-grid, uguale a .intro-grid/.numbers-grid) così
   risulta allineata al testo sopra invece che centrata sull'intera pagina.
   ========================================================================== */
.intro-photo {
  padding-block: 0 clamp(.1rem,.3vw,.2rem);
}

.home-lead .intro-photo-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  row-gap: 0;
}

.home-lead .intro--with-photo {
  padding-bottom: clamp(1rem,2vw,1.5rem);
}

.intro-photo__frame {
  max-width: 64%;
  aspect-ratio: 3/2;
  overflow: hidden;
  border-radius: 6px;
  border: 1px solid var(--line);
}

.intro-photo__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
}

.intro-photo__link {
  position: relative;
  inset: auto;
  justify-self: end;
  margin: .25rem 0 0;
  color: rgba(255,255,255,.52);
}

@media(max-width:600px) {
  .intro-photo__frame {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 4/3;
    border-radius: 4px;
  }

  .intro-photo__link {
    margin-top: .15rem;
  }
}

@media(min-width:901px) {
  .home-lead .intro-photo-grid {
    display: grid;
    grid-template-columns: minmax(0,var(--lead-rail)) minmax(0,1fr);
    column-gap: var(--lead-gap);
  }

  .home-lead .intro-photo-grid > * {
    grid-column: 2;
  }

  .intro-photo__frame {
    width: 64%;
    max-width: 64%;
  }
}

/* ==========================================================================
   45. Inquadratura delle foto dei fondatori (Giorgiutti, Di Barbara,
   Cattunar) nelle card profilo e nella foto grande della pagina profilo: le
   foto sono verticali e vengono ritagliate a quadrato (card) partendo dal
   centro, tagliando la testa. Si sposta l'inquadratura verso l'alto della
   foto originale così la testa resta sempre completamente visibile.
   Selettori mirati sul nome file (WordPress qui non aggiunge la classe
   wp-image-<ID> alle immagini in output), maiuscole/minuscole comprese, per
   non toccare le altre foto profilo (es. "FILIPPO_CATTUNAR" resta escluso).
   ========================================================================== */
.profile-card img[src*="Giorgiutti-"],
.profile-card img[src*="Giorgiutti."],
.profile-card img[src*="Di-Barbara-"],
.profile-card img[src*="Di-Barbara."],
.profile-card img[src*="Cattunar-"],
.profile-card img[src*="Cattunar."],
.profile-single__portrait img[src*="Giorgiutti-"],
.profile-single__portrait img[src*="Giorgiutti."],
.profile-single__portrait img[src*="Di-Barbara-"],
.profile-single__portrait img[src*="Di-Barbara."],
.profile-single__portrait img[src*="Cattunar-"],
.profile-single__portrait img[src*="Cattunar."] {
  object-position: center top;
}

/* ==========================================================================
   46. Meno spazio sopra alla frase "Partnership tra imprese e
   professionisti", tra il vitruviano e la frase stessa.
   ========================================================================== */
@media(min-width:601px) {
  .services--showcase .services-partnership {
    margin-top: 0;
  }
}

/* ========================================================================== 
   47. Intro photo link, mobile payoff and dependable services strapline
   ========================================================================== */

.services--showcase .services-partnership {
  position: relative;
  z-index: 4;
  display: block;
  grid-column: 1 / -1;
  width: min(100%,44ch);
  max-width: calc(100% - 1rem);
  visibility: visible;
  opacity: 1;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.founders h2 .founders-mobile-break {
  display: none;
}

@media(max-width:900px) {
  .founders h2 .founders-mobile-break {
    display: block;
  }
}

@media(max-width:600px) {
  .services--showcase .services-shell {
    display: flex;
    flex-direction: column;
  }

  .services--showcase .services-panels {
    order: 1;
    flex: 0 0 clamp(500px,68svh,600px);
  }

  .services--showcase .services-partnership {
    order: 2;
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin: clamp(1.25rem,5vw,1.75rem) auto .25rem !important;
    padding-inline: .25rem;
    transform: none;
  }

  .services--showcase .services-progress {
    order: 3;
  }
}

.founders--theme-photo .founders-bg {
  background-position: center top;
  background-attachment: scroll;
}

.founders--theme-photo::after {
  inset: 0;
  background: linear-gradient(180deg,rgba(4,13,24,.08) 0%,rgba(4,13,24,.12) 48%,rgba(4,13,24,.72) 100%);
}

@media(max-width:600px) {
  .founders--theme-photo {
    background: #a9a9a9;
  }

  .founders--theme-photo .founders-bg {
    background-position: center top;
    background-size: 100% auto;
  }

  .founders--theme-photo::after {
    background: linear-gradient(180deg,rgba(4,13,24,0) 0%,rgba(4,13,24,.16) 48%,rgba(4,13,24,.82) 100%);
  }
}
