/* Truckloads page (lead form) + shared r-cf form primitives, extracted from
   feat/cce-redesign styles.css for the HYB-452 truckloads/rye slice. Page-area
   CSS ships with its page per the extraction ledger. */

/* ═══════════════════════════════════════════════════════════════════════
   CART FLOW — Quote → Order details → Payment → Confirmation
   ═══════════════════════════════════════════════════════════════════════ */

.r-cf { max-width: 1320px; margin: 0 auto; padding: 30px 28px 80px; }

.r-cf__head { margin: 14px 0 28px; }

.r-cf__h1 {
  font-family: var(--r-display); font-size: clamp(36px, 4vw, 56px);
  font-weight: 600; letter-spacing: -0.025em; line-height: 1.02;
  margin: 10px 0 0;
}

.r-cf__demo-banner {
  margin-top: 14px; padding: 10px 14px;
  background: #fef3c7; border: 1px solid #fde68a;
  border-radius: var(--r-radius);
  font-size: 15px; color: #78350f;
  display: flex; align-items: center; gap: 10px;
}

/* Step indicator */
.r-cf__steps {
  display: flex; gap: 4px;
  margin-bottom: 32px;
  border-bottom: 1px solid var(--r-line);
  padding-bottom: 18px;
}

.r-cf__step {
  appearance: none; border: 0; background: transparent;
  display: flex; align-items: center; gap: 10px;
  padding: 10px 18px;
  font-family: var(--r-body);
  color: var(--r-muted); cursor: pointer;
  border-radius: var(--r-radius);
  transition: color 120ms ease, background 120ms ease;
}

.r-cf__step:disabled { cursor: not-allowed; opacity: 0.55; }

.r-cf__step:not(:disabled):hover { background: var(--r-bg-alt); }

.r-cf__step-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px;
  border-radius: 999px;
  background: var(--r-bg-alt);
  border: 1px solid var(--r-line);
  font-size: 12.5px; font-weight: 600;
  color: var(--r-muted);
}

.r-cf__step-label { font-size: 15.5px; font-weight: 500; }

.r-cf__step--active { color: var(--r-ink); }

.r-cf__step--active .r-cf__step-num { background: var(--r-green); border-color: var(--r-green); color: #fff; }

.r-cf__step--done { color: var(--r-ink-2); }

.r-cf__step--done .r-cf__step-num { background: var(--r-green-tint); border-color: rgba(45,90,40,0.2); color: var(--r-green); }

/* Grid */
.r-cf__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 32px; align-items: start;
}

.r-cf__grid--single { grid-template-columns: 1fr; }

.r-cf__main { min-width: 0; }

.r-cf__summary { position: sticky; top: 80px; }

/* Panel */
.r-cf__panel {
  background: var(--r-surface);
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius-lg);
  padding: 32px;
}

.r-cf__panel-h {
  font-family: var(--r-display); font-size: 28px; font-weight: 600;
  letter-spacing: -0.015em; margin: 0 0 8px; line-height: 1.1;
}

.r-cf__panel-p {
  font-size: 16.5px; line-height: 1.55; color: var(--r-ink-2);
  margin: 0 0 28px; max-width: 600px;
}

/* Form bits */
.r-cf__form { display: flex; flex-direction: column; gap: 22px; }

.r-cf__field { display: flex; flex-direction: column; gap: 6px; }

.r-cf__field > .r-eyebrow { font-size: 12.5px; }

.r-cf__field-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}

/* City / State / ZIP share one row. Without this they inherit the two-column
   grid and ZIP wraps alone, leaving a dead half-row beside it. */
.r-cf__field-row--address { grid-template-columns: 2fr 1fr 1fr; }

@media (max-width: 560px) {
  .r-cf__field-row { grid-template-columns: 1fr; }
  .r-cf__field-row--address { grid-template-columns: 1fr 1fr; }
  .r-cf__field-row--address > :first-child { grid-column: 1 / -1; }
}

.r-cf__input--big { height: 56px; font-size: 22px; font-weight: 600; letter-spacing: 0.06em; text-align: center; }

