:root {
  --navy: #10263d;
  --navy-deep: #0a1c2f;
  --navy-soft: #1e3953;
  --teal: #61c4c6;
  --teal-dark: #16898e;
  --paper: #ffffff;
  --mist: #f3f7f8;
  --mist-blue: #eaf1f4;
  --ink: #193044;
  --muted: #5b6d7a;
  --stroke: #dde7eb;
  --container: 1260px;
  --heading: 'Sora', 'Arial', sans-serif;
  --body: 'Catamaran', 'Segoe UI', Arial, sans-serif;
  --shadow: 0 24px 72px rgba(15, 37, 58, .10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--body); font-size: 17px; line-height: 1.58; -webkit-font-smoothing: antialiased; overflow-x: clip; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
img { display: block; max-width: 100%; }
::selection { background: #7fe2df; color: #10263d; }
:focus-visible { outline: 3px solid var(--teal-dark); outline-offset: 4px; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { height: 1.2em; width: 1.2em; flex: none; vertical-align: -.19em; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.container { width: min(var(--container), calc(100% - 80px)); margin: 0 auto; }
.skip-link { position: fixed; top: -120px; left: 14px; z-index: 9999; background: white; color: var(--navy); padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.section { padding: 118px 0; }
.section-title { max-width: 750px; margin: 20px 0 0; color: var(--navy); font: 700 clamp(2.15rem, 4.1vw, 3.75rem)/1.14 var(--heading); letter-spacing: -.055em; }
.section-title em { color: var(--teal-dark); font-style: normal; }
.section-title.light { color: #fff; }
.section-title.light em { color: #83dddb; }
.eyebrow { display: flex; align-items: center; gap: 12px; color: var(--teal-dark); font: 700 11px/1.5 var(--heading); letter-spacing: .15em; text-transform: uppercase; }
.eyebrow-line { width: 26px; height: 2px; background: var(--teal-dark); }
.eyebrow-light { color: #9be7e4; }
.eyebrow-light .eyebrow-line { background: var(--teal); }
.btn { display: inline-flex; justify-content: center; align-items: center; gap: 16px; min-height: 54px; padding: 13px 22px; border: 1px solid transparent; border-radius: 6px; font: 700 13px/1.2 var(--heading); transition: transform .22s, background-color .22s, box-shadow .22s, color .22s, border-color .22s; }
.btn .icon { font-size: 17px; }
.btn:hover { transform: translateY(-3px); }
.btn-accent { color: var(--navy); background: var(--teal); box-shadow: 0 10px 28px rgba(62, 195, 192, .17); }
.btn-accent:hover { background: #8ce1df; box-shadow: 0 16px 30px rgba(62, 195, 192, .27); }
.btn-outline-light { color: #fff; border-color: rgba(255,255,255,.27); background: rgba(255,255,255,.05); }
.btn-outline-light:hover { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.5); }

/* Main navigation */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.98); border-bottom: 1px solid #eaf0f2; transition: box-shadow .2s, background-color .2s; }
.site-header.is-scrolled { box-shadow: 0 8px 30px rgba(16,38,61,.08); }
.header-inner { min-height: 90px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; min-width: 0; }
.brand-emblem { width: 98px; height: 61px; display: grid; place-items: center; overflow: hidden; background: white; }
.brand-emblem img { width: 98px; height: auto; }
.brand-title { display: flex; flex-direction: column; justify-content: center; gap: 2px; color: var(--navy); white-space: nowrap; }
.brand-title small { font: 800 10px/1.2 var(--heading); letter-spacing: .17em; }
.brand-title strong { font: 800 14px/1.3 var(--heading); letter-spacing: -.045em; }
.brand-title strong span { color: var(--teal-dark); }
.primary-nav { display: flex; align-items: center; gap: clamp(12px, 1.65vw, 26px); }
.primary-nav .nav-link { position: relative; color: #354a5c; padding: 20px 0; font: 650 12px/1.4 var(--heading); white-space: nowrap; transition: color .2s; }
.primary-nav .nav-link:after { content: ''; position: absolute; bottom: 14px; height: 2px; left: 0; right: 100%; background: var(--teal-dark); transition: right .22s; }
.primary-nav .nav-link:hover, .primary-nav .nav-link.is-active { color: var(--teal-dark); }
.primary-nav .nav-link:hover:after, .primary-nav .nav-link.is-active:after { right: 0; }
.nav-cta { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border-radius: 5px; color: white; background: var(--navy); padding: 13px 18px; font: 700 12px/1.4 var(--heading); transition: background-color .2s, transform .2s; }
.nav-cta:hover { background: var(--teal-dark); transform: translateY(-1px); }
.menu-toggle { display: none; cursor: pointer; padding: 9px; border-radius: 6px; background: white; border: 1px solid var(--stroke); color: var(--navy); }
.menu-toggle .icon { width: 25px; height: 25px; }
.menu-toggle .close-icon { display: none; }
.menu-toggle.is-open .open-icon { display: none; }
.menu-toggle.is-open .close-icon { display: block; }

/* Hero */
.hero { position: relative; min-height: 685px; isolation: isolate; overflow: hidden; background: var(--navy-deep); color: #fff; }
.hero:before { content: ''; position: absolute; z-index: -1; width: 900px; height: 900px; background: radial-gradient(circle, rgba(39, 160, 170, .22) 0, rgba(39, 160, 170, .09) 26%, transparent 65%); left: -330px; bottom: -520px; }
.hero:after { content: ''; position: absolute; z-index: -1; background: linear-gradient(120deg, transparent 50%, rgba(48, 141, 162, .05) 50%); inset: 0; pointer-events: none; }
.hero-grid-pattern { position: absolute; inset: 0; pointer-events: none; z-index: -1; opacity: .17; background-image: linear-gradient(rgba(139, 211, 212, .20) 1px, transparent 1px),linear-gradient(90deg,rgba(139,211,212,.20) 1px,transparent 1px); background-size: 68px 68px; mask-image: linear-gradient(to right, transparent 16%, #000 80%); }
.hero-layout { position: relative; display: grid; grid-template-columns: 1.01fr .99fr; gap: clamp(35px, 5.2vw, 75px); align-items: center; min-height: 680px; padding: 80px 0 100px; }
.hero-copy { position: relative; z-index: 3; }
.hero h1 { max-width: 720px; margin: 22px 0 25px; color: white; font: 800 clamp(3.2rem, 5.35vw, 5.8rem)/1.07 var(--heading); letter-spacing: -.077em; }
.hero h1 span { display: block; color: #81d9d8; }
.hero-description { max-width: 490px; margin: 0; font-size: clamp(1.08rem, 1.65vw, 1.31rem); line-height: 1.55; color: #d1dee7; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-facts { display: flex; flex-wrap: wrap; margin-top: 62px; }
.hero-facts>div { min-width: 140px; padding-right: 23px; margin-right: 23px; border-right: 1px solid rgba(255,255,255,.20); }
.hero-facts>div:last-child { margin-right: 0; border: 0; }
.hero-facts strong { display: block; font: 700 clamp(26px, 2.5vw, 34px)/1.2 var(--heading); color: white; letter-spacing: -.06em; }
.hero-facts span { display: block; color: #b8cbd4; font-size: 13px; margin-top: 5px; }
.hero-visual { position: relative; margin-right: -15px; min-width: 0; }
.hero-photo-wrap { position: relative; height: min(35vw, 515px); min-height: 420px; border-radius: 12px 80px 12px 12px; overflow: hidden; background: #203f54; box-shadow: 0 30px 75px rgba(0,0,0,.26); }
.hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: 56% center; filter: saturate(.97) contrast(1.04); }
.photo-shadow { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 24, 40, .04) 47%, rgba(6, 24, 40, .62) 100%); }
.hero-photo-label { position: absolute; display: flex; align-items: center; gap: 9px; bottom: 28px; left: 28px; font: 700 11px var(--heading); letter-spacing: .10em; }
.live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #72e0d8; box-shadow: 0 0 0 5px rgba(114,224,216,.20); }
.hero-floating-card { position: absolute; bottom: 60px; left: -56px; display: flex; align-items: center; gap: 15px; color: var(--navy); background: #fff; padding: 17px 23px 17px 16px; min-width: 270px; border-radius: 9px; box-shadow: 0 18px 50px rgba(5, 18, 33, .22); }
.floating-icon { width: 48px; height: 48px; border-radius: 9px; display: grid; place-items: center; color: var(--teal-dark); background: #e6f8f7; }
.floating-icon .icon { width: 25px; height: 25px; }
.hero-floating-card strong { display: block; font: 750 13px/1.4 var(--heading); }
.hero-floating-card small { display: block; margin-top: 3px; font: 500 13px/1.3 var(--body); color: var(--muted); }
.hero-visual-decoration { position: absolute; display: flex; gap: 8px; right: -5px; top: -25px; }
.hero-visual-decoration span { width: 11px; height: 11px; background: var(--teal); opacity: .9; border-radius: 50%; }
.hero-visual-decoration span:nth-child(2) { opacity: .45; }
.hero-visual-decoration span:nth-child(3) { opacity: .20; }
.scroll-indicator { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 7px; color: #b8cbd4; font: 650 9px var(--heading); letter-spacing: .15em; }
.scroll-line { height: 21px; width: 1px; background: var(--teal); }
.value-bar { background: #e8f5f5; border-bottom: 1px solid #d2e6e8; }
.value-bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 21px 0; }
.value-bar-inner span { display: inline-flex; align-items: center; gap: 10px; color: #284c56; font: 700 12px/1.4 var(--heading); white-space: nowrap; }
.value-bar-inner .icon { color: var(--teal-dark); width: 16px; height: 16px; stroke-width: 2.5; }

/* About */
.about-section { background: #fff; }
.about-top { display: grid; grid-template-columns: 1fr .86fr; align-items: start; gap: min(8vw,110px); margin-bottom: 53px; }
.about-top .section-title { max-width: 620px; }
.about-intro { padding-top: 20px; }
.about-intro p { margin: 0 0 17px; font-size: 18px; color: var(--muted); line-height: 1.64; }
.about-intro p:first-child { color: var(--navy); font-weight: 750; font-size: 20px; }
.about-lower { display: grid; grid-template-columns: .92fr 1.08fr; gap: 24px; }
.about-illustration { position: relative; min-height: 416px; border: 1px solid #dfe9eb; border-radius: 14px; background: linear-gradient(144deg, #e9f4f5, #f7fafa 75%); display: flex; align-items: center; overflow: hidden; }
.about-illustration:after { content:''; position: absolute; width: 280px; height:280px; border:1px solid rgba(35,142,152,.15); border-radius:50%; top:-170px; left:-70px; box-shadow:0 0 0 65px rgba(35,142,152,.04); }
.illustration-bg { position: absolute; inset: 45px 20px; background: repeating-linear-gradient(90deg,transparent 0,transparent 53px,rgba(56,123,136,.045) 54px,transparent 55px); }
.about-illustration img { position: relative; z-index: 1; width: 100%; height: auto; padding: 0 10px; filter: drop-shadow(0 19px 18px rgba(20,47,65,.08)); }
.illustration-caption { position: absolute; bottom: 23px; left: 25px; color: var(--teal-dark); font: 750 11px var(--heading); letter-spacing: .11em; }
.commitment-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.commitment-card { padding: 27px 25px 22px; background: #fff; border: 1px solid var(--stroke); border-radius: 12px; transition: transform .25s, box-shadow .25s, border-color .25s; }
.commitment-card:hover { transform: translateY(-5px); border-color: #a8d9d9; box-shadow: var(--shadow); }
.card-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 9px; background: #e9f7f7; color: var(--teal-dark); }
.card-icon .icon { width: 24px; height:24px; }
.commitment-card h3 { margin: 19px 0 7px; font: 750 17px/1.4 var(--heading); letter-spacing: -.025em; }
.commitment-card p { color: var(--muted); font-size: 16px; line-height: 1.45; margin:0; }

/* Strategy */
.strategy-section { position: relative; background: var(--mist); overflow: hidden; }
.strategy-ghost { position: absolute; left: -10px; top: -108px; color: #e4eef1; font: 800 290px/1 var(--heading); letter-spacing: -.10em; user-select: none; pointer-events: none; }
.strategy-inner { position: relative; }
.section-heading.centered { display:flex; align-items:center; flex-direction:column; text-align:center; margin-bottom: 50px; }
.section-heading.centered .section-title { max-width: 760px; }
.strategy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.strategy-card { position: relative; display: flex; flex-direction: column; min-height: 375px; padding: 31px; border: 1px solid #e0e9ec; border-radius: 12px; background: #fff; box-shadow: 0 12px 36px rgba(12, 45, 66, .035); transition: transform .25s, box-shadow .25s; }
.strategy-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.strategy-card-top { display:flex; align-items:center; justify-content:space-between; }
.strategy-number { color: #93b2bd; font: 700 13px var(--heading); }
.strategy-mark { display:grid; place-items:center; width: 35px; height:35px; border: 1px solid #dae8e9; border-radius: 50%; color: var(--teal-dark); }
.strategy-mark .icon { width: 15px; height:15px; }
.strategy-card h3 { margin: 36px 0 14px; color: var(--navy); font: 750 28px/1.2 var(--heading); letter-spacing: -.05em; }
.strategy-card p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.63; }
.strategy-rule { width: 43px; height: 3px; background: var(--teal); margin-top: auto; transform: translateY(4px); }
.strategy-card-featured { color:#fff; background: var(--navy); border-color: var(--navy); }
.strategy-card-featured h3, .strategy-card-featured p { color: #fff; }
.strategy-card-featured p { color:#d3e0e6; }
.strategy-card-featured .strategy-number { color:#9ec7ce; }
.strategy-card-featured .strategy-mark { border-color: rgba(255,255,255,.23); color:#9be2dd; }

/* Team & fleet */
.team-section { background: var(--navy); color:#fff; padding-bottom: 100px; }
.team-content-wrap { display: grid; grid-template-columns: 48% 52%; align-items: stretch; min-height: 560px; }
.team-picture { position: relative; min-height: 560px; overflow:hidden; }
.team-picture>img { width:100%; height:100%; object-fit:cover; object-position:center; position:absolute; inset:0; }
.team-picture:after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(10,28,47,.46)); }
.team-img-panel { position:absolute; z-index:1; bottom:40px; left:max(40px,calc((100vw - var(--container))/2)); display:flex; align-items:center; gap:15px; padding:17px 21px; color:var(--navy); background:#fff; border-radius:7px; font:750 13px/1.5 var(--heading); box-shadow:0 12px 40px rgba(0,0,0,.16); }
.team-img-panel .icon { width:27px;height:27px;color:var(--teal-dark); }
.team-copy { width:min(100%, 710px); padding: 73px max(44px,calc((100vw - var(--container))/2)) 72px clamp(40px,5.6vw,96px); }
.team-copy .section-title { max-width: 660px; font-size: clamp(2.1rem,3.65vw,3.5rem); }
.team-copy>p { margin:23px 0 0; color:#d0dde5; font-size:17px; line-height:1.68; }
.team-copy>p+p { margin-top:15px; }
.team-confirmations { margin-top:23px; display:grid; gap:11px; }
.team-confirmations>div { display:flex; gap:10px; color:#e7f3f5; font-weight:700; font-size:16px; }
.team-confirmations .icon { color:var(--teal); margin-top:4px; stroke-width:2.5; }
.fleet-stats { display:grid; grid-template-columns: repeat(4,1fr); gap:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13); border-radius:10px; margin-top:57px; padding:28px 10px; }
.fleet-stats>div { text-align:center; padding:8px 15px; border-right:1px solid rgba(255,255,255,.13); }
.fleet-stats>div:last-child { border:0; }
.fleet-stats strong { display:block; font:700 clamp(35px,3.65vw,53px)/1.1 var(--heading); letter-spacing:-.08em; color:#8be1de; }
.fleet-stats span { display:block; margin:8px auto 0; max-width:180px; font-size:14px; line-height:1.35; color:#d3dfe6; }

/* Capability & routes */
.capacity-grid { display:grid; grid-template-columns: .97fr 1.03fr; gap: clamp(28px,5.5vw,90px); align-items:center; }
.capacity-copy .section-title { max-width:620px; }
.capacity-copy p { margin:24px 0 0; color:var(--muted); font-size:18px; line-height:1.66; }
.capacity-copy p strong { color:var(--navy); }
.capacity-copy p+p { margin-top:14px; }
.container-sizes { display:flex; flex-wrap:wrap; gap:9px; margin-top:27px; }
.container-sizes span { display:inline-flex; align-items:center; gap:8px; padding:10px 13px; background:#e8f6f5; border:1px solid #c9e7e6; border-radius:6px; color:#24676a; font:700 12px/1.4 var(--heading); }
.container-sizes .icon { width:17px;height:17px; }
.capacity-visual { position:relative; overflow:hidden; border:1px solid #dfebed; border-radius:12px; min-height:480px; padding:28px; display:flex; flex-direction:column; justify-content:space-between; background:linear-gradient(145deg,#edf5f6,#e5eef1); }
.capacity-visual:before { content:''; position:absolute; width:380px;height:380px;right:-100px;top:-210px;border-radius:50%;border:1px solid #b8d5da;box-shadow:0 0 0 45px rgba(107,176,187,.055),0 0 0 95px rgba(107,176,187,.045); }
.capacity-visual-heading,.capacity-visual-footer { display:flex;justify-content:space-between;align-items:center;gap:15px; font:750 10px/1.3 var(--heading); letter-spacing:.12em; color:#50747e; position:relative;z-index:1; }
.capacity-diagonal { height:13px;width:25px; background:repeating-linear-gradient(120deg, #9ebdc4 0 2px, transparent 3px 8px); }
.capacity-visual>img { position:relative;z-index:1;width:100%; max-height:340px;object-fit:contain; filter:drop-shadow(0 20px 15px rgba(33,62,75,.10)); transition:transform .45s; }
.capacity-visual:hover>img { transform:translateX(12px); }
.capacity-visual-footer span+span { color:var(--teal-dark); }
.routes-card { display:grid; grid-template-columns: .84fr 1.16fr; gap:24px; align-items:center; margin-top:60px; padding:35px 43px; background:var(--navy); color:#fff; border-radius:11px; overflow:hidden; position:relative; }
.routes-card:after { content:'';position:absolute;right:-125px;bottom:-205px;width:400px;height:400px;border-radius:50%;border:1px solid rgba(126,220,218,.10);box-shadow:0 0 0 45px rgba(126,220,218,.035);pointer-events:none; }
.routes-left { display:flex;align-items:center;gap:20px; position:relative;z-index:1; }
.routes-icon { display:grid;place-items:center;flex:0 0 64px;height:64px;border-radius:10px;background:rgba(109,215,213,.14);color:#83e0db; }
.routes-icon .icon { width:31px;height:31px; }
.routes-left h3 { margin:9px 0 0;font:750 clamp(21px,2vw,27px)/1.25 var(--heading);letter-spacing:-.045em; }
.routes-right { display:flex;align-items:center;justify-content:flex-end;gap:38px;position:relative;z-index:1; }
.route-places { position:relative;display:flex;align-items:center;gap:14px; padding-bottom:20px; }
.route-places>span:first-child,.route-places>span:nth-child(3) { font:750 19px var(--heading); }
.route-places small { position:absolute; bottom:0; left:50%;transform:translateX(-50%);font:700 10px var(--heading);letter-spacing:.11em;color:#94cfd0; }
.route-track { position:relative; width:90px;height:16px;display:block; }
.route-track-line { position:absolute;left:0;right:0;top:7px;border-top:2px dashed #77d2cd; }
.route-dot { display:block;position:absolute;top:3px;width:10px;height:10px;border-radius:50%;background:#7eddd8; }
.route-dot.left { left:0; }.route-dot.right { right:0; }
.routes-separator { height:51px;width:1px;background:rgba(255,255,255,.16); }
.bajio-route { padding:12px 23px;white-space:nowrap;border:1px solid rgba(146,221,220,.48);border-radius:6px;font:750 17px var(--heading);letter-spacing:.08em;color:#a7e8e4; }

/* Logos */
.clients-section { background:var(--mist); }
.clients-heading { display:flex;align-items:end;justify-content:space-between;gap:65px;margin-bottom:43px; }
.clients-heading .section-title { max-width:660px; }
.clients-heading p { max-width:290px;margin:0 0 6px;color:var(--muted);font-size:17px; }
.clients-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px; }
.client-logo { min-height:188px;display:flex;align-items:center;justify-content:center;padding:30px 45px;border:1px solid #e0e9ee;border-radius:9px;background:#fff;transition:transform .25s,box-shadow .25s,border-color .25s; }
.client-logo:hover { transform:translateY(-5px);box-shadow:0 17px 35px rgba(18,50,66,.08);border-color:#bde0df; }
.client-logo img { width:100%;height:105px;object-fit:contain; }
.client-logo:first-child img { height:115px; }
.client-logo:nth-child(2) img { height:88px; }

/* Contact */
.contact-section { position:relative;background:var(--navy-deep);color:#fff;padding:105px 0 112px;overflow:hidden; }
.contact-section:before { content:'';position:absolute;right:-230px;top:-290px;width:730px;height:730px;border:1px solid rgba(93,197,199,.10);border-radius:50%;box-shadow:0 0 0 70px rgba(93,197,199,.03),0 0 0 140px rgba(93,197,199,.02);pointer-events:none; }
.contact-inner { display:grid;grid-template-columns: 1fr 1fr;gap:clamp(40px,8vw,125px);position:relative; }
.contact-lead .section-title { max-width:590px; }
.contact-lead>p { color:#c5d7e1;font-size:20px;margin:27px 0 0; }
.contact-deco { display:inline-block;margin-top:77px;padding-top:19px;border-top:1px solid rgba(255,255,255,.22);font:700 11px var(--heading);letter-spacing:.16em;color:#8bcbc9; }
.contact-info { display:grid;gap:15px; }
.contact-card { padding:24px 28px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:8px; }
.contact-card-label { display:flex;align-items:center;gap:10px;margin-bottom:14px;color:#8ce0da;font:700 10px var(--heading);letter-spacing:.14em; }
.contact-card-label .icon { width:19px;height:19px; }
.contact-card>a { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:5px 0;color:#fff;font:650 clamp(16px,1.7vw,21px)/1.45 var(--heading);letter-spacing:-.04em;overflow-wrap:anywhere;transition:color .2s; }
.contact-card>a:hover { color:#8ce0da; }
.contact-card>a .icon { width:17px;height:17px; }
.website-link { position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:22px 28px;border-radius:8px;background:var(--teal);color:var(--navy);transition:background-color .2s,transform .2s; }
.website-link:hover { background:#95e3de;transform:translateY(-3px); }
.website-link span { font:700 10px var(--heading);letter-spacing:.14em; }
.website-link strong { font:750 clamp(16px,1.7vw,21px) var(--heading);letter-spacing:-.04em;overflow-wrap:anywhere; }
.website-link .icon { position:absolute;right:27px;top:24px;width:20px;height:20px; }

/* Footer */
.footer { background:#f9fbfb;border-top:1px solid #e6edef; }
.footer-main { display:flex;align-items:center;justify-content:space-between;gap:40px;padding:46px 0; }
.footer-brand { display:flex;align-items:center;gap:16px; }
.footer-brand img { width:120px;height:auto;mix-blend-mode:multiply; }
.footer-brand span { display:flex;flex-direction:column;gap:6px; }
.footer-brand strong { font:800 15px/1.4 var(--heading);letter-spacing:-.035em;color:var(--navy); }
.footer-brand small { font-size:14px;color:var(--muted); }
.footer-main nav { display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:16px 24px; }
.footer-main nav a { color:#4b6272;font:700 12px var(--heading);transition:color .2s; }
.footer-main nav a:hover { color:var(--teal-dark); }
.footer-bottom { display:flex;justify-content:space-between;align-items:center;padding:19px 0 25px;gap:20px;border-top:1px solid var(--stroke);color:#637988;font:700 10px var(--heading);letter-spacing:.08em; }
.footer-bottom a { display:flex;align-items:center;gap:6px;color:var(--navy); }
.footer-bottom .icon { width:15px;height:15px; }

/* Reveals: content remains available even if JavaScript is disabled */
.reveal { opacity:1; transform:none; }
.js-ready .reveal { opacity:0; transform:translateY(22px); transition:opacity .62s ease,transform .62s ease; }
.js-ready .reveal.is-visible { opacity:1;transform:none; }

@media (max-width: 1200px) {
  .container { width:min(var(--container),calc(100% - 54px)); }
  .brand-emblem { width:78px;height:54px; }
  .brand-emblem img { width:78px; }
  .brand-title strong { font-size:12px; }
  .primary-nav { gap:14px; }
  .primary-nav .nav-link { font-size:11px; }
  .nav-cta { padding:12px; }
  .hero-facts>div { min-width:114px;margin-right:13px;padding-right:13px; }
  .team-copy { padding-left:50px;padding-right:35px; }
}
@media (max-width: 1020px) {
  html { scroll-padding-top:85px; }
  .header-inner { min-height:78px; }
  .brand-emblem { width:87px;height:55px; }
  .brand-emblem img { width:87px; }
  .brand-title strong { font-size:13px; }
  .menu-toggle { display:grid;place-items:center; }
  .primary-nav { position:fixed;left:0;right:0;top:78px;bottom:0;overflow-y:auto;overscroll-behavior:contain;display:none;flex-direction:column;align-items:stretch;gap:2px;padding:24px max(28px,calc((100vw - 900px)/2)) 45px;background:#fff;box-shadow:0 22px 44px rgba(16,38,61,.14); }
  .primary-nav.is-open { display:flex; }
  .primary-nav .nav-link { font-size:16px;padding:15px 2px;border-bottom:1px solid #ebf0f3; }
  .primary-nav .nav-link:after { bottom:0; }
  .nav-cta { align-self:stretch;margin-top:16px;padding:16px;font-size:15px; }
  .hero-layout { grid-template-columns:1fr 1fr;gap:32px;min-height:640px;padding:65px 0 85px; }
  .hero h1 { font-size:clamp(3.05rem,5.9vw,4.8rem); }
  .hero-facts { margin-top:45px; }
  .hero-facts>div { min-width:0;flex:1; }
  .hero-facts strong { font-size:28px; }
  .hero-floating-card { left:-24px; }
  .hero-photo-wrap { min-height:410px; }
  .value-bar-inner { gap:15px;flex-wrap:wrap;justify-content:center; }
  .about-top { gap:40px; }
  .strategy-card { min-height:400px;padding:25px; }
  .team-content-wrap { grid-template-columns:45% 55%; }
  .team-copy { padding:60px 26px 58px 35px; }
  .team-picture { min-height:610px; }
  .team-img-panel { left:25px; }
  .routes-card { padding:30px; }
  .routes-right { gap:22px; }
  .client-logo { padding:25px; }
}
@media (max-width: 790px) {
  .container { width:calc(100% - 40px); }
  .section { padding:85px 0; }
  .section-title { font-size:clamp(2.0rem,6.5vw,3.2rem); }
  .hero { min-height:0; }
  .hero-layout { grid-template-columns:1fr;gap:46px;padding:66px 0 85px; }
  .hero h1 { max-width:650px;font-size:clamp(3.1rem,8.8vw,5rem); }
  .hero-description { max-width:640px; }
  .hero-facts { margin-top:40px;max-width:590px; }
  .hero-visual { margin:0 10px 0 20px; }
  .hero-photo-wrap { height:420px;min-height:0; }
  .hero-floating-card { bottom:35px;left:-20px; }
  .scroll-indicator { display:none; }
  .value-bar-inner { display:grid;grid-template-columns:1fr 1fr;justify-items:start;padding:20px 0; }
  .about-top { grid-template-columns:1fr;gap:14px;margin-bottom:35px; }
  .about-intro { padding:0; }
  .about-lower { grid-template-columns:1fr; }
  .about-illustration { min-height:325px; }
  .strategy-grid { grid-template-columns:1fr;gap:13px; }
  .strategy-card { min-height:0;padding:30px; }
  .strategy-card h3 { margin:20px 0 12px; }
  .strategy-rule { margin-top:25px; }
  .strategy-ghost { font-size:190px;top:0; }
  .team-content-wrap { grid-template-columns:1fr; }
  .team-picture { min-height:400px; }
  .team-picture>img { object-position:center 43%; }
  .team-copy { width:100%;padding:55px 30px 45px; }
  .team-copy .section-title { font-size:clamp(2.0rem,6.5vw,3.2rem); }
  .team-img-panel { bottom:25px; }
  .fleet-stats { grid-template-columns:1fr 1fr;margin-top:15px; }
  .fleet-stats>div:nth-child(2) { border-right:0; }
  .fleet-stats>div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.13);padding-bottom:20px; }
  .team-section { padding-bottom:72px; }
  .capacity-grid { grid-template-columns:1fr;gap:38px; }
  .capacity-visual { min-height:400px; }
  .routes-card { grid-template-columns:1fr;gap:25px; }
  .routes-right { justify-content:flex-start; }
  .clients-heading { align-items:start;flex-direction:column;gap:15px; }
  .clients-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-logo { min-height:165px; }
  .contact-inner { grid-template-columns:1fr;gap:34px; }
  .contact-section { padding:80px 0; }
  .contact-deco { margin-top:35px; }
  .footer-main { flex-direction:column;align-items:flex-start;gap:30px; }
  .footer-main nav { justify-content:flex-start; }
}
@media (max-width: 480px) {
  .container { width:calc(100% - 32px); }
  body { font-size:16px; }
  .section { padding:68px 0; }
  .section-title { font-size:clamp(2rem,9vw,2.65rem);letter-spacing:-.055em; }
  .header-inner { min-height:72px;gap:9px; }
  .brand { gap:7px; }
  .brand-emblem { width:65px;height:47px; }
  .brand-emblem img { width:65px; }
  .brand-title small { font-size:8px; }
  .brand-title strong { font-size:10px; }
  .menu-toggle .icon { width:22px;height:22px; }
  .primary-nav { top:72px; }
  .hero-layout { padding:56px 0 57px;gap:38px; }
  .hero h1 { font-size:clamp(2.87rem,12.7vw,4.35rem);margin:18px 0 20px; }
  .hero-description { font-size:17px; }
  .hero-buttons { margin-top:27px;gap:10px; }
  .btn { min-height:50px;padding:13px 16px;font-size:12px;gap:9px; }
  .hero-buttons .btn { flex:1 1 185px; }
  .hero-facts { margin-top:34px;gap:0; }
  .hero-facts>div { min-width:0;flex:1;margin:0;padding:0 7px 0 0;text-align:center; }
  .hero-facts strong { font-size:24px; }
  .hero-facts span { font-size:11px;line-height:1.2; }
  .hero-visual { margin:0 7px; }
  .hero-photo-wrap { height:315px;border-top-right-radius:51px; }
  .hero-photo { object-position:58% center; }
  .hero-photo-label { bottom:18px;left:16px;font-size:9px; }
  .hero-floating-card { left:-8px;bottom:43px;padding:10px 13px;min-width:0;gap:10px; }
  .floating-icon { width:35px;height:35px; }
  .floating-icon .icon { width:21px;height:21px; }
  .hero-floating-card strong { font-size:11px; }
  .hero-floating-card small { font-size:11px; }
  .value-bar-inner { grid-template-columns:1fr 1fr;gap:13px; }
  .value-bar-inner span { font-size:10px;white-space:normal;gap:7px; }
  .value-bar-inner .icon { width:13px;height:13px; }
  .about-intro p { font-size:16px; }
  .about-intro p:first-child { font-size:18px; }
  .about-illustration { min-height:245px; }
  .illustration-caption { font-size:9px;bottom:16px;left:17px; }
  .commitment-grid { gap:10px; }
  .commitment-card { padding:19px 15px; }
  .card-icon { width:38px;height:38px; }
  .card-icon .icon { width:20px;height:20px; }
  .commitment-card h3 { font-size:14px;margin:15px 0 6px; }
  .commitment-card p { font-size:13px; }
  .strategy-card { padding:26px; }
  .strategy-card p { font-size:16px; }
  .team-picture { min-height:310px; }
  .team-img-panel { left:17px;bottom:18px;padding:10px;font-size:11px; }
  .team-img-panel .icon { width:22px;height:22px; }
  .team-copy { padding:50px 18px 35px; }
  .team-copy>p { font-size:16px; }
  .team-confirmations>div { font-size:14px; }
  .fleet-stats { padding:20px 7px; }
  .fleet-stats strong { font-size:37px; }
  .fleet-stats span { font-size:12px; }
  .capacity-copy p { font-size:16px; }
  .container-sizes span { font-size:11px; }
  .capacity-visual { min-height:320px;padding:17px; }
  .capacity-visual-heading,.capacity-visual-footer { font-size:8px; }
  .routes-card { margin-top:35px;padding:23px 18px; }
  .routes-icon { flex-basis:45px;height:45px; }
  .routes-icon .icon { width:23px;height:23px; }
  .routes-left { gap:11px; }
  .routes-left h3 { font-size:20px; }
  .routes-right { gap:13px; }
  .route-places>span:first-child,.route-places>span:nth-child(3) { font-size:16px; }
  .route-track { width:48px; }
  .route-places { gap:7px; }
  .routes-separator { height:38px; }
  .bajio-route { font-size:12px;padding:9px 12px; }
  .clients-heading p { font-size:16px; }
  .clients-grid { gap:10px; }
  .client-logo { min-height:122px;padding:17px 14px; }
  .client-logo img { height:80px; }
  .client-logo:first-child img { height:85px; }
  .client-logo:nth-child(2) img { height:65px; }
  .contact-section { padding:65px 0; }
  .contact-lead>p { font-size:18px; }
  .contact-card { padding:21px 18px; }
  .contact-card>a { font-size:clamp(14px,3.8vw,18px); }
  .website-link { padding:19px; }
  .website-link .icon { right:17px;top:21px; }
  .website-link strong { font-size:17px; }
  .footer-main { padding:35px 0; }
  .footer-brand img { width:95px; }
  .footer-brand strong { font-size:12px; }
  .footer-main nav { gap:17px 20px; }
  .footer-bottom { font-size:9px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important; }
  .js-ready .reveal { opacity:1; transform:none; }
}
