@font-face {
  font-family: Manrope;
  src: url("assets/manrope.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --brand: #00367a;
  --deep: #0b2033;
  --night: #081827;
  --paper: #faf6ef;
  --surface: #fff;
  --ink: #13212d;
  --body: #384a5a;
  --ice: #b9deff;
  --rule: #cbd4db;
  --mist: #e7f0f5;
  --gutter: clamp(1.25rem, 5vw, 4.75rem);
  color: var(--ink);
  font-family: Manrope, Arial, sans-serif;
  font-synthesis: none;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--surface); }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
p, h1, h2 { margin: 0; }
section, details[id] { scroll-margin-top: 1.5rem; }
:focus-visible { outline: 2px solid #087dc4; outline-offset: 5px; }
.masthead :focus-visible, .network :focus-visible, .contact :focus-visible, .site-footer :focus-visible { outline-color: #a8e4ff; }
.project-bar :focus-visible, .mega :focus-visible { outline-color: #087dc4; }
::selection { background: #b9deff; color: #092648; }
.wrap { width: min(100%, 92rem); margin-inline: auto; padding-inline: var(--gutter); }
.skip { position: fixed; z-index: 8; top: .75rem; left: .75rem; padding: .85rem 1rem; background: #fff; color: var(--brand); transform: translateY(-180%); }
.skip:focus { transform: translateY(0); }

.masthead { background: var(--night); color: #fff; }
.hero-screen { grid-area: film; min-width: 0; padding: .5rem; border: 1px solid #ffffff35; background: var(--deep); }
.hero-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--night); }
.hero-media img, .hero-media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: saturate(.82) brightness(.98);
}
.hero-media video { opacity: 0; transition: opacity .3s ease-out; }
.hero-media video.is-visible { opacity: 1; }
.site-header { position: relative; z-index: 3; border-bottom: 1px solid var(--rule); background: var(--surface); color: var(--ink); }
.header-inner { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 5rem; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; white-space: nowrap; }
.brand img { width: 1.5rem; height: 2.85rem; object-fit: contain; }
.site-header .brand { color: var(--brand); }
.site-header .brand img { filter: brightness(0) saturate(100%) invert(13%) sepia(74%) saturate(2995%) hue-rotate(202deg) brightness(94%) contrast(101%); }
.brand b, .brand small { display: block; }
.brand b { font-size: .92rem; font-weight: 800; letter-spacing: .17em; }
.brand small { font-size: .72rem; margin-top: .22rem; letter-spacing: .035em; }
.site-header .brand small { color: var(--body); }
.site-footer .brand small { color: #dbeafa; }
.site-nav { display: flex; align-items: center; gap: clamp(.85rem, 1.7vw, 2.15rem); font-size: .88rem; font-weight: 700; }
.site-nav a:hover, .site-nav summary:hover { text-decoration: underline; text-underline-offset: .35em; }
.site-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: .35em; }
.locale-switch { display: flex; align-items: center; gap: .18rem; padding-inline-start: .75rem; border-inline-start: 1px solid var(--rule); color: var(--body); font-size: .78rem; letter-spacing: .06em; }
.locale-current { color: var(--brand); font-weight: 800; }
.locale, .locale-current { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 2.25rem; min-block-size: 2.75rem; }
.locale:hover { background: var(--mist); }
.site-nav .nav-contact { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .62rem 1rem; border: 1px solid var(--brand); color: var(--brand); white-space: nowrap; transition: background-color .16s ease, color .16s ease; }
.site-nav .nav-contact:hover { background: var(--brand); color: #fff; text-decoration: none; }
.nav-toggle { display: inline-flex; align-items: center; gap: .45rem; border: 1px solid var(--rule); color: var(--brand); background: var(--surface); min-height: 2.75rem; padding: .5rem .75rem; font-size: .85rem; font-weight: 750; }
.nav-toggle[aria-expanded="true"] { color: #fff; border-color: var(--brand); background: var(--brand); }
.nav-close-icon, .nav-toggle[aria-expanded="true"] .nav-open-icon { display: none; }
.nav-toggle[aria-expanded="true"] .nav-close-icon { display: inline; }
.service-menu summary { display: flex; align-items: center; gap: .45rem; list-style: none; cursor: pointer; }
.service-menu summary::after { content: ""; display: block; inline-size: .42rem; block-size: .42rem; border: solid currentColor; border-width: 0 1px 1px 0; transform: translateY(-.14rem) rotate(45deg); }
.service-menu[open] summary::after { transform: translateY(.08rem) rotate(225deg); }
summary::-webkit-details-marker { display: none; }
.mega {
  position: absolute;
  top: 100%;
  right: var(--gutter);
  display: grid;
  grid-template-columns: minmax(10rem, .44fr) minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 2rem);
  width: min(59rem, calc(100% - 2 * var(--gutter)));
  padding: 1.45rem;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--rule);
  border-top: 2px solid var(--brand);
  box-shadow: 0 1.15rem 2.5rem rgb(0 0 0 / .13);
}
.mega-head { padding: 1.25rem; align-self: stretch; background: var(--paper); border-inline-start: 2px solid var(--brand); color: var(--brand); }
.mega-head p { max-width: 17ch; margin-bottom: .5rem; font-size: 1.45rem; line-height: 1.16; letter-spacing: -.025em; }
.mega-index { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .86rem; }
.site-nav .mega-index { text-decoration: underline; text-underline-offset: .28em; }
.mega-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .75rem; margin: 0; padding: 0; list-style: none; }
.mega-links li { border-top: 1px solid var(--rule); }
.mega-link { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); align-items: start; gap: .7rem; min-height: 100%; padding: .95rem .8rem; line-height: 1.35; transition: background-color .16s ease; }
.mega-link svg { color: var(--brand); }
.mega-link strong { display: block; font-weight: 750; }
.mega-link small { display: block; margin-top: .25rem; color: var(--body); font-size: .78rem; font-weight: 500; }
.site-nav .mega-link:is(:hover, :focus-visible, [aria-current="page"]) { background: #e8edf1; text-decoration: none; }
.mega-link:is(:hover, :focus-visible, [aria-current="page"]) strong { color: var(--brand); text-decoration: underline; text-underline-offset: .24em; }
.mega-link:focus-visible { outline-offset: -2px; }
@media (prefers-reduced-motion: no-preference) {
  .service-menu[open] .mega { animation: reveal-services .16s cubic-bezier(.2, .65, .3, 1) both; }
  @keyframes reveal-services {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

.hero {
  display: grid;
  grid-template-areas: "copy film";
  grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
  gap: clamp(1.65rem, 4vw, 3.6rem);
  align-items: center;
  min-height: clamp(30rem, 37vw, 38rem);
  padding-block: clamp(2.4rem, 4.2vw, 4.5rem);
}
.hero-content { grid-area: copy; min-width: 0; }
.hero h1 { max-width: 23ch; font-size: clamp(2.12rem, 4.1vw, 4.1rem); font-weight: 735; line-height: 1.065; letter-spacing: -.042em; }
.hero-origin, .hero-headline { display: block; }
.hero-origin { text-wrap: balance; }
.hero-country { font-weight: 800; }
.hero-headline > * { display: inline-block; max-width: 100%; }
.hero-headline strong { color: #d2e7fa; font-weight: inherit; }
.hero-opportunity { display: block; margin-top: .85rem; font-size: clamp(1rem, 1.4vw, 1.29rem); line-height: 1.36; font-weight: 680; letter-spacing: -.012em; }
.hero-intro { max-width: 47ch; margin-top: 1rem; color: #dfeaf4; font-size: clamp(1rem, 1.25vw, 1.13rem); line-height: 1.63; }
.hero-content .hero-link { min-height: 3rem; margin-top: 1.2rem; padding: .65rem 1.2rem; background: var(--paper); color: var(--brand); text-decoration: none; font-size: .9rem; transition: background-color .18s ease; }
.hero-content .hero-link:hover { background: var(--surface); }
.film-strip {
  display: none;
  align-items: center;
  justify-content: flex-end;
  gap: .85rem;
  min-height: 2.75rem;
  padding: 0 .1rem;
}
.js .film-strip { display: flex; }
.film-play {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  flex: none;
  min-height: 2.75rem;
  padding: .45rem .55rem;
  border: 0;
  background: transparent;
  color: #e1eaf2;
  font-size: .82rem;
  font-weight: 700;
  transition: background-color .16s ease, color .16s ease;
}
.film-play:hover { background: #ffffff12; color: #fff; }
.film-play:focus-visible { outline-offset: -2px; }
.film-play svg { flex: 0 0 auto; color: var(--ice); }
.film-status:empty { display: none; }
.film-status { padding-block: .45rem; color: var(--ice); font-size: .82rem; line-height: 1.45; text-align: right; }
.project-intake { padding-block: clamp(1.35rem, 2.35vw, 2.15rem); border-bottom: 1px solid var(--rule); background: var(--paper); }
.project-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: .75rem 1.1rem; }
.project-bar > p { flex-basis: 100%; font-size: clamp(1.2rem, 1.65vw, 1.46rem); font-weight: 790; line-height: 1.3; letter-spacing: -.02em; }
.project-topics { display: flex; flex-wrap: wrap; gap: .36rem clamp(.45rem, 1vw, .85rem); min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.project-choice { position: relative; display: block; max-width: 100%; cursor: pointer; }
.project-choice input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }
.project-choice span { display: flex; align-items: center; gap: .48rem; min-height: 3rem; padding: .5rem .64rem; border-bottom: 1px solid #9baebc; color: var(--deep); font-size: .86rem; font-weight: 720; line-height: 1.33; transition: background-color .16s ease, border-color .16s ease; }
.project-choice span::before { content: ""; flex: 0 0 .75rem; block-size: .75rem; border: 1px solid #58708a; border-radius: 50%; }
.project-choice:hover span { background: var(--mist); }
.project-choice input:checked + span { border-color: var(--brand); background: var(--mist); color: var(--brand); box-shadow: inset 0 -1px var(--brand); }
.project-choice input:checked + span::before { border-color: var(--brand); background: var(--brand); box-shadow: inset 0 0 0 2px var(--mist); }
.project-choice input:focus-visible + span { outline: 2px solid #087dc4; outline-offset: 2px; }
.project-actions { display: flex; align-items: end; gap: clamp(.75rem, 2vw, 1.8rem); max-width: 100%; }
.project-city { display: grid; align-content: center; gap: .38rem; width: clamp(10rem, 14vw, 14rem); min-width: 0; }
.project-city span { color: var(--body); font-size: .76rem; font-weight: 800; }
.project-bar select { font: inherit; font-size: .9rem; font-weight: 700; color: var(--ink); background: var(--surface); border: 1px solid #869aac; border-radius: 0; min-height: 3rem; width: 100%; padding-inline: .62rem; }
.project-bar .primary { min-height: 3rem; }
.primary { display: inline-flex; justify-content: center; align-items: center; min-height: 3.25rem; border: 0; padding: .95rem 1.2rem; color: #fff; background: var(--brand); font-size: .91rem; font-weight: 800; transition: background-color .18s ease, color .18s ease; text-align: center; }
.primary:hover { background: #075094; }

.network { --route-rule: #7a9ec3; background: var(--brand); color: #fff; padding-block: clamp(2.9rem, 5vw, 5.3rem); }
.section-heading, .contact-grid, .network-intro { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2.2rem, 7vw, 6.8rem); align-items: start; }
h2 { font-size: clamp(2.15rem, 4.25vw, 3.85rem); font-weight: 770; line-height: 1.08; letter-spacing: -.038em; text-wrap: balance; }
.network h2 { max-width: 14ch; }
.network-intro { align-items: center; }
.network-copy p, .contact p { color: #e4edf8; line-height: 1.7; }
.network-copy p { max-width: 49ch; font-size: clamp(1rem, 1.45vw, 1.125rem); }
.network-copy .text-link { margin-top: .5rem; }
.text-link { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 750; text-decoration: underline; text-underline-offset: .28em; text-decoration-thickness: 1px; }
.text-link:hover { text-decoration-thickness: 2px; }
.network-route { margin: clamp(1.8rem, 4vw, 3.5rem) 0 0; border-block: 1px solid var(--route-rule); }
.route-title { padding-block: 1rem .2rem; color: var(--ice); font-size: .875rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.route-nodes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 1rem 0 1.9rem; margin: 0; list-style: none; }
.route-nodes li { position: relative; padding: 1.8rem .75rem 0; text-align: center; }
.route-nodes li:not(:last-child)::before { position: absolute; content: ""; inset: .5rem -50% auto 50%; border-top: 1px solid var(--route-rule); }
.route-nodes li::after {
  position: absolute;
  content: "";
  inset: .5rem auto auto 50%;
  width: .62rem;
  height: .62rem;
  transform: translate(-50%, -50%);
  border: 1px solid var(--ice);
  border-radius: 50%;
  background: var(--brand);
}
.route-nodes li:nth-child(2)::after { width: .78rem; height: .78rem; background: var(--ice); box-shadow: 0 0 0 4px var(--brand); outline: 1px solid var(--ice); outline-offset: 4px; }
.route-stop, .route-note { display: block; }
.route-stop { font-size: clamp(1.18rem, 2.45vw, 2.15rem); font-weight: 790; line-height: 1.15; letter-spacing: -.025em; }
.route-note { margin-top: .38rem; color: #e4edf8; font-size: clamp(.94rem, 1.4vw, 1.0625rem); line-height: 1.48; }
.route-nodes li:nth-child(2) .route-stop { color: var(--ice); }
.network-markets { display: grid; grid-template-columns: minmax(0, .32fr) minmax(0, 1fr); align-items: start; gap: .75rem clamp(1rem, 3.2vw, 3rem); padding: 1.15rem 0 1.25rem; border-top: 1px solid var(--route-rule); }
.network-label { max-width: 26ch; color: var(--ice); font-size: .9rem; font-weight: 780; }
.market-groups { display: grid; grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(0, 1fr)); gap: .9rem clamp(.85rem, 2.3vw, 2rem); margin: 0; }
.market-groups > div + div { padding-inline-start: clamp(.75rem, 1.6vw, 1.5rem); border-inline-start: 1px solid var(--route-rule); }
.market-groups dt { font-size: .9rem; font-weight: 800; }
.market-groups dd { margin: .28rem 0 0; }
.country-list { display: flex; flex-wrap: wrap; gap: .2rem .7rem; padding: 0; margin: 0; list-style: none; color: #e4edf8; font-size: .9rem; }

.section { padding-block: clamp(4rem, 7.9vw, 7.2rem); }
.section-heading { align-items: end; margin-bottom: 2.5rem; }
.section-heading p { max-width: 40ch; color: var(--body); font-size: 1.05rem; line-height: 1.65; }
.service-section { padding-block: clamp(3rem, 6vw, 5.4rem); background: var(--surface); }
.service-section--catalogue { padding-block-start: clamp(1.25rem, 3vw, 2.7rem); }
.service-overview { display: grid; grid-template-columns: minmax(0, .61fr) minmax(0, 1.39fr); gap: clamp(2rem, 5vw, 5rem); }
.service-intro h2 { max-width: 15ch; font-size: clamp(2rem, 3.25vw, 3.3rem); }
.service-intro p { max-width: 39ch; margin-top: 1.15rem; color: var(--body); font-size: 1.04rem; line-height: 1.65; }
.service-intro .text-link { margin-top: .85rem; color: var(--brand); }
.service-grid { margin: 0; padding: 0; list-style: none; border-top: 1px solid #8d9baa; }
.service-grid > li { border-bottom: 1px solid var(--rule); }
.service-card { display: grid; grid-template-columns: 2rem minmax(0, .86fr) minmax(0, 1.45fr) max-content; gap: clamp(.8rem, 2vw, 1.8rem); align-items: start; padding: 1.5rem 1rem; border-inline-start: 2px solid transparent; transition: background-color .18s ease, border-color .18s ease; }
.service-card svg { color: var(--brand); }
.service-card :is(h2, h3), .step-grid h3 { margin: 0; font-size: clamp(1.15rem, 2vw, 1.65rem); font-weight: 770; line-height: 1.23; letter-spacing: -.024em; }
.service-card :is(h2, h3) { text-wrap: pretty; }
.service-points, .step-grid p { color: var(--body); font-size: .95rem; line-height: 1.6; }
.service-points { display: grid; column-gap: 1.8rem; row-gap: .25rem; margin: 0; padding-inline-start: 1.05rem; }
.service-points li::marker { color: var(--brand); }
.service-more { margin-top: .26rem; color: var(--brand); font-size: .84rem; font-weight: 800; text-decoration: underline; text-underline-offset: .27em; }
.service-card:is(:hover, :focus-visible) { border-inline-start-color: var(--brand); background: var(--mist); }
.service-card:focus-visible { outline-offset: -2px; }
.service-card:is(:hover, :focus-visible) :is(h2, h3) { color: var(--brand); }
.service-section--home .service-card { grid-template-columns: 2rem minmax(0, 1fr) max-content; gap: .65rem 1.15rem; }
.service-section--home .service-points { grid-column: 2 / -1; grid-row: 2; }
.service-section--home .service-more { grid-column: 3; grid-row: 1; }
.process { background: var(--mist); }
.step-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1.5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.step-grid li { display: grid; grid-template-columns: 1.9rem minmax(0, 1fr); align-content: start; gap: .5rem .55rem; padding: 1.3rem .35rem 1.45rem 0; border-top: 1px solid #bbc7d3; }
.step-grid li span { grid-row: span 2; padding-top: .22rem; color: var(--brand); font-size: .82rem; font-weight: 800; letter-spacing: .045em; font-variant-numeric: tabular-nums; }
.step-grid li p { grid-column: 2; max-width: 38ch; }
.formation-timings { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 2fr); gap: .8rem 1.5rem; padding: 1.4rem clamp(1rem, 2.8vw, 2.4rem); border: 1px solid #bbc7d3; background: #f8fafc; }
.formation-timings > p { color: var(--brand); font-size: .88rem; font-weight: 800; }
.formation-timings dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1.5rem; margin: 0; }
.formation-timings dt { color: var(--brand); font-size: .87rem; font-weight: 750; }
.formation-timings dd { margin: 0; }
.formation-timings dd strong { display: block; margin: .16rem 0 .24rem; font-size: clamp(1.3rem, 2.1vw, 1.85rem); line-height: 1.2; letter-spacing: -.03em; }
.formation-timings dd span { color: var(--body); font-size: .87rem; line-height: 1.45; }
.process .text-link { color: var(--brand); margin-top: 1.2rem; }
.team-grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); align-items: center; gap: clamp(2rem, 7vw, 6.5rem); }
.team-grid img { width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; }
.team-grid h2 + p { margin-top: 1.25rem; max-width: 44ch; color: var(--body); line-height: 1.7; }
.team-grid .text-link { margin-top: .75rem; color: var(--brand); }
.service-list { border-top: 1px solid var(--ink); }
.service-list details { border-bottom: 1px solid var(--rule); }
.service-list summary { display: flex; align-items: center; justify-content: space-between; gap: .9rem; min-height: 4.3rem; padding: 1.15rem 1rem; list-style: none; cursor: pointer; font-size: clamp(1.13rem, 1.85vw, 1.62rem); font-weight: 760; line-height: 1.36; letter-spacing: -.02em; transition: background-color .16s ease; }
.service-list summary:is(:hover, :focus-visible), .service-list details[open] summary { color: var(--brand); background: #f3f7fa; }
.service-list summary:focus-visible { outline-offset: -2px; }
.service-list details[open] { border-bottom-color: var(--brand); background: #f3f7fa; }
.disclosure { position: relative; flex: 0 0 1.1rem; width: 1.1rem; height: 1.1rem; margin-right: .18rem; }
.disclosure::before, .disclosure::after { position: absolute; content: ""; left: 0; top: calc(50% - .5px); width: 100%; height: 1px; background: currentColor; }
.disclosure::after { transform: rotate(90deg); transition: transform .18s ease; }
details[open] .disclosure::after { transform: rotate(0); }
.service-detail { max-width: 70ch; padding: .25rem 1rem 1.5rem; color: var(--body); line-height: 1.7; }
.service-detail > p + p, .service-detail > a { margin-top: .7rem; }
.service-detail > a { color: var(--brand); }
.capital-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1.1rem 0; border-block: 1px solid var(--rule); }
.capital-facts > div { display: grid; align-content: space-between; gap: .4rem; padding: .85rem .9rem; }
.capital-facts > div + div { border-inline-start: 1px solid var(--rule); }
.capital-facts dt { font-size: .91rem; font-weight: 700; line-height: 1.45; }
.capital-facts dd { margin: 0; color: var(--brand); font-size: clamp(1.4rem, 3.2vw, 2.25rem); font-weight: 780; font-variant-numeric: tabular-nums; line-height: 1.15; }

.formation-resources { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem clamp(1rem, 3vw, 3rem); padding: .75rem 0 1rem; border-bottom: 1px solid var(--rule); }
.formation-resources p { color: var(--body); font-weight: 780; }
.formation-resources ul { display: flex; flex-wrap: wrap; gap: 0 clamp(1rem, 3vw, 3rem); margin: 0; padding: 0; list-style: none; }
.formation-resources .text-link { margin-top: 0; color: var(--brand); }

.inner-lead { padding-block-end: clamp(1.6rem, 3vw, 2.8rem); border-bottom: 1px solid var(--rule); background: var(--paper); }
.inner-route { background: var(--deep); color: var(--surface); }
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .65rem; font-size: .84rem; }
.crumb-step { display: inline-flex; align-items: center; gap: .65rem; min-width: 0; max-width: 100%; }
.crumbs a, .crumbs [aria-current="page"] { display: inline-flex; align-items: center; min-height: 2.75rem; padding-block: .38rem; border-block-end: 2px solid transparent; }
.crumbs a { color: var(--ice); text-decoration: underline; text-underline-offset: .24em; }
.crumbs a:focus-visible { outline-color: var(--ice); outline-offset: -2px; }
.crumbs [aria-current="page"] { min-width: 0; border-block-end-color: var(--ice); font-weight: 750; overflow-wrap: anywhere; }
.crumb-separator { color: var(--ice); }
.inner-lead-grid, .inner-body { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .82fr); gap: clamp(2rem, 6vw, 6rem); }
.inner-lead-grid { align-items: center; padding-block-start: clamp(1.35rem, 3vw, 3rem); }
.inner-lead--text .inner-lead-grid, .inner-body--solo { grid-template-columns: minmax(0, 52rem); }
.inner-lead--service .inner-lead-grid { align-items: start; }
.service-mark { display: flex; align-items: center; gap: .95rem; margin-bottom: 1.1rem; color: var(--brand); }
.service-mark::after { content: ""; width: 3.4rem; border-top: 1px solid #869aac; }
.inner-lead h1 { max-width: 18ch; font-size: clamp(2.35rem, 4.6vw, 4.5rem); line-height: 1.08; letter-spacing: -.04em; font-weight: 780; text-wrap: pretty; overflow-wrap: anywhere; }
.inner-lead-copy p { max-width: 56ch; margin-top: 1.15rem; color: var(--body); font-size: clamp(1rem, 1.4vw, 1.22rem); line-height: 1.67; }
.reading-action { margin-top: 1.15rem; }
.primary-outline { min-height: 2.75rem; padding: .6rem .95rem; border: 1px solid var(--brand); background: transparent; color: var(--brand); }
.primary-outline:hover { background: var(--brand); color: #fff; }
.lead-frame { margin: 0; border-block-end: 1px solid var(--rule); }
.lead-frame img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; }
.lead-frame figcaption { padding-block: .55rem; color: var(--brand); font-size: .78rem; font-weight: 750; }
.inner-lead--catalogue .lead-frame img { aspect-ratio: 3 / 1; }
.lead-contents { padding: 1rem clamp(1rem, 2vw, 1.6rem) .55rem; border: 1px solid var(--rule); border-block-start-color: var(--brand); background: var(--surface); }
.lead-contents p { margin: 0 0 .62rem; color: var(--brand); font-size: 1.06rem; font-weight: 800; }
.lead-contents ol { margin: 0; padding: 0; list-style: none; }
.lead-contents a { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); align-items: baseline; gap: .5rem; min-height: 2.75rem; padding: .75rem .7rem; border-block-start: 1px solid var(--rule); color: var(--ink); font-size: .94rem; font-weight: 700; line-height: 1.45; }
.lead-contents a:is(:hover, :focus-visible, [aria-current="location"]) { color: var(--brand); background: var(--mist); text-decoration: underline; text-underline-offset: .23em; }
.lead-contents a:focus-visible { outline-offset: -2px; }
.lead-contents a[aria-current="location"] { box-shadow: inset 2px 0 var(--brand); background: var(--paper); }
.guide-contents a { display: block; }
.lead-contents span, .article-index { color: var(--brand); font-size: .8rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.reading { padding-block: clamp(2rem, 4vw, 4rem) clamp(3rem, 5.5vw, 5.5rem); }
.inner-body { align-items: start; }
.reading .article > section:first-child { border-top: 1px solid var(--rule); padding-top: 1.05rem; }
.article > section { padding-bottom: 2rem; margin-bottom: 2rem; border-bottom: 1px solid var(--rule); }
.article > section:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.article-entry { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: clamp(.7rem, 2.6vw, 2rem); align-items: baseline; }
.article > section:target h2 { color: var(--brand); }
.article h2 { margin-bottom: .75rem; font-size: clamp(1.55rem, 2.7vw, 2.5rem); text-wrap: pretty; }
.article p, .article li { max-width: 65ch; color: var(--body); line-height: 1.75; }
.article ul { padding-inline-start: 1.2rem; }
.article li + li { margin-top: .35rem; }
.disciplines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.6rem; margin: 1.35rem 0 0; }
.disciplines > div { padding-block: 1rem; border-top: 1px solid var(--rule); }
.disciplines dt { display: flex; align-items: center; gap: .65rem; font-weight: 800; line-height: 1.4; }
.disciplines .line-icon { flex: none; color: var(--brand); }
.disciplines dd { margin: .45rem 0 0 2.35rem; color: var(--body); line-height: 1.6; }
.sidebar { padding: .6rem 0 0; border-top: 1px solid var(--brand); }
.sidebar-heading { color: var(--brand); font-weight: 800; }
.sidebar p.sidebar-heading { padding-block: .65rem .8rem; border-bottom: 1px solid var(--rule); }
.sidebar a { display: block; min-height: 2.75rem; padding-block: .75rem; border-bottom: 1px solid #bbc7d3; color: var(--brand); }
.sidebar a:hover, .sidebar a[aria-current="page"] { text-decoration: underline; text-underline-offset: .25em; }
.sidebar a:last-child { border-bottom: 0; }
.sidebar h2 { margin-bottom: 1rem; font-size: 1.5rem; }
.inner-lead--contact .inner-lead-grid { grid-template-areas: "intro channels" "draft channels"; align-items: start; row-gap: 0; }
.inner-lead--contact .inner-lead-copy { grid-area: intro; }
.channels { grid-area: channels; padding: clamp(1.1rem, 2.8vw, 2rem); border: 1px solid var(--rule); border-block-start-color: var(--brand); background: var(--surface); }
.channel-links { display: grid; border-block: 1px solid var(--rule); }
.channel-links a { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); min-inline-size: 0; gap: .65rem; align-items: start; padding: .75rem .5rem; border: 0; font-weight: 700; overflow-wrap: anywhere; }
.channel-links a + a { border-block-start: 1px solid var(--rule); }
.channel-links a:is(:hover, :focus-visible) { background: var(--mist); }
.channel-links a:focus-visible { outline-offset: -2px; }
.channels .line-icon { flex: none; color: var(--brand); }
.channel-links .line-icon { margin-top: .12rem; }
.channels .official-channel { display: inline-flex; align-items: center; gap: .65rem; text-decoration: underline; text-underline-offset: .24em; }
.channel-links small { display: block; margin-bottom: .2rem; color: var(--body); font-size: .78rem; }
.project-draft { grid-area: draft; max-width: 37rem; margin-top: 1.5rem; padding-top: 1.15rem; border-top: 1px solid var(--rule); }
.draft-summary { display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: baseline; margin: 0 0 1.05rem; padding: .7rem .85rem; border-inline-start: 1px solid var(--brand); background: var(--mist); }
.draft-summary dt { color: var(--brand); font-weight: 800; }
.draft-summary dd { margin: 0; color: var(--body); line-height: 1.55; }
.project-draft label { display: block; font-weight: 800; }
.project-draft p { margin-top: .3rem; font-size: .9rem; line-height: 1.55; }
.project-draft textarea { display: block; width: 100%; min-height: 5.25rem; margin-block: .8rem 1rem; padding: .75rem; resize: vertical; border: 1px solid #7c92a7; border-radius: 0; background: var(--surface); color: var(--ink); font: inherit; line-height: 1.55; }
.project-draft .primary { text-align: center; }

.contact { padding-block: clamp(3.8rem, 7vw, 6rem); background: var(--brand); color: #fff; }
.contact h2 { max-width: 14ch; }
.contact p { max-width: 39ch; margin-bottom: 1rem; }
.primary-light { color: var(--brand); background: var(--paper); }
.primary-light:hover { background: var(--ice); }
.contact-links { display: flex; flex-wrap: wrap; gap: 0 1.6rem; margin-top: 1.05rem; padding: .25rem 0 0; border-top: 1px solid #7a9ec3; font-size: .92rem; }
.contact-links a { display: inline-flex; align-items: center; min-height: 2.75rem; text-decoration: underline; text-underline-offset: .23em; }
.contact-links a:hover { text-decoration-thickness: 2px; }
.site-footer { border-top: 1px solid #ffffff35; background: var(--deep); color: #fff; }
.footer-inner { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: start; gap: 1.15rem 2rem; padding-block: 2.2rem 1.2rem; font-size: .85rem; }
.footer-identity .brand { width: fit-content; }
.footer-identity p { margin-top: .7rem; color: #dbeafa; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 0 clamp(1.1rem, 3vw, 3rem); }
.footer-nav a, .footer-legal a { display: inline-flex; align-items: center; min-height: 2.75rem; text-underline-offset: .23em; }
.footer-nav a { font-weight: 750; }
.footer-nav a:is(:hover, [aria-current="page"]), .footer-legal a { text-decoration: underline; }
.footer-legal { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0 1.3rem; padding: .45rem 0 0; border-top: 1px solid #ffffff35; color: #dbeafa; }

@media (min-width: 74rem) {
  .service-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 64rem) {
  .service-overview { grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); }
  .header-inner { min-height: 4.65rem; flex-wrap: wrap; gap: .75rem; }
  .site-nav { width: 100%; flex-wrap: wrap; gap: .65rem 1rem; padding-bottom: .9rem; }
  .js .site-nav { position: absolute; top: 100%; left: 0; right: 0; display: grid; gap: 0; max-height: calc(100dvh - 100%); overflow: auto; overscroll-behavior: contain; padding: .7rem var(--gutter) 1rem; background: var(--surface); border-block: 1px solid var(--rule); box-shadow: 0 .7rem 1.3rem rgb(0 0 0 / .12); }
  .js .site-nav > a, .js .site-nav summary { padding: .85rem 0; border-bottom: 1px solid var(--rule); }
  .js .site-nav summary { justify-content: space-between; padding-right: .35rem; }
  .locale-switch { border-inline-start: 0; padding-inline-start: 0; }
  .js .site-nav .locale-switch { padding-block: .25rem; border-bottom: 1px solid var(--rule); }
  .js .site-nav .nav-contact { justify-self: start; margin-top: .9rem; padding: .65rem 1rem; border: 1px solid var(--brand); }
  .mega { position: static; display: block; width: auto; margin-block: .55rem .45rem; padding: .65rem; box-shadow: none; }
  .mega-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 .75rem; padding: .45rem .75rem; }
  .mega-head p { max-width: none; margin: .35rem 0 0; font-size: 1rem; }
}
@media (min-width: 48.0625rem) and (min-height: 42rem) {
  .guide-contents { position: sticky; top: 1.5rem; max-height: calc(100vh - 3rem); overflow: auto; }
}
@media (max-width: 48rem) {
  .hero { grid-template-areas: "film" "copy"; grid-template-columns: minmax(0, 1fr); min-height: 0; gap: clamp(1rem, 4vw, 1.8rem); padding-block: clamp(1rem, 3vw, 1.75rem) 1.6rem; }
  .hero-screen, .hero-content { width: min(100%, 33rem); justify-self: center; }
  .hero h1 { font-size: clamp(1.9rem, 8.5vw, 3.15rem); line-height: 1.075; }
  .hero-intro { margin-top: .8rem; }
  .hero-content .hero-link { margin-top: .9rem; }
  .project-topics { padding-bottom: .35rem; }
  .project-choice span { min-height: 2.75rem; padding-inline: .6rem; }
  .project-bar .primary { padding-inline: .9rem; }
  .section-heading, .contact-grid, .team-grid, .service-overview, .inner-lead-grid, .inner-body { grid-template-columns: minmax(0, 1fr); gap: 1.65rem; }
  .inner-lead--contact .inner-lead-grid { grid-template-areas: "intro" "channels" "draft"; }
  .channels { margin-top: 1.25rem; }
  .inner-lead--catalogue .inner-lead-grid { gap: .95rem; }
  .inner-lead--catalogue .lead-frame img { aspect-ratio: 4 / 1; }
  .guide-contents { order: -1; }
  .section-heading { margin-bottom: 1.5rem; gap: .9rem; }
  .team-grid img { aspect-ratio: 3 / 2; }
  .service-card { grid-template-columns: 1.75rem minmax(0, 1fr); gap: .55rem .85rem; padding: 1.2rem .4rem 1.3rem; }
  .service-card svg { width: 1.65rem; height: 1.65rem; }
  .service-points, .service-more { grid-column: 2; }
  .service-section--home .service-card { grid-template-columns: 1.75rem minmax(0, 1fr); gap: .55rem .85rem; }
  .service-section--home :is(.service-points, .service-more) { grid-column: 2; grid-row: auto; }
  .step-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
  .formation-timings { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
  .footer-nav { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); column-gap: .8rem; }
}
@media (max-width: 40rem) {
  .network-intro { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
  .network-markets { grid-template-columns: minmax(0, 1fr); }
  .network-label { max-width: none; }
}
@media (max-width: 30rem) {
  .mega-links { grid-template-columns: 1fr; }
  .mega-link { padding-block: .75rem; }
  .project-actions { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; }
  .project-city { width: 100%; }
  .route-nodes { grid-template-columns: minmax(0, 1fr); padding-block: .9rem 1.15rem; }
  .route-nodes li { padding: .45rem 0 .85rem 1.65rem; text-align: start; }
  .route-nodes li:last-child { padding-bottom: .3rem; }
  .route-nodes li:not(:last-child)::before { inset: 1.1rem auto -1.1rem .4rem; border-top: 0; border-left: 1px solid var(--route-rule); }
  .route-nodes li::after { inset: 1.1rem auto auto .4rem; }
  .route-note { margin-top: .25rem; }
  .market-groups { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: .7rem .85rem; }
  .market-groups > div:first-child { grid-column: 1 / -1; padding: 0 0 .7rem; border-bottom: 1px solid var(--route-rule); }
  .market-groups > div:nth-child(2) { padding-inline-start: 0; border-inline-start: 0; }
  .disciplines { grid-template-columns: minmax(0, 1fr); }
  .step-grid { grid-template-columns: 1fr; }
  .formation-timings dl { grid-template-columns: 1fr; }
}
@media (max-width: 23rem) {
  .hero-opportunity { margin-top: .7rem; }
  .hero-intro { margin-top: .85rem; font-size: .98rem; line-height: 1.56; }
  .hero-content .hero-link { margin-top: .75rem; }
  .brand { gap: .52rem; }
  .brand img { width: 1.28rem; height: 2.45rem; }
  .brand b { font-size: .81rem; letter-spacing: .13em; }
  .nav-toggle { padding-inline: .55rem; font-size: .79rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; }
}
