:root {
  --surface:#fff;
  --warm:#f6f4ef;
  --ink:#222824;
  --muted:#5b625e;
  --gold:#80601f;
  --hover:#684c16;
  --active:#503b10;
  --line:#d8dcd6;
  --control:#747b75;
  --focus:#175fad;
  --error:#a32929;
  --success:#28623d;
  --radius:6px
}

/* Publication components: metrics, client references and the inquiry helper. */
.stats-section { border-block:1px solid var(--line); background:var(--warm); }
.stats-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding-block:28px; }
.stats-grid strong { display:block; font-size:clamp(1.5rem,2.2vw,2.2rem); line-height:1.2; }
.stats-grid span { display:block; color:var(--muted); margin-top:8px; font-size:.875rem; }
.client-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-block:36px; }
.client-grid>div { display:flex; align-items:center; justify-content:center; min-height:104px; padding:20px; border:1px solid var(--line); background:#fff; }
.client-grid img { max-height:65px; max-width:100%; object-fit:contain; width:auto; }
.metrics-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-block:32px; }
.metrics-grid>div { padding:20px; border-top:1px solid var(--line); }
.metrics-grid dt { color:var(--muted); }
.metrics-grid dd { margin:8px 0 0; font-size:1.8rem; font-weight:700; }
.form-grid { display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:24px; }
.form-grid label { display:block; margin-bottom:8px; font-weight:600; }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; min-width:0; color:var(--ink); background:var(--surface); border:1px solid var(--control); border-radius:4px; padding:12px; }
.form-grid textarea { resize:vertical; }
.inquiry-notice { font-size:.875rem; color:var(--muted); margin-block:16px; }
.inquiry-consent { display:flex; align-items:flex-start; gap:12px; margin-block:20px; }
.inquiry-consent input { flex:none; width:20px; height:20px; margin:4px 0 0; accent-color:var(--gold); }
.inquiry-consent input:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.inquiry-captcha { margin-block:20px; }
.inquiry-captcha p { margin-bottom:12px; }
#inquiry-form .button:disabled { opacity:.65; cursor:default; }
#inquiry-form .status[data-state="error"] { color:var(--error); }
#inquiry-form .status[data-state="success"] { color:var(--success); }
.form-grid input:focus-visible,.form-grid textarea:focus-visible,.form-grid select:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
address { font-style:normal; margin-top:16px; }
.privacy-content { max-width:800px; }
.copy-email-manual { margin-block:16px; }
.copy-email-manual label { display:block; margin-bottom:8px; font-weight:600; }
.copy-email-manual input { width:100%; max-width:28rem; padding:12px; border:1px solid var(--control); border-radius:4px; color:var(--ink); background:var(--surface); }
@media(min-width:640px) { .stats-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .form-wide { grid-column:1/-1; } }
@media(min-width:960px) { .client-grid { grid-template-columns:repeat(6,minmax(0,1fr)); } .metrics-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:399px) { .client-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media print { .client-grid { display:none; } [data-print-catalog],.product-actions,[data-enlarge] { display:none!important; } .card { break-inside:avoid; } .section { break-inside:auto; } }

* {
  box-sizing:border-box
}

html {
  scroll-behavior:auto
}

body {
  margin:0;
  color:var(--ink);
  background:var(--surface);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  font-size:1rem;
  line-height:1.65
}

img {
  max-width:100%;
  height:auto;
  display:block
}

button,input,textarea,select {
  font:inherit
}

button,a {
  -webkit-tap-highlight-color:transparent
}

a {
  color:var(--gold);
  text-underline-offset:.2em;
  text-decoration-thickness:1px
}

a:hover {
  color:var(--hover)
}

button {
  cursor:pointer
}

button:disabled {
  cursor:default
}

a,button,input,summary {
  touch-action:manipulation
}

a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:3px
}

h1,h2,h3,p,figure,dl {
  margin:0
}

h1,h2,h3 {
  line-height:1.2;
  letter-spacing:-.025em
}

h1 {
  font-size:clamp(2rem,1.6rem + 2vw,2.75rem);
  font-weight:700
}

h2 {
  font-size:clamp(1.75rem,1.25rem + 1.5vw,2.25rem)
}

h3 {
  font-size:1.25rem;
  font-weight:600;
  line-height:1.35
}

p {
  max-width:65ch
}

p+p {
  margin-top:1rem
}

ul,ol {
  padding-left:1.3rem
}

li+li {
  margin-top:.4rem
}

[hidden] {
  display:none!important
}

.wrap {
  width:calc(100% - 2rem);
  max-width:1200px;
  margin-inline:auto;
  min-width:0
}

.skip {
  position:absolute;
  left:1rem;
  top:-6rem;
  z-index:30;
  background:#fff;
  padding:1rem
}