.r-cf__input { width: 100%; }

.r-cf__textarea { padding: 12px 14px; height: auto; min-height: 60px; resize: vertical; font-family: var(--r-body); }

.r-cf__manual-contact-form {
  gap: 12px;
  margin-top: 2px;
}

.r-cf__manual-contact-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  min-width: 0;
}

.r-cf__manual-contact-field abbr { display: none; }

.r-cf__manual-contact-field .r-eyebrow {
  margin: 0;
  font-size: 12.5px;
}

.r-cf__manual-contact-input {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  background: #fff;
  font-size: 16.5px;
  box-sizing: border-box;
}

.r-cf__manual-contact-input::placeholder {
  color: #7c8494;
  opacity: 0.78;
}

.r-cf__manual-contact-field .error {
  color: var(--r-alert);
  font-size: 13.5px;
  line-height: 1.35;
}

.r-cf__field-hint {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 14px;
  background: var(--r-bg-alt);
  border-radius: var(--r-radius);
  font-size: 15px; color: var(--r-ink-2);
}

.r-cf__field-hint svg { color: var(--r-muted); flex-shrink: 0; }

/* Radio card — bigger choice tiles */
.r-cf__radio-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.r-cf__radiocard {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 16px;
  background: var(--r-surface);
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius);
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease;
}

.r-cf__radiocard:hover { border-color: var(--r-line-strong); }

.r-cf__radiocard.is-active { border-color: var(--r-green); background: var(--r-green-tint); }

.r-cf__radiocard:has(input:checked) { border-color: var(--r-green); background: var(--r-green-tint); }

.r-cf__radiocard input { margin-top: 3px; accent-color: var(--r-green); }

.r-cf__radiocard-title { display: block; font-weight: 600; font-size: 15.5px; color: var(--r-ink); }

.r-cf__radiocard-body { display: block; font-size: 14px; color: var(--r-muted); margin-top: 2px; line-height: 1.4; }

.r-cf__radio-row { display: flex; gap: 8px; }

.r-cf__radio-inline {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px;
  background: var(--r-surface);
  border: 1px solid var(--r-line);
  border-radius: 999px;
  font-size: 15px; cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease;
}

.r-cf__radio-inline.is-active { border-color: var(--r-green); background: var(--r-green-tint); color: var(--r-green); font-weight: 600; }

.r-cf__radio-inline:has(input:checked) { border-color: var(--r-green); background: var(--r-green-tint); color: var(--r-green); font-weight: 600; }

.r-cf__radio-inline input { accent-color: var(--r-green); }

.r-cf__checkbox {
  display: flex; align-items: center; gap: 8px;
  font-size: 15.5px; color: var(--r-ink-2);
  margin: 10px 0;
  cursor: pointer;
}

.r-cf__checkbox input { accent-color: var(--r-green); }

/* Section divider */
.r-cf__section { padding: 18px 0; border-bottom: 1px solid var(--r-line); display: flex; flex-direction: column; gap: 10px; }

.r-cf__section:last-child { border-bottom: 0; }

.r-cf__section-eyebrow { font-size: 12.5px; color: var(--r-muted); }

/* Timing grid */
.r-cf__timing { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* Quote success card */
.r-cf__quote-success {
  margin-top: 26px;
  padding: 22px;
  background: var(--r-green-tint);
  border: 1px solid rgba(45,90,40,0.25);
  border-radius: var(--r-radius-lg);
}

.r-cf__quote-headline { display: flex; align-items: flex-start; gap: 14px; }

.r-cf__quote-icon {
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: 999px;
  background: var(--r-green);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
}

.r-cf__quote-h { font-family: var(--r-display); font-size: 22px; font-weight: 600; letter-spacing: -0.01em; margin: 4px 0 6px; line-height: 1.2; }

.r-cf__quote-sub { font-size: 15.5px; line-height: 1.5; color: var(--r-ink-2); margin: 0 0 0; }

.r-cf__quote-actions { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }

/* Truckload quote */
.r-tl { max-width: 1320px; margin: 0 auto; padding: 40px 28px 88px; }

.r-tl__hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 430px;
  gap: 34px;
  align-items: stretch;
  margin-bottom: 34px;
}

