@font-face {
  font-family: Newsreader;
  src: url("Newsreader-Variable.woff2") format("woff2");
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: Manrope;
  src: url("Manrope-Latin.woff2") format("woff2");
  font-weight: 200 800;
  font-display: swap;
}

:root {
  color-scheme: light;
  --paper: #fafaf7;
  --surface: #fff;
  --paper-alt: #ecf1f5;
  --ink: #142238;
  --text: #36495e;
  --blue: #00367a;
  --blue-deep: #00285c;
  --rule: #bbc7d2;
  --light-rule: #7696bc;
  --focus: var(--blue);
  --serif: Newsreader, Georgia, serif;
  --sans: Manrope, sans-serif;
  --gutter: clamp(1.25rem, 4.45vw, 4rem);
  --gap: clamp(1.5rem, 4.3vw, 4rem);
  --header-size: 5rem;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font: 400 1rem/1.62 var(--sans);
}

main { flex: 1; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
svg, img { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
::selection { color: #fff; background: var(--blue); }

.shell {
  width: min(100%, 90rem);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.split {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--gap);
}

.section { padding-block: clamp(3rem, 6.2vw, 5.6rem); }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link {
  position: absolute;
  z-index: 3;
  top: 1rem;
  left: var(--gutter);
  padding: .7rem 1rem;
  color: #fff;
  background: var(--blue);
  transform: translateY(calc(-100% - 1.5rem));
}

.skip-link:focus { transform: none; }

h1, h2 {
  font-family: var(--serif);
  font-weight: 430;
  letter-spacing: -.037em;
  line-height: .99;
}

h1 { font-size: clamp(3.35rem, 5.55vw, 5.2rem); }
h2 { font-size: clamp(2.5rem, 4.15vw, 3.9rem); }

.eyebrow, .service-area, .mega-heading {
  color: var(--blue);
  font: 780 .75rem/1.45 var(--sans);
  letter-spacing: .105em;
  text-transform: uppercase;
}

.eyebrow { margin-bottom: .95rem; }
.hero-detail > p, .section-intro > p, .network-layout p:not(.eyebrow),
.contact-band p:not(.eyebrow), .page-header p:not(.eyebrow), .prose > p {
  max-width: 47ch;
  color: var(--text);
}

.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--blue);
  font-weight: 750;
  text-decoration-thickness: 1px;
  text-underline-offset: .24em;
}

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 3.125rem;
  padding: .7rem 1.35rem;
  border: 1px solid var(--blue);
  color: #fff;
  background: var(--blue);
  font-size: .925rem;
  font-weight: 760;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: background-color 150ms ease-out, color 150ms ease-out;
}

.site-header { border-bottom: 1px solid var(--rule); }

.header-inner {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.45rem;
  min-height: var(--header-size);
}

.brand {
  display: flex;
  align-items: center;
  gap: .72rem;
  color: var(--blue);
  text-decoration: none;
}

.brand img { width: 3.05rem; height: auto; }

.brand span {
  font: 570 clamp(1.15rem, 1.62vw, 1.55rem)/1 var(--serif);
  letter-spacing: -.025em;
}

.brand small {
  display: block;
  margin-top: .25rem;
  color: var(--text);
  font: 650 .7rem/1.3 var(--sans);
  letter-spacing: .015em;
}

.site-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(.85rem, 2.1vw, 2.1rem);
  font-size: .88rem;
  font-weight: 740;
}

.site-nav a, .site-footer a {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: .23em;
  transition: text-decoration-color 150ms ease-out;
}

.site-nav a { display: flex; align-items: center; min-height: 2.75rem; }
.site-nav [aria-current="page"] { color: var(--blue); text-decoration-color: currentColor; }
.menu-toggle, .site-nav .mobile-contact { display: none; }

.header-contact {
  min-height: 2.75rem;
  padding-inline: 1.1rem;
  color: var(--blue);
  background: transparent;
}

.service-menu summary {
  display: flex;
  align-items: center;
  gap: .48rem;
  min-height: 2.75rem;
  list-style: none;
  cursor: pointer;
}

.service-menu summary::-webkit-details-marker { display: none; }
.service-menu[open] summary, .service-menu.is-current summary { color: var(--blue); }
.service-chevron { flex: none; transition: transform 150ms ease-out; }
.service-menu[open] .service-chevron { transform: rotate(180deg); }

