/* Single typography system for every static and live-rendered page. */
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('./fonts/InterVariable.woff2') format('woff2');
}
@font-face {
  font-family: Inter;
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('./fonts/InterVariable-Italic.woff2') format('woff2');
}
:root {
  --font-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --type-h1: 3rem;
  --type-h1-leading: 1.15;
  --type-h2: 1.75rem;
  --type-h3: 1.125rem;
  --type-product-title: 1rem;
  --type-product-price: 1.25rem;
  --type-product-currency: .8125rem;
  --type-body: 1rem;
  --type-body-leading: 1.7;
  --type-small: .875rem;
  --type-nav: .875rem;
  --type-button: .9375rem;
  font-family: var(--font-sans);
  font-optical-sizing: auto;
  font-feature-settings: 'liga' 1, 'calt' 1;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  font-family: var(--font-sans);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: var(--type-body-leading);
  letter-spacing: normal;
}
button, input, select, textarea, code, kbd, samp, pre {
  font-family: var(--font-sans);
}
button, input, select, textarea { font-size: inherit; line-height: 1.5; }
input, select, textarea { font-weight: 400; }
/* Form fields stay at 16px on phones to avoid browser focus zoom. */
input, select, textarea { font-size: 1rem; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: break-word; }
h1 { font-size: var(--type-h1); font-weight: 800; line-height: var(--type-h1-leading); letter-spacing: -.02em; }
h2 { font-size: var(--type-h2); font-weight: 700; line-height: 1.3; letter-spacing: -.015em; }
h3 { font-size: var(--type-h3); font-weight: 600; line-height: 1.4; letter-spacing: -.01em; }
p, li { line-height: inherit; }
strong, b { font-weight: 700; }
small, .caption, .page-meta, .reviewed-note, .audit-line, .feed-status,
.source-label, .source-art-credit, .product-code, .product-meta, .product-image.text-only span,
.detail-price>span, .detail-status, .detail-facts, .buyer-check-links span,
.results-bar, .catalog-pagination>span, .saved-note, .no-js-note, .toast,
.footer-about p, .footer-bottom, .utility, .eyebrow, .filter-caption,
.reading-number, .article-jumps>span, .customs-fact>span, .home-hero-label,
.home-hero-status, .home-hero-caption, .home-hero-stats, .home-hero-shortcuts,
.source-record dl>div, .category-card .number {
  font-size: var(--type-small);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
}
small { font-size: var(--type-small); font-weight: 400; }
.eyebrow, .filter-caption, .home-hero-label, .article-jumps>span, .customs-fact>span { letter-spacing: .025em; }
nav, .main-nav a, .header-action, .category-strip, .category-strip a,
.breadcrumb, .aside-box>a, .article-jumps>a, .footer-col a {
  font-size: var(--type-nav);
  font-weight: 500;
  line-height: 1.5;
}
button, .button, .official-cta, .pill, .detail-buttons .save {
  font-size: var(--type-button);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: normal;
}
.text-link, .official-notes details>a, .customs-fact>a {
  font-size: var(--type-nav);
  font-weight: 600;
  line-height: 1.5;
}
summary { font-size: var(--type-body); font-weight: 600; line-height: 1.5; }
summary:after { font-size: 22px; font-weight: 400; line-height: 1; }
.footer-col strong, .buyer-check-links strong { font-size: var(--type-small); font-weight: 600; line-height: 1.5; }
.source-list a { font-size: var(--type-small); line-height: 1.6; }
.article .formula { font-size: var(--type-body); line-height: var(--type-body-leading); font-variant-numeric: tabular-nums; }
.article code { font-size: 1em; }
table { font-size: var(--type-small); line-height: 1.6; }
th, td a { font-weight: 600; }
.price, .table-price, .detail-price, .official-number, .customs-fact strong,
.home-hero-stats strong, [data-save-count] { font-variant-numeric: tabular-nums; }
.price { font-size: 22px; font-weight: 700; line-height: 1.3; letter-spacing: -.02em; white-space: nowrap; }
.price small { letter-spacing: normal; }
.table-price { font-size: var(--type-body); font-weight: 600; }
.detail-price strong, .official-number strong, .customs-fact strong,
.destination-code, .record-category { font-size: var(--type-h2); font-weight: 700; line-height: 1.3; letter-spacing: -.02em; }
.home-hero-stats strong { font-size: 20px; font-weight: 700; line-height: 1.3; }
.hero-find-note strong, .hero-shortlist-note strong { font-size: var(--type-body); font-weight: 600; line-height: 1.4; }
/* The wordmark is graphic lettering; page text follows the scale above. */
.brand-wordmark { font-family: var(--font-sans); }
/* Reflow components around readable text instead of shrinking their labels. */
.header-inner { gap: 22px; }
.main-nav { gap: 2px; }
.main-nav a { white-space: nowrap; padding-inline: 11px; }
.home-hero-copy h1 { max-width: 12em; }
.home-hero-copy h1>span { display: block; }
.home-hero-label { flex-wrap: wrap; white-space: normal; gap: 10px 14px; }
.home-hero-label>span:last-child { text-transform: none; }
.home-hero-art { height: 540px; }
.home-hero-caption { bottom: 0; margin-bottom: 0; }
.home-hero-status { top: 0; }
.hero-find-note strong, .hero-shortlist-note strong { white-space: normal; }
.hero-find-note { max-width: 295px; }
.hero-shortlist-note { max-width: 275px; }
.hero-shortlist-note>.icon { flex-shrink: 0; }
.home-hero-stats>.wrap { gap: 18px; padding-block: 16px; }
/* Compact product names stay readable without competing with page headings. */
.product-info h3 {
  font-size: var(--type-product-title); font-weight: 600; line-height: 1.5;
  letter-spacing: -.01em; min-height: 3em; margin: 0 0 12px;
  text-wrap: wrap; display: block; overflow: visible;
}
.product-card .price {
  font-size: var(--type-product-price); font-weight: 700; line-height: 1.35;
  letter-spacing: -.01em; font-variant-numeric: lining-nums tabular-nums;
}
.product-card .price small {
  font-size: var(--type-product-currency); font-weight: 400;
  line-height: 1.4; letter-spacing: normal;
}

