@font-face {
  font-family: 'Maven Pro';
  src: url('assets/maven-pro.ttf') format('truetype');
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}

:root {
  --navy: #11395c;
  --deep-navy: #0b2943;
  --gold: #dca14b;
  --gold-ink: #895719;
  --limestone: #f3f0e9;
  --white: #fff;
  --ink: #153750;
  --muted: #566775;
  --line: #d2d8d9;
  --light-line: #ffffff30;
  --gutter: clamp(24px, 4.2vw, 72px);
  --ease: cubic-bezier(.2, .7, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 28px; }
body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: 'Maven Pro', Arial, sans-serif;
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--gold); color: var(--deep-navy); }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
a, button, summary { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button:disabled { cursor: default; }
button, input, select, textarea { font: inherit; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
figure, h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: 500; line-height: 1.08; }
h1, h2 { letter-spacing: -.055em; }
h2 { font-size: clamp(38px, 4.35vw, 64px); }
h2 em { display: block; font-style: normal; font-weight: 400; color: var(--muted); }
h3 { letter-spacing: -.035em; }
p { text-wrap: pretty; }
[hidden] { display: none !important; }
:where(a, button, summary):focus-visible { outline: 3px solid var(--gold-ink); outline-offset: 6px; }
:where(.hero, .sector-panel, .method, .contact) :where(a, button, summary):focus-visible { outline-color: var(--gold); }
#contenido:focus { outline: none; }
.wrap { width: min(1360px, calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.wrap > *, .hero-stage > *, .bridge-grid > *, .section-heading > *, .vision-grid > *, .contact-grid > *, .partners-grid > * { min-width: 0; }
.section-pad { padding-block: clamp(76px, 8vw, 124px); }
.eyebrow, .index { font-size: 11px; line-height: 1.5; letter-spacing: .12em; font-weight: 500; text-transform: uppercase; }
.eyebrow.light { color: #d4e0e7; }
.index { color: var(--gold-ink); font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); }
.small { font-size: 13px; line-height: 1.6; }
.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: 12px; z-index: 100; padding: 12px 20px; background: var(--gold); color: var(--deep-navy); transform: translateY(-180%); }
.skip-link:focus { transform: none; }

/* A quiet light header gives the original wordmark its own clear space. */
.site-header { background: #fff; border-bottom: 1px solid var(--line); position: relative; z-index: 20; }
.header-inner { min-height: 106px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: block; width: 216px; flex: 0 0 auto; line-height: 0; }
.brand img { display: block; width: 100%; height: auto; }
#main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(20px, 2.4vw, 38px); }
#main-nav a { position: relative; font-size: 13px; line-height: 1.4; min-height: 44px; display: flex; align-items: center; padding-block: 12px; }
#main-nav a::after { content: ''; position: absolute; height: 1px; background: var(--navy); bottom: 6px; left: 0; right: 0; transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
#main-nav a:hover::after, #main-nav a:focus-visible::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: 22px; flex-shrink: 0; }
.language-switch { display: flex; align-items: center; gap: 0; }
.language-switch > span { color: #9aa4ab; font-size: 11px; }
.language-switch button { min-height: 44px; min-width: 44px; padding: 10px 8px; background: transparent; border: 0; position: relative; color: var(--muted); font-size: 11px; letter-spacing: .06em; }
.language-switch button[aria-pressed=true] { color: var(--navy); font-weight: 700; }
.language-switch button::after { content: ''; height: 2px; position: absolute; left: 12px; right: 12px; bottom: 6px; background: var(--gold); transform: scaleX(0); transition: transform .2s ease; }
.language-switch button[aria-pressed=true]::after, .language-switch button:hover::after { transform: scaleX(1); }
.header-cta { display: inline-flex; align-items: center; gap: 22px; min-height: 44px; font-size: 13px; border-bottom: 1px solid var(--navy); }
.menu-toggle { display: none; }
.arrow { display: inline-block; font-weight: 400; transition: transform .35s var(--ease); }
a:hover > .arrow, a:focus-visible > .arrow { transform: translate(3px, -3px); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 56px; max-width: 100%; padding: 16px 22px; font-size: 14px; font-weight: 500; line-height: 1.5; border: 1px solid transparent; transition: background .25s ease, border-color .25s ease; }
.button .arrow { font-size: 24px; line-height: 1; flex-shrink: 0; }
.button-gold { background: var(--gold); color: var(--deep-navy); }
.button-gold:hover { background: #ebba74; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; max-width: 100%; padding-block: 8px; border-bottom: 1px solid #84939e; font-size: 13px; line-height: 1.5; }
.text-link > span:last-child { flex-shrink: 0; font-size: 21px; }
.text-link.light { color: #edf2f5; border-color: #ffffff65; }
.text-link:hover { border-color: var(--gold-ink); }
.text-link.light:hover { border-color: var(--gold); }

/* The model is always shown at its original 3:2 ratio, including on phones. */
.hero { background: var(--deep-navy); color: var(--limestone); position: relative; }
.hero-stage { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(32px, 4.1vw, 64px); align-items: end; padding-top: clamp(48px, 4.6vw, 72px); padding-bottom: 50px; }
.hero-copy { position: relative; z-index: 1; }
.hero .eyebrow { max-width: 370px; font-size: 10px; letter-spacing: .14em; }
h1 { margin-top: 29px; font-size: clamp(54px, 5.8vw, 89px); line-height: .99; font-weight: 500; letter-spacing: -.065em; }
h1 > span, h1 > em { display: block; }
h1 em { color: var(--gold); font-style: normal; font-weight: 400; margin-top: 5px; }
.hero-description { max-width: 450px; margin-top: 27px; color: #d2dce4; font-size: 16px; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 26px; margin-top: 30px; }
.hero-actions .text-link { font-size: 12px; gap: 16px; }
.hero-media { min-width: 0; align-self: center; padding-top: 30px; }
.image-frame { position: relative; background: #103553; border: 1px solid #d9e3e51c; }
.image-frame img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.image-corner { position: absolute; right: 12px; top: 6px; color: var(--gold); font-size: 24px; line-height: 1; font-weight: 400; }
.hero-media figcaption { display: flex; justify-content: space-between; gap: 20px; margin-top: 17px; font-size: 10px; line-height: 1.5; color: #a8bdcd; }
.hero-media figcaption > span:first-child { max-width: 260px; }
.hero-media figcaption > span:last-child { text-align: right; flex-shrink: 0; }
.hero-sectors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--light-line); }
.hero-sectors a { min-width: 0; display: grid; grid-template-columns: 24px minmax(0, 1fr) 20px; align-items: center; gap: 12px; padding: 26px 26px 28px; font-size: 18px; line-height: 1.3; transition: background .3s ease; }
.hero-sectors a:first-child { padding-left: 0; }
.hero-sectors a:last-child { padding-right: 0; }
.hero-sectors a + a { border-left: 1px solid var(--light-line); }
.hero-sectors .index { color: var(--gold); font-size: 10px; }
.hero-sectors a > span:last-child { justify-self: end; color: var(--gold); transition: transform .35s var(--ease); }
.hero-sectors a:hover > span:last-child, .hero-sectors a:focus-visible > span:last-child { transform: translate(3px,-3px); }
.hero-sectors a:hover { background: #ffffff05; }

.section-label { display: flex; align-items: baseline; gap: 32px; padding-bottom: 31px; margin-bottom: 40px; border-bottom: 1px solid var(--line); }
.section-label > .index { min-width: 176px; }
.section-label .eyebrow { color: var(--muted); font-size: 10px; }
.bridge-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(50px, 8vw, 136px); }
.bridge h2 { max-width: 690px; }
.bridge h2 em { margin-top: 6px; }
.bridge-copy { padding-top: 8px; font-size: 17px; }
.bridge-copy p + p { margin-top: 24px; font-size: 15px; }
.bridge-line { display: grid; grid-template-columns: minmax(0,1fr) 48px minmax(0,1fr) 48px minmax(0,1fr); gap: 28px; margin-top: 68px; padding-top: 29px; border-top: 1px solid var(--line); }
.bridge-line > div { min-width: 0; }
.bridge-line > span { color: #9cabb4; font-size: 32px; font-weight: 400; align-self: center; text-align: center; }
.bridge-line h3 { font-size: 20px; margin-top: 15px; line-height: 1.25; }
.bridge-line p { color: var(--muted); margin-top: 9px; font-size: 14px; }

.industries { background: var(--limestone); }
.section-heading { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: clamp(40px,7vw,120px); align-items: end; }
.section-heading > p, .section-heading > div { max-width: 450px; font-size: 16px; }
.section-heading h2 { max-width: 740px; }
.sector-tabs { display: none; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 50px; border-top: 1px solid #b8c2c6; }
.js .sector-tabs { display: grid; }
.sector-tabs button { display: grid; grid-template-columns: 23px minmax(0,1fr) 20px; gap: 12px; align-items: center; min-height: 88px; padding: 22px 24px; border: 0; border-bottom: 3px solid transparent; background: transparent; text-align: left; font-size: 18px; line-height: 1.3; transition: background .25s ease, border-color .25s ease; }
.sector-tabs button:first-child { padding-left: 0; }
.sector-tabs button + button { border-left: 1px solid #b8c2c6; }
.sector-tabs button > span:last-child { justify-self: end; color: var(--gold-ink); }
.sector-tabs button:hover { background: #11395c08; }
.sector-tabs button[aria-pressed=true] { border-bottom-color: var(--gold-ink); font-weight: 500; }
.sector-panel { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(0,.82fr); gap: 60px; padding: clamp(32px,4.1vw,64px); background: var(--navy); color: var(--limestone); }
.sector-panel + .sector-panel { margin-top: 24px; }
.js .sector-panel + .sector-panel { margin-top: 0; }
.sector-copy { min-width: 0; }
.sector-copy > .eyebrow { color: var(--gold); max-width: 440px; font-size: 10px; }
.sector-copy h3 { font-size: clamp(32px,3vw,46px); line-height: 1.12; margin: 22px 0 23px; max-width: 560px; }
.sector-copy > p:not(.eyebrow) { color: #dae3e9; font-size: 16px; max-width: 570px; }
.pilot-example { border-top: 1px solid var(--light-line); margin-top: 28px; padding-top: 21px; max-width: 550px; }
.pilot-example .eyebrow { color: #d1dbe2; font-size: 9px; letter-spacing: .13em; }
.pilot-example p + p { margin-top: 10px; color: #d0dce5; font-size: 14px; line-height: 1.7; }
.sector-copy .text-link { margin-top: 24px; }
.sector-visual { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--gold); border-left: 1px solid var(--light-line); padding-left: 32px; }
.engineering-art { width: 100%; max-width: 420px; height: auto; overflow: visible; }
.sector-visual > p { align-self: flex-end; margin-top: 30px; font-size: 10px; letter-spacing: .18em; color: #a8bdcd; }

.status-label { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px; color: var(--gold-ink); font-size: 10px; font-weight: 600; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.status-label::before { content: ''; width: 5px; height: 5px; background: currentColor; border-radius: 50%; flex-shrink: 0; }
.service-list { margin-top: 58px; border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: 56px minmax(0,1fr) minmax(0,1fr); column-gap: 48px; position: relative; padding-block: 36px 40px; border-bottom: 1px solid var(--line); }
.service-row > .index { padding-top: 8px; }
.service-row h3 { max-width: 410px; font-size: clamp(27px,2.7vw,38px); line-height: 1.17; }
.service-row > div { min-width: 0; padding-top: 3px; }
.service-row p { color: var(--muted); font-size: 16px; }
.service-row .deliverable { border-left: 2px solid var(--gold); padding-left: 15px; margin-top: 19px; font-size: 14px; color: var(--navy); }
.service-row::before { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease); }
.service-row:hover::before, .service-row:focus-within::before { transform: scaleX(1); }
.scope-note { display: flex; align-items: baseline; gap: 26px; max-width: 860px; margin-top: 28px; }
.scope-note > span { font-size: 26px; color: var(--gold-ink); flex-shrink: 0; }
.scope-note p { font-size: 13px; color: var(--muted); }

.method { background: var(--navy); color: var(--limestone); }
.method-heading { display: grid; grid-template-columns: minmax(0,.55fr) minmax(0,1.45fr); gap: 52px; align-items: start; }
.method-heading > .eyebrow { color: var(--gold); padding-top: 11px; }
.method-heading h2 { max-width: 790px; }
.method-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; padding: 0; margin: 64px 0 0; list-style: none; }
.method-steps li { min-width: 0; border-top: 1px solid #ffffff50; position: relative; padding: 28px 30px 0 0; }
.method-steps li + li { padding-left: 30px; border-left: 1px solid #ffffff25; }
.method-steps li:last-child { padding-right: 0; }
.method-steps .index { color: var(--gold); }
.method-steps h3 { margin-top: 43px; font-size: clamp(22px,2vw,29px); line-height: 1.2; }
.method-steps p { margin-top: 17px; font-size: 15px; line-height: 1.65; color: #cedce5; max-width: 260px; }

.vision-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: clamp(50px,8vw,136px); }
.vision h2 { max-width: 710px; }
.vision-description { max-width: 570px; color: var(--muted); font-size: 17px; margin-top: 31px; }
.horizon { background: var(--limestone); border-top: 2px solid var(--gold); padding: 31px 32px 35px; align-self: start; }
.horizon h3 { margin-top: 11px; font-size: 29px; line-height: 1.2; }
.horizon > p:not(.status-label) { font-size: 15px; color: var(--muted); margin-top: 20px; }
.horizon > p.small { border-top: 1px solid #cbd0ce; padding-top: 20px; margin-top: 25px; font-size: 12px; }
.roadmap { margin-top: 66px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.roadmap summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 27px 0 30px; }
.roadmap summary::-webkit-details-marker { display: none; }
.roadmap summary .eyebrow { color: var(--muted); font-size: 10px; display: block; margin-bottom: 9px; }
.summary-title { font-size: clamp(23px,2.6vw,33px); letter-spacing: -.035em; line-height: 1.2; display: block; }
.plus { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); font-size: 30px; font-weight: 400; flex-shrink: 0; transition: transform .3s var(--ease); }
.roadmap[open] .plus { transform: rotate(45deg); }
.roadmap-content { padding-block: 0 35px; }
.roadmap-content > .muted { max-width: 680px; font-size: 15px; }
.system-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); list-style: none; margin: 24px 0 28px; padding: 0; gap: 0 72px; }
.system-list li { display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.system-list h3 { font-size: 19px; line-height: 1.3; }
.system-list p { margin-top: 7px; font-size: 14px; color: var(--muted); }
.roadmap-content > .small { color: var(--muted); }

.partners { padding-block: 64px 68px; background: var(--limestone); border-top: 1px solid #e2dfd7; }
.partners-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: clamp(50px,8vw,136px); }
.partners .eyebrow { color: var(--gold-ink); font-size: 10px; margin-bottom: 20px; }
.partners h2 { font-size: clamp(30px,3.1vw,44px); line-height: 1.12; letter-spacing: -.045em; max-width: 640px; }
.partners-grid > div:last-child { align-self: center; font-size: 15px; color: var(--muted); }
.partners .text-link { margin-top: 18px; color: var(--navy); }
.contact { background: var(--deep-navy); color: var(--limestone); padding-block: clamp(80px,9vw,136px); }
.contact-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); gap: clamp(48px,8vw,132px); align-items: end; }
.contact .eyebrow { color: var(--gold); margin-bottom: 31px; font-size: 10px; }
.contact h2 { font-size: clamp(44px,4.9vw,74px); line-height: 1.05; max-width: 760px; }
.contact h2 em { color: var(--limestone); margin-top: 6px; }
.contact-action > p:first-child { font-size: 16px; color: #d2dce4; max-width: 390px; }
.contact-action .button { margin-top: 30px; width: min(100%,310px); }
.contact-action .small { margin-top: 16px; color: #a8bdcd; font-size: 11px; }
.site-footer { display: grid; grid-template-columns: 200px minmax(0,1fr) auto; align-items: center; gap: 40px; min-height: 142px; padding-block: 28px; }
.site-footer .brand { width: 184px; }
.site-footer > p { font-size: 12px; color: var(--muted); text-align: center; }
.site-footer .text-link { font-size: 12px; border: 0; gap: 30px; }

/* Motion is a progressive enhancement; neither media nor no-JS content is hidden. */
.reveal { opacity: 1; transform: none; }
.motion-active .reveal:not(.is-visible) { opacity: 0; transform: translateY(16px); transition: none; }
.motion-active .reveal.is-visible { opacity: 1; transform: none; transition: opacity .7s ease, transform .9s var(--ease); }
.motion-active .reveal.motion-instant { opacity: 1; transform: none; transition: none !important; }

@media (min-width: 1640px) {
  .hero-stage { gap: 76px; padding-top: 80px; padding-bottom: 66px; }
  h1 { font-size: 89px; }
  .hero-media { margin-right: -16px; }
}
@media (max-width: 1180px) {
  :root { --gutter: 36px; }
  .header-inner { gap: 20px; min-height: 96px; }
  .brand { width: 190px; }
  #main-nav { gap: 20px; }
  #main-nav a { font-size: 12px; }
  .header-actions { gap: 15px; }
  .header-cta { font-size: 12px; gap: 13px; }
  .hero-stage { gap: 32px; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); }
  h1 { font-size: 5.8vw; }
  .hero-description { font-size: 15px; }
  .hero-actions { gap: 10px; }
  .hero-media figcaption { font-size: 9px; gap: 14px; }
  .hero-sectors a { padding-inline: 20px; font-size: 17px; }
  .bridge-grid, .vision-grid, .partners-grid { gap: 60px; }
  .section-label > .index { min-width: 158px; }
  .bridge-line { gap: 16px; grid-template-columns: minmax(0,1fr) 32px minmax(0,1fr) 32px minmax(0,1fr); }
  .bridge-line h3 { font-size: 18px; }
  .sector-panel { gap: 35px; }
  .service-row { gap: 30px; grid-template-columns: 35px minmax(0,1fr) minmax(0,1fr); }
  .method-steps li { padding-right: 20px; }
  .method-steps li + li { padding-left: 20px; }
  .horizon { padding-inline: 26px; }
}
@media (max-width: 980px) {
  .header-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 20px; row-gap: 0; padding-block: 12px; min-height: 88px; }
  .header-inner > .brand { grid-column: 1; grid-row: 1; width: 180px; }
  .header-actions { grid-column: 2; grid-row: 1; gap: 20px; }
  .header-cta { display: none; }
  #main-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 30px; padding: 16px 0 8px; border-top: 1px solid var(--line); margin-top: 14px; flex-wrap: wrap; }
  #main-nav a { font-size: 14px; }
  .js .site-header:not(.menu-open) #main-nav { display: none; }
  .js .menu-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 6px 0 6px 6px; border: 0; background: transparent; font-size: 12px; }
  .menu-toggle > span:last-child { font-size: 22px; line-height: 1; transition: transform .25s ease; }
  .menu-toggle[aria-expanded=true] > span:last-child { transform: rotate(45deg); }
  .hero-stage { padding-top: 44px; padding-bottom: 38px; }
  h1 { font-size: clamp(48px,6.2vw,60px); }
  .hero .eyebrow { font-size: 9px; max-width: 320px; }
  .hero-description { font-size: 15px; }
  .hero-media { padding-top: 0; }
  .hero-media figcaption { display: block; }
  .hero-media figcaption > span { display: block; }
  .hero-media figcaption > span:last-child { text-align: left; margin-top: 7px; }
  .hero-sectors a { font-size: 16px; padding: 24px 17px; gap: 8px; grid-template-columns: 19px minmax(0,1fr) 18px; }
  .section-heading, .bridge-grid, .vision-grid { gap: 40px; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); }
  .section-label { margin-bottom: 32px; }
  .bridge-copy { font-size: 16px; }
  .sector-tabs button { font-size: 16px; gap: 8px; padding-inline: 18px; grid-template-columns: 20px minmax(0,1fr) 18px; }
  .sector-panel { padding: 36px; grid-template-columns: minmax(0,1.4fr) minmax(0,.6fr); gap: 28px; }
  .sector-visual { padding-left: 22px; }
  .sector-copy h3 { font-size: 34px; }
  .method-heading { grid-template-columns: .7fr 1.3fr; gap: 35px; }
  .method-steps { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 40px; margin-top: 48px; }
  .method-steps li:nth-child(3) { padding-left: 0; border-left: 0; }
  .method-steps h3 { margin-top: 30px; font-size: 27px; }
  .horizon h3 { font-size: 25px; }
  .contact-grid { gap: 45px; grid-template-columns: 1.1fr .9fr; }
  .site-footer { gap: 24px; grid-template-columns: 170px minmax(0,1fr) auto; }
  .site-footer .brand { width: 160px; }
}
@media (max-width: 760px) {
  :root { --gutter: 24px; }
  body { font-size: 16px; }
  .section-pad { padding-block: 72px; }
  h2 { font-size: clamp(36px,6.1vw,48px); }
  .header-inner { min-height: 84px; }
  .header-inner > .brand { width: 164px; }
  .hero-stage { grid-template-columns: 1fr; gap: 38px; padding-top: 45px; padding-bottom: 29px; }
  .hero-copy { max-width: 590px; }
  .hero .eyebrow { max-width: none; font-size: 9px; }
  h1 { margin-top: 24px; font-size: clamp(46px,8.9vw,68px); line-height: 1.01; letter-spacing: -.06em; }
  .hero-description { margin-top: 24px; font-size: 16px; max-width: 510px; }
  .hero-actions { margin-top: 27px; gap: 14px 24px; }
  .hero-media { width: 100%; }
  .hero-media figcaption { display: flex; font-size: 9px; gap: 18px; margin-top: 13px; }
  .hero-media figcaption > span:last-child { text-align: right; margin-top: 0; flex-shrink: 1; }
  .hero-sectors { grid-template-columns: 1fr; }
  .hero-sectors a { padding: 18px 0; font-size: 17px; gap: 17px; grid-template-columns: 24px minmax(0,1fr) 20px; }
  .hero-sectors a + a { border-left: 0; border-top: 1px solid var(--light-line); }
  .section-label { display: block; margin-bottom: 30px; padding-bottom: 22px; }
  .section-label .eyebrow { margin-top: 10px; font-size: 9px; }
  .section-label > .index { font-size: 10px; }
  .bridge-grid, .section-heading, .vision-grid, .partners-grid, .contact-grid { grid-template-columns: 1fr; gap: 30px; }
  .bridge-copy { max-width: 600px; padding: 0; }
  .bridge-copy p + p { margin-top: 18px; font-size: 15px; }
  .bridge-line { margin-top: 38px; grid-template-columns: 1fr; gap: 20px; padding-top: 27px; }
  .bridge-line > div { display: grid; grid-template-columns: 28px minmax(0,1fr); column-gap: 14px; }
  .bridge-line > div > .index { padding-top: 4px; grid-row: 1 / 3; }
  .bridge-line h3 { font-size: 21px; margin-top: 0; }
  .bridge-line p { grid-column: 2; margin-top: 7px; }
  .bridge-line > span { font-size: 25px; text-align: left; margin-left: 42px; line-height: 1; }
  .section-heading > p, .section-heading > div { max-width: 600px; }
  .sector-tabs { grid-template-columns: 1fr; margin-top: 32px; border-top-color: #c1c9c9; }
  .sector-tabs button, .sector-tabs button:first-child { grid-template-columns: 22px minmax(0,1fr) 20px; padding: 17px 16px; gap: 14px; font-size: 17px; min-height: 62px; border-bottom: 1px solid #c1c9c9; }
  .sector-tabs button + button { border-left: 0; }
  .sector-tabs button[aria-pressed=true] { background: #e5dfd3; box-shadow: inset 3px 0 var(--gold-ink); border-bottom-color: #c1c9c9; }
  .sector-panel { grid-template-columns: 1fr; gap: 30px; padding: 30px 26px; }
  .sector-panel + .sector-panel { margin-top: 20px; }
  .js .sector-panel + .sector-panel { margin-top: 0; }
  .sector-copy > .eyebrow { font-size: 9px; }
  .sector-copy h3 { margin-top: 19px; font-size: clamp(30px,5.4vw,37px); }
  .sector-copy > p:not(.eyebrow) { font-size: 15px; }
  .sector-visual { border-left: 0; border-top: 1px solid var(--light-line); padding: 22px 0 0; flex-direction: row; gap: 20px; align-items: flex-end; justify-content: space-between; }
  .engineering-art { max-width: 260px; width: 67%; }
  .sector-visual > p { margin: 0 0 4px; white-space: nowrap; }
  .service-list { margin-top: 38px; }
  .service-row { grid-template-columns: 27px minmax(0,1fr); column-gap: 16px; row-gap: 19px; padding-block: 27px 30px; }
  .service-row > .index { padding-top: 4px; }
  .service-row h3 { font-size: 28px; max-width: 520px; }
  .service-row > div { grid-column: 2; padding: 0; }
  .service-row p { font-size: 15px; }
  .service-row .deliverable { margin-top: 17px; font-size: 13px; }
  .scope-note { gap: 17px; margin-top: 21px; }
  .scope-note p { font-size: 12px; }
  .method-heading { grid-template-columns: 1fr; gap: 22px; }
  .method-heading > .eyebrow { padding: 0; font-size: 10px; }
  .method-steps { margin-top: 39px; column-gap: 25px; row-gap: 30px; }
  .method-steps li, .method-steps li + li { border-left: 0; padding: 21px 0 0; }
  .method-steps h3 { font-size: 23px; margin-top: 28px; }
  .method-steps p { font-size: 14px; margin-top: 13px; }
  .vision-description { font-size: 16px; margin-top: 24px; }
  .horizon { padding: 28px; }
  .horizon h3 { font-size: 28px; max-width: 440px; }
  .roadmap { margin-top: 38px; }
  .roadmap summary { padding-block: 23px; gap: 18px; }
  .summary-title { font-size: 24px; }
  .roadmap summary .eyebrow { font-size: 9px; }
  .plus { width: 40px; height: 40px; font-size: 27px; }
  .system-list { grid-template-columns: 1fr; margin-top: 16px; }
  .system-list li { padding-block: 20px; gap: 14px; grid-template-columns: 24px minmax(0,1fr); }
  .system-list h3 { font-size: 18px; }
  .partners { padding-block: 51px 55px; }
  .partners h2 { font-size: 34px; }
  .partners-grid { gap: 24px; }
  .contact { padding-block: 72px; }
  .contact-grid { gap: 32px; }
  .contact .eyebrow { margin-bottom: 24px; }
  .contact h2 { font-size: clamp(40px,7.4vw,55px); max-width: 590px; }
  .contact-action > p:first-child { max-width: 490px; }
  .contact-action .button { margin-top: 25px; }
  .site-footer { grid-template-columns: 1fr auto; gap: 23px 18px; padding-block: 32px 27px; }
  .site-footer .brand { width: 155px; }
  .site-footer > p { grid-column: 1 / -1; grid-row: 2; text-align: left; font-size: 11px; border-top: 1px solid var(--line); padding-top: 20px; }
  .site-footer .text-link { grid-column: 2; grid-row: 1; font-size: 11px; gap: 16px; }
}
@media (max-width: 450px) {
  :root { --gutter: 20px; }
  .header-inner { min-height: 80px; column-gap: 10px; }
  .header-inner > .brand { width: 145px; }
  .header-actions { gap: 8px; }
  .language-switch button { min-width: 35px; padding-inline: 5px; }
  .language-switch button::after { left: 10px; right: 10px; }
  .js .menu-toggle { min-width: 54px; gap: 7px; padding-left: 2px; font-size: 11px; }
  #main-nav { flex-direction: column; align-items: stretch; gap: 0; padding-top: 9px; }
  #main-nav a { font-size: 16px; padding-block: 13px; }
  .hero-stage { padding-top: 34px; gap: 31px; }
  h1 { font-size: clamp(43px,11.5vw,51px); letter-spacing: -.065em; }
  .hero .eyebrow { font-size: 8px; letter-spacing: .1em; }
  .hero-description { font-size: 15px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 10px; }
  .button { min-height: 54px; font-size: 13px; padding-inline: 19px; }
  .hero-actions .text-link { font-size: 11px; }
  .hero-media figcaption { font-size: 8px; gap: 16px; }
  .hero-media figcaption > span:first-child { max-width: 190px; }
  .image-corner { font-size: 20px; top: 5px; right: 8px; }
  .section-pad { padding-block: 61px; }
  h2 { font-size: 37px; line-height: 1.1; }
  .sector-panel { padding: 27px 21px; }
  .sector-copy h3 { font-size: 30px; }
  .service-row { column-gap: 13px; grid-template-columns: 22px minmax(0,1fr); }
  .service-row h3 { font-size: 26px; }
  .method-steps { grid-template-columns: 1fr; gap: 25px; }
  .method-steps li { display: grid; grid-template-columns: 25px minmax(0,1fr); column-gap: 16px; }
  .method-steps li > .index { grid-row: 1 / 3; padding-top: 4px; }
  .method-steps h3 { margin-top: 0; font-size: 26px; }
  .method-steps p { grid-column: 2; margin-top: 10px; max-width: none; }
  .horizon { padding: 27px 23px; }
  .horizon h3 { font-size: 27px; }
  .summary-title { font-size: 22px; }
  .partners h2 { font-size: 32px; }
  .contact h2 { font-size: 40px; }
  .contact-action > p:first-child { font-size: 15px; }
}
@media (max-width: 360px) {
  :root { --gutter: 16px; }
  .header-inner > .brand { width: 132px; }
  .header-actions { gap: 5px; }
  .language-switch button { min-width: 32px; }
  .js .menu-toggle { min-width: 51px; }
  h1 { font-size: 43px; }
  h2 { font-size: 34px; }
  .sector-tabs button { font-size: 16px; padding-inline: 13px; }
  .sector-copy h3 { font-size: 28px; }
  .sector-copy .text-link { font-size: 12px; gap: 13px; }
  .pilot-example p + p { font-size: 13px; }
  .contact h2 { font-size: 36px; }
  .site-footer .brand { width: 132px; }
  .site-footer .text-link { font-size: 10px; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal, .motion-active .reveal, .motion-active .reveal:not(.is-visible) { opacity: 1 !important; transform: none !important; }
  .arrow, a:hover > .arrow, a:focus-visible > .arrow, .hero-sectors a:hover > span:last-child, .hero-sectors a:focus-visible > span:last-child { transform: none; }
}
@media print {
  :root { --gutter: 0px; }
  body { color: #11395c; font-size: 11pt; }
  .wrap { width: 100%; }
  .site-header { border: 0; }
  .header-inner { min-height: 70px; }
  .site-header #main-nav, .header-actions, .hero-actions, .hero-sectors, .text-link, .button, .sector-tabs, .sector-visual, .skip-link { display: none !important; }
  .hero, .industries, .method, .contact, .sector-panel, .partners, .horizon { color: #11395c; background: #fff; }
  .hero-stage, .bridge-grid, .section-heading, .vision-grid, .partners-grid, .contact-grid, .sector-panel { display: block; }
  .section-pad, .contact, .partners { padding-block: 24px; }
  .hero-stage { padding-block: 20px; }
  .hero-copy { max-width: none; }
  h1 { font-size: 40pt; }
  h2, .contact h2 { font-size: 25pt; }
  h1 > span, h1 > em { display: inline; }
  h1 > span::after { content: ' '; }
  .hero-media { max-width: 70%; padding-top: 18px; }
  .hero-description, .contact-action > p:first-child, .sector-copy > p:not(.eyebrow), .pilot-example p + p, .method-steps p, .eyebrow.light { color: #566775; }
  .contact h2 em { color: #11395c; }
  .section-label { padding-bottom: 12px; margin-bottom: 20px; }
  .bridge-copy, .vision-description, .contact-action { margin-top: 20px; }
  .service-row { break-inside: avoid; }
  .method-heading { display: block; }
  .method-heading h2 { margin-top: 15px; }
  .method-steps { gap: 18px; margin-top: 24px; }
  .method-steps li, .method-steps li + li { border-color: #d2d8d9; padding: 12px 0 0; }
  .method-steps h3 { margin-top: 12px; }
  .reveal, .motion-active .reveal, .motion-active .reveal:not(.is-visible) { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Keep explanatory copy and concept disclosures comfortable on narrow screens. */
.hero-media figcaption { font-size: 11px; }
@media (max-width: 760px) {
  .hero .eyebrow, .section-label .eyebrow, .sector-copy > .eyebrow, .pilot-example .eyebrow { font-size: 10px; }
  .hero-description, .bridge-copy p + p, .sector-copy > p:not(.eyebrow), .service-row p,
  .method-steps p, .horizon > p:not(.status-label), .roadmap-content > .muted,
  .partners-grid > div:last-child, .contact-action > p:first-child { font-size: 16px; }
  .pilot-example p + p, .service-row .deliverable, .scope-note p, .small { font-size: 14px; }
  .button { font-size: 14px; }
}

/* The founder's Y + Z manifesto is the central bridge in the narrative. */
.manifesto-note { color: var(--muted); font-size: 15px; margin-top: 30px; max-width: 740px; }
.manifesto-full { margin-top: 42px; }
.manifesto-text { max-width: 820px; padding: 12px 0 34px; }
.manifesto-text p, .manifesto-text h3 { white-space: pre-line; font-size: 18px; line-height: 1.75; color: var(--muted); margin-bottom: 23px; }
.manifesto-text .manifesto-emphasis { white-space: pre-line; color: var(--navy); font-size: 22px; line-height: 1.5; font-weight: 500; }
.engineering-roots { display: grid; grid-template-columns: 230px 1fr; gap: 34px; padding-top: 28px; margin-top: 32px; }
.engineering-roots > p:last-child { color: var(--muted); max-width: 740px; font-size: 15px; }
@media(max-width:760px) {
 .manifesto-note, .engineering-roots > p:last-child { font-size: 16px; }
 .manifesto-text p, .manifesto-text h3 { white-space: pre-line; font-size: 16px; line-height: 1.7; }
 .manifesto-text .manifesto-emphasis { white-space: pre-line; font-size: 20px; }
 .engineering-roots { grid-template-columns: 1fr; gap: 14px; }
}


/* Architecture is the flagship: a defined service, followed by scoped examples. */
.architecture { border-bottom: 1px solid var(--line); }
.architecture-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: clamp(44px, 7vw, 112px);
  align-items: end;
}
.architecture-heading > *, .architecture-definition > *, .architecture-journey > *,
.architecture-scope > *, .architecture-actions > * { min-width: 0; }
.architecture-heading h2 { max-width: 760px; }
.architecture-intro { max-width: 470px; color: var(--muted); font-size: 17px; }
.architecture-intro p + p { margin-top: 18px; }
.architecture-intro .status-label { color: var(--gold-ink); font-size: 10px; }
.architecture-service { color: var(--navy); font-size: 19px; line-height: 1.5; font-weight: 500; padding-left: 16px; border-left: 2px solid var(--gold); }
.architecture-journey-label { margin-top: 44px; color: var(--muted); font-size: 10px; }
.architecture-journey-label + .architecture-journey { margin-top: 18px; }
.architecture-definition {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(40px, 7vw, 112px);
  margin-top: 50px;
  padding-top: 30px;
  border-top: 1px solid var(--line);
}
.architecture-definition h3 { max-width: 430px; font-size: clamp(25px, 2.5vw, 35px); line-height: 1.2; }
.architecture-definition > p { max-width: 720px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.architecture-journey {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.architecture-journey li { padding: 26px 26px 4px 0; position: relative; }
.architecture-journey li + li { padding-left: 26px; border-left: 1px solid var(--line); }
.architecture-journey li:last-child { padding-right: 0; }
.architecture-journey .index { font-size: 11px; }
.architecture-journey h3 { font-size: clamp(22px, 2vw, 28px); line-height: 1.2; margin-top: 27px; }
.architecture-journey p { font-size: 16px; line-height: 1.65; margin-top: 15px; color: var(--muted); }
.architecture-scope {
  display: grid;
  grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr);
  column-gap: clamp(36px, 5vw, 80px);
  margin-top: 54px;
  padding: 34px 38px 36px;
  border-top: 2px solid var(--gold);
  background: var(--limestone);
}
.architecture-scope > div:first-child > .eyebrow { color: var(--gold-ink); font-size: 10px; margin-bottom: 18px; }
.architecture-scope > div:first-child > h3 { font-size: clamp(27px, 2.6vw, 35px); line-height: 1.2; max-width: 390px; }
.architecture-scope > div:first-child { grid-column: 1; grid-row: 1; align-self: start; }
.architecture-scope > div:last-child { grid-column: 2; grid-row: 1; }
.architecture-scope > div:last-child > p:not(.architecture-review-note) { color: var(--muted); font-size: 16px; line-height: 1.7; margin-bottom: 24px; }
.architecture-capabilities { margin: 0; padding: 0; list-style: none; counter-reset: capability; }
.architecture-capabilities > li { counter-increment: capability; display: grid; grid-template-columns: 25px minmax(0,1fr); column-gap: 15px; padding: 21px 0 24px; border-top: 1px solid #cdd2ce; }
.architecture-capabilities > li::before { content: counter(capability, decimal-leading-zero); grid-column: 1; grid-row: 1 / 3; padding-top: 4px; font-size: 10px; color: var(--gold-ink); letter-spacing: .08em; }
.architecture-capabilities h4 { grid-column: 2; margin: 0; font-size: 20px; line-height: 1.25; font-weight: 500; letter-spacing: -.025em; color: var(--navy); }
.architecture-capabilities p { grid-column: 2; margin: 10px 0 0; font-size: 16px; line-height: 1.65; color: var(--muted); }
.architecture-review-note { grid-column: 1 / -1; margin-top: 19px; padding-top: 19px; border-top: 1px solid #cdd2ce; color: var(--muted); font-size: 14px; line-height: 1.65; max-width: 100%; }
.architecture-actions { display: flex; align-items: center; gap: 32px; margin-top: 32px; }
.architecture-actions > a { flex-shrink: 0; max-width: 100%; }
.architecture-actions > p { max-width: 670px; color: var(--muted); font-size: 15px; line-height: 1.65; }

@media (min-width: 761px) and (max-width: 1180px) {
  .hero-sectors, .sector-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-sectors a:nth-child(odd) { border-left: 0; padding-left: 0; }
  .hero-sectors a:nth-child(even) { padding-right: 0; }
  .hero-sectors a:nth-child(n+3) { border-top: 1px solid var(--light-line); }
  .sector-tabs button:first-child { padding-left: 24px; }
  .sector-tabs button:nth-child(odd) { border-left: 0; }
  .sector-tabs button:nth-child(n+3) { border-top: 1px solid #b8c2c6; }
  .architecture-heading, .architecture-definition { gap: 38px; }
  .architecture-journey li { padding-right: 20px; }
  .architecture-journey li + li { padding-left: 20px; }
  .architecture-journey li:last-child { padding-right: 0; }
  .architecture-scope { padding-inline: 28px; column-gap: 32px; }
  .architecture-actions { flex-wrap: wrap; gap: 20px 30px; }
}
@media (max-width: 760px) {
  .architecture-heading, .architecture-definition { grid-template-columns: 1fr; gap: 25px; }
  .architecture-intro { max-width: 620px; font-size: 16px; }
  .architecture-intro .status-label { font-size: 10px; }
  .architecture-service { font-size: 17px; }
  .architecture-journey-label { margin-top: 32px; }
  .architecture-definition { padding-top: 25px; margin-top: 34px; gap: 19px; }
  .architecture-definition h3 { max-width: 540px; font-size: 28px; }
  .architecture-definition > p { font-size: 16px; }
  .architecture-journey { grid-template-columns: 1fr; margin-top: 35px; gap: 0; }
  .architecture-journey li, .architecture-journey li + li { display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 0 17px; padding: 24px 0 27px; border-left: 0; border-bottom: 1px solid var(--line); }
  .architecture-journey .index { grid-row: 1 / 3; padding-top: 4px; }
  .architecture-journey h3 { font-size: 25px; margin-top: 0; }
  .architecture-journey p { grid-column: 2; font-size: 16px; margin-top: 13px; }
  .architecture-scope { display: block; margin-top: 36px; padding: 27px 26px 29px; }
  .architecture-scope > div:first-child > .eyebrow { margin-bottom: 15px; }
  .architecture-scope > div:first-child > h3 { font-size: 29px; max-width: 530px; }
  .architecture-scope > div:last-child { margin-top: 25px; }
  .architecture-capabilities h4 { font-size: 20px; }
  .architecture-capabilities p { font-size: 16px; }
  .architecture-review-note { font-size: 16px; margin-top: 20px; }
  .architecture-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 19px; margin-top: 27px; }
  .architecture-actions > p { font-size: 16px; }
}
@media (max-width: 450px) {
  .architecture-definition h3 { font-size: 26px; }
  .architecture-journey { grid-template-columns: 1fr; gap: 0; }
  .architecture-journey li, .architecture-journey li + li { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 15px; padding: 23px 0 25px; border-bottom: 1px solid var(--line); border-top: 0; }
  .architecture-journey .index { grid-row: 1 / 3; padding-top: 4px; }
  .architecture-journey h3 { margin-top: 0; font-size: 25px; }
  .architecture-journey p { grid-column: 2; margin-top: 12px; }
  .architecture-scope { padding-inline: 21px; }
  .architecture-scope > div:first-child > h3 { font-size: 27px; }
  .architecture-actions > a { flex-shrink: 1; }
}
@media print {
  .architecture { border-bottom-color: #d2d8d9; }
  .architecture-heading, .architecture-definition, .architecture-scope { display: block; }
  .architecture-intro, .architecture-definition > p { margin-top: 16px; }
  .architecture-definition { margin-top: 24px; padding-top: 18px; }
  .architecture-journey { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
  .architecture-journey li, .architecture-journey li + li { display: block; border-left: 0; padding: 16px 0; break-inside: avoid; }
  .architecture-journey h3 { margin-top: 12px; }
  .architecture-scope { background: white; margin-top: 24px; padding: 20px 0; }
  .architecture-scope > div:last-child { margin-top: 18px; }
  .architecture-capabilities > li { break-inside: avoid; }
  .architecture-actions { display: block; margin-top: 20px; }
}

/* Three equal entry points; editorial rules carry the hierarchy. */
.service-entry.section-pad, .costs.section-pad, .first-step.section-pad, .faq.section-pad {
  padding-block: clamp(64px, 6.2vw, 96px);
}
.offer-grid > *, .cost-grid > *, .cost-actions > *, .engagement-steps > *, .faq > * { min-width: 0; }
.service-entry .section-heading > p, .costs .section-heading > p,
.first-step .section-heading > p { color: var(--muted); font-size: 16px; }
.offer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 38px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.offer-card { display: flex; flex-direction: column; align-items: flex-start; padding: 28px 32px 27px 0; }
.offer-card + .offer-card { padding-left: 32px; border-left: 1px solid var(--line); }
.offer-card:last-child { padding-right: 0; }
.offer-card > .index { font-size: 11px; }
.offer-card h3 { margin-top: 24px; max-width: 380px; font-size: clamp(27px, 2.5vw, 35px); line-height: 1.15; }
.offer-card > p { margin-top: 17px; font-size: 16px; line-height: 1.65; color: var(--muted); }
.offer-card > .offer-fit { margin-block: 23px 25px; padding-left: 15px; border-left: 2px solid var(--gold); color: var(--navy); }
.offer-card .text-link { margin-top: auto; font-size: 16px; gap: 20px; }
.offer-card .text-link > span:first-child { min-width: 0; }

/* Cost work is organised as an open specification, not a set of tiles. */
.costs { background: var(--limestone); }
.cost-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(32px, 5vw, 76px);
  margin-top: 38px;
}
.cost-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-content: start;
  column-gap: 18px;
  padding: 27px 0 30px;
  border-top: 1px solid #c6cecc;
}
.cost-item > .index { grid-column: 1; grid-row: 1 / 4; padding-top: 6px; }
.cost-item > h3 { grid-column: 2; font-size: clamp(25px, 2.3vw, 32px); line-height: 1.2; }
.cost-item > p { grid-column: 2; margin-top: 14px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.cost-item > .deliverable { margin-top: 19px; padding-left: 15px; border-left: 2px solid var(--gold); color: var(--navy); }
.cost-actions { display: flex; align-items: center; gap: 26px 38px; margin-top: 5px; padding-top: 28px; border-top: 1px solid #c6cecc; }
.cost-actions > a { flex: 0 1 auto; max-width: 100%; font-size: 16px; }
.cost-actions > p, .cost-actions .scope-note { flex: 1 1 340px; max-width: 710px; margin: 0; font-size: 16px; line-height: 1.65; color: var(--muted); }
.cost-actions .scope-note { display: block; }
.cost-actions .scope-note p { font-size: 16px; }

.first-step { border-bottom: 1px solid var(--line); }
.engagement-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0;
  margin: 38px 0 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.engagement-steps > li { padding: 25px 32px 0 0; }
.engagement-steps > li + li { padding-left: 32px; border-left: 1px solid var(--line); }
.engagement-steps > li:last-child { padding-right: 0; }
.engagement-steps h3 { margin-top: 23px; font-size: clamp(25px, 2.2vw, 31px); line-height: 1.2; }
.engagement-steps p { margin-top: 14px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.engagement-note { margin-top: 29px; max-width: 900px; padding-left: 16px; border-left: 2px solid var(--gold); color: var(--muted); font-size: 16px; line-height: 1.65; }

.faq { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(38px, 6vw, 92px); align-items: start; }
.faq .section-heading { display: block; }
.faq .section-heading > p { margin-top: 22px; font-size: 16px; }
.faq h2 { max-width: 460px; font-size: clamp(36px, 3.8vw, 55px); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; min-height: 66px; padding-block: 22px; cursor: pointer; list-style: none; font-size: 19px; font-weight: 500; line-height: 1.4; letter-spacing: -.02em; color: var(--navy); }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::marker { content: ''; }
.faq-list summary::after { content: '+'; flex: 0 0 22px; text-align: center; color: var(--gold-ink); font-size: 24px; font-weight: 400; line-height: 1; }
.faq-list details[open] > summary::after { content: '\2212'; }
.faq-list summary:hover { color: var(--gold-ink); }
.faq-list details > p { max-width: 70ch; margin: 0; padding: 0 46px 23px 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.faq-list details > p + p { margin-top: -10px; }
.faq-list details > p a { text-decoration: underline; text-underline-offset: 4px; }

@media (min-width: 761px) and (max-width: 1180px) {
  .offer-card, .engagement-steps > li { padding-right: 23px; }
  .offer-card + .offer-card, .engagement-steps > li + li { padding-left: 23px; }
  .offer-card:last-child, .engagement-steps > li:last-child { padding-right: 0; }
  .offer-card h3 { font-size: 27px; }
  .offer-card .text-link { gap: 14px; }
  .cost-item { grid-template-columns: 25px minmax(0, 1fr); column-gap: 14px; }
  .cost-actions { flex-wrap: wrap; gap: 21px 30px; }
  .faq { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 38px; }
}
@media (max-width: 760px) {
  .service-entry.section-pad, .costs.section-pad, .first-step.section-pad, .faq.section-pad { padding-block: 58px; }
  .offer-grid, .cost-grid, .engagement-steps { grid-template-columns: minmax(0, 1fr); margin-top: 30px; }
  .offer-card, .offer-card + .offer-card { padding: 25px 0 27px; border-left: 0; }
  .offer-card + .offer-card { border-top: 1px solid var(--line); }
  .offer-card h3 { max-width: 560px; margin-top: 14px; font-size: 29px; }
  .offer-card > p { margin-top: 13px; }
  .offer-card > .offer-fit { margin-block: 18px 15px; }
  .offer-card .text-link { margin-top: 0; font-size: 16px; }
  .cost-item { grid-template-columns: 24px minmax(0, 1fr); gap: 0 14px; padding-block: 24px 27px; }
  .cost-item > h3 { font-size: 27px; }
  .cost-item > p { margin-top: 12px; }
  .cost-item > .deliverable { margin-top: 17px; padding-left: 13px; }
  .cost-actions { flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 0; padding-top: 24px; }
  .cost-actions > a, .cost-actions > p, .cost-actions .scope-note { flex: 0 1 auto; font-size: 16px; }
  .engagement-steps > li, .engagement-steps > li + li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 0 16px; padding: 24px 0 26px; border-left: 0; border-bottom: 1px solid var(--line); }
  .engagement-steps .index { grid-row: 1 / 3; padding-top: 4px; }
  .engagement-steps h3 { margin-top: 0; font-size: 26px; }
  .engagement-steps p { grid-column: 2; margin-top: 12px; }
  .engagement-note { margin-top: 24px; }
  .faq { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .faq h2 { max-width: 600px; font-size: clamp(34px, 6vw, 44px); }
  .faq-list summary { min-height: 64px; padding-block: 20px; gap: 20px; font-size: 18px; }
  .faq-list details > p { padding-right: 0; padding-bottom: 22px; }
}
@media (max-width: 450px) {
  .offer-card h3 { font-size: 27px; }
  .cost-item > h3, .engagement-steps h3 { font-size: 25px; }
  .cost-actions .button { gap: 18px; padding-inline: 18px; }
}
@media print {
  .service-entry.section-pad, .costs.section-pad, .first-step.section-pad, .faq.section-pad { padding-block: 24px; }
  .costs { background: white; }
  .offer-grid, .cost-grid, .engagement-steps { margin-top: 22px; }
  .offer-card, .cost-item, .engagement-steps > li, .faq-list details { break-inside: avoid; }
  .cost-actions { display: block; }
  .cost-actions > p, .cost-actions .scope-note { max-width: none; }
  .faq { display: block; }
  .faq h2 { margin-bottom: 22px; }
  .faq-list summary::after { display: none; }
}
