:root {
  --navy: #0f2138;
  --navy-2: #172f4e;
  --navy-3: #21446b;
  --red: #b63f4c;
  --teal: #2f7d8c;
  --gold: #b38f3f;
  --paper: #f2f0eb;
  --white: #ffffff;
  --ink: #14202c;
  --muted: #5e6872;
  --line: rgba(20, 32, 44, 0.18);
  --sans: "Inter", Arial, sans-serif;
  --display: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }

.skip-link {
  position: fixed;
  top: 0;
  left: 1rem;
  z-index: 1000;
  padding: .75rem 1rem;
  background: white;
  color: var(--ink);
  transform: translateY(-120%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 90px;
  padding: 0 clamp(1.25rem, 4vw, 4.5rem);
  border-bottom: 1px solid rgba(255,255,255,.25);
  transition: background .3s ease, min-height .3s ease, box-shadow .3s ease;
}
.site-header.is-scrolled {
  min-height: 72px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 10px 35px rgba(8,19,32,.12);
  backdrop-filter: blur(12px);
}
.brand { width: 92px; }
.brand img { width: 92px; height: auto; filter: brightness(0) invert(1); }
.site-header.is-scrolled .brand img { filter: none; }
.main-nav { display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 2.25rem); }
.main-nav a {
  color: white;
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: .01em;
  transition: opacity .2s ease;
}
.main-nav a:hover { opacity: .68; }
.main-nav .nav-cta {
  padding: .85rem 1.25rem;
  background: var(--red);
  color: white;
}
.site-header.is-scrolled .main-nav a { color: var(--ink); }
.site-header.is-scrolled .main-nav .nav-cta { color: white; }
.menu-toggle { display: none; }

.hero {
  position: relative;
  min-height: 100svh;
  color: white;
  background: var(--navy);
  overflow: hidden;
}
.hero-media { position: absolute; inset: 0; display: grid; grid-template-columns: 62% 38%; grid-template-rows: 56% 44%; }
.hero-panel { background-size: cover; background-position: center; transform: scale(1.02); animation: drift 18s ease-in-out infinite alternate; }
.hero-panel-main { grid-row: 1 / 3; background-image: url("../img/hero.webp"); }
.hero-panel-growth { background-image: url("../img/growth.webp"); border-left: 1px solid rgba(255,255,255,.25); }
.hero-panel-build { background-image: url("../img/cta.webp"); border-top: 1px solid rgba(255,255,255,.25); border-left: 1px solid rgba(255,255,255,.25); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,19,33,.94) 0%, rgba(11,27,47,.78) 43%, rgba(10,23,39,.42) 100%); }
.hero-shade::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7,19,33,.9) 0%, transparent 42%); }
.hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100svh;
  width: min(850px, 78vw);
  padding: 9rem clamp(1.25rem, 7vw, 7rem) 10rem;
}
.hero h1 {
  max-width: 760px;
  margin: 0;
  font: 500 clamp(3.4rem, 6.7vw, 7rem)/.96 var(--display);
  letter-spacing: -.05em;
}
.hero-copy { max-width: 710px; margin: 2rem 0 0; color: rgba(255,255,255,.82); font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 2rem; margin-top: 2.25rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .9rem 1.4rem; font-weight: 600; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-light { background: white; color: var(--ink); }
.text-link { display: inline-flex; align-items: center; gap: .6rem; padding-bottom: .3rem; border-bottom: 1px solid currentColor; font-weight: 500; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translate(3px,-3px); }
.text-link-light { color: white; }
.hero-next {
  position: absolute;
  z-index: 2;
  right: clamp(1.25rem, 4vw, 4.5rem);
  bottom: 2rem;
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255,255,255,.55);
  font-size: .82rem;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.opportunities { padding: 8rem clamp(1.25rem, 4vw, 4.5rem) 6rem; color: white; background: var(--navy); }
.section-top, .manifesto {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, .7fr);
  gap: 4rem;
  align-items: end;
  margin-bottom: 4rem;
}
.section-top h2, .manifesto h2, .industries h2, .service-cta h2, .proof h2, .final-cta h2 {
  margin: 0;
  font: 500 clamp(2.4rem, 4.7vw, 5rem)/1.02 var(--display);
  letter-spacing: -.045em;
}
.section-top > p { margin: 0; color: rgba(255,255,255,.68); font-size: 1.05rem; }