.mega {
  position: absolute;
  z-index: 2;
  inset: 100% var(--gutter) auto auto;
  width: min(calc(100% - var(--gutter) * 2), 54rem);
  max-height: calc(100svh - var(--header-size));
  overflow-y: auto;
  padding: 1.45rem clamp(1.25rem, 3.15vw, 2.75rem) .55rem;
  border: 1px solid var(--rule);
  border-top: 2px solid var(--blue);
  background: var(--surface);
}

.mega-heading { padding-bottom: .8rem; border-bottom: 1px solid var(--rule); }
.mega-services, .country-region ul, .service-list, .detail-list, .related ul, .region ul { padding: 0; list-style: none; }

.mega-services {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(1.25rem, 4vw, 3rem);
}

.mega-services li { border-bottom: 1px solid var(--rule); }

.site-nav .mega-services a {
  display: grid;
  grid-template-columns: 1.125rem minmax(0, 1fr);
  align-items: start;
  gap: .28rem .7rem;
  padding-block: .95rem;
  text-decoration: none;
}

.mega-services .service-icon {
  grid-row: span 2;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: .17rem;
}

.mega-title {
  color: var(--blue);
  font: 460 1.6rem/1.07 var(--serif);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: .16em;
}

.mega-copy { color: var(--text); font-size: .85rem; font-weight: 500; line-height: 1.45; }
.site-nav .mega-index { width: fit-content; margin-top: .4rem; text-decoration-color: currentColor; }
.mega-services [aria-current="page"] .mega-title { text-decoration-color: currentColor; }

@media (min-width: 62.01rem) and (prefers-reduced-motion: no-preference) {
  .service-menu[open] .mega { animation: service-panel-in 150ms ease-out; }
}

@keyframes service-panel-in {
  from { opacity: .85; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.hero { padding-block: clamp(2rem, 4.2vw, 3.8rem) clamp(2.5rem, 4.3vw, 3.9rem); }

.hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 5.8fr) minmax(0, 6.2fr);
  align-items: center;
  gap: var(--gap);
}

.hero-intro h1 { font-size: clamp(2.85rem, 4.15vw, 4.15rem); }
.hero-destination { color: var(--blue); }
.hero-detail { margin-top: 1.1rem; }

.hero-position {
  display: block;
  margin-top: .8rem;
  color: var(--ink);
  font: 490 clamp(1.35rem, 2vw, 1.75rem)/1.18 var(--serif);
  letter-spacing: -.015em;
}

.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .3rem 1.2rem;
  margin-top: 1.3rem;
}

.hero-actions .text-link { font-size: .925rem; }
.hero-visual { padding: .7rem 0 0; border-top: 1px solid var(--rule); }
.masthead { width: 100%; height: auto; }
.masthead image { filter: saturate(.8); }

.hero-visual figcaption {
  margin-top: .7rem;
  padding-top: .65rem;
  border-top: 1px solid var(--rule);
  color: var(--text);
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .035em;
  text-align: right;
}

.network, .process { background: var(--paper-alt); }
.network { padding-top: clamp(2.75rem, 4.4vw, 4.5rem); }

.section-intro {
  align-items: end;
  margin-bottom: clamp(1.6rem, 3.4vw, 3rem);
}

.section-intro > p, .page-header p:not(.eyebrow) { font-size: clamp(1rem, 1.18vw, 1.1rem); }
.section-intro:not(.split) > p:not(.eyebrow) { margin-top: .95rem; }

.market-board {
  display: grid;
  grid-template-columns: minmax(0, 7.6fr) minmax(20rem, 4.4fr);
  align-items: stretch;
}

.map-figure {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1rem, 2.8vw, 2.6rem);
  border: 1px solid var(--rule);
  background: #f6f8fb;
}

.map-surface { position: relative; }
.map-figure img { width: 100%; height: auto; }

.map-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.map-route {
  visibility: hidden;
  fill: none;
  stroke: var(--blue);
  stroke-width: 2.5;
}

.map-route.is-highlighted { visibility: visible; }

.map-trace {
  visibility: hidden;
  fill: none;
  stroke: var(--blue);
  stroke-width: 2;
  stroke-linecap: round;
}

@media (prefers-reduced-motion: no-preference) {
  .map-trace.is-tracing { visibility: visible; }
  .map-trace.is-tracing path {
    stroke-dasharray: 1;
    animation: map-trace 880ms cubic-bezier(.22, .68, .28, 1) both;
  }
}