.r-tl__hero-copy {
  min-height: 360px;
  padding: 46px;
  background: var(--r-surface);
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius-lg);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.r-tl__h1 {
  font-family: var(--r-display);
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 0.98;
  max-width: 780px;
  margin: 12px 0 18px;
}

.r-tl__lede { max-width: 680px; margin: 0; }

.r-tl__hero-actions { display: flex; gap: 10px; margin-top: 28px; flex-wrap: wrap; }

/* The in-page jump to the quote panel only earns its place once the hero stacks
   (<=1100px) and the media block pushes the price below the fold. Above that the
   panel is already on screen, so the button would scroll the reader to what they
   are already looking at. Hidden by default; revealed at the stacking breakpoint.
   Scoped to this one button so "Other species or true bulk" stays at every width. */
.r-tl__hero-jump { display: none; }

/* Instant-pricing band: the first thing on /truckloads, above the lead form.
   Cereal Rye is the one species we rate on the spot, so it leads rather than
   hiding behind a form the buyer has to fill out to find that out. */
.r-tl__instant {
  margin-bottom: 28px;
  padding: 30px 34px;
  display: grid;
  gap: 18px;
}

.r-tl__instant-h {
  margin-top: 12px;
  font-family: var(--r-display);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.12;
}

.r-tl__instant-p { margin-top: 8px; max-width: 60ch; }

.r-tl__instant-form { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }

.r-tl__instant-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 190px;
}

.r-tl__instant-fork { font-size: 15px; color: var(--r-ink-2); }
.r-tl__instant-fork a { text-decoration: underline; }

.r-tl__hero-media {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius-lg);
  background: var(--r-surface);
}

.r-tl__hero-media img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  display: block;
  object-fit: cover;
}

.r-tl__media-panel {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  padding: 16px 18px;
  background: rgba(20, 19, 15, 0.84);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--r-radius);
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.r-tl__media-panel .r-eyebrow { color: rgba(255,255,255,0.66); }

.r-tl__media-panel strong { font-family: var(--r-mono); font-size: 28px; line-height: 1.1; }

.r-tl__media-panel span:last-child { font-size: 15px; color: rgba(255,255,255,0.76); }

.r-tl__grid { align-items: start; }

.r-tl__errors { grid-column: 1 / -1; margin-top: 0; border-left-color: var(--r-alert); }

.r-tl__panel-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }

.r-tl__option-grid { display: grid; gap: 10px; }

.r-tl__option-grid--three { grid-template-columns: repeat(3, 1fr); }

.r-tl__option-grid--four { grid-template-columns: repeat(4, 1fr); }

.r-tl__quantity { max-width: 260px; }

.r-tl__quantity-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.r-tl__quantity-control > span { color: var(--r-muted); font-size: 15.5px; }

.r-tl__inline-errors {
  margin: 0 0 18px;
  padding-left: 18px;
  color: var(--r-alert);
  font-size: 15.5px;
}

.r-tl__combo { position: relative; }

.r-tl__combo-clear {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--r-muted);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.r-tl__combo-clear:hover { background: var(--r-bg-alt); color: var(--r-ink); }

.r-tl__combo-options {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  display: grid;
  padding: 6px;
  background: var(--r-surface);
  border: 1px solid var(--r-line-strong);
  border-radius: var(--r-radius);
  box-shadow: var(--r-shadow-lg);
}

.r-tl__combo-options[hidden] { display: none; }

.r-tl__combo-option {
  width: 100%;
  padding: 10px 12px;
  background: transparent;
  border: 0;
  border-radius: calc(var(--r-radius) - 2px);
  color: var(--r-ink);
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.r-tl__combo-option:hover,
.r-tl__combo-option:focus {
  background: var(--r-green-tint);
  color: var(--r-green);
  outline: none;
}

.r-tl__checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
}