.skip:focus {
  top:.5rem
}

.review-strip {
  background:var(--ink);
  color:#fff;
  font-size:.8125rem;
  line-height:1.5;
  padding:.5rem 0
}

.review-strip .wrap {
  display:flex;
  gap:1rem;
  justify-content:space-between;
  align-items:center
}

.review-strip a {
  color:#fff;
  white-space:nowrap
}

.site-header {
  background:#fff;
  border-bottom:1px solid var(--line)
}

.header-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
  padding-block:1rem
}

.brand {
  display:flex;
  align-items:center;
  gap:.625rem;
  text-decoration:none;
  color:var(--ink);
  flex-shrink:0
}

.brand img {
  width:68px;
  height:48px;
  object-fit:contain
}

.brand-name {
  font-size:1rem;
  font-weight:700;
  letter-spacing:.025em
}

.brand-name small {
  display:block;
  font-size:.6875rem;
  font-weight:400;
  letter-spacing:.13em;
  text-transform:uppercase
}

.main-nav {
  order:3;
  width:100%
}

.nav-list,.subnav {
  list-style:none;
  margin:0;
  padding:0
}

.nav-list>li {
  margin:0;
  border-top:1px solid var(--line);
  position:relative
}

.nav-line {
  display:flex;
  align-items:center;
  justify-content:space-between
}

.nav-line>a,.nav-list>li>a {
  display:block;
  color:var(--ink);
  text-decoration:none;
  padding:.875rem .25rem;
  font-size:1rem;
  font-weight:600
}

.nav-list a[aria-current=page],
.nav-list a[data-current-section] {
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:.45em
}

.subnav {
  padding:.25rem 0 .75rem 1rem
}

.subnav a {
  display:block;
  padding:.5rem .25rem;
  text-decoration:none;
  color:var(--muted);
  font-size:.9375rem
}

.subnav a:hover {
  text-decoration:underline;
  color:var(--ink)
}

.toggle {
  min-width:48px;
  min-height:48px;
  padding:.5rem;
  border:1px solid var(--control);
  border-radius:4px;
  background:#fff;
  color:var(--ink)
}

.subtoggle {
  border:0;
  font-size:1.2rem
}

.menu-toggle {
  margin-left:auto
}

.header-cta {
  display:none
}

.js-ready .main-nav[data-mobile-closed=true] {
  display:none
}

.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:.75rem;
  min-height:48px;
  padding:.75rem 1.5rem;
  border:1px solid var(--gold);
  border-radius:4px;
  background:var(--gold);
  color:#fff;
  font-size:1rem;
  font-weight:600;
  text-decoration:none;
  line-height:1.4;
  text-align:center;
  transition:background-color 120ms
}

.button:hover {
  color:#fff;
  background:var(--hover);
  border-color:var(--hover)
}

.button:active {
  background:var(--active)
}

.button.secondary {
  background:#fff;
  color:var(--ink);
  border-color:var(--control)
}

.button.secondary:hover {
  background:var(--warm)
}

.actions {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
  margin-top:1.75rem
}

.text-link {
  font-weight:600
}

.arrow {
  font-size:1.15em
}

.eyebrow {
  display:block;
  color:var(--gold);
  font-size:.8125rem;
  letter-spacing:.12em;
  font-weight:600;
  text-transform:uppercase;
  margin-bottom:1rem
}

.hero {
  background:var(--warm);
  padding:3rem 0
}

.hero-grid {
  display:grid;
  gap:2.5rem;
  align-items:center
}

.hero h1 {
  font-size:clamp(2.25rem,1.5rem + 3vw,3.5rem);
  max-width:19ch;
  line-height:1.12
}

.hero .lead {
  margin-top:1.5rem;
  max-width:40ch
}

.lead {
  font-size:1.125rem;
  line-height:1.6;
  color:var(--muted)
}

.hero-media {
  background:#fff;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:var(--radius)
}

.hero-media img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:contain;
  background:#fff
}

.hero-caption {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  font-size:.875rem;
  border-top:1px solid var(--line);
  padding-top:.875rem;
  margin-top:1rem;
  color:var(--muted)
}

.hero-caption strong {
  color:var(--ink);
  font-weight:600
}

.section {
  padding:3rem 0
}

.section.warm {
  background:var(--warm)
}

.section-head {
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-bottom:2rem
}

.section-head p {
  color:var(--muted);
  max-width:54ch;
  margin-top:.75rem
}

.section-head>a {
  align-self:flex-start
}

.grid {
  display:grid;
  gap:1.5rem
}

.grid>* {
  min-width:0
}

.card {
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff;
  display:flex;
  flex-direction:column;
  min-width:0
}

.card-body {
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  flex:1
}

.card-body p {
  margin-top:.75rem;
  color:var(--muted);
  font-size:1rem
}