.opportunity-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 280px; }
.opportunity-card { position: relative; min-height: 0; overflow: hidden; }
.opportunity-card-feature { grid-column: span 7; grid-row: span 2; display: grid; grid-template-rows: 55% 45%; }
.opportunity-grid > .card-copy-blue { grid-column: span 5; }
.opportunity-grid > .card-copy-paper { grid-column: span 5; }
.opportunity-grid > .signal-card { grid-column: span 3; }
.card-image { min-height: 100%; background-position: center; background-size: cover; transition: transform .5s ease, filter .5s ease; }
.opportunity-card:hover .card-image { transform: scale(1.035); filter: saturate(1.08); }
.card-image-road { background-image: url("../img/hero.webp"); }
.card-image-grow { background-image: url("../img/growth.webp"); }
.card-image-build { background-image: url("../img/cta.webp"); }
.card-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: clamp(1.5rem, 3vw, 2.75rem); transition: filter .2s ease; }
.card-copy:hover { filter: brightness(1.08); }
.card-copy-teal { background: var(--teal); }
.card-copy-blue { background: var(--navy-3); }
.card-copy-navy { background: #1b2b40; }
.card-copy-red { background: var(--red); }
.card-copy-paper { color: var(--ink); background: var(--paper); }
.card-copy-gold { background: var(--gold); }
.card-number { position: absolute; top: 1.2rem; right: 1.4rem; color: rgba(255,255,255,.45); font: 300 4.2rem/1 var(--display); }
.card-copy-paper .card-number { color: rgba(20,32,44,.25); }
.card-meta { margin-bottom: .9rem; font-size: .72rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.card-copy h3 { max-width: 560px; margin: 0; font: 500 clamp(1.35rem, 2.4vw, 2.35rem)/1.16 var(--display); letter-spacing: -.025em; }
.card-action { margin-top: 1.25rem; font-size: .84rem; border-bottom: 1px solid currentColor; }
.section-link-row { display: flex; justify-content: flex-end; padding-top: 2.5rem; }

.manifesto { align-items: start; padding: 8rem clamp(1.25rem, 7vw, 7rem) 5rem; margin: 0; background: white; }
.manifesto-heading { max-width: 780px; }
.manifesto-copy { padding-top: 2.5rem; }
.manifesto-copy p { margin: 0 0 1.3rem; color: var(--muted); font-size: 1.1rem; }
.process { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 clamp(1.25rem, 7vw, 7rem) 8rem; background: white; }
.process-step { padding: 2.5rem 2.5rem 0 0; border-top: 1px solid var(--line); }
.process-step + .process-step { padding-left: 2.5rem; border-left: 1px solid var(--line); }
.process-step span { color: var(--red); font-size: .8rem; letter-spacing: .12em; }
.process-step h3 { margin: 2.5rem 0 1rem; font: 500 clamp(1.45rem, 2vw, 2rem)/1.2 var(--display); }
.process-step p { max-width: 390px; margin: 0; color: var(--muted); }

.industries { display: grid; grid-template-columns: .9fr 1.35fr; gap: 6rem; padding: 8rem clamp(1.25rem, 7vw, 7rem); color: var(--ink); background: var(--paper); }
.industries-intro { position: sticky; top: 120px; align-self: start; }
.industries-intro > p:last-child { max-width: 520px; margin: 2rem 0 0; color: var(--muted); }
.industry-list { border-top: 1px solid var(--line); }
.industry-list a { display: grid; grid-template-columns: 48px minmax(220px, 1fr) minmax(180px, .8fr) 24px; gap: 1rem; align-items: center; min-height: 110px; border-bottom: 1px solid rgba(255,255,255,.25); transition: background .2s ease, padding .2s ease; }
.industry-list a { border-bottom-color: var(--line); }
.industry-list a:hover { padding-inline: 1rem; background: rgba(15,33,56,.055); }
.industry-list span { color: var(--red); font-size: .75rem; }
.industry-list strong { font: 500 clamp(1.15rem, 1.7vw, 1.55rem)/1.2 var(--display); }
.industry-list em { color: var(--muted); font-size: .87rem; font-style: normal; }
.industry-list b { color: var(--red); font-size: 1.2rem; font-weight: 400; }

.service-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5rem; align-items: center; padding: 6rem clamp(1.25rem, 7vw, 7rem); color: white; background: var(--red); }
.service-cta-copy { max-width: 900px; }
.service-cta h2 { font-size: clamp(2.3rem, 4vw, 4.35rem); }
.service-cta p { max-width: 720px; margin: 1.5rem 0 0; color: rgba(255,255,255,.76); font-size: 1.05rem; }
.service-cta .button { white-space: nowrap; }

.proof { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 680px; }
.proof-image { background: url("../img/hero.webp") center/cover no-repeat; }
.proof-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 7vw, 7rem); }
.proof-copy p { margin: 1.25rem 0 0; color: var(--muted); font-size: 1.05rem; }
.proof-copy .vision-line { margin: 2rem 0; color: var(--ink); font-weight: 600; }
.proof-copy .text-link { align-self: flex-start; }

