/* Shared card spacing. Content determines height; controls retain their hit area. */
body.has-mobile-dock {
  --card-padding: clamp(11px, 1.6vw, 18px);
  --card-gap: clamp(8px, 1.2vw, 14px);
  --section-space: clamp(14px, 2.6vw, 32px);
}

.page-home .discovery-grid {
  gap: var(--card-gap);
}

.page-home .discovery-grid .discovery-card {
  min-block-size: 0;
  padding: var(--card-padding);
}

.page-home .discovery-grid .discovery-more {
  padding-block-start: 7px;
}

.page-home .home-discovery {
  padding-block: clamp(22px, 3.5vw, 44px);
}

.page-home .discovery-heading {
  margin-block-end: var(--section-space);
}

.page-services .service-overview {
  gap: var(--card-gap);
  padding-block: var(--section-space);
}

.page-services .service-overview-item,
.page-services .service-overview-item:first-child {
  gap: 12px;
  padding: var(--card-padding);
  border-radius: var(--site-corner);
}

.page-services .service-overview-item h2 {
  margin-block-start: 4px;
  font-size: clamp(19px, 2vw, 23px);
  line-height: 1.5;
}

.page-services .service-overview-item p {
  margin-block-start: 5px;
  line-height: 1.8;
}

.page-services .service-overview-item .page-actions {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 10px;
}

.page-services .service-overview-item .page-actions > a {
  min-block-size: 44px;
}

.page-services .service-overview-item .page-actions .text-link {
  display: inline-flex;
  align-items: center;
}

.page-services .service-overview-item .page-actions .button {
  padding: 6px 11px;
}

.page-services .page-cta {
  padding-block: clamp(18px, 2.5vw, 32px);
}

.page-services .page-cta h2 {
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.55;
}

.page-services .page-cta p {
  margin-block-start: 5px;
  line-height: 1.8;
}

.reference-template .reference-preparation,
.reference-template .reference-related {
  padding-block: var(--section-space);
}

.reference-template .reference-preparation > div {
  gap: var(--card-gap);
  margin-block-start: 10px;
}

.reference-template .reference-service-content {
  gap: clamp(18px, 4vw, 55px);
  padding-block: clamp(23px, 4vw, 48px);
}

.reference-template .reference-service-articles .guide-article {
  margin-block-end: 17px;
  padding-block-end: 18px;
}

.reference-template .reference-related > div {
  gap: 7px;
  margin-block-start: 11px;
}

.reference-template .reference-related a {
  min-block-size: 44px;
  padding: 6px 10px;
  border-radius: var(--site-corner);
}

.reference-template .home-intake-wrap .vehicle-intake > .shell,
.reference-template .home-intake-wrap .home-request-stage,
.request-flow .vehicle-intake > .shell,
.request-flow .home-request-stage {
  padding: clamp(12px, 1.8vw, 22px);
}

.home-intake-wrap .v-intro {
  margin-block-end: 10px;
}

.home-intake-wrap .has-selects .v-ticket {
  row-gap: 8px;
}

.home-intake-wrap .v-bottom {
  margin-block-start: 8px;
  padding-block-start: 4px;
}

.home-intake-wrap .home-request-stage .r-heading {
  margin-block-end: 9px;
}

.home-intake-wrap .home-request-stage .r-form {
  gap: 10px 16px;
}

.page-request .page-request-intro {
  padding-block: clamp(16px, 2.8vw, 33px) 12px;
}

.contact-hero .contact-card {
  padding: var(--card-padding);
}

.contact-hero .contact-details {
  row-gap: 8px;
}

.contact-hero .contact-details > .contact-address-row {
  padding-block-start: 7px;
}

.contact-hero .contact-address-actions {
  margin-block-start: 6px;
}

.lookup-panel,
.lookup-results .coverage-brand,
.lookup-results .faq-empty {
  padding: var(--card-padding);
  border-radius: var(--site-corner);
}

.lookup-panel .coverage-filters {
  gap: 8px 12px;
}

.lookup-panel .faq-filter-list {
  gap: 5px;
  margin-block-start: 8px;
}

.lookup-results #coverage-list {
  gap: var(--card-gap);
}

.lookup-results .coverage-brand p {
  margin-block-start: 4px;
}

.lookup-results .coverage-models {
  margin-block-start: 7px;
}

.faq-results .faq-entry summary {
  min-block-size: 44px;
  padding-block: 8px;
}

:is(.page-catalog-hub, .page-catalog) .catalog-compact-hero {
  padding-block: clamp(13px, 2.65vw, 32px);
}

.catalog-category-grid.catalog-portal {
  gap: var(--card-gap);
  margin-block: var(--section-space) clamp(24px, 4vw, 50px);
}