@keyframes map-trace {
  0% { stroke-dashoffset: 1; opacity: 0; }
  15% { opacity: .55; }
  74% { stroke-dashoffset: 0; opacity: .55; }
  100% { stroke-dashoffset: 0; opacity: 0; }
}

.map-figure figcaption {
  margin-top: .7rem;
  padding-top: .65rem;
  border-top: 1px solid var(--rule);
  color: var(--text);
  font-size: .8rem;
  line-height: 1.45;
}

.country-panel {
  --focus: #fff;
  padding: clamp(1.4rem, 3vw, 2.85rem);
  color: #fff;
  background: var(--blue);
}

.country-panel h3 { max-width: 15ch; font: 440 clamp(2rem, 3.25vw, 3.1rem)/1 var(--serif); letter-spacing: -.035em; }
.country-panel p { margin-top: .85rem; color: #f1f5fa; font-size: .9375rem; line-height: 1.6; }

.country-routes {
  margin-top: 1.25rem;
  border-bottom: 1px solid var(--light-rule);
}

.country-region {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  column-gap: .85rem;
  border-top: 1px solid var(--light-rule);
}

.country-region .market-region-name {
  display: flex;
  align-items: center;
  align-self: start;
  min-height: 2.75rem;
  margin: 0;
  padding-block: .65rem;
  color: #e9f1fb;
  font: 730 .8rem/1.3 var(--sans);
  letter-spacing: .055em;
  text-transform: uppercase;
}

.country-region ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: .65rem;
}

.country-routes a {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  font-size: .9rem;
  font-weight: 750;
  text-decoration-thickness: 1px;
  text-decoration-color: #adc7e4;
  text-underline-offset: .23em;
}

.country-routes a:is(:hover, :focus-visible) {
  text-decoration-color: currentColor;
  text-decoration-thickness: 2px;
}

.country-routes a:focus-visible { outline-offset: 1px; }

.country-panel .text-link {
  margin-top: .45rem;
  color: #fff;
  font-size: .875rem;
}

.directory-layout, .detail-scope .split {
  display: grid;
  grid-template-columns: minmax(0, 3.75fr) minmax(0, 8.25fr);
  gap: var(--gap);
}

.directory-layout .section-intro { margin: .45rem 0 0; }
.service-list { border-top: 2px solid var(--blue); }

.service-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
  align-items: end;
  gap: clamp(1rem, 2.6vw, 2.5rem);
  padding-block: clamp(1.1rem, 2vw, 1.85rem);
  border-bottom: 1px solid var(--rule);
}

.service-icon { flex: none; width: 1.4rem; height: 1.4rem; color: var(--blue); }
.service-area { display: flex; align-items: center; gap: .55rem; margin-bottom: .55rem; font-size: .7rem; }
.service-list h3 { font: 460 clamp(1.65rem, 2.55vw, 2.35rem)/1.02 var(--serif); letter-spacing: -.022em; }

.service-list h3 a {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: #8a9caf;
  text-decoration-thickness: 1px;
  text-underline-offset: .14em;
  transition: color 150ms ease-out, text-decoration-color 150ms ease-out;
}

.service-list p, .detail-list p { max-width: 53ch; color: var(--text); }

.process .section-intro { align-items: start; }
.prose > p + p { margin-top: .9rem; }
.prose > a { margin-top: .6rem; }

[data-formation-timings] {
  padding-left: 1rem;
  border-left: 2px solid var(--blue);
  font-size: .9375rem;
}

.steps {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.45rem;
  padding: 0;
  list-style: none;
  counter-reset: etapa;
}

.steps li {
  counter-increment: etapa;
  padding-top: .9rem;
  border-top: 1px solid var(--blue);
}

.steps li::before {
  display: block;
  margin-bottom: .65rem;
  color: var(--blue);
  font: 720 .85rem/1 var(--sans);
  content: counter(etapa, decimal-leading-zero);
}

.steps h3, .detail-list h3, .region h3 { font-size: 1.1rem; line-height: 1.34; }
.steps p { margin-top: .55rem; color: var(--text); font-size: .925rem; }

.contact-band {
  --text: #fff;
  --focus: #fff;
  color: #fff;
  background: var(--blue);
}