.card-body .text-link {
  margin-top:1.25rem
}

.card h3 a {
  color:var(--ink);
  text-decoration:none
}

.card h3 a:hover {
  text-decoration:underline
}

.image-link {
  display:block;
  background:var(--warm)
}

.card-img {
  width:100%;
  aspect-ratio:1;
  object-fit:contain;
  background:var(--warm)
}

.card-label {
  font-size:.8125rem;
  color:var(--muted);
  margin-bottom:.5rem
}

.category-index {
  font-size:.875rem;
  color:var(--gold);
  font-variant-numeric:tabular-nums
}

.category-card .card-img {
  aspect-ratio:4/3
}

.category-card .card-body {
  gap:.5rem
}

.category-card h3 {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  width:100%
}

.category-card a {
  text-decoration:none;
  color:var(--ink)
}

.category-card a:hover h3 {
  text-decoration:underline
}

.category-card a:focus-visible {
  outline-offset:-4px
}

.info-grid .card {
  padding:1.75rem
}

.info-grid h3 {
  margin-top:.75rem
}

.info-grid p {
  margin-top:.75rem;
  color:var(--muted);
  font-size:1rem
}

.info-grid a {
  margin-top:1.5rem;
  align-self:flex-start
}

.feature-number {
  font-size:.875rem;
  color:var(--gold)
}

.steps {
  list-style:none;
  padding:0;
  margin:2rem 0 0;
  counter-reset:steps
}

.steps li {
  border-top:1px solid var(--line);
  padding:1.5rem 0;
  margin:0;
  display:grid;
  grid-template-columns:2.5rem 1fr;
  gap:1rem
}

.steps li:before {
  counter-increment:steps;
  content:'0' counter(steps);
  color:var(--gold);
  font-size:.9375rem
}

.steps h3 {
  margin-bottom:.5rem
}

.steps p {
  color:var(--muted);
  font-size:1rem
}

.split {
  display:grid;
  gap:2rem
}

.split p {
  margin-top:1rem;
  color:var(--muted)
}

.rule-list {
  list-style:none;
  padding:0;
  margin:0
}

.rule-list li {
  padding:1rem 0;
  border-bottom:1px solid var(--line);
  margin:0
}

.rule-list a {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:var(--ink);
  text-decoration:none;
  font-weight:600
}

.rule-list a:hover {
  text-decoration:underline
}

.closing {
  background:var(--ink);
  color:#fff;
  padding:3rem 0
}

.closing p {
  color:#fff;
  margin-top:1rem;
  max-width:50ch
}

.closing .button {
  background:#fff;
  color:var(--ink);
  border-color:#fff
}

.closing .button:hover {
  background:var(--warm)
}

.closing a:focus-visible {
  outline-color:#fff
}

.closing .split {
  align-items:center
}

.site-footer {
  padding:3rem 0 1.5rem;
  background:var(--warm)
}

.footer-grid {
  display:grid;
  gap:2rem
}

.footer-grid h2 {
  font-size:.9375rem;
  letter-spacing:0;
  font-weight:600;
  margin-bottom:1rem
}

.footer-grid ul {
  list-style:none;
  padding:0;
  margin:0
}

.footer-grid li {
  margin-top:.625rem
}

.footer-grid a {
  font-size:.9375rem;
  color:var(--muted);
  text-decoration:none
}

.footer-grid a:hover {
  text-decoration:underline
}

.footer-grid p {
  font-size:.9375rem;
  color:var(--muted);
  margin-top:1rem;
  max-width:27ch
}

/* Separate the email from the introduction and provide a full touch target. */
.footer-grid a[href^="mailto:"] {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  max-width:100%;
  margin-top:1rem;
  font-weight:600;
  color:var(--ink);
  text-decoration:underline;
  text-underline-offset:.2em;
  overflow-wrap:anywhere
}

.footer-bottom {
  margin-top:2.5rem;
  padding-top:1.25rem;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.8125rem;
  display:flex;
  gap:1rem;
  justify-content:space-between;
  flex-wrap:wrap
}

.crumbs {
  padding-top:1.5rem;
  font-size:.875rem
}

.crumbs ol {
  list-style:none;
  display:flex;
  gap:.625rem;
  flex-wrap:wrap;
  padding:0;
  margin:0
}

.crumbs li {
  margin:0;
  display:flex;
  gap:.625rem
}

.crumbs li+li:before {
  content:'/';
  color:var(--muted)
}

.crumbs [aria-current] {
  color:var(--muted)
}

.page-intro {
  padding:2.5rem 0 3rem
}

.page-intro .lead {
  margin-top:1.25rem;
  max-width:60ch
}