.r-tl__summary { gap: 16px; }

.r-tl__summary-stat {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: baseline;
  font-size: 15px;
  color: var(--r-muted);
}

.r-tl__summary-stat strong {
  color: var(--r-ink);
  font-size: 15.5px;
  font-weight: 600;
  text-align: right;
}

.r-tl__next {
  margin: 0;
  padding-left: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--r-ink-2);
  font-size: 15px;
  line-height: 1.45;
}

.r-tl__next li::marker { color: var(--r-green); font-family: var(--r-mono); font-weight: 600; }

.r-tl__turnstile {
  min-height: 34px;
  display: flex;
  justify-content: center;
}

.r-tl__security-note {
  width: 100%;
  padding: 10px 12px;
  background: var(--r-bg-alt);
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius);
  color: var(--r-muted);
  font-size: 13.5px;
  text-align: center;
}

.r-tl__submit { width: 100%; }

.r-tl__summary-links {
  display: flex;
  justify-content: center;
  gap: 14px;
  font-size: 15px;
}

.r-tl__summary-links a { color: var(--r-muted); text-decoration: underline; text-underline-offset: 3px; }

.r-tl__summary-links a:hover { color: var(--r-ink); }

/* Manual quote card */
.r-cf__manual {
  margin-top: 26px;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--r-line-strong);
  border-left: 4px solid var(--r-warn);
  border-radius: var(--r-radius-lg);
}

.r-cf__manual-head { margin-bottom: 18px; }

.r-cf__manual-h { font-family: var(--r-display); font-size: 22px; font-weight: 600; letter-spacing: -0.01em; margin: 4px 0 8px; line-height: 1.2; }

.r-cf__manual-p { font-size: 15.5px; line-height: 1.5; color: var(--r-ink-2); margin: 0; max-width: 560px; }

.r-cf__manual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }

.r-cf__manual-actions { display: flex; gap: 10px; }

.r-cf__demo-link {
  margin-top: 24px;
  text-align: center;
  font-size: 13.5px;
}

.r-cf__demo-link button {
  background: transparent; border: 0; padding: 0;
  color: var(--r-muted); cursor: pointer;
  text-decoration: underline; text-underline-offset: 2px;
}

.r-cf__demo-link button:hover { color: var(--r-ink); }

/* Bottom action bar in steps */
.r-cf__actions {
  display: flex; gap: 12px; justify-content: space-between; align-items: center;
  margin-top: 32px;
  padding-top: 22px;
  border-top: 1px solid var(--r-line);
  flex-wrap: wrap;
}

/* Payment-method cards stack vertically */
.r-cf__pay-methods { display: flex; flex-direction: column; gap: 10px; }

.r-cf__card-form {
  margin-top: 22px;
  padding: 18px;
  background: var(--r-bg-alt);
  border-radius: var(--r-radius);
  display: flex; flex-direction: column; gap: 14px;
}

.r-cf__pay-stub {
  margin-top: 22px;
  padding: 16px 18px;
  background: var(--r-bg-alt);
  border-radius: var(--r-radius);
  font-size: 15.5px; line-height: 1.55; color: var(--r-ink-2);
}

.r-cf__pay-total {
  margin-top: 22px; padding: 18px 20px;
  background: var(--r-ink); color: #fff;
  border-radius: var(--r-radius);
  display: flex; justify-content: space-between; align-items: center;
}

.r-cf__pay-total .r-eyebrow { color: rgba(255,255,255,0.6); }

.r-cf__pay-total-v { font-size: 24px; font-weight: 600; letter-spacing: -0.01em; }

/* Confirmation */
.r-cf__confirm {
  background: var(--r-surface);
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius-lg);
  padding: 60px 40px; text-align: center;
  max-width: 720px; margin: 0 auto;
}

.r-cf__confirm-check {
  width: 60px; height: 60px;
  border-radius: 999px;
  background: var(--r-green); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
}

