/*
 * GALVANTA — approved dark chrome, 2026-09-12.
 * Complete replacement, not an override to append to the old stylesheet.
 * Components use existing markup. No font imports, image downloads or JS added.
 * Original token names and dosage-form hooks are retained.
 */
:root {
  --ink: #102744;
  --ink-2: #24465d;
  --navy: #002851;
  --navy-2: #0c1b2e;
  --teal: #006b50;             /* Accessible mint for text, icons and controls. */
  --teal-2: #42ecb1;           /* Brand mint: fills/rules; never small text on white. */
  --sky: #eaf6f1;
  --ice: #f5f9f7;
  --line: #d6e2df;
  --muted: #526778;
  --white: #ffffff;
  --warm: #faf7f1;
  --max: 82rem;
  --radius: .35rem;
  --shadow: 0 18px 48px rgb(0 40 81 / 10%);
  --shadow-sm: 0 6px 20px rgb(0 40 81 / 5%);
  --brand-navy: #06236d;
  --brand-mint: #42ecb1;
  --on-dark: #c6d6e0;
  --dark-line: #43586e;
  --control-line: #6c827b;
  --accent-hover: #00533e;
  --gutter: clamp(1rem, 3.6vw, 3.25rem);
  --font-body: system-ui, -apple-system, "Segoe UI", "Khmer UI", "Khmer Sangam MN", "Noto Sans Khmer", "Kantumruy Pro", sans-serif;
  --font-editorial: Georgia, "Times New Roman", serif;
  --product-accent: #006b50;
  --product-accent-soft: #eaf6f1;

  /* Compatibility aliases for the supplied stage15 markup/token contract. */
  --s15-navy: var(--navy);
  --s15-navy-deep: var(--navy-2);
  --s15-blue: var(--brand-navy);
  --s15-teal: var(--teal);
  --s15-teal-bright: var(--teal-2);
  --s15-cyan: var(--sky);
  --s15-mist: var(--ice);
  --s15-paper: var(--white);
  --s15-ink: var(--ink);
  --s15-body: var(--ink-2);
  --s15-muted: var(--muted);
  --s15-line: var(--line);
  --s15-line-strong: var(--control-line);
  --s15-shadow: var(--shadow);
  --s15-shadow-sm: var(--shadow-sm);
  --s15-max: var(--max);
}

/* 01. Base, intrinsic sizing and keyboard access -------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-block-start: 7rem; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
img, svg { max-inline-size: 100%; }
img { display: block; block-size: auto; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
button, input, select, textarea { max-inline-size: 100%; }
button { color: inherit; }
figure { margin: 0; }
p { margin-block: 0 1rem; }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.25; text-wrap: pretty; }
ul, ol { padding-inline-start: 1.4rem; }
li + li { margin-block-start: .35rem; }
a {
  color: inherit;
  text-underline-offset: .22em;
  text-decoration-thickness: .075em;
  min-inline-size: 44px;
  min-block-size: 44px;
  max-inline-size: 100%;
  display: inline-flex;
  align-items: center;
  overflow-wrap: anywhere;
}
a:hover { text-decoration-thickness: .13em; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--white);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--brand-navy);
}
[hidden] { display: none !important; }
:where([id]) { scroll-margin-block-start: 7rem; }
:where(.header-shell, .hero-shell, .section-head, .split, .card-grid,
       .product-page-shell, .product-content-grid, .product-catalogue-grid,
       .legal-layout, .footer-top, .footer-policies, .field-grid, .form-wrap) > * {
  min-inline-size: 0;
}
.skip-link {
  position: fixed;
  inset-inline-start: 1rem;
  inset-block-start: .75rem;
  z-index: 2000;
  padding: .65rem 1rem;
  background: var(--white);
  color: var(--navy);
  border: 2px solid var(--teal);
  transform: translateY(-220%);
}
.skip-link:focus { transform: none; }
/* No overflow-x:hidden on body/main: defects must not be concealed. */
.site-main { min-inline-size: 0; }
.header-shell, .hero-shell, .trust-grid, .section, .footer-shell,
.product-page-shell, .product-facts, .product-jumpbar, .product-content,
.legal-hero-shell, .portfolio-principles-grid {
  inline-size: min(calc(100% - 2 * var(--gutter)), var(--max));
  margin-inline: auto;
}