.review-note {
  border:1px solid var(--line);
  border-left:3px solid var(--gold);
  border-radius:4px;
  padding:1rem 1.25rem;
  font-size:.875rem;
  color:var(--muted);
  background:#fff;
  margin-top:1.75rem;
  max-width:80ch
}

.review-note strong {
  color:var(--ink)
}

.review-note summary {
  cursor:pointer;
  color:var(--ink);
  font-weight:600;
  min-height:32px
}

.review-note p {
  margin-top:.75rem
}

.review-note .marker {
  display:block;
  font-size:.75rem;
  overflow-wrap:anywhere;
  margin-top:.5rem
}

.page-content {
  display:grid;
  gap:2.5rem;
  padding-bottom:3rem
}

.content-section {
  border-top:1px solid var(--line);
  padding-top:2.5rem;
  scroll-margin-top:1rem
}

.content-section p {
  margin-top:1rem;
  color:var(--muted)
}

.content-section h2 {
  font-size:1.75rem;
  max-width:30ch
}

.content-section .grid {
  margin-top:1.5rem
}

.section-links {
  display:flex;
  flex-wrap:wrap;
  gap:1rem 2rem;
  margin-top:1.5rem
}

.section-links a {
  font-weight:600
}

.toc {
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.5rem;
  background:var(--warm);
  align-self:start
}

.toc h2 {
  font-size:1rem;
  letter-spacing:0
}

.toc ul {
  list-style:none;
  padding:0;
  margin:1rem 0 0
}

.toc a {
  font-size:.9375rem
}

.category-links {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  list-style:none;
  padding:0;
  margin:1.75rem 0 0
}

.category-links > li {
  margin:0
}

.category-links a {
  padding:.625rem 1rem;
  border:1px solid var(--control);
  border-radius:4px;
  display:block;
  min-height:44px;
  color:var(--ink);
  text-decoration:none;
  font-size:.9375rem
}

.category-links a[aria-current=page] {
  background:var(--ink);
  color:#fff
}

.product-actions {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
  margin-top:auto;
  padding-top:1.25rem
}

.product-actions > a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.5rem 0;
  line-height:1.65
}

.card-body .product-actions .text-link {
  margin-top:0
}

.image-button {
  border:0;
  background:none;
  padding:.5rem 0;
  color:var(--gold);
  text-decoration:underline;
  text-underline-offset:.2em;
  min-height:44px;
  text-align:left
}

.product-figure {
  padding:1rem;
  background:var(--warm);
  border:1px solid var(--line);
  border-radius:var(--radius)
}

.product-figure img {
  width:100%;
  max-height:660px;
  object-fit:contain;
  aspect-ratio:4/5
}

.product-figure figcaption {
  color:var(--muted);
  font-size:.875rem;
  padding:1rem .25rem .25rem
}

.specs {
  margin-top:1.5rem
}

.specs>div {
  padding:1rem 0;
  border-top:1px solid var(--line)
}

.specs dt {
  font-size:.875rem;
  color:var(--muted)
}

.specs dd {
  margin:.25rem 0 0;
  font-size:1rem;
  overflow-wrap:anywhere
}

.question-list {
  margin:1rem 0 0
}

.question-list li {
  padding:.5rem 0
}

.contact-panel {
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.5rem;
  background:var(--warm)
}

.email {
  font-size:clamp(1.125rem,1rem + 1vw,1.75rem);
  font-weight:600;
  overflow-wrap:anywhere
}

.status {
  font-size:.875rem;
  color:var(--success);
  min-height:1.5em;
  margin-top:1rem!important
}

.status.error {
  color:var(--error)
}

.faq {
  margin-top:1.5rem;
  border-top:1px solid var(--line)
}

.faq details {
  border-bottom:1px solid var(--line);
  padding:1rem 0
}

.faq summary {
  cursor:pointer;
  font-weight:600;
  padding:.5rem 0;
  min-height:44px
}

.faq p {
  margin:.75rem 0;
  color:var(--muted)
}

.context {
  margin:1.5rem 0;
  padding:1rem;
  background:var(--warm);
  border:1px solid var(--line);
  border-radius:4px
}

.context button {
  display:block;
  margin-top:.5rem
}

dialog {
  max-width:min(960px,calc(100% - 2rem));
  max-height:calc(100dvh - 2rem);
  width:960px;
  padding:0;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  color:var(--ink)
}

dialog::backdrop {
  background:rgba(20,25,22,.75)
}

.dialog-head {
  padding:1rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid var(--line)
}

.dialog-head h2 {
  font-size:1.25rem
}

.dialog-body {
  padding:1rem
}

.dialog-body img {
  width:100%;
  max-height:60dvh;
  object-fit:contain;
  background:var(--warm)
}

.dialog-body p {
  font-size:.875rem;
  margin-top:1rem;
  color:var(--muted)
}

.error-page {
  padding:5rem 0
}

.error-page p {
  margin-top:1.5rem
}