.product-info h3>a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-open { flex-shrink: 0; }
.product-code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 3px 6px; }
.catalog-bar select { max-width: 220px; }
.results-bar { flex-wrap: wrap; gap: 12px; }
.directory-card h2 { overflow-wrap: normal; }
.page-head .lede { max-width: 65ch; }
.article p, .article li { overflow-wrap: break-word; }
.article-jumps { flex-wrap: wrap; }
.detail-price { flex-wrap: wrap; }
.detail-buttons { flex-wrap: wrap; }
.buyer-check-links a { min-width: 0; }
.source-list a { overflow-wrap: anywhere; }
.footer-col { min-width: 0; }
@media (max-width: 1200px) {
  .header-inner { gap: 12px; }
  .main-nav a { padding-inline: 8px; }
  .home-hero-art { height: 490px; }
  .hero-shortlist-note { max-width: 245px; }
}
@media (max-width: 1100px) {
  .header-action { display: none; }
}
@media (max-width:1024px) {
  .menu-toggle { display: flex; margin-left: 0; padding: 9px; }
  .official-cta { margin-left: auto; }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 12px 18px 18px; background: var(--surface); border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; gap: 3px; box-shadow: 0 10px 15px #122f3808; }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 13px 15px; }
  .main-nav .mobile-saved { display: block; }
  .home-hero-art { height: 425px; }
  .home-hero-caption { display: none; }
  .hero-find-note { max-width: 250px; }
  .home-hero-stats>.wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
}
@media (max-width: 760px) {
  :root {
    --type-h1: 2rem;
    --type-h1-leading: 1.15;
    --type-h2: 1.375rem;
    --type-h3: 1rem;
    --type-body: 1rem;
    --type-body-leading: 1.6;
    --type-button: .875rem;
  }
  .utility .wrap { text-align: center; }
  .utility .wrap>span:first-child { text-transform: none; }
  .home-hero-art { height: 360px; }
  .home-hero-status { max-width: 155px; }
  .home-hero-stats>.wrap { align-items: start; gap: 14px 18px; }
  .home-hero-stats strong { display: block; margin: 0 0 3px; }
  .home-hero-shortcuts { flex-wrap: wrap; gap: 10px 16px; }
  .price { font-size: 20px; }
  .price small { margin-left: 4px; }
  .catalog-bar select { max-width: 220px; }
  .directory-grid { grid-template-columns: 1fr 1fr; }
  .detail-buttons .button { min-width: 0; flex: 1 1 190px; }
  .detail-buttons .save { flex: 1 1 145px; }
  .footer-cta .wrap { flex-wrap: wrap; }
}
@media (max-width: 540px) {
  .header-inner { gap: 7px; }
  .official-cta { padding: 10px; }
  .official-cta .icon { display: none; }
  .catalog-bar select { max-width: none; }
  .catalog-pagination { flex-wrap: wrap; }
  .directory-grid { grid-template-columns: 1fr; }
  .directory-card .directory-photo { height: 205px; }
  .directory-card h2 { min-height: 0; }
  .directory-card p { display: block; }
  .product-bottom { flex-wrap: wrap; gap: 8px; }
  .product-info { padding-inline: 10px; }
  .source-label { display: table; margin-bottom: 6px; }
}
@media (max-width: 360px) {
  .header-inner { gap: 5px; }
  .official-cta { padding-inline: 8px; }
  .home-hero-label { font-size: var(--type-small); }
  .home-hero-search { gap: 7px; padding-left: 9px; }
  .home-hero-search>.icon { display: none; }
  .product-open { display: none; }
  .product-info { padding-inline: 8px; }
  .home-hero-stats>.wrap { gap: 14px 12px; }
}

@media (max-width: 640px) {
  :root { --type-product-title: .9375rem; --type-product-price: 1.1875rem; --type-product-currency: .75rem; }
  .product-info h3 { margin: 0 0 10px; }
  .product-bottom { flex-wrap: nowrap; align-items: flex-start; gap: 8px; }
  .product-card .price { flex: 1; column-gap: 4px; }
  .product-open { flex-shrink: 0; }
}