/* 02. Shared dark header. Native details remains the mobile menu. ---------- */
.site-header {
  position: sticky;
  inset-block-start: 0;
  z-index: 100;
  background: var(--navy);
  color: var(--white);
  border-block-end: 1px solid #355474;
}
.header-shell {
  display: grid;
  grid-template-columns: 11.5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  min-block-size: 5.5rem;
  padding-block: .65rem;
}
.brand { display: flex; inline-size: 11.5rem; padding-block: .3rem; }
.brand img { inline-size: 100%; block-size: auto; filter: brightness(0) invert(1); }
.brand-filter-defs { position: absolute; inline-size: 0; block-size: 0; overflow: hidden; pointer-events: none; }
/* The inline filter recolours the EXISTING PNG; it does not redraw the mark. */
.brand-light img { filter: url("#galvanta-brand-light"); }
/* Existing SVG icon assets, recoloured without changing their geometry. */
.site-header[data-chrome="galvanta-dark-20260912"] ~ .site-main :is(.trust-icon, .card-icon, .portfolio-principles b) img { filter: url("#galvanta-icon-mint"); }
.desktop-nav ul, .mobile-menu ul { list-style: none; padding: 0; margin: 0; }
.desktop-nav ul { display: flex; align-items: stretch; justify-content: center; }
.desktop-nav li { margin: 0; min-inline-size: 0; }
.nav-link {
  display: flex;
  min-block-size: 48px;
  padding: .65rem .48rem;
  color: #ecf3f7;
  font-size: .8125rem;
  line-height: 1.65;
  font-weight: 650;
  text-decoration: none;
  border-block-end: 3px solid transparent;
}
.nav-link:hover, .nav-link.is-current, .nav-link[aria-current="page"] {
  color: var(--white);
  border-block-end-color: var(--teal-2);
}
.nav-link:hover { background: #12395f; }
.header-actions { display: flex; align-items: center; gap: .65rem; }
.lang-switch, .contact-mini {
  justify-content: center;
  min-block-size: 44px;
  padding: .5rem .65rem;
  color: var(--white);
  font-size: .8125rem;
  line-height: 1.7;
  font-weight: 650;
  text-decoration: none;
  border: 1px solid #829eaf;
  border-radius: .2rem;
}
.lang-switch { border-color: transparent; }
.lang-switch:hover { background: #12395f; }
.contact-mini:hover { border-color: var(--teal-2); background: #12395f; }
.mobile-menu { display: none; }
.mobile-menu summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-inline-size: 44px;
  min-block-size: 44px;
  padding: .5rem .7rem;
  border: 1px solid #829eaf;
  border-radius: .2rem;
  font-size: .875rem;
  font-weight: 650;
  list-style: none;
}
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary::after {
  content: "";
  inline-size: .55rem;
  block-size: .55rem;
  border-inline-end: 2px solid currentColor;
  border-block-end: 2px solid currentColor;
  transform: translateY(-.12rem) rotate(45deg);
}
.mobile-menu[open] summary { border-color: var(--teal-2); background: #12395f; }
.mobile-menu[open] summary::after { transform: translateY(.1rem) rotate(225deg); }
.mobile-menu nav {
  position: absolute;
  inset-inline: 0;
  inset-block-start: 100%;
  padding: .75rem var(--gutter) 1rem;
  background: var(--navy);
  border-block: 1px solid var(--dark-line);
  box-shadow: var(--shadow);
  max-block-size: 70vh;
  max-block-size: calc(100svh - 10rem);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mobile-menu nav li { margin: 0; }
.mobile-menu nav a {
  display: flex;
  padding: .6rem .8rem;
  min-block-size: 48px;
  border-inline-start: 3px solid transparent;
  color: var(--white);
  text-decoration: none;
  line-height: 1.8;
}
.mobile-menu nav a:hover, .mobile-menu nav a.is-current,
.mobile-menu nav a[aria-current="page"] {
  border-inline-start-color: var(--teal-2);
  background: #12395f;
}

/* 03. Corporate hero; the existing content and image order are unchanged. -- */
.hero { border-block-end: 1px solid var(--line); background: linear-gradient(105deg, #fff 35%, var(--ice) 100%); }
.hero-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 4rem);
  padding-block: clamp(2.5rem, 4.5vw, 4.5rem);
}
.eyebrow, .kicker, .visual-break-label, .therapy-state, .preview-label, .status-kicker {
  margin-block: 0 1rem;
  color: var(--teal);
  font-size: .75rem;
  font-weight: 750;
  line-height: 1.8;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.hero h1, .legal-hero h1 {
  margin-block: 0 1.25rem;
  font-family: var(--font-editorial);
  font-weight: 500;
  font-size: clamp(2.35rem, 4.1vw, 4.25rem);
  line-height: 1.1;
  letter-spacing: -.035em;
}
.hero .standfirst, .legal-hero .standfirst { max-inline-size: 43rem; margin-block: 0 1.5rem; color: var(--ink-2); font-size: 1.0625rem; }
.actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 48px;
  padding: .7rem 1.2rem;
  border: 1px solid transparent;
  border-radius: .2rem;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.button-primary { color: var(--white); background: var(--teal); }
.button-primary:hover { background: var(--accent-hover); }
.button-secondary { background: var(--white); border-color: var(--control-line); color: var(--navy); }
.button-secondary:hover { background: var(--sky); border-color: var(--teal); }
.hero-media { position: relative; min-inline-size: 0; }
.hero-image { background: var(--sky); border-radius: var(--radius); overflow: hidden; }
.hero-image img { inline-size: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.hero-note {
  position: relative;
  padding: .8rem 1rem;
  background: var(--navy);
  border-inline-start: 3px solid var(--teal-2);
  color: var(--white);
  font-size: .75rem;
  line-height: 1.7;
}
.trust-strip { background: var(--white); border-block-end: 1px solid var(--line); }
.trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.trust-item { display: flex; align-items: center; gap: .9rem; padding: 1.45rem 1.25rem; min-inline-size: 0; border-inline-end: 1px solid var(--line); }
.trust-item:first-child { border-inline-start: 1px solid var(--line); }
.trust-icon { flex: 0 0 2.25rem; display: grid; place-items: center; color: var(--teal); }
.trust-icon img { inline-size: 2.25rem; block-size: 2.25rem; object-fit: contain; }
.trust-item strong { display: block; font-size: .9375rem; font-weight: 650; line-height: 1.5; }
.trust-item div > span { display: block; color: var(--muted); font-size: .8125rem; line-height: 1.6; margin-block-start: .25rem; }

/* 04. Shared editorial, facts, cards and long-form components. ------------ */
.section { position: relative; padding-block: clamp(3rem, 5vw, 5rem); }
/* Full-bleed backgrounds without a 100vw pseudo-element or hidden overflow. */
.section.soft { background: var(--ice); box-shadow: 0 0 0 100vmax var(--ice); clip-path: inset(0 -100vmax); }
.section.tint { background: var(--sky); box-shadow: 0 0 0 100vmax var(--sky); clip-path: inset(0 -100vmax); }
.section.dark { background: var(--navy); box-shadow: 0 0 0 100vmax var(--navy); clip-path: inset(0 -100vmax); color: var(--white); }
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(1.5rem, 5vw, 4.5rem); align-items: end; margin-block-end: 2.25rem; }
.section h2 { font-family: var(--font-editorial); font-size: clamp(1.9rem, 3vw, 3rem); font-weight: 500; letter-spacing: -.025em; line-height: 1.15; margin-block: 0 .5rem; }
.section-lede { color: var(--muted); margin: 0; max-inline-size: 49rem; font-size: 1rem; }
.split, .product-system { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.split.media-wide { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.prose { color: var(--ink-2); max-inline-size: 48rem; }
.prose strong { color: var(--ink); }
.editorial-image { border-radius: var(--radius); overflow: hidden; background: var(--sky); }
.editorial-image img { inline-size: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.text-link { display: inline-flex; gap: .6rem; min-block-size: 44px; margin-block-start: .3rem; color: var(--teal); font-size: .9rem; font-weight: 700; text-decoration: underline; }
.text-link::after { content: "→"; flex-shrink: 0; }
.card-grid, .category-grid, .metric-grid, .process, .therapy-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.card, .category, .process-step, .therapy-card { background: var(--white); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius); }
.card, .process-step { padding: 1.5rem; }
.card-icon { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; color: var(--teal); background: var(--sky); border-radius: .2rem; }
.card-icon img { inline-size: 1.7rem; block-size: 1.7rem; object-fit: contain; }
.card h3 { margin-block: 1rem .65rem; font-size: 1.0625rem; }
.card p, .process-step p { margin: 0; color: var(--muted); font-size: .9375rem; }
.card-accent { padding: 0; overflow: hidden; }
.card-photo { aspect-ratio: 16 / 7; background: linear-gradient(135deg, var(--sky), var(--ice)); }
.card-body { padding: 1.4rem; }
.card-body h3 { margin-block-start: 0; }
.category { display: flex; flex-direction: column; align-items: stretch; padding: 1rem; text-decoration: none; gap: .7rem; }
.category-visual { aspect-ratio: 2 / 1; background: var(--sky); border-radius: .2rem; }
.category strong { font-size: 1rem; }
.category small { color: var(--muted); }
.category::after { content: "→"; color: var(--teal); }
.category:hover { border-color: var(--teal); }
.metric-grid { gap: 0; border: 1px solid var(--line); background: var(--white); }
.metric { padding: 1.35rem; border-inline-end: 1px solid var(--line); }
.metric:last-child { border-inline-end: 0; }
.metric b { display: block; font-size: 1.5rem; color: var(--teal); }
.metric span { color: var(--muted); font-size: .875rem; }
.process-step { border-block-start: 3px solid var(--teal); }
.process-step b { display: block; color: var(--teal); margin-block-end: .6rem; }
.process-step h3 { font-size: 1.0625rem; margin-block: 0 .7rem; }
.fact-panel { padding: clamp(1rem, 2.2vw, 1.75rem); border: 1px solid var(--line); background: var(--ice); border-radius: var(--radius); }
.facts { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: 1.25rem; margin: 0; }
.facts dt, .facts dd { min-inline-size: 0; margin: 0; padding-block: .8rem; border-block-end: 1px solid var(--line); }
.facts dt { color: var(--muted); font-size: .875rem; }
.facts dd { color: var(--ink); font-size: .9375rem; font-weight: 600; }
.facts dt:last-of-type, .facts dd:last-of-type { border-block-end: 0; }
.timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; padding: 0; margin-block: 2.5rem 0; }
.timeline li { position: relative; padding: 1.45rem 1.25rem 0; margin: 0; border-block-start: 1px solid #91aaa6; }
.timeline li::before { content: ""; position: absolute; inset-block-start: -.4rem; inset-inline-start: 1.25rem; inline-size: .75rem; block-size: .75rem; background: var(--navy); border: 2px solid #b6c9c4; border-radius: 50%; }
.timeline .done::before { background: var(--teal-2); border-color: var(--teal-2); }
.timeline .current::before { border-color: var(--teal-2); box-shadow: 0 0 0 4px rgb(66 236 177 / 15%); }
.timeline b, .timeline strong, .timeline span { display: block; }
.timeline b { color: var(--teal); margin-block-end: .5rem; }
.timeline strong { font-size: 1rem; line-height: 1.6; }
.timeline span { color: var(--muted); font-size: .875rem; margin-block-start: .35rem; }
.notice { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; padding: 1.15rem; margin-block-start: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); }
.notice-icon { display: grid; place-items: center; inline-size: 2rem; block-size: 2rem; color: var(--white); background: var(--teal); border-radius: 50%; }
.notice-icon img { inline-size: 1.2rem; block-size: 1.2rem; filter: brightness(0) invert(1); }
.cta-band { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; padding: clamp(1.4rem, 3vw, 2.75rem); background: var(--navy); color: var(--white); border-inline-start: 4px solid var(--teal-2); border-radius: var(--radius); }
.cta-band .button { background: var(--white); color: var(--navy); }
.cta-band .button:hover { background: var(--sky); }
.cta-band h2, .cta-band h3, .section.dark h2, .section.dark h3 { color: var(--white); }
.cta-band p, .section.dark .section-lede, .section.dark .prose, .section.dark .prose p { color: var(--on-dark); }
.cta-band .kicker, .section.dark .kicker, .section.dark .text-link { color: var(--teal-2); }
.section.dark .card h3, .section.dark .process-step h3 { color: var(--ink); }
.section.dark .notice { border-color: var(--dark-line); }
.section.dark .prose strong { color: var(--white); }
.section.dark .timeline b { color: var(--teal-2); }
.section.dark .timeline span { color: var(--on-dark); }
.brand-line { display: block; inline-size: 3rem; block-size: 3px; margin-block: 1rem; background: var(--teal-2); }

/* Wide landscape band, using ONLY its existing image and copy. */
.visual-break { position: relative; background: var(--navy); color: var(--white); }
.visual-break-shell { display: grid; grid-template-columns: minmax(0, 1fr); }
.visual-break-media, .visual-break-copy { grid-area: 1 / 1; min-inline-size: 0; }
.visual-break-media { position: relative; }
.visual-break-media img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; }
.visual-break-copy { position: relative; padding: clamp(2rem, 5vw, 4.5rem) max(var(--gutter), calc((100% - var(--max)) / 2)); background: linear-gradient(90deg, rgb(0 40 81 / 94%), rgb(0 40 81 / 90%)); }
.visual-break-label { color: var(--teal-2); }
.visual-break-text { max-inline-size: 55rem; margin: 0; color: var(--white); font-family: var(--font-editorial); font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.45; }

/* 05. Portfolio filter + existing product groups. No global search. -------- */
.portfolio-principles { border-block-end: 1px solid var(--line); }
.portfolio-principles-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.portfolio-principles-grid > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem .8rem; padding: 1.25rem; border-inline-end: 1px solid var(--line); }
.portfolio-principles b { grid-row: span 2; color: var(--teal); }
.portfolio-principles span { color: var(--muted); font-size: .875rem; }
.portfolio-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .7rem 1rem; align-items: end; margin-block-start: 1.75rem; padding: 1.3rem; border: 1px solid var(--line); border-block-start: 3px solid var(--teal); border-radius: var(--radius); background: var(--ice); }
.portfolio-tools label { grid-column: 1 / -1; font-size: .875rem; font-weight: 700; color: var(--ink); }
.portfolio-tools input { min-inline-size: 0; inline-size: 100%; min-block-size: 50px; padding: .75rem .9rem; color: var(--ink); background: var(--white); border: 1px solid var(--control-line); border-radius: .2rem; }
.portfolio-tools input::placeholder { color: var(--muted); opacity: 1; }
.portfolio-count { display: flex; gap: .5rem; align-items: center; justify-content: center; min-block-size: 50px; padding: .6rem 1rem; color: var(--white); background: var(--navy); border-radius: .2rem; }
.portfolio-count strong { font-size: 1.25rem; }
.product-catalogue-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-block-start: 2rem; }
.product-catalogue-card { display: flex; flex-direction: column; align-items: stretch; gap: .9rem; min-inline-size: 0; padding: .8rem .8rem 1.1rem; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); background: var(--white); text-decoration: none; }
.product-catalogue-card:hover { border-color: var(--teal); box-shadow: var(--shadow-sm); }
.product-catalogue-card img { inline-size: 100%; aspect-ratio: 3 / 2; object-fit: contain; border-radius: .2rem; background: var(--ice); }
.product-catalogue-card h3 { margin: .1rem .35rem .5rem; font-size: 1.125rem; }
.product-catalogue-card p { margin: .3rem .35rem; color: var(--muted); font-size: .875rem; }
.product-catalogue-card strong { display: inline-block; padding: .3rem .55rem; margin: .25rem .35rem; background: var(--sky); color: var(--teal); border-radius: .15rem; font-size: .875rem; }
.product-group-section + .product-group-section { padding-block-start: 1rem; }
#product-no-results { padding: 1.25rem; color: var(--ink); background: var(--ice); border-inline-start: 3px solid var(--teal); }
.therapy-card { overflow: hidden; }
.therapy-visual { display: grid; place-items: center; aspect-ratio: 2 / 1; background: var(--sky); }
.therapy-visual img { inline-size: 6rem; }
.therapy-body { padding: 1.25rem; }
.therapy-body h3 { margin-block: .5rem; font-size: 1.0625rem; }
.therapy-body p { margin: 0; color: var(--muted); font-size: .9375rem; }
.product-system-copy { display: grid; gap: 1.25rem; }
.product-layer { border-inline-start: 3px solid var(--teal); padding-inline-start: 1.25rem; }
.product-layer span { font-size: .8125rem; color: var(--teal); font-weight: 700; }
.product-layer h3 { margin-block: .5rem; }
.product-layer p { color: var(--muted); }
.product-preview { border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.preview-top { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 1.5rem; padding: 1.5rem; }
.preview-pack { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 2rem 1rem; color: var(--white); background: var(--navy); }
.preview-pack span { font-family: var(--font-editorial); font-size: 1.75rem; }
.preview-pack small { color: var(--on-dark); }
.preview-top h3 { margin-block: .5rem; font-size: 1.75rem; }
.preview-top p { color: var(--muted); }
.preview-badges { display: flex; flex-wrap: wrap; gap: .5rem; }
.preview-badges span { padding: .4rem .6rem; color: var(--teal); background: var(--sky); font-size: .8125rem; }
.preview-tabs { display: flex; flex-wrap: wrap; gap: .6rem 1rem; padding: .9rem 1.5rem; border-block: 1px solid var(--line); color: var(--ink-2); font-size: .875rem; }
.preview-tabs span:first-child { border-block-end: 3px solid var(--teal-2); }
.preview-body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.preview-body div { padding: 1.15rem; border-inline-end: 1px solid var(--line); }
.preview-body small, .preview-body strong { display: block; }
.preview-body small { color: var(--muted); font-size: .8125rem; }
.status-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.status-columns > div { padding: 1.5rem; border: 1px solid var(--dark-line); }
.status-kicker { color: var(--teal); }
.section.dark .status-kicker { color: var(--teal-2); }
.section.dark .status-columns li { color: var(--on-dark); }
.status-columns ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.status-columns li { margin: 0; color: var(--ink-2); }

/* 06. Product family accents. Names/selectors preserved; text-safe values. -- */
.stage15.page-product { --product-accent: #006b50; --product-accent-soft: #eaf6f1; }
.stage15.page-product.form-tablet { --product-accent: #235f91; --product-accent-soft: #edf4fa; }
.stage15.page-product.form-capsule { --product-accent: #006b50; --product-accent-soft: #edf8f5; }
.stage15.page-product.form-pen { --product-accent: #006a5b; --product-accent-soft: #eaf7f3; }
.stage15.page-product.form-topical { --product-accent: #566d9c; --product-accent-soft: #f0f3fa; }
.stage15.page-product.form-suspension { --product-accent: #476e86; --product-accent-soft: #eff5f7; }
.product-page-hero { border-block-end: 1px solid var(--line); background: linear-gradient(100deg, #fff 35%, var(--product-accent-soft)); }
.product-page-shell { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(1.75rem, 4vw, 4rem); align-items: center; padding-block: clamp(2.5rem, 4vw, 4rem); }
.product-page-hero h1 { font-family: var(--font-body); font-size: clamp(2.5rem, 4.4vw, 4.5rem); font-weight: 750; letter-spacing: -.04em; line-height: 1.06; margin-block: 0 .7rem; }
.product-strength { color: var(--product-accent); font-size: 1.5rem; font-weight: 700; margin-block: .4rem; }
.product-form { color: var(--navy); font-size: 1.125rem; font-weight: 600; margin-block: .3rem 1rem; }
.product-page-intro { color: var(--ink-2); margin-block: 1rem; font-size: .9375rem; line-height: 1.8; }
.product-status-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: 1.5rem; }
.product-status-row span { flex: 1 1 8rem; padding: .7rem .8rem; border-inline-start: 2px solid var(--product-accent); background: var(--white); color: var(--ink-2); font-size: .8125rem; line-height: 1.6; }
.product-packshot { margin: 0; }
.product-packshot img { inline-size: 100%; aspect-ratio: 3 / 2; object-fit: contain; background: var(--product-accent-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.product-packshot small { display: block; color: var(--muted); font-size: .8125rem; line-height: 1.7; margin-block-start: .8rem; }
.product-facts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: var(--white); border-block-end: 1px solid var(--line); }
.product-facts > div { padding: 1.25rem 1rem; border-inline-end: 1px solid var(--line); min-inline-size: 0; }
.product-facts > div:first-child { border-inline-start: 1px solid var(--line); }
.product-facts small { display: block; color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .045em; }
.product-facts strong { display: block; color: var(--ink); font-size: .9375rem; margin-block-start: .45rem; line-height: 1.65; }
.product-jumpbar { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0; margin-block-start: .5rem; border-block-end: 1px solid var(--line); background: var(--white); padding-block: .3rem; }
.product-jumpbar a { flex: 0 1 auto; justify-content: center; min-block-size: 50px; padding: .7rem 1rem; border-block-end: 3px solid transparent; color: var(--ink-2); font-size: .875rem; font-weight: 650; text-decoration: none; }
.product-jumpbar a:first-child { border-block-end-color: var(--teal-2); color: var(--navy); font-weight: 800; }
.product-jumpbar a:hover, .product-jumpbar a.is-current, .product-jumpbar a[aria-current] { border-block-end-color: var(--teal-2); background: var(--ice); color: var(--navy); }
/* Progressive enhancement: real fragment links, NOT invented ARIA tabs.
 * Selection follows the URL target; no JS and no false scrollspy claim. */
@supports selector(body:has(.product-section:target)) {
  body:has(.product-section:target) .product-jumpbar a:first-child { border-block-end-color: transparent; font-weight: 650; }
  body:has(#product-section-1:target) .product-jumpbar a[href="#product-section-1"],
  body:has(#product-section-2:target) .product-jumpbar a[href="#product-section-2"],
  body:has(#product-section-3:target) .product-jumpbar a[href="#product-section-3"],
  body:has(#product-section-4:target) .product-jumpbar a[href="#product-section-4"],
  body:has(#product-section-5:target) .product-jumpbar a[href="#product-section-5"],
  body:has(#product-section-6:target) .product-jumpbar a[href="#product-section-6"],
  body:has(#product-section-7:target) .product-jumpbar a[href="#product-section-7"] { border-block-end-color: var(--teal-2); color: var(--navy); background: var(--ice); font-weight: 800; }
}
.product-content { padding-block: clamp(2rem, 4vw, 3.5rem); }
.product-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .38fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.product-section { margin-block: 0 1.5rem; padding: clamp(1.1rem, 2vw, 1.8rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.product-section .kicker { color: var(--product-accent); font-size: .75rem; }
.product-section h2 { color: var(--navy); font-family: var(--font-body); font-size: clamp(1.375rem, 2vw, 1.875rem); font-weight: 650; line-height: 1.3; margin-block: 0 1rem; }
.product-section h2::after { content: ""; display: block; inline-size: 2.5rem; block-size: 3px; margin-block-start: .8rem; background: var(--product-accent); }
.product-section h3 { font-size: 1.0625rem; }
.product-section p, .product-section li { color: var(--ink-2); font-size: .9375rem; line-height: 1.85; }
.product-info-table { inline-size: 100%; table-layout: fixed; border-collapse: collapse; margin-block: 1.25rem; }
.product-info-table th, .product-info-table td { padding: .85rem; border: 1px solid var(--line); text-align: start; vertical-align: top; font-size: .875rem; overflow-wrap: anywhere; }
.product-info-table th { inline-size: 32%; background: var(--product-accent-soft); color: var(--ink); }
.product-sidebar { display: grid; gap: 1rem; }
/* Not sticky: long translated notices remain fully reachable on short screens. */
.product-sidecard { padding: 1.25rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--product-accent-soft); }
.product-sidecard h3 { margin-block: 0 .8rem; font-size: 1rem; }
.product-sidecard h3::before { content: ""; display: inline-block; inline-size: .7rem; block-size: .7rem; margin-inline-end: .55rem; border: 2px solid var(--product-accent); border-radius: 50%; }
.product-sidecard p, .product-sidecard li { font-size: .875rem; color: var(--ink-2); }
.product-warning { background: #fff8ee; border-color: #d6b58a; }
.product-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.product-related a { display: block; padding: 1rem; border: 1px solid var(--line); border-radius: .2rem; background: var(--ice); text-decoration: none; }
.product-related a:hover { border-color: var(--teal); }
.product-related span { display: block; font-size: .8125rem; color: var(--muted); margin-block-start: .4rem; }
/* Existing product enquiry anchors remain ordinary contact links, not actions. */
.product-content a.button[href="/contact/"], .product-content a.button[href="/km/contact/"],
.product-jumpbar a[href="/contact/"], .product-jumpbar a[href="/km/contact/"] {
  padding: .5rem .15rem;
  min-block-size: 44px;
  color: var(--teal);
  background: transparent;
  border: 0;
  border-radius: 0;
  text-decoration: underline;
  font-size: .9375rem;
  justify-content: flex-start;
}
.product-content a.button[href$="/contact/"]:hover { color: var(--accent-hover); }

/* Desktop product composition: the existing five facts become the right-hand
 * fact list. Only non-semantic layout wrappers use display:contents; the actual
 * main, section, nav and aside elements retain their semantics and source order.
 * Max-content on the facts row prevents long articles from stretching the gap
 * between the facts and the existing regulatory sidebar notices. */
@media (min-width: 64.001rem) {
  .page-product .site-main {
    display: grid;
    inline-size: min(calc(100% - 2 * var(--gutter)), var(--max));
    margin-inline: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, .38fr);
    grid-template-rows: auto auto max-content 1fr;
    column-gap: clamp(1.5rem, 3vw, 3rem);
    align-items: start;
    padding-block-end: 3rem;
  }
  .page-product .product-page-hero { grid-column: 1 / -1; grid-row: 1; }
  .page-product .product-page-shell { inline-size: 100%; }
  .page-product .product-jumpbar { grid-column: 1 / -1; grid-row: 2; inline-size: 100%; margin-block-end: 2rem; }
  .page-product .product-facts { grid-column: 2; grid-row: 3; inline-size: 100%; display: block; margin: 0; background: var(--product-accent-soft); border: 1px solid var(--line); border-radius: var(--radius); }
  .page-product .product-facts > div { display: grid; grid-template-columns: 1rem minmax(0, 1fr); gap: .3rem .7rem; border: 0; border-block-end: 1px solid var(--line); }
  .page-product .product-facts > div:last-child { border-block-end: 0; }
  .page-product .product-facts > div::before { content: ""; grid-column: 1; grid-row: 1 / span 2; display: block; inline-size: .85rem; block-size: 1rem; border: 1.5px solid var(--product-accent); border-radius: .2rem; margin-block-start: .2rem; }
  .page-product .product-facts small, .page-product .product-facts strong { grid-column: 2; margin: 0; }
  .page-product .product-content, .page-product .product-content-grid { display: contents; }
  .page-product .product-content-grid > div { grid-column: 1; grid-row: 3 / 5; min-inline-size: 0; }
  .page-product .product-sidebar { grid-column: 2; grid-row: 4; align-self: start; padding-block-start: 1rem; }
}

/* 07. Legal/policy system; all supplied component hooks are retained. ------ */
.legal-hero { color: var(--white); background: var(--navy); }
.legal-hero-shell { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; padding-block: clamp(3rem, 5vw, 5rem); }
.legal-hero h1 { color: var(--white); }
.legal-hero .eyebrow { color: var(--teal-2); }
.legal-hero .standfirst { color: var(--on-dark); margin: 0; }
.legal-hero-panel { padding: 1.4rem; border: 1px solid #829eaf; border-block-start: 3px solid var(--teal-2); background: #12395f; }
.legal-hero-panel span { display: block; color: var(--teal-2); font-size: .8125rem; font-weight: 700; margin-block-end: .7rem; }
.legal-hero-panel strong { display: block; color: var(--white); }
.legal-hero-panel p { color: var(--on-dark); font-size: .875rem; margin-block: .7rem 0; }
.legal-layout { display: grid; grid-template-columns: minmax(0, .36fr) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.legal-sidebar { padding: 1.4rem; border: 1px solid var(--line); border-block-start: 3px solid var(--teal); background: var(--ice); border-radius: var(--radius); }
.legal-sidebar p { color: var(--muted); font-size: .9375rem; }
.legal-toc { display: grid; margin-block-start: 1.3rem; padding-block-start: 1rem; border-block-start: 1px solid var(--line); }
.legal-toc strong { margin-block-end: .5rem; font-size: .875rem; }
.legal-toc a { display: flex; padding: .65rem .6rem; border-inline-start: 2px solid transparent; text-decoration: none; font-size: .875rem; line-height: 1.65; }
.legal-toc a:hover { border-inline-start-color: var(--teal); background: var(--white); }
.legal-content { min-inline-size: 0; }
.legal-section { padding: clamp(1.1rem, 2.5vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius); margin-block: 0 1.25rem; background: var(--white); }
.legal-section h2 { margin-block: 0 1rem; font-family: var(--font-editorial); font-size: clamp(1.6rem, 2.4vw, 2.35rem); line-height: 1.25; }
.legal-section p, .legal-section li, .legal-section dd { color: var(--ink-2); font-size: 1rem; line-height: 1.85; }
.legal-list li { padding-inline-start: .2rem; margin-block: .6rem; }
.legal-list li::marker { color: var(--teal); }
.legal-defs { display: grid; grid-template-columns: minmax(0, .55fr) minmax(0, 1fr); gap: 0 1.5rem; margin-block: 1.25rem; border-block-start: 1px solid var(--line); }
.legal-defs dt, .legal-defs dd { margin: 0; padding-block: 1rem; border-block-end: 1px solid var(--line); }
.legal-defs dt { color: var(--ink); font-weight: 700; }
.legal-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; margin-block: 1.3rem; }
.legal-link-grid a { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--ice); text-decoration: none; }
.legal-link-grid a:hover { border-color: var(--teal); background: var(--white); }
.legal-link-grid span { color: var(--muted); font-size: .8125rem; }
.legal-note, .legal-status, .emergency-note, .form-caution, .regulatory-review-date,
.regulatory-context, .product-jurisdiction-note, .form-safety-note {
  padding: 1rem 1.15rem;
  margin-block: 1.25rem;
  border-inline-start: 3px solid var(--teal);
  border-radius: .15rem;
  color: var(--ink-2);
  background: var(--sky);
  font-size: .9375rem;
  line-height: 1.85;
}
.emergency-note, .form-safety-note { border-inline-start-color: #91612b; background: #fff8ee; }
.form-caution { border-inline-start-color: var(--muted); background: var(--ice); margin-block-start: 0; }
.product-jurisdiction-note { border-inline-start-color: var(--product-accent); background: var(--product-accent-soft); }

/* 08. Contact fields. Names, hidden fields and Turnstile JS untouched. ------ */
.form-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.form-main { min-inline-size: 0; }
.contact-aside { background: var(--navy); border-radius: var(--radius); overflow: hidden; }
.contact-aside > img { inline-size: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.contact-aside-copy { padding: clamp(1.2rem, 2.5vw, 2rem); color: var(--white); }
.contact-aside-copy h2 { color: var(--white); font-size: clamp(1.6rem, 2.3vw, 2.3rem); }
.contact-aside-copy p { color: var(--on-dark); }
.contact-aside-copy .kicker { color: var(--teal-2); }
.enquiry-form { position: relative; display: grid; gap: 1.1rem; padding: clamp(1rem, 2.5vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.field { display: grid; gap: .5rem; min-inline-size: 0; }
.field label { font-size: .9375rem; color: var(--ink); font-weight: 650; }
.field input, .field select, .field textarea { min-inline-size: 0; inline-size: 100%; min-block-size: 48px; padding: .75rem; border: 1px solid var(--control-line); border-radius: .2rem; color: var(--ink); background: var(--white); }
.field textarea { min-block-size: 10rem; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: var(--muted); opacity: 1; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--teal); }
/* Keep the existing anti-spam input visually and spatially isolated. */
.field-honeypot { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.consent { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: .6rem; align-items: start; min-block-size: 44px; color: var(--ink-2); font-size: .875rem; }
.consent input { inline-size: 24px; block-size: 24px; margin: 10px; accent-color: var(--teal); }
.consent a { color: var(--teal); }
.enquiry-form button { justify-self: start; min-block-size: 48px; }
.form-safety-note { margin-block-start: 0; }
.turnstile-field { align-content: start; min-inline-size: 0; }
.cf-turnstile { min-block-size: 65px; max-inline-size: 100%; }
.cf-turnstile iframe { max-inline-size: 100%; }
.turnstile-noscript { color: var(--muted); font-size: .875rem; line-height: 1.7; }
/* A 300px normal Turnstile fits a 320px viewport only without nested padding.
 * No iframe scaling, clipping or data-size/field-name rewrite is performed. */
@media (max-width: 23rem) {
  .form-main { margin-inline: calc(.5rem - var(--gutter)); }
  .form-main .enquiry-form { padding-inline: 0; border-inline: 0; }
  .form-main .form-caution, .form-main .form-safety-note { padding-inline: .6rem; }
}

/* 09. Dark footer. Existing legal links stay visible; no invented contacts. */
.site-footer { background: var(--navy-2); color: var(--white); border-block-start: 2px solid var(--teal-2); padding-block: clamp(2.5rem, 4vw, 4rem) 1rem; }
.footer-top { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, .7fr); gap: clamp(1.25rem, 2.8vw, 2.5rem); padding-block-end: 2.25rem; }
.footer-brandmark { inline-size: min(100%, 13rem); margin-block-end: 1.1rem; }
.footer-brandmark img { inline-size: 100%; block-size: auto; filter: brightness(0) invert(1); }
.footer-brandmark.brand-light img { filter: url("#galvanta-brand-light"); }
/* Existing SVG icon assets, recoloured without changing their geometry. */
.site-header[data-chrome="galvanta-dark-20260912"] ~ .site-main :is(.trust-icon, .card-icon, .portfolio-principles b) img { filter: url("#galvanta-icon-mint"); }
.footer-intro { margin-block: 0 1rem; color: var(--on-dark); font-size: .875rem; line-height: 1.75; max-inline-size: 31rem; }
.footer-reg { display: inline-block; padding: .55rem .65rem; border: 1px solid var(--dark-line); border-radius: .15rem; color: var(--on-dark); font-size: .8125rem; line-height: 1.7; }
.site-footer h2 { margin-block: 0 .75rem; color: var(--white); font-size: .9375rem; font-weight: 650; line-height: 1.65; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 0; }
.site-footer a { color: var(--on-dark); text-decoration: none; min-block-size: 44px; min-inline-size: 44px; padding-block: .5rem; font-size: .875rem; line-height: 1.65; }
.site-footer a:hover { color: var(--white); text-decoration: underline; }
.footer-link-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.footer-contact .footer-office { color: var(--on-dark); font-size: .875rem; line-height: 1.8; }
.footer-office strong { display: block; color: var(--white); margin-block-end: .4rem; }
.footer-contact > a { color: var(--teal-2); text-decoration: underline; margin-block-start: .8rem; }
.footer-social { margin-block-start: .8rem; }
.footer-social a { border: 1px solid var(--dark-line); padding: .5rem .75rem; border-radius: .15rem; }
.footer-signature { display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.footer-map { display: block; inline-size: min(100%, 9rem); block-size: auto; color: #77938f; }
.footer-map .map-dot { fill: var(--teal-2); }
.footer-motto { color: var(--on-dark); font-size: .75rem; letter-spacing: .15em; line-height: 2; text-align: center; margin: 0; }
.footer-motto span { display: block; }
.footer-policies { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 2.5rem; padding-block: 1.75rem; border-block-start: 1px solid var(--dark-line); }
.footer-policies ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1.5rem; }
.footer-disclosure { color: var(--on-dark); max-inline-size: 80rem; font-size: .8125rem; line-height: 1.8; margin-block: .5rem 1.75rem; }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; padding-block-start: .75rem; border-block-start: 1px solid var(--dark-line); }
.footer-copy { color: var(--on-dark); font-size: .8125rem; line-height: 1.8; }
.footer-bottom .footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1rem; margin-inline-start: auto; }
.footer-legal a { font-size: .8125rem; justify-content: center; }
.footer-language { display: inline-flex; align-items: center; gap: .25rem; color: var(--on-dark); }
.footer-language a { justify-content: center; font-size: .8125rem; font-weight: 700; }
.footer-language a[aria-current="page"] { color: var(--teal-2); text-decoration: underline; }
/* CSS-only fallback for the unmodified legacy footer. */
.footer-shell > .footer-legal { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; padding-block: 1.5rem; border-block-start: 1px solid var(--dark-line); }
.footer-shell > .footer-legal nav { display: flex; flex-wrap: wrap; gap: .6rem; }

/* 10. Existing first-party notice. No storage/consent behaviour changes. --- */
.site-entry-notice { position: fixed; inset-inline: 1rem; inset-block-end: 1rem; z-index: 1000; max-inline-size: 76rem; max-block-size: calc(100vh - 2rem); max-block-size: calc(100svh - 2rem); overflow-y: auto; margin-inline: auto; padding: 1.2rem; background: var(--navy-2); color: var(--white); border: 1px solid var(--teal-2); border-radius: var(--radius); box-shadow: var(--shadow); }
.site-entry-notice > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: .65rem; }
.site-entry-notice strong { font-size: .9375rem; }
.site-entry-notice p { margin: 0; color: var(--on-dark); font-size: .875rem; line-height: 1.8; }
.site-entry-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: .65rem; }
.site-entry-actions a, .site-entry-actions button { display: inline-flex; align-items: center; justify-content: center; min-block-size: 44px; min-inline-size: 44px; padding: .65rem .85rem; font-size: .8125rem; font-weight: 650; line-height: 1.75; border: 1px solid #829eaf; border-radius: .15rem; }
.site-entry-actions a { color: var(--white); text-decoration: none; }
.site-entry-actions a:hover { border-color: var(--teal-2); }
.site-entry-actions button { color: var(--navy-2); background: var(--teal-2); border-color: var(--teal-2); }
.site-entry-actions button:hover { background: #a1f5d6; }

/* 11. Khmer uses only the already declared system fallback fonts. --------- */
html[lang="km"] body { line-height: 1.95; }
html[lang="km"] :is(h1, h2, h3, h4) { font-family: var(--font-body); letter-spacing: normal; line-height: 1.5; }
html[lang="km"] :is(.eyebrow, .kicker, .visual-break-label, .therapy-state, .preview-label, .status-kicker, .legal-hero-panel span) { letter-spacing: normal; text-transform: none; line-height: 1.9; }
html[lang="km"] :is(.nav-link, .button, .lang-switch, .contact-mini, .site-footer a) { line-height: 1.95; }
html[lang="km"] .footer-motto { font-family: var(--font-body); }

/* 12. Responsive: fluid grids, wrapping links; never a fixed text height. -- */
@media (max-width: 80rem) {
  .site-header { position: relative; }
  .header-shell { grid-template-columns: minmax(0, 1fr) auto auto; }
  .desktop-nav { display: none; }
  .mobile-menu { display: block; justify-self: end; }
  .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .footer-signature { flex-direction: row; align-items: center; justify-content: flex-start; }
  .footer-motto { text-align: start; }
  .footer-map { inline-size: 7rem; }
}
@media (max-width: 64rem) {
  .hero-shell, .product-page-shell, .legal-hero-shell { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .hero-copy { max-inline-size: 47rem; }
  .hero-image img { aspect-ratio: 16 / 9; }
  .hero h1 { font-size: clamp(2.35rem, 5.5vw, 4.25rem); }
  .trust-grid, .card-grid, .category-grid, .metric-grid, .process, .therapy-grid, .portfolio-principles-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trust-item { border-block-end: 1px solid var(--line); }
  .trust-item:nth-child(odd) { border-inline-start: 1px solid var(--line); }
  .section-head, .legal-layout, .form-wrap { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .product-content-grid { grid-template-columns: minmax(0, 1fr); }
  .product-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-catalogue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-facts > div { border-block-end: 1px solid var(--line); }
  .product-facts > div:nth-child(3n+1) { border-inline-start: 1px solid var(--line); }
  .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 0; }
  .cta-band { grid-template-columns: minmax(0, 1fr); }
  .cta-band .button { justify-self: start; }
  .contact-aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-aside > img { block-size: 100%; aspect-ratio: auto; }
}
@media (max-width: 48rem) {
  .split, .split.media-wide, .product-system { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .product-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-facts > div:nth-child(3n+1) { border-inline-start: 0; }
  .product-facts > div:nth-child(odd) { border-inline-start: 1px solid var(--line); }
  .product-facts > div:last-child { grid-column: 1 / -1; }
  .footer-policies { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .footer-bottom .footer-legal { margin-inline-start: 0; }
  .footer-shell > .footer-legal { grid-template-columns: minmax(0, 1fr); }
  .legal-link-grid { grid-template-columns: minmax(0, 1fr); }
  .product-related { grid-template-columns: minmax(0, 1fr); }
  .product-info-table th, .product-info-table td { display: block; inline-size: 100%; }
  .product-info-table th { border-block-end: 0; }
  .product-info-table tr + tr th { border-block-start: 0; }
  .preview-top { grid-template-columns: minmax(0, 1fr); }
  .status-columns { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 40rem) {
  .header-shell { grid-template-columns: minmax(0, 1fr) auto; gap: .4rem .75rem; }
  .brand { inline-size: min(100%, 10.5rem); grid-column: 1; grid-row: 1; }
  .mobile-menu { grid-column: 2; grid-row: 1; }
  .header-actions { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; padding-block-start: .25rem; border-block-start: 1px solid var(--dark-line); }
  .hero h1 { font-size: clamp(2.25rem, 8.8vw, 3.5rem); }
  .hero .standfirst { font-size: 1rem; }
  .card-grid, .category-grid, .process, .therapy-grid, .product-catalogue-grid, .product-sidebar, .field-grid { grid-template-columns: minmax(0, 1fr); }
  .trust-item { align-items: start; padding: 1rem .75rem; gap: .65rem; }
  .trust-icon { flex-basis: 1.75rem; }
  .trust-icon img { inline-size: 1.75rem; block-size: 1.75rem; }
  .product-jumpbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; }
  .product-jumpbar a { padding-inline: .5rem; justify-content: flex-start; }
  .portfolio-tools { grid-template-columns: minmax(0, 1fr); }
  .portfolio-count { justify-content: flex-start; }
  .footer-top { grid-template-columns: minmax(0, 1fr); }
  .footer-policies ul { grid-template-columns: minmax(0, 1fr); }
  .footer-signature { border-block-start: 1px solid var(--dark-line); padding-block-start: 1.5rem; }
  .facts, .legal-defs { grid-template-columns: minmax(0, 1fr); }
  .facts dt, .legal-defs dt { border-block-end: 0; padding-block-end: .2rem; }
  .facts dd, .legal-defs dd { padding-block-start: .2rem; }
  .timeline { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .timeline li { border-block-start: 0; border-inline-start: 1px solid #91aaa6; padding: .75rem 1.25rem 1.5rem; }
  .timeline li::before { inset-inline-start: -.4rem; inset-block-start: 1.2rem; }
  .contact-aside { display: block; }
  .contact-aside > img { block-size: auto; aspect-ratio: 16 / 9; }
  .preview-body { grid-template-columns: minmax(0, 1fr); }
  .preview-body div { border-inline-end: 0; border-block-end: 1px solid var(--line); }
  .status-columns ol { grid-template-columns: minmax(0, 1fr); }
  .site-entry-notice { inset-inline: .6rem; inset-block-end: .6rem; padding: 1rem; }
  .site-entry-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .site-entry-actions a { justify-content: flex-start; }
}
@media (max-width: 25rem) {
  .trust-grid, .metric-grid, .portfolio-principles-grid, .product-facts { grid-template-columns: minmax(0, 1fr); }
  .trust-item { border-inline-start: 1px solid var(--line); }
  .product-facts > div { border-inline-start: 1px solid var(--line) !important; }
  .metric { border-inline-end: 0; border-block-end: 1px solid var(--line); }
  .metric:last-child { border-block-end: 0; }
  .actions { display: grid; grid-template-columns: minmax(0, 1fr); }
}

/* 13. Reduced motion, system high contrast and paper output. -------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  :is(.brand, .footer-brandmark).brand-light img, .brand img, .footer-brandmark img { filter: none; background: white; }
  .nav-link.is-current, .mobile-menu a[aria-current="page"], .product-jumpbar a:first-child { border-color: Highlight; }
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid Highlight; box-shadow: none; }
  .button, .lang-switch, .contact-mini, .card, .product-sidecard { border: 1px solid ButtonText; }
  .section.soft, .section.tint, .section.dark { box-shadow: none; clip-path: none; }
}
@media print {
  .site-header, .site-footer, .site-entry-notice, .mobile-menu, .skip-link,
  .portfolio-tools, .turnstile-field, .product-jumpbar { display: none !important; }
  body { color: #000; background: #fff; font-size: 11pt; }
  .page-product .site-main { display: block; inline-size: 100%; padding: 0; }
  .page-product .product-content, .page-product .product-content-grid { display: block; }
  .page-product .product-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section.dark :is(.prose, .prose p, .prose strong, .kicker, .text-link, .timeline b, .timeline span) { color: #000; }
  a { color: #000; display: inline; min-inline-size: 0; min-block-size: 0; text-decoration: underline; }
  .section, .hero-shell, .product-page-shell, .product-facts, .product-content, .legal-hero-shell { inline-size: 100%; padding-block: 1rem; }
  .section.soft, .section.tint, .section.dark { box-shadow: none; clip-path: none; background: #fff; color: #000; }
  .hero, .legal-hero, .product-page-hero, .cta-band, .contact-aside, .visual-break { background: #fff; color: #000; }
  .hero-shell, .product-page-shell, .product-content-grid, .legal-layout, .legal-hero-shell, .form-wrap { display: block; }
  .hero-image, .visual-break-media { display: none; }
  .visual-break-copy { background: #fff; color: #000; padding: 1rem 0; }
  .visual-break-text, .visual-break-label, .section.dark h2, .section.dark .section-lede,
  .legal-hero h1, .legal-hero .standfirst, .legal-hero-panel *, .timeline *, .cta-band * { color: #000; }
  .legal-hero-panel { background: #fff; }
  .product-section, .legal-section, .card, .product-sidecard { box-shadow: none; break-inside: avoid; }
  .product-packshot img { max-inline-size: 32rem; }
  .product-sidebar { display: block; }
  .product-sidecard { margin-block-end: 1rem; }
  .legal-note, .form-safety-note, .form-caution, .emergency-note { background: #fff; color: #000; border: 1px solid #888; }
}