.review-overview table {
  border-collapse:collapse;
  width:100%;
  font-size:.9375rem
}

.review-overview th,.review-overview td {
  padding:1rem .75rem;
  text-align:left;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  overflow-wrap:anywhere
}

.review-overview th {
  background:var(--warm)
}

.table-scroll {
  overflow-x:auto;
  margin-top:1.5rem
}

.review-overview td:first-child {
  min-width:8rem
}

.review-overview code {
  overflow-wrap:anywhere
}

.review-overview p {
  margin-top:1rem
}

@media(min-width:640px) {
  .wrap {
    width:calc(100% - 3rem)
  }
  .grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .footer-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .section {
    padding-block:4rem
  }
  .page-intro {
    padding-block:3rem
  }
  .header-cta {
    display:inline-flex;
    margin-left:auto
  }
  .menu-toggle {
    margin-left:0
  }
  .section-head {
    flex-direction:row;
    justify-content:space-between;
    align-items:end
  }
  .section-head>a {
    align-self:auto;
    flex-shrink:0
  }
  .contact-panel {
    padding:2rem
  }
}

@media(min-width:960px) {
  body {
    font-size:1.125rem
  }
  .wrap {
    width:calc(100% - 4rem)
  }
  .hero {
    padding:4rem 0
  }
  .hero-grid {
    grid-template-columns:5fr 7fr;
    gap:3rem
  }
  .lead {
    font-size:1.25rem
  }
  .grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .info-grid.two {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .section {
    padding-block:5rem
  }
  .split {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4rem
  }
  .content-layout {
    display:grid;
    grid-template-columns:minmax(0,3fr) minmax(200px,1fr);
    gap:4rem
  }
  .content-layout .page-content {
    grid-column:1;
    grid-row:1
  }
  .content-layout .toc {
    grid-column:2;
    grid-row:1
  }
  .product-layout {
    display:grid;
    grid-template-columns:minmax(0,7fr) minmax(0,5fr);
    gap:3rem;
    align-items:start
  }
  .footer-grid {
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:2rem
  }
  .closing {
    padding-block:4rem
  }
}

@media(min-width:1200px) {
  .wrap {
    width:calc(100% - 5rem)
  }
  .header-row {
    flex-wrap:nowrap;
    gap:1.75rem
  }
  .main-nav {
    width:auto;
    order:0;
    margin-left:auto
  }
  .js-ready .main-nav[data-mobile-closed=true] {
    display:block
  }
  .nav-list {
    display:flex;
    gap:1.25rem;
    align-items:center
  }
  .nav-list>li {
    border:0
  }
  .nav-line>a,.nav-list>li>a {
    font-size:.9375rem;
    white-space:nowrap
  }
  .subtoggle {
    min-width:28px;
    padding:0
  }
  .js-ready .subnav {
    position:absolute;
    top:100%;
    left:-1rem;
    min-width:240px;
    padding:.75rem;
    background:#fff;
    border:1px solid var(--line);
    border-radius:4px;
    z-index:10;
    box-shadow:0 8px 24px rgba(34,40,36,.1);
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    transition:opacity 200ms ease-out,transform 200ms cubic-bezier(.2,.7,.2,1),visibility 0s
  }
  /* Keep only desktop dropdowns rendered while fading out. JS makes closed
     panels inert immediately; visibility then hides them after the transition. */
  .js-ready .subnav[hidden] {
    display:block!important;
    opacity:0;
    visibility:hidden;
    transform:translateY(-6px);
    pointer-events:none;
    transition:opacity 140ms ease-in,transform 140ms ease-in,visibility 0s 140ms
  }
  .subnav a {
    padding:.625rem
  }
  .menu-toggle {
    display:none
  }
  .header-cta {
    margin:0;
    white-space:nowrap;
    padding-inline:1rem
  }
  .nav-contact {
    display:none
  }
  .brand-name {
    font-size:.9375rem
  }
  .brand img {
    width:68px
  }
  .hero {
    padding:4.5rem 0
  }
  .hero-grid {
    gap:4rem
  }
  .hero-media {
    padding:1.25rem
  }
  .closing .split {
    grid-template-columns:3fr 2fr
  }
  .closing .actions {
    justify-content:flex-end;
    margin:0
  }
}

@media(max-width:399px) {
  .header-row {
    column-gap:.5rem
  }
  .brand {
    gap:.375rem
  }
  .brand img {
    width:48px;
    height:40px
  }
  .brand-name {
    font-size:.875rem
  }
  .brand-name small {
    display:none
  }
  .review-strip .wrap {
    display:block
  }
  .review-strip a {
    margin-left:.5rem
  }
  .actions .button {
    width:100%
  }
  .hero {
    padding-block:2.5rem
  }
  .hero h1 {
    font-size:2.25rem
  }
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}

.product-grid {
  margin-top:2rem
}

.hero-footnote {
  font-size:.875rem;
  color:var(--muted);
  margin-top:1.25rem
}

.review-heading {
  margin-top:2.5rem
}

.card .image-link:focus-visible {
  outline-offset:-4px
}

/* Avoid showing the expanded no-JS navigation before the deferred script runs. */
.js-enabled:not(.js-ready) .subnav {
  display:none
}
.js-enabled:not(.js-ready) .toggle[hidden] {
  display:inline-block!important;
  visibility:hidden
}
@media(max-width:1199px) {
  .js-enabled:not(.js-ready) .main-nav { display:none }
}
@media(min-width:1200px) {
  .js-enabled:not(.js-ready) .menu-toggle[hidden] { display:none!important }
}

html:not(.js-ready):not(.js-enabled) .header-row {
  flex-wrap:wrap
}

html:not(.js-ready):not(.js-enabled) .main-nav {
  width:100%;
  order:3
}

html:not(.js-ready):not(.js-enabled) .nav-list {
  display:block
}

html:not(.js-ready):not(.js-enabled) .header-cta {
  margin-left:auto
}

@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important
  }
}