.contact-band .eyebrow { color: #fff; }
.contact-band .split { align-items: end; }
.contact-band h2 { font-size: clamp(2.65rem, 5.35vw, 4.85rem); }
.contact-band .button { margin-top: 1.2rem; }

.button-light {
  border-color: #fff;
  color: var(--blue);
  background: #fff;
}

.page-header {
  padding-block: clamp(1rem, 2.5vw, 2.25rem) clamp(1.9rem, 3.8vw, 3.4rem);
  border-bottom: 1px solid var(--rule);
}

.page-header h1 { font-size: clamp(2.65rem, 5vw, 4.55rem); text-wrap: balance; }

.page-folio {
  margin-bottom: clamp(1.3rem, 2.65vw, 2.4rem);
  border-bottom: 1px solid var(--rule);
}

.page-folio ol {
  display: flex;
  align-items: center;
  gap: 0 .65rem;
  padding: 0;
  list-style: none;
}

.page-folio li { display: flex; align-items: center; }
.page-folio li:not(.folio-context) { flex: none; }
.page-folio li + li:not(.folio-context) { gap: .65rem; }
.page-folio li + li:not(.folio-context)::before { content: "/" / ""; color: var(--text); }

.page-folio a {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  color: var(--blue);
  font-size: .825rem;
  font-weight: 750;
  text-underline-offset: .24em;
}

.folio-context {
  min-width: 0;
  margin-inline-start: auto;
  padding-block: .45rem;
  color: var(--blue);
  font: 780 .75rem/1.35 var(--sans);
  letter-spacing: .095em;
  text-align: right;
  text-transform: uppercase;
}

.folio-context span { display: flex; align-items: center; gap: .45rem; }
.folio-context .service-icon { width: 1.1rem; height: 1.1rem; }
.page-title-row { align-items: center; }
.page-heading h1 + p { margin-top: .8rem; }
.inner-services .page-title-row { margin-bottom: clamp(1.4rem, 3vw, 2.65rem); }

.inner-services .service-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--gap);
  border-top-width: 1px;
}

.inner-services .service-list li { display: block; }
.inner-services .service-list p { margin-top: .75rem; }

.service-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem 1rem;
  margin-top: 1rem;
}

.service-actions .text-link { font-size: .9rem; }
.network-layout .button { margin-top: 1rem; }
.detail-scope { background: var(--surface); }

.service-header + .detail-scope, .markets-map + .section, .about-header + .detail-scope {
  padding-top: clamp(1.9rem, 4vw, 3.5rem);
}

.service-header + .detail-scope h2 { font-size: clamp(2rem, 3.8vw, 3.65rem); }
.service-header + .detail-scope .eyebrow { margin-bottom: .55rem; }

.detail-list li {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: clamp(.5rem, 2.25vw, 1.9rem);
  border-top: 1px solid var(--rule);
  padding-block: 1.2rem;
}

.detail-list li:last-child, .related li:last-child { border-bottom: 1px solid var(--rule); }
.regional-services { background: var(--paper-alt); }
.regional-services .text-link { min-height: 1.65rem; }
.related { background: var(--paper-alt); }
.related li { border-top: 1px solid var(--rule); }
.related li a, .region li a { padding-block: .35rem; }

.network-layout {
  grid-template-columns: minmax(0, 4.1fr) minmax(0, 7.9fr);
  align-items: start;
}

.network-layout p + p { margin-top: .6rem; }
.regions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
.region { border-top: 1px solid var(--blue); padding-top: 1.1rem; }
.region .market-region-name { margin-bottom: .45rem; color: var(--blue); font: 480 1.6rem/1.1 var(--serif); }

.market-details { margin-top: clamp(2.25rem, 4.5vw, 4rem); }

.market-detail {
  display: grid;
  grid-template-columns: minmax(0, 3.75fr) minmax(0, 8.25fr);
  gap: var(--gap);
  padding-block: clamp(1.35rem, 2.5vw, 2.2rem);
  border-top: 1px solid var(--rule);
  scroll-margin-top: 1.2rem;
}

.market-detail:target { border-top-color: var(--blue); }
.market-detail:target h3 { color: var(--blue); }
.market-detail .eyebrow { margin-bottom: .4rem; }
.market-detail h3 { font: 470 clamp(1.95rem, 3vw, 2.8rem)/1.1 var(--serif); letter-spacing: -.025em; }
.market-detail-copy p { max-width: 64ch; color: var(--text); }
.market-detail-links { display: flex; flex-wrap: wrap; gap: 0 1.25rem; margin-top: .45rem; font-size: .925rem; }