.r-cf__confirm-h { font-family: var(--r-mono); font-size: 32px; font-weight: 600; letter-spacing: 0.02em; margin: 6px 0 14px; }

.r-cf__confirm-p { font-size: 17px; line-height: 1.6; color: var(--r-ink-2); max-width: 540px; margin: 0 auto 28px; }

.r-cf__confirm-card {
  background: var(--r-bg-alt);
  border-radius: var(--r-radius);
  padding: 20px;
  text-align: left;
  margin: 0 auto 28px;
  max-width: 580px;
}

.r-cf__confirm-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* Right rail summary */
.r-cf__sum {
  background: var(--r-surface);
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius-lg);
  padding: 22px;
  display: flex; flex-direction: column; gap: 18px;
}

.r-cf__sum-items { display: flex; flex-direction: column; gap: 16px; }

.r-cf__sum-totals { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; border-top: 1px solid var(--r-line); }

.r-cf__sumrow {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  font-size: 15px; color: var(--r-ink-2);
}

.r-cf__sumrow > span:first-child { white-space: nowrap; }

.r-cf__sumrow .r-mono { color: var(--r-ink); font-weight: 600; white-space: nowrap; }

.r-cf__sumrow--total {
  padding-top: 10px; border-top: 1px solid var(--r-line); margin-top: 4px;
  font-size: 17px; font-weight: 600; color: var(--r-ink);
}

.r-cf__sumrow--total .r-mono { font-size: 19px; }

.r-cf__sum-howto {
  padding-top: 16px; border-top: 1px solid var(--r-line);
  font-size: 15px; color: var(--r-ink-2);
}

.r-cf__sum-list {
  margin: 0; padding-left: 18px;
  display: flex; flex-direction: column; gap: 6px;
  line-height: 1.5;
}

.r-cf__sum-list li::marker { color: var(--r-green); font-weight: 700; }

/* Line item */
.r-cf__line { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }

.r-cf__line-body { min-width: 0; flex: 1; }

.r-cf__line-title { font-weight: 600; font-size: 15.5px; color: var(--r-ink); }

.r-cf__line-meta { font-size: 13.5px; color: var(--r-muted); margin-top: 2px; }

.r-cf__line-qty { font-size: 13.5px; color: var(--r-ink-2); margin-top: 4px; }

.r-cf__line-total { font-size: 15.5px; font-weight: 600; color: var(--r-ink); white-space: nowrap; }

/* Empty state */
.r-cf__empty {
  max-width: 600px; margin: 80px auto; padding: 40px;
  text-align: center;
  background: var(--r-surface);
  border: 1px solid var(--r-line);
  border-radius: var(--r-radius-lg);
}

.r-cf__empty p { color: var(--r-muted); margin: 16px 0 28px; }