@media(forced-colors:active) {
  a:focus-visible,button:focus-visible,summary:focus-visible {
    outline:3px solid Highlight
  }
  .button {
    border:1px solid ButtonText
  }
}

@media print {
  .review-strip {
    color:#000;
    background:#fff
  }
  .site-header,.site-footer,.closing,.actions,.toc,.image-button {
    display:none
  }
  body {
    font-size:11pt
  }
  .wrap {
    width:100%
  }
  .hero,.section {
    padding:1rem 0
  }
  .grid {
    grid-template-columns:repeat(2,1fr)
  }
  .review-note {
    break-inside:avoid
  }
}

.hero-review {
  font-size:.75rem;
  color:var(--muted);
  margin-top:.75rem;
  overflow-wrap:anywhere
}

@media(max-width:639px) {
  .header-cta {
    display:none
  }
}

@media(min-width:1200px) {
  .nav-quote {
    display:none
  }
}

.source-label {
  font-size:.8125rem;
  color:var(--muted);
  margin-top:.5rem
}

.topic-list {
  list-style:none;
  padding:0;
  margin:1.5rem 0 0
}

.topic-list>li {
  padding:1.25rem 0;
  border-top:1px solid var(--line);
  margin:0
}

.topic-list p {
  margin-top:.5rem
}


/* Native WordPress Resources: reuse the existing typography, spacing and cards. */
.resource-article{max-width:900px}.resource-body{max-width:none}.resource-body img,.resource-featured img{max-width:100%;height:auto}.resource-featured{margin:2rem 0}.resource-filters{margin:1.5rem 0;flex-wrap:wrap}.resource-filters [aria-current=page]{border-color:var(--ink);font-weight:700}.resource-card .card-img{width:100%;height:auto;aspect-ratio:16/10;object-fit:contain}.resource-card .resource-date{font-size:.875rem}.resource-pagination ul{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;padding:0;margin:2rem 0}.resource-pagination a,.resource-pagination span{display:block;padding:.6rem 1rem;border:1px solid currentColor}.resource-body figure{max-width:100%}.resource-body .wp-block-table{overflow:auto}.resource-body h2,.resource-body h3{margin-top:2rem}

/* Product detail POC: Welcome Garden Gnome. Scoped so the collection and other page layouts stay unchanged. */
.product-detail { padding-bottom:0; }
.product-detail__hero {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  padding-block:clamp(1.5rem,3vw,2.5rem) clamp(3rem,6vw,5.5rem)
}
.product-detail__media {
  min-width:0;
  margin:0;
  padding:clamp(.75rem,2vw,1.5rem);
  background:var(--warm);
  border:1px solid var(--line);
  border-radius:var(--radius)
}
.product-detail__media img {
  display:block;
  width:100%;
  max-height:680px;
  aspect-ratio:4/5;
  object-fit:contain
}
.product-detail__media figcaption {
  padding:.875rem .25rem .25rem;
  color:var(--muted);
  font-size:.875rem
}
.product-detail__copy { min-width:0; }
.product-detail__copy h1 {
  margin:.25rem 0 1rem;
  font-size:clamp(2rem,3.6vw,3.35rem);
  line-height:1.08;
  letter-spacing:-.035em
}
.product-detail__summary {
  max-width:38rem;
  margin:0;
  color:var(--ink);
  font-size:clamp(1.125rem,1rem + .55vw,1.375rem);
  line-height:1.55
}
.product-detail__copy-intro {
  max-width:42rem;
  margin:1rem 0 0;
  color:var(--muted)
}
.product-detail__copy .specs { margin-top:1.5rem; }
.product-detail__copy .specs>div {
  display:grid;
  grid-template-columns:minmax(8rem,.75fr) minmax(0,1.25fr);
  gap:1rem;
  align-items:start;
  padding:.85rem 0
}
.product-detail__copy .specs dt { font-size:.8125rem; }
.product-detail__copy .specs dd { margin:0; font-size:.9375rem; }
.product-detail__actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem 1.25rem;
  margin-top:1.5rem
}
.product-detail__note {
  margin:1rem 0 0;
  color:var(--muted);
  font-size:.875rem
}
.product-detail__considerations h2 { margin:.5rem 0 1.5rem; }
.product-detail__considerations .info-grid .card { height:100%; }
.product-detail__related h2 { margin:.5rem 0 1.5rem; }
.product-detail__faq h2 { margin:.5rem 0 1.5rem; }
.product-detail__closing h2 { max-width:19ch; }