.testimonial { padding: 7rem clamp(1.25rem, 12vw, 13rem); text-align: center; background: var(--paper); }
.stars { color: var(--gold); letter-spacing: .3em; }
.testimonial blockquote { max-width: 980px; margin: 2rem auto; font: 400 clamp(1.6rem, 3vw, 3rem)/1.3 var(--display); letter-spacing: -.025em; }
.testimonial > p { margin: 0; font-weight: 600; }
.testimonial > p span { display: block; color: var(--muted); font-size: .8rem; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }

.final-cta { position: relative; min-height: 720px; display: flex; align-items: center; color: white; overflow: hidden; }
.final-cta-bg { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,21,37,.93), rgba(8,21,37,.4)), url("../img/cta.webp") center/cover no-repeat; transition: transform 8s ease; }
.final-cta:hover .final-cta-bg { transform: scale(1.025); }
.final-cta-content { position: relative; z-index: 1; width: min(820px, 82vw); margin-left: clamp(1.25rem, 7vw, 7rem); }
.final-cta-content > p { max-width: 680px; margin: 2rem 0; color: rgba(255,255,255,.74); font-size: 1.1rem; }

.site-footer { display: grid; grid-template-columns: 1.6fr .7fr .7fr; gap: 4rem; padding: 5rem clamp(1.25rem, 7vw, 7rem) 2rem; color: white; background: #0a1119; }
/* Preserve the original coloured bars; lighten only the wordmark for the dark footer.
   Both layers share the transparent 142 x 96 source, with the split above the text. */
.footer-logo { display: grid; width: 142px; }
.footer-logo img { grid-area: 1 / 1; width: 100%; height: auto; background: transparent; padding: 0; }
.footer-logo-bars { clip-path: inset(0 0 21.875% 0); }
.footer-logo-wordmark { filter: brightness(0) invert(1); clip-path: inset(78.125% 0 0 0); }
.footer-brand p { max-width: 360px; margin-top: 1.5rem; color: rgba(255,255,255,.55); font-size: 1.1rem; }
.footer-column { display: flex; flex-direction: column; gap: .7rem; }
.footer-column h2 { margin: 0 0 1rem; color: rgba(255,255,255,.45); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-column a, .footer-column p { margin: 0; font-size: .9rem; }
.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.43); font-size: .78rem; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .75s ease, transform .75s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@keyframes drift { from { transform: scale(1.02); } to { transform: scale(1.065); } }

@media (max-width: 980px) {
  .site-header { min-height: 74px; }
  .menu-toggle { display: grid; gap: 6px; width: 44px; height: 44px; place-content: center; padding: 0; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span { width: 24px; height: 2px; background: white; transition: transform .25s ease; }
  .site-header.is-scrolled .menu-toggle span { background: var(--ink); }
  .main-nav { position: fixed; inset: 74px 0 auto; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 1rem 1.25rem 1.5rem; background: white; box-shadow: 0 20px 35px rgba(8,19,32,.16); }
  .main-nav.is-open { display: flex; }
  .main-nav a, .site-header .main-nav a { padding: 1rem 0; border-bottom: 1px solid var(--line); color: var(--ink); }
  .main-nav .nav-cta, .site-header .main-nav .nav-cta { margin-top: 1rem; padding: 1rem; border: 0; color: white; text-align: center; }
  .hero-media { grid-template-columns: 100%; }
  .hero-panel-main { grid-column: 1; }
  .hero-panel-growth, .hero-panel-build { display: none; }
  .hero-content { width: min(920px, 100%); padding-right: 1.25rem; }
  .hero-next { display: none; }
  .section-top, .manifesto, .industries { grid-template-columns: 1fr; gap: 2rem; }
  .opportunity-card-feature { grid-column: span 7; }
  .opportunity-grid > .card-copy-blue { grid-column: span 5; }
  .opportunity-grid > .card-copy-paper { grid-column: span 5; }
  .opportunity-grid > .signal-card { grid-column: span 6; }
  .process { grid-template-columns: 1fr; }
  .process-step { padding-bottom: 2.5rem; }
  .process-step + .process-step { padding-left: 0; border-left: 0; }
  .industries-intro { position: static; }
  .service-cta { grid-template-columns: 1fr; gap: 2rem; }
  .service-cta .button { justify-self: start; }
  .proof { grid-template-columns: 1fr; }
  .proof-image { min-height: 520px; }
}

@media (max-width: 680px) {
  .brand, .brand img { width: 76px; }
  .hero h1 { font-size: clamp(3rem, 14vw, 4.4rem); }
  .hero-copy { font-size: 1rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
  .opportunities { padding-block: 5.5rem; }
  .opportunity-grid { display: block; }
  .opportunity-card { min-height: 360px; }
  .opportunity-card-feature { display: grid; grid-template-columns: 1fr; grid-template-rows: 46% 54%; }
  .opportunity-grid > .card-copy { min-height: 350px; }
  .manifesto { padding-block: 5.5rem 3.5rem; }
  .process { padding-bottom: 5.5rem; }
  .industries { padding-block: 5.5rem; }
  .industry-list a { grid-template-columns: 36px 1fr 20px; min-height: 100px; }
  .industry-list em { display: none; }
  .service-cta { padding-block: 4.5rem; }
  .proof-image { min-height: 400px; }
  .testimonial { padding-block: 5rem; }
  .final-cta { min-height: 620px; }
  .site-footer { grid-template-columns: 1fr 1fr; gap: 3rem 2rem; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: .3rem; }
}

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

/* MKTGSpace brand and revised page hierarchy. */
.site-header { background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); }
.brand img { filter:none; width:auto; height:58px; }
.main-nav a { color:var(--ink); }
.main-nav .nav-cta { color:white; }
.menu-toggle span { background:var(--ink); }
.hero-media { display:block; }
.hero-panel-main { position:absolute; inset:0; background-position:center; }
.hero-shade { background:linear-gradient(0deg,rgba(7,19,33,.9) 0%,rgba(7,19,33,.45) 43%,rgba(7,19,33,.08) 100%); }
.hero-shade::after { display:none; }
.hero-content { justify-content:flex-end; width:100%; padding:11rem clamp(1.25rem,7vw,7rem) 5rem; }
.hero h1 { max-width:950px; font-size:clamp(2.75rem,5.2vw,5.3rem); font-weight:700; line-height:1.08; letter-spacing:-.035em; }
.hero-copy { max-width:780px; }
.hero-next { display:none; }
h2 { line-height:1.13!important; letter-spacing:-.025em!important; }
.section-top,.manifesto { display:block; }
.section-top { margin-bottom:2.5rem; }
.section-top h2 { max-width:960px; font-size:clamp(2rem,3.6vw,3.5rem); }
.section-top>p { margin-top:1.25rem; max-width:780px; }
.manifesto-heading { max-width:1000px; }
.manifesto h2 { font-size:clamp(2rem,3.6vw,3.5rem); }
.manifesto-copy { max-width:1040px; padding-top:1.5rem; }
.manifesto-copy p { font-size:1.15rem; line-height:1.75; }
.process-step h3 { margin:0 0 1.5rem; font-size:clamp(1.5rem,2.2vw,2rem); line-height:1.2; font-weight:700; }
.process-step ul { padding-left:1.1rem; margin:0; color:var(--muted); }
.process-step li { padding-left:.25rem; margin-bottom:.85rem; line-height:1.6; }
.process-step li::marker { color:var(--red); }
:focus-visible { outline:3px solid #ca9d38; outline-offset:5px; }
[hidden] { display:none!important; }
.signal-story { display:flex; flex-direction:column; align-items:flex-start; height:100%; }
.signal-tag { display:inline-flex; padding:.3rem .6rem; margin-bottom:.7rem; font:600 .75rem/1.2 var(--sans); border-radius:2px; }
.signal-tag-opportunity { background:#d8f2e1; color:#175b35; }
.signal-tag-threat { background:#fce0e1; color:#932c38; }
.signal-tag-watch { background:#f3e8c6; color:#5b4410; }
.revenue-cta { color:var(--red); margin-top:.6rem; }
.signal-meta { color:#b9c9d7; font-size:.8rem; line-height:1.5; font-family:var(--sans); }
.signal-story h3 { font:700 1.25rem/1.3 var(--display); margin:.7rem 0 1rem; letter-spacing:-.01em; }
.signal-read { font:500 .85rem var(--sans); border-bottom:1px solid #8a9eaf; padding-bottom:.2rem; margin-top:auto; }
.signal-story:hover h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.signal-featured { display:grid; grid-template-columns:1fr 1.1fr; gap:2.5rem; align-items:start; }
.signal-lead { background:linear-gradient(0deg,rgba(7,19,33,.96),rgba(7,19,33,.1)),var(--signal-image) center/cover; min-height:590px; display:flex; align-items:flex-end; padding:2.5rem; position:sticky; top:100px; }
.signal-lead .signal-story { height:auto; }
.signal-lead h3 { font-size:clamp(1.8rem,2.5vw,2.65rem); }
.signal-list { display:grid; grid-template-columns:1fr 1fr; gap:0 1.8rem; }
.signal-list .signal-story { border-top:1px solid #425369; padding:1.2rem 0; }
.signal-list h3 { font-size:1.15rem; }

/* Existing MKTGSpace industry tiles: three across, then two wider cards. */
.industry-section { background:var(--paper); padding:6rem clamp(1.25rem,7vw,7rem); }
.industry-section .sec-h { font:700 clamp(2rem,3.6vw,3.5rem)/1.13 var(--display); margin:0; }
.industry-section .lead { color:var(--muted); font:400 1.05rem/1.65 var(--sans); }
.industry-section .tiles { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:20px; margin-top:48px; }
.industry-section .tile { position:relative; min-height:400px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; padding:28px; color:white; background:#26303a; isolation:isolate; grid-column:span 2; transition:transform .28s ease,box-shadow .28s ease; }
.industry-section .tile:nth-child(n+4) { grid-column:span 3; min-height:340px; }
.industry-section .tile::before { content:""; position:absolute; inset:0; z-index:-2; background:var(--img) center/cover no-repeat; transition:transform .55s ease; }
.industry-section .tile::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(8,10,14,.28),rgba(8,10,14,.5) 42%,rgba(8,10,14,.92)); }
.industry-section .tile:hover,.industry-section .tile:focus-visible { transform:translateY(-3px); box-shadow:0 14px 34px #08101e30; }
.industry-section .tile:hover::before,.industry-section .tile:focus-visible::before { transform:scale(1.055); }
.industry-section .tname { font:700 1.6rem/1.2 var(--display); }
.industry-section .tfor { font-size:.875rem; line-height:1.5; margin-top:.65rem; color:#e2e7ec; }
.industry-section .tblurb { margin-top:18px; padding-top:13px; border-top:1px solid #ffffff50; }
.industry-section .tdesc { font-size:1rem; line-height:1.5; }
.industry-section .tfoot { margin-top:20px; display:flex; justify-content:space-between; gap:10px 14px; flex-wrap:wrap; font-size:.875rem; }
.industry-section .explore { border-bottom:1px solid #ffffff88; }
.industry-section .plink { color:#d5dee5; }
.service-cta h2,.final-cta h2 { font-weight:700; font-size:clamp(2rem,3.6vw,3.5rem); }
@media(max-width:1050px) {
 .signal-featured { grid-template-columns:1fr 1fr; }
 .signal-list { grid-template-columns:1fr; }
 .industry-section .tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .industry-section .tile,.industry-section .tile:nth-child(n+4) { grid-column:auto; min-height:400px; }
 .industry-section .tile:last-child { grid-column:1/-1; }
}
@media(max-width:680px) {
 .brand img { height:48px; }
 .hero-content { padding-bottom:3.5rem; }
 .hero h1 { font-size:clamp(2.5rem,10vw,3.5rem); }
 .signal-featured { grid-template-columns:1fr; }
 .signal-lead { position:static; min-height:420px; padding:1.5rem; }
 .signal-list { grid-template-columns:1fr; }
 .industry-section .tiles { grid-template-columns:1fr; }
 .industry-section .tile:last-child { grid-column:auto; }
 .process-step h3 { margin-top:0; }
}

/* Primary navigation dropdowns: Services and Industries. */
.nav-item { position: relative; display: flex; align-items: center; gap: .3rem; }
.nav-caret { display: inline-grid; place-content: center; width: 24px; height: 24px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.nav-caret span { display: block; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
.nav-item.is-open .nav-caret span { transform: translateY(2px) rotate(225deg); }
.dropdown {
  position: absolute; top: 100%; left: -1.25rem; z-index: 20;
  min-width: 280px; margin: .9rem 0 0; padding: .5rem 0; list-style: none;
  background: var(--white); color: var(--ink);
  border-top: 3px solid var(--red); box-shadow: 0 20px 40px rgba(8,19,32,.18);
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.dropdown::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 1rem; }
.nav-item:hover .dropdown, .nav-item.is-open .dropdown { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.main-nav .dropdown a, .site-header.is-scrolled .main-nav .dropdown a { display: block; padding: .8rem 1.25rem; color: var(--ink); font-size: .9rem; line-height: 1.35; }
.main-nav .dropdown a:hover, .main-nav .dropdown a:focus-visible { background: var(--paper); opacity: 1; }
.main-nav .dropdown a[aria-current="page"] { font-weight: 600; text-decoration: none; box-shadow: inset 3px 0 0 var(--red); }

@media (max-width: 980px) {
  .nav-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0; border-bottom: 1px solid var(--line); }
  .nav-item > a, .site-header .main-nav .nav-item > a { border-bottom: 0; }
  .nav-caret { width: 44px; height: 44px; justify-self: end; }
  .nav-caret span { width: 9px; height: 9px; }
  .dropdown { grid-column: 1 / -1; position: static; display: none; min-width: 0; margin: 0; padding: 0 0 .75rem; border-top: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; transition: none; }
  .dropdown::before { display: none; }
  .nav-item.is-open .dropdown { display: block; }
  .main-nav .dropdown a, .site-header .main-nav .dropdown a { padding: .7rem 0 .7rem 1rem; border-bottom: 0; }
  .main-nav .dropdown a[aria-current="page"] { box-shadow: none; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 6px; }
}

/* Four industry tiles: two by two on desktop. */
.industry-section .tiles-4 .tile, .industry-section .tiles-4 .tile:nth-child(n+4) { grid-column: span 3; min-height: 360px; }
@media (max-width: 980px) { .industry-section .tiles-4 .tile, .industry-section .tiles-4 .tile:nth-child(n+4) { grid-column: auto; min-height: 400px; } }
