:root {
  --ink: #092f28;
  --deep: #063c33;
  --deepest: #042720;
  --green: #168268;
  --green-bright: #1da67f;
  --lime: #cde85a;
  --mint: #e9f4ed;
  --mist: #f5f8f6;
  --white: #fff;
  --line: #d7e4de;
  --muted: #59736b;
  --shadow-sm: 0 8px 24px rgba(7, 47, 40, .07);
  --shadow: 0 24px 56px rgba(7, 47, 40, .13);
  --shadow-deep: 0 28px 64px rgba(3, 36, 29, .28);
  --r-sm: 12px;
  --r: 18px;
  --r-lg: 26px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .68; transform: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid rgba(29, 166, 127, .35); outline-offset: 3px; }

.wrap { width: min(1200px, 100%); margin: 0 auto; padding-inline: 28px; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 11px;
  color: var(--green);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .15em;
  line-height: 1;
  text-transform: uppercase;
}
.eyebrow::before { width: 20px; height: 2px; background: currentColor; content: ""; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 790; }
h2 {
  max-width: 720px;
  margin-bottom: 25px;
  font-size: clamp(2.35rem, 4vw, 3rem);
  letter-spacing: -.057em;
  line-height: 1.08;
}
h3 { font-size: 1.13rem; letter-spacing: -.024em; }
p { color: var(--muted); }