@media (max-width: 1100px) {
  .r-contact { grid-template-columns: 1fr; gap: 32px; padding-top: 48px; }
  .r-contact__photo { min-height: 220px; }
  .r-about-hero { grid-template-columns: 1fr; gap: 32px; padding-top: 48px; }
  .r-about-hero__media,
  .r-about-hero__media img { min-height: 320px; }
  .r-about-stats,
  .r-about-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r-about-band { grid-template-columns: 1fr; margin-left: 28px; margin-right: 28px; }
  .r-partner-hero { grid-template-columns: 1fr; gap: 32px; padding-top: 48px; }
  .r-partner-hero__media,
  .r-partner-hero__media img { min-height: 320px; }
  .r-partner-grid,
  .r-partner-steps { grid-template-columns: 1fr; }
  .r-partner-band { grid-template-columns: 1fr; margin-left: 28px; margin-right: 28px; }
  .r-error__inner { grid-template-columns: 1fr; }
  .r-error__aside { min-height: 320px; }
  .r-error__aside img { min-height: 320px; }
  .r-cf__grid { grid-template-columns: 1fr; }
  .r-cf__summary { position: static; }
  .r-tl__hero { grid-template-columns: 1fr; }
  .r-tl__hero-jump { display: inline-flex; }
  .r-tl__hero-media { min-height: 260px; }
  .r-tl__hero-media img { min-height: 260px; }
  .r-tl__option-grid--four { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .r-contact { padding: 34px 16px 64px; gap: 22px; }
  .r-contact__h1 { font-size: 42px; }
  .r-contact__sub { font-size: 17px; }
  .r-contact__actions { grid-template-columns: 1fr; }
  .r-contact__action { min-height: 92px; }
  .r-contact__photo { display: none; }
  .r-contact__form { padding: 22px; }
  .r-about-hero { padding: 34px 16px 40px; gap: 24px; }
  .r-about-hero__h1 { font-size: 42px; }
  .r-about-hero__sub { font-size: 17px; }
  .r-about-hero__actions .r-btn { width: 100%; }
  .r-about-hero__media,
  .r-about-hero__media img { min-height: 260px; }
  .r-about-hero__note { left: 12px; right: 12px; bottom: 12px; }
  .r-about-stats { grid-template-columns: 1fr 1fr; padding: 24px 16px; }
  .r-about-stats strong { font-size: 26px; }
  .r-about-values { grid-template-columns: 1fr; }
  .r-about-band { margin: 0 16px 64px; padding: 26px; }
  .r-about-band h2 { font-size: 28px; }
  .r-partner-hero { padding: 34px 16px 40px; gap: 24px; }
  .r-partner-hero__h1 { font-size: 42px; }
  .r-partner-hero__sub { font-size: 17px; }
  .r-partner-hero__actions .r-btn { width: 100%; }
  .r-partner-hero__media,
  .r-partner-hero__media img { min-height: 260px; }
  .r-partner-hero__note { left: 12px; right: 12px; bottom: 12px; }
  .r-partner-program,
  .r-partner-step { padding: 22px; }
  .r-partner-band { margin: 0 16px 64px; padding: 26px; }
  .r-partner-band h2 { font-size: 28px; }
  .r-legal { padding: 34px 16px 64px; }
  .r-legal__header { margin-bottom: 24px; }
  .r-legal__lede { font-size: 17px; }
  .r-legal__doc { padding: 24px; }
  .r-legal__doc h2 { font-size: 22px; }
  .r-legal__doc p,
  .r-legal__doc li,
  .r-legal__doc address { font-size: 16.5px; }
  .r-error { padding: 36px 16px 64px; }
  .r-error__body { font-size: 17px; }
  .r-error__actions .r-btn { width: 100%; }
  .r-error__aside { min-height: 260px; }
  .r-error__aside img { min-height: 260px; }
  .r-cf__field-row, .r-cf__radio-pair, .r-cf__manual-grid, .r-cf__timing { grid-template-columns: 1fr; }
  .r-cf__steps { flex-wrap: wrap; }
  .r-tl { padding: 24px 16px 64px; }
  .r-tl__hero { gap: 16px; margin-bottom: 20px; }
  .r-tl__hero-copy { min-height: 0; padding: 28px; }
  /* .r-btn is nowrap with fixed side padding, so the longest label ("Other
     species or true bulk") runs past the card edge on the narrowest phones.
     In the hero each button owns a full row, so letting them wrap is safe. */
  .r-tl__hero-actions .r-btn {
    width: 100%;
    white-space: normal;
    height: auto;
    min-height: 44px;
    padding: 10px 18px;
  }
  .r-tl__hero-media { min-height: 220px; }
  .r-tl__hero-media img { min-height: 220px; }
  .r-tl__option-grid--three, .r-tl__option-grid--four, .r-tl__checks { grid-template-columns: 1fr; }
  .r-tl__instant { padding: 24px 20px; }
  .r-tl__instant-form { align-items: stretch; }
  .r-tl__instant-field { max-width: none; }
  .r-tl__instant-form .r-btn { width: 100%; }
}

/* Smooth-scroll the in-page "See your price" anchor on redesign truckload pages. */
@media (prefers-reduced-motion: no-preference) {
  html:has(.r-tl) {
    scroll-behavior: smooth;
  }
}