@media(max-width:859px) {
  .product-detail__hero { grid-template-columns:1fr; }
  .product-detail__hero { gap:1.75rem; }
  .product-detail__media { max-width:42rem; }
}
@media(max-width:479px) {
  .product-detail__copy .specs>div { grid-template-columns:1fr; gap:.25rem; }
  .product-detail__actions { align-items:stretch; }
}
/* Manufacturing page: connect capabilities, people-facing locations and production facts. */
.manufacturing-page .manufacturing-hero,
.manufacturing-page .manufacturing-development__grid {
  display:grid;
  gap:2rem;
  align-items:center;
}
.manufacturing-page .manufacturing-hero__copy { max-width:44rem; }
.manufacturing-page .manufacturing-hero__media,
.manufacturing-page .manufacturing-development__media {
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--warm);
}
.manufacturing-page .manufacturing-hero__media img,
.manufacturing-page .manufacturing-development__media img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.manufacturing-page .manufacturing-hero__media figcaption,
.manufacturing-page .manufacturing-development__media figcaption {
  padding:.8rem 1rem;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.875rem;
}
.manufacturing-page .manufacturing-hero .actions { margin-top:1.5rem; }
.manufacturing-page .manufacturing-process-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:0 1.5rem;
  margin-top:2rem;
  border-top:1px solid var(--line);
}
.manufacturing-page .manufacturing-process {
  display:flex;
  flex-direction:column;
  gap:.45rem;
  min-width:0;
  padding:1.25rem 0;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
}
.manufacturing-page .manufacturing-process strong { font-size:1.125rem; }
.manufacturing-page .manufacturing-process span:last-child { color:var(--muted); font-size:.9375rem; }
.manufacturing-page .manufacturing-process:hover strong { color:var(--gold); text-decoration:underline; text-underline-offset:.2em; }
.manufacturing-page .manufacturing-process:focus-visible { outline-offset:4px; }
.manufacturing-page .manufacturing-location-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  margin-top:2rem;
}
.manufacturing-page .manufacturing-location {
  padding:1.25rem;
  border-top:1px solid var(--line);
  background:var(--surface);
}
.manufacturing-page .manufacturing-location--collectibles {
  border-top:3px solid var(--gold);
  background:#fff;
}
.manufacturing-page .manufacturing-location h3 { margin:0; }
.manufacturing-page .manufacturing-location p { margin-top:.5rem; color:var(--muted); }
.manufacturing-page .manufacturing-facts { padding-block:1rem; }
.manufacturing-page .manufacturing-facts > p { max-width:70ch; color:var(--muted); }
@media(min-width:640px) {
  .manufacturing-page .manufacturing-process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .manufacturing-page .manufacturing-location-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .manufacturing-page .manufacturing-location:last-child { grid-column:1/-1; }
}
@media(min-width:960px) {
  .manufacturing-page .manufacturing-hero { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:4rem; }
  .manufacturing-page .manufacturing-development__grid { grid-template-columns:minmax(0,1fr) minmax(320px,.82fr); gap:4rem; }
  .manufacturing-page .manufacturing-process-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 1.25rem; }
  .manufacturing-page .manufacturing-location-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
  .manufacturing-page .manufacturing-location:last-child { grid-column:auto; }
  .manufacturing-page .manufacturing-facts .metrics-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.manufacturing-page .manufacturing-index {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.6rem 1.25rem;
  align-items:center;
  padding-block:1.25rem 2rem;
  border-bottom:1px solid var(--line);
}
.manufacturing-page .manufacturing-index span {
  grid-column:1/-1;
  color:var(--muted);
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.manufacturing-page .manufacturing-index a {
  color:var(--ink);
  font-size:.9375rem;
  text-decoration:none;
  text-underline-offset:.2em;
}
.manufacturing-page .manufacturing-index a:hover { color:var(--gold); text-decoration:underline; }
.manufacturing-page .manufacturing-index a:focus-visible { outline-offset:4px; }
@media(min-width:960px) {
  .manufacturing-page .manufacturing-index { display:flex; flex-wrap:wrap; gap:.75rem 1.75rem; }
  .manufacturing-page .manufacturing-index span { margin-right:.25rem; }
}
/* Capabilities hub and product development layouts. */
.capability-hub__grid {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1rem;
  margin-top:1.5rem;
}
.capability-hub__card {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:100%;
  padding:1.25rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
}
.capability-hub__index {
  color:var(--gold);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
}
.capability-hub__card h3 {
  margin:.65rem 0 0;
  font-size:1.125rem;
}
.capability-hub__card h3 a {
  color:var(--ink);
  text-decoration:none;
}
.capability-hub__card h3 a:hover {
  color:var(--gold);
  text-decoration:underline;
  text-underline-offset:.2em;
}
.capability-hub__card h3 a:focus-visible { outline-offset:4px; }
.capability-hub__card p {
  margin:.65rem 0 1rem;
  color:var(--muted);
  font-size:.9375rem;
}
.capability-hub__card .section-links {
  gap:.65rem 1rem;
  margin-top:auto;
  padding-top:.35rem;
  font-size:.875rem;
}
.product-development-feature__grid {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:2rem;
  align-items:center;
}
.product-development-feature__copy { max-width:42rem; }
.product-development-feature__copy h2 {
  max-width:22ch;
  margin:.5rem 0 1rem;
}
.product-development-feature__copy p { color:var(--muted); }
.product-development-feature__media {
  min-width:0;
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
}
.product-development-feature__media img {
  display:block;
  width:100%;
  aspect-ratio:5/4;
  object-fit:cover;
}
.product-development-feature__media figcaption {
  padding:.8rem 1rem;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.875rem;
}
@media(min-width:640px) {
  .capability-hub__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:960px) {
  .product-development-feature__grid {
    grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);
    gap:4rem;
  }
}