.catalog-category-grid.catalog-portal article {
  padding: var(--card-padding);
  gap: 6px 10px;
  border-radius: var(--site-corner);
  box-shadow: none;
}

.catalog-portal h2,
.catalog-listing .catalog-empty h2 {
  font-size: clamp(19px, 2.1vw, 24px);
  line-height: 1.45;
}

.catalog-portal article p {
  margin-block-start: 3px;
}

.catalog-portal-actions,
.catalog-portal .catalog-family-codes {
  margin-block-start: 3px;
}

.catalog-listing {
  gap: var(--section-space);
  padding-block: var(--section-space) clamp(24px, 4vw, 50px);
}

.catalog-listing :is(.catalog-supply, .catalog-stock-tools, .catalog-no-match) {
  padding: var(--card-padding);
  border-radius: var(--site-corner);
}

.catalog-supply form,
.catalog-listing .catalog-filter-actions,
.catalog-listing .catalog-empty .page-actions {
  margin-block-start: 7px;
}

.catalog-listing .catalog-selection-grid {
  gap: 6px 8px;
}

.catalog-listing .catalog-filter-grid label {
  margin-block-end: 3px;
}

.catalog-listing .family-grid {
  gap: var(--card-gap);
}

.catalog-listing .family-card {
  padding: 3px 9px;
  border-radius: var(--site-corner);
}

.catalog-listing .family-card h3 {
  font-size: clamp(17px, 1.9vw, 23px);
}

.catalog-listing .family-card h3 a {
  min-inline-size: 44px;
}

.catalog-listing .family-card .text-link {
  white-space: normal;
}

.family-models,
.family-inventory {
  padding-block-end: var(--section-space);
}

.family-models {
  padding-block-start: var(--section-space);
}

.family-models-heading {
  margin-block-end: 8px;
}

.family-model-grid {
  gap: 7px;
}

.family-model-link {
  min-block-size: 48px;
  padding: 5px 9px;
}

.family-model-name {
  line-height: 1.45;
}

.family-model-action {
  line-height: 1.55;
}

.family-supply-panel {
  padding: var(--card-padding);
  gap: 6px 12px;
  border-radius: var(--site-corner);
}

.product-grid {
  gap: var(--card-gap);
}

.product-card .product-card-image {
  aspect-ratio: 16 / 10;
}

.product-card .product-card-body {
  padding: var(--card-padding);
}

.product-card h2 {
  margin-block-start: 6px;
  font-size: clamp(18px, 1.8vw, 22px);
  line-height: 1.5;
}

.product-card-body > p {
  margin-block-start: 5px;
  line-height: 1.7;
}

.product-card .product-fitment {
  min-block-size: 0;
}

.product-card .page-actions {
  gap: 6px 8px;
  margin-block-start: 9px;
}

.page-inquiry .catalog-inquiry {
  padding: var(--card-padding);
  box-shadow: none;
}

.page-inquiry .inquiry-field,
.page-inquiry .inquiry-disclosure {
  margin-block-end: 7px;
}

.page-inquiry .inquiry-product {
  padding: 9px;
  margin-block-end: 8px;
}

@media (min-width: 375px) and (max-width: 659px) {
  .family-model-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .family-model-link {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 1px;
  }
}

@media (min-width: 660px) and (max-width: 820px) {
  .catalog-category-grid.catalog-portal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-category-grid.catalog-portal article {
    grid-template-columns: minmax(0, 1fr) minmax(64px, 24%);
  }
}

@media (max-width: 820px) {
  .catalog-category-grid.catalog-portal article {
    row-gap: 3px;
  }

  .catalog-portal-copy {
    display: contents;
  }

  .catalog-portal-copy > :is(h2, p) {
    grid-column: 1;
  }

  .catalog-portal article img {
    grid-area: 1 / 2 / span 2;
  }

  .catalog-portal :is(.catalog-family-codes, .catalog-portal-actions) {
    grid-column: 1 / -1;
  }
}

@media (min-width: 375px) {
  .catalog-listing .family-card {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    grid-template-areas: "name action" "models action";
    column-gap: 4px;
    align-content: center;
  }

  .catalog-listing .family-card h3 {
    grid-area: name;
  }

  .catalog-listing .family-card p {
    grid-area: models;
  }

  .catalog-listing .family-card > .text-link {
    grid-area: action;
    align-self: center;
    justify-self: end;
    margin: 0;
    text-align: start;
  }
}

@media (max-width: 480px) {
  .page-services .service-overview-item .page-actions .button {
    width: auto;
  }

  .page-services .page-cta .button {
    margin-block-start: 12px;
  }
}
