/* V20 brand refinement. Loaded last by preview-links.mjs, including rebuilt pages.
   Keep the accepted palette, layouts, product data and interaction scripts intact. */
:root {
  --brand-ink: #021826;
  --brand-muted: #5e6b7d;
  --brand-tint: #f4f7fe;
  --brand-tint-strong: #eaf0ff;
  --brand-card-radius: 25px;
  --brand-section-space: clamp(72px, 6vw, 96px);
  --brand-ease: cubic-bezier(.22, .61, .36, 1);
  --site-type-display: clamp(44px, 4.15vw, 68px);
  --site-type-display-line: 1.08;
  --site-type-section: clamp(36px, 3.5vw, 54px);
  --site-type-enquiry: clamp(38px, 3.7vw, 56px);
  --site-type-helper: 13px;
  --site-type-address: 13px;
  --site-type-form-label: 13px;
}

/* Typography: short, confident headings; readable supporting information. */
body { --text-ink: var(--brand-ink); }
::selection { background: #dce6ff; color: var(--brand-ink); }
body main :is(h1, h2, h3, h4) { text-wrap: balance; }
body :is(.hero, .catalog-intro, .co-hero, .ct-intro, .fq-intro,
  .cd-intro, .mf-hero, .bj-hero, .sg-hero, .qa-hero, .oc-hero,
  .ap-hero, .ac-hero, .sr-hero, .pp-intro, .nf-hero) h1 {
  font-size: var(--site-type-display);
  line-height: var(--site-type-display-line);
  letter-spacing: -.035em;
}
body :is(.section-heading, .co-section-heading, .ct-section-heading,
  .bj-section-heading, .ac-section-heading) h2 {
  font-size: var(--site-type-section);
  line-height: 1.12;
  letter-spacing: -.03em;
}
body :is(.co-kicker, .mf-kicker, .bl-kicker, .fq-kicker, .pd-eyebrow) {
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .045em;
}
body :is(.ct-kicker, .wd-kicker, .sg-eyebrow, .qa-eyebrow, .oc-eyebrow,
  .ap-eyebrow, .ac-eyebrow, .bj-eyebrow, .pp-eyebrow, .nf-eyebrow) {
  letter-spacing: .035em;
}
body :is(.catalog-breadcrumb, .co-breadcrumb, .ct-breadcrumb, .fq-breadcrumb,
  .bl-breadcrumb, .cd-breadcrumb, .mf-breadcrumb, .sg-breadcrumb,
  .qa-breadcrumb, .oc-breadcrumb, .ap-breadcrumb, .ac-breadcrumb,
  .wd-breadcrumb, .pp-breadcrumb, .sr-breadcrumb, .pd-breadcrumb ol) {
  font-size: 13px;
  line-height: 1.7;
  row-gap: 6px;
}
body :is(.catalog-breadcrumb, .co-breadcrumb, .ct-breadcrumb, .fq-breadcrumb,
  .bl-breadcrumb, .cd-breadcrumb, .mf-breadcrumb, .sg-breadcrumb,
  .qa-breadcrumb, .oc-breadcrumb, .ap-breadcrumb, .ac-breadcrumb,
  .wd-breadcrumb, .pp-breadcrumb, .sr-breadcrumb, .pd-breadcrumb) a {
  transition: color .3s ease-out;
  text-underline-offset: 4px;
}

/* A clear current location and one consistent navigation surface. */
.site-header .desktop-nav > a,
.site-header .resource-nav > summary { position: relative; }
.site-header .desktop-nav > a::after,
.site-header .resource-nav > summary::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 3px;
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: var(--blue);
  opacity: 0;
  transform: scaleX(.35);
  transform-origin: left;
  transition: opacity .3s ease-out, transform .3s var(--brand-ease);
}
.site-header .desktop-nav > a[aria-current]::after,
.site-header .resource-nav-current > summary::after {
  opacity: 1;
  transform: scaleX(1);
}
.site-header .resource-nav-menu {
  min-width: 232px;
  padding: 10px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 50px #02182614, 0 2px 8px #02182608;
}
.site-header .resource-nav-menu > a {
  padding: 12px 16px;
  font-size: 14px;
  line-height: 1.4;
  border-radius: 12px;
}
.site-header .resource-nav-menu > a[aria-current] {
  background: var(--brand-tint-strong);
  color: var(--blue-dark);
}
.site-header .mobile-nav {
  padding: 12px;
  background: #fff;
  color: var(--brand-ink);
  box-shadow: 0 18px 50px #0218261a;
}
.site-header .mobile-nav a {
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  border-radius: 14px;
  font-size: 16px;
  line-height: 1.5;
  transition: color .3s ease-out, background-color .3s ease-out;
}
.site-header .mobile-nav a[aria-current] {
  color: var(--blue-dark);
  background: var(--brand-tint-strong);
  font-weight: 700;
}

