/* Shared type system. Serif is reserved for editorial and marketing headings. */
:root {
  --font-sans: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --font-editorial: 'Cormorant Garamond', Georgia, serif;
}
body { font-family:var(--font-sans); font-weight:400; }
button, input, select, textarea { font-family:var(--font-sans); }

.announcement {
  height:26px; padding:0 12px; display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:400; line-height:1; letter-spacing:0;
}
body>header { height:76px; padding-block:0; }
body>header>.brand {
  display:flex; flex-direction:column; align-items:flex-start;
  font-family:var(--font-sans); font-size:24px; font-weight:600;
  letter-spacing:.10em; line-height:1; white-space:nowrap;
}
body>header>.brand small {
  font-family:var(--font-sans); font-size:14px; font-weight:500;
  letter-spacing:.035em; line-height:1.1; color:#777; text-transform:none;
  margin:5px 0 0; padding:0; text-indent:0;
}
body>header nav { font-size:13px; font-weight:500; line-height:1.4; gap:32px; }
body>header nav .text-button { font-size:inherit; font-weight:inherit; }
body>header .header-actions .button {
  height:38px; min-height:38px; padding:0 18px; font-size:13px; font-weight:500;
}
.button {
  font-family:var(--font-sans); font-size:13px; font-weight:500; line-height:1.4;
  transition:background-color .2s,color .2s,border-color .2s;
}

.eyebrow, .hero .eyebrow, .section-heading .eyebrow, .custom-intro .eyebrow {
  font-family:var(--font-sans); font-size:11px; font-weight:500;
  letter-spacing:.2em; line-height:1.4; text-transform:uppercase;
}
.hero .eyebrow { margin-bottom:12px; }
.hero h1 {
  font-family:var(--font-editorial); font-size:clamp(46px,4vw,58px);
  font-weight:500; line-height:.96; letter-spacing:-.02em; margin-bottom:20px;
}
.hero-subtitle {
  font-family:var(--font-sans); font-size:17px; font-weight:400;
  line-height:1.45; letter-spacing:0; margin-bottom:22px; max-width:530px;
}
.hero-actions .button { font-size:13px; font-weight:500; }
.hero-trust { font-size:11px; font-weight:400; line-height:1.4; }
.hero-caption {
  font-family:var(--font-editorial); font-size:32px; font-style:italic;
  font-weight:500; line-height:.92; letter-spacing:-.02em;
}
.hero-signature { font-family:var(--font-sans); font-size:8px; font-weight:400; }
.section-heading .eyebrow { font-size:10px; margin-bottom:5px; }
.section-heading h2, .custom-intro h2 {
  font-family:var(--font-editorial); font-size:36px; font-weight:500;
  line-height:1.05; letter-spacing:-.015em;
}
.custom-intro h2 { font-size:38px; }
.section-heading>p { font-size:13px; font-weight:450; line-height:1.5; }
.category strong { font-family:var(--font-sans); font-size:13px; font-weight:500; line-height:1.4; }
.filters select, .search input, .results-bar, .results-bar select {
  font-family:var(--font-sans); font-size:12px; font-weight:400; line-height:1.4;
}
.product h3 {
  font-family:var(--font-sans); font-size:14px; font-weight:600;
  line-height:1.3; letter-spacing:0; min-height:2.6em;
}
.product p { font-family:var(--font-sans); font-size:12px; font-weight:400; line-height:1.5; }
.tags span { font-family:var(--font-sans); font-size:11px; font-weight:400; line-height:1.4; }
.card-detail-link { font-family:var(--font-sans); font-size:12px; font-weight:500; line-height:1.5; }
.custom-intro>p:not(.eyebrow) { font-family:var(--font-sans); font-size:13px; font-weight:400; line-height:1.6; }
.custom-intro .button { font-size:13px; font-weight:500; }
.custom-capabilities h3, .business-strip h3 { font-family:var(--font-sans); font-size:13px; font-weight:500; line-height:1.35; }
.custom-capabilities p, .business-strip p { font-family:var(--font-sans); font-size:12px; font-weight:400; line-height:1.5; }
.footer-main .brand { display:flex; flex-direction:column; align-items:flex-start; width:fit-content; font-family:var(--font-sans); font-size:19px; font-weight:600; letter-spacing:.08em; line-height:1; }
.footer-main .brand small { font-family:var(--font-sans); font-size:10.5px; font-weight:400; letter-spacing:.02em; line-height:1.2; margin:5px 0 0; padding:0; text-indent:0; }
.footer-main h3 { font-family:var(--font-sans); font-size:13px; font-weight:600; line-height:1.4; }
.footer-main p, .footer-main>div>a:not(.brand), .footer-link { font-family:var(--font-sans); font-size:12px; font-weight:400; line-height:1.6; }
.footer-main .button { font-size:13px; font-weight:500; }
.footer-bottom { font-family:var(--font-sans); font-size:11px; font-weight:400; line-height:1.5; }

