/* Homepage layout corrections, scoped to the hero and route planner. */
@media (min-width: 801px) {
  body[data-page="home"] .hero-copy {
    align-self: start;
  }
}

@media (max-width: 800px) {
  body[data-page="home"] .hero-benefits {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  body[data-page="home"] .hero-benefit {
    width: 100%;
    max-width: none;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: start;
    justify-items: stretch;
    text-align: left;
    gap: 12px;
  }

  body[data-page="home"] .hero-benefit strong {
    min-height: 0;
    margin: 0 0 3px;
    font-size: 14px;
    line-height: 1.4;
  }

  body[data-page="home"] .planner-title-row {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 6px 10px;
  }

  body[data-page="home"] .planner-mini-mark {
    width: 36px;
    height: 36px;
  }

  body[data-page="home"] .planner-title-row h2 {
    grid-column: 2;
    line-height: 1.15;
  }

  body[data-page="home"] .planner-title-row p {
    grid-column: 2;
    margin: 0;
    text-align: left;
    line-height: 1.5;
  }
}

/* Reserve equal label space so wrapped labels cannot stagger paired controls. */
body[data-page="home"] #city-route-form > .field-pair,
body[data-page="home"] .planner-field-group > .field-pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body[data-page="home"] #city-route-form > .field-pair > .form-field,
body[data-page="home"] .planner-field-group > .field-pair > .form-field {
  display: grid;
  grid-template-rows: 1fr auto;
  min-width: 0;
}

@media (max-width: 560px) {
  body[data-page="home"] .hero-grid {
    padding-block: 28px;
    gap: 26px;
  }

  body[data-page="home"] .hero-copy {
    padding: 0;
    min-width: 0;
  }

  body[data-page="home"] .hero h1 {
    font-size: clamp(32px, 9.4vw, 42px);
    line-height: 1.08;
    letter-spacing: -1.2px;
  }

  body[data-page="home"] .hero-lead {
    font-size: 18px;
    line-height: 1.55;
    margin-top: 18px;
  }

  body[data-page="home"] .hero-benefits {
    margin-top: 24px;
  }

  body[data-page="home"] .planner-card {
    padding: 20px 16px;
  }
}

/* Four service cards followed by a full-width assessment call to action. */
@media (min-width: 721px) {
  body[data-page="home"] .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body[data-page="home"] .service-grid > .service-assessment { grid-column: 1 / -1; }

/* The extra groups do not alter the existing mobile flow. */
body[data-page="home"] .planner-field-grid,
body[data-page="home"] .planner-field-group,
body[data-page="home"] .planner-action-grid { display: contents; }
body[data-page="home"] .planner-field-group .route-input { min-width: 0; max-width: 100%; }
body[data-page="home"] .planner-item-fields > .shipment-request-fields { margin: 18px 0; }

@media (min-width: 801px) {
  body[data-page="home"] .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
  }
  body[data-page="home"] .hero-copy { padding-left: 0; }
  body[data-page="home"] .planner-card {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 28px;
  }
  body[data-page="home"] .planner-title-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 12px;
    margin-bottom: 22px;
  }
  body[data-page="home"] .planner-title-row p {
    flex-basis: auto;
    margin: 0 0 0 auto;
  }
  body[data-page="home"] .planner-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 22px 28px;
  }
  body[data-page="home"] .planner-field-group { display: block; min-width: 0; }
  body[data-page="home"] .planner-deadline-fields { grid-column: 1 / -1; }
  body[data-page="home"] .planner-field-group > .form-field:first-of-type { margin-top: 0; }
  body[data-page="home"] .planner-field-group > .field-pair:first-child > .form-field { margin-top: 0; }
  body[data-page="home"] .deadline-fields { margin-top: 0; padding-top: 0; border-top: 0; }
  body[data-page="home"] .planner-action-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: center;
    gap: 4px 28px;
    border-top: 1px solid #e5ecee;
    padding-top: 16px;
    margin-top: 20px;
  }
  body[data-page="home"] .mini-journey {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: min(100%, 620px);
    margin: 0;
    padding: 0;
  }
  body[data-page="home"] .planner-submit { grid-column: 2; grid-row: 1; margin: 0; }
  body[data-page="home"] .planner-note { grid-column: 2; grid-row: 2; margin: 0; }
  body[data-page="home"] #inline-estimate,
  body[data-page="home"] #route-error { grid-column: 1 / -1; }
  body[data-page="home"] #route-error:empty { display: none; }
}

@media (min-width: 1100px) {
  body[data-page="home"] .hero-copy {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    column-gap: 64px;
    align-items: start;
  }
  body[data-page="home"] .hero-copy h1,
  body[data-page="home"] .hero-lead { grid-column: 1; }
  body[data-page="home"] .hero-benefits {
    grid-column: 2;
    grid-row: 1 / span 2;
    grid-template-columns: minmax(0, 1fr);
    align-self: center;
    gap: 22px;
    margin-top: 0;
    padding: 22px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.9);
  }
  body[data-page="home"] .hero-benefit strong { min-height: 0; }
}

@media (min-width: 1200px) {
  body[data-page="home"] .planner-field-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body[data-page="home"] .planner-deadline-fields { grid-column: auto; }
}
