/* Phone layout: readable labels and room for a fingertip without oversized cards. */
@media (max-width: 640px) {
  #calculator-form { scroll-margin-top: 100px; }

  .pricing-heading > p { font-size: 14px; line-height: 1.7; }
  .price-card-meta { font-size: 10px; letter-spacing: .08em; }
  .tariff-row { padding: 18px 0; gap: 12px; }
  .tariff-row h4 { font-size: 14px; line-height: 1.45; }
  .tariff-row p { font-size: 12px; line-height: 1.6; color: #c2d1bc; }
  .tariff-value small, .price-self strong small { font-size: 11px; }
  .price-self > span { font-size: 12px; line-height: 1.6; }
  .price-extras { font-size: 12px; line-height: 1.75; color: #c2d1bc; }
  .price-card-footer { padding-top: 22px; }

  .pricing-right .calculator-form { padding: 24px 17px 22px; }
  .pricing-right .delivery-option strong { font-size: 14px; }
  .rug-count-row { gap: 10px; }
  .rug-count-label { flex: 1; min-width: 0; font-size: 14px; line-height: 1.5; }
  .rug-count-stepper button { width: 44px; height: 44px; }
  .rug-count-stepper input { width: 34px; height: 44px; font-size: 18px; }

  .rug-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    column-gap: 8px;
    padding: 7px 10px 5px;
  }
  .rug-item-head { display: contents; }
  .rug-item-head h4 { grid-area: 1 / 1; align-self: center; font-size: 13px; }
  .rug-remove {
    grid-area: 1 / 3;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
    font-size: 12px;
  }
  .rug-item .rug-subtotal {
    position: static;
    grid-area: 1 / 2;
    align-self: center;
    min-height: 36px;
    justify-content: flex-end;
  }
  .rug-item:has([data-remove-rug][hidden]) .rug-subtotal { grid-column: 2 / 4; }
  .rug-subtotal output { font-size: 13px; }
  .rug-item .dimension-fields {
    grid-area: 2 / 1 / auto / -1;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: end;
    gap: 8px;
  }
  .rug-item .dimension-fields > label {
    display: block;
    min-width: 0;
    font-size: 13px;
    line-height: 1.4;
  }
  .rug-item .dimension-input { height: 46px; margin-top: 5px; padding-right: 0; }
  .rug-item .dimension-input input { font-size: 16px; padding: 8px 6px 8px 9px; }
  .rug-item .dimension-input > span { font-size: 12px; padding-right: 8px; }
  .rug-item .dimension-times { align-self: end; display: grid; place-items: center; height: 46px; }
  .rug-item .odor-option {
    grid-area: 3 / 1 / auto / -1;
    min-height: 44px;
    margin-top: 2px;
    padding: 0;
    gap: 8px;
  }
  .odor-check, .odor-option input { width: 20px; height: 20px; }
  .odor-check { flex-basis: 20px; }
  .odor-copy { gap: 7px; flex-wrap: wrap; }
  .odor-copy strong { font-size: 12px; }
  .odor-copy small { font-size: 12px; }
  .rug-item .rug-error { grid-area: 4 / 1 / auto / -1; margin-top: 0; font-size: 12px; }
  .rug-add { min-height: 46px; font-size: 14px; }
  .pricing-right .calc-total { flex-wrap: wrap; }
  .pricing-right .calc-total output { margin-left: auto; }

  .rg-choices { gap: 8px; }
  .rg-choices > button { min-height: 44px; padding: 6px 12px; font-size: 12px; color: #536c49; }
  .rg-card-heading strong { font-size: 12px; color: #536c49; }
  .rg-card-heading small, .rg-card-heading > span:last-child { font-size: 10px; }
  .rg-label { font-size: 10px; }
  .rg-navigation strong { font-size: 16px; }
  .remember-actions .text-link { min-height: 44px; font-size: 14px; }

  .dj-map-caption a, .dj-phone, .dj-mobile, .dj-email {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .dj-map-caption { padding-top: 7px; padding-bottom: 7px; }
  .dj-map-caption a { min-width: 54px; justify-content: flex-end; }
  .dj-phone-row { flex-wrap: wrap; column-gap: 16px; row-gap: 0; }
  .dj-email { margin-top: 0; }
  .mobile-phone-options a { min-height: 44px; }
  .footer-bottom { font-size: 11px; line-height: 1.6; }
  .footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
}

@media (max-width: 370px) {
  .price-surface { padding-inline: 19px; }
  .pricing-right .calculator-form { padding-inline: 14px; }
  .rug-count-label { font-size: 13px; }
  .price-self { padding-inline: 10px; }
}
