:root {
  --ink: #10223e;
  --ink-strong: #08172b;
  --ink-soft: #243753;
  --navy: #0b1f3a;
  --navy-deep: #06152a;
  --red: #d63b3b;
  --red-dark: #b8272d;
  --gold: #f5b74a;
  --paper: #ffffff;
  --stone: #f4f6f8;
  --stone-2: #e8edf2;
  --muted: #69778b;
  --line: #dbe2e9;
  --shadow: 0 22px 55px rgba(10, 31, 58, .13);
  --radius: 22px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; font-family: var(--sans); color: var(--ink); background: var(--paper); line-height: 1.62; overflow-x: hidden; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

.container { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }
.sr-only { position: absolute; 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: 18px; top: -80px; z-index: 100; background: var(--paper); color: var(--navy); padding: 10px 14px; border-radius: 8px; box-shadow: var(--shadow); transition: top .2s ease; }
.skip-link:focus { top: 18px; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .94); border-bottom: 1px solid transparent; backdrop-filter: blur(14px); transition: box-shadow .25s ease, border-color .25s ease; }
.site-header.is-scrolled { border-color: rgba(16, 34, 62, .08); box-shadow: 0 8px 30px rgba(4, 24, 49, .08); }
.header-inner { height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; color: white; background: var(--red); position: relative; border-radius: 11px 11px 11px 2px; overflow: hidden; }
.brand-mark::after { content: ""; position: absolute; inset: auto -8px -10px auto; width: 30px; height: 30px; border: 5px solid rgba(255, 255, 255, .22); border-radius: 100%; }
.brand-mark span { position: relative; z-index: 1; font-family: var(--serif); font-size: 1.45rem; font-style: italic; font-weight: 700; }
.brand-copy { line-height: 1.06; display: grid; }
.brand-copy strong { font-size: .9rem; letter-spacing: .12em; color: var(--navy); }
.brand-copy small { font-size: .66rem; color: var(--muted); letter-spacing: .08em; text-transform: uppercase; margin-top: 4px; }
.site-nav { display: flex; align-items: center; gap: 26px; font-size: .91rem; font-weight: 650; color: #516177; }
.site-nav > a:not(.nav-cta) { position: relative; transition: color .2s ease; }
.site-nav > a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; bottom: -7px; width: 0; height: 2px; background: var(--red); transition: width .2s ease; }
.site-nav > a:not(.nav-cta):hover { color: var(--navy); }
.site-nav > a:not(.nav-cta):hover::after { width: 100%; }
.nav-cta { background: var(--navy); color: white; padding: 10px 15px; border-radius: 8px; transition: background .2s ease, transform .2s ease; }
.nav-cta:hover { background: var(--red); transform: translateY(-1px); }
.nav-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; border: 1px solid var(--line); border-radius: 8px; color: var(--navy); background: white; }
.nav-toggle span:not(.sr-only) { width: 19px; height: 2px; display: block; background: currentColor; transition: transform .2s ease, opacity .2s ease; }