/* Product specifications and task dialogs remain sans-serif. */
.detail-copy h2, .empty h2 { font-family:var(--font-sans); font-size:26px; font-weight:500; line-height:1.2; letter-spacing:-.02em; }
#inquiry h2 { font-family:var(--font-sans); font-size:26px; font-weight:500; line-height:1.2; letter-spacing:-.02em; }
.detail-copy p, .detail-copy dl, .detail-breadcrumb, .detail-related h3, form label { font-family:var(--font-sans); }
.detail-copy p { font-size:15px; font-weight:400; line-height:1.6; }
.detail-copy dl { font-size:14px; font-weight:400; line-height:1.5; }
.detail-related h3 { font-size:19px; font-weight:500; }
.detail-related .product h3 { font-size:13px; font-weight:600; line-height:1.3; }
.detail-actions .button { font-size:14px; font-weight:500; }
.custom-made-note strong { font-weight:500; }

@media(min-width:701px) and (max-width:900px) {
  body>header>.brand { font-size:22px; }
  body>header>.brand small { font-size:12.8px; }
  body>header nav { left:49%; font-size:13px; gap:12px; }
  body>header .header-actions .button { padding-inline:12px; }
}
@media(min-width:601px) and (max-width:1050px) {
  .hero-subtitle { font-size:16px; max-width:56%; }
  .hero h1 { font-size:46px; max-width:60%; }
  .hero-actions .button { font-size:13px; }
  .hero-trust { font-size:10px; }
}
@media(max-width:600px) {
  .announcement { height:26px; padding-inline:5px; font-size:9px; }
  .announcement span { padding-inline:5px; }
  body>header { height:72px; }
  body>header>.brand { font-size:22px; letter-spacing:.10em; }
  body>header>.brand small { font-size:12.8px; letter-spacing:.035em; margin-top:5px; }
  body>header .header-actions .button { font-size:12px; font-weight:500; padding-inline:10px; }
  .hero .eyebrow { font-size:11px; margin-bottom:12px; }
  .hero h1 { font-size:clamp(38px,10.8vw,44px); line-height:.98; letter-spacing:-.02em; margin-bottom:16px; }
  .hero-subtitle { font-size:15px; line-height:1.45; max-width:340px; margin-bottom:20px; }
  .hero-actions .button { font-size:13px; font-weight:500; }
  .hero-trust { font-size:10px; }
  .section-heading h2 { font-size:34px; }
  .section-heading .eyebrow, .custom-intro .eyebrow { font-size:10px; }
  .custom-intro h2 { font-size:36px; }
  .category strong { font-size:12px; }
  .filters select { font-size:13px; }
  .search input { font-size:16px; }
  .product h3 { font-size:13px; min-height:2.6em; line-height:1.3; }
  .product p { font-size:11px; }
  .tags span { font-size:10px; }
  .business-strip h3, .custom-capabilities h3 { font-size:12px; }
  .business-strip p, .custom-capabilities p { font-size:11px; }
  .footer-main .brand { font-size:19px; }
  .footer-main .brand small { font-size:10.5px; }
  .footer-bottom { font-size:11px; }
  .detail-copy h2 { font-size:24px; }
  #inquiry h2 { font-size:26px; }
  .detail-copy .tags span { font-size:11px; }
}
@media(max-width:360px) {
  body>header .header-actions { gap:2px; }
  body>header .header-actions .icon-button { width:28px; min-width:28px; }
  body>header .header-actions .button { font-size:12px; padding-inline:8px; gap:5px; }
  .hero-actions .button { padding-inline:9px; gap:6px; }
  .hero-trust { font-size:9px; }
}