/* Header */
.header.wrap {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  width: 100%;
  max-width: none;
  height: 84px;
  align-items: center;
  justify-content: space-between;
  padding-inline: max(28px, calc((100vw - 1200px) / 2 + 28px));
  border-bottom: 1px solid rgba(215, 228, 222, .88);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 1px 0 rgba(7, 47, 40, .02);
  backdrop-filter: blur(16px);
}
@media (min-width: 721px) {
  .header.wrap { padding-right: 28px; }
}
.brand { display: inline-flex; align-items: center; height: 100%; }
.brand img { width: 174px; height: 60px; object-fit: contain; }
.nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 30px); margin-left: auto; margin-right: 34px; }
.nav a { position: relative; color: #405950; font-size: .91rem; font-weight: 760; }
.nav a::after {
  position: absolute;
  right: 0;
  bottom: -12px;
  left: 0;
  height: 2px;
  background: var(--green);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}
.nav a:hover::after, .nav a:focus-visible::after { transform: scaleX(1); }

.btn {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 12px 19px;
  border: 1px solid #b8d5c8;
  border-radius: 11px;
  background: rgba(255, 255, 255, .66);
  color: var(--deep);
  font-size: .91rem;
  font-weight: 850;
  line-height: 1;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.btn.primary { border-color: var(--green); background: var(--green); color: #fff; box-shadow: 0 10px 22px rgba(22, 130, 104, .21); }
.btn.secondary { background: rgba(255, 255, 255, .76); }
.btn:hover { border-color: var(--green-bright); transform: translateY(-2px); box-shadow: 0 11px 23px rgba(7, 47, 40, .12); }
.btn.primary:hover { background: var(--green-bright); box-shadow: 0 14px 28px rgba(22, 130, 104, .29); }
.header-actions { display: flex; flex: none; align-items: center; gap: 10px; }
.header-login { gap: 8px; }
.header-login svg { width: 16px; height: 16px; flex: none; stroke: currentColor; }

/* Hero / route command visual */
.hero {
  position: relative;
  overflow: hidden;
  padding: 94px 0 110px;
  background:
    radial-gradient(circle at 72% 8%, rgba(205, 232, 90, .27), transparent 19%),
    radial-gradient(circle at 15% 83%, rgba(86, 195, 149, .12), transparent 26%),
    linear-gradient(127deg, #f9fcfa 0%, #edf6f0 54%, #e3f0e9 100%);
}
.hero::before {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(10, 79, 65, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(10, 79, 65, .045) 1px, transparent 1px);
  background-position: center;
  background-size: 48px 48px;
  content: "";
  mask-image: linear-gradient(90deg, transparent 0%, #000 46%, #000 100%);
}
.hero::after {
  position: absolute;
  right: -260px;
  bottom: -285px;
  width: 690px;
  height: 690px;
  border: 1px solid rgba(22, 130, 104, .2);
  border-radius: 50%;
  box-shadow: 0 0 0 44px rgba(22, 130, 104, .035), 0 0 0 91px rgba(22, 130, 104, .025);
  content: "";
}
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(430px, .98fr); gap: clamp(44px, 6vw, 78px); align-items: center; }
.hero h1 { max-width: 650px; margin: 14px 0 21px; font-size: clamp(3.2rem, 5.3vw, 4rem); letter-spacing: -.07em; line-height: .99; }
.lead { max-width: 590px; margin-bottom: 0; font-size: 1.09rem; line-height: 1.7; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 24px; }
.trust { display: flex; flex-wrap: wrap; gap: 9px 17px; color: #376258; font-size: .81rem; font-weight: 780; }
.trust span { display: inline-flex; align-items: center; }

.hero--home-photo { background: linear-gradient(90deg, rgba(3, 35, 29, .91) 0%, rgba(4, 46, 38, .72) 47%, rgba(3, 30, 25, .25) 100%), url("hero-green-connect-van.png") 60% center / cover no-repeat; }
.hero--home-photo::before { display: none; }
.hero--home-photo::after { border-color: rgba(205, 232, 90, .2); box-shadow: 0 0 0 42px rgba(205, 232, 90, .04), 0 0 0 94px rgba(205, 232, 90, .025); }
.hero-grid--home-photo { grid-template-columns: 1fr; }
.hero--home-photo .eyebrow { color: var(--lime); }
.hero--home-photo h1 { color: #fff; }
.hero--home-photo .lead { color: #e2eee9; }
.hero--home-photo .trust { color: #d4e5de; }

.map-panel {
  position: relative;
  min-height: 430px;
  overflow: hidden;
  padding: 28px 30px 22px;
  border: 1px solid rgba(205, 232, 90, .27);
  border-radius: var(--r-lg);
  background:
    radial-gradient(circle at 18% 45%, rgba(205, 232, 90, .18), transparent 11%),
    radial-gradient(circle at 76% 20%, rgba(48, 176, 135, .22), transparent 24%),
    linear-gradient(138deg, #063d33, #082d26 62%, #05251f);
  box-shadow: var(--shadow-deep);
}
.map-panel::before {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(205, 232, 90, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(205, 232, 90, .09) 1px, transparent 1px);
  background-size: 26px 26px;
  content: "";
  opacity: .7;
  mask-image: radial-gradient(circle at 48% 42%, black, transparent 73%);
}
.map-panel::after { position: absolute; right: 24px; bottom: 73px; width: 134px; height: 62px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 12px; background: rgba(1, 27, 22, .36); box-shadow: 0 12px 26px rgba(0, 0, 0, .15); content: ""; backdrop-filter: blur(7px); }
.map-panel > * { position: relative; z-index: 1; }
.map-eyebrow { color: var(--lime); }
.map-status { position: absolute; top: 26px; right: 28px; display: flex; align-items: center; gap: 7px; color: #d4e9df; font-size: .72rem; font-weight: 800; }
.map-status span { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 5px rgba(205, 232, 90, .13); }
.map-panel svg { display: block; width: 100%; height: 285px; margin-top: 29px; overflow: visible; }
.map-panel--image { display: grid; min-height: 350px; place-items: center; }
.hero-map-visual { display: block; width: min(100%, 560px); height: 318px; margin: 0 auto; object-fit: contain; object-position: center; filter: drop-shadow(0 22px 25px rgba(0, 0, 0, .16)); }
.hub-ring { fill: rgba(205, 232, 90, .1); stroke: rgba(205, 232, 90, .38); stroke-width: 1px; }
.hub { fill: var(--lime); }
.hub-label, .destination-label { fill: #fff; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.route-line { fill: none; stroke: var(--lime); stroke-width: 2.2px; stroke-dasharray: 7 7; filter: drop-shadow(0 0 4px rgba(205, 232, 90, .55)); }
.destination { fill: var(--lime); stroke: #073c32; stroke-width: 3px; }
.vehicle-marker { fill: #fff; filter: drop-shadow(0 3px 7px rgba(0, 0, 0, .22)); }
.map-footer { display: flex; gap: 10px; align-items: center; color: #c9ded5; font-size: .78rem; }
.map-footer b { color: var(--lime); }

/* Trust strip */
.strip {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: -44px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(215, 228, 222, .95);
  border-radius: var(--r);
  background: rgba(255, 255, 255, .96);
  box-shadow: var(--shadow-sm);
}
.strip > div { display: flex; min-height: 88px; align-items: center; gap: 13px; padding: 18px 21px; border-right: 1px solid var(--line); }
.strip > div:last-child { border-right: 0; }
.strip-icon { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border: 1px solid #cde5d8; border-radius: 50%; background: #eff8f3; color: var(--green); font-size: 1.06rem; font-weight: 900; }
.strip p { display: grid; margin: 0; color: var(--ink); font-size: .82rem; line-height: 1.25; }
.strip small { margin-top: 4px; color: var(--muted); font-size: .72rem; }

/* Calculator */
.calculator { position: relative; padding: 110px 0; background: linear-gradient(180deg, #fff 0%, var(--mist) 100%); }
.calculator::before { position: absolute; top: 64px; right: 0; left: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(22, 130, 104, .2), transparent); content: ""; }
.booking { padding: clamp(27px, 4vw, 44px); border: 1px solid #d5e4dd; border-radius: var(--r-lg); background: #fff; box-shadow: var(--shadow); }
.steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid var(--line); color: #829891; font-size: .78rem; font-weight: 850; }
.steps::before { position: absolute; top: 9px; right: 9%; left: 9%; height: 2px; background: #dce9e3; content: ""; }
.steps span { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; background: #fff; }
.steps span::before { display: grid; width: 21px; height: 21px; flex: 0 0 21px; place-items: center; border: 2px solid currentColor; border-radius: 50%; background: #fff; color: inherit; content: ""; }
.steps .active { color: var(--green); }
.steps .active::before { border-color: var(--green); background: var(--green); box-shadow: 0 0 0 5px rgba(22, 130, 104, .1); }
.steps .completed { color: #4d796b; }
.steps .completed::before { border-color: #6ba891; background: #6ba891; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { position: relative; }
.field label { display: block; margin: 0 0 8px; color: #314d45; font-size: .83rem; font-weight: 850; }
.field label::before { margin-right: 7px; color: var(--green); content: "⌖"; }
.field input { width: 100%; height: 54px; padding: 14px 16px; border: 1px solid #c8dbd1; border-radius: 10px; background: #fcfefd; color: var(--ink); outline: 0; transition: border-color .2s, box-shadow .2s, background .2s; }
.field input::placeholder { color: #91a59e; }
.field input:focus { border-color: var(--green); background: #fff; box-shadow: 0 0 0 4px rgba(22, 130, 104, .11); }
.place-suggestions { position: absolute; z-index: 12; top: calc(100% + 5px); right: 0; left: 0; overflow: hidden; border: 1px solid #c7ddd2; border-radius: 10px; background: #fff; box-shadow: 0 16px 30px rgba(7, 47, 40, .15); }
.place-suggestions button { display: block; width: 100%; padding: 12px 14px; border: 0; border-bottom: 1px solid #e3eee8; background: #fff; color: #24483f; cursor: pointer; font-size: .84rem; line-height: 1.35; text-align: left; }
.place-suggestions button:last-child { border-bottom: 0; }
.place-suggestions button:hover, .place-suggestions button:focus-visible { background: #eef8f2; color: var(--green); outline: 0; }
#route { min-height: 25px; margin: 16px 0 23px; padding-bottom: 17px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .84rem; }
#route:empty { display: none; }
#route.error { color: #a43f35; font-weight: 720; }
.booking-stage { margin-top: 30px; padding-top: 3px; }
.booking-stage h3 { margin: 0 0 18px; color: #173f36; font-size: 20px !important; font-weight: 760; line-height: 26px !important; letter-spacing: -.018em; }
.stage-intro { margin: 0 0 14px; color: var(--muted); font-size: .86rem; }
.vehicle-grid, .service-grid { display: grid; gap: 13px; }
.vehicle-grid { grid-template-columns: repeat(5, 1fr); }
.service-grid { grid-template-columns: 1fr 1fr; }
.choice { position: relative; min-height: 126px; overflow: hidden; padding: 53px 16px 16px; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fbfdfc; color: var(--ink); text-align: left; transition: transform .18s, border-color .18s, box-shadow .18s, background .18s; }
.choice::before { position: absolute; top: 14px; left: 16px; color: #75a695; font-size: 1.45rem; line-height: 1; }
#vehicles .choice:first-child, #vehicles .choice:nth-child(2) { padding-top: 82px; }
#vehicles .choice:first-child::before, #vehicles .choice:nth-child(2)::before { display: none; }
.vehicle-photo { position: absolute; top: 8px; left: 10px; width: 120px; height: 64px; object-fit: contain; object-position: center; }
#vehicles .choice { padding-top: 82px; }
#vehicles .choice::before { display: none; }
#services .choice { min-height: 112px; padding: 17px 150px 17px 55px; }
#services .choice:nth-child(1)::before { content:"";display:inline-block;width:1em;height:1em;background:currentColor;mask:url("icons/urgent.svg") center/contain no-repeat;-webkit-mask:url("icons/urgent.svg") center/contain no-repeat; }
#services .choice:nth-child(2)::before { content:"";display:inline-block;width:1em;height:1em;background:currentColor;mask:url("icons/diamond.svg") center/contain no-repeat;-webkit-mask:url("icons/diamond.svg") center/contain no-repeat; }
.service-quote { position: absolute; top: 16px; right: 16px; display: grid; gap: 3px; text-align: right; }
.service-quote strong { color: var(--green); font-size: 1rem; letter-spacing: -.035em; }
.service-quote small { margin: 0; color: #557269; font-size: .67rem; white-space: nowrap; }
.choice b { display: block; margin-bottom: 5px; font-size: .9rem; }
.choice small { color: var(--muted); font-size: .73rem; line-height: 1.35; }
#vehicles .choice { min-height: 151px; }
#vehicles .vehicle-spec { display: grid; gap: 2px; max-width: 130px; margin-top: 6px; color: #58776d; font-size: .66rem; font-weight: 700; line-height: 1.34; }
#vehicles .vehicle-dimensions,
#vehicles .vehicle-weight { display: block; }
.choice:hover { border-color: #8dc3ae; background: #fff; box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.choice.selected { border: 2px solid var(--green); background: linear-gradient(145deg, #f7fcf9, #ebf7ef); box-shadow: 0 8px 22px rgba(22, 130, 104, .11); }
.choice.selected::after { position: absolute; top: 12px; right: 12px; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; content:"";display:inline-block;width:1em;height:1em;background:currentColor;mask:url("icons/check.svg") center/contain no-repeat;-webkit-mask:url("icons/check.svg") center/contain no-repeat; font-size: .7rem; font-weight: 900; }
.pickup-window { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-top: 20px; padding: 18px 20px; border: 1px solid #cae1d5; border-radius: 12px; background: #f4faf6; color: #23483d; }
.pickup-window > div:first-child { max-width: 445px; }
.pickup-window b { display: block; margin: 3px 0 4px; font-size: .94rem; }
.pickup-window p { margin: 0; color: #5d786f; font-size: .8rem; line-height: 1.45; }
.pickup-kicker { display: block; color: var(--green); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.pickup-fields { display: grid; min-width: 310px; grid-template-columns: 1.3fr 1fr; gap: 9px; }
.pickup-fields label { display: grid; gap: 5px; color: #42655a; font-size: .7rem; font-weight: 800; }
.pickup-fields input { height: 39px; padding: 7px 9px; border: 1px solid #bfd8cb; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; }
.price { position: relative; min-height: 102px; margin-top: 22px; padding: 24px 27px; overflow: hidden; border: 1px solid rgba(205, 232, 90, .22); border-radius: var(--r-sm); background: linear-gradient(135deg, #063c33, #0a5043); color: #d2e8df; box-shadow: 0 15px 32px rgba(5, 48, 40, .2); }
.price::after { position: absolute; top: -44px; right: -32px; width: 160px; height: 160px; border: 1px solid rgba(205, 232, 90, .22); border-radius: 50%; box-shadow: 0 0 0 24px rgba(205, 232, 90, .035); content: ""; }
.price > span { position: relative; z-index: 1; display: block; margin-bottom: 2px; color: #c9ded5; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.price strong { position: relative; z-index: 1; color: var(--lime); font-size: clamp(1.75rem, 3vw, 2.25rem); letter-spacing: -.045em; }
.price small { position: relative; z-index: 1; display: block; margin-top: 3px; }
.price-next { position: relative; z-index: 1; margin-top: 17px; background: var(--lime); color: #093b31; }
.price-next:hover { background: #e0ef74; }
.booking-form-step[hidden] { display: none; }
.booking-step-heading { margin: 3px 0 25px; }
.booking-step-heading > span { color: var(--green); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.booking-step-heading h3 { margin: 5px 0 7px; color: #173f36; font-size: 24px !important; line-height: 30px !important; }
.booking-step-heading p { max-width: 620px; margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.55; }
.shipment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.shipment-items { display: grid; gap: 13px; }
.shipment-item { min-width: 0; margin: 0; padding: 18px; border: 1px solid #d5e4dd; border-radius: 12px; background: #f9fcfa; }
.shipment-item-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 15px; }
.shipment-item-heading b { color: #264d42; font-size: .9rem; }
.remove-shipment { padding: 0; border: 0; background: transparent; color: #a04841; font: inherit; font-size: .76rem; font-weight: 750; text-decoration: underline; }
.package-grid { display: grid; grid-template-columns: 1fr 1.25fr 1.25fr 1.25fr 1.4fr; gap: 11px; }
.package-grid .field label::before { display: none; content: none; }
.package-grid .field label { margin-bottom: 6px; color: #42655a; font-size: .71rem; }
.package-grid .field input { height: 43px; padding: 9px 10px; font-size: .84rem; }
.add-shipment { margin-top: 12px; padding: 8px 0; border: 0; background: transparent; color: var(--green); font: inherit; font-size: .83rem; font-weight: 850; }
.add-shipment:hover { color: var(--green-bright); text-decoration: underline; }
.capacity-feedback { display: grid; gap: 4px; margin-top: 15px; padding: 14px 16px; border: 1px solid #bcdccc; border-radius: 9px; background: #f1f9f4; color: #2c594c; font-size: .82rem; }
.capacity-feedback b { font-size: .84rem; }
.capacity-feedback span { color: #5d786f; line-height: 1.42; }
.capacity-feedback.error { border-color: #e4b3ad; background: #fff6f5; color: #8e3e37; }
.capacity-feedback.error span { color: #9b5a54; }
.field--full { margin-top: 17px; }
.field--wide { grid-column: span 2; }
.shipment-grid .field label::before, .field--full label::before, .form-card .field label::before { display: none; content: none; }
.booking textarea { width: 100%; min-height: 96px; resize: vertical; padding: 13px 15px; border: 1px solid #c8dbd1; border-radius: 10px; background: #fcfefd; color: var(--ink); font: inherit; line-height: 1.45; outline: 0; }
.booking textarea:focus { border-color: var(--green); background: #fff; box-shadow: 0 0 0 4px rgba(22, 130, 104, .11); }
.form-card { margin-top: 17px; padding: 20px; border: 1px solid #d5e4dd; border-radius: 12px; background: #f9fcfa; }
.form-card > b { display: block; margin-bottom: 17px; color: #264d42; font-size: .9rem; }
.booking-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.checkout-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 17px; align-items: stretch; }
.booking-summary { display: grid; align-content: start; gap: 7px; padding: 22px; border-radius: 12px; background: linear-gradient(135deg, #063c33, #0a5043); color: #e4f2ed; }
.booking-summary > span { color: var(--lime); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.booking-summary b { color: #fff; font-size: .96rem; }
.booking-summary strong { color: var(--lime); font-size: 1.5rem; letter-spacing: -.04em; }
.booking-summary strong small { color: #c9ddd5; font-size: .7rem; font-weight: 700; }
.booking-summary p { margin: 0; color: #bdd8cf; font-size: .77rem; }
.payment-methods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; min-width: 0; margin: 0; padding: 17px; border: 1px solid #d5e4dd; border-radius: 12px; }
.payment-methods legend { padding: 0 5px; color: #31584c; font-size: .8rem; font-weight: 850; }
.payment-option { display: grid; align-content: start; gap: 5px; min-height: 116px; padding: 15px; border: 1px solid #d5e4dd; border-radius: 9px; background: #fbfdfc; cursor: pointer; }
.payment-option:has(input:checked) { border-color: var(--green); background: #f0f8f3; box-shadow: inset 0 0 0 1px var(--green); }
.payment-option input { width: 16px; height: 16px; margin: 0 0 4px; accent-color: var(--green); }
.payment-option span { color: #21483c; font-size: .87rem; font-weight: 850; }
.payment-option small { color: var(--muted); font-size: .71rem; line-height: 1.35; }
.booking-confirmation { margin: 15px 0 0; color: var(--green); font-size: .87rem; font-weight: 750; }

/* Service cards */
.section { padding: 112px 0; }
.solutions { display: grid; grid-template-columns: 1.14fr .9fr .9fr .9fr; gap: 17px; }
.featured, .solution { min-height: 307px; border-radius: var(--r); }
.featured { position: relative; overflow: hidden; padding: 37px; background: linear-gradient(145deg, #063c33, #0b5547); color: #fff; box-shadow: var(--shadow-deep); }
.featured::before { position: absolute; right: -42px; bottom: -57px; width: 232px; height: 232px; border: 2px solid rgba(205, 232, 90, .25); border-radius: 50%; box-shadow: 0 0 0 28px rgba(205, 232, 90, .055); content: ""; }
.featured::after { position: absolute; right: 35px; bottom: 39px; color: rgba(205, 232, 90, .52); content:"";display:inline-block;width:1em;height:1em;background:currentColor;mask:url("icons/urgent.svg") center/contain no-repeat;-webkit-mask:url("icons/urgent.svg") center/contain no-repeat; font-size: 5.2rem; font-weight: 300; }
.featured > * { position: relative; z-index: 1; }
.card-kicker { display: block; margin-bottom: 24px; color: var(--lime); font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.featured h3 { max-width: 270px; margin-bottom: 13px; font-size: 1.7rem; letter-spacing: -.045em; }
.featured p { max-width: 340px; color: #c5ddd4; }
.solution-action { margin-top: 6px; border-color: var(--lime); background: transparent; color: #fff; }
.solution-action:hover { border-color: var(--lime); background: rgba(205, 232, 90, .11); }
.solution { position: relative; padding: 30px; overflow: hidden; border: 1px solid var(--line); border-top: 3px solid var(--green); background: linear-gradient(155deg, #fff, #f5faf7); box-shadow: var(--shadow-sm); transition: transform .2s, box-shadow .2s; }
.solution:nth-child(3) { border-top-color: #9ec638; background: linear-gradient(155deg, #f7faf3, #edf5e7); }
.solution--jit .solution-icon { background: #eff7df; color: #628d1e; }
.solution:hover { box-shadow: var(--shadow); transform: translateY(-4px); }
.solution-icon { display: grid; width: 43px; height: 43px; margin-bottom: 66px; place-items: center; border-radius: 11px; background: #e7f5ec; color: var(--green); font-size: 1.27rem; font-weight: 900; }
.solution h3 { margin-bottom: 11px; }
.solution p { margin: 0; font-size: .91rem; }
.text-link { display: inline-flex; margin-top: 22px; color: var(--green); font-size: .84rem; font-weight: 850; }
.text-link:hover { color: var(--deep); }

/* Europe */
.europe-section { position: relative; padding: 104px 0; overflow: hidden; background: linear-gradient(110deg, #eaf4ee, #f6faf8 55%, #e2f0e8); }
.europe-section::before { position: absolute; top: -25%; left: -8%; width: 40vw; height: 150%; border: 1px solid rgba(22, 130, 104, .09); border-radius: 50%; content: ""; }
.europe-grid { position: relative; display: grid; grid-template-columns: .88fr 1.12fr; gap: clamp(44px, 7vw, 88px); align-items: center; }
.europe-grid > div:first-child > p { max-width: 470px; margin-bottom: 28px; }
.europe-map { position: relative; padding: 24px; overflow: hidden; border: 1px solid rgba(215, 228, 222, .95); border-radius: var(--r); background: rgba(255, 255, 255, .82); box-shadow: var(--shadow); }
.europe-map::before { position: absolute; inset: 0; background-image: radial-gradient(rgba(22, 130, 104, .12) 1px, transparent 1px); background-size: 13px 13px; content: ""; mask-image: linear-gradient(135deg, #000, transparent 75%); }
.europe-map svg { position: relative; display: block; width: 100%; height: 282px; overflow: visible; }
.europe-grid--destinations { grid-template-columns: .86fr 1.14fr; }
.europe-map--image { width: min(100%, 340px); justify-self: end; padding: 10px; background: #f8fbf9; }
.europe-map--image::before { display: none; }
.europe-map--image img { position: relative; z-index: 1; display: block; width: 100%; height: 430px; min-height: 0; object-fit: contain; object-position: center; }
.destination-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 24px 0 17px; }
.destination-list :is(span, a.destination-link) { padding: 8px 10px; border: 1px solid #cfdfd7; border-radius: 8px; background: rgba(255,255,255,.72); color: #315d50; font-size: .79rem; font-weight: 750; }
.europe-note { margin-bottom: 22px !important; color: var(--muted); font-size: .85rem; }
.continent { fill: #e7f1eb; stroke: #c9dcd3; stroke-width: 1px; }
.europe-hub { fill: var(--green); stroke: #dff4e7; stroke-width: 7px; filter: drop-shadow(0 0 10px rgba(22, 130, 104, .62)); }
.europe-hub-label { fill: var(--deep); font-size: 12px; font-weight: 900; letter-spacing: .11em; }
.europe-route { fill: none; stroke: var(--green); stroke-width: 2.5px; stroke-dasharray: 7 7; }
.europe-destination { fill: var(--lime); stroke: var(--deep); stroke-width: 2px; }
.map-key { position: absolute; right: 22px; bottom: 18px; display: flex; align-items: center; gap: 7px; color: #537167; font-size: .72rem; font-weight: 800; }
.map-key span { display: inline-block; width: 19px; border-top: 2px dashed var(--green); }
.section-heading { position: relative; z-index: 1; display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.section-heading h2 { margin: 7px 0 11px; }
.section-heading p { max-width: 710px; margin: 0; color: var(--muted); }
.country-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.country-grid article { display: grid; min-height: 108px; align-content: start; gap: 8px; padding: 18px 19px; border: 1px solid rgba(187, 211, 199, .82); border-radius: 14px; background: rgba(255, 255, 255, .83); box-shadow: 0 7px 20px rgba(9, 55, 44, .04); }
.country-grid b { color: var(--deep); font-size: .93rem; }
.country-grid span { color: #58736a; font-size: .8rem; line-height: 1.55; }
.country-grid .country-more { grid-column: span 3; min-height: auto; background: linear-gradient(110deg, #073f35, #166c58); border-color: transparent; }
.country-grid .country-more b { color: var(--lime); }
.country-grid .country-more span { color: #d4e7df; }

/* Route flow */
.timeline { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin-top: 43px; }
.timeline::before { position: absolute; top: 23px; right: 5%; left: 5%; height: 2px; background: linear-gradient(90deg, var(--green), var(--lime), var(--green)); content: ""; }
.timeline > div { position: relative; display: grid; justify-items: center; gap: 11px; text-align: center; }
.timeline b { z-index: 1; display: grid; width: 47px; height: 47px; place-items: center; border: 5px solid #fff; border-radius: 50%; background: var(--deep); color: var(--lime); box-shadow: 0 5px 15px rgba(7, 47, 40, .16); font-size: .78rem; }
.timeline span { color: #31574d; font-size: .83rem; font-weight: 850; }
.timeline > div:nth-child(even) b { background: var(--green); color: #fff; }
.timeline--detailed { grid-template-columns: repeat(5, 1fr); gap: 12px; }
.timeline--detailed::before { top: 31px; }
.timeline--detailed article { position: relative; z-index: 1; min-height: 210px; padding: 0 15px 17px; text-align: center; }
.timeline--detailed b { display: grid; width: 64px; height: 64px; margin: 0 auto 17px; place-items: center; border: 6px solid #fff; border-radius: 50%; background: var(--deep); color: var(--lime); box-shadow: 0 6px 18px rgba(7, 47, 40, .17); font-size: .82rem; }
.timeline--detailed article:nth-child(even) b { background: var(--green); color: #fff; }
.timeline--detailed h3 { margin: 0 0 8px; color: #1b493e; font-size: 17px !important; line-height: 22px !important; }
.timeline--detailed p { margin: 0; color: var(--muted); font-size: .79rem; line-height: 1.55; }

/* Business section */
.b2b-section { position: relative; overflow: hidden; padding: 105px 0; background: radial-gradient(circle at 78% 34%, rgba(36, 136, 109, .35), transparent 22%), linear-gradient(130deg, #052e27, #082720 68%, #05231e); color: #fff; }
.b2b-section::after { position: absolute; right: -14%; bottom: -65%; width: 640px; height: 640px; border: 1px solid rgba(205, 232, 90, .13); border-radius: 50%; box-shadow: 0 0 0 48px rgba(205, 232, 90, .035), 0 0 0 102px rgba(205, 232, 90, .02); content: ""; }
.b2b-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(47px, 7vw, 100px); align-items: center; }
.b2b-section h2 { max-width: 540px; margin-bottom: 19px; color: #fff; }
.b2b-section p { max-width: 520px; color: #c4dad2; }
.b2b-eyebrow { color: var(--lime); }
.admin-stack { position: relative; height: 248px; }
.admin-card { position: absolute; right: 0; display: grid; width: 83%; gap: 6px; padding: 22px 24px; border: 1px solid rgba(255, 255, 255, .13); border-radius: 14px; background: rgba(255, 255, 255, .09); box-shadow: 0 20px 38px rgba(0, 0, 0, .15); color: #fff; backdrop-filter: blur(9px); }
.admin-card small { color: var(--lime); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.admin-card b { font-size: 1rem; }
.admin-card span { color: #bdd8cf; font-size: .8rem; }
.admin-card-top { top: 0; z-index: 3; transform: translateX(-30px); }
.admin-card:not(.admin-card-top):not(.admin-card-bottom) { top: 78px; z-index: 2; background: rgba(5, 36, 30, .7); transform: translateX(8px); }
.admin-card-bottom { top: 157px; z-index: 1; transform: translateX(-15px); }

/* FAQ, close CTA, footer */
.faq { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow-sm); }
.faq details { min-height: 82px; padding: 22px 23px; border-bottom: 1px solid var(--line); background: #fff; transition: background .2s; }
.faq details:nth-child(odd) { border-right: 1px solid var(--line); }
.faq details:hover, .faq details[open] { background: #f7fbf8; }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; color: #21493f; cursor: pointer; font-size: .91rem; font-weight: 850; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { display: grid; width: 21px; height: 21px; flex: 0 0 21px; place-items: center; border-radius: 50%; background: #e8f4ed; color: var(--green); content: "+"; font-size: 1.1rem; font-weight: 500; transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq p { margin: 14px 33px 0 0; font-size: .9rem; }

.cta { position: relative; overflow: hidden; padding: 104px 0; background: radial-gradient(circle at 77% 40%, rgba(205, 232, 90, .52), transparent 11%), linear-gradient(120deg, #e4f1e9, #f7fbf8 58%, #e0efe7); }
.cta::before { position: absolute; top: -180px; right: 7%; width: 450px; height: 450px; border: 1px solid rgba(22, 130, 104, .17); border-radius: 50%; box-shadow: 0 0 0 42px rgba(22, 130, 104, .04); content: ""; }
.cta .wrap { position: relative; z-index: 1; }
.cta h2 { max-width: 650px; font-size: clamp(2.65rem, 4.7vw, 3.8rem); }
.cta .lead { max-width: 525px; }

.footer { padding: 73px 0 26px; border-top: 4px solid var(--lime); background: #052b24; color: #d0e4da; }
.footer-grid { display: grid; grid-template-columns: 1.55fr repeat(3, 1fr); gap: 31px; }
.footer-logo { width: 166px; height: auto; object-fit: contain; filter: brightness(0) invert(1) sepia(.25) saturate(.6); }
.footer p { max-width: 240px; margin: 16px 0 0; color: #aac9bd; font-size: .89rem; }
.footer b { display: block; margin-bottom: 14px; color: #fff; font-size: .83rem; letter-spacing: .04em; }
.footer a { display: block; width: fit-content; margin: 8px 0; color: #b4cdc2; font-size: .86rem; transition: color .18s, transform .18s; }
.footer a:hover { color: var(--lime); transform: translateX(3px); }
.footer .footer-contact { display: flex; align-items: center; gap: 8px; margin: 10px 0; color: #d4e8df; font-size: .87rem; font-weight: 750; }
.footer .footer-contact span { color: #b7d1c5; }

@media (max-width: 980px) {
  .nav { gap: 14px; margin-right: 18px; }
  .nav a { font-size: .84rem; }
  .hero-grid, .europe-grid, .b2b-grid { grid-template-columns: 1fr; }
  .hero-grid { gap: 42px; }
  .map-panel { max-width: 660px; }
  .europe-grid--destinations { grid-template-columns: 1fr; }
  .europe-map--image { max-width: 340px; }
  .solutions { grid-template-columns: 1.1fr 1fr; }
  .featured { grid-row: span 2; }
  .vehicle-grid { grid-template-columns: repeat(3, 1fr); }
  .package-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: 1.5fr repeat(3, 1fr); }
  .country-grid { grid-template-columns: repeat(2, 1fr); }
  .country-grid .country-more { grid-column: span 2; }
}

@media (max-width: 720px) {
  .header.wrap { height: 72px; padding-inline: 18px; }
  .brand img { width: 144px; }
  .nav { display: none; }
  .header .btn { min-height: 42px; padding: 10px 12px; font-size: .76rem; }
  .wrap { padding-inline: 18px; }
  .hero { padding: 58px 0 86px; }
  .hero h1 { font-size: clamp(2.85rem, 12vw, 3.65rem); }
  .map-panel { min-height: 365px; padding: 23px 20px 18px; }
  .map-status { top: 20px; right: 20px; }
  .map-panel svg { height: 245px; }
  .map-panel--image { min-height: 300px; }
  .hero-map-visual { height: 244px; margin-top: 0; }
  .hero--home-photo { background-position: 64% center; }
  .hero-grid--home-photo { gap: 0; }
  .strip { grid-template-columns: 1fr 1fr; margin-top: -30px; }
  .strip > div:nth-child(2) { border-right: 0; }
  .strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .calculator, .section, .europe-section, .b2b-section, .cta { padding: 75px 0; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 16px; }
  .steps::before { display: none; }
  .grid2, .service-grid, .europe-grid { grid-template-columns: 1fr; }
  .shipment-grid, .checkout-grid { grid-template-columns: 1fr; }
  .package-grid { grid-template-columns: 1fr 1fr; }
  .field--wide { grid-column: span 1; }
  .payment-methods { grid-template-columns: 1fr; }
  .payment-option { min-height: 0; grid-template-columns: 18px 1fr; align-items: center; }
  .payment-option small { grid-column: 2; }
  .pickup-window { align-items: stretch; flex-direction: column; }
  .pickup-fields { min-width: 0; }
  .destination-list { grid-template-columns: 1fr 1fr; }
  .europe-map--image { width: min(100%, 300px); justify-self: start; }
  .europe-map--image img { min-height: 0; height: 380px; }
  #route { margin-bottom: 19px; }
  .vehicle-grid { grid-template-columns: 1fr 1fr; }
  .solutions { grid-template-columns: 1fr; }
  .featured { min-height: 280px; }
  .solution-icon { margin-bottom: 42px; }
  .timeline { grid-template-columns: 1fr 1fr; gap: 25px 0; }
  .timeline::before { display: none; }
  .timeline > div { grid-template-columns: 47px auto; justify-items: start; align-items: center; text-align: left; }
  .section-heading { display: grid; align-items: start; }
  .country-grid { grid-template-columns: 1fr 1fr; }
  .timeline--detailed { grid-template-columns: 1fr; gap: 12px; }
  .timeline--detailed article { display: grid; min-height: 0; grid-template-columns: 58px 1fr; column-gap: 16px; padding: 13px; text-align: left; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
  .timeline--detailed b { grid-row: span 2; width: 52px; height: 52px; margin: 0; border-width: 4px; }
  .timeline--detailed h3 { align-self: end; margin: 0; }
  .timeline--detailed p { align-self: start; margin: 5px 0 0; }
  .admin-stack { height: 273px; }
  .admin-card { width: 89%; }
  .faq { grid-template-columns: 1fr; }
  .faq details:nth-child(odd) { border-right: 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 34px 20px; }
}

@media (max-width: 420px) {
  .header .header-quote { display: none; }
  .actions { display: grid; grid-template-columns: 1fr; }
  .actions .btn { width: 100%; }
  .trust { display: grid; gap: 7px; }
  .strip { grid-template-columns: 1fr; }
  .strip > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .strip > div:last-child { border-bottom: 0; }
  .vehicle-grid, .footer-grid { grid-template-columns: 1fr; }
  .country-grid { grid-template-columns: 1fr; }
  .country-grid .country-more { grid-column: span 1; }
  #services .choice { padding-right: 16px; padding-bottom: 49px; }
  .service-quote { top: auto; right: 16px; bottom: 14px; grid-template-columns: auto auto; align-items: baseline; gap: 7px; }
  .map-panel { min-height: 330px; }
  .map-footer { font-size: .7rem; }
}
h1,h2,h3,h4,h5,h6{font-size:21px!important;line-height:28px!important}
h2,h3,h4,h5,h6{font-size:30px!important;line-height:32px!important}.hero h1{font-size:40px!important;line-height:48px!important}
.destination-list :is(span, a.destination-link){display:flex;align-items:center;gap:8px}.flag{position:relative;display:inline-block;flex:0 0 22px;width:22px;height:14px;overflow:hidden;border:1px solid rgba(7,47,40,.16);border-radius:2px;background:#fff}.flag-be{background:linear-gradient(90deg,#161616 0 33.33%,#ffd631 33.33% 66.66%,#e13b35 66.66%)}.flag-de{background:linear-gradient(#161616 0 33.33%,#d33d35 33.33% 66.66%,#f4c646 66.66%)}.flag-fr{background:linear-gradient(90deg,#2252a4 0 33.33%,#fff 33.33% 66.66%,#e34040 66.66%)}.flag-es{background:linear-gradient(#c73332 0 25%,#f8cf45 25% 75%,#c73332 75%)}.flag-pt{background:linear-gradient(90deg,#176e45 0 40%,#d83e3e 40%)}.flag-pl{background:linear-gradient(#fff 0 50%,#d9434b 50%)}.flag-dk{background:#c93438}.flag-dk::before,.flag-se::before,.flag-ch::before{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 28%,#fff 28% 39%,transparent 39%),linear-gradient(transparent 0 39%,#fff 39% 61%,transparent 61%);content:""}.flag-no{background:#bf3438}.flag-no::before{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 25%,#fff 25% 40%,transparent 40%),linear-gradient(transparent 0 35%,#fff 35% 63%,transparent 63%);content:""}.flag-no::after{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 29%,#092b67 29% 36%,transparent 36%),linear-gradient(transparent 0 43%,#092b67 43% 55%,transparent 55%);content:""}.flag-se{background:#2362a4}.flag-se::before{background:linear-gradient(90deg,transparent 0 30%,#f4d143 30% 42%,transparent 42%),linear-gradient(transparent 0 39%,#f4d143 39% 61%,transparent 61%)}.flag-cz{background:linear-gradient(150deg,#17529a 0 49%,transparent 50%),linear-gradient(#fff 0 50%,#d9434b 50%)}.flag-at{background:linear-gradient(#d43d3e 0 33.33%,#fff 33.33% 66.66%,#d43d3e 66.66%)}.flag-ch{background:#d53a3d}.flag-ch::before{background:linear-gradient(90deg,transparent 0 37%,#fff 37% 63%,transparent 63%),linear-gradient(transparent 0 29%,#fff 29% 71%,transparent 71%)}

/* Compact country picker in calculator address fields */
.address-input{display:grid;grid-template-columns:64px minmax(0,1fr);gap:0;align-items:stretch}.address-input select{min-width:0;border:1px solid #d7e4df;border-right:0;border-radius:9px 0 0 9px;background:#f4f8f6;text-align:center;font-size:1.18rem;cursor:pointer}.address-input input{min-width:0;border-radius:0 9px 9px 0}.address-input select:focus{position:relative;z-index:1;outline:2px solid var(--green);outline-offset:-2px}@media(max-width:640px){.address-input{grid-template-columns:58px minmax(0,1fr)}}
/* Graphic flags inside calculator address fields */
.country-picker{position:relative;display:grid;place-items:center;border:1px solid #d7e4df;border-right:0;border-radius:9px 0 0 9px;background:#f4f8f6}.country-picker .flag{width:28px;height:18px;border-radius:3px;box-shadow:0 1px 3px rgba(4,45,38,.18)}.country-picker::after{position:absolute;right:5px;bottom:1px;color:#42645c;content:"⌄";font-size:.72rem;line-height:1}.country-picker select{position:absolute;inset:0;width:100%;height:100%;margin:0;border:0!important;opacity:0;cursor:pointer}.flag-nl{background:linear-gradient(#ae1c28 0 33.33%,#fff 33.33% 66.66%,#21468b 66.66%)}.flag-gb{background:linear-gradient(34deg,transparent 43%,#fff 43% 48%,#cf2938 48% 52%,#fff 52% 57%,transparent 57%),linear-gradient(-34deg,transparent 43%,#fff 43% 48%,#cf2938 48% 52%,#fff 52% 57%,transparent 57%),linear-gradient(90deg,transparent 38%,#fff 38% 44%,#cf2938 44% 56%,#fff 56% 62%,transparent 62%),linear-gradient(transparent 33%,#fff 33% 42%,#cf2938 42% 58%,#fff 58% 67%,transparent 67%),#153d7d}.flag-lu{background:linear-gradient(#e43d30 0 33.33%,#fff 33.33% 66.66%,#49a7df 66.66%)}.flag-it{background:linear-gradient(90deg,#009246 0 33.33%,#fff 33.33% 66.66%,#ce2b37 66.66%)}.flag-nl,.flag-lu,.flag-it,.flag-gb{display:inline-block}
.country-picker .flag{align-self:center;justify-self:center;transform:none!important;transform-origin:center;writing-mode:horizontal-tb}

.country-picker .flag{position:absolute;top:50%;left:50%;margin:0;transform:translate3d(-50%,-50%,0)!important;will-change:transform}

/* Keep service prices unobstructed after selection */
.service-grid .choice.selected::after{display:none}
/* Mobile calculator and homepage refinement */
@media(max-width:720px){.header{height:auto;min-height:68px;flex-wrap:wrap;padding-block:8px}.header.shell{padding-inline:18px}.header .nav{display:flex!important;order:3;width:100%;overflow-x:auto;gap:18px;padding:5px 0 2px;-webkit-overflow-scrolling:touch}.header .nav a{flex:0 0 auto}.hero{padding:56px 0}.hero h1{font-size:2.25rem!important;line-height:1.13!important}.grid2,.vehicle-grid,.service-grid{grid-template-columns:1fr!important}.booking{padding-inline:0}.booking-stage{margin-top:26px}.choice{min-height:0}.price-next,.booking .btn{width:100%}.steps{overflow-x:auto;white-space:nowrap;gap:14px;padding-bottom:7px}.address-input{min-width:0}.place-suggestions{max-width:100%}}/* Purpose-built mobile navigation and form flow */
.mobile-nav-toggle{display:none}@media(max-width:720px){body{font-size:16px}.header{position:sticky;z-index:100}.header .nav{display:none!important;order:4;flex-basis:100%;padding:8px 0 14px}.header.menu-open .nav{display:grid!important;grid-template-columns:1fr;gap:2px}.header .nav a{min-height:46px;display:flex;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}.mobile-nav-toggle{display:grid;width:42px;height:42px;place-content:center;gap:5px;margin-left:auto;border:1px solid var(--line);border-radius:9px;background:#fff}.mobile-nav-toggle span{display:block;width:19px;height:2px;background:var(--deep);transition:transform .18s}.menu-open .mobile-nav-toggle span:first-child{transform:translateY(7px) rotate(45deg)}.menu-open .mobile-nav-toggle span:nth-child(2){opacity:0}.menu-open .mobile-nav-toggle span:last-child{transform:translateY(-7px) rotate(-45deg)}.header>.btn{display:none}.steps{display:grid;grid-template-columns:1fr 1fr;white-space:normal;overflow:visible}.steps span{min-width:0;font-size:.72rem}.grid2,.form-grid,.package-grid,.pickup-fields{grid-template-columns:1fr!important}.booking-form-step{min-width:0}.shipment-item{padding:16px}.payment-options{grid-template-columns:1fr!important}.booking-summary{min-width:0}.vehicle-grid,.service-grid{gap:12px}.vehicle-photo{max-height:82px}.place-suggestions{position:relative!important;max-height:220px;overflow:auto}.portal-detail-panel,.portal-list-panel{min-width:0}.portal-route-map{max-width:100%;height:220px}.portal-statistics{gap:10px}.portal-statistics article{min-width:0;padding:14px}.portal-statistics strong{font-size:1.45rem}}
@media(min-width:721px) and (max-width:1023px){.grid--four,.vehicle-grid-clean{grid-template-columns:repeat(2,minmax(0,1fr))!important}.booking{max-width:100%}.portal-content-grid{grid-template-columns:1fr}.portal-detail-panel{min-width:0}}
@media(max-width:380px){.shell,.footer .wrap{width:calc(100% - 28px)}.hero h1{font-size:2rem!important}.steps{grid-template-columns:1fr}.card,.choice{padding:16px!important}}/* Consolidated compact mobile polish */
@media(max-width:720px){.shell,.wrap,.footer .wrap{width:100%!important;max-width:none!important;padding-inline:18px}.header.shell{width:100%!important;padding-inline:18px}.section,.cta{padding:48px 0!important}.hero{padding:48px 0!important}.hero h1,h1{font-size:clamp(2rem,9vw,2.35rem)!important;line-height:1.13!important;letter-spacing:-.04em!important}.section h2,.cta h2,h2{font-size:clamp(1.62rem,7vw,1.9rem)!important;line-height:1.2!important}.card h3,.choice b,h3{font-size:1.05rem!important;line-height:1.3!important}.lead{font-size:1rem!important;line-height:1.6!important}.card,.choice,.shipment-item,.form-card,.split-panel{width:100%;min-width:0!important;padding:16px!important}.grid,.vehicle-grid,.service-grid,.form-grid,.package-grid,.pickup-fields{gap:12px!important}.vehicle-photo,.service-vehicle-icon{height:66px!important;max-width:100%;object-fit:contain}.actions{gap:10px!important}.actions .btn,.hero .btn{width:auto}.actions .btn:only-child,.price-next{width:100%}.btn{min-height:44px;padding:10px 15px;font-size:.94rem}.booking{width:100%;max-width:none}.booking .section,.booking-stage{padding-inline:0!important}.steps{gap:8px}.steps span{padding:9px 8px;font-size:.68rem}.price{padding:18px!important}.footer{padding:48px 0 24px}.footer-grid{gap:22px}.footer a{font-size:.93rem}.portal-login__welcome{min-height:190px}.portal-login__card{padding:24px 18px 34px}.portal-statistics{grid-template-columns:1fr 1fr}.portal-content-grid>*{min-width:0}}
@media(max-width:380px){.shell,.wrap,.footer .wrap,.header.shell{padding-inline:14px}.section,.cta,.hero{padding-block:40px!important}.hero h1,h1{font-size:2rem!important}.card,.choice,.shipment-item{padding:14px!important}}/* Home mobile density and menu legibility */
@media(max-width:720px){.header{background:#fff!important}.header .nav{background:#fff;border-top:1px solid #d9e7e1;box-shadow:0 14px 22px rgba(7,47,40,.08)}.header-actions{display:none!important}.header .nav .mobile-login-link{display:flex!important;width:100%;min-height:46px;align-items:center;justify-content:center;margin-top:8px;border-radius:8px;background:#168268;color:#fff!important;padding:10px 14px}.header .nav .mobile-login-link svg{width:17px;height:17px;margin-right:8px;stroke:currentColor}.solutions{gap:10px!important}.solution{min-height:0!important;padding:16px!important}.solution-icon{width:36px!important;height:36px!important;margin-bottom:10px!important}.solution h3{margin-bottom:6px!important;font-size:1rem!important}.solution p{font-size:.9rem!important;line-height:1.5!important}.solution .text-link{margin-top:10px!important}.timeline--detailed{gap:10px!important}.timeline--detailed article{padding:16px!important}.timeline--detailed h3{margin:8px 0 5px!important;font-size:1rem!important}.timeline--detailed p{font-size:.9rem!important;line-height:1.5!important}.faq details{padding:14px 0!important}.faq summary{font-size:.97rem!important;line-height:1.4!important}.faq p{font-size:.9rem!important;line-height:1.5!important}.vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.vehicle-grid .choice{padding:12px!important;text-align:center}.vehicle-grid .vehicle-photo{height:52px!important;margin-bottom:5px!important}.vehicle-grid .vehicle-spec{font-size:.7rem!important}.vehicle-grid .choice b{font-size:.87rem!important}}
@media(max-width:360px){.vehicle-grid{grid-template-columns:1fr!important}.vehicle-grid .choice{display:grid;grid-template-columns:64px 1fr;align-items:center;text-align:left}.vehicle-grid .vehicle-photo{grid-row:span 2;margin:0!important}}/* iPhone visual polish: single mobile rhythm */
@media(max-width:480px){:root{--mobile-gutter:20px}.wrap,.shell,.footer .wrap,.header.shell{padding-inline:var(--mobile-gutter)!important}.section,.cta{padding-block:52px!important}.hero{padding-block:48px!important}.eyebrow{margin-bottom:12px!important}.hero h1,h1{font-size:clamp(2rem,9vw,2.5rem)!important;line-height:1.12!important}.section h2,.cta h2,h2{font-size:clamp(1.75rem,7.5vw,2.125rem)!important;line-height:1.12!important}.solution{padding:24px!important;min-height:0!important}.solution p{font-size:.94rem!important}.solution .btn,.solution .text-link{font-size:.94rem!important;min-height:0!important}.timeline--detailed article{grid-template-columns:56px minmax(0,1fr)!important;gap:16px!important;padding:20px!important;min-height:0!important}.timeline--detailed article b{width:56px!important;height:56px!important}.timeline--detailed h3{font-size:1.22rem!important;line-height:1.25!important}.timeline--detailed p{font-size:1rem!important;line-height:1.5!important}.faq details{padding:20px 0!important;min-height:0!important}.faq summary{display:grid!important;grid-template-columns:minmax(0,1fr) 42px!important;align-items:center;gap:16px!important;padding:0!important;font-size:1.15rem!important;line-height:1.25!important}.faq summary::after{width:42px!important;height:42px!important;margin:0!important}.faq p{padding-right:58px;font-size:1rem!important}.header{min-height:76px!important;padding-block:4px!important}.brand img{width:180px!important;height:54px!important}.mobile-nav-toggle{width:48px!important;height:48px!important}.vehicle-grid{grid-template-columns:1fr!important}.vehicle-grid .choice{display:grid!important;grid-template-columns:150px minmax(0,1fr)!important;align-items:center!important;gap:10px!important;text-align:left!important;min-height:0!important;padding:14px!important}.vehicle-grid .vehicle-photo{grid-row:span 2;height:auto!important;max-height:70px!important;max-width:140px!important;margin:0!important}.vehicle-grid .choice b{font-size:1rem!important}.vehicle-grid .vehicle-spec{font-size:.78rem!important}.header .nav{padding-inline:var(--mobile-gutter)!important}.header .nav a{font-size:1rem!important}.cookie-settings,.cookie-manage{left:16px!important;bottom:16px!important;padding:10px 14px!important;font-size:.875rem!important;min-height:0!important}}/* Vehicle choice: dedicated mobile illustration and information columns */
.vehicle-info{display:block}
@media(max-width:600px){#vehicles .choice{display:grid!important;grid-template-columns:minmax(120px,42%) minmax(0,1fr)!important;align-items:center!important;gap:16px!important;height:auto!important;min-height:128px!important;padding:16px!important;overflow:hidden;text-align:left!important}#vehicles .vehicle-photo{position:static!important;grid-column:1;grid-row:1;width:100%!important;max-width:150px!important;height:auto!important;max-height:94px!important;margin:0!important;object-fit:contain!important;object-position:center}#vehicles .vehicle-info{display:block;grid-column:2;grid-row:1;min-width:0}#vehicles .vehicle-info b{display:block;margin:0 0 6px!important;font-size:1.15rem!important;font-weight:700;line-height:1.15!important}#vehicles .vehicle-spec{display:grid!important;max-width:none!important;margin:0!important;font-size:.94rem!important;line-height:1.35!important}#vehicles .choice::before{display:none!important}}/* Final calculator-only mobile spacing and vehicle scale */
@media(max-width:600px){.booking{padding-inline:18px!important}.booking .booking-form-step,.booking .booking-stage{min-width:0}.booking #vehicles .choice{grid-template-columns:minmax(105px,36%) minmax(0,1fr)!important;gap:14px!important;min-height:116px!important;height:auto!important;padding:14px 16px!important}.booking #vehicles .vehicle-photo{width:100%!important;max-width:125px!important;height:auto!important;max-height:76px!important;justify-self:center;object-fit:contain!important}.booking #vehicles .vehicle-info{min-width:0}.booking #vehicles .vehicle-info b{font-size:1.15rem!important;line-height:1.15!important;margin-bottom:6px!important}.booking #vehicles .vehicle-spec{font-size:.94rem!important;line-height:1.35!important}}
@media(max-width:600px){.booking #vehicles .vehicle-info b{font-size:1rem!important;line-height:1.2!important}}

@media(max-width:600px){.booking #vehicles .vehicle-spec{font-size:.82rem!important;line-height:1.3!important}}
/* Full-screen mobile navigation */
@media(max-width:720px){.header.menu-open .nav{position:fixed;top:76px;right:0;bottom:0;left:0;z-index:99;display:flex!important;flex-direction:column;align-items:stretch;gap:0;overflow-y:auto;background:#f7faf8;padding:20px var(--mobile-gutter,18px) calc(24px + env(safe-area-inset-bottom));box-shadow:none}.header.menu-open .nav a{display:flex!important;min-height:58px;align-items:center;border-bottom:1px solid #d9e7e1;padding:12px 4px;color:#092f28;font-size:1.05rem!important;font-weight:750}.header.menu-open .nav .mobile-login-link{position:sticky;bottom:0;min-height:50px;justify-content:center;margin-top:auto;border:0;color:#fff!important}.header.menu-open{box-shadow:0 2px 12px rgba(7,47,40,.1)}.header.menu-open .mobile-nav-toggle{position:relative;z-index:101}}
/* Service choices: keep descriptions and prices in normal flow on phones/tablets. */
@media (max-width: 980px) {
  #services .choice {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: 10px;
    min-width: 0;
    min-height: 0;
    height: auto;
    padding: 18px !important;
    overflow: visible;
  }
  #services .choice::before { position: static; inset: auto; }
  #services .choice > b,
  #services .choice > small {
    min-width: 0;
    margin: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  #services .service-quote {
    position: static;
    inset: auto;
    justify-self: end;
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    gap: 4px 8px;
    min-width: 0;
    margin-top: 4px;
    text-align: right;
  }
  #services .service-quote strong { white-space: nowrap; }
  #services .service-quote small:last-child { grid-column: 1 / -1; }
}
