body.booking-layout { background: #f8faf9; color: #172420; }
.booking-layout .topline { display: none; }
.booking-layout .site-header { background: #fff; }
.booking-layout .hero { background: #f8faf9; color: #172420; }
.booking-layout .hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(24px, 5vw, 72px);
  min-height: 0;
  padding-block: clamp(32px, 5vw, 72px);
}
.booking-layout .hero-copy { width: auto; min-width: 0; }
.booking-layout .hero h1 {
  color: #172420;
  font: 700 clamp(32px, 4.1vw, 60px)/1.2 system-ui, sans-serif;
  letter-spacing: -.035em;
  margin: 0 0 16px;
}
.booking-layout .hero .eyebrow { color: #145447; font-size: 11px; margin: 0 0 12px; }
.booking-layout .hero-lede { color: #172420; font-size: clamp(17px, 1.8vw, 22px); line-height: 1.5; margin: 0 0 12px; }
.booking-layout .hero-definition,
.booking-layout .hero-small { color: #394a43; font-size: 16px; line-height: 1.65; margin: 0 0 18px; }
.booking-layout .hero-copy > * { animation: none !important; opacity: 1; transform: none; }
.booking-layout .hero-visual { margin: 0; min-width: 0; }
.booking-layout .hero-photo {
  position: static;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 16px;
  transform: none;
  animation: none;
}
.booking-layout .hero-caption { position: static; color: #394a43; text-shadow: none; font-size: 12px; margin-top: 8px; }
.booking-layout .hero-buttons .button { min-height: 48px; padding: 12px 18px; font-size: 15px; border-radius: 8px; }
.booking-layout .hero-buttons .lime,
.booking-layout .site-header .button,
.booking-layout .mobile-cta a { background: #145447; border-color: #145447; color: #fff; box-shadow: none; }
.booking-layout .hero-buttons .outline-light { background: #fff; border-color: #9bada5; color: #172420; }
.booking-layout .visitor-entries { background: #fff; }
.booking-layout .visitor-entries a p,
.booking-layout .contact-copy .lede,
.booking-layout .enquiry-form > .small { color: #394a43; font-size: 16px; }
.booking-layout .contact-grid { align-items: start; }
.booking-layout .quote-step { margin-top: 20px; }
.booking-layout .quote-step .step-intro { color: #394a43; font-size: 14px; }
.booking-layout .quote-extras { margin: 20px 0; }
.booking-layout .quote-extras summary,
.booking-layout .estimate-reference summary { cursor: pointer; color: #145447; font-weight: 650; }
.booking-layout .contact-copy > .button { margin: 0 8px 8px 0; }
.booking-layout .contact-copy > .button.line { background: #145447; color: #fff; }
.booking-layout .enquiry-form input,
.booking-layout .enquiry-form select,
.booking-layout .enquiry-form textarea,
.booking-layout .planner input,
.booking-layout .planner select { font-size: 16px; }
.booking-layout .contact-section { scroll-margin-top: 90px; }
@media (max-width: 760px) {
  .booking-layout .hero-inner { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-block: 26px; }
  .booking-layout .hero-photo { aspect-ratio: 16 / 8; }
  .booking-layout .hero-buttons .button { flex: 1 1 100%; justify-content: space-between; }
}
.visual-route { margin: 0 auto; padding-block: 22px 30px; }
.visual-route h2 { margin: 0 0 14px; color: #172420; font-size: clamp(21px, 3vw, 28px); }
.visual-route ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 0; margin: 0; list-style: none; }
.visual-route li { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 12px; padding: 14px; background: #fff; border: 1px solid #d6e2db; border-radius: 12px; min-width: 0; }
.visual-route svg { width: 36px; height: 36px; color: #145447; }
.visual-route b, .visual-route small { display: block; color: #172420; line-height: 1.45; }
.visual-route small { font-size: 13px; margin-top: 4px; }
.visual-route .route-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.visual-route .route-actions a { color: #145447; font-weight: 650; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 620px) {
  .visual-route ol { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .visual-route li { padding: 10px 14px; }
}

.booking-layout .hero--photo-led { background: #fff; border-bottom: 1px solid #dce6df; }
.booking-layout .hero--photo-led .hero-inner { gap: clamp(24px, 4vw, 60px); }
.booking-layout .hero--photo-led .hero-lede { font-weight: 650; }
.booking-layout .hero--photo-led .hero-definition { color: #172420; margin-bottom: 10px; }
.hero--photo-led .hero-fee { color: #963f08; font-size: 1.12em; }
.hero-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0;
  margin: 0 0 20px;
  list-style: none;
}
.hero-highlights li {
  padding: 5px 10px;
  border-radius: 6px;
  background: #eaf3ee;
  color: #174b3d;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.4;
}
.hero-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 1.55fr 1fr;
  gap: 6px;
  aspect-ratio: 1.34;
  overflow: hidden;
  border-radius: 14px;
  background: #e8efeb;
}
.booking-layout .hero-photo-grid img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 0;
}
.booking-layout .hero-photo-grid .hero-photo {
  grid-column: 1 / -1;
  object-position: center 52%;
}
.hero-photo-grid .hero-vehicle-photo { object-position: center 56%; }
.hero-photo-grid .hero-trip-photo { object-position: center 43%; }
@media (max-width: 760px) {
  .booking-layout .hero--photo-led .hero-inner { gap: 18px; padding-block: 20px; }
  .hero-photo-grid { aspect-ratio: 1.7; }
  .hero-highlights { margin-bottom: 14px; }
}

.booking-layout .hero.route-intro { background: #f1f7f3; }
.route-intro > .container { padding-block: clamp(24px, 4vw, 48px); }
.route-intro .hero-copy { max-width: 850px; }
.route-choice { color: #145447; font-size: 17px; font-weight: 700; margin-bottom: 16px; }
.booking-layout .visual-route.route-board { padding-block: 22px 36px; }
.route-board ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.route-board li { display: block; padding: 10px; }
.route-board li:nth-child(n+3) { border-top-color: #b55b11; }
.route-photo {
  display: grid; place-items: center; aspect-ratio: 3 / 2; margin: 0 0 10px;
  border: 1px dashed #879c91; border-radius: 7px; overflow: hidden;
  color: #40544a; background: #f1f5f2; font-size: 13px;
}
.route-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.route-board .route-actions a {
  padding: 10px 15px; border: 1px solid #145447; border-radius: 7px; text-decoration: none;
}
.route-board .route-actions a:first-child { background: #145447; color: #fff; }
@media (max-width: 760px) {
  .route-board ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

#equipment-estimate { scroll-margin-top: 100px; }
.equipment-options {
  margin-block: 14px;
  padding: 10px 14px;
  border: 1px solid #b9d3c6;
  border-radius: 10px;
  background: #f3f8f5;
  color: #153e35;
}
.equipment-options summary { padding-block: 5px; cursor: pointer; font-weight: 750; }
.equipment-options p { margin: 4px 0 10px; font-size: .85rem; }
.equipment-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.equipment-fields label { margin: 0; font-size: .9rem; font-weight: 650; }
.equipment-fields small { display: block; font-size: .8rem; font-weight: 400; }
.equipment-choice, .equipment-quantity {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 6px 8px;
  border: 1px solid #d4e5dc;
  border-radius: 6px;
  background: white;
}
.equipment-choice { cursor: pointer; }
.equipment-choice input[type="checkbox"] { appearance: auto; width: 20px; min-width: 20px; height: 20px; margin: 0; padding: 0; accent-color: #145447; }
.equipment-quantity { justify-content: space-between; }
.equipment-quantity select { width: auto; padding: 6px 20px 6px 8px; margin: 0; }
@media (max-width: 560px) {
  .equipment-fields { grid-template-columns: 1fr; }
}