/* Controls stay still, with the existing blue fill and icon animation. */
body .button {
  transition: background-color .3s ease-out, color .3s ease-out;
}
body .button:not(.button-no-lift):hover,
body .button:active { transform: none; }
body .text-link { transition: color .3s ease-out; }
body .text-link > svg { transition: transform .3s var(--brand-ease); }
body :is(input:not([type=checkbox]):not([type=radio]), select, textarea):focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #2458ec12;
}
body :is(.enquiry-form, .products) :focus-visible { outline-color: #b9ccff; }
body :is(.review-dialog, .ct-dialog, .pd-lightbox, .wd-lightbox) { border-radius: 25px; }

/* Match section rhythm without changing independent grids or paired columns. */
body :is(.co-section, .mf-section, .ct-section, .fq-section, .bl-section,
  .bj-section, .sg-section, .qa-section, .oc-section, .ap-section, .ac-section,
  .wd-section, .pd-section) { margin-top: var(--brand-section-space); }
body .section-heading { margin-bottom: 36px; }
body :is(.section-intro, .catalog-intro-aside > p) { line-height: 1.75; }
body .factory-copy h2 { line-height: 1.12; letter-spacing: -.03em; }
body .capability-list strong { line-height: 1.35; }
body .hero .trust-bar strong { font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
body .hero .trust-bar span { color: var(--brand-muted); }
body .product-card h3 { line-height: 1.2; letter-spacing: -.025em; }
body .product-card .product-number .eyebrow { font-size: 11px; line-height: 1.6; }
body .product-card dl { font-size: 13px; }
body .product-card dl > div { gap: 14px; margin-bottom: 9px; }
body .product-card dd { font-variant-numeric: tabular-nums; }
body .fit-castor-copy h4 { line-height: 1.25; letter-spacing: -.02em; }
body .qc-flow-step h3 { line-height: 1.2; }
body .qc-flow-step > p { line-height: 1.65; }

/* Catalogue: white cards retained; technical content has a deliberate hierarchy. */
.catalog-page { color: var(--brand-ink); }
body .catalog-intro { padding-top: 36px; padding-bottom: 44px; }
body .catalog-layout { column-gap: 40px; }
body .catalog-board { background: transparent; }
body .catalog-product { background: transparent; padding: 20px; border-radius: 25px; }
body .catalog-photo { background: transparent; border-radius: 25px; }
body .catalog-series { font-size: 12px; letter-spacing: .01em; }
body .catalog-material-tag { font-size: 11px; padding: 5px 8px; }
body .catalog-product h3 { line-height: 1.25; letter-spacing: -.025em; }
body :is(.catalog-result-count, .filter-hint, .catalog-fixings-heading) { font-size: 13px; }
body .catalog-fixing-hint { font-size: 11px; }
body .catalog-tools { gap: 20px; margin-bottom: 30px; }
body .catalog-search { background: var(--paper); }
body .catalog-sort select { background-color: var(--paper); padding-left: 16px; }
body .filter-group { border-bottom-color: #e9edf3; }
body .filter-group select { background-color: var(--paper); }
body .filter-check { min-height: 44px; }
body .catalog-product :is(dt, dd),
body :is(.pd-range-facts, .pd-selected, .wd-stats, .wd-spec-panel) {
  font-variant-numeric: tabular-nums;
}
body :is(.pd-image-stage, .wd-main-photo) { border-radius: 32px; }
body :is(.pd-thumb, .wd-thumb) { border-radius: 18px; }
body .pd-summary h1 { line-height: 1.12; letter-spacing: -.03em; }
body .wd-title h1 { line-height: 1.12; letter-spacing: -.03em; }
body :is(.pd-intro, .wd-lead) { line-height: 1.8; }
body :is(.pd-hero-note, .pd-image-caption > span, .pd-selected dt) { font-size: 13px; }
body :is(.pd-section-nav, .wd-section-nav) { scrollbar-color: #b6c6ee transparent; }

/* Support cards and forms share a quieter surface and edge treatment. */
body :is(.ct-form-panel, .ct-prepare, .fq-start, .fq-question, .bl-toc,
  .bl-feature-panel, .bl-art, .bl-reader-catalog, .bj-article-link,
  .ac-family-card, .qa-document-card, .wd-bearing-card) {
  border-radius: var(--brand-card-radius);
}
body :is(.ct-form-panel, .fq-start, .fq-question, .bl-toc) { background: var(--paper); }
body :is(.ct-prepare, .ct-optional) { background: var(--brand-tint-strong); }
body .fq-question[open] { background: #edf2ff; }
body .ct-field { gap: 10px; }
body .ct-field :is(input, textarea) { padding-inline: 20px; }
body .ct-form { row-gap: 23px; }
body :is(.ct-field, .form-grid label) { font-size: 13px; }
body .ct-form-heading h2 { line-height: 1.15; letter-spacing: -.03em; }
body :is(.cd-card, .ac-family-card, .qa-document-card, .wd-bearing-card,
  .oc-manufacturing-card, .sg-condition-grid article) h3 {
  line-height: 1.25;
  letter-spacing: -.02em;
}
body :is(.fq-topic-number, .fq-topic-count, .fq-group-number) { font-size: 12px; }
body .fq-question-list { gap: 14px; }
body .fq-question summary { padding-block: 22px; }

/* Article pages get a reading scale rather than miniature catalogue labels. */
body .bl-article-heading h1 { line-height: 1.15; letter-spacing: -.025em; }
body .bl-prose { font-size: 17px; line-height: 1.85; color: #45536a; }
body .bl-prose h2 { line-height: 1.25; letter-spacing: -.025em; margin-top: 42px; }
body .bl-prose h3 { letter-spacing: -.015em; }
body .bl-prose :is(p, ul, ol) { margin-bottom: 24px; }
body .bl-toc a { min-height: 44px; font-size: 13px; line-height: 1.6; }
body .bl-toc a > span { font-size: 11px; }
body :is(.bl-byline, .bl-meta, .bl-reader-catalog p) { font-size: 13px; }
body :is(.bl-card-read, .bl-resource-read, .bl-reader-catalog .text-link) { font-size: 13px; }
body .bl-prose :is(th, td) { line-height: 1.65; }

/* The footer is a readable final navigation layer, not fine print. */
body .footer-grid { column-gap: clamp(24px, 3vw, 48px); row-gap: 36px; }
body .footer-grid h3 { font-size: 14px; line-height: 1.5; margin-bottom: 20px; }
body .footer-grid > div > a:not(.brand):not(.contact-link) {
  min-height: 40px;
  font-size: 13px;
  line-height: 1.6;
  transition: color .3s ease-out;
}
body .footer-grid p { font-size: 13px; line-height: 1.8; }
body .footer-bottom { font-size: 12px; line-height: 1.7; padding-top: 24px; }
body .floating-contact { border: 0; box-shadow: 0 5px 24px #02182614; }

@media (hover:hover) and (pointer:fine) {
  .site-header .desktop-nav > a:hover::after,
  .site-header .resource-nav > summary:hover::after { opacity: 1; transform: scaleX(1); }
  .site-header :is(.resource-nav-menu, .mobile-nav) > a:hover {
    background: var(--brand-tint);
    color: var(--blue-dark);
  }
  body .catalog-product:hover { background: var(--brand-tint); }
}
body .catalog-product:focus-within { background: var(--brand-tint); }

@media (max-width:1099px) {
  :root { --brand-section-space: 64px; }
  body .catalog-layout { column-gap: 26px; }
}
@media (max-width:899px) {
  :root {
    --site-type-display: clamp(38px, 6vw, 52px);
    --site-type-section: 40px;
    --site-type-enquiry: 42px;
  }
}
@media (max-width:599px) {
  :root {
    --brand-section-space: 56px;
    --site-type-display: clamp(32px, 8.8vw, 42px);
    --site-type-section: clamp(30px, 7.8vw, 36px);
    --site-type-enquiry: 36px;
    --site-type-card-heading: 23px;
  }
  /* Keep search, quote and menu reachable without a wrapped or clipped label. */
  .site-header .brand img { width: 112px; }
  .site-header .header-actions { gap: 2px; }
  .site-header .header-search { width: 44px; height: 44px; }
  .site-header .header-quote {
    white-space: nowrap;
    min-height: 44px;
    padding: 12px;
    font-size: 12px;
    flex-shrink: 0;
  }
  .site-header .header-quote .arrow-disc { display: none; }
  .site-header .mobile-nav { top: 74px; }
  .site-header .menu-toggle { min-width: 44px; }
  body .section-heading { margin-bottom: 28px; }
  body .hero .trust-bar { column-gap: 14px; }
  body .hero .trust-bar span { font-size: 12px; line-height: 1.65; }
  body .catalog-intro { padding-top: 24px; padding-bottom: 30px; }
  body .catalog-product { padding: 18px; }
  body .catalog-tools { gap: 12px; margin-bottom: 24px; }
  body .catalog-product h3 { font-size: 23px; }
  body .ct-form-panel { padding: 26px 22px; }
  body .bl-prose { font-size: 16px; line-height: 1.85; }
  body .bl-article-heading h1 { font-size: 32px; }
  body .footer-module { padding-top: 32px; }
  body .footer-grid > div > a:not(.brand):not(.contact-link) { min-height: 44px; }
  body .footer-bottom { align-items: flex-start; gap: 16px; }
}
@media (max-width:359px) {
  .site-header .brand img { width: 82px; }
  .site-header .header-quote { font-size: 11px; padding-inline: 9px; }
  body .catalog-material-tag { font-size: 10px; }
  body .bl-article-heading h1 { font-size: 30px; }
  body .ct-form-panel { padding-inline: 18px; }
}
@media (prefers-reduced-motion:reduce) {
  .site-header .desktop-nav > a::after,
  .site-header .resource-nav > summary::after,
  .site-header .mobile-nav a,
  body .button, body .text-link, body .text-link > svg { transition: none; }
}
@media print {
  .site-header .resource-nav-menu, body .floating-contact { display: none; }
  body :is(.co-section, .mf-section, .ct-section, .fq-section, .bl-section,
    .bj-section, .sg-section, .qa-section, .oc-section, .ap-section,
    .ac-section, .wd-section, .pd-section) { margin-top: 32px; }
}
