
/* ---------- self-hosted webfonts ---------- */
@font-face{
font-family:'Archivo';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('fonts/archivo-400-00.woff2') format('woff2');
unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face{
font-family:'Archivo';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('fonts/archivo-400-01.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:'Archivo';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('fonts/archivo-400-02.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:'Archivo';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('fonts/archivo-500-03.woff2') format('woff2');
unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face{
font-family:'Archivo';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('fonts/archivo-500-04.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:'Archivo';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('fonts/archivo-500-05.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:'Archivo';
font-style:normal;
font-weight:600;
font-display:swap;
src:url('fonts/archivo-600-06.woff2') format('woff2');
unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face{
font-family:'Archivo';
font-style:normal;
font-weight:600;
font-display:swap;
src:url('fonts/archivo-600-07.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:'Archivo';
font-style:normal;
font-weight:600;
font-display:swap;
src:url('fonts/archivo-600-08.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:'Archivo';
font-style:normal;
font-weight:700;
font-display:swap;
src:url('fonts/archivo-700-09.woff2') format('woff2');
unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face{
font-family:'Archivo';
font-style:normal;
font-weight:700;
font-display:swap;
src:url('fonts/archivo-700-10.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:'Archivo';
font-style:normal;
font-weight:700;
font-display:swap;
src:url('fonts/archivo-700-11.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:'Archivo';
font-style:normal;
font-weight:800;
font-display:swap;
src:url('fonts/archivo-800-12.woff2') format('woff2');
unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face{
font-family:'Archivo';
font-style:normal;
font-weight:800;
font-display:swap;
src:url('fonts/archivo-800-13.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:'Archivo';
font-style:normal;
font-weight:800;
font-display:swap;
src:url('fonts/archivo-800-14.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/ibm-plex-mono-400-15.woff2') format('woff2');
unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face{
font-family:'IBM Plex Mono';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('fonts/ibm-plex-mono-400-16.woff2') format('woff2');
unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
font-family:'IBM Plex Mono';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('fonts/ibm-plex-mono-400-17.woff2') format('woff2');
unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face{
font-family:'IBM Plex Mono';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('fonts/ibm-plex-mono-400-18.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/ibm-plex-mono-400-19.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:500;
font-display:swap;
src:url('fonts/ibm-plex-mono-500-20.woff2') format('woff2');
unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face{
font-family:'IBM Plex Mono';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('fonts/ibm-plex-mono-500-21.woff2') format('woff2');
unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
font-family:'IBM Plex Mono';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('fonts/ibm-plex-mono-500-22.woff2') format('woff2');
unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face{
font-family:'IBM Plex Mono';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('fonts/ibm-plex-mono-500-23.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:500;
font-display:swap;
src:url('fonts/ibm-plex-mono-500-24.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;
}

:root{
  --ink:#0E191C; --ink-2:#16262A; --paper:#F1F3F0; --paper-2:#E7EAE4;
  --mid:#5B6A67; --line:#CDD5CF; --teal:#0E7C66; --teal-dk:#0A5A4A;
  --sans:"Archivo","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono","Consolas",monospace;
  --pad:clamp(20px,4vw,64px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.68;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-0.022em;line-height:1.12}
h1{font-size:clamp(2.1rem,4.6vw,3.75rem)}
h2{font-size:clamp(1.5rem,2.4vw,2.15rem)}
h3{font-size:1.06rem;font-weight:700;letter-spacing:-0.01em;line-height:1.35}
p{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(241,243,240,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0}
.brand svg{width:26px;height:26px;flex:none}
.brand-txt{display:flex;flex-direction:column;line-height:1.15}
.brand-txt b{font-size:1rem;font-weight:800;letter-spacing:-0.015em}
.brand-txt span{font-size:.68rem;color:var(--mid);letter-spacing:.02em}
.nav{display:flex;gap:26px;align-items:center}
.nav a{
  font-size:.82rem;font-weight:500;text-decoration:none;color:var(--ink-2);
  padding:6px 0;border-bottom:1px solid transparent;transition:border-color .18s ease,color .18s ease;
}
.nav a:hover,.nav a:focus-visible{border-bottom-color:var(--teal);color:var(--teal-dk)}
.head-cta{
  font-size:.82rem;font-weight:600;text-decoration:none;color:var(--paper);
  background:var(--ink);padding:10px 18px;border-radius:2px;white-space:nowrap;
  transition:background .18s ease;
}
.head-cta:hover{background:var(--teal-dk)}
@media (max-width:860px){
  .nav{display:none}
  .head-cta{padding:9px 14px;font-size:.78rem}
}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch;min-height:clamp(440px,62vh,620px)}
.hero-txt{padding:clamp(36px,5vw,72px) clamp(20px,3vw,48px) clamp(32px,4vw,56px) var(--pad);display:flex;flex-direction:column;justify-content:center;gap:22px}
.hero-kicker{font-family:var(--mono);font-size:.72rem;color:var(--teal-dk);letter-spacing:.02em}
.hero-h{max-width:17ch}
.hero-p{color:var(--ink-2);font-size:1.02rem;max-width:46ch}
.hero-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}
.btn{
  font:inherit;font-size:.86rem;font-weight:600;text-decoration:none;padding:12px 20px;border-radius:2px;
  border:1px solid var(--ink);display:inline-flex;align-items:center;gap:9px;
}
.btn-dark{background:var(--ink);color:var(--paper)}
.btn-dark:hover{background:var(--teal-dk);border-color:var(--teal-dk)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.hero-img{position:relative;background:var(--ink-2);overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:58% 50%}
.hero-img figcaption{
  position:absolute;left:0;bottom:0;right:0;padding:14px 18px;
  background:linear-gradient(to top,rgba(14,25,28,.86),rgba(14,25,28,0));
  color:#DDE5E0;font-family:var(--mono);font-size:.68rem;letter-spacing:.01em;
}
@media (max-width:860px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-txt{padding:32px var(--pad) 26px}
  .hero-h{max-width:22ch}
  .hero-img{order:-1;height:clamp(240px,42vh,340px)}
  .hero-img figcaption{padding:10px 14px;font-size:.64rem}
}

/* ---------- capability strip ---------- */
.strip{background:var(--ink);color:var(--paper)}
.strip-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.16)}
.strip-cell{background:var(--ink);padding:26px clamp(12px,2vw,28px) 24px}
.strip-cell b{font-size:.94rem;font-weight:600;letter-spacing:-0.005em;color:#EDF1EE}
@media (max-width:780px){
  .strip-in{grid-template-columns:repeat(2,minmax(0,1fr))}
  .strip-cell{padding:20px 16px 18px}
}

/* ---------- section shell ---------- */
section{scroll-margin-top:84px}
.sec{padding:clamp(56px,7vw,96px) 0}
.sec-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(16px,4vw,56px);align-items:end;margin-bottom:clamp(28px,4vw,44px)}
.sec-head .lead{color:var(--mid);font-size:.94rem;max-width:56ch}
@media (max-width:820px){
  .sec-head{grid-template-columns:1fr;gap:14px;align-items:start}
}

/* ---------- services ---------- */
.svc-list{border-top:1px solid var(--line)}
.svc{
  display:grid;grid-template-columns:minmax(0,3.4fr) minmax(0,6.6fr);
  gap:clamp(14px,3vw,48px);padding:26px 0;border-bottom:1px solid var(--line);align-items:start;
}
.svc h3{color:var(--ink)}
.svc .desc{color:var(--ink-2);font-size:.95rem;max-width:62ch}
.svc .meta{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.tag{
  font-family:var(--mono);font-size:.66rem;color:var(--teal-dk);
  border:1px solid var(--line);background:var(--paper-2);padding:3px 8px;border-radius:2px;
}
@media (max-width:820px){
  .svc{grid-template-columns:1fr;gap:10px;padding:20px 0}
  .svc .meta{grid-column:1}
}

/* ---------- compound index ---------- */
#catalogue{padding-top:clamp(40px,5vw,66px)}
.cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(16px,3vw,40px)}
.cat-item{border-top:1px solid var(--line);padding:11px 0 13px}
.cat-item b{display:block;font-size:.9rem;font-weight:600;line-height:1.35;letter-spacing:-0.005em}
.cat-item span{display:block;margin-top:3px;font-family:var(--mono);font-size:.64rem;color:var(--mid);line-height:1.55}
.cat-foot{margin-top:26px;color:var(--mid);font-size:.84rem;max-width:82ch}
.cat-foot b{color:var(--ink-2);font-weight:600}
@media (max-width:900px){
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .cat-grid{grid-template-columns:1fr}
  .cat-item{padding:9px 0 11px}
}

/* ---------- materials ---------- */
.mat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.mat-card{background:var(--paper);display:flex;flex-direction:column}
.mat-card figure{margin:0;aspect-ratio:1/1;overflow:hidden;background:var(--paper-2)}
.mat-card img{width:100%;height:100%;object-fit:cover}
.mat-body{padding:15px 15px 18px;display:flex;flex-direction:column;gap:5px;flex:1}
.mat-body h3{font-size:.93rem;font-weight:700;line-height:1.3}
.mat-body .inci{font-family:var(--mono);font-size:.64rem;color:var(--mid);line-height:1.5}
.mat-body .meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:10px}
@media (max-width:1000px){
  .mat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mat-body{padding:12px 12px 15px}
  .mat-body h3{font-size:.88rem}
}

.svc .inci{display:block;font-family:var(--mono);font-size:.7rem;color:var(--mid);margin-top:6px;line-height:1.5}
#materials{padding-top:clamp(40px,5vw,66px)}
.mat-sub{font-family:var(--mono);font-size:.74rem;color:var(--teal-dk);margin:clamp(30px,4vw,44px) 0 10px}
.mat-note{margin-top:22px;color:var(--mid);font-size:.86rem;max-width:78ch}
@media (max-width:820px){
  .mat-note{font-size:.83rem}
}

/* ---------- quality ---------- */
.quality{background:var(--paper-2)}
.q-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(24px,4vw,56px);align-items:start}
.q-figure{margin:0;background:var(--ink-2)}
.q-figure img{width:100%;height:clamp(280px,38vw,420px);object-fit:cover;object-position:50% 60%}
.q-figure figcaption{padding:12px 16px;font-family:var(--mono);font-size:.67rem;color:var(--ink-2);background:var(--paper);border-bottom:1px solid var(--line)}
.q-list{list-style:none;margin:0;padding:0}
.q-list li{display:grid;grid-template-columns:22px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.q-list li:first-child{border-top:1px solid var(--line)}
.q-num{font-family:var(--mono);font-size:.72rem;color:var(--teal-dk);padding-top:4px}
.q-list b{display:block;font-size:.95rem;font-weight:600;margin-bottom:2px}
.q-list span{color:var(--mid);font-size:.9rem}
@media (max-width:860px){
  .q-grid{grid-template-columns:1fr}
}

/* ---------- band figure ---------- */
.band-fig{margin:0 0 clamp(26px,4vw,40px);background:var(--paper-2)}
.band-fig img{width:100%;height:clamp(200px,26vw,320px);object-fit:cover;object-position:50% 45%}
.band-fig figcaption{padding:11px 16px;font-family:var(--mono);font-size:.67rem;color:var(--mid);background:var(--paper);border-bottom:1px solid var(--line)}

/* ---------- timeline ---------- */
.tl{position:relative;border-top:1px solid var(--line)}
.tl::before{content:"";position:absolute;left:calc(44px + 11px);top:0;bottom:0;width:1px;background:var(--line)}
.tl-row{display:grid;grid-template-columns:44px 22px minmax(0,1fr);align-items:start;border-bottom:1px solid var(--line)}
.tl-idx{font-family:var(--mono);font-size:.72rem;color:var(--mid);padding:24px 0 0}
.tl-dot{display:flex;justify-content:center;align-items:flex-start;padding-top:26px;height:100%}
.tl-dot i{width:9px;height:9px;border-radius:50%;background:var(--teal);display:block;position:relative;z-index:2}
.tl-body{padding:20px 0 24px clamp(4px,1.4vw,18px)}
.tl-body b{display:block;font-size:1rem;font-weight:700;margin-bottom:5px;letter-spacing:-0.01em}
.tl-body p{color:var(--ink-2);font-size:.93rem;max-width:68ch}

/* ---------- compliance ---------- */
.comp{background:var(--ink);color:var(--paper);padding:clamp(34px,5vw,60px) 0}
.comp-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3.4vw,52px)}
.comp-col h3{color:#EDF1EE;margin-bottom:10px;font-size:.98rem;font-weight:700}
.comp-col p{color:#A8BAB3;font-size:.89rem;line-height:1.68}
@media (max-width:820px){
  .comp-in{grid-template-columns:1fr;gap:26px}
  .comp-col p{font-size:.86rem}
}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;
  padding:19px 0;font-size:.97rem;font-weight:600;line-height:1.45;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--teal-dk);flex:none}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 0 22px;color:var(--ink-2);font-size:.93rem;max-width:70ch}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,60px);align-items:start}
.ch-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;padding:15px 0;border-bottom:1px solid var(--line);align-items:baseline}
.ch-row:first-of-type{border-top:1px solid var(--line)}
.ch-row dt{font-family:var(--mono);font-size:.68rem;color:var(--mid)}
.ch-row dd{margin:0;font-size:.95rem;word-break:break-word}
.ch-row dd.is-vacant{font-family:var(--mono);font-size:.82rem;color:var(--mid)}
@media (max-width:820px){
  .contact-grid{grid-template-columns:1fr;gap:22px}
  .ch-row{grid-template-columns:1fr;gap:3px;padding:13px 0}
}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:#9DADA6;padding:clamp(36px,5vw,54px) 0 clamp(44px,6vw,64px)}
.foot-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px)}
.foot-entity p{color:#B9C7C1;font-size:.86rem;max-width:64ch}
.foot-entity p strong{color:#EDF1EE;font-weight:600}
.foot-meta{font-family:var(--mono);font-size:.7rem;color:#7E8F88;line-height:1.9}
.foot-legal{border-top:1px solid rgba(255,255,255,.13);margin-top:28px;padding-top:18px;font-size:.76rem;color:#849790;max-width:100ch}
@media (max-width:820px){
  .foot-in{grid-template-columns:1fr;gap:20px}
}

/* ---------- multi-page ---------- */
.crumb{padding-top:clamp(20px,2.6vw,32px)}
.crumb nav{font-family:var(--mono);font-size:.68rem;color:var(--mid);letter-spacing:.01em}
.crumb a{color:var(--mid);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px}
.crumb a:hover,.crumb a:focus-visible{color:var(--teal-dk);border-bottom-color:var(--teal)}
.crumb i{font-style:normal;padding:0 7px;color:#9AA8A2}
.nav a[aria-current="page"]{color:var(--teal-dk);border-bottom-color:var(--teal)}
#catalogue{padding-top:clamp(26px,3.4vw,44px)}
@media (max-width:1120px){.nav{gap:13px}.nav a{font-size:.76rem}.head-cta{font-size:.76rem;padding:9px 13px}}
@media (max-width:860px){
  .head-in{height:auto;flex-wrap:wrap;padding-top:12px;padding-bottom:0;gap:0}
  .nav{display:flex;order:3;flex:1 0 100%;gap:22px;overflow-x:auto;overflow-y:hidden;border-top:1px solid var(--line);padding:10px 0 9px;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav a{white-space:nowrap;font-size:.76rem}
  .head-cta{margin-left:auto}
}
/* ---------- wholesale price list ---------- */
.pl-terms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:clamp(20px,3vw,30px)}
.pl-terms>div{background:var(--paper);padding:14px 16px 16px}
.pl-terms dt{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--mid)}
.pl-terms dd{margin:5px 0 0;font-size:.9rem;font-weight:600;line-height:1.35}
@media (max-width:820px){.pl-terms{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pl-jump{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(24px,3.4vw,36px)}
.pl-jump a{font-family:var(--mono);font-size:.69rem;letter-spacing:.01em;text-decoration:none;color:var(--ink-2);border:1px solid var(--line);background:var(--paper-2);padding:6px 10px;border-radius:2px;transition:background .18s ease,color .18s ease,border-color .18s ease}
.pl-jump a:hover,.pl-jump a:focus-visible{background:var(--teal);color:#F1F3F0;border-color:var(--teal)}
.pl-group{margin-top:clamp(28px,3.8vw,44px)}
.pl-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:9px}
.pl-group-head h2{font-size:clamp(1.12rem,1.7vw,1.45rem)}
.pl-group-head span{font-family:var(--mono);font-size:.64rem;color:var(--mid);white-space:nowrap}
.pl-table{width:100%;border-collapse:collapse}
.pl-table thead th{font-family:var(--mono);font-size:.61rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--mid);text-align:left;padding:10px 10px 8px;border-bottom:1px solid var(--line)}
.pl-table thead th:nth-child(2),.pl-table thead th:nth-child(3){width:1px;white-space:nowrap}
.pl-table thead th.pl-price{text-align:right;width:1px;white-space:nowrap}
.pl-table tbody td{padding:9px 10px;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:baseline}
.pl-table tbody tr:hover td{background:var(--paper-2)}
.pl-table td.pl-name{font-weight:600;letter-spacing:-0.005em}
.pl-table td.pl-sku{font-family:var(--mono);font-size:.69rem;color:var(--teal-dk);white-space:nowrap}
.pl-table td.pl-fill{font-family:var(--mono);font-size:.74rem;color:var(--ink-2);white-space:nowrap}
.pl-table td.pl-price{font-family:var(--mono);font-size:.78rem;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:700px){
  .pl-table thead{display:none}
  .pl-table tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:3px 10px;padding:11px 0;border-bottom:1px solid var(--line)}
  .pl-table tbody tr:hover td{background:none}
  .pl-table tbody td{padding:0;border:0}
  .pl-table td.pl-name{grid-column:1/3;grid-row:1;font-size:.88rem}
  .pl-table td.pl-price{grid-column:3;grid-row:1;align-self:start}
  .pl-table td.pl-sku{grid-column:1;grid-row:2}
  .pl-table td.pl-fill{grid-column:2;grid-row:2;white-space:normal}
}
.pl-table td.pl-name a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .16s ease,border-color .16s ease}
.pl-table td.pl-name a:hover,.pl-table td.pl-name a:focus-visible{color:var(--teal-dk);border-bottom-color:var(--teal)}
.cat-item b a{color:inherit;text-decoration:none}
.cat-item b a:hover,.cat-item b a:focus-visible{color:var(--teal-dk);text-decoration:underline}
/* narrow screens: keep the header readable */
@media (max-width:860px){.brand-txt span{display:none}.head-cta{font-size:.74rem;padding:8px 11px}.nav{flex-wrap:wrap;row-gap:4px;overflow:visible}}
@media (max-width:520px){.head-cta{display:none}.nav{gap:16px}}

/* ---------- product detail ---------- */
.pp{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:clamp(28px,4vw,62px);align-items:start}
.pp-eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;color:var(--teal-dk);margin-bottom:12px}
.pp-h1{font-size:clamp(1.95rem,3.6vw,3rem);max-width:22ch;line-height:1.08}
.pp-lead{margin-top:20px;color:var(--ink-2);font-size:.97rem;max-width:64ch}
.pp-lead b{font-weight:600;color:var(--ink)}
.pp-h2{font-size:clamp(1.2rem,1.9vw,1.55rem);margin-top:clamp(34px,4vw,54px);margin-bottom:10px}
.pp-note{font-family:var(--mono);font-size:.68rem;line-height:1.75;color:var(--mid);max-width:60ch}
.pp-table{width:100%;border-collapse:collapse;margin-top:16px}
.pp-table thead th{font-family:var(--mono);font-size:.6rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--mid);text-align:left;padding:9px 10px 8px;border-bottom:1px solid var(--line)}
.pp-table thead th:nth-child(n+2){text-align:right;white-space:nowrap}
.pp-table tbody td{padding:10px;border-bottom:1px solid var(--line);font-size:.88rem;vertical-align:baseline}
.pp-table tbody tr:hover td{background:var(--paper-2)}
.pp-table td.pp-sku{font-family:var(--mono);font-size:.68rem;color:var(--teal-dk);white-space:nowrap}
.pp-table td.pp-str,.pp-table td.pp-pack{font-family:var(--mono);font-size:.73rem;text-align:right;white-space:nowrap}
.pp-table td.pp-pack{color:var(--mid)}
.pp-table td.pp-box{font-family:var(--mono);font-size:.8rem;font-weight:500;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pp-table td.pp-vial{font-family:var(--mono);font-size:.72rem;color:var(--mid);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pp-spec{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.pp-spec>div{background:var(--paper);padding:12px 15px 14px}
.pp-spec dt{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--mid)}
.pp-spec dd{margin:5px 0 0;font-size:.86rem;line-height:1.5}
.pp-fine{margin-top:18px;color:var(--mid);font-size:.82rem;max-width:60ch}
.pp-fine a{color:var(--teal-dk)}

.pp-card{position:sticky;top:96px;background:var(--ink);color:var(--paper);padding:24px 22px 20px;border-radius:2px}
.pp-card .k{font-family:var(--mono);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;color:#7E8F88}
.pp-card .price{font-family:var(--mono);font-size:1.72rem;line-height:1.15;margin-top:7px;font-variant-numeric:tabular-nums}
.pp-card .sub{font-family:var(--mono);font-size:.68rem;color:#A8BAB3;margin-top:8px;line-height:1.6}
.pp-card .cta{display:block;text-align:center;text-decoration:none;background:var(--paper);color:var(--ink);font-size:.84rem;font-weight:600;padding:11px 12px;border-radius:2px;margin-top:18px;transition:background .18s ease}
.pp-card .cta:hover,.pp-card .cta:focus-visible{background:var(--teal);color:#F1F3F0}
.pp-card .fine{font-size:.72rem;color:#7E8F88;margin-top:13px;line-height:1.65}
.pp-card .pp-vial{position:relative;margin:20px auto 0;width:min(262px,100%);line-height:0}
.pp-card .pp-vial img{width:100%;height:auto;display:block;border-radius:2px}
.pp-card .pp-vial-label{position:absolute;left:19.68%;top:43.31%;width:51.68%;height:35.61%;overflow:visible}

.pp-also{margin-top:clamp(40px,5vw,64px);border-top:2px solid var(--ink);padding-top:20px}
.pp-also h2{font-size:1.1rem}
.pp-also ul{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(16px,3vw,40px)}
.pp-also li a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;text-decoration:none;padding:9px 0;border-bottom:1px solid var(--line);font-size:.86rem;font-weight:500;transition:color .18s ease}
.pp-also li a:hover,.pp-also li a:focus-visible{color:var(--teal-dk)}
.pp-also li b{font-weight:500}
.pp-also li span{font-family:var(--mono);font-size:.7rem;color:var(--mid);white-space:nowrap}

@media (max-width:960px){
  .pp{grid-template-columns:1fr;gap:26px}
  .pp-card{position:static;order:0;padding:18px 18px 16px}
  .pp-card .price{font-size:1.5rem}
  .pp-also ul{grid-template-columns:1fr}
}
@media (max-width:700px){
  .pp-table thead{display:none}
  .pp-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;padding:11px 0;border-bottom:1px solid var(--line)}
  .pp-table tbody tr:hover td{background:none}
  .pp-table tbody td{padding:0;border:0;text-align:left}
  .pp-table td.pp-sku{grid-column:1;grid-row:1}
  .pp-table td.pp-str{grid-column:1;grid-row:2;text-align:left;color:var(--ink)}
  .pp-table td.pp-box{grid-column:2;grid-row:1;text-align:right}
  .pp-table td.pp-vial{grid-column:2;grid-row:2;text-align:right}
  .pp-table td.pp-pack{grid-column:1;grid-row:3;text-align:left}
  .pp-spec{grid-template-columns:1fr}
}

/* ---------- COA request ---------- */
.pp-card .cta2{display:block;text-align:center;text-decoration:none;background:transparent;color:#C9D6D1;font-size:.78rem;font-weight:500;padding:9px 12px;border:1px solid rgba(241,243,240,.32);border-radius:2px;margin-top:9px;transition:border-color .18s ease,color .18s ease}
.pp-card .cta2:hover,.pp-card .cta2:focus-visible{border-color:var(--teal);color:#F1F3F0}
.coa-back{position:fixed;inset:0;z-index:80;background:rgba(14,25,28,.62);display:flex;align-items:center;justify-content:center;padding:20px}
.coa-back[hidden]{display:none}
.coa-modal{position:relative;background:var(--paper);color:var(--ink);width:min(432px,100%);padding:26px 26px 22px;border-radius:2px;box-shadow:0 24px 70px rgba(14,25,28,.38)}
.coa-modal .coa-k{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-dk)}
.coa-modal h3{margin:9px 0 0;font-size:1.16rem;line-height:1.24}
.coa-modal .coa-txt{margin:12px 0 0;font-size:.85rem;line-height:1.62;color:var(--ink-2)}
.coa-modal .coa-go{display:block;margin-top:18px;text-align:center;text-decoration:none;background:var(--teal);color:#F1F3F0;font-weight:600;font-size:.85rem;padding:12px;border-radius:2px;transition:background .16s ease}
.coa-modal .coa-go:hover,.coa-modal .coa-go:focus-visible{background:var(--teal-dk)}
.coa-modal .coa-num{margin:10px 0 0;font-family:var(--mono);font-size:.72rem;color:var(--mid);text-align:center}
.coa-modal .coa-x{position:absolute;top:6px;right:8px;border:0;background:none;font-size:1.16rem;line-height:1;color:var(--mid);cursor:pointer;padding:6px}
.coa-modal .coa-x:hover,.coa-modal .coa-x:focus-visible{color:var(--ink)}

.coa-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:clamp(20px,2.8vw,28px) 0 4px}
.coa-bar input{flex:1 1 240px;min-width:0;font-family:var(--mono);font-size:.74rem;padding:10px 12px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);border-radius:2px}
.coa-bar input:focus{outline:none;border-color:var(--teal);background:var(--paper)}
.coa-count{font-family:var(--mono);font-size:.68rem;color:var(--mid);white-space:nowrap}
.coa-group{margin-top:clamp(26px,3.6vw,40px)}
.coa-lead{max-width:80ch}
.coa-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(18px,4vw,56px);align-items:start;margin-top:18px}
.coa-intro .pp-lead{margin-top:0}
.coa-intro .pp-fine{margin-top:0;max-width:none;align-self:start}
.coa-table{width:100%;border-collapse:collapse}
.coa-table thead th{font-family:var(--mono);font-size:.61rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--mid);text-align:left;padding:9px 10px 8px;border-bottom:1px solid var(--line)}
.coa-table thead th:nth-child(2),.coa-table thead th:nth-child(3){width:1px;white-space:nowrap}
.coa-table tbody td{padding:9px 10px;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:middle}
.coa-table tbody tr:hover td{background:var(--paper-2)}
.coa-table td.coa-name{font-weight:600;letter-spacing:-0.005em}
.coa-table td.coa-name a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .16s ease,border-color .16s ease}
.coa-table td.coa-name a:hover,.coa-table td.coa-name a:focus-visible{color:var(--teal-dk);border-bottom-color:var(--teal)}
.coa-table td.coa-sku,.coa-table td.coa-str{font-family:var(--mono);font-size:.68rem;color:var(--mid);white-space:nowrap}
.coa-table td.coa-act{text-align:right;width:1px;white-space:nowrap}
.coa-btn{font-family:var(--mono);font-size:.7rem;letter-spacing:.01em;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:8px 13px;border-radius:2px;cursor:pointer;transition:background .16s ease,border-color .16s ease}
.coa-btn:hover,.coa-btn:focus-visible{background:var(--teal);border-color:var(--teal)}
@media (max-width:760px){
  .coa-intro{grid-template-columns:1fr;gap:14px}
  .coa-table thead{display:none}
  .coa-table tbody tr{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
  .coa-table tbody tr:hover td{background:none}
  .coa-table tbody td{display:block;border:0;padding:0;width:auto}
  .coa-table td.coa-name{font-size:.9rem}
  .coa-table td.coa-sku{margin-top:3px}
  .coa-table td.coa-str{margin-top:2px}
  .coa-table td.coa-act{margin-top:9px;width:auto;text-align:left}
}