.about-layout {
  grid-template-columns: minmax(0, 4.4fr) minmax(0, 7.6fr);
}

.about-layout .prose, .contact-options {
  padding: clamp(1.15rem, 2.7vw, 2.3rem);
  border-top: 1px solid var(--blue);
  background: var(--paper-alt);
}

.contact-options { padding-block: clamp(1rem, 2vw, 1.85rem); }

.about-layout h2, .contact-options h2 { font-size: clamp(2rem, 3.15vw, 2.95rem); }
.prose h2 + p { margin-top: 1rem; }
.about-layout .prose p { max-width: 62ch; }
.contact-detail { border-bottom: 0; }

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 4.4fr) minmax(0, 7.6fr);
  grid-template-areas: "intro options" "brief options";
  gap: 1.8rem var(--gap);
  align-items: start;
}

.contact-intro { grid-area: intro; }
.contact-options { grid-area: options; }
.contact-brief { grid-area: brief; }
.contact-brief h2 { font: 490 1.65rem/1.1 var(--serif); letter-spacing: -.02em; }
.contact-brief ul { margin-top: .55rem; padding-left: 1.15rem; color: var(--text); }
.contact-brief li { padding-left: .2rem; }
.contact-brief li + li { margin-top: .2rem; }
.contact-brief li::marker { color: var(--blue); }

.contact-links { margin: .95rem 0 0; }

.contact-links > div {
  display: grid;
  grid-template-columns: minmax(0, 8rem) minmax(0, 1fr);
  align-items: center;
  gap: .2rem 1.35rem;
  padding-block: .7rem;
  border-top: 1px solid var(--rule);
}

.contact-links dt { color: var(--ink); font-size: .9rem; font-weight: 700; }
.contact-links dd { margin: 0; }
.contact-email { display: flex; width: fit-content; overflow-wrap: anywhere; }

.contact-options p.contact-privacy {
  margin-top: 0;
  padding-top: .95rem;
  border-top: 1px solid var(--rule);
  font-size: .9rem;
}

.site-footer {
  border-top: 1px solid var(--rule);
  color: var(--text);
  background: var(--paper-alt);
  font-size: .875rem;
}

.footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 2fr) minmax(0, 4fr);
  gap: 1.4rem var(--gap);
  padding-block: clamp(1.7rem, 3.1vw, 2.7rem);
}

.site-footer .footer-brand { width: fit-content; text-decoration: none; }
.footer-brand img { width: 2.7rem; }
.footer-brand span { font-size: clamp(1.17rem, 1.6vw, 1.42rem); }
.footer-group .eyebrow { margin-bottom: .38rem; }
.footer-group a { display: inline-flex; align-items: center; min-height: 2.75rem; margin-right: 1rem; }
.footer-group a:last-child { margin-right: 0; }

