/*
 * Peptides Bio homepage master surface.
 *
 * This is intentionally scoped to .master-home so secondary pages keep their
 * existing presentation. Values are calibrated against the approved 871px /
 * 1806px reference image; wider and narrow viewports use the same proportions.
 */

html body.home:has(.master-home) {
  --master-navy: #01102a;
  --master-blue: #216aef;
  --master-notice: #0147d0;
  --master-ink: #071b3c;
  --master-muted: #5e6d86;
  --master-soft: #f1f5fc;
  --master-border: #eff0f4;
  --master-blue-border: #bfd1f0;
  background: #fff !important;
  color: var(--master-ink) !important;
  font-family: Manrope, Arial, sans-serif !important;
}

html body.home:has(.master-home) .site-shell { overflow: clip; }
html body.home:has(.master-home) .master-width {
  width: min(1180px, calc(100% - 64px));
  margin-inline: auto;
}

/* Shared shell: exact notice/nav rhythm from the master. */
html body.home:has(.master-home) .site-shell > .notice,
html body.home:has(.master-home) > .notice {
  position: relative !important;
  inset: auto !important;
  z-index: 20 !important;
  display: flex !important;
  width: 100%;
  height: 35px;
  min-height: 35px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 43px !important;
  overflow: hidden;
  background: var(--master-notice) !important;
  color: #fff !important;
  font: 700 9px/1.2 Manrope, Arial, sans-serif !important;
  letter-spacing: .035em;
  text-align: left !important;
  white-space: nowrap;
}
html body.home:has(.master-home) .notice-leading,
html body.home:has(.master-home) .notice-more { display: inline-flex !important; align-items: center; gap: 8px; min-width: 0; color: #fff !important; }
html body.home:has(.master-home) .notice-leading > span:last-child { overflow: hidden; text-overflow: ellipsis; }
html body.home:has(.master-home) .notice-leading > .master-ui-icon,
html body.home:has(.master-home) .notice-more > .master-ui-icon { width: 14px; height: 14px; flex: 0 0 14px; color: #fff !important; }
html body.home:has(.master-home) .notice-more { flex: 0 0 auto; font-size: 8px !important; text-decoration: none !important; text-transform: none; }

html body.home:has(.master-home) .site-header {
  position: relative !important;
  top: auto !important;
  z-index: 15 !important;
  height: 66px !important;
  min-height: 66px !important;
  background: var(--master-navy) !important;
  border-bottom: 1px solid rgba(255,255,255,.14) !important;
  color: #fff !important;
}
html body.home:has(.master-home) .site-header .nav-wrap {
  width: min(1180px, calc(100% - 64px));
  height: 66px !important;
  min-height: 66px !important;
  margin-inline: auto;
  gap: 24px;
}
html body.home:has(.master-home) .site-header .brand,
html body.home:has(.master-home) .site-header .brand-name { color: #fff !important; }
html body.home:has(.master-home) .site-header .brand { gap: 10px; }
html body.home:has(.master-home) .site-header .brand-mark { width: 34px; height: 34px; border-radius: 8px; }
html body.home:has(.master-home) .site-header .brand-name { font: 700 16px/1 Manrope, Arial, sans-serif !important; letter-spacing: -.015em; }
html body.home:has(.master-home) .site-header .main-nav { gap: 23px; color: rgba(255,255,255,.88) !important; font: 700 11px/1 Manrope, Arial, sans-serif !important; }
html body.home:has(.master-home) .site-header .main-nav > a { min-height: 66px; display: inline-flex; align-items: center; color: rgba(255,255,255,.88) !important; text-decoration: none; }
html body.home:has(.master-home) .site-header .main-nav > a:hover,
html body.home:has(.master-home) .site-header .main-nav > a:focus-visible,
html body.home:has(.master-home) .site-header .main-nav > a[aria-current="page"] { color: #fff !important; }
html body.home:has(.master-home) .site-header .main-nav > a::after { background: var(--master-blue) !important; bottom: 0 !important; }
html body.home:has(.master-home) .site-header .quote-link {
  min-height: 34px !important;
  padding: 0 14px !important;
  border: 1px solid var(--master-blue) !important;
  border-radius: 3px !important;
  background: var(--master-blue) !important;
  color: #fff !important;
  font: 800 10px/1 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .site-header .quote-count { min-width: 17px; height: 17px; background: #fff; color: var(--master-blue) !important; font-size: 9px; }
html body.home:has(.master-home) .site-header .language-switcher { height: 38px !important; padding: 0 10px 0 12px !important; border: 1px solid rgba(255,255,255,.34) !important; border-radius: 3px !important; color: #fff !important; background: transparent !important; box-shadow: none !important; }
html body.home:has(.master-home) .site-header .language-switcher-label { display: none; }
html body.home:has(.master-home) .site-header .language-switcher-icon { width: 14px; height: 14px; color: #fff !important; }
html body.home:has(.master-home) .site-header .language-switcher select { height: 30px; min-width: 76px; padding: 0 17px 0 3px; border: 0; color: #fff !important; background: transparent !important; font-size: 10px !important; }
html body.home:has(.master-home) .site-header .language-switcher select option { color: #071b3c; background: #fff; }
html body.home:has(.master-home) .site-header .mobile-nav-toggle { display: none; }

/* Hero: one compact, dark image frame with the existing H1 and CTA links. */
html body.home:has(.master-home) .master-home-hero {
  position: relative;
  isolation: isolate;
  height: 353px;
  min-height: 353px;
  overflow: hidden;
  color: #fff;
  background: var(--master-navy);
}
html body.home:has(.master-home) .master-home-hero-media,
html body.home:has(.master-home) .master-home-hero-overlay { position: absolute; inset: 0; }
html body.home:has(.master-home) .master-home-hero-media { z-index: -2; }
html body.home:has(.master-home) .master-home-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.52) saturate(.76) contrast(1.05); }
html body.home:has(.master-home) .master-home-hero-overlay { z-index: -1; background: linear-gradient(90deg, rgba(1,16,42,.96) 0%, rgba(1,16,42,.84) 36%, rgba(1,16,42,.42) 67%, rgba(1,16,42,.48) 100%); }
html body.home:has(.master-home) .master-home-hero-inner { height: 100%; display: flex; align-items: center; }
html body.home:has(.master-home) .master-home-hero-copy { width: min(100%, 430px); margin-top: -2px; }
html body.home:has(.master-home) .master-kicker { margin: 0 0 9px; color: var(--master-blue); font: 800 8px/1.2 Manrope, Arial, sans-serif; letter-spacing: .105em; text-transform: uppercase; }
html body.home:has(.master-home) .master-home-hero .master-kicker { color: #fff; }
html body.home:has(.master-home) .master-home-hero h1 { max-width: 430px; margin: 0 0 15px; color: #fff; font: 400 44px/1.02 Italiana, Georgia, serif; letter-spacing: -.035em; }
html body.home:has(.master-home) .master-home-hero h1 span,
html body.home:has(.master-home) .master-home-hero h1 em { white-space: nowrap; font-style: normal; }
html body.home:has(.master-home) .master-home-hero h1 em { color: #79a9ff; }
html body.home:has(.master-home) .master-home-hero-subtitle { max-width: 335px; margin: 0 0 21px; color: rgba(255,255,255,.82); font: 500 13px/1.55 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-actions { display: flex; flex-wrap: wrap; gap: 12px; }
html body.home:has(.master-home) .master-actions .button { min-height: 39px; padding: 0 19px; border-radius: 3px; font: 800 11px/1 Manrope, Arial, sans-serif; letter-spacing: .01em; }
html body.home:has(.master-home) .master-actions .button-primary { border-color: var(--master-blue); background: var(--master-blue); color: #fff; }
html body.home:has(.master-home) .master-actions .button-secondary { border-color: rgba(255,255,255,.72); background: transparent; color: #fff; }
html body.home:has(.master-home) .master-actions .button:hover,
html body.home:has(.master-home) .master-actions .button:focus-visible { transform: translateY(-1px); }
html body.home:has(.master-home) .master-home-hero-boundary { display: flex; align-items: center; gap: 8px; margin: 27px 0 0; color: #fff; font: 800 8px/1.2 Manrope, Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
html body.home:has(.master-home) .master-home-hero-boundary > span { width: 9px; height: 9px; border-radius: 50%; background: #f3c94b; box-shadow: 0 0 0 2px rgba(243,201,75,.2); }

/* Catalog: five narrow record cards remain five columns at the 871px master. */
html body.home:has(.master-home) .master-catalog-section { padding: 29px 0 17px; background: #fff; }
html body.home:has(.master-home) .master-section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin: 0 0 21px; }
html body.home:has(.master-home) .master-section-head.compact { margin-bottom: 18px; }
html body.home:has(.master-home) .master-section-head { align-items: flex-start; }
@media (min-width: 760px) {
  html body.home:has(.master-home) .master-catalog-section .master-section-intro {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    max-height: 16px;
  }
}
html body.home:has(.master-home) .master-section-head h2 { margin: 0 0 7px; color: var(--master-ink); font: 400 25px/1.04 Italiana, Georgia, serif; letter-spacing: -.025em; }
html body.home:has(.master-home) .master-section-head h2 em { color: var(--master-blue); font-style: normal; }
html body.home:has(.master-home) .master-section-intro { max-width: 460px; margin: 0; color: var(--master-muted); font: 500 11px/1.45 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-inline-link { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; color: var(--master-blue); font: 800 10px/1.2 Manrope, Arial, sans-serif; text-decoration: none; }
html body.home:has(.master-home) .master-inline-link:hover,
html body.home:has(.master-home) .master-inline-link:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
html body.home:has(.master-home) .master-inline-icon { width: 13px; height: 13px; flex: 0 0 13px; }
html body.home:has(.master-home) .master-product-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
html body.home:has(.master-home) .master-product-card { min-width: 0; height: 286px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--master-border); border-radius: 4px; background: #fff; box-shadow: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
html body.home:has(.master-home) .master-product-card:hover,
html body.home:has(.master-home) .master-product-card:focus-within { border-color: #b4caf0; box-shadow: 0 8px 18px rgba(19,66,145,.09); transform: translateY(-1px); }
html body.home:has(.master-home) .master-product-card-link { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; color: inherit; text-decoration: none; }
html body.home:has(.master-home) .master-product-card-media { position: relative; display: grid; height: 156px; min-height: 156px; place-items: center; overflow: hidden; border-bottom: 1px solid var(--master-border); background: #fbfcfe; }
html body.home:has(.master-home) .master-product-card-media img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 8px 7px rgba(18,44,88,.14)); }
html body.home:has(.master-home) .master-product-card-index { position: absolute; top: 9px; left: 10px; z-index: 1; color: #b88930; font: 800 9px/1 Manrope, Arial, sans-serif; letter-spacing: .08em; }
html body.home:has(.master-home) .master-product-card-ruo { position: absolute; top: 9px; right: 9px; z-index: 1; padding: 3px 4px; border-radius: 2px; background: var(--master-navy); color: #fff; font: 800 6px/1.1 Manrope, Arial, sans-serif; letter-spacing: .04em; }
html body.home:has(.master-home) .master-product-card-body { min-height: 96px; padding: 10px 10px 7px; overflow: hidden; }
html body.home:has(.master-home) .master-product-card-sku { margin: 0 0 5px; overflow: hidden; color: var(--master-blue); font: 800 7px/1.2 Manrope, Arial, sans-serif; letter-spacing: .035em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
html body.home:has(.master-home) .master-product-card h3 { min-height: 27px; margin: 0 0 4px; overflow: hidden; color: var(--master-ink); font: 800 11px/1.22 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-product-card-type { margin: 0 0 6px; overflow: hidden; color: #7988a0; font: 700 7px/1.15 Manrope, Arial, sans-serif; text-transform: uppercase; white-space: nowrap; text-overflow: ellipsis; }
html body.home:has(.master-home) .master-product-card-body dl { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; margin: 0; padding-top: 6px; border-top: 1px solid var(--master-border); }
html body.home:has(.master-home) .master-product-card-body dl > div { min-width: 0; }
html body.home:has(.master-home) .master-product-card-body dt { margin: 0 0 2px; color: #7889a3; font: 800 6px/1.1 Manrope, Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
html body.home:has(.master-home) .master-product-card-body dd { margin: 0; overflow: hidden; color: var(--master-ink); font: 600 7px/1.2 Manrope, Arial, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
html body.home:has(.master-home) .master-product-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; padding: 0 10px 9px; }
html body.home:has(.master-home) .master-product-card-actions a,
html body.home:has(.master-home) .master-product-card-actions button { display: inline-flex; min-height: 25px; align-items: center; justify-content: center; padding: 0 3px; border: 0; border-radius: 0; background: transparent; color: var(--master-blue); font: 800 7px/1.1 Manrope, Arial, sans-serif; text-align: center; text-decoration: none; cursor: pointer; }
html body.home:has(.master-home) .master-product-card-actions button { border-left: 1px solid var(--master-border); }
html body.home:has(.master-home) .master-product-card-actions a:hover,
html body.home:has(.master-home) .master-product-card-actions a:focus-visible,
html body.home:has(.master-home) .master-product-card-actions button:hover,
html body.home:has(.master-home) .master-product-card-actions button:focus-visible { text-decoration: underline; text-underline-offset: 2px; }
html body.home:has(.master-home) .master-product-card-actions button.is-added {
  color: #0b49c7;
  background: #edf4ff;
  box-shadow: inset 0 0 0 1px #8eafea;
  text-decoration: none;
}
html body.home:has(.master-home) .master-product-card-actions button.is-added::before {
  content: '✓';
  margin-right: 5px;
  font-weight: 900;
}
html body.home:has(.master-home) .master-catalog-cta { display: flex; justify-content: center; margin-top: 17px; }
html body.home:has(.master-home) .button-outline-blue { display: inline-flex; min-height: 29px; align-items: center; gap: 5px; padding: 0 15px; border: 1px solid #8eafea; border-radius: 3px; background: #fff; color: var(--master-blue); font: 800 9px/1 Manrope, Arial, sans-serif; text-decoration: none; }
html body.home:has(.master-home) .button-outline-blue:hover,
html body.home:has(.master-home) .button-outline-blue:focus-visible { background: #f5f8ff; border-color: var(--master-blue); }
html body.home:has(.master-home) .master-catalog-expander { margin-top: 10px; scroll-margin-top: 105px; }
html body.home:has(.master-home) .master-catalog-expander > summary,
html body.home:has(.master-home) .master-legacy-information > summary { display: flex; min-height: 29px; align-items: center; justify-content: center; gap: 8px; width: fit-content; margin: 0 auto; padding: 0 14px; border: 1px solid #8eafea; border-radius: 3px; background: #fff; color: var(--master-blue); cursor: pointer; font: 800 9px/1 Manrope, Arial, sans-serif; list-style: none; }
html body.home:has(.master-home) .master-catalog-expander > summary::-webkit-details-marker,
html body.home:has(.master-home) .master-legacy-information > summary::-webkit-details-marker { display: none; }
html body.home:has(.master-home) .master-catalog-expander > summary:hover,
html body.home:has(.master-home) .master-legacy-information > summary:hover { background: #f5f8ff; border-color: var(--master-blue); }
html body.home:has(.master-home) .master-expander-icon { width: 13px; height: 13px; transition: transform .18s ease; }
html body.home:has(.master-home) .master-catalog-expander[open] > summary,
html body.home:has(.master-home) .master-legacy-information[open] > summary { margin-bottom: 16px; }
html body.home:has(.master-home) .master-catalog-expander[open] .master-expander-icon,
html body.home:has(.master-home) .master-legacy-information[open] .master-expander-icon { transform: rotate(45deg); }
html body.home:has(.master-home) .master-catalog-expander-body { padding-top: 16px; }

/* Keep dense desktop cards readable at a normal 100% browser zoom. */
@media (min-width: 760px) {
  html body.home:has(.master-home) .master-product-card { height: 320px; }
  html body.home:has(.master-home) .master-product-card-media { height: 148px; min-height: 148px; }
  html body.home:has(.master-home) .master-product-card-ruo { font-size: 8px; }
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-type { font-size: 9px; }
  html body.home:has(.master-home) .master-product-card h3 { font-size: 13px; }
  html body.home:has(.master-home) .master-product-card-body dt { font-size: 8px; }
  html body.home:has(.master-home) .master-product-card-body dd { font-size: 10px; }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button { min-height: 34px; font-size: 10px; }
  html body.home:has(.master-home) .master-doc-item strong { font-size: 11px; }
  html body.home:has(.master-home) .master-doc-item p { font-size: 10px; }
  html body.home:has(.master-home) .master-doc-item a { font-size: 10px; }
}

/* Documentation panel. */
html body.home:has(.master-home) .master-docs-section { padding: 0 0 17px; background: #fff; }
html body.home:has(.master-home) .master-docs-panel { width: min(1180px, calc(100% - 64px)); margin: 0 auto; padding: 19px 79px 22px; border-radius: 5px; background: var(--master-soft); }
html body.home:has(.master-home) .master-docs-panel header { margin: 0 0 17px; }
html body.home:has(.master-home) .master-docs-panel h2 { margin: 0; color: var(--master-ink); font: 400 21px/1.05 Italiana, Georgia, serif; letter-spacing: -.02em; }
html body.home:has(.master-home) .master-docs-panel h2 em { color: var(--master-blue); font-style: normal; }
html body.home:has(.master-home) .master-docs-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
html body.home:has(.master-home) .master-doc-item { display: flex; min-width: 0; gap: 10px; padding: 0 18px; border-left: 1px solid #d8e2f2; }
html body.home:has(.master-home) .master-doc-item:first-child { padding-left: 0; border-left: 0; }
html body.home:has(.master-home) .master-doc-item:last-child { padding-right: 0; }
html body.home:has(.master-home) .master-doc-icon { width: 25px; height: 25px; flex: 0 0 25px; color: var(--master-blue); }
html body.home:has(.master-home) .master-doc-item strong { display: block; margin: 0 0 6px; color: var(--master-ink); font: 800 10px/1.25 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-doc-item p { min-height: 43px; margin: 0 0 7px; color: #54647e; font: 500 9px/1.45 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-doc-item a { display: inline-flex; align-items: center; gap: 4px; color: var(--master-blue); font: 800 8px/1.2 Manrope, Arial, sans-serif; text-decoration: none; }

/* Materials gallery. */
html body.home:has(.master-home) .master-gallery-section { padding: 0 0 21px; background: #fff; }
html body.home:has(.master-home) .master-gallery-grid { display: grid; grid-template-columns: 1fr 1.13fr 1.12fr 1.02fr; gap: 10px; }
html body.home:has(.master-home) .master-gallery-item { position: relative; min-width: 0; height: 130px; margin: 0; overflow: hidden; border-radius: 4px; background: #f3f6fb; }
html body.home:has(.master-home) .master-gallery-item img { width: 100%; height: 100%; object-fit: cover; }
html body.home:has(.master-home) .master-gallery-item figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
html body.home:has(.master-home) .master-video-slot { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 18px; align-items: center; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--master-border); }
html body.home:has(.master-home) .master-video-frame { overflow: hidden; border-radius: 4px; background: #eaf0fa; aspect-ratio: 16/9; }
html body.home:has(.master-home) .master-video-frame video { display: block; width: 100%; height: 100%; object-fit: cover; }
html body.home:has(.master-home) .master-video-slot h3 { margin: 0 0 8px; color: var(--master-ink); font: 400 22px/1.06 Italiana, Georgia, serif; }
html body.home:has(.master-home) .master-video-slot p:not(.master-kicker) { margin: 0; color: var(--master-muted); font: 500 11px/1.5 Manrope, Arial, sans-serif; }

/* Research library cards and quote CTA. */
html body.home:has(.master-home) .master-library-section { padding: 0 0 20px; background: #fff; }
html body.home:has(.master-home) .master-library-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 10px; }
html body.home:has(.master-home) .master-library-grid .research-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
html body.home:has(.master-home) .master-library-grid .research-card { min-width: 0; height: 169px; overflow: hidden; border: 1px solid var(--master-border); border-radius: 4px; background: #fff; }
html body.home:has(.master-home) .master-library-grid .research-card-link { display: block; height: 100%; color: inherit; text-decoration: none; }
html body.home:has(.master-home) .master-library-grid .research-card-art { display: none !important; }
html body.home:has(.master-home) .master-library-grid .research-card-copy { display: flex; height: 100%; flex-direction: column; padding: 12px; }
html body.home:has(.master-home) .master-library-grid .research-card-copy > p { margin: 0 0 7px; color: #7a8ba5; font: 800 7px/1.2 Manrope, Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
html body.home:has(.master-home) .master-library-grid .research-card-copy h3 { display: flex; gap: 6px; min-height: 31px; margin: 0 0 7px; color: var(--master-ink); font: 800 11px/1.2 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-library-grid .research-card-document-icon { width: 18px; height: 18px; flex: 0 0 18px; color: var(--master-blue); }
html body.home:has(.master-home) .master-library-grid .research-card-copy > span { display: block; color: var(--master-muted); font: 500 8px/1.45 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-library-grid .research-card-copy > b { display: inline-flex; align-items: center; gap: 4px; margin-top: auto; color: var(--master-blue); font: 800 8px/1.2 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-library-grid .research-card-link-icon { width: 12px; height: 12px; }
html body.home:has(.master-home) .master-library-grid .research-card:hover,
html body.home:has(.master-home) .master-library-grid .research-card:focus-within { border-color: #b4caf0; box-shadow: 0 8px 18px rgba(19,66,145,.08); }
html body.home:has(.master-home) .master-library-cta { display: flex; min-width: 0; height: 169px; flex-direction: column; padding: 13px; border-radius: 4px; background: var(--master-soft); }
html body.home:has(.master-home) .master-library-cta-icon { display: inline-flex; width: 24px; height: 24px; align-items: center; justify-content: center; margin-bottom: 8px; border-radius: 50%; background: #fff; color: var(--master-blue); }
html body.home:has(.master-home) .master-library-cta-icon .master-ui-icon { width: 13px; height: 13px; }
html body.home:has(.master-home) .master-library-cta .master-kicker { margin-bottom: 6px; }
html body.home:has(.master-home) .master-library-cta h3 { margin: 0 0 12px; color: var(--master-ink); font: 800 11px/1.25 Manrope, Arial, sans-serif; }
html body.home:has(.master-home) .master-library-cta .button-primary { display: inline-flex; min-height: 31px; align-items: center; justify-content: center; gap: 5px; margin-top: auto; border: 1px solid var(--master-blue); border-radius: 3px; background: var(--master-blue); color: #fff; font: 800 9px/1 Manrope, Arial, sans-serif; text-decoration: none; }
html body.home:has(.master-home) .master-library-cta > .master-inline-link { margin-top: 9px; justify-content: center; font-size: 8px; }

/* Keep the legacy research chapters available without dominating the master. */
html body.home:has(.master-home) .master-legacy-information { width: min(1180px, calc(100% - 64px)); margin: 0 auto 20px; }
html body.home:has(.master-home) .master-legacy-information .master-legacy-body { padding-top: 8px; }
html body.home:has(.master-home) .master-legacy-information .signal-section { min-height: 320px; }
html body.home:has(.master-home) .master-legacy-information .section { padding-block: 46px; }

/* Footer: light four-column surface with one navy legal strip. */
html body.home:has(.master-home) .site-footer { position: relative; min-height: 173px; padding: 22px 0 37px !important; background: #fff !important; border-top: 1px solid var(--master-border); color: var(--master-ink) !important; }
html body.home:has(.master-home) .site-footer .footer-grid { width: min(1180px, calc(100% - 64px)); grid-template-columns: 1.55fr 1fr 1fr 1fr; gap: 28px; margin: 0 auto; }
html body.home:has(.master-home) .site-footer .footer-grid > div,
html body.home:has(.master-home) .site-footer .footer-contact { min-width: 0; }
html body.home:has(.master-home) .site-footer .brand,
html body.home:has(.master-home) .site-footer .brand-name,
html body.home:has(.master-home) .site-footer h3 { color: var(--master-ink) !important; }
html body.home:has(.master-home) .site-footer .brand { gap: 8px; }
html body.home:has(.master-home) .site-footer .brand-mark { width: 28px; height: 28px; border-radius: 7px; }
html body.home:has(.master-home) .site-footer .brand-name { font-size: 14px !important; }
html body.home:has(.master-home) .site-footer .footer-custom-copy,
html body.home:has(.master-home) .site-footer p,
html body.home:has(.master-home) .site-footer a { color: #53647e !important; font-size: 9px !important; line-height: 1.45; }
html body.home:has(.master-home) .site-footer .footer-grid > div:first-child > .footer-custom-copy { max-width: 210px; margin-top: 9px; }
html body.home:has(.master-home) .site-footer h3 { margin: 0 0 9px; font: 800 8px/1.2 Manrope, Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
html body.home:has(.master-home) .site-footer .footer-links { display: grid; gap: 5px; }
html body.home:has(.master-home) .site-footer .footer-links a { text-decoration: none; }
html body.home:has(.master-home) .site-footer .footer-links a:hover,
html body.home:has(.master-home) .site-footer .footer-links a:focus-visible { color: var(--master-blue) !important; text-decoration: underline; text-underline-offset: 2px; }
html body.home:has(.master-home) .site-footer .footer-contact { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 7px 14px; padding-top: 8px; border-top: 1px solid var(--master-border); }
html body.home:has(.master-home) .site-footer .footer-contact h3 { width: 100%; margin-bottom: 0; }
html body.home:has(.master-home) .site-footer .footer-contact span,
html body.home:has(.master-home) .site-footer .footer-contact a,
html body.home:has(.master-home) .site-footer .footer-contact strong { color: #53647e !important; font-size: 11px !important; line-height: 1.45; }
html body.home:has(.master-home) .site-footer .site-research-notice { position: absolute; right: 0; bottom: 0; left: 0; width: 100% !important; height: 37px; display: grid; grid-template-columns: 150px minmax(0,1fr) 150px; align-items: center; gap: 0; margin: 0 !important; padding: 0 43px !important; border: 0 !important; background: var(--master-navy) !important; color: #fff !important; }
html body.home:has(.master-home) .site-footer .site-research-notice strong { grid-column: 1; color: #fff !important; font: 800 7px/1.2 Manrope, Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy { grid-column: 2; margin: 0; color: rgba(255,255,255,.76) !important; font-size: 7px !important; text-align: center; }
html body.home:has(.master-home) .site-footer .footer-bottom { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; display: flex; width: 100% !important; height: 37px; align-items: center; justify-content: flex-end; margin: 0 !important; padding: 0 43px !important; border: 0 !important; pointer-events: none; }
html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child { order: 2; color: rgba(255,255,255,.86) !important; font-size: 7px !important; }
html body.home:has(.master-home) .site-footer .footer-bottom > span:last-child { display: none; }

/* Common focus and responsive rules. */
html body.home:has(.master-home) a:focus-visible,
html body.home:has(.master-home) button:focus-visible,
html body.home:has(.master-home) summary:focus-visible,
html body.home:has(.master-home) select:focus-visible { outline: 2px solid #78a9ff; outline-offset: 2px; }
@media (min-width: 760px) and (max-width: 999px) {
  html body.home:has(.master-home) .master-width,
  html body.home:has(.master-home) .site-header .nav-wrap,
  html body.home:has(.master-home) .site-footer .footer-grid,
  html body.home:has(.master-home) .master-legacy-information { width: calc(100% - 113px); }
  html body.home:has(.master-home) .master-docs-panel { width: calc(100% - 43px); padding-inline: 79px; }
  html body.home:has(.master-home) .site-footer .site-research-notice { padding-inline: 28px !important; }
  html body.home:has(.master-home) .site-footer .footer-bottom { padding-inline: 28px !important; }
}
@media (max-width: 759px) {
  html body.home:has(.master-home) .master-width,
  html body.home:has(.master-home) .site-header .nav-wrap,
  html body.home:has(.master-home) .site-footer .footer-grid,
  html body.home:has(.master-home) .master-legacy-information { width: calc(100% - 32px); }
  html body.home:has(.master-home) .site-shell > .notice,
  html body.home:has(.master-home) > .notice { height: 43px; min-height: 43px; padding: 0 16px !important; white-space: normal; font-size: 8px !important; }
  html body.home:has(.master-home) .notice-leading { max-width: calc(100% - 72px); }
  html body.home:has(.master-home) .notice-more { font-size: 8px !important; }
  html body.home:has(.master-home) .site-header,
  html body.home:has(.master-home) .site-header .nav-wrap { height: 64px !important; min-height: 64px !important; }
  html body.home:has(.master-home) .site-header .nav-wrap { padding: 0; }
  html body.home:has(.master-home) .site-header .mobile-nav-toggle { display: inline-flex; min-width: 44px; min-height: 38px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.42); border-radius: 3px; background: transparent; color: #fff; }
  html body.home:has(.master-home) .site-header .mobile-nav-toggle > span { display: none; }
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i,
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i::before,
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i::after { display: block; width: 15px; height: 1px; background: #fff; content: ''; }
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i { position: relative; }
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i::before,
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i::after { position: absolute; left: 0; }
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i::before { top: -5px; }
  html body.home:has(.master-home) .site-header .mobile-nav-toggle i::after { top: 5px; }
  html body.home:has(.master-home) .site-header .main-nav { position: absolute; top: 64px; right: 16px; left: 16px; z-index: 30; display: none; gap: 2px; padding: 9px; border: 1px solid rgba(255,255,255,.2); background: var(--master-navy); }
  html body.home:has(.master-home) .site-menu-open .site-header .main-nav { display: grid !important; }
  html body.home:has(.master-home) .site-header .main-nav > a { min-height: 40px; padding: 0 10px; }
  html body.home:has(.master-home) .site-header .quote-link,
  html body.home:has(.master-home) .site-header .language-switcher { min-height: 40px !important; width: 100%; justify-content: center; }
  html body.home:has(.master-home) .master-home-hero { height: 470px; min-height: 470px; }
  html body.home:has(.master-home) .master-home-hero-inner { align-items: flex-start; padding-top: 50px; }
  html body.home:has(.master-home) .master-home-hero-copy { width: 100%; }
  html body.home:has(.master-home) .master-home-hero h1 { max-width: 100%; font-size: 44px; }
  html body.home:has(.master-home) .master-home-hero h1 span,
  html body.home:has(.master-home) .master-home-hero h1 em { white-space: normal; }
  html body.home:has(.master-home) .master-home-hero-subtitle { max-width: 330px; font-size: 12px; }
  html body.home:has(.master-home) .master-actions { display: grid; grid-template-columns: 1fr; gap: 9px; max-width: 100%; }
  html body.home:has(.master-home) .master-actions .button { width: 100%; }
  html body.home:has(.master-home) .master-product-grid { grid-template-columns: 1fr; gap: 12px; }
  html body.home:has(.master-home) .master-product-card { height: auto; min-height: 334px; }
  html body.home:has(.master-home) .master-product-card-media { height: 210px; min-height: 210px; }
  html body.home:has(.master-home) .master-product-card-body { min-height: 95px; padding: 14px 14px 9px; }
  html body.home:has(.master-home) .master-product-card h3 { font-size: 14px; }
  html body.home:has(.master-home) .master-product-card-actions { padding: 0 14px 14px; }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button { min-height: 40px; font-size: 11px; }
  html body.home:has(.master-home) .master-section-head { align-items: flex-start; flex-direction: column; gap: 11px; }
  html body.home:has(.master-home) .master-section-head h2 { font-size: 31px; }
  html body.home:has(.master-home) .master-docs-panel { width: calc(100% - 32px); padding: 20px 18px; }
  html body.home:has(.master-home) .master-docs-grid { grid-template-columns: 1fr; gap: 0; }
  html body.home:has(.master-home) .master-doc-item,
  html body.home:has(.master-home) .master-doc-item:first-child { min-height: 92px; padding: 17px 0; border: 0; border-top: 1px solid #d8e2f2; }
  html body.home:has(.master-home) .master-doc-item:first-child { border-top: 0; }
  html body.home:has(.master-home) .master-gallery-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  html body.home:has(.master-home) .master-gallery-item { height: 124px; }
  html body.home:has(.master-home) .master-video-slot { grid-template-columns: 1fr; }
  html body.home:has(.master-home) .master-library-layout { grid-template-columns: 1fr; }
  html body.home:has(.master-home) .master-library-grid .research-grid { grid-template-columns: 1fr; }
  html body.home:has(.master-home) .master-library-grid .research-card,
  html body.home:has(.master-home) .master-library-cta { height: auto; min-height: 169px; }
  html body.home:has(.master-home) .site-footer { min-height: 365px; }
  html body.home:has(.master-home) .site-footer .footer-grid { grid-template-columns: 1fr 1fr; gap: 22px 16px; }
  html body.home:has(.master-home) .site-footer .footer-grid > div:first-child { grid-column: 1 / -1; }
  html body.home:has(.master-home) .site-footer .footer-contact { display: flex; grid-column: 1 / -1; flex-direction: column; align-items: flex-start; gap: 6px; padding-top: 14px; }
  html body.home:has(.master-home) .site-footer .footer-contact h3 { margin-bottom: 2px; }
  html body.home:has(.master-home) .site-footer .footer-contact span,
  html body.home:has(.master-home) .site-footer .footer-contact a,
  html body.home:has(.master-home) .site-footer .footer-contact strong { display: block; max-width: 100%; font-size: 11px !important; line-height: 1.45; }
  html body.home:has(.master-home) .site-footer .site-research-notice { grid-template-columns: 1fr; height: 48px; padding: 6px 16px !important; text-align: center; }
  html body.home:has(.master-home) .site-footer .site-research-notice strong,
  html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy { grid-column: 1; }
  html body.home:has(.master-home) .site-footer .footer-bottom { height: 48px; padding: 0 16px !important; }
  html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child { font-size: 7px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html body.home:has(.master-home) *,
  html body.home:has(.master-home) *::before,
  html body.home:has(.master-home) *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* Final cascade bridge: the legacy landing stylesheet sets an important
   300px card floor. Keep its markup and links, but let the approved master
   surface control the compact resource geometry. */
html body.home:has(.master-home) .master-library-grid .research-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: 169px !important;
  height: auto !important;
}
html body.home:has(.master-home) .master-library-grid .research-card,
html body.home:has(.master-home) .master-library-grid .research-card-link {
  min-height: 0 !important;
  height: 169px !important;
}
html body.home:has(.master-home) .master-library-grid .research-card-link {
  display: block !important;
  grid-template-columns: none !important;
}
html body.home:has(.master-home) .master-library-grid .research-card-art {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
html body.home:has(.master-home) .master-library-grid .research-card-copy {
  display: flex !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 12px !important;
  flex-direction: column !important;
}
html body.home:has(.master-home) .master-library-grid .research-card-copy h3 {
  min-height: 31px !important;
  margin: 0 0 7px !important;
  color: var(--master-ink) !important;
  font: 800 11px/1.2 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-library-grid .research-card-copy > p {
  margin: 0 0 7px !important;
  color: #7a8ba5 !important;
  font: 800 7px/1.2 Manrope, Arial, sans-serif !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
html body.home:has(.master-home) .master-library-grid .research-card-copy > span {
  color: var(--master-muted) !important;
  font: 500 8px/1.45 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-library-grid .research-card-copy > b {
  margin-top: auto !important;
  color: var(--master-blue) !important;
  font: 800 8px/1.2 Manrope, Arial, sans-serif !important;
}

/* Keep the configured company contact row visible on the homepage. */
html body.home:has(.master-home) .site-footer .footer-contact {
  display: flex !important;
  grid-column: 1 / -1;
}
html body.home:has(.master-home) .site-footer .footer-grid {
  grid-template-columns: 1.55fr repeat(3, minmax(0, 1fr)) !important;
  grid-template-rows: auto !important;
  row-gap: 0 !important;
}
html body.home:has(.master-home) .site-footer .footer-grid > div:not(:first-child) {
  padding-top: 0 !important;
}
html body.home:has(.master-home) .site-footer .footer-bottom {
  position: absolute !important;
  bottom: 0 !important;
  height: 37px !important;
}
html body.home:has(.master-home) .site-footer .site-research-notice {
  height: 37px !important;
}

@media (min-width: 760px) {
  html body.home:has(.master-home) .site-footer .footer-grid > div:first-child {
    grid-column: auto !important;
  }
}

/* Approved master parity pass: keep the saved SEO copy in the source while
   rendering the selected editorial headline and subtitle as a visual layer. */
html body.home:has(.master-home) .master-home-seo-title,
html body.home:has(.master-home) .master-home-hero-subtitle {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
html body.home:has(.master-home) .master-home-visual-title {
  display: block;
  max-width: 430px;
  margin: 0 0 15px;
  color: #fff;
  font: 400 44px/1.02 Italiana, Georgia, serif;
  letter-spacing: -.035em;
}
html body.home:has(.master-home) .master-home-visual-title span { white-space: nowrap; }
html body.home:has(.master-home) .master-home-visual-title em { color: #79a9ff; font-style: normal; }
html body.home:has(.master-home) .master-home-visual-subtitle {
  display: block;
  max-width: 335px;
  margin: 0 0 21px;
  color: rgba(255,255,255,.82);
  font: 500 13px/1.55 Manrope, Arial, sans-serif;
}

/* The narrow reference still shows the full desktop navigation. Older shell
   rules hid the fourth and fifth links at 1180px; restore them only for the
   master home and tighten the controls enough to fit the 871px artboard. */
@media (min-width: 760px) and (max-width: 1180px) {
  html body.home:has(.master-home) .site-header .nav-wrap {
    width: calc(100% - 88px);
    gap: 14px;
  }
  html body.home:has(.master-home) .site-header .main-nav {
    gap: 11px !important;
    font-size: 10px !important;
  }
  html body.home:has(.master-home) .site-header .main-nav > a:nth-of-type(4),
  html body.home:has(.master-home) .site-header .main-nav > a:nth-of-type(5) {
    display: inline-flex !important;
  }
  html body.home:has(.master-home) .site-header .quote-link {
    min-height: 34px !important;
    padding: 0 10px !important;
    font-size: 9px !important;
  }
  html body.home:has(.master-home) .site-header .language-switcher select {
    min-width: 86px;
    width: 86px;
    font-size: 9px !important;
  }
}

/* Product records use the master two-tier card: a compact feature readout
   over the image, then the existing record fields and actions below. */
html body.home:has(.master-home) .master-product-card-media {
  display: block;
  background: #fff;
}
html body.home:has(.master-home) .master-product-card-media img {
  position: absolute;
  right: -4%;
  bottom: 0;
  z-index: 0;
  width: 67%;
  height: 100%;
  object-fit: contain;
  filter: none;
}
html body.home:has(.master-home) .master-product-card-feature-copy {
  position: absolute;
  right: auto;
  bottom: 13px;
  left: 10px;
  z-index: 2;
  width: 55%;
  min-width: 0;
}
html body.home:has(.master-home) .master-product-card-feature-sku {
  margin: 0 0 6px;
  overflow: hidden;
  color: var(--master-blue);
  font: 800 6px/1.15 Manrope, Arial, sans-serif;
  letter-spacing: .025em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
html body.home:has(.master-home) .master-product-card-feature-title {
  display: -webkit-box;
  max-width: 100%;
  margin: 0 0 6px;
  overflow: hidden;
  color: var(--master-ink);
  font: 800 9px/1.12 Manrope, Arial, sans-serif;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
html body.home:has(.master-home) .master-product-card-feature-purity {
  margin: 0 0 3px;
  overflow: hidden;
  color: var(--master-blue);
  font: 800 7px/1.15 Manrope, Arial, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html body.home:has(.master-home) .master-product-card-feature-copy > span {
  display: block;
  overflow: hidden;
  color: #5f6f86;
  font: 600 5.5px/1.15 Manrope, Arial, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html body.home:has(.master-home) .master-product-card-body { padding-top: 9px; }
html body.home:has(.master-home) .master-product-card-body .master-product-card-type {
  margin-bottom: 5px;
  color: #7889a3;
  font-size: 6px;
}
html body.home:has(.master-home) .master-product-card-body h3 {
  min-height: 14px;
  margin-bottom: 4px;
  font-size: 10px;
  line-height: 1.18;
}
html body.home:has(.master-home) .master-product-card-body .master-product-card-sku {
  margin: 0 0 6px;
  color: #8090a7;
  font-size: 5.5px;
}

/* The support panel in the master is a deliberate visual band, not a short
   one-line strip. Reserve its height so the following gallery does not jump. */
html body.home:has(.master-home) .master-docs-panel {
  min-height: 237px;
  box-sizing: border-box;
  padding-top: 21px;
  padding-bottom: 24px;
}
html body.home:has(.master-home) .master-docs-panel header { margin-bottom: 21px; }
html body.home:has(.master-home) .master-doc-item p { min-height: 53px; }

/* Keep the fallback media order aligned with the supplied master. */
html body.home:has(.master-home) .master-gallery-item img { object-position: center center; }

/* Prevent the shell's 100vh floor from painting a stray beige tail below the
   legal strip while preserving the existing footer data in the DOM. */
html body.home:has(.master-home) .site-shell { min-height: 0; background: #fff; }
html body.home:has(.master-home) .site-footer { background: #fff !important; }

/* Use the native details control as the single browse-all action. The full
   catalog remains server-rendered and expandable; only the duplicate link is
   removed from the initial visual rhythm. */
html body.home:has(.master-home) .master-catalog-cta { display: none !important; }
html body.home:has(.master-home) .master-catalog-section { padding-bottom: 24px; }

/* Keep the legacy long-form chapter in the DOM and available when opened, but
   collapse its closed affordance so it does not create a second homepage band. */
html body.home:has(.master-home) .master-legacy-information:not([open]) {
  height: 0 !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
}
html body.home:has(.master-home) .master-legacy-information:not([open]) > summary {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
html body.home:has(.master-home) .master-legacy-information[open] {
  height: auto !important;
  margin-bottom: 20px !important;
  overflow: visible !important;
}

@media (max-width: 759px) {
  html body.home:has(.master-home) .master-library-grid .research-grid {
    grid-template-columns: 1fr !important;
    grid-auto-rows: auto !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card,
  html body.home:has(.master-home) .master-library-grid .research-card-link {
    height: auto !important;
    min-height: 190px !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy {
    height: auto !important;
    min-height: 188px !important;
  }
}

/* Master parity pass 2 ----------------------------------------------------
 * These are presentation-only corrections derived from the approved
 * 871px reference. They do not touch product records or SEO metadata. */
html body.home:has(.master-home) {
  --master-navy: #000820;
  --master-notice: #0043d9;
  background: #fefefe !important;
}
html body.home:has(.master-home) .master-catalog-section,
html body.home:has(.master-home) .master-docs-section,
html body.home:has(.master-home) .master-gallery-section,
html body.home:has(.master-home) .master-library-section,
html body.home:has(.master-home) .site-shell,
html body.home:has(.master-home) .site-footer { background: #fefefe !important; }

html body.home:has(.master-home) .master-home-hero-copy { margin-top: 4px; }
html body.home:has(.master-home) .master-home-hero-media img {
  filter: brightness(.46) saturate(.72) contrast(1.08);
}

/* Final footer geometry: keep the configured contact row above the two legal
   bars, and paint both bars with one continuous navy surface. */
@media (min-width: 760px) {
  html body.home:has(.master-home) .site-footer {
    min-height: 320px !important;
    padding-bottom: 104px !important;
  }
}
html body.home:has(.master-home) .site-footer .footer-contact {
  display: flex !important;
  grid-column: 1 / -1 !important;
}
html body.home:has(.master-home) .site-footer .site-research-notice,
html body.home:has(.master-home) .site-footer .footer-bottom {
  background: var(--master-navy) !important;
}
html body.home:has(.master-home) .site-footer .site-research-notice {
  bottom: 48px !important;
  height: 48px !important;
  min-height: 48px !important;
}
html body.home:has(.master-home) .site-footer .footer-bottom {
  bottom: 0 !important;
  height: 48px !important;
  min-height: 48px !important;
}
@media (max-width: 759px) {
  html body.home:has(.master-home) .site-footer {
    min-height: 440px !important;
    padding-bottom: 122px !important;
  }
}
html body.home:has(.master-home) .master-home-hero-overlay {
  background: linear-gradient(90deg, rgba(1,16,42,.97) 0%, rgba(1,16,42,.86) 36%, rgba(1,16,42,.52) 67%, rgba(1,16,42,.58) 100%);
}

/* The artboard keeps the full navigation visible: the target uses a wider
   inner rail, smaller controls and a larger link rhythm at 871px. */
@media (min-width: 760px) and (max-width: 1180px) {
  html body.home:has(.master-home) .master-width { width: calc(100% - 108px); }
  html body.home:has(.master-home) .site-header .nav-wrap {
    width: calc(100% - 48px);
    gap: 14px;
  }
  html body.home:has(.master-home) .site-header .brand { margin-left: 18px; }
  html body.home:has(.master-home) .site-header .main-nav {
    gap: 18px !important;
    font-size: 11px !important;
  }
  html body.home:has(.master-home) .site-header .quote-link {
    width: 93px !important;
    min-width: 93px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 9px !important;
    font-size: 9px !important;
  }
  html body.home:has(.master-home) .site-header .quote-count {
    min-width: 17px;
    width: 17px;
    height: 17px;
  }
  html body.home:has(.master-home) .site-header .language-switcher {
    width: 87px !important;
    min-width: 87px !important;
    height: 32px !important;
    padding: 0 7px !important;
  }
  html body.home:has(.master-home) .site-header .language-switcher select {
    min-width: 54px;
    width: 54px;
    font-size: 9px !important;
  }
  html body.home:has(.master-home) .master-docs-panel {
    width: calc(100% - 38px);
  }
}

/* Place the feature readout in the upper-left of each card and let the real
   bottle artwork sit on the right, as in the approved master. */
html body.home:has(.master-home) .master-product-card-media img {
  right: -7%;
  bottom: 0;
  width: 70%;
  height: 100%;
  object-fit: contain;
}
html body.home:has(.master-home) .master-product-card-feature-copy {
  top: 29px;
  right: auto;
  bottom: auto;
  left: 10px;
  width: 58%;
}
html body.home:has(.master-home) .master-product-card-feature-sku {
  margin-bottom: 6px;
  font-size: 5.5px;
}
html body.home:has(.master-home) .master-product-card-feature-title {
  font-size: 8.5px;
  line-height: 1.14;
}
html body.home:has(.master-home) .master-product-card-feature-purity { font-size: 7px; }

/* Keep the expand-all behavior while presenting the single centered master
   action. The record count stays in the DOM for accessibility and source
   parity, but is not part of the visual button label. */
html body.home:has(.master-home) .master-catalog-section { padding-bottom: 19px; }
html body.home:has(.master-home) .master-catalog-expander { margin-top: 15px; }
html body.home:has(.master-home) .master-catalog-expander > summary {
  gap: 5px;
  min-height: 29px;
  padding-inline: 15px;
}
html body.home:has(.master-home) .master-catalog-expander-label { display: inline; }
html body.home:has(.master-home) .master-catalog-expander-count {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* The control must communicate its state: plus when collapsed, rotated plus
   (close mark) when the catalogue is open. The arrow asset is retained in the
   markup for source parity but is not used as the state indicator. */
html body.home:has(.master-home) .master-expander-plus {
  display: inline-flex !important;
  transition: transform .18s ease !important;
}
html body.home:has(.master-home) .master-expander-arrow { display: none !important; }
html body.home:has(.master-home) .master-catalog-expander[open] .master-expander-plus {
  transform: rotate(45deg) !important;
}

/* The target's compact section heads are tighter, with the recovered space
   intentionally returned below the media/cards so the footer baseline stays
   unchanged. */
html body.home:has(.master-home) .master-gallery-section,
html body.home:has(.master-home) .master-library-section { padding-bottom: 42px; }
html body.home:has(.master-home) .master-gallery-section .master-section-head.compact,
html body.home:has(.master-home) .master-library-section .master-section-head.compact {
  margin-bottom: 7px;
}
html body.home:has(.master-home) .master-gallery-section .master-section-head.compact h2,
html body.home:has(.master-home) .master-library-section .master-section-head.compact h2 {
  margin-bottom: 4px;
  font-size: 23px;
  line-height: 1;
}

/* Let each documentation item use the full band height and anchor its link
   to the same baseline as the reference. */
html body.home:has(.master-home) .master-doc-item > div {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}
html body.home:has(.master-home) .master-doc-item > div > p { flex: 0 0 auto; }
html body.home:has(.master-home) .master-doc-item > div > a { margin-top: auto; }

@media (max-width: 759px) {
  html body.home:has(.master-home) .master-product-card-feature-copy {
    top: 27px;
    bottom: auto;
    width: 58%;
  }
  html body.home:has(.master-home) .master-gallery-section,
  html body.home:has(.master-home) .master-library-section { padding-bottom: 21px; }
  html body.home:has(.master-home) .master-gallery-section .master-section-head.compact,
  html body.home:has(.master-home) .master-library-section .master-section-head.compact {
    margin-bottom: 12px;
  }
  html body.home:has(.master-home) .master-gallery-section .master-section-head.compact h2,
  html body.home:has(.master-home) .master-library-section .master-section-head.compact h2 {
    font-size: 31px;
    line-height: 1.04;
  }
}

/* Homepage card media reuses the product's WordPress Featured Image, so the
   same one-time backend upload serves both the detail page and this preview. */
html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) {
  background: #fff;
}
html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-copy {
  display: none;
}
html body.home:has(.master-home) .master-product-card-art-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  filter: none !important;
}

/* The approved homepage composition is a compact readout on the left with
   the full product vial on the right. Keep the full portrait treatment on
   mobile, where the cards become single-column. */
@media (min-width: 761px) {
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-copy {
    display: block;
    top: 25px;
    right: auto;
    bottom: auto;
    left: 12px;
    width: 47%;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-sku {
    display: inline-flex;
    width: fit-content;
    min-height: 12px;
    align-items: center;
    margin: 0 0 7px;
    padding: 0 5px;
    border-radius: 2px;
    background: var(--master-blue);
    color: #fff;
    font-size: clamp(7.5px, .48vw, 8.5px);
    letter-spacing: .035em;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-title {
    margin-bottom: 6px;
    font-size: clamp(11px, .72vw, 12px);
    line-height: 1.18;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-purity {
    font-size: clamp(9px, .6vw, 10px);
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-copy > span {
    display: none;
  }
  html body.home:has(.master-home) .master-product-card-art-image {
    inset: auto;
    right: -16%;
    bottom: -2%;
    width: 78% !important;
    height: 92% !important;
    object-position: center bottom !important;
  }
}

/* Master parity pass 3 ----------------------------------------------------
 * The shared shell has several later, !important rules from the legacy
 * landing experiments.  Lock the approved master geometry back to this
 * homepage only; all values here are presentation-only. */
@media (min-width: 760px) {
  html body.home:has(.master-home) > .notice,
  html body.home:has(.master-home) .site-shell > .notice {
    height: 35px !important;
    min-height: 35px !important;
    box-sizing: border-box !important;
  }
}

@media (min-width: 760px) and (max-width: 1180px) {
  html body.home:has(.master-home) .master-width,
  html body.home:has(.master-home) .master-legacy-information {
    width: calc(100% - 113px) !important;
  }
  html body.home:has(.master-home) .master-docs-panel {
    width: calc(100% - 43px) !important;
  }
  html body.home:has(.master-home) .site-header .nav-wrap {
    width: calc(100% - 48px) !important;
  }
  html body.home:has(.master-home) .site-header .brand {
    margin-left: 18px !important;
  }
}

/* Keep one real H1 and one real subtitle in the source while using a
   presentation-only editorial line for the supplied master composition. */
html body.home:has(.master-home) .master-home-seo-title,
html body.home:has(.master-home) .master-home-hero-subtitle > .master-home-seo-copy {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
html body.home:has(.master-home) .master-home-visual-title {
  position: static !important;
  display: block !important;
  width: auto !important;
  max-width: 430px !important;
  height: auto !important;
  margin: 0 !important;
  color: #fff !important;
  font: 400 44px/1.02 Italiana, Georgia, serif !important;
  letter-spacing: -.035em !important;
  white-space: normal !important;
}
html body.home:has(.master-home) .master-home-visual-title > span {
  display: inline !important;
  white-space: nowrap !important;
}
html body.home:has(.master-home) .master-home-visual-title em {
  color: #79a9ff !important;
  font-style: normal !important;
}
html body.home:has(.master-home) .master-home-hero-subtitle {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 0 21px !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
  border: 0 !important;
  color: rgba(255,255,255,.82) !important;
  font: 500 13px/1.55 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-home-hero-subtitle > .master-home-visual-subtitle {
  display: block !important;
  width: auto !important;
  max-width: 335px !important;
  height: auto !important;
  margin: 0 !important;
  color: inherit !important;
  font: inherit !important;
}

/* The third preview has a real bottle photo but no matching blue reference
   card. Add a neutral, data-free label shell behind the existing record copy;
   this never substitutes a different product image or alters the record. */
html body.home:has(.master-home) .master-product-card-media:not(:has(.master-product-card-art-image))::before {
  position: absolute;
  top: 21px;
  left: 10px;
  z-index: 0;
  width: 56%;
  height: 92px;
  border: 1px solid #e3eaf5;
  border-radius: 2px;
  background: #fbfdff;
  box-shadow: 0 4px 10px rgba(22,53,101,.08);
  content: '';
  pointer-events: none;
}
html body.home:has(.master-home) .master-product-card-media:not(:has(.master-product-card-art-image))::after {
  position: absolute;
  top: 21px;
  left: 10px;
  z-index: 1;
  width: 56%;
  height: 14px;
  border-radius: 2px 2px 0 0;
  background: #1b4eac;
  color: #fff;
  content: 'RESEARCH MATERIAL';
  font: 800 5px/14px Manrope, Arial, sans-serif;
  letter-spacing: .06em;
  text-align: center;
  pointer-events: none;
}
html body.home:has(.master-home) .master-product-card-media:not(:has(.master-product-card-art-image)) > img {
  z-index: 2;
  filter: hue-rotate(-27deg) saturate(1.08);
}
html body.home:has(.master-home) .master-product-card-media:not(:has(.master-product-card-art-image)) .master-product-card-feature-copy {
  top: 42px;
  z-index: 3;
  width: 54%;
}

/* Match the measured 871px section rhythm: the gallery ends closer to the
   library heading, while the library cards retain the master 169px height. */
@media (min-width: 760px) {
  /* Keep the source image across the complete Hero canvas. The overlay, not a
      cropped media box, creates the quieter left-side reading area. */
  html body.home:has(.master-home) .master-home-hero-media {
    /* The approved composition uses an image panel on the right rather than
       stretching a low-resolution fallback across the whole browser width. */
    inset: 0 0 0 43% !important;
  }
  html body.home:has(.master-home) .master-home-hero-media img {
    filter: brightness(.9) saturate(.84) contrast(1.05) !important;
  }
  html body.home:has(.master-home) .master-home-hero-overlay {
    background: linear-gradient(90deg, rgba(1,16,42,.98) 0%, rgba(1,16,42,.93) 37%, rgba(1,16,42,.54) 63%, rgba(1,16,42,.31) 100%) !important;
  }
  html body.home:has(.master-home) .master-gallery-section { padding-bottom: 24px !important; }
  html body.home:has(.master-home) .master-library-section { padding-bottom: 21px !important; }
  html body.home:has(.master-home) .master-library-section .master-section-head { margin-bottom: 16px !important; }
  html body.home:has(.master-home) .site-footer .footer-bottom {
    box-sizing: border-box !important;
    min-height: 37px !important;
    height: 37px !important;
    padding-block: 0 !important;
    border-top: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    clip-path: none !important;
  }
}

/* Keep the desktop rail continuous across browser zoom and window widths. At
 * 871px it remains the measured 758px master width; on larger screens it
 * stops growing before the five-column catalog feels horizontally stretched. */
@media (min-width: 760px) {
  html body.home:has(.master-home) .master-width,
  html body.home:has(.master-home) .master-legacy-information {
    width: min(1180px, calc(100% - 113px)) !important;
  }
  html body.home:has(.master-home) .master-docs-panel {
    width: min(1288px, calc(100% - 43px)) !important;
  }
}

/* Wide-desktop proportional pass -----------------------------------------
 * The approved artboard is 871px wide.  Above that reference width, grow the
 * visual blocks only until a readable desktop cap, so a 1440–1920px browser
 * does not turn the full-bleed Hero into a shallow strip around a tiny grid.
 * This is presentation-only: the live records, links, H1 and metadata stay
 * exactly as rendered by WordPress. */
@media (min-width: 1181px) {
  html body.home:has(.master-home) .master-home-hero {
    height: clamp(353px, 24vw, 460px) !important;
    min-height: clamp(353px, 24vw, 460px) !important;
  }
  html body.home:has(.master-home) .master-home-hero-copy,
  html body.home:has(.master-home) .master-home-seo-title {
    max-width: 580px !important;
  }
  html body.home:has(.master-home) .master-home-seo-title {
    font: 400 clamp(44px, 3.02vw, 58px)/1.02 Italiana, Georgia, serif !important;
  }
  html body.home:has(.master-home) .master-home-hero-subtitle > .master-home-seo-copy {
    max-width: 430px !important;
    font-size: clamp(13px, .84vw, 16px) !important;
  }
  html body.home:has(.master-home) .master-actions .button {
    min-height: clamp(39px, 2.35vw, 45px) !important;
    padding-inline: clamp(19px, 1.35vw, 26px) !important;
    font-size: clamp(11px, .68vw, 13px) !important;
  }
  html body.home:has(.master-home) .master-section-head h2 {
    font-size: clamp(25px, 1.7vw, 33px) !important;
  }
  html body.home:has(.master-home) .master-section-intro {
    max-width: 560px;
    font-size: clamp(11px, .72vw, 13px) !important;
  }
  html body.home:has(.master-home) .master-product-card {
    height: clamp(286px, 19vw, 352px) !important;
  }
  html body.home:has(.master-home) .master-product-card-media {
    height: clamp(156px, 11vw, 205px) !important;
    min-height: clamp(156px, 11vw, 205px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body h3 {
    font-size: clamp(10px, .65vw, 12px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: clamp(6px, .39vw, 7.25px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd,
  html body.home:has(.master-home) .master-product-card-actions a,
html body.home:has(.master-home) .master-product-card-actions button {
    font-size: clamp(7px, .46vw, 8.75px) !important;
  }
  html body.home:has(.master-home) .master-docs-panel {
    min-height: clamp(237px, 14vw, 270px) !important;
  }
  html body.home:has(.master-home) .master-docs-panel h2 {
    font-size: clamp(21px, 1.45vw, 28px) !important;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    font-size: clamp(10px, .68vw, 12px) !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    font-size: clamp(9px, .58vw, 11px) !important;
  }
  html body.home:has(.master-home) .master-gallery-item {
    height: clamp(130px, 10vw, 180px) !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card,
  html body.home:has(.master-home) .master-library-grid .research-card-link,
  html body.home:has(.master-home) .master-library-cta {
    height: clamp(169px, 12vw, 210px) !important;
  }
}

/* A five-card rail becomes too narrow for real product data below 1181px.
   Keep compact desktop readable with four columns; wide desktop retains five. */
@media (min-width: 760px) and (max-width: 1180px) {
  html body.home:has(.master-home) .master-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Data-preserving parity corrections -------------------------------------
 * The approved composition is retained, but live translations and legal copy
 * must remain readable and semantically connected to their visual treatment. */
html body.home:has(.master-home) .master-home-seo-title {
  position: static !important;
  display: block !important;
  width: auto !important;
  max-width: 430px !important;
  height: auto !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
  border: 0 !important;
  color: #fff !important;
  font: 400 clamp(34px, 5vw, 44px)/1.02 Italiana, Georgia, serif !important;
  letter-spacing: -.035em !important;
}
html body.home:has(.master-home) .master-home-seo-title .master-home-seo-copy,
html body.home:has(.master-home) .master-home-seo-title .master-home-seo-copy > span,
html body.home:has(.master-home) .master-home-seo-title .master-home-seo-copy > em {
  white-space: normal !important;
}
html body.home:has(.master-home) .master-home-seo-title em { color: #79a9ff !important; font-style: normal !important; }
html body.home:has(.master-home) .master-home-visual-title,
html body.home:has(.master-home) .master-home-visual-subtitle { display: none !important; }
html body.home:has(.master-home) .master-home-hero-subtitle > .master-home-visual-subtitle { display: none !important; }
html body.home:has(.master-home) .master-home-hero-subtitle > .master-home-seo-copy {
  position: static !important;
  display: -webkit-box !important;
  width: auto !important;
  max-width: 335px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
  border: 0 !important;
}

/* The 871px master uses a short English navigation. Preserve every translated
 * link, but tighten only the compact desktop rail so long labels stay distinct. */
@media (min-width: 760px) and (max-width: 940px) {
  html body.home:has(.master-home) .site-header .nav-wrap { gap: 10px !important; }
  html body.home:has(.master-home) .site-header .brand { gap: 7px !important; margin-left: 0 !important; }
  html body.home:has(.master-home) .site-header .brand-mark { width: 31px !important; height: 31px !important; }
  html body.home:has(.master-home) .site-header .brand-name { font-size: 14px !important; }
  html body.home:has(.master-home) .site-header .nav-wrap .main-nav { gap: 14px !important; font-size: 9px !important; }
  html body.home:has(.master-home) .site-header .nav-wrap .main-nav > a { font-size: inherit !important; }
  html body.home:has(.master-home) .site-header .quote-link { width: auto !important; min-width: 86px !important; padding-inline: 8px !important; }
  html body.home:has(.master-home) .site-header .language-switcher { width: 78px !important; min-width: 78px !important; }
  html body.home:has(.master-home) .site-header .language-switcher select { width: 47px !important; min-width: 47px !important; }
}

/* Preserve the actual SS-31 10mg record rather than substituting the 25mg
 * reference art.  Its original thumbnail gets the same label/bottle balance. */
html body.home:has(.master-home) .master-product-card-media:not(:has(.master-product-card-art-image)) > img {
  position: absolute !important;
  right: -7% !important;
  bottom: -4% !important;
  width: 68% !important;
  height: 112% !important;
  object-fit: contain !important;
}
html body.home:has(.master-home) .master-product-card-media:not(:has(.master-product-card-art-image)) .master-product-card-feature-copy {
  top: 40px !important;
  left: 12px !important;
  width: 53% !important;
}

/* The real legal notice is longer than the source mock. Keep the 37px desktop
 * strip where it fits, and give mobile a separate readable copyright row. */
@media (min-width: 760px) and (max-width: 1180px) {
  html body.home:has(.master-home) .site-footer .site-research-notice {
    grid-template-columns: 115px minmax(0, 1fr) 80px !important;
    padding-inline: 28px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy {
    min-width: 0;
    font-size: 7px !important;
    line-height: 1.28 !important;
  }
  html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child { white-space: nowrap; }
}
@media (max-width: 759px) {
  html body.home:has(.master-home) .site-footer { padding-bottom: 91px !important; }
  html body.home:has(.master-home) .site-footer .site-research-notice {
    bottom: 37px !important;
    display: grid !important;
    min-height: 54px !important;
    height: 54px !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 2px;
    padding: 6px 16px !important;
    text-align: center;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy {
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 7px !important;
    line-height: 1.25 !important;
  }
  html body.home:has(.master-home) .site-footer .footer-bottom {
    bottom: 0 !important;
    display: flex !important;
    min-height: 37px !important;
    height: 37px !important;
    justify-content: center !important;
    padding: 0 16px !important;
    background: var(--master-navy) !important;
    text-align: center;
  }
  html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child { font-size: 7px !important; }
}

/* Final wide-desktop geometry.  This is deliberately last because the live
 * H1/subtitle semantics are restored by the data-preserving rules above. */
@media (min-width: 1181px) {
  html body.home:has(.master-home) .site-header .nav-wrap {
    width: min(1180px, calc(100% - 113px)) !important;
  }
  html body.home:has(.master-home) .master-home-hero-copy {
    width: min(100%, 580px) !important;
  }
  html body.home:has(.master-home) .master-home-seo-title {
    max-width: 580px !important;
    font: 400 clamp(44px, calc(1.94vw + 21px), 58px)/1.02 Italiana, Georgia, serif !important;
  }
  html body.home:has(.master-home) .master-home-hero-subtitle > .master-home-seo-copy {
    max-width: 430px !important;
    font-size: clamp(13px, calc(.42vw + 8px), 16px) !important;
  }
  html body.home:has(.master-home) .master-actions .button {
    min-height: clamp(39px, calc(.83vw + 29px), 45px) !important;
    padding-inline: clamp(19px, calc(.97vw + 8px), 26px) !important;
    font-size: clamp(11px, calc(.28vw + 8px), 13px) !important;
  }
  html body.home:has(.master-home) .master-section-head h2 {
    font-size: clamp(25px, calc(1.11vw + 12px), 33px) !important;
  }
  html body.home:has(.master-home) .master-section-intro {
    max-width: 560px;
    font-size: clamp(11px, calc(.28vw + 8px), 13px) !important;
  }
  html body.home:has(.master-home) .master-product-card {
    height: clamp(286px, calc(9.13vw + 178px), 352px) !important;
  }
  html body.home:has(.master-home) .master-product-card-media {
    height: clamp(156px, calc(6.78vw + 76px), 205px) !important;
    min-height: clamp(156px, calc(6.78vw + 76px), 205px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body h3 {
    font-size: clamp(10px, calc(.28vw + 7px), 12px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: clamp(6px, calc(.17vw + 4px), 7.25px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd,
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    font-size: clamp(7px, calc(.24vw + 4px), 8.75px) !important;
  }
  html body.home:has(.master-home) .master-docs-panel {
    min-height: clamp(237px, calc(4.56vw + 183px), 270px) !important;
  }
  html body.home:has(.master-home) .master-docs-panel h2 {
    font-size: clamp(21px, calc(.97vw + 10px), 28px) !important;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    font-size: clamp(10px, calc(.28vw + 7px), 12px) !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    font-size: clamp(9px, calc(.28vw + 6px), 11px) !important;
  }
  html body.home:has(.master-home) .master-gallery-item {
    height: clamp(130px, calc(6.92vw + 48px), 180px) !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card,
  html body.home:has(.master-home) .master-library-grid .research-card-link,
  html body.home:has(.master-home) .master-library-cta {
    height: clamp(169px, calc(5.67vw + 102px), 210px) !important;
  }
}

/* Type-fidelity and readable-metadata pass.  The approved visual system uses
 * Italiana for display and Manrope for interface text.  Load only the weights
 * we actually use and avoid browser-synthesised 800-weight glyphs, which made
 * the local render look unlike the approved master at small sizes. */
html body.home:has(.master-home) {
  font-synthesis: none;
  font-kerning: normal;
}

html body.home:has(.master-home) .master-kicker,
html body.home:has(.master-home) .master-actions .button,
html body.home:has(.master-home) .master-home-hero-boundary,
html body.home:has(.master-home) .master-inline-link,
html body.home:has(.master-home) .master-product-card-index,
html body.home:has(.master-home) .master-product-card-ruo,
html body.home:has(.master-home) .master-product-card-sku,
html body.home:has(.master-home) .master-product-card h3,
html body.home:has(.master-home) .master-product-card-body dt,
html body.home:has(.master-home) .master-product-card-actions a,
html body.home:has(.master-home) .master-product-card-actions button,
html body.home:has(.master-home) .master-doc-item strong,
html body.home:has(.master-home) .master-doc-item a,
html body.home:has(.master-home) .master-library-grid .research-card-copy > p,
html body.home:has(.master-home) .master-library-grid .research-card-copy h3,
html body.home:has(.master-home) .master-library-grid .research-card-copy > b,
html body.home:has(.master-home) .master-library-cta h3,
html body.home:has(.master-home) .master-library-cta .button-primary,
html body.home:has(.master-home) .site-footer h3,
html body.home:has(.master-home) .site-footer .site-research-notice strong {
  font-weight: 700 !important;
}

/* Product-record labels must remain readable on the white card surface.
 * The former blue-grays measured only 3.25–3.56:1 on white at the small
 * reference sizes; this preserves the palette while restoring normal-text
 * contrast (5.95:1) for the actual live fields. */
html body.home:has(.master-home) .master-product-card-sku,
html body.home:has(.master-home) .master-product-card-type,
html body.home:has(.master-home) .master-product-card-body dt {
  color: #52657f !important;
}

@media (min-width: 760px) {
  /* Keep the five-column geometry, but give product records an actual
     readable metadata scale rather than 5.5–7px synthetic-bold text. */
  html body.home:has(.master-home) .master-product-card-sku {
    margin-bottom: 4px;
    font-size: 8.5px !important;
    line-height: 1.3 !important;
    letter-spacing: .025em !important;
  }
  html body.home:has(.master-home) .master-product-card h3 {
    font-size: 13px !important;
    line-height: 1.2 !important;
  }
  html body.home:has(.master-home) .master-product-card-type {
    margin-bottom: 5px;
    font-size: 8.5px !important;
    line-height: 1.25 !important;
  }
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 8.5px !important;
    line-height: 1.2 !important;
    letter-spacing: .03em !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd {
    font-size: 10px !important;
    line-height: 1.25 !important;
  }
  html body.home:has(.master-home) .master-product-card-actions {
    gap: 4px;
  }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    min-height: 32px;
    font-size: 10px !important;
    line-height: 1.2 !important;
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  /* The master’s support band reads vertically.  This restores its wider
     text measure without changing the current trust-item records or links. */
  html body.home:has(.master-home) .master-docs-panel h2 {
    font-size: 23px !important;
    line-height: 1.07 !important;
  }
  html body.home:has(.master-home) .master-doc-item {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  html body.home:has(.master-home) .master-doc-item > div {
    min-height: 0 !important;
    flex: 1 1 auto;
    width: 100%;
  }
  html body.home:has(.master-home) .master-doc-icon {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
    align-self: flex-start;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    margin-bottom: 7px;
    font-size: 10.5px !important;
    line-height: 1.25 !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    min-height: 42px;
    margin-bottom: 8px;
    font-size: 9.5px !important;
    line-height: 1.45 !important;
  }
  html body.home:has(.master-home) .master-doc-item a {
    font-size: 9px !important;
    line-height: 1.25 !important;
  }
  html body.home:has(.master-home) .site-footer .footer-custom-copy,
  html body.home:has(.master-home) .site-footer p,
  html body.home:has(.master-home) .site-footer a {
    font-size: 9.5px !important;
    line-height: 1.5 !important;
  }
}

@media (min-width: 1181px) {
  html body.home:has(.master-home) .master-product-card h3 {
    font-size: clamp(11px, calc(.30vw + 7px), 13px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: clamp(7px, calc(.12vw + 5.25px), 7.5px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd,
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    font-size: clamp(7.75px, calc(.20vw + 4.75px), 8.75px) !important;
  }
  html body.home:has(.master-home) .master-docs-panel h2 {
    font-size: clamp(23px, calc(.66vw + 13px), 26px) !important;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    font-size: clamp(10.5px, calc(.24vw + 7px), 11.75px) !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    font-size: clamp(9.5px, calc(.20vw + 6.75px), 10.75px) !important;
  }
  html body.home:has(.master-home) .master-doc-item a {
    font-size: clamp(9px, calc(.14vw + 7px), 10px) !important;
  }
}

@media (max-width: 759px) {
  html body.home:has(.master-home) .master-product-card-sku {
    font-size: 9px !important;
    line-height: 1.3 !important;
  }
  html body.home:has(.master-home) .master-product-card h3 {
    min-height: 0;
    font-size: 14px !important;
    line-height: 1.25 !important;
  }
  html body.home:has(.master-home) .master-product-card-type,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 9px !important;
    line-height: 1.25 !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd {
    font-size: 10.5px !important;
    line-height: 1.3 !important;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    font-size: 12px !important;
    line-height: 1.5 !important;
  }
  html body.home:has(.master-home) .master-doc-item a {
    font-size: 11px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy,
  html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child {
    font-size: 8px !important;
    line-height: 1.35 !important;
  }
  html body.home:has(.master-home) .site-footer {
    padding-bottom: 111px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice {
    bottom: 37px !important;
    height: auto !important;
    min-height: 66px !important;
    padding: 8px 16px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy {
    display: block !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
  }
}

/* The approved compact desktop header was composed with short English labels.
 * Keep that precise rail for English, while allowing translated navigation to
 * remain readable instead of being compressed into 9px labels at 871px. */
@media (min-width: 760px) and (max-width: 940px) {
  html[lang^="en"] body.home:has(.master-home) .site-header .brand {
    margin-left: 18px !important;
  }
  html[lang^="en"] body.home:has(.master-home) .site-header .main-nav {
    gap: 18px !important;
    font-size: 11px !important;
  }
  html[lang^="en"] body.home:has(.master-home) .site-header .main-nav > a {
    font-family: Manrope, Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
  }
  html[lang^="en"] body.home:has(.master-home) .site-header .quote-link,
  html[lang^="en"] body.home:has(.master-home) .site-header .language-switcher select {
    font-size: 10px !important;
  }

  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .nav-wrap {
    position: relative;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .brand {
    margin-left: 18px !important;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle {
    display: inline-flex !important;
    min-width: 44px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 3px;
    background: transparent;
    color: #fff;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle > span {
    display: none;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i,
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i::before,
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i::after {
    display: block;
    width: 15px;
    height: 1px;
    background: #fff;
    content: '';
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i {
    position: relative;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i::before,
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i::after {
    position: absolute;
    left: 0;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i::before { top: -5px; }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .mobile-nav-toggle i::after { top: 5px; }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .main-nav {
    position: absolute;
    top: 66px;
    right: 0;
    left: auto;
    z-index: 30;
    display: none !important;
    width: min(348px, calc(100vw - 48px));
    height: auto !important;
    min-height: 0 !important;
    margin-left: 0 !important;
    gap: 2px;
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
    grid-auto-rows: minmax(40px, auto) !important;
    padding: 9px;
    border: 1px solid rgba(255,255,255,.20);
    background: var(--master-navy);
    overflow: visible !important;
  }
  html.site-menu-open[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .main-nav {
    display: grid !important;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .main-nav > a {
    display: flex !important;
    width: 100% !important;
    min-height: 40px;
    padding: 0 10px;
    font-family: Manrope, Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .quote-link,
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .language-switcher {
    display: flex !important;
    min-height: 40px !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    justify-self: stretch !important;
    justify-content: space-between;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .language-switcher-label {
    display: inline !important;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .quote-link,
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .language-switcher select {
    font-size: 10px !important;
  }
  html[lang]:not([lang^="en"]) body.home:has(.master-home) .site-header .language-switcher select {
    width: auto !important;
    min-width: 0 !important;
    height: 34px;
    flex: 1 1 auto;
    padding-left: 8px;
  }
}

/* Readability calibration for true desktop widths.  The approved artboard is
 * compact (871px), so simply capping the rail at 1180px made its 7–10px record
 * type look one visual step smaller on a normal 1440–1920px browser.  Keep the
 * same Italiana + Manrope roles and the same live strings; only let type and
 * supporting card height grow with the desktop canvas. */
@media (min-width: 1181px) {
  html body.home:has(.master-home) > .notice,
  html body.home:has(.master-home) .site-shell > .notice {
    font-size: clamp(9px, .52vw, 11px) !important;
  }
  html body.home:has(.master-home) .notice-more {
    font-size: clamp(8px, .46vw, 10px) !important;
  }

  html body.home:has(.master-home) .site-header .brand-name {
    font-size: clamp(16px, .9vw, 18px) !important;
  }
  html body.home:has(.master-home) .site-header .main-nav,
  html body.home:has(.master-home) .site-header .main-nav > a {
    font-family: Manrope, Arial, sans-serif !important;
    font-size: clamp(11px, .66vw, 12.5px) !important;
    font-weight: 700 !important;
  }
  html body.home:has(.master-home) .site-header .quote-link {
    font-size: clamp(10px, .6vw, 12px) !important;
    font-weight: 700 !important;
  }
  html body.home:has(.master-home) .site-header .language-switcher select {
    font-size: clamp(10px, .55vw, 11.5px) !important;
  }

  html body.home:has(.master-home) .master-home-seo-title,
  html body.home:has(.master-home) .master-home-hero h1 {
    font-size: clamp(50px, 3.4vw, 66px) !important;
  }
  html body.home:has(.master-home) .master-home-hero-subtitle,
  html body.home:has(.master-home) .master-home-hero-subtitle > .master-home-seo-copy {
    max-width: 440px !important;
    font-size: clamp(14px, .86vw, 16px) !important;
    line-height: 1.55 !important;
  }
  html body.home:has(.master-home) .master-kicker,
  html body.home:has(.master-home) .master-home-hero-boundary {
    font-size: clamp(8px, .5vw, 10px) !important;
  }

  html body.home:has(.master-home) .master-section-head h2 {
    font-size: clamp(28px, 1.95vw, 38px) !important;
  }
  html body.home:has(.master-home) .master-section-intro {
    font-size: clamp(12px, .75vw, 14px) !important;
  }
  html body.home:has(.master-home) .master-inline-link {
    font-size: clamp(10px, .58vw, 11px) !important;
  }

  html body.home:has(.master-home) .master-product-card {
    height: clamp(286px, calc(10.3vw + 167px), 380px) !important;
  }
  html body.home:has(.master-home) .master-product-card-media {
    height: clamp(156px, calc(6.7vw + 79px), 212px) !important;
    min-height: clamp(156px, calc(6.7vw + 79px), 212px) !important;
  }
  /* Full portrait master artwork needs a portrait stage at wide viewports;
     the generic card geometry above is retained for any future fallback art. */
  html body.home:has(.master-home) .master-product-card:has(.master-product-card-art-image) {
    height: clamp(380px, calc(4.3vw + 318px), 410px) !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) {
    height: clamp(222px, calc(4.8vw + 153px), 245px) !important;
    min-height: clamp(222px, calc(4.8vw + 153px), 245px) !important;
  }
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-type,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: clamp(10px, .58vw, 11px) !important;
  }
  html body.home:has(.master-home) .master-product-card h3 {
    font-size: clamp(14px, .86vw, 16px) !important;
    line-height: 1.2 !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd,
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    font-size: clamp(11.5px, .66vw, 12.5px) !important;
  }
  html body.home:has(.master-home) .master-product-card-body {
    min-height: 112px !important;
  }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    min-height: 46px !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-sku {
    font-size: clamp(8.5px, .54vw, 9.5px) !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-title {
    font-size: clamp(11.5px, .72vw, 13px) !important;
    line-height: 1.2 !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-purity {
    font-size: clamp(10px, .58vw, 11px) !important;
  }

  html body.home:has(.master-home) .master-docs-panel {
    min-height: clamp(237px, calc(5.2vw + 183px), 292px) !important;
  }
  html body.home:has(.master-home) .master-docs-panel h2 {
    font-size: clamp(24px, 1.45vw, 30px) !important;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    font-size: clamp(10.5px, .7vw, 13px) !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    font-size: clamp(10px, .62vw, 12px) !important;
    line-height: 1.5 !important;
  }
  html body.home:has(.master-home) .master-doc-item a {
    font-size: clamp(9px, .55vw, 10.5px) !important;
  }

  html body.home:has(.master-home) .master-video-slot h3 {
    font-size: clamp(22px, 1.42vw, 28px) !important;
  }
  html body.home:has(.master-home) .master-video-slot p:not(.master-kicker) {
    font-size: clamp(11px, .7vw, 13px) !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card,
  html body.home:has(.master-home) .master-library-grid .research-card-link,
  html body.home:has(.master-home) .master-library-cta {
    height: clamp(169px, calc(7.3vw + 100px), 238px) !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy > p {
    font-size: clamp(7px, .46vw, 9px) !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy h3,
  html body.home:has(.master-home) .master-library-cta h3 {
    font-size: clamp(11px, .72vw, 14px) !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy > span,
  html body.home:has(.master-home) .master-library-grid .research-card-copy > b,
  html body.home:has(.master-home) .master-library-cta > .master-inline-link {
    font-size: clamp(8px, .52vw, 10px) !important;
  }
  html body.home:has(.master-home) .master-library-cta .button-primary {
    font-size: clamp(9px, .58vw, 11px) !important;
  }

  html body.home:has(.master-home) .site-footer .brand-name {
    font-size: clamp(14px, .78vw, 16px) !important;
  }
  html body.home:has(.master-home) .site-footer h3 {
    font-size: clamp(8px, .46vw, 9.5px) !important;
  }
  html body.home:has(.master-home) .site-footer .footer-custom-copy,
  html body.home:has(.master-home) .site-footer p,
  html body.home:has(.master-home) .site-footer a,
  html body.home:has(.master-home) .site-footer .footer-contact span,
  html body.home:has(.master-home) .site-footer .footer-contact strong {
    font-size: clamp(9.5px, .55vw, 11px) !important;
    line-height: 1.5 !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice strong,
  html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy,
  html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child {
    font-size: clamp(7px, .42vw, 8.5px) !important;
  }
}

/* Compact desktop needs a wider reading measure than the English artboard.
 * Keep the approved product treatment, but adapt the card count to the live,
 * translated record data instead of compressing it into 150px-wide cards. */
@media (min-width: 760px) and (max-width: 899px) {
  html body.home:has(.master-home) .master-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
}
@media (min-width: 900px) and (max-width: 1099px) {
  html body.home:has(.master-home) .master-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Homepage product cards: readable specimen presentation -----------------
 *
 * Product photos are square source files with substantial whitespace around
 * the vial.  Previous rules placed a second, tiny text layer over those
 * photos and then rendered the actual vial at roughly 120px high.  At that
 * size the printed product label cannot be read, even when the source image
 * itself is high resolution.  The homepage now uses the same Featured Image
 * as the product page, but crops the whitespace in the visual stage only.
 * All product strings below remain the live WooCommerce record fields.
 */
@media (min-width: 760px) {
  html body.home:has(.master-home) .master-product-card {
    height: auto !important;
    min-height: 426px !important;
  }

  html body.home:has(.master-home) .master-product-card-media,
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) {
    height: 232px !important;
    min-height: 232px !important;
    background: #fff !important;
  }

  /* The label and product name below are the accessible, readable primary
     disclosure.  This legacy overlay only duplicated them at 8–12px and
     competed with the bottle label, so it remains in the DOM but is not
     presented as a second visual layer. */
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-copy {
    display: none !important;
  }

  html body.home:has(.master-home) .master-product-card-art-image {
    inset: auto !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: 184% !important;
    height: 184% !important;
    max-width: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    /* Physical dimensions, rather than transform scaling, let WordPress'
       lazy responsive-image logic request a sharp enough source image. */
    transform: translate(-50%, -54%) !important;
    transform-origin: center center !important;
  }

  html body.home:has(.master-home) .master-product-card-body {
    min-height: 144px !important;
    padding: 15px 15px 11px !important;
  }

  html body.home:has(.master-home) .master-product-card-type,
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 12px !important;
    line-height: 18px !important;
  }

  html body.home:has(.master-home) .master-product-card h3 {
    min-height: 44px;
    font-size: 16px !important;
    line-height: 22px !important;
  }

  html body.home:has(.master-home) .master-product-card-body dl {
    gap: 8px !important;
    padding-top: 9px !important;
  }

  html body.home:has(.master-home) .master-product-card-body dd {
    font-size: 14px !important;
    line-height: 20px !important;
  }

  html body.home:has(.master-home) .master-product-card-actions {
    gap: 8px !important;
    padding: 0 15px 13px !important;
  }

  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    min-height: 42px !important;
    font-size: 13px !important;
    line-height: 18px !important;
  }
}

@media (max-width: 759px) {
  /* Product name, material type and purity already appear in the card body.
     Keep the media stage image-only for every current and future product. */
  html body.home:has(.master-home) .master-product-card-media .master-product-card-feature-copy {
    display: none !important;
  }

  html body.home:has(.master-home) .master-product-card-art-image {
    inset: auto !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: 154% !important;
    height: 154% !important;
    max-width: none !important;
    transform: translate(-50%, -53%) !important;
    transform-origin: center center !important;
  }

  html body.home:has(.master-home) .master-product-card-type,
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 13px !important;
    line-height: 19px !important;
  }

  html body.home:has(.master-home) .master-product-card h3 {
    font-size: 18px !important;
    line-height: 25px !important;
  }

  html body.home:has(.master-home) .master-product-card-body dd,
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    font-size: 14px !important;
    line-height: 20px !important;
  }
}

/* Readability correction — presentation only.
 * The initial master pass carried artboard-scale labels (roughly 6–10px)
 * into the live homepage.  At normal browser zoom that makes record data,
 * actions, and supporting copy needlessly hard to read.  Keep the approved
 * composition and source content, but restore a usable type scale. */
html body.home:has(.master-home) .master-kicker {
  font-size: 10px !important;
  line-height: 1.25 !important;
}
html body.home:has(.master-home) .master-inline-link,
html body.home:has(.master-home) .button-outline-blue,
html body.home:has(.master-home) .master-catalog-expander > summary,
html body.home:has(.master-home) .master-legacy-information > summary {
  font-size: 12px !important;
  line-height: 1.25 !important;
}
html body.home:has(.master-home) .master-section-intro {
  font-size: 14px !important;
  line-height: 1.55 !important;
}

@media (min-width: 760px) {
  html body.home:has(.master-home) .master-product-card,
  html body.home:has(.master-home) .master-product-card:has(.master-product-card-art-image) {
    /* Keep the five-card desktop grid, but do not shrink its live product
       records to artboard-scale type. The previous 286px version rendered
       key record text at 7px in a normal 100% browser view. */
    height: 424px !important;
    min-height: 424px !important;
  }
  html body.home:has(.master-home) .master-product-card-media,
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) {
    height: 218px !important;
    min-height: 218px !important;
  }
  html body.home:has(.master-home) .master-product-card-media .master-product-card-feature-copy {
    display: none !important;
  }
  html body.home:has(.master-home) .master-product-card-art-image {
    inset: auto !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    width: 170% !important;
    height: 170% !important;
    max-width: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: translate(-50%, -51%) !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-sku {
    display: inline-flex !important;
    width: fit-content !important;
    min-height: 12px !important;
    align-items: center !important;
    margin: 0 0 7px !important;
    padding: 0 5px !important;
    border-radius: 2px !important;
    background: var(--master-blue) !important;
    color: #fff !important;
    font-size: clamp(7.5px, .48vw, 8.5px) !important;
    line-height: 1.15 !important;
    letter-spacing: .035em !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-title {
    margin-bottom: 6px !important;
    font-size: clamp(11px, .72vw, 12px) !important;
    line-height: 1.18 !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-purity {
    font-size: clamp(9px, .6vw, 10px) !important;
    line-height: 1.15 !important;
  }
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) .master-product-card-feature-copy > span {
    display: none !important;
  }
  html body.home:has(.master-home) .master-product-card-index {
    font-size: 10px !important;
    line-height: 1 !important;
  }
  html body.home:has(.master-home) .master-product-card-ruo {
    padding: 5px 6px !important;
    font-size: 9px !important;
    line-height: 1.1 !important;
  }
  html body.home:has(.master-home) .master-product-card-body {
    min-height: 142px !important;
    padding: 13px 12px 9px !important;
  }
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-type,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 10.5px !important;
    line-height: 1.32 !important;
    letter-spacing: .025em !important;
  }
  html body.home:has(.master-home) .master-product-card h3 {
    min-height: 38px !important;
    font-size: 15px !important;
    line-height: 1.28 !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
  html body.home:has(.master-home) .master-product-card-actions {
    gap: 6px !important;
    padding: 0 12px 12px !important;
  }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    min-height: 36px !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    font-size: 11.5px !important;
    line-height: 1.55 !important;
  }
  html body.home:has(.master-home) .master-doc-item a {
    font-size: 11px !important;
    line-height: 1.3 !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy > p {
    font-size: 10px !important;
    line-height: 1.3 !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy h3,
  html body.home:has(.master-home) .master-library-cta h3 {
    font-size: 13px !important;
    line-height: 1.28 !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy > span,
  html body.home:has(.master-home) .master-library-grid .research-card-copy > b,
  html body.home:has(.master-home) .master-library-cta > .master-inline-link,
  html body.home:has(.master-home) .master-library-cta .button-primary {
    font-size: 11px !important;
    line-height: 1.3 !important;
  }
}

@media (max-width: 759px) {
  html body.home:has(.master-home) .master-home-hero .master-kicker {
    font-size: 10px !important;
  }
  html body.home:has(.master-home) .master-home-hero-subtitle {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }
  html body.home:has(.master-home) .master-actions .button {
    min-height: 44px !important;
    font-size: 13px !important;
  }
  html body.home:has(.master-home) .master-product-card,
  html body.home:has(.master-home) .master-product-card:has(.master-product-card-art-image) {
    min-height: 382px !important;
  }
  html body.home:has(.master-home) .master-product-card-media,
  html body.home:has(.master-home) .master-product-card-media:has(.master-product-card-art-image) {
    height: 225px !important;
    min-height: 225px !important;
  }
  html body.home:has(.master-home) .master-product-card-index {
    font-size: 10px !important;
  }
  html body.home:has(.master-home) .master-product-card-ruo {
    padding: 4px 5px !important;
    font-size: 7.5px !important;
  }
  html body.home:has(.master-home) .master-product-card-body {
    min-height: 125px !important;
    padding: 15px 15px 10px !important;
  }
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-type,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 10.5px !important;
    line-height: 1.35 !important;
  }
  html body.home:has(.master-home) .master-product-card h3 {
    font-size: 15px !important;
    line-height: 1.28 !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd {
    font-size: 12.5px !important;
    line-height: 1.4 !important;
  }
  html body.home:has(.master-home) .master-product-card-actions {
    padding: 0 15px 15px !important;
  }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    min-height: 44px !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
  html body.home:has(.master-home) .master-doc-item strong {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
  html body.home:has(.master-home) .master-doc-item p {
    font-size: 12px !important;
    line-height: 1.6 !important;
  }
  html body.home:has(.master-home) .master-doc-item a {
    font-size: 11.5px !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy > p {
    font-size: 10.5px !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy h3,
  html body.home:has(.master-home) .master-library-cta h3 {
    font-size: 14px !important;
    line-height: 1.32 !important;
  }
  html body.home:has(.master-home) .master-library-grid .research-card-copy > span,
  html body.home:has(.master-home) .master-library-grid .research-card-copy > b,
  html body.home:has(.master-home) .master-library-cta > .master-inline-link,
  html body.home:has(.master-home) .master-library-cta .button-primary {
    font-size: 11.5px !important;
  }
}

html body.home:has(.master-home) .site-footer h3 {
  font-size: 10px !important;
  line-height: 1.3 !important;
}
html body.home:has(.master-home) .site-footer .footer-custom-copy,
html body.home:has(.master-home) .site-footer p,
html body.home:has(.master-home) .site-footer a,
html body.home:has(.master-home) .site-footer .footer-contact span,
html body.home:has(.master-home) .site-footer .footer-contact strong {
  font-size: 11px !important;
  line-height: 1.55 !important;
}
html body.home:has(.master-home) .site-footer .site-research-notice,
html body.home:has(.master-home) .site-footer .footer-bottom {
  min-height: 48px !important;
  height: 48px !important;
}
html body.home:has(.master-home) .site-footer .site-research-notice strong,
html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy,
html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child {
  font-size: 9px !important;
  line-height: 1.35 !important;
}
@media (max-width: 759px) {
  html body.home:has(.master-home) .site-footer {
    padding-bottom: 122px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice,
  html body.home:has(.master-home) .site-footer .footer-bottom {
    min-height: 56px !important;
    height: 56px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice strong,
  html body.home:has(.master-home) .site-footer .site-research-notice .footer-custom-copy,
  html body.home:has(.master-home) .site-footer .footer-bottom > span:first-child {
    font-size: 9.5px !important;
    line-height: 1.35 !important;
  }
}

/* Homepage preview media is intentionally image-only. The live material
 * details are presented once in the structured card body below, while RUO
 * remains the sole small status marker in the image area. */
html body.home:has(.master-home) .master-product-card-media .master-product-card-index,
html body.home:has(.master-home) .master-product-card-media .master-product-card-feature-copy {
  display: none !important;
}

/* The homepage preview is image-only apart from the RUO marker.  Uploaded
 * product images stay inside the media frame at their own aspect ratio, so
 * future backend replacements do not require a separate, cropped homepage
 * asset. */
html body.home:has(.master-home) .master-product-card-media {
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
}
html body.home:has(.master-home) .master-product-card-media .master-product-card-art-image {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

/* The expanded homepage catalogue reuses the live product-card markup rather
 * than the preview-card markup above. Its ordinal duplicates information in
 * the card body, so remove only that decorative overlay. Keep the real image
 * source and its whole composition visible for current and future uploads. */
html body.home:has(.master-home) .master-catalog-expander .product-index {
  display: none !important;
}
html body.home:has(.master-home) .master-catalog-expander .product-image > img {
  display: block !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* WordPress may return either a generated card-art image or the product's
 * standard featured image. Both paths use the same safe fit: centered,
 * uncropped, and bounded by the media panel for future backend uploads. */
html body.home:has(.master-home) .master-product-card-media > img {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

/* Product cards carry structured records, so their secondary text must remain
 * legible at a normal browser zoom. Keep the established heading face and
 * size; only lift the smaller catalog metadata and actions. */
@media (min-width: 760px) {
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 11px !important;
    line-height: 1.35 !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
}

@media (max-width: 759px) {
  html body.home:has(.master-home) .master-product-card-sku,
  html body.home:has(.master-home) .master-product-card-body dt {
    font-size: 11.5px !important;
    line-height: 1.35 !important;
  }
  html body.home:has(.master-home) .master-product-card-body dd {
    font-size: 13px !important;
    line-height: 1.4 !important;
  }
  html body.home:has(.master-home) .master-product-card-actions a,
  html body.home:has(.master-home) .master-product-card-actions button {
    font-size: 12.5px !important;
    line-height: 1.3 !important;
  }
}

/* Expanded homepage catalogue
 *
 * The five-card preview above is part of the approved master. The optional
 * "Browse all materials" panel is an additional, data-preserving view, so it
 * gets its own light catalogue treatment instead of inheriting the legacy
 * burgundy archive styles. All selectors stay inside the expander body. */
html body.home:has(.master-home) .master-catalog-expander-body {
  padding: 20px 0 0 !important;
  color: var(--master-ink) !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr) !important;
  gap: 26px !important;
  align-items: end !important;
  margin: 0 0 26px !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-head h2 {
  margin: 0 0 8px !important;
  color: var(--master-ink) !important;
  font: 400 clamp(36px, 4vw, 52px)/1.02 Italiana, Georgia, serif !important;
  letter-spacing: -.03em !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-head h2 em {
  color: var(--master-blue) !important;
  font-style: normal !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-head .section-kicker {
  margin: 0 0 12px !important;
  color: var(--master-blue) !important;
  font: 800 10px/1.2 Manrope, Arial, sans-serif !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-head .section-intro {
  max-width: 510px !important;
  margin: 0 0 16px !important;
  color: var(--master-muted) !important;
  font: 500 14px/1.6 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-head .text-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: var(--master-blue) !important;
  font: 800 11px/1.2 Manrope, Arial, sans-serif !important;
  letter-spacing: .05em !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-shell {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-tools {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(145px, .75fr)) minmax(128px, .58fr) !important;
  gap: 12px !important;
  align-items: end !important;
  width: 100% !important;
  margin: 0 0 18px !important;
  padding: 24px !important;
  box-sizing: border-box !important;
  border: 1px solid #dbe5f6 !important;
  border-radius: 7px !important;
  background: #f2f6ff !important;
  box-shadow: none !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-tools label {
  display: grid !important;
  min-width: 0 !important;
  gap: 7px !important;
  margin: 0 !important;
  color: var(--master-ink) !important;
  font: 800 10px/1.2 Manrope, Arial, sans-serif !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-search-control {
  display: flex !important;
  min-width: 0 !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-tools input,
html body.home:has(.master-home) .master-catalog-expander-body .catalog-tools select {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 42px !important;
  box-sizing: border-box !important;
  border: 1px solid #cbdcf5 !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: var(--master-ink) !important;
  box-shadow: none !important;
  font: 600 13px/1.25 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-search-control input {
  min-width: 0 !important;
  padding: 0 12px !important;
  border-radius: 4px 0 0 4px !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-submit {
  display: inline-flex !important;
  width: 44px !important;
  min-width: 44px !important;
  min-height: 42px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 1px solid var(--master-blue) !important;
  border-radius: 0 4px 4px 0 !important;
  background: var(--master-blue) !important;
  color: #fff !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-submit .catalog-search-icon {
  width: 17px !important;
  height: 17px !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-clear {
  width: 100% !important;
  min-height: 42px !important;
  padding: 0 10px !important;
  border: 1px solid #9dbcf4 !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: var(--master-blue) !important;
  font: 800 11px/1.2 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .catalog-result {
  min-height: 18px !important;
  margin: 0 0 14px !important;
  color: var(--master-muted) !important;
  font: 500 12px/1.4 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-card {
  display: flex !important;
  min-width: 0 !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border: 1px solid var(--master-border) !important;
  border-radius: 6px !important;
  background: #fff !important;
  box-shadow: 0 7px 20px rgba(13, 50, 109, .06) !important;
  transform: none !important;
  opacity: 1 !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-card:hover,
html body.home:has(.master-home) .master-catalog-expander-body .product-card:focus-within {
  border-color: #9dbafb !important;
  box-shadow: 0 12px 26px rgba(13, 50, 109, .11) !important;
  transform: translateY(-2px) !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-image {
  position: relative !important;
  display: grid !important;
  height: 248px !important;
  min-height: 248px !important;
  place-items: center !important;
  overflow: hidden !important;
  border-bottom: 1px solid var(--master-border) !important;
  background: #fbfcfe !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-body {
  display: flex !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  padding: 16px !important;
  background: #fff !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-category {
  margin: 0 0 7px !important;
  color: var(--master-blue) !important;
  font: 800 11px/1.3 Manrope, Arial, sans-serif !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-title {
  min-height: 44px !important;
  margin: 0 0 13px !important;
  color: var(--master-ink) !important;
  font: 800 17px/1.3 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-title a {
  color: inherit !important;
  text-decoration: none !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-meta {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px 16px !important;
  margin: 0 0 17px !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-meta > div {
  min-width: 0 !important;
  color: #4e607a !important;
  font: 500 13px/1.4 Manrope, Arial, sans-serif !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-meta strong {
  display: block !important;
  margin: 0 0 3px !important;
  color: #52657f !important;
  font: 800 10px/1.2 Manrope, Arial, sans-serif !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-actions {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) !important;
  gap: 10px !important;
  margin-top: auto !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-actions .button {
  min-height: 44px !important;
  padding: 0 10px !important;
  border-radius: 4px !important;
  font: 800 12px/1.25 Manrope, Arial, sans-serif !important;
  white-space: normal !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-actions .button-light {
  border: 1px solid #88aaf0 !important;
  background: #fff !important;
  color: var(--master-blue) !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-actions .button-dark {
  border: 1px solid var(--master-blue) !important;
  background: var(--master-blue) !important;
  color: #fff !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-actions .button-dark.is-added {
  background: #edf4ff !important;
  color: var(--master-blue) !important;
}
html body.home:has(.master-home) .master-catalog-expander-body .product-actions .button-dark.is-added::before {
  content: '✓';
  margin-right: 5px;
  font-weight: 900;
}

@media (max-width: 900px) {
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-tools {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-search {
    grid-column: 1 / -1 !important;
  }
}
@media (max-width: 700px) {
  html body.home:has(.master-home) .master-catalog-expander-body {
    padding-top: 18px !important;
    width: calc(100% - 8px) !important;
    margin-inline: 4px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-head {
    display: block !important;
    margin-bottom: 24px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-head h2 {
    font-size: 38px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-head .section-intro {
    max-width: none !important;
    margin-top: 18px !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-head .text-link {
    margin-top: 16px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-tools {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-bottom: 18px !important;
    padding: 24px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .catalog-search {
    grid-column: auto !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .product-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .product-image {
    height: 230px !important;
    min-height: 230px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .product-body {
    padding: 16px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .product-title {
    font-size: 16px !important;
  }
  html body.home:has(.master-home) .master-catalog-expander-body .product-actions .button {
    min-height: 44px !important;
    font-size: 12px !important;
  }
}

/* Footer contact/notice final pass. Keep the contact row in normal space so
   the legal bars cannot cover it, and use one exact navy for both bars. */
@media (min-width: 760px) {
  html body.home:has(.master-home) .site-footer {
    min-height: 300px !important;
    padding-bottom: 64px !important;
  }
}
html body.home:has(.master-home) .site-footer .footer-contact {
  display: flex !important;
  /* Keep contact details in the fifth footer column, matching the shared
     reference shell.  The address must wrap in its own column instead of
     dropping to a second full-width row. */
  grid-column: auto !important;
  position: relative !important;
  z-index: 1 !important;
}

/* The homepage legacy rules above intentionally keep the visual shell, but
   the shared footer still needs the same five-column geometry as every other
   page.  Keep the contact address in its own column so it wraps consistently
   instead of becoming a full-width row. */
@media (min-width: 760px) {
  html body.home:has(.master-home) .site-footer .footer-grid.footer-grid--with-contact {
    grid-template-columns: minmax(250px, 1.28fr) repeat(3, minmax(120px, .76fr)) minmax(220px, 1fr) !important;
    gap: clamp(28px, 3vw, 48px) !important;
  }
}

@media (max-width: 759px) {
  html body.home:has(.master-home) .site-footer .footer-grid.footer-grid--with-contact {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
  html body.home:has(.master-home) .site-footer .footer-grid > div:first-child,
  html body.home:has(.master-home) .site-footer .footer-contact {
    grid-column: 1 / -1 !important;
  }
}
html body.home:has(.master-home) .site-footer .site-research-notice,
html body.home:has(.master-home) .site-footer .footer-bottom {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  background: #061633 !important;
  background-color: #061633 !important;
  box-shadow: none !important;
}
html body.home:has(.master-home) .site-footer .site-research-notice {
  bottom: 0 !important;
  min-height: 64px !important;
  height: 64px !important;
}
html body.home:has(.master-home) .site-footer .footer-bottom {
  bottom: 0 !important;
  min-height: 64px !important;
  height: 64px !important;
  z-index: 2 !important;
  background: transparent !important;
  background-color: transparent !important;
}
@media (max-width: 759px) {
  html body.home:has(.master-home) .site-footer {
    min-height: 400px !important;
    padding-bottom: 72px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice,
  html body.home:has(.master-home) .site-footer .footer-bottom {
    min-height: 72px !important;
    height: 72px !important;
  }
  html body.home:has(.master-home) .site-footer .site-research-notice {
    bottom: 0 !important;
  }
  html body.home:has(.master-home) .site-footer .footer-bottom {
    bottom: 0 !important;
  }
}