.hero { position: relative; background: linear-gradient(111deg, var(--navy-deep), var(--navy) 72%, #123764); color: white; overflow: hidden; }
.hero::before { content: ""; position: absolute; width: 650px; height: 650px; border: 1px solid rgba(255,255,255,.07); border-radius: 50%; top: -320px; right: -130px; box-shadow: 0 0 0 82px rgba(255,255,255,.025), 0 0 0 164px rgba(255,255,255,.018); }
.hero::after { content: ""; position: absolute; width: 46%; height: 100%; top: 0; right: 0; opacity: .42; background-image: linear-gradient(120deg, transparent 0 35%, rgba(255,255,255,.05) 35% 36%, transparent 36% 100%), radial-gradient(circle at 50% 50%, rgba(248,190,80,.25), transparent 62%); pointer-events: none; }
.hero-grid { min-height: 670px; display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; gap: 62px; position: relative; z-index: 1; padding-block: 76px 68px; }
.hero-copy { max-width: 625px; }
.eyebrow { margin: 0 0 17px; text-transform: uppercase; font-size: .72rem; letter-spacing: .15em; font-weight: 750; color: rgba(255,255,255,.68); display: flex; align-items: center; gap: 9px; }
.eyebrow-dot { width: 8px; height: 8px; background: var(--gold); border-radius: 50%; box-shadow: 0 0 0 5px rgba(245,183,74,.16); }
.eyebrow-dark { color: var(--red); }
.eyebrow-light { color: #afc8e8; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { margin-bottom: 22px; font-family: var(--serif); font-size: clamp(2.65rem, 5vw, 4.8rem); line-height: 1.04; letter-spacing: -.043em; font-weight: 700; }
h1 em { font-weight: 400; color: var(--gold); }
.hero-text { max-width: 555px; margin-bottom: 32px; font-size: 1.08rem; line-height: 1.72; color: #c9d7e8; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.button { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; gap: 13px; padding: 13px 20px; border: 1px solid transparent; font-weight: 720; font-size: .94rem; line-height: 1; border-radius: 8px; transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--red); color: white; box-shadow: 0 12px 24px rgba(189, 38, 45, .27); }
.button-primary:hover { background: var(--red-dark); box-shadow: 0 15px 30px rgba(189, 38, 45, .34); }
.button-secondary { color: white; border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.04); }
.button-secondary:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.7); }
.hero-points { display: flex; flex-wrap: wrap; gap: 14px 22px; padding: 0; margin: 33px 0 0; list-style: none; color: #d7e1ee; font-size: .83rem; }
.hero-points li { display: inline-flex; align-items: center; gap: 7px; }
.hero-points svg { width: 16px; height: 16px; padding: 2px; fill: none; stroke: var(--gold); stroke-width: 3; }
.hero-visual { position: relative; min-height: 475px; display: grid; align-items: center; }
.hero-image-wrap { margin: 28px 0 0 27px; position: relative; border-radius: 20px; overflow: hidden; box-shadow: 0 32px 50px rgba(0,0,0,.3); background: #254a72; }
.hero-image-wrap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,18,37,0) 45%, rgba(4,18,37,.71) 100%); }
.hero-image-wrap img { width: 100%; height: 450px; object-fit: cover; object-position: center; opacity: .94; }
.hero-image-wrap figcaption { position: absolute; z-index: 1; left: 24px; bottom: 21px; display: flex; align-items: center; gap: 8px; color: white; font-size: .78rem; font-weight: 650; }
.caption-pip { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.route-card { position: absolute; top: 0; left: 0; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 11px 13px; width: max-content; max-width: 95%; color: #e2ebf6; font-size: .73rem; font-weight: 720; letter-spacing: .01em; background: rgba(4, 24, 49, .85); box-shadow: 0 12px 26px rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.17); backdrop-filter: blur(11px); border-radius: 10px; }
.route-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; }
.route-dot.china { background: var(--gold); } .route-dot.tanzania { background: #61d1a4; }
.route-line { width: 45px; height: 1px; background: rgba(255,255,255,.4); position: relative; }
.route-line::after { content: ""; width: 5px; height: 5px; border-top: 1px solid rgba(255,255,255,.6); border-right: 1px solid rgba(255,255,255,.6); transform: rotate(45deg); position: absolute; right: 0; top: -2px; }
.hero-float { position: absolute; z-index: 2; color: var(--navy); background: white; padding: 11px 14px; box-shadow: 0 16px 34px rgba(0,0,0,.2); border-radius: 9px; min-width: 120px; }
.hero-float strong, .hero-float span { display: block; } .hero-float strong { font-size: .78rem; font-weight: 780; } .hero-float span { color: var(--red); font-size: .7rem; margin-top: 2px; font-weight: 700; }
.hero-float-one { top: 107px; right: -17px; } .hero-float-two { bottom: 26px; left: -16px; }

.trust-strip { background: #f2f5f8; border-bottom: 1px solid #e4e9ef; }
.trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.trust-grid > div { min-height: 106px; display: flex; align-items: center; gap: 14px; padding: 22px 29px; border-right: 1px solid #dce3ea; }
.trust-grid > div:first-child { padding-left: 0; } .trust-grid > div:last-child { border-right: 0; }
.trust-icon { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--red); background: #fae8e8; font-weight: 800; font-size: .62rem; }
.trust-grid p { margin: 0; color: #586a80; font-size: .76rem; line-height: 1.5; } .trust-grid strong { color: var(--ink); font-size: .8rem; }

.section { padding-block: 108px; }
.section-heading { margin-bottom: 52px; } .split-heading { display: grid; grid-template-columns: 1.05fr .6fr; gap: 68px; align-items: end; }
.section-heading h2, .about-copy h2, .process-intro h2, .faq-intro h2, .quote-copy h2 { margin-bottom: 0; font-family: var(--serif); color: var(--navy); font-size: clamp(2rem, 3.7vw, 3.25rem); line-height: 1.12; letter-spacing: -.035em; }
.split-heading > p { margin: 0 0 4px; color: var(--muted); line-height: 1.72; font-size: .96rem; }
.services-section { background: var(--paper); }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.service-card { min-height: 280px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; background: white; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.service-card:hover { transform: translateY(-6px); border-color: transparent; box-shadow: 0 18px 32px rgba(17,45,77,.11); }
.service-icon { width: 46px; height: 46px; display: grid; place-items: center; background: #eef4fb; color: var(--red); border-radius: 10px; }
.service-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.service-card h3 { margin: 21px 0 9px; color: var(--navy); font-size: 1.08rem; line-height: 1.3; }
.service-card p { margin: 0; color: #617186; font-size: .88rem; line-height: 1.65; }
.service-card > span { margin-top: auto; padding-top: 20px; color: var(--red); font-size: .73rem; font-weight: 750; }

.process-section { background: var(--navy); color: white; position: relative; overflow: hidden; }
.process-section::after { content: ""; width: 70%; height: 90%; position: absolute; top: 5%; right: -25%; border: 1px solid rgba(255,255,255,.08); border-radius: 48%; transform: rotate(-21deg); }
.process-layout { display: grid; grid-template-columns: .83fr 1.1fr; gap: 112px; position: relative; z-index: 1; }
.process-intro { align-self: center; } .process-intro h2 { color: white; margin-bottom: 20px; } .process-intro > p:not(.eyebrow) { color: #b9c9dc; font-size: .98rem; }
.text-link { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 3px; color: var(--red); font-size: .9rem; font-weight: 760; border-bottom: 1px solid currentColor; transition: gap .2s ease; }
.text-link:hover { gap: 15px; } .light-link { color: var(--gold); }
.process-steps { margin: 0; padding: 0; list-style: none; display: grid; gap: 1px; background: rgba(255,255,255,.16); }
.process-steps li { display: grid; grid-template-columns: 74px 1fr; gap: 22px; padding: 29px 32px; background: rgba(11,31,58,.88); transition: background .2s ease; }
.process-steps li:hover { background: rgba(255,255,255,.085); } .process-steps span { color: var(--gold); font-family: var(--serif); font-size: 1.35rem; }
.process-steps h3 { margin-bottom: 4px; font-size: 1.02rem; } .process-steps p { margin: 0; color: #b9c9dc; font-size: .86rem; }

.about-section { background: #f7f8fa; } .about-grid { display: grid; grid-template-columns: .95fr 1fr; align-items: center; gap: 95px; }
.about-collage { position: relative; min-height: 530px; padding: 0 58px 52px 0; }
.about-main { width: 100%; height: 478px; object-fit: cover; border-radius: 9px; box-shadow: var(--shadow); }
.about-small { position: absolute; width: 47%; right: 0; bottom: 0; height: 215px; object-fit: cover; border: 8px solid #f7f8fa; border-radius: 8px; box-shadow: 0 13px 30px rgba(10, 31, 58, .18); }
.about-stamp { width: 92px; height: 92px; position: absolute; bottom: 178px; right: 6px; display: grid; align-content: center; text-align: center; border: 5px solid white; color: white; background: var(--red); border-radius: 50%; box-shadow: 0 8px 21px rgba(158,30,34,.23); transform: rotate(10deg); }
.about-stamp strong { font-size: .65rem; letter-spacing: .09em; text-transform: uppercase; } .about-stamp span { font-family: var(--serif); line-height: 1; font-size: 1.55rem; }
.about-copy h2 { margin-bottom: 23px; } .about-copy > p:not(.eyebrow) { color: var(--muted); font-size: .96rem; }
.about-list { margin-top: 30px; display: grid; gap: 17px; } .about-list > div { display: flex; gap: 13px; align-items: flex-start; }
.about-list span { flex: 0 0 28px; width: 28px; height: 28px; display: grid; place-items: center; color: var(--red); font-size: .65rem; font-weight: 850; background: #f8e7e7; border-radius: 50%; }
.about-list p { margin: 0; color: var(--muted); font-size: .83rem; line-height: 1.58; } .about-list strong { color: var(--navy); font-size: .87rem; }

.journey-section { background: white; } .centered-heading { width: min(700px, 100%); margin: 0 auto 44px; text-align: center; } .centered-heading .eyebrow { justify-content: center; } .centered-heading h2 { margin-bottom: 13px; } .centered-heading > p { margin: 0; color: var(--muted); font-size: .94rem; }
.gallery-grid { display: grid; grid-template-columns: 1.1fr .9fr .9fr; grid-template-rows: 220px 220px; gap: 16px; }
.gallery-card { padding: 0; position: relative; overflow: hidden; border: 0; background: var(--navy); text-align: left; isolation: isolate; }
.gallery-card::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(2,16,34,.86) 100%); transition: background .25s ease; }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.gallery-card:hover img { transform: scale(1.05); } .gallery-card:hover::before { background: linear-gradient(180deg, rgba(7,26,51,.04) 25%, rgba(2,16,34,.92) 100%); }
.gallery-card span { position: absolute; z-index: 2; left: 20px; right: 16px; bottom: 17px; color: white; display: grid; }
.gallery-card strong { font-family: var(--serif); font-size: 1.22rem; letter-spacing: -.015em; } .gallery-card small { color: #d7e5f4; margin-top: 2px; font-size: .7rem; }
.gallery-tall { grid-row: span 2; } .gallery-wide { grid-column: span 2; }

.faq-section { background: #f7f8fa; } .faq-layout { display: grid; grid-template-columns: .78fr 1.2fr; gap: 110px; } .faq-intro h2 { margin-bottom: 19px; } .faq-intro > p:not(.eyebrow) { margin-bottom: 26px; color: var(--muted); font-size: .94rem; }
.faq-list { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); } summary { list-style: none; position: relative; padding: 21px 35px 21px 0; color: var(--navy); font-size: .94rem; font-weight: 750; cursor: pointer; }
summary::-webkit-details-marker { display: none; } summary span { position: absolute; right: 0; font-size: 1.5rem; font-weight: 400; color: var(--red); transition: transform .2s ease; } details[open] summary span { transform: rotate(45deg); } details p { max-width: 90%; margin: -2px 0 20px; color: var(--muted); font-size: .86rem; }

.quote-section { padding-block: 100px; color: white; background: linear-gradient(125deg, var(--navy-deep), var(--navy) 60%, #0d2c50); position: relative; overflow: hidden; }
.quote-section::before { content: ""; position: absolute; left: -8%; bottom: -74%; width: 60%; height: 140%; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; }
.quote-layout { display: grid; grid-template-columns: .8fr 1fr; gap: 110px; align-items: center; position: relative; z-index: 1; } .quote-copy h2 { color: white; margin-bottom: 20px; } .quote-copy > p:not(.eyebrow) { max-width: 475px; color: #c6d4e4; font-size: .96rem; }
.quote-contact-block { margin-top: 34px; display: grid; gap: 14px; } .quote-contact-block a, .quote-contact-block p { margin: 0; display: flex; flex-direction: column; gap: 1px; color: white; }
.quote-contact-block span { color: #aac0d9; font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; } .quote-contact-block strong { font-size: .92rem; font-weight: 680; }
.quote-form { padding: 31px; border: 1px solid rgba(255,255,255,.16); background: white; border-radius: 14px; color: var(--ink); box-shadow: 0 28px 42px rgba(0,0,0,.18); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; } .field { margin-bottom: 16px; } label { display: inline-block; margin-bottom: 6px; color: var(--ink-soft); font-size: .76rem; font-weight: 760; } label span { color: var(--red); }
input, select, textarea { width: 100%; padding: 11px 12px; color: var(--ink); border: 1px solid #ccd5df; background: #fbfcfd; border-radius: 6px; outline: none; font-size: .88rem; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
textarea { resize: vertical; min-height: 112px; } input::placeholder, textarea::placeholder { color: #9aa8b8; } input:focus, select:focus, textarea:focus { border-color: #3c70a9; background: white; box-shadow: 0 0 0 3px rgba(65,123,185,.15); }
input[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 3px rgba(214,59,59,.13); }
.form-action { margin-top: 5px; display: flex; align-items: center; gap: 15px; } .button-red { background: var(--red); color: white; border: 0; min-width: 195px; } .button-red:hover { background: var(--red-dark); box-shadow: 0 10px 20px rgba(185,39,45,.28); }
.form-note { margin: 0; color: #718198; font-size: .68rem; line-height: 1.48; } .form-message { min-height: 1.25em; margin: 13px 0 0; color: var(--red); font-size: .75rem; font-weight: 650; }

.site-footer { color: #a8b7c8; background: #06152a; } .footer-grid { display: grid; grid-template-columns: 1.55fr .65fr .75fr; gap: 70px; padding-block: 66px 50px; }
.footer-brand .brand-copy strong { color: white; } .footer-brand .brand-copy small { color: #9cb1c8; } .footer-grid > div > p { max-width: 335px; margin: 18px 0 0; font-size: .82rem; line-height: 1.67; }
.footer-grid h2 { margin: 3px 0 16px; color: white; font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; } .footer-grid a:not(.brand) { display: block; margin-bottom: 9px; font-size: .82rem; transition: color .2s ease; } .footer-grid a:not(.brand):hover { color: white; }
.footer-bottom { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid rgba(255,255,255,.11); font-size: .72rem; } .footer-bottom p { margin: 0; } .footer-bottom a { color: #d9e6f4; }

.gallery-modal { width: min(850px, calc(100% - 32px)); padding: 0; overflow: hidden; color: var(--ink); background: white; border: 0; border-radius: 13px; box-shadow: 0 28px 80px rgba(0,0,0,.55); }
.gallery-modal::backdrop { background: rgba(3, 16, 33, .78); backdrop-filter: blur(3px); } .gallery-modal img { width: 100%; height: min(56vh, 480px); object-fit: cover; } .gallery-modal > div { padding: 24px 30px 28px; } .gallery-modal h2 { margin-bottom: 7px; color: var(--navy); font-family: var(--serif); font-size: 1.75rem; } .gallery-modal p:last-child { margin: 0; color: var(--muted); font-size: .9rem; }
.modal-close { width: 37px; height: 37px; position: absolute; z-index: 1; top: 14px; right: 14px; color: white; font-size: 1.85rem; line-height: 1; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; background: rgba(2,15,31,.5); }

.reveal { opacity: 1; transform: none; } .reveal.is-visible { opacity: 1; transform: none; } .reveal-delay, .reveal-delay-small, .reveal-delay-medium, .reveal-delay-large { transition-delay: 0s; }

@media (max-width: 1000px) {
  .site-nav { gap: 17px; font-size: .84rem; }
  .hero-grid { min-height: auto; gap: 40px; }
  .split-heading, .process-layout, .about-grid, .faq-layout, .quote-layout { gap: 55px; }
  .hero-image-wrap img { height: 395px; }
  .about-collage { min-height: 485px; }
  .about-main { height: 430px; }
  .services-grid { gap: 14px; }
  .service-card { min-height: 270px; padding: 24px; }
}

@media (max-width: 800px) {
  .container { width: min(100% - 34px, 640px); }
  .header-inner { height: 72px; } .nav-toggle { display: flex; z-index: 52; }
  .site-nav { width: min(330px, calc(100% - 34px)); position: fixed; top: 82px; right: 17px; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 13px; opacity: 0; visibility: hidden; transform: translateY(-12px); border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: white; box-shadow: 0 20px 46px rgba(3,20,43,.18); transition: opacity .2s ease, visibility .2s ease, transform .2s ease; }
  .site-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); } .site-nav > a:not(.nav-cta) { padding: 10px; } .site-nav > a:not(.nav-cta)::after { display: none; } .nav-cta { margin: 8px 0 1px; text-align: center; }
  .nav-toggle.is-open span:nth-child(2) { transform: translateY(7px) rotate(45deg); } .nav-toggle.is-open span:nth-child(3) { opacity: 0; } .nav-toggle.is-open span:nth-child(4) { transform: translateY(-7px) rotate(-45deg); }
  .hero-grid { grid-template-columns: 1fr; padding-block: 66px 58px; } .hero-copy { max-width: 650px; } .hero-visual { width: min(100%, 540px); min-height: 390px; justify-self: center; }
  .hero-image-wrap { margin-left: 18px; } .hero-image-wrap img { height: 390px; } .hero-float-one { right: -7px; } .hero-float-two { left: -5px; }
  .trust-grid { grid-template-columns: 1fr; padding-block: 11px; } .trust-grid > div, .trust-grid > div:first-child { min-height: 75px; padding: 14px 0; border-right: 0; border-bottom: 1px solid #dce3ea; } .trust-grid > div:last-child { border-bottom: 0; }
  .section { padding-block: 76px; } .split-heading, .process-layout, .about-grid, .faq-layout, .quote-layout { grid-template-columns: 1fr; gap: 39px; } .split-heading { align-items: start; }
  .services-grid { grid-template-columns: repeat(2, 1fr); } .process-steps { max-width: 620px; } .about-collage { max-width: 570px; width: 100%; }
  .faq-intro { max-width: 530px; } .quote-layout { max-width: 620px; } .quote-copy > p:not(.eyebrow) { max-width: 560px; }
  .footer-grid { grid-template-columns: 1.4fr .8fr; gap: 45px 28px; } .footer-grid > div:last-child { grid-column: span 2; }
}

@media (max-width: 560px) {
  .container { width: min(100% - 30px, 470px); } .brand-copy strong { font-size: .82rem; } .brand-copy small { font-size: .59rem; }
  h1 { font-size: clamp(2.45rem, 13vw, 3.25rem); } .hero-text { font-size: .98rem; } .hero-actions .button { width: 100%; } .hero-points { display: grid; gap: 10px; }
  .hero-visual { min-height: 347px; } .hero-image-wrap { margin: 37px 0 0 0; } .hero-image-wrap img { height: 330px; } .route-card { left: 3px; font-size: .65rem; gap: 6px; } .route-line { width: 26px; } .hero-float { padding: 9px 10px; min-width: 108px; } .hero-float-one { top: 85px; right: -5px; } .hero-float-two { bottom: 8px; left: 8px; }
  .section-heading { margin-bottom: 32px; } .section-heading h2, .about-copy h2, .process-intro h2, .faq-intro h2, .quote-copy h2 { font-size: 2.12rem; }
  .services-grid { grid-template-columns: 1fr; } .service-card { min-height: 0; } .process-steps li { grid-template-columns: 45px 1fr; gap: 14px; padding: 23px 18px; }
  .about-collage { min-height: 405px; padding: 0 25px 40px 0; } .about-main { height: 350px; } .about-small { width: 49%; height: 160px; border-width: 5px; } .about-stamp { width: 74px; height: 74px; right: -3px; bottom: 131px; border-width: 3px; } .about-stamp span { font-size: 1.25rem; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 190px 190px 190px; gap: 10px; } .gallery-tall { grid-row: span 2; } .gallery-wide { grid-column: span 2; } .gallery-card strong { font-size: 1rem; } .gallery-card span { left: 12px; bottom: 11px; }
  .quote-section { padding-block: 74px; } .quote-form { padding: 21px 17px; } .form-row { grid-template-columns: 1fr; gap: 0; } .form-action { align-items: flex-start; flex-direction: column; } .button-red { width: 100%; } .form-note { max-width: 90%; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 35px 19px; padding-block: 48px 38px; } .footer-grid > div:first-child { grid-column: span 2; } .footer-grid > div:last-child { grid-column: auto; } .footer-bottom { padding-block: 16px; flex-direction: column; align-items: flex-start; }
  .gallery-modal > div { padding: 20px; } .gallery-modal img { height: 47vh; }
}

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

/* East Africa route network and freight calculator */
.calculator-section { position: relative; overflow: hidden; padding-block: 106px; color: white; background: radial-gradient(circle at 90% 10%, rgba(214, 59, 59, .27), transparent 30%), radial-gradient(circle at 4% 100%, rgba(245, 183, 74, .16), transparent 34%), linear-gradient(132deg, #06152a 0%, #0c2b51 62%, #0b1f3a 100%); }
.calculator-section::before { content: ""; position: absolute; inset: -28% -13% auto auto; width: 680px; height: 680px; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; box-shadow: 0 0 0 78px rgba(255,255,255,.025), 0 0 0 156px rgba(255,255,255,.018); transform: rotate(-18deg); }
.calculator-shell { position: relative; z-index: 1; display: grid; grid-template-columns: .9fr 1.1fr; gap: 74px; align-items: center; }
.calculator-intro h2 { max-width: 560px; margin: 0 0 20px; color: white; font-family: var(--serif); font-size: clamp(2.25rem, 4vw, 3.65rem); line-height: 1.06; letter-spacing: -.04em; }
.calculator-intro > p:not(.eyebrow):not(.calculator-disclaimer) { max-width: 540px; margin-bottom: 26px; color: #c6d6e9; font-size: 1rem; line-height: 1.78; }
.calculator-intro strong { color: white; }
.route-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 25px 0 20px; }
.route-chips span { padding: 8px 11px; color: #eff5fc; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(255,255,255,.05); font-size: .75rem; font-weight: 700; }
.calculator-disclaimer { max-width: 540px; margin: 0; color: #9eb5cf; font-size: .79rem; line-height: 1.6; }
.calculator-panel { padding: 31px; color: var(--ink); background: rgba(255,255,255,.98); border: 1px solid rgba(255,255,255,.58); border-radius: 18px; box-shadow: 0 28px 60px rgba(0,0,0,.25); }
.calculator-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 26px; }
.calculator-kicker { color: var(--navy); font-size: .72rem; font-weight: 830; letter-spacing: .12em; text-transform: uppercase; }
.rate-status { padding: 6px 9px; color: #7d5212; background: #fff2d9; border-radius: 999px; font-size: .68rem; font-weight: 760; }
.rate-status.is-active { color: #0f6b4e; background: #dbf4ea; }
.calculator-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.calculator-panel .field { margin: 0; }
.calculator-panel label { display: block; margin-bottom: 7px; color: #30435d; font-size: .75rem; font-weight: 760; }
.calculator-panel select, .calculator-panel input { width: 100%; min-height: 48px; border: 1px solid #d4dde8; border-radius: 8px; background: #fff; color: var(--ink); padding: 0 12px; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
.calculator-panel select:focus, .calculator-panel input:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(214,59,59,.12); }
.quantity-input { position: relative; }
.quantity-input input { padding-right: 54px; }
.quantity-input span { position: absolute; right: 13px; top: 50%; color: var(--red); font-size: .73rem; font-weight: 820; transform: translateY(-50%); }
.calculator-result { display: grid; grid-template-columns: 1fr 1fr 1.18fr; gap: 1px; margin-top: 23px; overflow: hidden; background: #dce4ed; border: 1px solid #dce4ed; border-radius: 10px; }
.calculator-result > div { min-height: 88px; padding: 14px 15px; display: flex; flex-direction: column; justify-content: center; gap: 4px; background: #f7f9fb; }
.calculator-result span { color: #718197; font-size: .68rem; font-weight: 700; }
.calculator-result strong { color: var(--navy); font-size: .85rem; line-height: 1.35; }
.calculator-result .result-total { background: #eef4fb; }
.calculator-result .result-total strong { color: var(--red); font-family: var(--serif); font-size: 1.25rem; letter-spacing: -.02em; }
.calculator-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 23px; }
.text-button { padding: 0; color: var(--navy); border: 0; background: transparent; border-bottom: 1px solid currentColor; font-size: .78rem; font-weight: 760; }
.text-button:hover { color: var(--red); }
.calculator-note { margin: 16px 0 0; color: #718197; font-size: .74rem; line-height: 1.58; }
.calculator-note.is-error { color: #a31e28; }
.calculator-note.is-success { color: #0b7454; }

@media (max-width: 960px) {
  .calculator-shell { grid-template-columns: 1fr; gap: 42px; }
  .calculator-intro { max-width: 680px; }
}
@media (max-width: 660px) {
  .calculator-section { padding-block: 74px; }
  .calculator-panel { padding: 22px 18px; border-radius: 14px; }
  .calculator-topline { align-items: flex-start; flex-direction: column; }
  .calculator-grid, .calculator-result { grid-template-columns: 1fr; }
  .calculator-result { gap: 1px; }
  .calculator-result > div { min-height: auto; padding: 13px; }
  .calculator-actions { align-items: flex-start; flex-direction: column; }
  .calculator-actions .button { width: 100%; }
}
