/*
Theme Name: TPI Kinetic Corridors
Author: Power International Export
Description: Source-led multimodal logistics concept theme.
Version: 2.2.0
Text Domain: tpi-premium
*/

:root {
  --ink: #071524;
  --ink-soft: #4e6072;
  --paper: #f4f7fb;
  --paper-strong: #ffffff;
  --paper-blue: #eaf1f9;
  --navy: #04182d;
  --navy-2: #08223e;
  --blue: #0b57e6;
  --blue-bright: #2c7eff;
  --blue-on-navy: #8fb8ff;
  --button-primary-bg: var(--blue);
  --signal: #ff5a1f;
  --green: #44d09b;
  --line: #cad5e0;
  --line-strong: #9fb0c0;
  --control-border: #7a8b9b;
  --focus: #e65f22;
  --shadow: 0 24px 64px rgba(3, 20, 38, 0.12);
  --shell: 1384px;
  --header: 82px;
  color-scheme: light;
}

html[data-theme="dark"] {
  --ink: #f2f7fc;
  --ink-soft: #aebfd0;
  --paper: #061522;
  --paper-strong: #0a1d2e;
  --paper-blue: #0d2235;
  --navy: #020d18;
  --navy-2: #071b2f;
  --blue: #3d84ff;
  --blue-bright: #69a1ff;
  --button-primary-bg: #2e72e1;
  --line: #2c4458;
  --line-strong: #526b7e;
  --control-border: var(--line-strong);
  --shadow: 0 28px 72px rgba(0, 0, 0, 0.36);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
h1, h2, h3, p, figure, dl, dd { margin-top: 0; }
h1, h2, h3 {
  margin-bottom: 0;
  font-family: "Archivo Narrow", Impact, sans-serif;
  font-weight: 700;
  line-height: .9;
  letter-spacing: -.035em;
  text-transform: uppercase;
}
h1 { font-size: clamp(4.8rem, 8.7vw, 8rem); }
h2 { font-size: clamp(3.2rem, 5.6vw, 5.7rem); }
h3 { font-size: 1.45rem; line-height: 1; }
p { color: var(--ink-soft); }
.shell { width: min(var(--shell), calc(100% - 56px)); margin-inline: auto; }
.site-main { min-height: 60vh; }
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.skip-link {
  position: fixed; z-index: 1000;
  left: 16px; top: -80px;
  padding: 12px 18px;
  background: var(--signal); color: #fff;
}
.skip-link:focus { top: 16px; }
.eyebrow {
  margin: 0 0 22px;
  color: var(--blue);
  font-family: "IBM Plex Mono", monospace;
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .13em;
  line-height: 1.35;
  text-transform: uppercase;
}
.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border: 1px solid transparent;
  padding: 0 22px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: color .2s, background .2s, border-color .2s, transform .2s;
}
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--button-primary-bg); color: #fff; }
.button--primary:hover { background: #0647bd; }
.button--ghost { border-color: var(--control-border); background: rgba(255,255,255,.45); color: var(--ink); }
html[data-theme="dark"] .button--ghost { background: rgba(4,24,45,.52); }
.button--text { min-height: auto; padding: 0; color: var(--blue); }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: var(--blue);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.text-link--light { color: #8fb8ff; }
.icon-button {
  width: 46px; height: 46px;
  display: grid; place-items: center;
  padding: 0;
  border: 1px solid var(--control-border);
  background: transparent;
  cursor: pointer;
}
.theme-image__dark { display: none; }
html[data-theme="dark"] .theme-image__light { display: none; }
html[data-theme="dark"] .theme-image__dark { display: block; }
.theme-picture, .theme-picture img { width: 100%; height: 100%; }
.theme-picture img { object-fit: cover; }
.concept-notice {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 8px 10px;
  background: var(--paper-strong);
  color: var(--ink-soft);
  border: 1px solid var(--line);
  font-size: .65rem;
  line-height: 1.3;
}
.concept-notice .dashicons { color: var(--signal); }

/* Header */
.site-header {
  position: relative;
  z-index: 60;
  height: var(--header);
  border-bottom: 1px solid var(--line);
  background: rgba(244,247,251,.96);
  backdrop-filter: blur(14px);
}
html[data-theme="dark"] .site-header { background: rgba(3,15,27,.96); }
.site-header__inner {
  height: 100%;
  display: grid;
  grid-template-columns: 90px minmax(0,1fr) auto;
  align-items: center;
  gap: 24px;
}
.brand { width: 74px; display: block; }
.brand img { width: 74px; height: auto; }
.primary-navigation {
  display: flex;
  justify-content: center;
  align-items: stretch;
  height: 100%;
}
.primary-navigation > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 16px;
  color: var(--ink);
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.primary-navigation > a::after {
  content: "";
  position: absolute;
  left: 16px; right: 16px; bottom: -1px;
  height: 2px;
  background: var(--blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s;
}
.primary-navigation > a:hover::after,
.primary-navigation > a:focus-visible::after { transform: scaleX(1); }
.primary-navigation__track {
  border-left: 1px solid var(--line);
  border-right: 1px solid var(--line);
}
.primary-navigation__track small {
  color: var(--signal);
  font-size: .53rem;
}
.site-header__actions { display: flex; align-items: center; gap: 8px; }
.site-header__actions .button { min-height: 44px; padding-inline: 16px; }
.site-header__actions .theme-toggle { width: 44px; height: 44px; }
.menu-toggle { display: none; }

/* Hero */
.kinetic-hero {
  position: relative;
  min-height: 690px;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: var(--paper-strong);
}
.kinetic-hero__media { position: absolute; inset: 0; }
.kinetic-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.kinetic-hero::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, var(--paper-strong) 0 25%, rgba(255,255,255,.95) 32%, rgba(255,255,255,.42) 48%, rgba(255,255,255,.08) 64%, transparent 78%),
    linear-gradient(180deg, transparent 62%, rgba(4,24,45,.18));
  pointer-events: none;
}
html[data-theme="dark"] .kinetic-hero::after {
  background:
    linear-gradient(90deg, #04182d 0 26%, rgba(4,24,45,.96) 34%, rgba(4,24,45,.54) 54%, rgba(4,24,45,.12) 72%),
    linear-gradient(180deg, transparent 58%, rgba(1,9,17,.52));
}
.kinetic-hero__content {
  position: relative;
  z-index: 2;
  padding-top: 84px;
  padding-bottom: 56px;
}
.kinetic-hero__content h1 { width: 62%; max-width: 820px; font-size: clamp(5rem, 7vw, 6.2rem); letter-spacing: -0.017em; line-height: 0.91; overflow-wrap: anywhere; }
.kinetic-hero__content h1 span { display: block; white-space: nowrap; }
.kinetic-hero__content > p:not(.eyebrow) {
  width: min(470px, 40%);
  margin: 26px 0 0;
  color: var(--ink);
  font-size: .96rem;
}
.kinetic-hero__proofs {
  display: flex;
  flex-wrap: wrap;
  max-width: min(470px, 40%);
  gap: 12px 20px;
  margin-top: 42px;
}
.kinetic-hero__proofs .dashicons {
  color: var(--blue);
}
.kinetic-hero__proofs > span {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--ink);
  font-size: .67rem;
  font-weight: 700;
  text-transform: uppercase;
}
.kinetic-hero__notice {
  position: absolute; z-index: 3;
  right: 20px; bottom: 18px;
  width: min(390px, calc(100% - 40px));
}

/* Modes rail */
.modes-rail { background: var(--navy); color: #eef5fc; border-bottom: 1px solid #29425a; }
.modes-rail__inner {
  min-height: 122px;
  display: grid;
  grid-template-columns: repeat(5, 1fr) 1.15fr;
}
.modes-rail article,
.modes-rail__inner > a {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px 18px;
  border-right: 1px solid #29425a;
}
.modes-rail article > .dashicons { width: 28px; height: 28px; color: var(--blue-bright); font-size: 28px; }
.modes-rail article:nth-child(2) > .dashicons { color: var(--signal); }
.modes-rail article:nth-child(3) > .dashicons { color: var(--green); }
.modes-rail article:nth-child(4) > .dashicons { color: #ffbc4a; }
.modes-rail small, .modes-rail strong, .modes-rail article span { display: block; }
.modes-rail small { margin-bottom: 6px; color: #7791aa; font: 600 .58rem "IBM Plex Mono", monospace; text-transform: uppercase; }
.modes-rail strong { color: #fff; font: 700 1.1rem "Archivo Narrow", sans-serif; letter-spacing: .01em; text-transform: uppercase; }
.modes-rail article span:not(.dashicons) { margin-top: 2px; color: #9eb0c1; font-size: .64rem; }
.modes-rail__inner > a { justify-content: space-between; color: #fff; font-size: .69rem; font-weight: 700; text-transform: uppercase; }

/* Shared sections */
.kinetic-section { padding: 118px 0; border-bottom: 1px solid var(--line); }
.section-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(270px, .7fr);
  gap: 80px;
  align-items: end;
  margin-bottom: 68px;
}
.section-lead--wide { grid-template-columns: minmax(0, 1.65fr) minmax(300px, .6fr); }
.section-lead h2 { max-width: 910px; }
.section-lead > p { max-width: 470px; margin: 0; }
.journey { background: var(--paper); }
.journey__rail {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.journey__rail li {
  position: relative;
  min-height: 250px;
  padding: 24px 22px 22px;
  border-right: 1px solid var(--line);
}
.journey__rail li:last-child { border-right: 0; }
.journey__number {
  display: block;
  margin-bottom: 42px;
  color: var(--blue);
  font: 600 .65rem "IBM Plex Mono", monospace;
}
.journey__rail li > .dashicons:not(.journey__arrow) {
  width: 32px; height: 32px;
  margin-bottom: 28px;
  color: var(--blue);
  font-size: 32px;
}
.journey__rail h3 { margin-bottom: 12px; font-size: 1.35rem; }
.journey__rail p { margin: 0; font-size: .7rem; line-height: 1.45; }
.journey__arrow {
  position: absolute;
  right: -10px; top: 106px;
  z-index: 1;
  color: var(--blue);
  background: var(--paper);
}

.film-split {
  display: grid;
  grid-template-columns: 35% 65%;
  padding: 0;
  min-height: 680px;
}
.film-split__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px max(42px, calc((100vw - var(--shell)) / 2));
  background: var(--navy);
}
.film-split__copy h2, .film-split__copy p { color: #f2f7fc; }
.film-split__copy p:not(.eyebrow) { max-width: 390px; color: #aebfd0; }
.film-split__copy .text-link { margin-top: 25px; color: #8fb8ff; }
.film-split__media { position: relative; margin: 0; overflow: hidden; background: #071424; }
.film-split__media video,
.film-split__media .theme-picture { width: 100%; height: 100%; object-fit: cover; }
.film-split__media figcaption {
  position: absolute;
  left: 16px; bottom: 16px;
  max-width: 390px;
  padding: 9px 11px;
  background: rgba(4,24,45,.9);
  color: #d6e0ea;
  font-size: .65rem;
}
.film-split__media .concept-notice { position: absolute; left: 16px; bottom: 16px; max-width: 430px; }

.capability-index__layout {
  display: grid;
  grid-template-columns: 32% 68%;
  border-top: 1px solid var(--line);
}
.capability-index__intro { padding: 42px 58px 40px 0; }
.capability-index__intro h2 { font-size: clamp(3.5rem, 5.3vw, 5.2rem); }
.capability-index__intro > p:not(.eyebrow) { margin-top: 28px; }
.capability-index__intro .text-link { margin-top: 26px; }
.capability-index__grid { display: grid; grid-template-columns: repeat(2,1fr); }
.capability-index__grid article {
  position: relative;
  min-height: 260px;
  padding: 26px 70px 28px 30px;
  border-left: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.capability-index__grid article > .dashicons:not(.capability-index__go) {
  width: 30px; height: 30px;
  margin: 30px 0;
  color: var(--blue);
  font-size: 30px;
}
.capability-index__number {
  display: block;
  color: var(--blue);
  font: 600 .62rem "IBM Plex Mono", monospace;
}
.capability-index__grid h3 { margin-bottom: 12px; }
.capability-index__grid p { max-width: 330px; margin: 0; font-size: .72rem; }
.capability-index__go { position: absolute; right: 25px; bottom: 25px; color: var(--blue); }

.corridor-focus {
  display: grid;
  grid-template-columns: 41% 59%;
  padding: 0;
  min-height: 670px;
  background: var(--navy);
}
.corridor-focus__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px max(50px, calc((100vw - var(--shell)) / 2));
}
.corridor-focus__copy h2 { color: #fff; }
.corridor-focus__copy .eyebrow,
.quote-section__layout > aside .eyebrow { color: var(--blue-on-navy); }
.corridor-focus__copy p:not(.eyebrow) { max-width: 470px; margin-top: 28px; color: #aebfd0; }
.corridor-focus__copy dl { margin: 30px 0; border-top: 1px solid #35506a; }
.corridor-focus__copy dl div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid #35506a; }
.corridor-focus__copy dt { color: #7891a8; font: 600 .61rem "IBM Plex Mono", monospace; text-transform: uppercase; }
.corridor-focus__copy dd { color: #fff; font-size: .67rem; }
.corridor-focus > figure { position: relative; margin: 0; overflow: hidden; }
.corridor-focus > figure .concept-notice { position: absolute; right: 16px; bottom: 16px; max-width: 410px; }

.compliance { background: var(--paper-strong); }
.compliance__layout { display: grid; grid-template-columns: 28% 72%; gap: 0; }
.compliance__layout > div:first-child { padding-right: 55px; }
.compliance__layout h2 { font-size: clamp(3.3rem, 4.8vw, 4.8rem); }
.compliance__ledger { display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid var(--line); }
.compliance__ledger article { min-height: 270px; padding: 25px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.compliance__ledger article:last-child { border-right: 0; }
.compliance__ledger span { color: var(--blue); font: 600 .62rem "IBM Plex Mono", monospace; }
.compliance__ledger h3 { margin: 58px 0 16px; font-size: 1.25rem; }
.compliance__ledger p { margin: 0; font-size: .68rem; line-height: 1.5; }

.sustainability { background: var(--paper-blue); }
.sustainability__layout { display: grid; grid-template-columns: 26% 34% 40%; padding: 0; width: min(var(--shell), calc(100% - 56px)); }
.sustainability__intro { padding: 30px 46px 30px 0; }
.sustainability__intro h2 { font-size: clamp(3.1rem, 4.4vw, 4.4rem); }
.sustainability__items { border-top: 1px solid var(--line); }
.sustainability__items article { min-height: 150px; padding: 22px 26px; border-bottom: 1px solid var(--line); }
.sustainability__items article span { color: var(--blue); font: 600 .61rem "IBM Plex Mono", monospace; }
.sustainability__items h3 { margin: 18px 0 8px; font-size: 1.23rem; }
.sustainability__items p { margin: 0; font-size: .68rem; }
.sustainability figure { position: relative; min-height: 540px; margin: 0; }
.sustainability figure .concept-notice { position: absolute; right: 14px; bottom: 14px; max-width: 360px; }

.faq__layout { display: grid; grid-template-columns: minmax(0, 30%) minmax(0, 1fr); gap: 70px; }
.faq__layout > div:first-child h2 { font-size: clamp(3.4rem, 5vw, 5rem); }
.faq__columns { display: grid; grid-template-columns: repeat(2,1fr); gap: 32px; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  cursor: pointer;
  font-size: .74rem;
  font-weight: 700;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq details[open] summary .dashicons { transform: rotate(45deg); }
.faq details p { padding: 0 34px 20px 0; font-size: .72rem; }
.faq summary .dashicons { transition: transform .2s; color: var(--blue); }

.quote-section { background: var(--navy); color: #eef5fc; }
.quote-section__layout {
  display: grid;
  grid-template-columns: 32% 68%;
  border: 1px solid #35506a;
}
.quote-section__layout > aside { padding: 54px 46px; border-right: 1px solid #35506a; }
.quote-section__layout > aside h2 { color: #fff; }
.quote-section__layout > aside p:not(.eyebrow) { color: #aebfd0; }
.quote-section__layout > aside ul { list-style: none; margin: 32px 0 0; padding: 0; }
.quote-section__layout > aside li { display: flex; gap: 8px; padding: 10px 0; color: #d6e1ec; border-bottom: 1px solid #29425a; font-size: .7rem; }
.quote-section__layout > aside .dashicons { color: var(--green); }
.quote-section__form { padding: 54px; background: #fff; color: #071524; }
.quote-section__form h2 { color: #071524; font-size: clamp(3.1rem, 4.7vw, 4.7rem); }
.quote-section--page { padding-top: 100px; }
html[data-theme="dark"] .quote-section__form { background: #0b1d2e; color: #f2f7fc; }
html[data-theme="dark"] .quote-section__form h2 { color: #f2f7fc; }

.kinetic-form { margin-top: 36px; }
.form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px 14px; }
.form-grid label { display: grid; align-content: start; gap: 8px; }
.form-grid label > span {
  color: inherit;
  font: 600 .61rem "IBM Plex Mono", monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.form-grid b { color: var(--signal); }
.form-grid input, .form-grid select, .form-grid textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid #c4ced7;
  border-radius: 0;
  padding: 11px 13px;
  background: transparent;
  color: inherit;
}
html[data-theme="dark"] .form-grid input,
html[data-theme="dark"] .form-grid select,
html[data-theme="dark"] .form-grid textarea { border-color: #3a536a; }
.form-grid textarea { resize: vertical; }
.form-grid__wide { grid-column: 1 / -1; }
.upload-field small { color: #687a8a; font-size: .62rem; }
.checkbox-field { display: flex !important; grid-template-columns: 18px 1fr; align-items: start; }
.checkbox-field input { width: 18px; min-height: 18px; margin: 2px 0 0; }
.checkbox-field > span { font-family: Inter, sans-serif !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
.kinetic-form > .button { width: 100%; margin-top: 22px; }
.form-footnote { margin: 12px 0 0; font-size: .63rem; }
.form-status { min-height: 24px; color: var(--blue); font-size: .72rem; }
.kinetic-form[data-state="success"] .form-status { padding: 9px 11px; border-left: 3px solid #1faf78; background: #e7f7f1; color: #0b6a4a; }

/* Page heroes and route signatures */
.kinetic-page-hero { padding: 72px 0 0; background: var(--paper-strong); border-bottom: 1px solid var(--line); }
.kinetic-page-hero__grid {
  display: grid;
  grid-template-columns: 42% 58%;
  min-height: 610px;
}
.kinetic-page-hero__grid > div:first-child { padding: 58px 64px 70px 0; align-self: center; }
.kinetic-page-hero h1 { font-size: clamp(4.8rem, 7.2vw, 7rem); }
.kinetic-page-hero__grid > div:first-child > p:not(.eyebrow) { max-width: 530px; margin-top: 28px; }
.kinetic-page-hero figure { position: relative; min-width: 0; margin: 0; }
.kinetic-page-hero figure .concept-notice { position: absolute; right: 14px; bottom: 14px; max-width: 400px; }
.kinetic-page-hero--corridors .theme-picture img { object-position: 64% center; }
.kinetic-page-hero--case { background: var(--navy); color: #fff; }
.kinetic-page-hero--case h1 { color: #fff; }
.kinetic-page-hero--case p { color: #aebfd0; }
.case-meta { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 34px; border-top: 1px solid #35506a; border-bottom: 1px solid #35506a; }
.case-meta div { padding: 13px 10px 13px 0; border-right: 1px solid #35506a; }
.case-meta div:last-child { border: 0; padding-left: 10px; }
.case-meta dt { color: #7891a8; font: 600 .57rem "IBM Plex Mono", monospace; text-transform: uppercase; }
.case-meta dd { margin-top: 5px; color: #fff; font-size: .65rem; }
.kinetic-checks { list-style: none; margin: 32px 0 0; padding: 0; }
.kinetic-checks li { padding: 9px 0; border-top: 1px solid var(--line); font-size: .72rem; font-weight: 600; }
.kinetic-checks li { display: flex; align-items: center; gap: 12px; }

.corridor-selector { background: var(--paper-blue); }
.corridor-selector__grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }
.corridor-selector__grid article { min-height: 245px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.corridor-selector__grid article:last-child { border-right: 0; }
.corridor-selector__grid span { color: var(--blue); font: 600 .63rem "IBM Plex Mono", monospace; }
.corridor-selector__grid h3 { margin: 70px 0 12px; font-size: 1.7rem; }
.corridor-selector__grid p { margin: 0 0 28px; font-size: .72rem; }
.corridor-selector__grid small { color: var(--signal); font: 600 .57rem "IBM Plex Mono", monospace; text-transform: uppercase; }

.case-story__layout { display: grid; grid-template-columns: 36% 64%; min-height: 580px; }
.case-story__layout > div { align-self: center; padding-right: 72px; }
.case-story__layout > div > p:not(.eyebrow) { margin: 28px 0; }
.case-story__layout figure { position: relative; margin: 0; }
.case-story__layout figure .concept-notice { position: absolute; right: 14px; bottom: 14px; max-width: 400px; }
.route-cta { background: var(--blue); color: #fff; }
.route-cta .shell { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.route-cta h2 { max-width: 880px; color: #fff; }
.route-cta .eyebrow { color: #c8dcff; }
.route-cta .button { background: #fff; color: #071524; }

.expertise-kinetic { background: var(--paper-blue); }
.expertise-kinetic__grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }
.expertise-kinetic__grid article { min-height: 265px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.expertise-kinetic__grid article:last-child { border-right: 0; }
.expertise-kinetic__grid span { color: var(--blue); font: 600 .63rem "IBM Plex Mono", monospace; }
.expertise-kinetic__grid h3 { margin: 72px 0 16px; }
.expertise-kinetic__grid p { margin: 0; font-size: .7rem; }
.contact-card { display: grid; margin: 28px 0; border-top: 1px solid currentColor; opacity: .92; }
.contact-card > strong { padding: 13px 0; color: inherit; text-transform: uppercase; }
.contact-card > span { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-top: 1px solid rgba(140,165,187,.35); font-size: .68rem; }
.contact-card > span strong { color: var(--signal); font-size: .61rem; text-transform: uppercase; }

/* Trust and footer */
.trust-strip { background: #e8eef5; border-top: 1px solid #c5d0db; border-bottom: 1px solid #c5d0db; }
html[data-theme="dark"] .trust-strip { background: #071a2a; border-color: #29425a; }
.trust-strip .shell { min-height: 90px; display: grid; grid-template-columns: repeat(5,1fr); }
.trust-strip .shell > span {
  display: flex; align-items: center; gap: 10px;
  padding: 20px;
  border-right: 1px solid var(--line);
  font-size: .66rem;
  font-weight: 700;
  text-transform: uppercase;
}
.trust-strip .shell > span:last-child { border-right: 0; }
.trust-strip .dashicons { color: var(--blue); }
.site-footer { background: var(--navy); color: #eef5fc; }
.site-footer__top {
  display: grid;
  grid-template-columns: 1.7fr repeat(5,1fr);
  gap: 34px;
  padding-top: 70px;
  padding-bottom: 70px;
}
.footer-brand { padding-right: 30px; }
.footer-brand img { width: 82px; padding: 6px; background: #fff; }
.footer-brand p { max-width: 320px; margin: 22px 0 16px; color: #aebfd0; font-size: .72rem; }
.footer-brand small { color: #71899f; font-size: .61rem; }
.site-footer__top > div:not(.footer-brand):not(.elementor-element-overlay):not(.elementor-shape):not(.ui-resizable-handle):not(.ui-wrapper) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.site-footer .eyebrow { margin-bottom: 14px; color: #7692ac; }
.site-footer a, .site-footer span { color: #b8c7d5; font-size: .67rem; }
.site-footer a:hover { color: #fff; }
.site-footer__bottom {
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #29425a;
}

/* Generic WordPress entries */
.standard-entry, .project-dossier__hero .shell { padding-top: 100px; padding-bottom: 100px; }
.standard-entry h1, .project-dossier__hero h1 { max-width: 1000px; }
.prose { max-width: 760px; }
.project-dossier__image { position: relative; height: 680px; margin: 0; }
.project-dossier__image img { width: 100%; height: 100%; object-fit: cover; }
.project-dossier__image .concept-notice { position: absolute; right: 20px; bottom: 20px; }
.project-next { background: var(--blue); color: #fff; }
.project-next .shell { padding-top: 90px; padding-bottom: 90px; }
.project-next h2 { color: #fff; }

/* Reserve room for translated navigation and the language switcher before
   changing to the existing mobile menu at 960px. */
@media (min-width: 961px) {
  .primary-navigation a { white-space: nowrap; }
}
@media (max-width: 1480px) {
  .site-header__actions .button--ghost { display: none; }
}

@media (max-width: 1180px) {
  :root { --shell: 1080px; }
  .primary-navigation > a { padding-inline: 9px; font-size: .875rem; }
  .site-header__actions .button { display: none; }
  .kinetic-hero__content h1 { width: 64%; }
  .modes-rail__inner { grid-template-columns: repeat(5,1fr); }
  .modes-rail__inner > a { grid-column: 1 / -1; min-height: 60px; }
  .journey__rail { grid-template-columns: repeat(3,1fr); }
  .journey__rail li:nth-child(3) { border-right: 0; }
  .compliance__layout { grid-template-columns: 1fr; gap: 45px; }
  .sustainability__layout { grid-template-columns: 35% 65%; }
  .sustainability figure { grid-column: 1 / -1; min-height: 440px; }
  .site-footer__top { grid-template-columns: 1.5fr repeat(3,1fr); }
  .site-footer__top > :nth-last-child(-n + 2 of div:not(.elementor-element-overlay):not(.elementor-shape):not(.ui-resizable-handle):not(.ui-wrapper)) { margin-top: 26px; }
}

@media (max-width: 960px) {
  :root { --header: 70px; }
  .site-header__inner { grid-template-columns: 70px 1fr auto; gap: 12px; }
  .menu-toggle { width: 44px; height: 44px; display: grid; justify-self: end; grid-column: 2; }
  .primary-navigation {
    position: fixed;
    inset: var(--header) 0 auto;
    height: calc(100vh - var(--header));
    display: none;
    flex-direction: column;
    justify-content: flex-start;
    padding: 24px 16px;
    overflow-y: auto;
    background: var(--paper-strong);
    border-top: 1px solid var(--line);
  }
  .primary-navigation.is-open { display: flex; }
  .primary-navigation > a,
  .primary-navigation .tpi-wordpress-menu ul.menu > li > a {
    width: 100%;
    min-height: 56px;
    padding: 0 12px;
    border-bottom: 1px solid var(--line);
    font-size: 1.125rem;
  }
  .primary-navigation > a::after { display: none; }
  .primary-navigation__track { border-left: 0; border-right: 0; }
  .site-header__actions .button { display: none; }
  .site-header__actions .theme-toggle { display: grid; }
}

@media (max-width: 860px) {
  .shell { width: min(100% - 32px, 760px); }
  h2 { line-height: .94; }
  .kinetic-hero { min-height: auto; padding-bottom: 0; }
  .kinetic-hero__media { position: relative; inset: auto; height: 330px; margin-top: 0; }
  .kinetic-hero::after { display: none; }
  .kinetic-hero__content { padding-top: 48px; padding-bottom: 32px; }
  .kinetic-hero__content h1 { width: 100%; max-width: 680px; }
  .kinetic-hero__content > p:not(.eyebrow) { width: min(100%,550px); }
  .kinetic-hero__proofs { max-width: 100%; flex-wrap: wrap; gap: 16px 24px; margin-top: 20px; }
  .kinetic-hero__content .button-row { margin-top: 18px; }
  .kinetic-hero__notice {
    position: relative;
    inset: auto;
    width: calc(100% - 32px);
    margin: 0 16px 16px;
  }
  .modes-rail__inner { grid-template-columns: repeat(2,1fr); }
  .modes-rail article:nth-child(even) { border-right: 0; }
  .modes-rail article:last-of-type { grid-column: 1 / -1; }
  .kinetic-section { padding: 82px 0; }
  .section-lead, .section-lead--wide { grid-template-columns: 1fr; gap: 24px; margin-bottom: 46px; }
  .journey__rail { grid-template-columns: repeat(2,1fr); }
  .journey__rail li:nth-child(3) { border-right: 1px solid var(--line); }
  .journey__rail li:nth-child(even) { border-right: 0; }
  .film-split { grid-template-columns: 1fr; min-height: 0; }
  .film-split__copy { padding: 76px 24px; }
  .film-split__media { min-height: 480px; }
  .capability-index__layout { grid-template-columns: 1fr; }
  .capability-index__intro { padding-right: 0; }
  .corridor-focus { grid-template-columns: 1fr; }
  .corridor-focus__copy { padding: 76px 24px; }
  .corridor-focus > figure { min-height: 520px; }
  .compliance__ledger { grid-template-columns: repeat(2,1fr); }
  .compliance__ledger article:nth-child(even) { border-right: 0; }
  .sustainability__layout { grid-template-columns: 1fr; width: min(100% - 32px,760px); }
  .sustainability figure { grid-column: auto; }
  .faq__layout { grid-template-columns: 1fr; gap: 45px; }
  .quote-section__layout { grid-template-columns: 1fr; }
  .quote-section__layout > aside { border-right: 0; border-bottom: 1px solid #35506a; }
  .form-grid { grid-template-columns: repeat(2,1fr); }
  .kinetic-page-hero { padding-top: 0; }
  .kinetic-page-hero__grid { grid-template-columns: 1fr; }
  .kinetic-page-hero__grid > div:first-child { padding: 70px 0 55px; }
  .kinetic-page-hero figure { min-height: 460px; }
  .corridor-selector__grid, .expertise-kinetic__grid { grid-template-columns: repeat(2,1fr); }
  .case-story__layout { grid-template-columns: 1fr; }
  .case-story__layout > div { padding: 0 0 45px; }
  .case-story__layout figure { min-height: 500px; }
  .route-cta .shell { align-items: flex-start; flex-direction: column; }
  .trust-strip .shell { grid-template-columns: repeat(2,1fr); }
  .trust-strip .shell > span:nth-child(even) { border-right: 0; }
  .site-footer__top { grid-template-columns: repeat(2,1fr); }
  .site-footer__top .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  :root { --header: 66px; }
  body { font-size: 15px; }
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  .site-main, .site-main * { min-width: 0; }
  .shell { width: auto; max-width: none; margin-left: 14px; margin-right: 14px; }
  h1 { font-size: clamp(4.05rem, 21vw, 5.2rem); }
  h2 { font-size: clamp(2.8rem, 13vw, 3.35rem); overflow-wrap: break-word; }
  .eyebrow { margin-bottom: 16px; font-size: .65rem; }
  .site-header__inner { width: auto; margin-left: 11px; margin-right: 11px; }
  .brand, .brand img { width: 64px; }
  .icon-button { width: 44px; height: 44px; }
  .kinetic-hero__content { padding-top: 44px; padding-bottom: 38px; }
  .kinetic-hero__content h1 { font-size: clamp(2.85rem, 14vw, 3.5rem); line-height: .87; }
  .kinetic-hero__content h1 span { white-space: normal; }
  .kinetic-hero__content > p:not(.eyebrow) { font-size: .86rem; }
  .button-row { display: grid; grid-template-columns: 1fr; }
  .button { width: 100%; }
  .kinetic-hero__proofs { display: grid; gap: 10px; margin-top: 20px; }
  .kinetic-hero__media { height: 250px; }
  .kinetic-hero__content { padding-top: 34px; padding-bottom: 26px; }
  .kinetic-hero__content .button-row { margin-top: 14px; }
  .kinetic-hero__notice { width: calc(100% - 28px); margin: 0 14px 14px; }
  .concept-notice { font-size: .57rem; }
  .modes-rail__inner { width: 100%; }
  .modes-rail article { min-height: 104px; padding: 16px 14px; }
  .modes-rail article > .dashicons { width: 23px; height: 23px; font-size: 23px; }
  .modes-rail strong { font-size: .96rem; }
  .modes-rail__inner > a { padding-inline: 14px; }
  .kinetic-section { padding: 68px 0; }
  .section-lead { margin-bottom: 38px; }
  .journey__rail { grid-template-columns: 1fr; }
  .journey__rail li { min-height: 190px; padding: 20px 18px; border-right: 0 !important; }
  .journey__number { margin-bottom: 22px; }
  .journey__rail li > .dashicons:not(.journey__arrow) { margin-bottom: 18px; }
  .journey__arrow { display: none; }
  .film-split__copy { padding: 66px 16px; }
  .film-split__media { min-height: 360px; }
  .capability-index__intro { padding: 0 0 42px; }
  .capability-index__grid { grid-template-columns: 1fr; }
  .capability-index__grid article { min-height: 220px; border-left: 0; padding-left: 0; }
  .corridor-focus__copy { padding: 66px 16px; }
  .corridor-focus > figure { min-height: 390px; }
  .compliance__layout > div:first-child { padding-right: 0; }
  .compliance__ledger { grid-template-columns: 1fr; }
  .compliance__ledger article { min-height: 210px; border-right: 0; }
  .compliance__ledger h3 { margin-top: 38px; }
  .sustainability__layout { width: auto; margin-left: 14px; margin-right: 14px; }
  .sustainability__intro { padding-right: 0; }
  .sustainability__items article { padding-inline: 0; }
  .sustainability figure { min-height: 340px; }
  .faq__columns { grid-template-columns: 1fr; gap: 0; }
  .quote-section__layout { width: auto; margin-left: 9px; margin-right: 9px; }
  .quote-section__layout > aside, .quote-section__form { padding: 34px 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid__wide { grid-column: auto; }
  .kinetic-page-hero__grid > div:first-child { padding: 56px 0 42px; }
  .kinetic-page-hero h1,
  .track-hero h1 { font-size: clamp(2.9rem, 13.5vw, 3.5rem); overflow-wrap: break-word; }
  .kinetic-page-hero figure { min-height: 330px; }
  .kinetic-page-hero figure .concept-notice,
  .track-hero figure .concept-notice,
  .case-story__layout figure .concept-notice { left: 8px; right: 8px; width: auto; max-width: none; }
  .case-meta { grid-template-columns: 1fr; }
  .case-meta div { border-right: 0; border-bottom: 1px solid #35506a; }
  .case-meta div:last-child { padding-left: 0; border-bottom: 0; }
  .corridor-selector__grid, .expertise-kinetic__grid { grid-template-columns: 1fr; }
  .corridor-selector__grid article, .expertise-kinetic__grid article { border-right: 0; min-height: 215px; }
  .case-story__layout figure { min-height: 340px; }
  .trust-strip .shell { width: 100%; grid-template-columns: 1fr; }
  .trust-strip .shell > span { min-height: 62px; border-right: 0; border-bottom: 1px solid var(--line); padding: 14px; }
  .site-footer__top { grid-template-columns: 1fr; gap: 28px; padding-block: 58px; }
  .site-footer__top .footer-brand { grid-column: auto; }
  .site-footer__top > :nth-last-child(-n + 2 of div:not(.elementor-element-overlay):not(.elementor-shape):not(.ui-resizable-handle):not(.ui-wrapper)) { margin-top: 0; }
  .site-footer__bottom { min-height: 90px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 7px; }
}

/* Desktop source-density calibration: compact operational rhythm without removing content. */
@media (min-width: 861px) {
  .kinetic-section { padding: 68px 0; }
  .kinetic-section.film-split,
  .kinetic-section.corridor-focus { padding: 0; }
  .section-lead,
  .section-lead--wide { gap: 48px; margin-bottom: 34px; }

  .kinetic-hero { min-height: 620px; }
  .kinetic-hero__content { padding-top: 52px; }
  .kinetic-hero__content > p:not(.eyebrow) { margin-top: 16px; }
  .kinetic-hero__content .button-row { margin-top: 20px; }
  .kinetic-hero__proofs { margin-top: 24px; }
  .modes-rail__inner { min-height: 104px; }
  .modes-rail article,
  .modes-rail__inner > a { padding-top: 16px; padding-bottom: 16px; }

  .journey__rail li { min-height: 176px; padding: 18px 16px; }
  .journey__number { margin-bottom: 18px; }
  .journey__rail li > .dashicons:not(.journey__arrow) { margin-bottom: 14px; }
  .journey__rail p { font-size: .64rem; }
  .journey__arrow { top: 78px; }

  .film-split { min-height: 430px; }
  .film-split__copy { padding-top: 48px; padding-bottom: 48px; }

  .capability-index__intro { padding-top: 28px; padding-bottom: 28px; padding-right: 42px; }
  .capability-index__intro > p:not(.eyebrow) { margin-top: 18px; }
  .capability-index__intro .text-link { margin-top: 18px; }
  .capability-index__grid { grid-template-columns: repeat(4, 1fr); }
  .capability-index__grid article { min-height: 185px; padding: 18px 42px 18px 18px; }
  .capability-index__grid article > .dashicons:not(.capability-index__go) { margin: 16px 0; }
  .capability-index__grid h3 { font-size: 1.12rem; }
  .capability-index__grid p { font-size: .62rem; line-height: 1.4; }
  .capability-index__go { right: 15px; bottom: 16px; }

  .corridor-focus { min-height: 490px; }
  .corridor-focus__copy { padding-top: 48px; padding-bottom: 48px; }
  .corridor-focus__copy p:not(.eyebrow) { margin-top: 18px; }
  .corridor-focus__copy dl { margin: 20px 0; }

  .compliance__ledger article { min-height: 188px; padding: 18px 15px; }
  .compliance__ledger h3 { margin: 32px 0 10px; }
  .compliance__ledger p { font-size: .62rem; }

  .sustainability__intro { padding-top: 18px; padding-bottom: 18px; }
  .sustainability__items article { min-height: 104px; padding: 14px 20px; }
  .sustainability__items h3 { margin: 10px 0 5px; }
  .sustainability__items p { font-size: .62rem; }
  .sustainability figure { min-height: 360px; }

  .faq__layout { gap: 46px; }
  .faq summary { min-height: 56px; }
  .faq details p { padding-bottom: 14px; }

  .quote-section__layout > aside { padding: 36px 34px; }
  .quote-section__form { padding: 36px; }
  .quote-section__form h2 { font-size: clamp(2.8rem, 4vw, 4rem); }
  .kinetic-form { margin-top: 22px; }
  .form-grid { gap: 10px; }
  .form-grid input,
  .form-grid select { min-height: 42px; padding: 8px 10px; }
  .form-grid textarea { min-height: 72px; height: 72px; padding: 8px 10px; }
  .kinetic-form > .button { margin-top: 14px; }
  .form-footnote { margin-top: 7px; }

  .kinetic-page-hero { padding-top: 28px; }
  .kinetic-page-hero__grid { min-height: 500px; }
  .kinetic-page-hero__grid > div:first-child { padding: 34px 50px 44px 0; }
  .kinetic-page-hero__grid > div:first-child > p:not(.eyebrow) { margin-top: 18px; }
  .track-hero { padding-top: 24px; }
  .track-hero__grid { min-height: 500px; }
  .track-hero__grid > div:first-child { padding: 34px 52px 42px 0; }
  .tracking-form { gap: 8px; margin-top: 18px; padding: 14px; }
  .status-summary article { min-height: 104px; padding: 16px; }

  .corridor-cards article { min-height: 238px; padding: 20px; }
  .corridor-cards h2 { margin: 48px 0 12px; }
  .corridor-cards a { margin-top: 16px; }
  .corridor-selector__grid article { min-height: 190px; padding: 20px; }
  .corridor-selector__grid h3 { margin: 44px 0 10px; }
  .corridor-enquiry__layout { gap: 44px; }

  .shipment-map { grid-template-rows: minmax(270px, 1fr) auto; }
  .milestone-ledger,
  .document-ledger { padding: 16px; }
  .milestone-ledger > div,
  .document-ledger > div { padding: 9px 0; }
  .tracking-support__grid { gap: 46px; }

  .next-steps li,
  .contact-process li { min-height: 172px; padding: 18px; }
  .next-steps h3,
  .contact-process h3 { margin: 38px 0 10px; }
  .planning-support__grid { gap: 44px; }
  .faq-list-compact summary { min-height: 54px; }

  .people-section__grid { gap: 42px; }
  .people-section__cards article { min-height: 158px; padding: 18px; }
  .people-section__cards h3 { margin: 38px 0 9px; }
  .expertise-kinetic__grid article { min-height: 185px; padding: 20px; }
  .expertise-kinetic__grid h3 { margin: 44px 0 10px; }
  .verification-callout { padding: 68px 0; }

  .intent-cards article { min-height: 210px; padding: 22px; }
  .intent-cards h3 { margin: 36px 0 10px; }
  .intent-cards a { margin-top: 14px; }
  .contact-methods__grid { gap: 48px; }

  .trust-strip .shell { min-height: 70px; }
  .trust-strip .shell > span { padding: 14px 18px; }
  .site-footer__top { gap: 26px; padding-top: 44px; padding-bottom: 44px; }
  .site-footer__bottom { min-height: 54px; }
}

@media (min-width: 861px) and (max-width: 1180px) {
  .capability-index__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 861px) {
  .kinetic-section { padding: 44px 0; }
  .kinetic-section.film-split,
  .kinetic-section.corridor-focus { padding: 0; }
  .section-lead,
  .section-lead--wide { margin-bottom: 24px; }

  .journey .section-lead h2 { font-size: clamp(3.4rem, 4vw, 4rem); }
  .journey__rail li { min-height: 150px; padding: 14px; }
  .journey__number { margin-bottom: 12px; }
  .journey__rail li > .dashicons:not(.journey__arrow) { margin-bottom: 9px; }
  .journey__arrow { top: 66px; }

  .film-split { min-height: 420px; }
  .film-split__copy h2 { font-size: clamp(3.1rem, 3.8vw, 3.8rem); }
  .film-split__copy { padding-top: 36px; padding-bottom: 36px; }

  .capability-index { padding: 44px 0; }
  .capability-index__intro h2 { font-size: clamp(3.2rem, 4.2vw, 4.2rem); }
  .capability-index__grid article { min-height: 165px; padding-top: 13px; padding-bottom: 13px; }
  .capability-index__grid article > .dashicons:not(.capability-index__go) { margin: 11px 0; }

  .corridor-focus { min-height: 470px; }
  .corridor-focus__copy h2 { font-size: clamp(3.2rem, 4vw, 4rem); }
  .corridor-focus__copy { padding-top: 34px; padding-bottom: 34px; }
  .corridor-focus__copy p:not(.eyebrow) { margin-top: 12px; }
  .corridor-focus__copy dl { margin: 14px 0; }

  .compliance__layout h2 { font-size: clamp(3rem, 3.7vw, 3.7rem); }
  .compliance__ledger article { min-height: 155px; padding: 14px 12px; }
  .compliance__ledger h3 { margin: 20px 0 8px; }

  .sustainability__intro h2 { font-size: clamp(3rem, 3.7vw, 3.7rem); }
  .sustainability__items article { min-height: 92px; padding: 10px 16px; }
  .sustainability figure { min-height: 320px; }

  .faq__layout { gap: 34px; }
  .faq__layout > div:first-child h2 { font-size: clamp(3rem, 3.7vw, 3.7rem); }
  .faq summary { min-height: 50px; }

  .quote-section__layout > aside,
  .quote-section__form { padding: 26px; }
  .quote-section__form h2 { font-size: clamp(2.6rem, 3.3vw, 3.3rem); }
  .kinetic-form { margin-top: 12px; }
  .form-grid { grid-template-columns: repeat(4, 1fr); gap: 7px 9px; }
  .form-grid input,
  .form-grid select { min-height: 38px; padding: 6px 9px; }
  .form-grid textarea { min-height: 56px; height: 56px; }
  .kinetic-form > .button { min-height: 42px; margin-top: 9px; }
  .form-status { min-height: 18px; }

  .kinetic-page-hero { padding-top: 18px; }
  .kinetic-page-hero__grid { min-height: 460px; }
  .kinetic-page-hero h1 { font-size: clamp(4rem, 5.2vw, 5.2rem); }
  .kinetic-page-hero__grid > div:first-child { padding-top: 24px; padding-bottom: 30px; }
  .track-hero { padding-top: 16px; }
  .track-hero__grid { min-height: 470px; }
  .track-hero h1 { font-size: clamp(4rem, 5.2vw, 5.2rem); }
  .track-hero__grid > div:first-child { padding-top: 24px; padding-bottom: 30px; }

  .corridor-explorer { padding: 36px 0; }
  .corridor-filters { padding: 14px; }
  .corridor-cards article { min-height: 205px; padding: 16px; }
  .corridor-cards h2 { margin: 30px 0 8px; font-size: 1.85rem; }
  .corridor-cards small { min-height: 36px; }
  .corridor-cards a { margin-top: 10px; }
  .corridor-enquiry { padding: 38px 0; }
  .corridor-enquiry h2 { font-size: clamp(3rem, 3.6vw, 3.6rem); }

  .people-section h2,
  .expertise-kinetic h2 { font-size: clamp(3.1rem, 3.8vw, 3.8rem); }
  .people-section__cards article { min-height: 140px; }
  .people-section__cards h3 { margin-top: 27px; }
  .expertise-kinetic__grid article { min-height: 155px; padding: 16px; }
  .expertise-kinetic__grid h3 { margin-top: 30px; }
  .verification-callout { padding: 50px 0; }
  .verification-callout h2 { font-size: clamp(3.2rem, 4vw, 4rem); }

  .intent-cards article { min-height: 190px; padding: 18px; }
  .intent-cards h3 { margin-top: 27px; }
  .next-steps li,
  .contact-process li { min-height: 158px; padding: 16px; }
  .next-steps h3,
  .contact-process h3 { margin-top: 28px; }
}

@media (min-width: 861px) {
  .journey { padding: 30px 0; }
  .journey .section-lead,
  .journey .section-lead--wide { margin-bottom: 18px; }
  .journey .section-lead h2 { font-size: clamp(3rem, 3.4vw, 3.4rem); }
  .journey__rail li { min-height: 135px; padding: 11px 12px; }
  .journey__number { margin-bottom: 8px; }
  .journey__rail li > .dashicons:not(.journey__arrow) { width: 25px; height: 25px; margin-bottom: 7px; font-size: 25px; }
  .journey__rail h3 { margin-bottom: 7px; font-size: 1.16rem; }
  .journey__rail p { font-size: .58rem; }
  .journey__arrow { top: 57px; }

  .film-split { height: 480px; min-height: 0; }
  .film-split__copy h2 { font-size: clamp(2.8rem, 3.2vw, 3.2rem); }
  .film-split__copy { padding-top: 22px; padding-bottom: 22px; }

  .capability-index { padding: 30px 0; }
  .capability-index__intro h2 { font-size: clamp(3rem, 3.5vw, 3.5rem); }
  .capability-index__intro { padding-top: 18px; padding-bottom: 18px; }
  .capability-index__grid article { min-height: 145px; padding-top: 10px; padding-bottom: 10px; }
  .capability-index__grid article > .dashicons:not(.capability-index__go) { width: 25px; height: 25px; margin: 7px 0; font-size: 25px; }
  .capability-index__grid h3 { margin-bottom: 7px; font-size: 1.02rem; }
  .capability-index__grid p { font-size: .57rem; }

  .corridor-focus { height: 520px; min-height: 0; }
  .corridor-focus__copy h2 { font-size: clamp(3rem, 3.5vw, 3.5rem); }
  .corridor-focus__copy { padding-top: 20px; padding-bottom: 20px; }
  .corridor-focus__copy p:not(.eyebrow) { margin-top: 8px; }
  .corridor-focus__copy dl { margin: 10px 0; }
  .corridor-focus__copy dl div { padding: 8px 0; }

  .compliance { padding: 30px 0; }
  .compliance__layout h2 { font-size: clamp(2.8rem, 3.35vw, 3.35rem); }
  .compliance__ledger article { min-height: 145px; }

  .sustainability { padding: 30px 0; }
  .sustainability__intro h2 { font-size: clamp(2.8rem, 3.3vw, 3.3rem); }
  .sustainability figure { min-height: 320px; }

  .faq { padding: 30px 0; }
  .faq__layout > div:first-child h2 { font-size: clamp(2.8rem, 3.3vw, 3.3rem); }
  .faq summary { min-height: 46px; }

  .quote-section { padding: 30px 0; }
  .quote-section__layout > aside,
  .quote-section__form { padding: 20px; }
  .quote-section__form h2 { font-size: clamp(2.4rem, 3vw, 3rem); }
  .kinetic-form { margin-top: 8px; }
  .form-grid { gap: 5px 8px; }
  .form-grid input,
  .form-grid select { min-height: 36px; }
  .form-grid textarea { min-height: 48px; height: 48px; }

  .corridor-explorer { padding: 28px 0; }
  .corridor-cards article { min-height: 190px; padding: 13px; }
  .corridor-cards h2 { margin-top: 20px; font-size: 1.55rem; }
  .corridor-cards p { font-size: .64rem; }
  .corridor-cards small { min-height: 28px; font-size: .52rem; }
  .corridor-enquiry { padding: 30px 0; }
}

/* Direct-contact replacements preserve the existing card and button styles. */
.family-kinetic .kinetic-contact-options,
.family-kinetic .tpi-commercial-contact {
  gap: 16px;
}

.family-kinetic .kinetic-contact-options {
  display: grid;
  min-width: 0;
}

.family-kinetic .kinetic-contact-options > :first-child {
  margin-top: 0;
}

.family-kinetic .kinetic-contact-options a,
.family-kinetic .tpi-commercial-contact .elementor-widget-text-editor a {
  overflow-wrap: anywhere;
}

/* Readable multilingual typography: allow long words and diacritics to fit
 * their own boxes instead of relying on the page's horizontal clipping. */
.tpi-premium-site.family-kinetic :is(h1, h2, h3, h4, h5, h6) {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
  letter-spacing: -.015em;
}

.tpi-premium-site.family-kinetic h3 {
  line-height: 1.15 !important;
}

.family-kinetic .kinetic-hero__content h1 span {
  white-space: normal;
}

.family-kinetic :is(.section-lead, .kinetic-page-hero__grid, .track-hero__grid,
  .quote-section__layout, .planning-support__grid, .corridor-enquiry__layout,
  .site-footer__top) > * {
  min-width: 0;
}

.family-kinetic :is(.button, .text-link, .tpi-commercial-contact a) {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.family-kinetic .button .dashicons {
  flex-shrink: 0;
}

.family-kinetic .faq .elementor-tab-title .dashicons {
  color: var(--blue);
  transition: transform .2s;
}

.family-kinetic .faq .elementor-tab-title[aria-expanded="true"] .dashicons {
  transform: rotate(45deg);
}

/* Orange small text needs a darker tone on light surfaces; retain the bright
 * signal color for dark surfaces and decorative icons. */
html:not([data-theme="dark"]) .family-kinetic :is(
  .kinetic-page-hero--start .eyebrow,
  .kinetic-page-hero--contact .eyebrow,
  .corridor-cards small,
  .people-section__cards small
) {
  color: #b33a12;
}

@media (min-width: 861px) {
  /* Text length, font coverage and browser text sizing must determine height. */
  .family-kinetic .film-split { height: auto; min-height: 480px; }
  .family-kinetic .corridor-focus { height: auto; min-height: 520px; }
}

@media (max-width: 520px) {
  .family-kinetic .button {
    min-height: 48px;
    height: auto;
    padding-top: 12px;
    padding-bottom: 12px;
    line-height: 1.35;
  }
}
