/* Local font files; licenses included alongside each family in /fonts/. */
@font-face {
  font-family: "Inter Local";
  src: url('/fonts/inter-variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter Local";
  src: url('/fonts/inter-variable-italic.woff2') format('woff2');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
:root {
  --font-sans: "Inter Local", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: var(--font-sans);
  --font-editorial: var(--font-sans);
}

body { font-family: var(--font-sans); font-weight: 400; line-height: 1.6; font-optical-sizing: auto; font-kerning: normal; font-feature-settings: 'liga' 1, 'calt' 1; }
button, input, select, textarea { font-family: var(--font-sans); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); }
h1, h2 { font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
h3, h4 { font-weight: 600; letter-spacing: -.015em; line-height: 1.3; }
p { line-height: 1.6; }
.btn { font-weight: 550; letter-spacing: 0; line-height: 1.25; }

/* Navigation is quieter than the page headings. */
.promo-ticker-item { font-size: .8125rem; font-weight: 500; letter-spacing: .01em; }
.store-site-header .nav-link { font-size: .9375rem; font-weight: 500; letter-spacing: 0; }
.store-site-header .header-location { font-weight: 500; }
.store-header-search input { font-size: .9375rem; font-weight: 400; }

/* Homepage: comfortable line spacing and a consistent title scale. */
.store-eyebrow, .shop-eyebrow {
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.5;
}
.storefront-home .store-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2.75rem, 4.6vw, 4.5rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: 1.06;
  text-wrap: balance;
}
.store-hero-copy > p { font-size: 1.0625rem; line-height: 1.6; max-width: 32rem; }
.storefront-home .store-section-head h2,
.storefront-home .store-finder-grid h2,
.storefront-home .store-faq-intro h2 {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 2.5vw, 2.5rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.15;
  text-wrap: balance;
}
.storefront-home .store-pro-grid h2,
.storefront-home .store-cta-inner h2 {
  font-family: var(--font-display);
  font-size: clamp(1.875rem, 3vw, 3rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.12;
  text-wrap: balance;
}
.store-section-head p, .store-cta p { font-size: .9375rem; line-height: 1.6; }
.store-text-link, .store-category-card span { font-size: .8125rem; font-weight: 500; }
.store-category-card strong { font-weight: 550; font-size: .9375rem; letter-spacing: -.01em; }
.store-product-info h3 { font-size: .9375rem; font-weight: 550; letter-spacing: -.015em; line-height: 1.35; }
.store-product-info p { font-size: .8125rem; line-height: 1.5; }
.store-product-info > strong { font-size: 1.125rem; font-weight: 600; letter-spacing: -.025em; font-variant-numeric: lining-nums tabular-nums; }
.store-product-actions .btn { font-size: .75rem; }
.store-faq-item summary { font-weight: 500; font-size: 1rem; line-height: 1.45; letter-spacing: -.01em; }
.store-faq-item p, .store-faq-intro p { font-size: .9375rem; line-height: 1.7; }

/* Catalog: product names, specifications and prices have distinct roles. */
.shop-intro h1 {
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 4vw, 3.75rem);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: 1.1;
}
.shop-intro p { font-size: 1rem; line-height: 1.6; }
.shop-breadcrumb, .shop-results { font-size: .8125rem; }
.shop-search-field input { font-size: .9375rem; }
.shop-category-chip { font-size: .875rem; font-weight: 500; letter-spacing: 0; }
.shop-sort-field, .shop-condition-field, .shop-stock-toggle, .shop-clear-button { font-size: .8125rem; }
.shop-sort-field .form-control, .shop-condition-field .form-control { font-size: .875rem; line-height: 1.25; padding: .5rem 2rem .5rem .75rem; }
#shop-products-grid .card-brand { font-size: .625rem; font-weight: 500; letter-spacing: .1em; }
#shop-products-grid .card-title { font-family: var(--font-sans); font-size: 1.125rem; font-weight: 550; line-height: 1.3; letter-spacing: -.02em; }
#shop-products-grid .card-specs-brief { font-size: .8125rem; line-height: 1.5; }
#shop-products-grid .card-price { font-size: 1.25rem; font-weight: 600; letter-spacing: -.025em; font-variant-numeric: lining-nums tabular-nums; }
#shop-products-grid .card-price-sub { font-size: .75rem; line-height: 1.5; }
#shop-products-grid .card-detail-button { font-size: .8125rem; font-weight: 500; }
.site-footer h4 { font-size: .9375rem; font-weight: 550; letter-spacing: 0; }
.footer-links-list { font-size: .875rem; line-height: 1.7; }
.footer-mini-title { font-weight: 500; letter-spacing: .12em; }

@media (max-width: 768px) {
  .store-site-header .nav-link { font-size: .9375rem; }
  .promo-ticker-item { font-size: .75rem; }
  .storefront-home .store-hero h1 { font-size: clamp(2.5rem, 8.5vw, 3.75rem); }
  .store-hero-copy > p { font-size: 1rem; }
  .storefront-home .store-section-head h2,
  .storefront-home .store-finder-grid h2,
  .storefront-home .store-faq-intro h2 { font-size: 1.875rem; }
  .storefront-home .store-pro-grid h2,
  .storefront-home .store-cta-inner h2 { font-size: clamp(1.75rem, 5vw, 2.375rem); }
}

@media (max-width: 700px) {
  .shop-intro h1 { font-size: 2.5rem; }
  .shop-intro p { font-size: .9375rem; }
  .shop-category-chip { font-size: .8125rem; }
  #shop-products-grid .card-title { font-size: 1rem; }
  #shop-products-grid .card-specs-brief { font-size: .75rem; }
  #shop-products-grid .card-price { font-size: 1.125rem; }
  #shop-products-grid .card-price-sub { font-size: .6875rem; }
  #shop-products-grid .card-detail-button { font-size: .75rem; }
  .store-product-info h3 { font-size: .875rem; }
}