/* Contact: one inquiry area, with email as a secondary route. */
.contact-intro { padding-block:2rem; }
.contact-intro .lead { margin-top:.75rem; }
.contact-inquiry-section { border-top:1px solid var(--line); padding-block:2.5rem; }
.contact-inquiry-grid { display:grid; gap:2rem; align-items:start; }
.contact-form-panel,.contact-email-panel { min-width:0; }
.contact-inquiry-heading { margin-bottom:1.75rem; }
.contact-inquiry-heading h2 { font-size:clamp(1.75rem,2.4vw,2.25rem); }
.contact-inquiry-heading p { margin-top:.75rem; color:var(--muted); }
.contact-inquiry-form { font-size:1rem; }
.contact-inquiry-form .form-grid { gap:20px 24px; }
.contact-inquiry-form .field-optional { color:var(--muted); font-size:.8125rem; font-weight:400; }
.contact-product-context { margin-top:.375rem; }
.contact-clear-product { min-height:36px; padding:0; border:0; background:transparent; color:var(--gold); text-decoration:underline; text-underline-offset:.2em; font-size:.875rem; }
.contact-clear-product:hover { color:var(--hover); }
.contact-email-panel { padding:1.5rem; background:var(--warm); border:1px solid var(--line); border-radius:var(--radius); font-size:1rem; }
.contact-email-panel h3 { margin-bottom:.75rem; font-size:1.25rem; }
.contact-email-panel>p:not(.status) { color:var(--muted); }
.contact-email-panel .actions { align-items:flex-start; margin-top:1.25rem; gap:1rem; }
.contact-email-link { display:block; flex-basis:100%; overflow-wrap:anywhere; font-size:1.0625rem; font-weight:600; }
.contact-copy-button { min-height:44px; padding:.5rem .875rem; border:1px solid var(--control); border-radius:4px; background:transparent; color:var(--ink); font-size:.875rem; }
.contact-copy-button:hover { background:var(--surface); }
.contact-email-panel .status:empty { display:none; }
.contact-email-panel .status { font-size:.875rem; }
.contact-email-panel .copy-email-manual input { font-size:.875rem; }
@media(min-width:960px) {
 .contact-intro { padding-block:2.5rem; }
 .contact-inquiry-section { padding-block:3rem 4rem; }
 .contact-inquiry-grid { grid-template-columns:minmax(0,7fr) minmax(260px,3fr); gap:clamp(2rem,4vw,4rem); }
 .contact-email-panel { padding:1.75rem; }
}

/* Text-only collection artwork until approved product photography is supplied. */
.category-placeholder { aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; background:var(--warm); color:var(--gold); text-align:center; }
.category-placeholder p { margin:8px 0 0; font-size:clamp(1.5rem,2.5vw,2.25rem); font-weight:600; line-height:1.25; }
