@charset "utf-8";
/* ==========================================================================
   JBT SAFE — jbtsafe.com
   Static site stylesheet. No build step, no framework.
   Sections: 01 tokens · 02 fonts · 03 base · 04 header · 05 front · 06 blocks
             07 product detail · 08 forms · 09 footer · 10 responsive
   ========================================================================== */

/* ===== 01 tokens ========================================================= */
:root {
  --blue: #0F6AF4;
  --blue-dk: #0B51C0;
  --blue-tint: #E8F0FE;
  --ink: #0A1017;
  --ink-2: #141C25;
  --steel: #748D9E;
  --steel-txt: #566E80;
  --steel-2: #9FAFB9;
  --paper: #F4F6F8;
  --plate: #EDF1F4;
  --line: #D8E0E6;
  --line-dk: #2A3542;
  --white: #FFFFFF;

  --f-display: 'Barlow Condensed', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
  --f-body: 'IBM Plex Sans', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --f-mono: 'IBM Plex Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;

  --w: 1240px;
  --gut: 28px;
  --sp: 96px;
}

/* ===== 02 fonts (self-hosted, latin + latin-ext) ========================= */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/barlow-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/barlow-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/plex-sans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/plex-sans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/plex-mono-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/plex-mono-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ===== 03 base =========================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { display: block; max-width: 100%; height: auto; border: 0; }

a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }

h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--f-display);
  font-weight: 700;
  line-height: .98;
  letter-spacing: .005em;
  text-transform: uppercase;
}
h1 { font-size: clamp(38px, 5.4vw, 68px); }
h2 { font-size: clamp(30px, 3.4vw, 44px); }
h3 { font-size: 22px; letter-spacing: .01em; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

ul { margin: 0; padding-left: 1.1em; }

.wrap {
  width: 100%;
  max-width: var(--w);
  margin: 0 auto;
  padding: 0 var(--gut);
}

.section { padding: var(--sp) 0; }
.section--tight { padding: 64px 0; }
.section--paper { background: var(--paper); }
.section--ink { background: var(--ink); color: #E9EFF4; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  font-family: var(--f-mono);
  font-size: 11px;
  line-height: 1;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--blue);
}
.eyebrow::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--blue);
}

.lead {
  max-width: 62ch;
  font-size: 17px;
  line-height: 1.66;
  color: #35414C;
}
.lead--lg { font-size: 19px; }

.muted { color: var(--steel-txt); }

/* dashed "kevlar stitch" rule — the page's recurring seam */
.stitch {
  height: 1px;
  border: 0;
  margin: 0;
  background-image: repeating-linear-gradient(90deg, var(--line) 0 7px, transparent 7px 13px);
}

/* certification stamp block */
.stamp {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--blue);
  font-family: var(--f-mono);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-txt);
  background: var(--white);
}
.stamp span { white-space: nowrap; }
.stamp--ink {
  border-color: var(--line-dk);
  border-left-color: var(--blue);
  background: transparent;
  color: var(--steel-2);
}

/* buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 2px;
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  text-decoration: none;
}
.btn:hover { text-decoration: none; }
.btn--primary { background: var(--blue); color: #fff; }
.btn--primary:hover { background: var(--blue-dk); }
.btn--ghost { border-color: var(--line); color: var(--ink); background: transparent; }
.btn--ghost:hover { border-color: var(--ink); }
.btn--onink { border-color: #3A4753; color: #E9EFF4; background: transparent; }
.btn--onink:hover { border-color: #E9EFF4; color: #fff; }
.btn--wa { background: #25D366; color: #fff; }
.btn--wa:hover { background: #1EB858; }
.btn--block { width: 100%; }

.btn .ico { width: 17px; height: 17px; flex: none; }
.btn .ico path, .btn .ico circle { fill: none; stroke: currentColor; stroke-width: 1.7; }

/* ===== 04 header ======================================================== */
.topbar {
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.topbar__in {
  display: flex;
  align-items: center;
  gap: 26px;
  min-height: 84px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.topbar__brand { display: flex; align-items: center; flex: none; }
.topbar__brand img { width: 118px; height: 65px; }
.topbar__contact {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .04em;
  color: #143264;
}
.topbar__contact a { color: #143264; }
.topbar__contact a:hover { color: var(--blue); text-decoration: underline; }

.bar {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--blue);
}
.bar__in {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
}

.bar__menu { display: flex; align-items: center; gap: 52px; }
.bar__menu > a,
.bar__menu > .nav__more > a {
  position: relative;
  display: block;
  padding: 19px 0;
  font-family: var(--f-display);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #fff;
}
.bar__menu > a:hover,
.bar__menu > .nav__more > a:hover { color: #D6E4FF; text-decoration: none; }
.bar__menu > a[aria-current="page"]::after,
.bar__menu > .nav__more > a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8px;
  height: 2px;
  background: #fff;
}
.nav__more { position: relative; }
.nav__more > a::before { content: "▾"; margin-left: 6px; font-size: 11px; color: rgba(255, 255, 255, .7); }

.subnav {
  position: absolute;
  top: calc(100% + 12px);
  left: -18px;
  min-width: 258px;
  padding: 8px 0;
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 16px 32px rgba(10, 16, 23, .08);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .14s ease, transform .14s ease, visibility .14s;
}
.nav__more:hover .subnav,
.nav__more:focus-within .subnav { opacity: 1; visibility: visible; transform: none; }
.subnav a {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 9px 18px;
  font-family: var(--f-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}
.subnav a:hover { background: var(--blue-tint); color: var(--ink); text-decoration: none; }
.subnav a em {
  font-family: var(--f-mono);
  font-style: normal;
  font-size: 10px;
  letter-spacing: .1em;
  color: var(--steel);
  align-self: center;
}

.burger { margin-left: 0; }

.burger {
  display: none;
  width: 46px;
  height: 46px;
  padding: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .45);
  border-radius: 2px;
  cursor: pointer;
}
.burger span {
  display: block;
  width: 20px;
  height: 1.6px;
  margin: 4px auto;
  background: #fff;
  transition: transform .18s ease, opacity .18s ease;
}

/* ===== 05 front page ================================================== */
.front { background: #fff; padding: 46px 0 52px; }
.front__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 450px) minmax(0, 1fr);
  align-items: center;
  gap: 36px;
}
.front__rail {
  display: grid;
  grid-auto-rows: 1fr;
  border: 1px solid var(--line);
  background: #fff;
}
.front__core { text-align: center; padding: 0 10px; }
.front__logo-link { display: inline-block; }
.front__logo { width: 296px; max-width: 78%; height: auto; }
.front__claim {
  margin: 24px auto 0;
  max-width: 21ch;
  font-size: 27px;
  line-height: 1.24;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.front__sub {
  margin: 14px auto 0;
  max-width: 36ch;
  font-size: 15px;
  line-height: 1.6;
  color: var(--steel-txt);
}
.front__sub strong { color: #000; }
.front__sub strong.front__accent { color: var(--blue); }
.front__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 24px;
}

/* one product tile in the side rails */
.ptile {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  column-gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.ptile:last-child { border-bottom: 0; }
.ptile:hover { background: var(--blue-tint); text-decoration: none; }
.ptile__fig {
  grid-row: 1 / span 2;
  grid-column: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 84px;
}
.ptile__img {
  max-height: 100%;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.ptile__img--ph { max-height: 62px; opacity: .3; }
.ptile__name {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  display: block;
  font-family: var(--f-display);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--ink);
}
.ptile__std {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  display: block;
  margin-top: 5px;
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: .12em;
  color: var(--steel);
}
.ptile:hover .ptile__name { color: var(--blue); }
.ptile__all .ptile__fig,
.ptile--all .ptile__fig {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.ptile__fig--num {
  font-family: var(--f-display);
  font-size: 38px;
  line-height: 1;
  color: var(--blue);
  letter-spacing: 0;
}

.callband.callband--flat {
  background: #fff;
  color: var(--ink);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.callband.callband--flat h2 { color: var(--ink); }
.callband.callband--flat .callband__note { color: var(--steel-txt); }
.callband.callband--flat .btn--primary { background: var(--blue); color: #fff; border-color: var(--blue); }
.callband.callband--flat .btn--primary:hover { background: var(--blue-deep); border-color: var(--blue-deep); }
.callband.callband--flat .btn--onink { border-color: var(--line); color: var(--ink); }
.callband.callband--flat .btn--onink:hover { border-color: var(--ink); }

/* send-enquiry strip under the front block */
.quote-strip { background: #fff; padding: 0 0 var(--sp); }
.quote-strip__grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.15fr);
  border: 1px solid var(--line);
}
.quote-strip__aside {
  background: var(--blue);
  color: #fff;
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}
.quote-strip__aside h2 { color: #fff; font-size: 29px; }
.quote-strip__aside .eyebrow { color: #C6DAFF; }
.quote-strip__aside .eyebrow::before { background: #fff; }
.quote-strip__aside p { margin: 0; font-size: 14.5px; line-height: 1.65; color: #D5E3FF; }
.quote-strip__meta {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  color: #fff !important;
}
.quote-strip__form { padding: 30px 32px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-grid .field--wide { grid-column: 1 / -1; }
.quote-strip__form .btn { margin-top: 18px; }
.quote-strip__note { margin: 12px 0 0; font-size: 12px; color: var(--steel-txt); }

/* standards tape under the hero */
.tape {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
}
.tape .wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 30px;
  min-height: 56px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.tape span { display: inline-flex; align-items: center; gap: 9px; }
.tape span::before { content: ""; width: 4px; height: 4px; background: var(--blue); }

/* ===== 06 blocks ======================================================== */
.sechead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 44px;
}
.sechead__txt { max-width: 720px; }
.sechead__txt h2 { margin-top: 0; }
.sechead__txt .lead { margin-top: 16px; }
.sechead__link {
  flex: none;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--blue);
  padding-bottom: 3px;
}
.sechead__link:hover { text-decoration: none; }

/* category cards */
.cats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}
.cat {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
  transition: border-color .15s ease;
}
.cat:hover { border-color: var(--steel); text-decoration: none; }
.cat__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 5 / 4;
  background: var(--plate);
  overflow: hidden;
}
.cat__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.cat:hover .cat__media img { transform: scale(1.03); }
.cat__media--fit { background: #fff; padding: 16px; }
.cat__media--fit img { width: 100%; height: 100%; object-fit: contain; }
.cat__media--ph { background: #E9EEF3; }
.cat__media--ph img {
  width: 54%;
  height: auto;
  object-fit: contain;
  opacity: .5;
  filter: grayscale(.15);
}
/* side-view product cut-outs sit on white, never cropped */
.cat__media--plain { background: #fff; }
.cat__media--plain img {
  width: auto;
  height: 88%;
  max-width: 88%;
  object-fit: contain;
}
.cat__tag {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 4px 8px;
  background: rgba(255, 255, 255, .94);
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.cat__body { padding: 20px 22px 22px; border-top: 1px solid var(--line); }
.cat__body h3 { font-size: 24px; }
.cat__body p { margin: 8px 0 0; font-size: 14px; line-height: 1.55; color: var(--steel-txt); }
.cat__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--blue);
}
.cat__foot span:last-child { color: var(--steel); }

/* reasons */
.reasons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
}
.reason {
  padding: 32px 40px 32px 0;
  border-bottom: 1px solid var(--line);
}
.reason:nth-child(even) { padding-left: 40px; border-left: 1px solid var(--line); }
.reason__key {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--blue);
}
.reason h3 { margin: 10px 0 10px; font-size: 24px; }
.reason p { color: #35414C; font-size: 15.5px; }

/* process rail (a real sequence: 01–05) */
.flow {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 0;
  margin-top: 8px;
  border-top: 1px solid var(--line-dk);
}
.flow__step {
  position: relative;
  padding: 26px 26px 0 0;
  border-right: 1px dashed var(--line-dk);
}
.flow__step:last-child { border-right: 0; padding-right: 0; }
.flow__no {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--blue);
}
.flow__step h3 { margin: 12px 0 8px; font-size: 20px; color: #fff; }
.flow__step p { font-size: 14px; line-height: 1.55; color: #9FB0BD; }
.flow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -4px;
  top: 30px;
  width: 7px;
  height: 7px;
  background: var(--ink);
  border: 1px solid var(--line-dk);
  transform: rotate(45deg);
}

/* light variant: same sequence on a white/paper section */
.flow--light { border-top-color: var(--line); }
.flow--light .flow__step { border-right-color: var(--line); }
.flow--light .flow__step h3 { color: var(--ink); }
.flow--light .flow__step p { color: var(--steel-txt); }
.flow--light .flow__step:not(:last-child)::after {
  background: #fff;
  border-color: var(--line);
}

/* about teaser */
.pitch {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 70px;
  align-items: start;
}
.pitch__quote {
  padding-left: 26px;
  border-left: 3px solid var(--blue);
  font-family: var(--f-display);
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.14;
  text-transform: uppercase;
  letter-spacing: .01em;
}
.pitch__quote + p { margin-top: 22px; }

/* collection band */
.collect {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 60px;
  align-items: center;
}
.collect__list { display: flex; flex-direction: column; gap: 14px; }
.collect__row {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--line);
  font-size: 15px;
}
.collect__row b {
  flex: none;
  width: 118px;
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-txt);
}

/* contact band */
.callband { background: var(--blue); color: #fff; }
.callband .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  padding-top: 56px;
  padding-bottom: 56px;
}
.callband h2 { color: #fff; max-width: 20ch; font-size: clamp(28px, 3vw, 40px); }
.callband__note { color: #D4E3FF; font-size: 15px; margin-top: 12px; }
.callband__actions { display: flex; flex-wrap: wrap; gap: 12px; flex: none; }
.callband .btn--primary { background: var(--white); color: var(--ink); }
.callband .btn--primary:hover { background: #E8F0FE; }
.callband .btn--onink { border-color: rgba(255, 255, 255, .45); color: #fff; }
.callband .btn--onink:hover { border-color: #fff; }

/* page hero (inner pages) */
.phead {
  background: var(--ink);
  color: #E9EFF4;
  padding: 62px 0 56px;
  position: relative;
  overflow: hidden;
}
.phead::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, .03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, .03) 1px, transparent 1px);
  background-size: 84px 84px;
}
.phead > .wrap { position: relative; }
.phead h1 { color: #fff; max-width: 22ch; margin-top: 8px; }
.phead p { max-width: 62ch; margin-top: 18px; color: #B7C5D1; font-size: 16.5px; }
.crumb {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel-2);
}
.crumb a { color: var(--steel-2); }
.crumb a:hover { color: #fff; text-decoration: none; }
.crumb span { padding: 0 8px; opacity: .5; }

/* ===== 07 product detail ================================================= */
.pdp { padding: 40px 0 88px; }
.pdp__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: 56px;
  align-items: start;
}
.gallery { position: sticky; top: 96px; }
.gallery__main {
  position: relative;
  background: var(--plate);
  border: 1px solid var(--line);
  aspect-ratio: 4 / 5;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.gallery__main img { width: 100%; height: 100%; object-fit: contain; }
.gallery__main--ph { background: #E9EEF3; }
.gallery__main--ph img { width: 58%; height: auto; object-fit: contain; opacity: .55; }
.gallery__count {
  position: absolute;
  right: 12px;
  bottom: 12px;
  padding: 4px 9px;
  background: rgba(255, 255, 255, .92);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .12em;
  color: var(--steel-txt);
}
.gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.gallery__thumbs button {
  flex: 1 1 0;
  min-width: 0;
  padding: 0;
  border: 1px solid var(--line);
  background: var(--plate);
  aspect-ratio: 1 / 1;
  cursor: pointer;
  overflow: hidden;
}
.gallery__thumbs button[aria-pressed="true"] { border-color: var(--blue); }
.gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.gallery__note {
  margin-top: 14px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.gallery__spec {
  margin-top: 14px;
  font-family: var(--f-mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
}

.pinfo h1 { font-size: clamp(34px, 3.6vw, 50px); margin-top: 6px; }
.pinfo__model {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.pinfo__model code {
  padding: 5px 10px;
  background: var(--ink);
  color: #fff;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .12em;
}
.pinfo__model span {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.pinfo__sub { margin-top: 14px; font-size: 16px; color: #35414C; }
.pinfo__stamps { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; }
.pinfo__stamps .stamp { flex: 1 1 190px; }

.spec {
  margin-top: 28px;
  border-top: 1px solid var(--line);
}
.spec__row {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 18px;
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14.5px;
}
.spec__row dt {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-txt);
  align-self: center;
}
.spec__row dd { margin: 0; }

.quote-card {
  margin-top: 28px;
  border: 1px solid var(--line);
  background: var(--white);
}
.quote-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  background: var(--blue);
  color: #fff;
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.quote-card__head b { color: #fff; font-weight: 700; }
.quote-card__body { padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.quote-card__alt {
  margin-top: 10px;
  display: grid;
  gap: 10px;
}

.pbody { margin-top: 72px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; }
.pbody h2 { font-size: 30px; margin-bottom: 18px; }
.pbody__text { font-size: 16px; color: #29343D; }
.feat { display: flex; flex-direction: column; gap: 0; margin-top: 6px; border-top: 1px solid var(--line); }
.feat li {
  display: flex;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  list-style: none;
  font-size: 15px;
}
.feat li::before {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  margin-top: 8px;
  background: var(--blue);
  transform: rotate(45deg);
}
.feat { padding: 0; margin: 0; }

.models {
  width: 100%;
  border-collapse: collapse;
  margin-top: 8px;
  font-size: 14px;
}
.models caption {
  text-align: left;
  padding-bottom: 10px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.models th {
  padding: 9px 12px;
  background: var(--ink);
  color: #fff;
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: left;
  white-space: nowrap;
}
.models td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.models tr:last-child td { border-bottom: 1px solid var(--line); }
.models td:first-child { font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em; white-space: nowrap; }

/* small model strip beside a spec table */
.miniline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.miniline a {
  display: block;
  border: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
}
.miniline a:hover { border-color: var(--steel); text-decoration: none; }
.miniline img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: var(--plate);
}
.miniline a img[src*="logo"] { object-fit: contain; padding: 14%; opacity: .55; }
.miniline span {
  display: block;
  padding: 7px 9px;
  border-top: 1px solid var(--line);
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-txt);
}

.related { padding: 72px 0; border-top: 1px solid var(--line); background: var(--paper); }

/* ===== 08 forms ========================================================= */
.field { display: flex; flex-direction: column; gap: 6px; }
.field label {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.field label i { color: var(--blue); font-style: normal; }
.field input,
.field textarea,
.field select {
  width: 100%;
  min-height: 46px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: var(--white);
  font-family: var(--f-body);
  font-size: 15px;
  color: var(--ink);
}
.field textarea { min-height: 104px; resize: vertical; }
.field input:focus,
.field textarea:focus,
.field select:focus {
  outline: 2px solid var(--blue);
  outline-offset: -1px;
  border-color: var(--blue);
}
.field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field--row .field { gap: 6px; }

.formnote {
  margin-top: 12px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--steel-txt);
}
.formnote a { color: var(--ink); border-bottom: 1px solid var(--line); }

/* contact page split */
.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 64px;
  align-items: start;
}
.vcard { border-top: 1px solid var(--line); }
.vcard__row {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
}
.vcard__row b {
  font-family: var(--f-mono);
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel-txt);
  align-self: center;
}
.vcard__row a { color: var(--ink); }
.vcard__row a:hover { color: var(--blue); }

/* ===== 09 footer ======================================================== */
.footer {
  background: var(--ink);
  color: #9FB0BD;
  padding: 64px 0 0;
  font-size: 14px;
}
.footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr) minmax(0, .9fr) minmax(0, 1fr);
  gap: 48px;
  padding-bottom: 48px;
}
.footer__brand img { width: 164px; margin-bottom: 20px; }
.footer__brand p { max-width: 34ch; color: #9FB0BD; }
.footer h4 {
  margin: 0 0 16px;
  font-size: 15px;
  letter-spacing: .12em;
  color: #fff;
}
.footer ul { list-style: none; padding: 0; margin: 0; }
.footer ul li { margin-bottom: 9px; }
.footer ul a { color: #9FB0BD; }
.footer ul a:hover { color: #fff; }
.footer__contact p { margin-bottom: 10px; color: #9FB0BD; }
.footer__contact a { color: #fff; }
.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 0 26px;
  border-top: 1px solid var(--line-dk);
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #7A8B99;
}

/* floating whatsapp */
.wafab {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 70;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 48px;
  padding: 0 18px 0 14px;
  background: #25D366;
  color: #fff;
  border-radius: 2px;
  box-shadow: 0 10px 24px rgba(37, 211, 102, .28);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
}
.wafab:hover { background: #1EB858; color: #fff; text-decoration: none; }
.wafab svg { width: 18px; height: 18px; }

/* light entrance motion, respects reduced-motion */
@media (prefers-reduced-motion: no-preference) {
  .rise { animation: rise .6s cubic-bezier(.2, .7, .3, 1) both; }
  .rise--2 { animation-delay: .1s; }
  .rise--3 { animation-delay: .2s; }
  @keyframes rise {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: none; }
  }
}

/* ===== 10 responsive ==================================================== */
@media (max-width: 1080px) {
  :root { --sp: 76px; }
  .front__grid { grid-template-columns: minmax(0, 1fr) minmax(260px, 350px) minmax(0, 1fr); gap: 24px; }
  .cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow__step { border-right: 0; border-bottom: 1px dashed var(--line-dk); padding-bottom: 24px; }
  .flow__step::after { display: none; }
  .pdp__grid, .pbody { grid-template-columns: 1fr; gap: 40px; }
  .gallery { position: static; }
  .gallery__main { max-width: 560px; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 36px; }
}

@media (max-width: 860px) {
  .topbar__in { min-height: 70px; gap: 18px; }
  .bar__menu { display: none; }
  .bar__in { justify-content: flex-end; min-height: 50px; }
  .burger { display: block; }
  .front { padding: 34px 0 38px; }
  .front__grid { grid-template-columns: 1fr; gap: 30px; }
  .front__core { order: -1; }
  .front__logo { width: 200px; }
  .front__claim { margin-top: 20px; font-size: 23px; max-width: 26ch; }
  .front__rail { display: grid; }
  .ptile { grid-template-columns: 78px minmax(0, 1fr); padding: 12px 14px; }
  .ptile__fig { height: 70px; }
  .quote-strip__grid { grid-template-columns: 1fr; }
  .quote-strip__aside { padding: 32px 26px; }
  .sechead { flex-direction: column; align-items: flex-start; gap: 16px; }
  .reasons { grid-template-columns: 1fr; }
  .reason { padding-right: 0; }
  .reason:nth-child(even) { padding-left: 0; border-left: 0; }
  .pitch, .collect, .contact-grid { grid-template-columns: 1fr; gap: 36px; }
  .callband .wrap { flex-direction: column; align-items: flex-start; gap: 28px; }
  .phead { padding: 44px 0 40px; }
  .pdp { padding-top: 28px; }
  .gallery__main { max-width: none; aspect-ratio: 4 / 3.4; }
  .spec__row { grid-template-columns: 108px minmax(0, 1fr); gap: 10px; }
  .footer__top { grid-template-columns: 1fr; gap: 30px; }
  .models {
    display: table;
    overflow: visible;
    white-space: normal;
    font-size: 12.5px;
  }
  .models th, .models td { padding: 9px 6px; }
  .models th { font-size: 9.5px; letter-spacing: .06em; }
  .models td:first-child { font-size: 11.5px; letter-spacing: 0; white-space: nowrap; width: 1%; }
  .models th:first-child { width: 1%; white-space: nowrap; }
}

@media (max-width: 560px) {
  :root { --gut: 18px; --sp: 56px; }
  body { font-size: 15.5px; }
  h2 { font-size: 27px; }
  .topbar__in { min-height: 62px; gap: 12px; padding-top: 6px; padding-bottom: 6px; }
  .topbar__brand img { width: 88px; height: 48px; }
  .topbar__contact { font-size: 9px; letter-spacing: .05em; gap: 6px; flex-wrap: wrap; }
  .topbar__contact a:last-child { white-space: nowrap; }
  .cats { grid-template-columns: 1fr; }
  .front { padding: 26px 0 32px; }
  .front__claim { font-size: 21px; }
  .front__sub { font-size: 14px; }
  .ptile__fig { height: 64px; }
  .ptile__name { font-size: 12.5px; letter-spacing: .06em; }
  .ptile__std { font-size: 9.5px; }
  .front__actions .btn { flex: 1 1 100%; }
  .form-grid { grid-template-columns: 1fr; }
  .quote-strip__form { padding: 22px 18px; }
  .field--row { grid-template-columns: 1fr; }
  .quote-card__body { padding: 14px; }
  .quote-card__head { flex-direction: column; align-items: flex-start; gap: 5px; padding: 12px 14px; }
  .pinfo h1 { font-size: 32px; }
  .pinfo__stamps .stamp { flex: 1 1 100%; }
  .callband .wrap { padding-top: 40px; padding-bottom: 44px; }
  .wafab { right: 14px; bottom: 14px; height: 44px; padding: 0 13px; font-size: 11px; }
}

/* mobile drawer */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  flex-direction: column;
  background: var(--ink);
  color: #E9EFF4;
  padding: 20px var(--gut) 32px;
  overflow-y: auto;
  transform: translateY(-100%);
  visibility: hidden;
  transition: transform .24s cubic-bezier(.3, .8, .3, 1), visibility .24s;
}
.drawer[data-open="true"] { transform: none; visibility: visible; }
.drawer__top { display: flex; align-items: center; justify-content: space-between; }
.drawer__top img { width: 138px; }
.drawer__close {
  width: 44px;
  height: 44px;
  background: transparent;
  border: 1px solid var(--line-dk);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.drawer__nav { display: flex; flex-direction: column; margin-top: 34px; }
.drawer__nav a {
  padding: 16px 0;
  border-bottom: 1px solid var(--line-dk);
  font-family: var(--f-display);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #E9EFF4;
}
.drawer__nav a:hover { color: var(--blue); text-decoration: none; }
.drawer__sub { display: flex; flex-direction: column; gap: 2px; margin-top: 22px; }
.drawer__sub a {
  padding: 9px 0;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-2);
}
.drawer__actions { display: grid; gap: 10px; margin-top: auto; padding-top: 28px; }

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.section--ink a:focus-visible, .front a:focus-visible, .footer a:focus-visible, .drawer a:focus-visible {
  outline-color: #8FB8FF;
}

/* ============================================================
   Category page (jbt-02 layout): form + other categories left,
   title / intro / model grid right.
   ============================================================ */
.crumbbar {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  padding: 13px 0;
}
.crumbbar .crumb { color: var(--steel-txt); }
.crumbbar .crumb a { color: var(--steel-txt); }

.catpage { padding: 38px 0 8px; }
.catpage__grid {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 46px;
  align-items: start;
}
.catpage__side { display: grid; gap: 20px; }

.cathead {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 8px 0 0;
}
.cathead h1 { margin: 0; flex: 0 0 auto; }
.cathead::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--line);
  margin-top: 6px;
}

.catintro {
  margin: 20px 0 26px;
  padding: 16px 20px;
  border: 1px solid var(--line);
  background: var(--paper);
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--steel-txt);
}

.pgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(218px, 1fr));
  gap: 18px;
}
.pcard {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  background: #fff;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.pcard:hover { border-color: var(--blue); box-shadow: 0 2px 14px rgba(11, 92, 255, .06); }
.pcard__media {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: #fff;
  text-decoration: none;
  color: inherit;
}
.pcard__media:hover img { transform: scale(1.03); }
.pcard__media img {
  transition: transform .25s ease;
  position: absolute;
  top: 12px;
  left: 14px;
  width: calc(100% - 28px);
  height: calc(100% - 22px);
  object-fit: contain;
}
.pcard__media--ph img { opacity: .42; }

.pcard__code {
  position: absolute;
  top: 10px;
  left: 12px;
  z-index: 2;
  font-family: var(--f-mono);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--ink);
  background: #fff;
  padding: 4px 10px 4px 12px;
  border-radius: 3px;
  border-left: 3px solid var(--blue);
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
  white-space: nowrap;
}
.pcard__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 16px 14px; flex: 1 1 auto; }
.pcard__body h3 { font-size: 17px; line-height: 1.25; }
.pcard__body p { font-size: 13.5px; line-height: 1.55; color: var(--steel-txt); }
.pcard__spec {
  font-family: var(--f-mono);
  font-size: 10.5px !important;
  letter-spacing: .06em;
  color: var(--steel-2) !important;
  text-transform: uppercase;
}
.pcard__foot {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pcard__foot span { color: var(--steel-txt); }
.pcard__foot a { color: var(--blue); }
.pcard__foot a:hover { text-decoration: underline; }

.catpage__h2 { margin: 40px 0 12px; font-size: 22px; }
.catcols {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 44px;
  margin-top: 40px;
  padding-top: 30px;
  border-top: 1px solid var(--line);
}
.catcols h2 { margin-top: 0; font-size: 22px; }
.catcols p { font-size: 14.5px; line-height: 1.7; color: var(--steel-txt); }

.catinfo {
  border: 1px solid var(--line);
  background: #fff;
}
.catinfo h2 {
  margin: 0;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-family: var(--f-mono);
  color: var(--ink);
}
.catinfo a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  font-size: 13.5px;
  color: var(--ink);
}
.catinfo a:last-child { border-bottom: 0; }
.catinfo a:hover { background: var(--blue-tint); text-decoration: none; }
.catinfo img {
  width: 42px;
  height: 42px;
  object-fit: contain;
  flex: 0 0 42px;
  border: 1px solid var(--line);
  background: #fff;
  padding: 2px;
}
.catinfo span { flex: 1 1 auto; }
.catinfo em {
  font-style: normal;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .06em;
  color: var(--steel-txt);
  text-transform: uppercase;
}

@media (max-width: 1240px) {
  .pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
   Level-3 model page (jbt-03 frame + jbt-04 product copy):
   gallery | model copy | sticky enquiry form
   ============================================================ */
.pd3 { padding: 30px 0 16px; }
.pd3__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr) 348px;
  gap: 40px;
  align-items: start;
}
.pd3__form { position: sticky; top: 92px; }
.pd3__model {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--blue);
}
.pd3 h1 {
  margin: 8px 0 14px;
  font-size: clamp(38px, 3.8vw, 54px);
  line-height: 1;
  letter-spacing: -.01em;
}
.pd3__lead {
  font-size: 16.5px;
  line-height: 1.62;
  font-weight: 500;
  color: var(--ink);
}
.pd3__stamps { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.pd3__block { margin-top: 30px; }
.pd3__block h2 {
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.sizechips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  padding: 7px 14px;
  border: 1px solid var(--line);
  background: #fff;
  font-family: var(--f-mono);
  font-size: 11.5px;
  letter-spacing: .06em;
  color: var(--ink);
}
.chip--on { border-color: var(--blue); color: var(--blue); }
.pd3__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.pd3__line {
  margin-top: 18px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.pd3__line a { color: var(--blue); }
.pd3nav {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--steel-txt);
}
.pd3nav a { color: var(--steel-txt); }
.pd3nav a:hover { color: var(--blue); }

@media (max-width: 1180px) {
  .pd3__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pd3__form { grid-column: 1 / -1; position: static; }
}
@media (max-width: 760px) {
  .pd3__grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .pd3 h1 { font-size: 34px; }
  .pd3__lead { font-size: 15.5px; }
}
@media (max-width: 980px) {
  .catpage__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .catpage__side { order: 2; }
  .catpage__main { order: 1; }
  .pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catcols { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}
@media (max-width: 560px) {
  .catpage { padding-top: 26px; }
  .cathead { gap: 14px; }
  .cathead::after { display: none; }
  .catintro { padding: 14px 16px; font-size: 13.5px; }
  .pgrid { grid-template-columns: minmax(0, 1fr); }
  .pcard__media { aspect-ratio: 4 / 3; }
  .catinfo img { width: 38px; height: 38px; flex-basis: 38px; }
  .topbar__contact > span { display: none; }
}