@media (hover: hover) {
  .site-nav a:hover, .site-footer a:hover, .country-routes a:hover { text-decoration-color: currentColor; }
  .service-menu summary:hover, .mega-services a:hover { color: var(--blue); }
  .mega-services a:hover .mega-title { text-decoration-color: currentColor; }
  .service-list a:hover { color: var(--blue); text-decoration-color: currentColor; }
  .button:hover { color: #fff; background: var(--blue-deep); }
  .button-light:hover { color: var(--blue); background: var(--paper-alt); }
  .text-link:hover { text-decoration-thickness: 2px; }
}

@media (max-width: 69rem) {
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 62rem) {
  .header-inner { grid-template-columns: 1fr auto; min-height: 4.5rem; gap: 0 .75rem; }
  .brand { width: fit-content; gap: .55rem; padding-block: .65rem; }
  .brand img { width: 2.6rem; }
  .brand span { font-size: 1.28rem; }
  .header-contact { display: none; }

  .menu-toggle:not([hidden]) {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    min-height: 2.75rem;
    padding: .5rem 0 .5rem .5rem;
    border: 0;
    color: var(--blue);
    background: transparent;
    font: 750 .875rem/1 var(--sans);
    cursor: pointer;
  }

  .menu-icon { width: 1.25rem; height: .6rem; border-block: 1px solid currentColor; }
  .menu-toggle[aria-expanded="true"] .menu-icon { height: 0; border-bottom: 0; }

  .site-nav {
    grid-column: 1 / -1;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding-block: .35rem .75rem;
    border-top: 1px solid var(--rule);
  }

  .has-js .site-nav:not(.is-open) { display: none; }
  .site-nav .mobile-contact { display: flex; color: var(--blue); }
  .site-nav > * + * { border-top: 1px solid var(--rule); }
  .service-menu summary { justify-content: space-between; padding-right: .35rem; }

  .mega {
    position: static;
    width: 100%;
    max-height: none;
    overflow: visible;
    padding: .8rem 1rem .2rem;
    border: 0;
    background: var(--paper-alt);
  }

  .mega-services { grid-template-columns: minmax(0, 1fr); }
  .mega-title { font-size: 1.4rem; }
  .site-nav .mega-index { margin-top: 0; }
  .detail-list li { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 49rem) {
  .split, .hero-layout, .market-board, .network-layout, .directory-layout, .detail-scope .split, .market-detail,
  .about-layout { grid-template-columns: minmax(0, 1fr); }

  .split, .directory-layout, .detail-scope .split { gap: 1.25rem; }
  .hero-layout { gap: 1.6rem; }
  .hero-intro h1 { font-size: clamp(2.1rem, 8.9vw, 3.75rem); }
  h1 { font-size: clamp(2.95rem, 11.25vw, 4.75rem); }
  h2 { font-size: clamp(2.35rem, 9vw, 3.6rem); }
  .page-title-row { gap: .95rem; }
  .service-header + .detail-scope .split { gap: .95rem; }

  .hero-detail { margin-top: .9rem; }
  .hero-actions { column-gap: .85rem; margin-top: 1rem; }
  .hero-visual { width: min(100%, 38rem); }
  .map-figure { padding: 1rem; }
  .market-board { gap: 0; }
  .country-panel h3 { max-width: none; }
  .service-list li { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
  .inner-services .service-list { grid-template-columns: minmax(0, 1fr); }
  .steps, .regions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem 1rem; }
  .market-detail { gap: .7rem; }
  .contact-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "intro" "options" "brief";
    gap: 1.35rem;
  }
  .contact-links > div { grid-template-columns: minmax(0, 1fr); }
  .contact-links .button { margin-top: .28rem; }
  .footer-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); column-gap: 1rem; }
  .footer-signature { grid-column: 1 / -1; }
  .site-footer .footer-brand { padding-block: 0; }
}

@media (max-width: 22.5rem) {
  :root { --gutter: 1.125rem; }
  .site-header .brand span { font-size: 1.1rem; }
  .site-header .brand img { width: 2.25rem; }
  .hero { padding-top: 1.55rem; }
  .hero-layout { gap: 1.1rem; }
  .hero-intro h1 { font-size: clamp(1.9rem, 9.75vw, 2.15rem); }
  .hero-detail > p { font-size: .9375rem; line-height: 1.55; }
  .hero-position { font-size: 1.2rem; }
  .hero-actions { margin-top: .85rem; }
  .hero-actions .button { padding-inline: .8rem; }
  .hero-actions .button, .hero-actions .text-link { font-size: .85rem; }
  .hero-art { display: flex; align-items: flex-end; overflow: hidden; aspect-ratio: 2.5; }
  .masthead { flex: none; }
  .country-region { grid-template-columns: minmax(0, 1fr); row-gap: .4rem; padding-top: .65rem; }
  .country-region .market-region-name { display: block; min-height: 0; padding-block: 0; }
  .page-folio ol, .page-folio li + li:not(.folio-context) { gap: 0 .5rem; }
  .folio-context { letter-spacing: .065em; }
  .folio-context span { flex-direction: row-reverse; gap: .32rem; }
  .service-header { padding-bottom: 1.55rem; }
  .service-actions .text-link { min-height: 2.25rem; }
  .service-header + .detail-scope { padding-top: 1.5rem; }
  .service-header + .detail-scope h2 { font-size: 1.8rem; }
  .service-header + .detail-scope .split { gap: .75rem; }
  .service-header + .detail-scope .detail-list li:first-child { padding-top: .9rem; }
  .contact-options { padding-inline: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .button, .site-nav a, .site-footer a, .service-list a, .service-chevron { transition: none; }
}

@media (forced-colors: active) {
  .button { border-color: ButtonText; }
}
