@charset "UTF-8";
/* ==========================================================================
   provender.css — Food Additives & Ingredients (B2B export)
   Theme prefix: pv-   Visual identity: laboratory ivory, forest green surfaces,
   a single amber action colour, sentence-case grotesque headings with mono
   specification numerals, flat hairline-framed cards, a fine granule dot field.
   Loaded after the master stylesheet; the master stylesheet is not modified.
   ========================================================================== */

/* ---------------------------------------------------------------- 1. tokens */
/* Role names are inherited from the shared stylesheet skeleton. The values
   below are provender's: forest green surfaces, a single amber action colour,
   laboratory ivory partitions, small radii and no shadow. */
:root{
  --pv-steel:#10392c;        /* deep forest: every inverted surface */
  --pv-steel-2:#123b31;
  --pv-steel-3:#1a5344;
  --pv-ink:#16241f;
  --pv-copper:#97600a;       /* burnished amber: the only action colour. Doubles as TEXT on
                                light surfaces and as a FILL under white text, so it is tuned
                                to clear 4.5:1 both ways (4.8:1 on #f4f6f2, 5.3:1 on white). */
  --pv-copper-d:#8a5a0e;     /* hover / pressed */
  --pv-copper-l:#e8c489;
  --pv-copper-ink:#8a5a0e;    /* amber for TEXT on light surfaces (5.7:1 on ivory) */
  --pv-copper-bright:#c8871a; /* amber for DARK surfaces only */
  --pv-paper:#fbfaf7;        /* laboratory ivory */
  --pv-paper-2:#f4f6f2;
  --pv-card:#ffffff;
  --pv-line:#e3e6e1;
  --pv-line-2:#cfd8d0;
  --pv-muted:#5d6b64;        /* secondary text; clears 4.5:1 on the mint strip */
  --pv-on-dark:#eaf3ee;
  --pv-on-dark-dim:#a8c2b6;
  --pv-green:#1f7a5c;        /* the supporting brand green */
  --pv-green-d:#175f47;
  --pv-mint:#e6f1ea;
  --pv-r:6px;
  --pv-r-lg:10px;
  --pv-r-pill:999px;
  --pv-sh:none;              /* flat: hairline frames, never shadows */
  --pv-sh-2:none;
  --pv-wrap:1240px;
  --pv-gap:26px;
  --pv-head-h:76px;
  --pv-util-h:0px;
  --pv-dot:rgba(16,57,44,.13);
  --pv-font-display:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --pv-font-body:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --pv-font-mono:Consolas,"SFMono-Regular",Menlo,monospace;
}


/* ------------------------------------------------------------- 2. base/reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.pv-body{
  margin:0;
  font-family:var(--pv-font-body);
  font-size:16px;
  line-height:1.65;
  color:var(--pv-ink);
  background:var(--pv-paper);
  font-variant-numeric:tabular-nums;
  /* clip, not hidden: hidden would turn body into a scroll container and break
     every position:sticky descendant (header bar, filter bar, FAQ aside). */
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--pv-font-display);font-weight:650;text-transform:none;
  letter-spacing:-.012em;line-height:1.16;margin:0 0 .5em;color:var(--pv-ink);overflow-wrap:break-word}
h1{font-size:clamp(30px,3.9vw,50px)}
h2{font-size:clamp(23px,2.5vw,34px)}
h3{font-size:clamp(17px,1.4vw,20px)}
h4{font-size:15.5px;letter-spacing:.01em}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--pv-copper);outline-offset:2px}

/* ---------------------------------------------------------------- 3. layout */
.pv-wrap{width:min(100% - 48px,var(--pv-wrap));margin-inline:auto}
.pv-sec{padding:clamp(48px,6vw,86px) 0}
.pv-sec-tight{padding:clamp(30px,3.4vw,50px) 0}
.pv-sec-paper{background:var(--pv-paper-2)}
.pv-sec-card{background:var(--pv-card)}
.pv-sec-steel{background:var(--pv-steel);color:var(--pv-on-dark)}
.pv-sec-steel h2,.pv-sec-steel h3,.pv-sec-steel h1{color:#fff}
.pv-sec-steel p{color:var(--pv-on-dark-dim)}
.pv-gap{margin-top:var(--pv-gap)}
.pv-gap-lg{margin-top:clamp(32px,4vw,56px)}
.pv-center{text-align:center}
/* two page actions on one centred line: flex gap instead of the single source
   space between the anchors, and they wrap cleanly on narrow screens */
.pv-acts{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.pv-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.pv-split>*{min-width:0}
.pv-split-wide{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
/* listing pages: a fixed-width rail on the right keeps the content column wide instead
   of the two equal halves a plain .pv-split hands out */
.pv-split-aside{grid-template-columns:minmax(0,1fr) 320px;align-items:start}
@media (max-width:1024px){.pv-split-aside{grid-template-columns:minmax(0,1fr) 280px}}

/* ------------------------------------------------------------ 4. typography */
.pv-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--pv-font-display);
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pv-copper-ink);margin-bottom:12px}
.pv-eyebrow::before{content:"";width:22px;height:2px;background:var(--pv-copper);display:block}
.pv-eyebrow-light{color:var(--pv-copper-l)}
.pv-eyebrow-light::before{background:var(--pv-copper-l)}
.pv-kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--pv-copper-ink);
  border:1px solid rgba(138,90,14,.30);border-radius:var(--pv-r);padding:7px 16px;margin:0 0 22px}
.pv-lead{font-size:clamp(16px,1.25vw,18.5px);color:var(--pv-muted);max-width:64ch}
.pv-note{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--pv-muted);margin:0}
.pv-note i{color:var(--pv-copper);margin-top:3px}
.pv-sechead{margin-bottom:clamp(24px,3vw,42px)}
.pv-sechead-row{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.pv-sechead-row>div{min-width:0}
.pv-sechead p{max-width:70ch;margin-bottom:0}
.pv-count{font-family:var(--pv-font-mono);font-size:12.5px;color:var(--pv-muted)}
.pv-mono{font-family:var(--pv-font-mono);font-size:13px;letter-spacing:.02em}

/* --------------------------------------------------------------- 5. buttons */
.pv-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--pv-font-display);font-size:14.5px;font-weight:700;letter-spacing:.07em;
  text-transform:none;letter-spacing:.01em;font-weight:600;padding:13px 22px;border:1px solid transparent;border-radius:var(--pv-r);
  cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
  background:transparent;text-align:center;line-height:1.1}
.pv-btn i{font-size:13px}
.pv-btn-accent{background:var(--pv-copper);color:#fff;box-shadow:var(--pv-sh)}
.pv-btn-accent:hover{background:var(--pv-copper-d);transform:none}
.pv-btn-primary{background:var(--pv-steel);color:#fff}
.pv-btn-primary:hover{background:var(--pv-steel-3);transform:none}
.pv-btn-line{border-color:var(--pv-line-2);color:var(--pv-ink);background:var(--pv-card)}
.pv-btn-line:hover{border-color:var(--pv-copper);color:var(--pv-copper)}
/* Ghost button: outline, no fill. Three of its four placements (hero, page head,
   mobile drawer) sit on light surfaces, so it reads ink-on-paper by default; the
   dark CTA band re-arms the on-dark palette via .pv-cta. */
.pv-btn-ghost{border-color:var(--pv-line-2);color:var(--pv-ink);background:transparent}
.pv-btn-ghost:hover{border-color:var(--pv-copper);color:var(--pv-copper);background:transparent}
.pv-cta .pv-btn-ghost{border-color:rgba(255,255,255,.4);color:#fff}
.pv-cta .pv-btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.pv-btn-sm{padding:9px 15px;font-size:13px}
.pv-btn-lg{padding:16px 28px;font-size:15.5px}
.pv-btn-block{display:flex;width:100%}
.pv-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  flex:0 0 auto;border:1px solid var(--pv-line);border-radius:var(--pv-r);background:var(--pv-card);
  cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}
.pv-iconbtn:hover{background:var(--pv-copper);border-color:var(--pv-copper);color:#fff}
.pv-iconbtn-ghost{background:var(--pv-paper)}
.pv-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--pv-font-display);
  font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pv-copper-ink);
  border-bottom:2px solid rgba(200,135,26,.35);padding-bottom:3px;transition:border-color .18s ease}
.pv-link:hover{border-color:var(--pv-copper)}
.pv-pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;background:rgba(138,90,14,.10);color:var(--pv-copper-ink);
  border-radius:var(--pv-r);padding:5px 13px}

/* ---------------------------------------------------------------- 6. header */
.pv-skip{position:absolute;left:-9999px}
/* the CMS wraps the header in a namespaced div; display:contents lets the sticky
   trade bar keep <body> as its containing block instead of that wrapper. */
.pv-headwrap{display:contents}
.pv-header{position:relative;z-index:60;background:var(--pv-card)}
.pv-utility{background:var(--pv-steel);color:var(--pv-on-dark)}
.pv-utility-in{display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:var(--pv-util-h);font-size:13px}
.pv-utility-note{display:flex;align-items:center;gap:9px;margin:0;color:var(--pv-on-dark-dim);
  min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pv-utility-note i{color:var(--pv-copper-l)}
.pv-utility-links{display:flex;align-items:center;gap:18px;flex:0 0 auto}
.pv-utility-links>a{display:inline-flex;align-items:center;gap:7px;color:var(--pv-on-dark);transition:color .18s ease}
.pv-utility-links>a:hover{color:var(--pv-copper-l)}
.pv-utility-links>a i{color:var(--pv-copper-l);font-size:13px}
.pv-quote-link{border-left:1px solid rgba(255,255,255,.18);padding-left:18px}
.pv-lang{position:relative}
.pv-lang-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;
  color:var(--pv-ink);cursor:pointer;padding:0;font-size:13px}
.pv-lang-btn:hover{color:var(--pv-copper)}
.pv-lang-btn img{border-radius:2px;flex:0 0 auto}
.pv-lang-btn i{font-size:10px;color:var(--pv-copper)}
.pv-lang-menu{position:absolute;top:calc(100% + 12px);right:0;min-width:172px;background:var(--pv-card);
  border:1px solid var(--pv-line);border-radius:var(--pv-r);box-shadow:var(--pv-sh-2);padding:7px;
  display:none;z-index:80}
.pv-lang-menu.open{display:block}
.pv-lang-menu a{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:6px;
  color:var(--pv-ink);font-size:13.5px}
.pv-lang-menu a:hover{background:var(--pv-paper)}
.pv-lang-menu a.on{color:var(--pv-copper);font-weight:600}

.pv-bar{position:sticky;top:0;z-index:60;background:var(--pv-card);border-bottom:1px solid var(--pv-line)}
.pv-bar.is-stuck{box-shadow:var(--pv-sh)}
/* Set by the header script when the rail cannot hold its top-level items and the tool
   cluster at the same time. The CTA retires first, then the search field collapses from
   an inline input into the magnifier button that opens it as a panel. No visible menu
   item is ever handed to "More" while either of those is still available. */
.pv-bar.is-narrow .pv-bar-cta{display:none}
.pv-bar.is-tight .pv-bar-cta{display:none}
.pv-bar-in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  gap:clamp(14px,2vw,32px);min-height:var(--pv-head-h)}
.pv-brand{display:flex;align-items:center;gap:13px;min-width:0;flex:0 0 auto;
  padding-left:14px;border-left:3px solid var(--pv-copper)}
.pv-brand img{max-height:38px;width:auto}
.pv-brand.is-thin span{display:none}
.pv-nav{min-width:0}
.pv-nav-rail{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;overflow:visible}
.pv-nav-item{position:relative}
/* the rail must hold up to six top-level items, so the item metrics breathe with the
   viewport instead of stealing room from the last item */
.pv-nav-item>a{display:inline-flex;align-items:center;gap:5px;padding:10px clamp(9px,.8vw,13px);
  font-family:var(--pv-font-display);font-size:clamp(13px,1.02vw,14px);font-weight:700;letter-spacing:.045em;
  text-transform:uppercase;color:var(--pv-ink);white-space:nowrap;border-bottom:2px solid transparent;
  transition:color .18s ease,border-color .18s ease}
.pv-nav-item>a i{font-size:9px;color:var(--pv-copper)}
.pv-nav-item>a:hover,.pv-nav-item>a.on{color:var(--pv-copper);border-bottom-color:var(--pv-copper)}
.pv-nav-panel{position:absolute;top:100%;left:0;width:min(860px,88vw);background:var(--pv-steel);
  border-radius:0 0 var(--pv-r-lg) var(--pv-r-lg);box-shadow:var(--pv-sh-2);padding:26px 28px 22px;
  opacity:0;visibility:hidden;transform:translate(var(--pv-panel-x,0px),10px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s}
/* --pv-panel-x is set per panel by the header script so a panel anchored on the right
   half of the rail is pulled back inside the viewport instead of being clipped */
.pv-nav-item.has-panel:hover .pv-nav-panel,.pv-nav-item.has-panel:focus-within .pv-nav-panel{
  opacity:1;visibility:visible;transform:translate(var(--pv-panel-x,0px),0)}
.pv-nav-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px 26px}
.pv-nav-group{min-width:0}
.pv-nav-parent{display:flex;align-items:center;gap:9px;color:#fff;font-family:var(--pv-font-display);
  font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}
.pv-nav-parent i{color:var(--pv-copper-l);font-size:13px}
.pv-nav-parent:hover{color:var(--pv-copper-l)}
.pv-nav-child{display:block;padding:5px 0;color:var(--pv-on-dark-dim);font-size:14px;
  border-bottom:1px solid rgba(255,255,255,.07)}
.pv-nav-child:hover{color:#fff}
.pv-nav-all{display:inline-flex;align-items:center;gap:9px;margin-top:20px;color:var(--pv-copper-l);
  font-family:var(--pv-font-display);font-size:13.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.pv-nav-all:hover{color:#fff}
.pv-more-sub{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:4px 22px}
.pv-more-sub>li>a{display:block;padding:7px 0;color:var(--pv-on-dark-dim);font-size:14px}
.pv-more-sub>li>a:hover{color:#fff}

.pv-tools{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.pv-tool{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;flex:0 0 auto;border:1px solid var(--pv-line);border-radius:var(--pv-r-pill);
  background:var(--pv-card);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}
.pv-tool:hover{border-color:var(--pv-copper);color:var(--pv-copper)}
.pv-tool-quote{text-decoration:none}
.pv-badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;display:none;
  align-items:center;justify-content:center;background:var(--pv-copper);color:#fff;border-radius:var(--pv-r-pill);
  font-size:11px;font-weight:700;padding:0 5px}
.pv-burger span{display:block;width:20px;height:2px;background:var(--pv-ink);border-radius:2px}
.pv-burger span+span{margin-top:4px}
.pv-burger{display:none;flex-direction:column}
.pv-bar-cta{display:inline-flex}

/* The predecessor's slide-down search deck is gone: provender keeps one field in the
   bar (inline, or a panel when the rail is tight), so .pv-searchover / .pv-searchform /
   .pv-quicklinks have no markup and their rules were removed with it. */

.pv-mask{position:fixed;inset:0;background:rgba(13,27,32,.55);opacity:0;visibility:hidden;
  transition:opacity .2s ease,visibility .2s;z-index:90}
.pv-mask.open{opacity:1;visibility:visible}
.pv-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,92vw);background:var(--pv-card);
  transform:translateX(102%);transition:transform .24s ease;z-index:100;display:flex;flex-direction:column;
  overflow-y:auto;overscroll-behavior:contain}
.pv-panel.open{transform:translateX(0)}
.pv-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;
  border-bottom:1px solid var(--pv-line);position:sticky;top:0;background:var(--pv-card);z-index:2}
.pv-panel-head img{max-height:34px;width:auto}
.pv-panel-body{padding:18px 20px 24px;flex:1 1 auto;min-width:0}
.pv-panel-search{display:flex;align-items:center;gap:8px;border:1px solid var(--pv-line);border-radius:var(--pv-r-pill);
  padding:4px 4px 4px 16px;background:var(--pv-paper)}
.pv-panel-search input{flex:1 1 auto;min-width:0;border:0;background:transparent;padding:11px 0;font-size:15px;outline:none}
.pv-panel-search button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  flex:0 0 auto;border:0;border-radius:var(--pv-r-pill);background:var(--pv-copper);color:#fff;cursor:pointer}
.pv-panel-nav{margin-top:18px;display:flex;flex-direction:column}
.pv-panel-link{display:flex;align-items:center;gap:11px;padding:13px 2px;font-family:var(--pv-font-display);
  font-size:15px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--pv-line)}
.pv-panel-link i{color:var(--pv-copper);width:18px;text-align:center}
.pv-panel-acc{border-bottom:1px solid var(--pv-line)}
.pv-panel-acc>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 2px;
  cursor:pointer;font-family:var(--pv-font-display);font-size:15px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;list-style:none}
.pv-panel-acc>summary::-webkit-details-marker{display:none}
.pv-panel-acc>summary i{color:var(--pv-copper);font-size:12px;transition:transform .18s ease}
.pv-panel-acc[open]>summary i{transform:rotate(45deg)}
.pv-panel-sub{display:flex;flex-direction:column;padding:4px 0 12px 12px;border-left:2px solid var(--pv-line)}
.pv-panel-sub a{padding:8px 0 8px 12px;font-size:14.5px;color:var(--pv-muted)}
.pv-panel-sub a:hover{color:var(--pv-copper)}
.pv-panel-all{font-weight:600;color:var(--pv-copper)!important}
.pv-panel-l2{padding-left:24px!important;font-size:13.5px!important}
.pv-panel-lang{margin-top:20px}
.pv-panel-lang>span{display:block;font-family:var(--pv-font-display);font-size:12.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--pv-muted);margin-bottom:10px}
.pv-panel-langs{display:flex;flex-wrap:wrap;gap:8px}
.pv-panel-langs a{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid var(--pv-line);
  border-radius:var(--pv-r-pill);font-size:13.5px}
.pv-panel-langs a.on{border-color:var(--pv-copper);color:var(--pv-copper);font-weight:600}
.pv-panel-contact{display:flex;flex-direction:column;gap:9px;margin-top:20px}
.pv-panel-contact a{display:flex;align-items:center;gap:11px;font-size:14.5px;color:var(--pv-muted);min-width:0}
.pv-panel-contact a span{overflow-wrap:anywhere}
.pv-panel-contact i{color:var(--pv-copper);width:18px;text-align:center}
.pv-panel-foot{position:sticky;bottom:0;background:var(--pv-card);border-top:1px solid var(--pv-line);
  padding:14px 20px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:9px}

/* ------------------------------------------------------------------ 7. hero */
.pv-hero{position:relative;background:var(--pv-steel);color:var(--pv-on-dark);
  padding:clamp(40px,5vw,72px) 0 clamp(44px,5vw,78px);overflow:hidden}
.pv-hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:64px 64px}
.pv-hero::after{content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--pv-copper) 0 34%,rgba(255,255,255,.14) 34% 100%)}
.pv-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(26px,4vw,58px);align-items:center}
.pv-hero-copy{min-width:0}
.pv-hero h1{color:#fff;margin-bottom:20px}
.pv-hero-title em{font-style:normal;display:block;color:var(--pv-copper-l)}
.pv-hero-lead{color:var(--pv-on-dark-dim);font-size:clamp(15.5px,1.2vw,18px);max-width:62ch;margin-bottom:28px}
.pv-hero-acts{display:flex;gap:14px;flex-wrap:wrap}
.pv-hero-trust{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:30px;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.16)}
.pv-hero-trust div{min-width:0}
.pv-hero-trust b{display:block;font-family:var(--pv-font-display);font-size:15px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:#fff}
.pv-hero-trust span{font-size:13px;color:var(--pv-on-dark-dim)}
.pv-hero-media{position:relative;min-width:0}
.pv-hero-fig{margin:0;border-radius:var(--pv-r-lg);overflow:hidden;box-shadow:var(--pv-sh-2);
  border:1px solid rgba(255,255,255,.16);aspect-ratio:4/3;background:var(--pv-steel-3)}
.pv-hero-fig img{width:100%;height:100%;object-fit:cover}
.pv-hero-chip{position:absolute;left:-14px;bottom:-22px;background:var(--pv-card);color:var(--pv-ink);
  border-radius:var(--pv-r);box-shadow:var(--pv-sh-2);padding:15px 18px;display:flex;align-items:center;gap:13px;
  border-top:3px solid var(--pv-copper);max-width:min(300px,80%)}
.pv-hero-chip img{width:52px;height:52px;border-radius:6px;object-fit:cover;flex:0 0 auto}
.pv-hero-chip b{display:block;font-family:var(--pv-font-display);font-size:14px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase}
.pv-hero-chip span{font-size:12.5px;color:var(--pv-muted)}
.pv-hero-badge{position:absolute;top:16px;right:16px;background:rgba(16,57,44,.82);color:#fff;
  border:1px solid rgba(255,255,255,.28);border-radius:var(--pv-r-pill);padding:7px 15px;
  font-family:var(--pv-font-display);font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

/* -------------------------------------------------------------- 8. aisles */
.pv-aisles{background:var(--pv-card);border-bottom:1px solid var(--pv-line);padding:18px 0}
.pv-aisles-in{display:flex;align-items:center;gap:18px}
.pv-aisles-lab{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;
  font-family:var(--pv-font-display);font-size:12.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--pv-copper);border-right:1px solid var(--pv-line);padding-right:18px}
.pv-aisles-rail{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:2px 0;flex:1 1 auto;min-width:0}
.pv-aisles-rail::-webkit-scrollbar{display:none}
.pv-aisle{display:inline-flex;align-items:center;gap:11px;flex:0 0 auto;border:1px solid var(--pv-line);
  border-radius:var(--pv-r-pill);padding:6px 16px 6px 6px;background:var(--pv-paper);
  transition:border-color .18s ease,background .18s ease,transform .18s ease}
.pv-aisle:hover{border-color:var(--pv-copper);background:var(--pv-card);transform:none}
.pv-aisle img{width:36px;height:36px;border-radius:var(--pv-r-pill);object-fit:cover;flex:0 0 auto}
.pv-aisle-nm{font-family:var(--pv-font-display);font-size:13.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;white-space:nowrap}

/* ------------------------------------------------------------ 9. products */
.pv-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pv-gap)}
/* certificate plate: the scans are portrait documents, so show the whole sheet on
   white rather than cropping it to the 1:1 product-card crop */
.pv-docwall .pv-card-media{aspect-ratio:4/5;background:var(--pv-card)}
.pv-docwall .pv-card-media img{object-fit:contain}
.pv-docwall .pv-card:hover .pv-card-media img{transform:none}
.pv-cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pv-card{display:flex;flex-direction:column;background:var(--pv-card);border:1px solid var(--pv-line);
  border-radius:var(--pv-r-lg);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.pv-card:hover{box-shadow:none;border-color:var(--pv-line-2)}
.pv-card-media{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--pv-paper-2);position:relative}
.pv-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.pv-card:hover .pv-card-media img{transform:none}
.pv-card-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.pv-card-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--pv-copper);font-weight:600;margin-bottom:9px}
.pv-card-meta i{color:var(--pv-line-2);font-style:normal}
.pv-card-meta .pv-count{text-transform:none;letter-spacing:0}
.pv-card h3{margin-bottom:9px;font-size:17px}
.pv-card h3 a:hover{color:var(--pv-copper)}
.pv-card p{font-size:14.5px;color:var(--pv-muted);margin-bottom:16px}
.pv-card-acts{display:flex;align-items:center;gap:9px;margin-top:auto}
.pv-specchips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.pv-spec{display:inline-flex;align-items:center;gap:5px;font-family:var(--pv-font-mono);font-size:11.5px;
  letter-spacing:.01em;background:var(--pv-paper);border:1px solid var(--pv-line);border-radius:var(--pv-r);
  padding:3px 10px;color:var(--pv-muted);max-width:100%;overflow-wrap:anywhere}

/* ------------------------------------------------------------ 10. coverage */
.pv-cover-media{margin:0;border-radius:var(--pv-r-lg);overflow:hidden;box-shadow:var(--pv-sh);
  aspect-ratio:4/3;background:var(--pv-paper-2)}
.pv-cover-media img{width:100%;height:100%;object-fit:cover}
/* ---- visual-editor image slot: the uiupload tag wraps the <img> in this span, the
   rules below keep the slot in the same box role the bare <img> had before ---- */
.pv-imgslot{display:block}
.pv-hero-fig .pv-imgslot,.pv-cover-media .pv-imgslot,.pv-logi-media .pv-imgslot{height:100%}
.pv-hero-chip .pv-imgslot{flex:0 0 auto}
.pv-cover-rows{margin-top:22px;border-top:1px solid var(--pv-line)}
.pv-cover-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:18px 0;
  border-bottom:1px solid var(--pv-line);align-items:start}
.pv-cover-n{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  flex:0 0 auto;border-radius:var(--pv-r);background:var(--pv-steel);color:#fff;
  font-family:var(--pv-font-display);font-size:15px;font-weight:700}
.pv-cover-row h3{margin-bottom:5px}
.pv-cover-row p{margin:0;font-size:14.5px;color:var(--pv-muted)}
.pv-cover-row>div{min-width:0}

/* --------------------------------------------------------------- 11. range */
.pv-range{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.pv-cat{display:flex;flex-direction:column;background:var(--pv-card);border:1px solid var(--pv-line);
  border-radius:var(--pv-r-lg);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.pv-cat:hover{box-shadow:none}
.pv-cat-ph{aspect-ratio:4/3;overflow:hidden;background:var(--pv-paper-2)}
.pv-cat-ph img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.pv-cat:hover .pv-cat-ph img{transform:none}
.pv-cat-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.pv-cat-nm{font-family:var(--pv-font-display);font-size:15.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;margin-bottom:7px}
.pv-cat-desc{font-size:13.5px;color:var(--pv-muted);margin-bottom:14px}
.pv-cat-go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;color:var(--pv-copper);
  font-family:var(--pv-font-display);font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}

/* ---------------------------------------------------------------- 12. kits */
.pv-kits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pv-gap)}
.pv-kit{position:relative;border-radius:var(--pv-r-lg);overflow:hidden;background:var(--pv-steel);
  color:var(--pv-on-dark);min-height:340px;display:flex;flex-direction:column;justify-content:flex-end}
.pv-kit img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.pv-kit-body{position:relative;z-index:1;padding:24px 24px 26px;
  background:linear-gradient(180deg,transparent 0,rgba(16,57,44,.9) 55%,var(--pv-steel) 100%)}
.pv-kit-body h3{color:#fff;margin-bottom:8px}
.pv-kit-body p{color:var(--pv-on-dark-dim);font-size:14.5px;margin-bottom:14px}
.pv-kit-list{display:flex;flex-direction:column;gap:6px}
.pv-kit-list li{display:flex;gap:9px;align-items:flex-start;font-size:14px;color:var(--pv-on-dark)}
.pv-kit-list i{color:var(--pv-copper-l);margin-top:4px;font-size:12px}

/* ------------------------------------------------------------- 13. process */
.pv-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;position:relative}
.pv-step{padding:0 18px 0 0;position:relative;min-width:0}
.pv-step::before{content:"";position:absolute;left:0;top:21px;right:0;height:2px;background:var(--pv-line)}
.pv-step:last-child::before{right:auto;width:0}
.pv-step-n{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--pv-r-pill);background:var(--pv-card);border:2px solid var(--pv-copper);
  color:var(--pv-copper);font-family:var(--pv-font-display);font-size:16px;font-weight:700;margin-bottom:16px}
.pv-step h3{font-size:15.5px;margin-bottom:6px}
.pv-step p{font-size:13.5px;color:var(--pv-muted);margin:0}

/* ----------------------------------------------------------- 14. documents */
.pv-docs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
/* a set of five document classes reads as one balanced row instead of 4 + 1 */
.pv-docs-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.pv-doc{background:var(--pv-card);border:1px solid var(--pv-line);border-left:3px solid var(--pv-copper);
  border-radius:var(--pv-r);padding:22px 22px 24px;min-width:0}
.pv-doc-n{display:block;font-family:var(--pv-font-mono);font-size:12px;color:var(--pv-copper);
  letter-spacing:.1em;margin-bottom:12px}
.pv-doc b{display:block;font-family:var(--pv-font-display);font-size:15.5px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.pv-doc span{font-size:14px;color:var(--pv-muted)}

/* ----------------------------------------------------------- 15. logistics */
.pv-logi-media{margin:0;border-radius:var(--pv-r-lg);overflow:hidden;box-shadow:var(--pv-sh);
  aspect-ratio:16/10;background:var(--pv-paper-2)}
.pv-logi-media img{width:100%;height:100%;object-fit:cover}
.pv-logi-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}
.pv-logi-row{background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r);padding:16px 18px;min-width:0}
.pv-logi-row b{display:block;font-family:var(--pv-font-display);font-size:14.5px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px}
.pv-logi-row span{font-size:13.5px;color:var(--pv-muted)}

/* ------------------------------------------------------------ 16. insights */
.pv-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pv-gap)}
.pv-note-item{display:flex;flex-direction:column;background:var(--pv-card);border:1px solid var(--pv-line);
  border-radius:var(--pv-r-lg);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.pv-note-item:hover{box-shadow:none}
.pv-note-thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--pv-paper-2)}
.pv-note-thumb img{width:100%;height:100%;object-fit:cover}
.pv-note-item>div{padding:18px 20px 20px;min-width:0}
.pv-note-date{display:flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--pv-copper-ink);font-weight:600;margin-bottom:9px;flex-wrap:wrap}
.pv-note-date span{color:var(--pv-muted);font-weight:500}
.pv-note-item h2,.pv-note-item h3{font-size:17px;line-height:1.32;margin-bottom:8px}
.pv-note-item h2 a:hover,.pv-note-item h3 a:hover{color:var(--pv-copper)}
.pv-note-item p{font-size:14px;color:var(--pv-muted);margin:0}
.pv-note-item .pv-link{display:inline-flex;align-items:center;gap:8px;margin-top:12px}
/* ---- home 03b solutions row: reads as editorial cards (photo beside the text, no
   inquiry / quote actions) so it is clearly not the product-card treatment ---- */
.pv-notes.pv-solutions{grid-template-columns:repeat(2,minmax(0,1fr))}
.pv-solutions .pv-note-item{flex-direction:row}
.pv-solutions .pv-note-thumb{flex:0 0 42%;aspect-ratio:auto}
.pv-solutions .pv-note-item>div{display:flex;flex-direction:column;justify-content:center}
@media (max-width:900px){
  .pv-notes.pv-solutions{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .pv-solutions .pv-note-item{flex-direction:column}
  .pv-solutions .pv-note-thumb{flex:none;aspect-ratio:16/10}
}

/* ------------------------------------------------------------------ 17. FAQ */
.pv-faqsplit{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(24px,3.6vw,54px);align-items:start}
.pv-faqsplit>*{min-width:0}
.pv-faqbox{position:sticky;top:calc(var(--pv-head-h) + 20px);min-width:0}
.pv-faqbox h2{margin-bottom:14px}
.pv-faq{display:flex;flex-direction:column;gap:10px}
.pv-faq-item{background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r);overflow:hidden}
.pv-faq-item.open{border-color:var(--pv-copper)}
.pv-faq-q{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;
  width:100%;background:transparent;border:0;text-align:left;padding:17px 20px;cursor:pointer}
.pv-faq-q em{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:var(--pv-r-pill);background:var(--pv-paper);color:var(--pv-copper);font-style:normal;
  font-family:var(--pv-font-display);font-size:12px;font-weight:700;flex:0 0 auto}
.pv-faq-q span{font-family:var(--pv-font-display);font-size:15.5px;font-weight:700;letter-spacing:.03em;
  text-transform:none;overflow-wrap:break-word}
.pv-faq-q i{color:var(--pv-copper);font-size:13px;transition:transform .2s ease;flex:0 0 auto}
.pv-faq-item.open .pv-faq-q i{transform:rotate(45deg)}
.pv-faq-a{display:none;padding:0 20px 20px 60px;font-size:14.5px;color:var(--pv-muted)}
.pv-faq-item.open .pv-faq-a{display:block}

/* ---------------------------------------------------------------- 18. CTA */
.pv-cta{position:relative;background:var(--pv-steel);color:var(--pv-on-dark);
  padding:clamp(40px,4.6vw,64px) 0;overflow:hidden}
.pv-cta::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,var(--pv-copper) 0 22%,rgba(255,255,255,.16) 22% 100%)}
.pv-cta-in{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;
  gap:32px;flex-wrap:wrap}
.pv-cta-in>div{min-width:0}
.pv-cta h2{color:#fff;margin-bottom:10px}
.pv-cta p{color:var(--pv-on-dark-dim);margin:0;max-width:68ch}
.pv-cta-acts{display:flex;gap:13px;flex-wrap:wrap}

/* -------------------------------------------------------------- 19. footer */
/* provender footer: a light laboratory slate. No inverted band — the enquiry
   block is a paper card carrying a four-cell specification ledger, and below it
   a document strip states what leaves with every order. */
.pv-foot{background:var(--pv-paper-2);color:var(--pv-ink);border-top:3px solid var(--pv-steel)}
.pv-foot-slide{padding:clamp(30px,3.6vw,46px) 0 clamp(26px,3vw,38px)}
.pv-foot-slide-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(24px,3vw,44px);align-items:center}
.pv-foot-slide-in>*{min-width:0}
.pv-foot-slide h2{font-size:clamp(20px,2.2vw,28px);margin:10px 0 8px}
.pv-foot-slide p{color:var(--pv-muted);margin:0;max-width:60ch;font-size:14.5px}
.pv-foot-slide-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.pv-foot-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  border:1px solid var(--pv-line);border-left:2px solid var(--pv-green);background:var(--pv-card)}
.pv-foot-ledger>div{min-width:0;padding:14px 16px;border-top:1px solid var(--pv-line);border-left:1px solid var(--pv-line)}
.pv-foot-ledger>div:nth-child(-n+2){border-top:0}
.pv-foot-ledger>div:nth-child(odd){border-left:0}
.pv-foot-ledger b{display:block;font-family:var(--pv-font-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--pv-muted);margin-bottom:4px}
.pv-foot-ledger span{display:block;font-size:14.5px;font-weight:600;color:var(--pv-ink)}
/* document strip: what travels with the goods */
.pv-foot-docs{background:var(--pv-mint);border-top:1px solid var(--pv-line);border-bottom:1px solid var(--pv-line)}
.pv-foot-docs-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.pv-foot-doc{display:flex;align-items:flex-start;gap:11px;padding:16px 18px;min-width:0;
  border-left:1px solid var(--pv-line)}
.pv-foot-doc:first-child{border-left:0}
.pv-foot-doc i{color:var(--pv-green);font-size:15px;line-height:1.5;flex:0 0 auto}
.pv-foot-doc b{display:block;font-size:14px;color:var(--pv-ink);margin:0}
.pv-foot-doc span{display:block;font-size:12.5px;color:var(--pv-muted);line-height:1.5}
.pv-foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(24px,3vw,44px);padding:clamp(34px,4vw,52px) 0}
.pv-foot-grid>*{min-width:0}
.pv-foot-logo{display:inline-block;margin-bottom:16px}
.pv-foot-logo img{max-height:40px;width:auto}
.pv-foot-brand p{color:var(--pv-muted);font-size:14px;max-width:44ch}
.pv-foot-sub{margin-top:22px;padding-top:20px;border-top:1px solid var(--pv-line)}
.pv-foot-sub h4{color:var(--pv-ink);margin-bottom:11px}
.pv-subform{display:flex;align-items:center;gap:8px;background:var(--pv-card);
  border:1px solid var(--pv-line-2);border-radius:var(--pv-r);padding:4px 4px 4px 14px;max-width:340px}
.pv-subform:focus-within{border-color:var(--pv-copper)}
.pv-subform input{flex:1 1 auto;min-width:0;border:0;background:transparent;color:var(--pv-ink);padding:10px 0;font-size:14px;outline:none}
.pv-subform input::placeholder{color:var(--pv-muted)}
.pv-subform button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  flex:0 0 auto;border:0;border-radius:var(--pv-r);background:var(--pv-copper);color:#fff;cursor:pointer}
.pv-foot-sub small{display:block;margin-top:9px;font-size:12.5px;color:var(--pv-muted)}
.pv-foot-col h4{color:var(--pv-ink);margin-bottom:14px;padding-bottom:9px;border-bottom:1px solid var(--pv-line)}
.pv-foot-col li{border-bottom:1px solid var(--pv-line)}
.pv-foot-col a{display:flex;align-items:center;gap:8px;padding:9px 0;font-size:14px;color:var(--pv-muted);min-width:0}
.pv-foot-col a:hover{color:var(--pv-green)}
.pv-foot-more{color:var(--pv-green)!important;font-weight:600}
.pv-foot-contact h4{color:var(--pv-ink);margin-bottom:14px;padding-bottom:9px;border-bottom:1px solid var(--pv-line)}
.pv-foot-ch{display:flex;align-items:flex-start;gap:12px;padding:10px 0;color:var(--pv-muted);min-width:0}
.pv-foot-ch:hover{color:var(--pv-green)}
.pv-foot-ch>i{width:34px;height:34px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--pv-r);background:var(--pv-mint);color:var(--pv-green)}
.pv-foot-ch>div{min-width:0}
.pv-foot-ch small{display:block;font-size:12px;color:var(--pv-muted);text-transform:uppercase;letter-spacing:.08em}
.pv-foot-ch span{font-size:14px;color:var(--pv-ink);overflow-wrap:anywhere}
.pv-foot-ch-static{cursor:default}
.pv-foot-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:20px 0 26px;border-top:1px solid var(--pv-line)}
.pv-foot-legal{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--pv-muted)}
.pv-foot-legal a{color:var(--pv-muted)}
.pv-foot-legal a:hover{color:var(--pv-green)}
.pv-social{display:flex;gap:9px}
.pv-social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:var(--pv-r);background:var(--pv-card);border:1px solid var(--pv-line);color:var(--pv-green)}
.pv-social a:hover{background:var(--pv-green);border-color:var(--pv-green);color:#fff}

/* ------------------------------------------------------------- 20. cookies */
.pv-cookie{position:fixed;left:20px;bottom:20px;z-index:120;width:min(420px,calc(100vw - 40px));
  background:var(--pv-card);border:1px solid var(--pv-line);border-top:4px solid var(--pv-copper);
  border-radius:var(--pv-r-lg);box-shadow:var(--pv-sh-2);padding:20px 22px;
  display:none;gap:14px;align-items:flex-start}
.pv-cookie.show{display:flex}
.pv-cookie-icon{width:40px;height:40px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--pv-r-pill);background:rgba(200,135,26,.13);color:var(--pv-copper)}
.pv-cookie-body{min-width:0}
.pv-cookie-body strong{display:block;font-family:var(--pv-font-display);font-size:15px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px}
.pv-cookie-body p{font-size:13.5px;color:var(--pv-muted);margin-bottom:14px}
.pv-cookie-body a{color:var(--pv-copper);text-decoration:underline}
.pv-cookie-acts{display:flex;gap:10px;flex-wrap:wrap}

/* --------------------------------------------------------------- 21. modal */
.pv-modal{position:fixed;inset:0;background:rgba(13,27,32,.66);z-index:140;display:none;
  align-items:flex-start;justify-content:center;padding:40px 18px;overflow-y:auto}
.pv-modal.on{display:flex}
.pv-modal-box{position:relative;width:min(720px,100%);background:var(--pv-card);border-radius:var(--pv-r-lg);
  box-shadow:var(--pv-sh-2);overflow:hidden}
.pv-modal-close{position:absolute;top:12px;right:12px;width:38px;height:38px;flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--pv-line);
  border-radius:var(--pv-r-pill);background:var(--pv-card);cursor:pointer;z-index:2}
.pv-modal-close:hover{border-color:var(--pv-copper);color:var(--pv-copper)}
.pv-modal-head{padding:26px 28px 20px;background:var(--pv-steel);color:var(--pv-on-dark)}
.pv-modal-head .pv-pill,.pv-sec-steel .pv-pill,.pv-sidecard-accent .pv-pill,.pv-catalogcard .pv-pill{
  background:rgba(232,196,137,.16);color:var(--pv-copper-l)}
.pv-modal-head h3{color:#fff;margin:10px 0 8px}
.pv-modal-head p{color:var(--pv-on-dark-dim);font-size:14px;margin:0}
.pv-modal-main{padding:24px 28px 28px}
.pv-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:20px}
.pv-form-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pv-form-2>*{min-width:0}
.pv-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.pv-field label{font-family:var(--pv-font-display);font-size:12.5px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--pv-muted)}
.pv-field input,.pv-field textarea,.pv-field select{width:100%;border:1px solid var(--pv-line);
  border-radius:var(--pv-r);padding:12px 14px;font:inherit;font-size:14.5px;background:var(--pv-paper);color:var(--pv-ink)}
.pv-field input:focus,.pv-field textarea:focus,.pv-field select:focus{outline:none;border-color:var(--pv-copper);background:var(--pv-card)}
.pv-field textarea{resize:vertical;min-height:110px}
.success-overlay{position:fixed;inset:0;background:rgba(13,27,32,.7);z-index:160;display:flex;
  align-items:center;justify-content:center;padding:24px}
.success-box{background:var(--pv-card);border-radius:var(--pv-r-lg);padding:34px 32px;text-align:center;
  max-width:420px;box-shadow:var(--pv-sh-2)}
.success-icon{width:58px;height:58px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--pv-r-pill);background:rgba(200,135,26,.13);color:var(--pv-copper);font-size:24px}
.success-box h3{margin-bottom:8px}
.success-box p{color:var(--pv-muted);font-size:14.5px}

/* ------------------------------------------------------- 22. shared utility */
.pv-toast{position:fixed;bottom:96px;left:50%;transform:translate(-50%,16px);z-index:150;
  display:flex;align-items:center;gap:13px;background:var(--pv-steel);color:#fff;border-radius:var(--pv-r);
  padding:14px 20px;box-shadow:var(--pv-sh-2);opacity:0;transition:opacity .25s ease,transform .25s ease;
  max-width:calc(100vw - 40px)}
.pv-toast.on{opacity:1;transform:translate(-50%,0)}
.pv-toast>i{color:var(--pv-copper-l)}
.pv-toast a{color:var(--pv-copper-l);margin-left:8px;text-decoration:underline;white-space:nowrap}
.pv-wa{position:fixed;right:20px;bottom:96px;z-index:110;display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:var(--pv-r-pill);background:#25d366;color:#fff;font-size:23px;
  box-shadow:var(--pv-sh-2)}
/* same footprint as .pv-wa so the two floating buttons read as one stack */
.pv-top{position:fixed;right:20px;bottom:160px;z-index:110;display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:var(--pv-r-pill);background:var(--pv-steel);color:#fff;border:0;font-size:20px;
  cursor:pointer;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s}
.pv-top.show{opacity:1;visibility:visible}
.pv-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:115;display:none;gap:10px;
  background:var(--pv-card);border-top:1px solid var(--pv-line);padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
.pv-mobilebar .pv-btn{flex:1 1 0}

.pv-crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--pv-muted);
  padding:16px 0;overflow-wrap:anywhere}
.pv-crumb a{color:var(--pv-muted)}
.pv-crumb a:hover{color:var(--pv-copper)}
.pv-crumb i{font-size:9px;color:var(--pv-line-2)}

.pv-phead{background:var(--pv-paper-2);padding-bottom:clamp(28px,3.4vw,46px);position:relative;overflow:hidden}
.pv-phead::after{content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--pv-copper) 0 20%,var(--pv-line) 20% 100%)}
.pv-phead-card{background:var(--pv-card)}
.pv-phead-row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.pv-phead-row>div{min-width:0}
.pv-phead h1{margin-bottom:12px}
.pv-phead-acts{display:flex;gap:12px;flex-wrap:wrap}

.pv-filterbar{position:sticky;top:var(--pv-head-h);z-index:40;background:var(--pv-card);
  border-top:1px solid var(--pv-line);border-bottom:1px solid var(--pv-line);padding:12px 0}
.pv-filterbar-in{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pv-chips{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1 1 auto;
  min-width:0;padding:2px 0;cursor:default}
.pv-chips::-webkit-scrollbar{display:none}
/* an anchor rail sitting directly under a page head needs air from the head row,
   otherwise the buttons above it look glued to the chips */
.pv-phead .pv-chips{margin-top:clamp(22px,2.6vw,34px)}
.pv-chips.is-dragscroll{cursor:grab}
.pv-chips.is-dragging{cursor:grabbing}
.pv-chip{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;border:1px solid var(--pv-line);
  border-radius:var(--pv-r-pill);background:var(--pv-paper);padding:8px 15px;font-size:13.5px;
  font-family:var(--pv-font-display);font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.pv-chip:hover{border-color:var(--pv-copper);color:var(--pv-copper)}
.pv-chip.on{background:var(--pv-steel);border-color:var(--pv-steel);color:#fff}
.pv-subchips{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;min-width:0}
.pv-subchips::-webkit-scrollbar{display:none}
.pv-toolbar{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.pv-toolbar input[type=search]{border:1px solid var(--pv-line);border-radius:var(--pv-r-pill);
  padding:9px 16px;font-size:14px;background:var(--pv-paper);min-width:0;width:210px;max-width:100%}
.pv-toolbar input[type=search]:focus{outline:none;border-color:var(--pv-copper)}

.pv-sidebar{min-width:0}
.pv-sidecard{background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r-lg);
  padding:22px 22px 24px;margin-bottom:20px}
.pv-sidecard h3{font-size:16px;margin-bottom:14px}
.pv-sidelist li{border-bottom:1px solid var(--pv-line)}
.pv-sidelist a{display:flex;align-items:center;gap:10px;padding:11px 0;font-size:14.5px;color:var(--pv-muted);min-width:0}
.pv-sidelist a:hover{color:var(--pv-copper)}
.pv-sidelist i{color:var(--pv-copper);width:18px;text-align:center;flex:0 0 auto}

.pv-empty{grid-column:1/-1;text-align:center;padding:48px 24px;background:var(--pv-card);
  border:1px dashed var(--pv-line-2);border-radius:var(--pv-r-lg)}
.pv-empty i{font-size:28px;color:var(--pv-copper);margin-bottom:14px;display:block}
.pv-empty h3{margin-bottom:8px}
.pv-empty p{color:var(--pv-muted);font-size:14.5px;max-width:52ch;margin:0 auto 18px}

/* rich-text tables — the mandated responsive trio */
.detail-content{min-width:0;overflow-wrap:break-word}
.detail-content table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border-collapse:collapse;width:100%}
.detail-content table th,.detail-content table td{border:1px solid var(--pv-line);padding:11px 14px;
  text-align:left;vertical-align:top;font-size:14.5px}
.detail-content table th{background:var(--pv-paper-2);font-family:var(--pv-font-display);
  font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:13px}
.pv-tablewrap{position:relative;margin:22px 0;min-width:0}
.pv-tablewrap-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}
.pv-tablehint{display:none;margin:8px 0 0;font-size:12.5px;color:var(--pv-muted);align-items:center;gap:7px}
.pv-tablewrap.is-scrollable .pv-tablehint{display:flex}
.pv-tablewrap.at-end .pv-tablehint{display:none}
.pv-td-first{font-weight:600}

/* pagination — core emits i.iconfont.icon-arrow5 / icon-arrow6 and span.active */
.pagination{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:34px}
.pagination a,.pagination span>a{display:inline-flex;align-items:center;justify-content:center;min-width:42px;
  height:42px;padding:0 13px;border:1px solid var(--pv-line);border-radius:var(--pv-r);
  background:var(--pv-card);font-size:14px;transition:border-color .18s ease,color .18s ease}
.pagination a:hover{border-color:var(--pv-copper);color:var(--pv-copper)}
.pagination i.iconfont{font-style:normal;line-height:1}
.pagination i.icon-arrow5::before{content:"\2039";font-size:18px}
.pagination i.icon-arrow6::before{content:"\203A";font-size:18px}
.pagination span.active a{border-color:var(--pv-copper);background:var(--pv-copper);color:#fff}
.pagination a:focus-visible{outline:2px solid var(--pv-copper);outline-offset:2px}

/* generic list rows (search / tags / article lists) */
.pv-rows{display:flex;flex-direction:column;gap:14px}
.pv-row{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:22px;align-items:center;
  background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r-lg);
  padding:16px;transition:border-color .18s ease,box-shadow .18s ease}
.pv-row:hover{border-color:var(--pv-line-2);box-shadow:var(--pv-sh)}
.pv-row-noimg{grid-template-columns:minmax(0,1fr) auto}
.pv-row-media{aspect-ratio:16/10;border-radius:var(--pv-r);overflow:hidden;background:var(--pv-paper-2);min-width:0}
.pv-row-media img{width:100%;height:100%;object-fit:cover}
.pv-row-body{min-width:0}
.pv-row-body h3{font-size:18px;margin-bottom:8px}
.pv-row-body h3 a:hover{color:var(--pv-copper)}
.pv-row-body p{font-size:14px;color:var(--pv-muted);margin:0}
.pv-row-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--pv-copper);font-weight:600;margin-bottom:8px}
.pv-row-meta i{color:var(--pv-line-2);font-style:normal}
.pv-row-acts{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap}

.pv-tagwall{display:flex;flex-wrap:wrap;gap:9px}
.pv-tagwall>div{width:100%;display:flex;gap:14px;align-items:flex-start;padding:14px 0;
  border-bottom:1px solid var(--pv-line)}
.pv-tagwall>div>b{flex:0 0 auto;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--pv-r);background:var(--pv-steel);color:#fff;font-family:var(--pv-font-display);font-size:14px}
.pv-tagwall>div>div{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.pv-tagchip{display:inline-flex;align-items:center;border:1px solid var(--pv-line);border-radius:var(--pv-r);
  padding:6px 14px;font-size:13.5px;background:var(--pv-card);color:var(--pv-muted)}
.pv-tagchip:hover{border-color:var(--pv-copper);color:var(--pv-copper)}

.pv-share{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pv-share span{font-size:13px;color:var(--pv-muted);text-transform:uppercase;letter-spacing:.08em}
.pv-share a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border:1px solid var(--pv-line);border-radius:var(--pv-r);background:var(--pv-card);color:var(--pv-muted)}
.pv-share a:hover{border-color:var(--pv-copper);color:var(--pv-copper)}

.pv-thumbs{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.pv-thumbs::-webkit-scrollbar{display:none}

/* --------------------------------------------------------- 23. product list */
.pv-shop{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(24px,3vw,44px);align-items:start}
.pv-shop>*{min-width:0}
.pv-shop-main{min-width:0}
.pv-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pv-shop-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.pv-shop-head h2{font-size:20px;margin:0}
.pv-sidecard-accent{background:var(--pv-steel);color:var(--pv-on-dark);border-color:var(--pv-steel)}
.pv-sidecard-accent h3{color:#fff}
.pv-sidecard-accent p{color:var(--pv-on-dark-dim);font-size:14px}

/* ------------------------------------------------------- 24. product detail */
.pv-pdp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3.6vw,54px);align-items:start}
.pv-pdp>*{min-width:0}
.pv-gallery{min-width:0}
.pv-gallery-main{margin:0;aspect-ratio:1/1;border:1px solid var(--pv-line);border-radius:var(--pv-r-lg);
  overflow:hidden;background:var(--pv-card);position:relative}
.pv-gallery-main img{width:100%;height:100%;object-fit:contain}
.pv-gallery-thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.pv-gallery-thumbs::-webkit-scrollbar{display:none}
/* thumbs are <button> (that is what the gallery script binds), the old rules only
   matched <a>, so every thumb collapsed around its own image */
.pv-gallery-thumbs a,.pv-gallery-thumbs button{flex:0 0 auto;width:76px;height:76px;
  border:1px solid var(--pv-line);border-radius:var(--pv-r);overflow:hidden;
  background:var(--pv-card);padding:0;cursor:pointer}
.pv-gallery-thumbs a:hover,.pv-gallery-thumbs a.on,
.pv-gallery-thumbs button:hover,.pv-gallery-thumbs button.on{border-color:var(--pv-copper)}
.pv-gallery-thumbs a.on,.pv-gallery-thumbs button.on{box-shadow:0 0 0 1px var(--pv-copper)}
.pv-gallery-thumbs img{width:100%;height:100%;object-fit:contain;background:var(--pv-card)}
/* the gallery script marks a one-image rail with .is-single: nothing to switch to */
.pv-gallery-thumbs.is-single{display:none}
.pv-pdp-info{min-width:0}
.pv-pdp-info h1{font-size:clamp(24px,2.4vw,34px);margin-bottom:14px}
.pv-pdp-ref{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--pv-muted);margin-bottom:18px}
.pv-pdp-ref .pv-pill{font-size:11.5px}
.pv-pdp-lead{font-size:15px;color:var(--pv-muted);margin-bottom:20px}
.pv-pdp-acts{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}
.pv-pdp-trust{display:flex;flex-direction:column;gap:9px;padding:18px 0;border-top:1px solid var(--pv-line);
  border-bottom:1px solid var(--pv-line);margin-bottom:22px}
.pv-pdp-trust li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px}
.pv-pdp-trust i{color:var(--pv-copper);margin-top:4px}
.pv-params{background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r-lg);overflow:hidden}
.pv-params-head{padding:15px 20px;background:var(--pv-steel);color:#fff;font-family:var(--pv-font-display);
  font-size:14px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.pv-params-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;
  padding:12px 20px;border-bottom:1px solid var(--pv-line);font-size:14.5px}
.pv-params-row:last-child{border-bottom:0}
.pv-params-k{color:var(--pv-muted);min-width:0;overflow-wrap:break-word}
.pv-params-v{min-width:0;overflow-wrap:break-word;font-family:var(--pv-font-mono);font-size:13.5px}
.pv-pdp-detail{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,3vw,48px);align-items:start;margin-top:clamp(34px,4vw,58px)}
.pv-pdp-detail>*{min-width:0}
.pv-related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}

/* -------------------------------------------------------- 25. article pages */
.pv-artsplit{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,3vw,48px);align-items:start}
.pv-artsplit>*{min-width:0}
.pv-article-head{max-width:78ch}
.pv-article-cover{margin:0 0 26px;border-radius:var(--pv-r-lg);overflow:hidden;background:var(--pv-paper-2);
  aspect-ratio:16/9;min-width:0}
.pv-article-cover img{width:100%;height:100%;object-fit:cover}
.pv-article-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--pv-copper);font-weight:600;margin-bottom:14px}
.pv-article-meta span{color:var(--pv-muted);font-weight:500}
.pv-artnav{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:34px;
  padding-top:22px;border-top:1px solid var(--pv-line)}
.pv-artnav a{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;color:var(--pv-muted);min-width:0}
.pv-artnav a:hover{color:var(--pv-copper)}

/* ----------------------------------------------------------- 26. prose/legal */
.pv-prose{font-size:16px;color:#243236;max-width:80ch;min-width:0}
.pv-prose h2{font-size:clamp(20px,2.2vw,28px);margin:1.6em 0 .6em}
.pv-prose h3{font-size:clamp(17px,1.6vw,21px);margin:1.4em 0 .5em}
.pv-prose p,.pv-prose li{line-height:1.75}
.pv-prose ul,.pv-prose ol{margin:0 0 1.2em;padding-left:1.3em;list-style:disc}
.pv-prose ol{list-style:decimal}
.pv-prose li{margin-bottom:.45em}
.pv-prose a{color:var(--pv-copper);text-decoration:underline}
.pv-prose blockquote{margin:1.4em 0;padding:16px 22px;border-left:4px solid var(--pv-copper);
  background:var(--pv-card);border-radius:0 var(--pv-r) var(--pv-r) 0;color:var(--pv-muted)}
.pv-prose img{border-radius:var(--pv-r);margin:1.2em 0}

/* ------------------------------------------------------------ 27. about/mfg */
.pv-statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.pv-stat{background:var(--pv-card);border:1px solid var(--pv-line);border-top:3px solid var(--pv-copper);
  border-radius:var(--pv-r);padding:22px;min-width:0}
.pv-stat b{display:block;font-family:var(--pv-font-display);font-size:clamp(19px,2vw,25px);font-weight:700;
  letter-spacing:.02em;text-transform:uppercase;margin-bottom:6px}
.pv-stat span{font-size:13.5px;color:var(--pv-muted)}
.pv-valuegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.pv-value{background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r-lg);padding:24px;min-width:0}
.pv-value i{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:var(--pv-r);background:rgba(200,135,26,.12);color:var(--pv-copper);font-size:18px;margin-bottom:15px}
.pv-value h3{font-size:16.5px;margin-bottom:8px}
.pv-value p{font-size:14px;color:var(--pv-muted);margin:0}
.pv-gallerygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pv-gallerygrid figure{margin:0;border-radius:var(--pv-r);overflow:hidden;background:var(--pv-paper-2);aspect-ratio:4/3}
.pv-gallerygrid img{width:100%;height:100%;object-fit:cover}
.pv-timeline{border-top:1px solid var(--pv-line)}
.pv-tl-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;padding:18px 0;
  border-bottom:1px solid var(--pv-line);align-items:start}
.pv-tl-row>*{min-width:0}
.pv-tl-k{font-family:var(--pv-font-display);font-size:14px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--pv-copper)}
.pv-tl-row h3{margin-bottom:6px;font-size:16px}
.pv-tl-row p{margin:0;font-size:14.5px;color:var(--pv-muted)}

/* -------------------------------------------------------------- 28. catalog */
.pv-cataloggrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.pv-mediacard{display:flex;flex-direction:column;background:var(--pv-card);border:1px solid var(--pv-line);
  border-radius:var(--pv-r-lg);overflow:hidden;min-width:0}
.pv-mediacard-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--pv-paper-2)}
.pv-mediacard-media img{width:100%;height:100%;object-fit:cover}
.pv-filebadge{position:absolute;right:12px;bottom:12px;background:var(--pv-steel);color:#fff;
  border-radius:var(--pv-r-pill);padding:5px 12px;font-family:var(--pv-font-mono);font-size:11.5px;letter-spacing:.08em}
.pv-mediacard-body{padding:20px 22px 22px;display:flex;flex-direction:column;justify-content:center;flex:1 1 auto;min-width:0}
.pv-mediacard-body h3{font-size:17px;margin-bottom:8px}
.pv-mediacard-body p{font-size:14px;color:var(--pv-muted);margin-bottom:16px}
/* catalogue plate: a dark document plate that mirrors the square photograph beside
   it (the old markup reused .pv-card-media, so the plate inherited the 1:1 product
   crop and had no inner padding at all) */
.pv-catalogcard{position:relative;display:flex;flex-direction:column;justify-content:center;
  min-height:250px;padding:46px 26px 42px;min-width:0;overflow:hidden;
  border-radius:var(--pv-r-lg);background:var(--pv-steel);color:var(--pv-on-dark)}
.pv-catalogcard .pv-eyebrow{color:var(--pv-copper-l);margin-bottom:9px;font-size:11.5px;letter-spacing:.12em}
.pv-catalogcard .pv-eyebrow::before{width:16px;background:var(--pv-copper-l)}
.pv-catalogcard h3{color:#fff;font-size:clamp(17px,1.5vw,20px);line-height:1.28;margin-bottom:9px}
.pv-catalogcard p{margin:0;font-size:13.5px;line-height:1.55;color:var(--pv-on-dark-dim)}
.pv-catalogcard .pv-filebadge{top:16px;right:16px;bottom:auto;padding:4px 10px;background:var(--pv-copper)}
.pv-catalogcard>i{position:absolute;right:20px;bottom:18px;font-size:22px;color:rgba(255,255,255,.22)}
@media (max-width:900px){
  .pv-catalogcard{min-height:0;padding:26px 22px}
  .pv-catalogcard>i{font-size:20px;bottom:14px;right:16px}
}

/* -------------------------------------------------------------- 29. contact */
.pv-contact{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,3.6vw,52px);align-items:start}
.pv-contact>*{min-width:0}
.pv-contact-card{background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r-lg);
  padding:26px 28px 30px;min-width:0}
.pv-contact-list{display:flex;flex-direction:column;gap:2px}
.pv-contact-item{display:flex;align-items:flex-start;gap:14px;padding:15px 0;border-bottom:1px solid var(--pv-line);min-width:0}
.pv-contact-item:last-child{border-bottom:0}
.pv-contact-item>i{width:42px;height:42px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--pv-r);background:var(--pv-paper);color:var(--pv-copper);font-size:16px}
.pv-contact-item>div{min-width:0}
.pv-contact-item small{display:block;font-family:var(--pv-font-display);font-size:12px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--pv-muted);margin-bottom:3px}
.pv-contact-item b{display:block;font-size:15px;font-weight:600;overflow-wrap:anywhere}

/* ---------------------------------------------------------- 30. FAQ page */
.pv-faqpage{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(24px,3.4vw,50px);align-items:start}
.pv-faqpage>*{min-width:0}
.pv-faqpage-aside{position:sticky;top:calc(var(--pv-head-h) + 20px);min-width:0}

/* ------------------------------------------------------- 31. inquiry list */
.pv-quote{display:flex;flex-direction:column;gap:14px}
.pv-quote-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto auto;gap:18px;align-items:center;
  background:var(--pv-card);border:1px solid var(--pv-line);border-radius:var(--pv-r-lg);padding:16px;min-width:0}
.pv-quote-row>*{min-width:0}
.pv-quote-media{aspect-ratio:1/1;border-radius:var(--pv-r);overflow:hidden;background:var(--pv-paper-2)}
.pv-quote-media img{width:100%;height:100%;object-fit:cover}
.pv-quote-body h3{font-size:16px;margin-bottom:6px}
.pv-quote-body p{margin:0;font-size:13.5px;color:var(--pv-muted)}
.pv-stepper{display:inline-flex;align-items:center;border:1px solid var(--pv-line);border-radius:var(--pv-r);
  overflow:hidden;background:var(--pv-card)}
.pv-stepper button{width:34px;height:38px;border:0;background:transparent;cursor:pointer;color:var(--pv-muted)}
.pv-stepper button:hover{color:var(--pv-copper)}
.pv-stepper input{width:52px;height:38px;border:0;border-left:1px solid var(--pv-line);border-right:1px solid var(--pv-line);
  text-align:center;font:inherit;font-size:14px;background:transparent;min-width:0}
.pv-quote-del{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 auto;
  border:1px solid var(--pv-line);border-radius:var(--pv-r-pill);background:var(--pv-card);cursor:pointer;color:var(--pv-muted)}
.pv-quote-del:hover{border-color:#c0392b;color:#c0392b}
.pv-quote-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:var(--pv-steel);color:var(--pv-on-dark);border-radius:var(--pv-r-lg);padding:22px 26px}
.pv-quote-foot p{margin:0;color:var(--pv-on-dark-dim);font-size:14px}

/* ------------------------------------------------------------ 32. search */
.pv-searchpage{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(24px,3vw,44px);align-items:start}
.pv-searchpage>*{min-width:0}
/* the search page bar: the form rendered by {zan:searchform} carries no card of its
   own, so the keyword row is styled here and takes a full line of the filter bar */
.pv-searchbar-wrap{flex:1 1 100%;min-width:0}
.pv-searchbar{display:flex;align-items:center;gap:12px;min-width:0;
  background:var(--pv-paper);border:1px solid var(--pv-line);
  border-radius:var(--pv-r-pill);padding:5px 5px 5px 18px}
.pv-searchbar>i{color:var(--pv-copper);font-size:15px;flex:0 0 auto}
.pv-searchbar input{flex:1 1 auto;min-width:0;border:0;background:transparent;
  font-size:15px;padding:11px 4px;color:var(--pv-ink);outline:none}
.pv-searchbar input::placeholder{color:var(--pv-muted)}
.pv-searchbar .pv-btn{padding:11px 20px;font-size:13.5px;flex:0 0 auto}
@media (max-width:600px){
  .pv-searchbar{flex-wrap:wrap;border-radius:var(--pv-r-lg);padding:12px}
  .pv-searchbar input{flex:1 1 100%;width:100%;padding:4px}
  .pv-searchbar .pv-btn{width:100%}
}

/* ================================================ 33. responsive: <=1180px */
@media (max-width:1180px){
  .pv-nav{display:none}
  .pv-bar-in{grid-template-columns:auto minmax(0,1fr)}
  .pv-tools{justify-self:end}
  .pv-bar-cta{display:none}
  .pv-burger{display:inline-flex}
  .pv-hero-in{grid-template-columns:minmax(0,1fr)}
  .pv-hero-media{max-width:640px}
  .pv-hero-chip{left:14px;bottom:-18px}
  .pv-shop,.pv-searchpage{grid-template-columns:minmax(0,1fr)}
  .pv-pdp-detail,.pv-artsplit{grid-template-columns:minmax(0,1fr)}
  .pv-faqbox,.pv-faqpage-aside{position:static;top:auto}
  .pv-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 0}
  .pv-step:nth-child(3)::before{right:auto;width:0}
  .pv-range{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv-related{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv-docs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-docs-5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv-foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-foot-slide-in{grid-template-columns:minmax(0,1fr)}
  .pv-foot-docs-in{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-foot-doc:nth-child(odd){border-left:0}
  .pv-foot-doc:nth-child(n+3){border-top:1px solid var(--pv-line)}
}

/* ================================================= 34. responsive: <=900px */
@media (max-width:900px){
  .pv-wrap{width:auto;margin:0 20px}
  .pv-cards,.pv-cards-4,.pv-notes,.pv-kits,.pv-valuegrid,.pv-cataloggrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-range{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-statgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-gallerygrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-pdp,.pv-contact,.pv-faqpage,.pv-faqsplit{grid-template-columns:minmax(0,1fr)}
  .pv-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0}
  .pv-step::before{right:0}
  .pv-step:nth-child(2n)::before{right:auto;width:0}
  .pv-logi-rows{grid-template-columns:minmax(0,1fr)}
  .pv-row{grid-template-columns:minmax(0,1fr);gap:14px}
  .pv-row-media{aspect-ratio:16/9}
  .pv-row-acts{justify-content:flex-start}
  .pv-quote-row{grid-template-columns:80px minmax(0,1fr);gap:14px}
  .pv-utility-note{display:none}
  .pv-utility-in{justify-content:center}
  .pv-cookie{left:14px;right:14px;width:auto}
  .pv-modal{padding:20px 14px}
  .pv-toolbar input[type=search]{width:160px}
  .pv-hero-chip{position:static;margin-top:16px;max-width:none;left:auto;bottom:auto}
  .pv-mobilebar{display:flex}
  body.pv-body{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
  .pv-top{bottom:170px}
  .pv-wa{bottom:114px}
}

/* ================================================= 35. responsive: <=600px */
@media (max-width:600px){
  body.pv-body{font-size:15.5px}
  .pv-wrap{width:auto;margin:0 16px}
  .pv-sec{padding:40px 0}
  .pv-cards,.pv-cards-4,.pv-notes,.pv-kits,.pv-valuegrid,.pv-cataloggrid,
  .pv-shop-grid,.pv-range,.pv-related,.pv-statgrid,.pv-gallerygrid,.pv-docs{grid-template-columns:minmax(0,1fr)}
  .pv-steps{grid-template-columns:minmax(0,1fr);gap:22px 0}
  .pv-step::before{display:none}
  .pv-form-2{grid-template-columns:minmax(0,1fr)}
  .pv-foot-grid{grid-template-columns:minmax(0,1fr)}
  .pv-quote-row{grid-template-columns:70px minmax(0,1fr) auto;gap:12px;align-items:start}
  .pv-quote-media{grid-row:1/3}
  .pv-quote-body{grid-column:2/4}
  .pv-stepper{grid-column:2;justify-self:start;align-self:center}
  .pv-quote-del{grid-column:3;justify-self:end;align-self:center}
  .pv-tl-row{grid-template-columns:minmax(0,1fr);gap:6px}
  .pv-params-row{grid-template-columns:minmax(0,1fr);gap:4px}
  .pv-cta-in{flex-direction:column;align-items:flex-start}
  .pv-foot-slide-acts{width:100%}
  .pv-foot-slide-acts .pv-btn{flex:1 1 auto}
  .pv-cta-acts{width:100%}
  .pv-cta-acts .pv-btn{flex:1 1 auto}
  .pv-phead-acts .pv-btn{flex:1 1 auto}
  .pv-toast{bottom:88px;width:calc(100vw - 32px);justify-content:center}
  .pv-toolbar{width:100%}
  .pv-toolbar input[type=search]{width:100%}
  .pv-filterbar-in{gap:10px}

  /* stacked card tables for rich text */
  .detail-content table{display:block;overflow-x:auto}
  .detail-content table.table-stack,.detail-content table.pv-table-stack{display:block;border:0}
  .detail-content table.pv-table-stack thead{display:none}
  .detail-content table.pv-table-stack tr{display:block;background:var(--pv-card);border:1px solid var(--pv-line);
    border-radius:var(--pv-r);margin-bottom:12px;padding:6px 4px}
  .detail-content table.pv-table-stack td{display:block;border:0;white-space:normal;padding:8px 14px;font-size:14px}
  .detail-content table.pv-table-stack td+td{border-top:1px dashed var(--pv-line)}
  .pv-table-stack td::before{content:attr(data-label);display:block;font-family:var(--pv-font-display);
    font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pv-copper);
    margin-bottom:3px}
  .detail-content table.pv-table-stack td.pv-td-first::before{display:none}
  .detail-content table.pv-table-stack td.pv-td-first{font-size:15.5px;background:var(--pv-paper)}
  .detail-content table td,.detail-content table th{font-size:13.5px;padding:9px 12px}
}

/* ================================================= 36. responsive: <=420px */
@media (max-width:420px){
  .pv-brand img{max-height:30px}
  .pv-foot-docs-in{grid-template-columns:minmax(0,1fr)}
  .pv-foot-doc{border-left:0;border-top:1px solid var(--pv-line)}
  .pv-foot-doc:first-child{border-top:0}
  .pv-foot-ledger{grid-template-columns:minmax(0,1fr)}
  .pv-foot-ledger>div:nth-child(2){border-top:1px solid var(--pv-line)}
  .pv-foot-ledger>div{border-left:0}
  .pv-tool{width:36px;height:36px}
  .pv-utility-links{gap:12px}
  .pv-utility-links>a span{display:none}
  .pv-quote-link{padding-left:12px}
  .pv-cookie{padding:16px}
}

/* ------------------------------------------------------------- 37. printing */
@media print{
  .pv-header,.pv-mobilebar,.pv-wa,.pv-top,.pv-cookie,.pv-cta,.pv-foot-slide,.pv-social{display:none!important}
  body.pv-body{background:#fff;padding-bottom:0}
  .pv-sec{padding:18px 0}
  a{text-decoration:none;color:#000}
}


/* =========================================================================
   30. Secondary page components  (ported vocabulary: applications, process,
   assurance, ledger, tabs, capability rows, search rows, legal prose,
   product families, article/detail wrappers)
   ========================================================================= */
.pv-grade-meta .pv-count,.pv-toolbar .pv-count,.pv-detail-meta .pv-count{white-space:nowrap;flex:0 0 auto}
.pv-introblock{padding:26px 30px}
.pv-plate{background:var(--pv-card);border:1px solid var(--pv-line)}
body[e-page="view_product"] .pv-plate>.pv-sechead,
body[e-page="view_product"] .pv-plate>.detail-content,
body[e-page="view_product"] .pv-plate>.pv-caprows{padding-inline:26px}
/* Product-page plates: a plate title is a panel heading rather than a page h2, and the
   specification ledger already sits inside a plate — so no nested card frame, no
   monospaced values (they wrapped far too early), and rows on the 26px gutter. */
body[e-page="view_product"] .pv-plate>.pv-sechead{padding:22px 26px 0;margin-bottom:18px}
body[e-page="view_product"] .pv-plate>.pv-sechead h2{font-size:clamp(18px,1.7vw,22px)}
body[e-page="view_product"] .pv-plate>.pv-params{border:0;border-radius:0;background:transparent;margin:0;padding-bottom:8px}
body[e-page="view_product"] .pv-plate>.pv-params .pv-params-row{padding:13px 26px;font-size:14px}
body[e-page="view_product"] .pv-plate>.pv-params .pv-params-row:first-child{border-top:1px solid var(--pv-line)}
body[e-page="view_product"] .pv-plate>.detail-content,
body[e-page="view_product"] .pv-plate>.pv-caprows{padding-bottom:10px}
body[e-page="view_product"] .pv-params-v{font-family:inherit;font-size:14px;line-height:1.5}
.pv-params dt,.pv-params dd{margin:0}
.pv-plate-quiet{background:var(--pv-paper);border-left:3px solid var(--pv-copper)}
.pv-media{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--pv-paper-2);border:1px solid var(--pv-line)}
.pv-media-tall{aspect-ratio:4/5}
.pv-media-plain{border:0;background:transparent}
.pv-media img{width:100%;height:100%;object-fit:cover;display:block}
.pv-media-plain img{object-fit:contain}
.pv-gallery-main .pv-media{aspect-ratio:1/1;height:100%}
.pv-media-tile{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.pv-media-tile b{font-family:var(--pv-font-mono);font-size:26px;letter-spacing:.06em;color:var(--pv-ink);opacity:.5}
.pv-mediacard .pv-media-tile{position:absolute;inset:auto 0 0 auto;display:block}
.pv-mediacard .pv-media-tile b{
  display:block;padding:6px 9px;opacity:1;
  font-size:10.5px;line-height:1;letter-spacing:.14em;
  background:var(--pv-ink);color:var(--pv-paper);
}
.pv-viewsw{display:inline-flex;border:1px solid var(--pv-line-2)}
.pv-viewsw button{
  width:36px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:0;border-right:1px solid var(--pv-line);
  color:var(--pv-muted);cursor:pointer;transition:background .16s,color .16s;
}
.pv-viewsw button:last-child{border-right:0}
.pv-viewsw button:hover{color:var(--pv-ink)}
.pv-viewsw button.on{background:var(--pv-ink);color:var(--pv-paper)}
.pv-families{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}
.pv-families>*{min-width:0}
.pv-family{
  display:flex;flex-direction:column;gap:12px;min-height:100%;
  padding:22px;background:var(--pv-card);
  border:1px solid var(--pv-line);border-top:3px solid transparent;
  transition:background .18s,border-color .18s,box-shadow .18s;
}
.pv-family:hover{background:var(--pv-paper);border-top-color:var(--pv-copper);box-shadow:0 16px 30px -26px rgba(21,19,15,.45)}
.pv-family-ic{
  width:100%;aspect-ratio:4/3;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--pv-line);color:var(--pv-steel);overflow:hidden;background:var(--pv-paper-2);
}
.pv-family-ic img{flex:1 1 auto;width:100%;height:100%;object-fit:cover;display:block}
.pv-family-ic svg{width:34px;height:34px;flex:0 0 auto}
.pv-family-n{font-family:var(--pv-font-mono);font-size:10.5px;letter-spacing:.12em;color:var(--pv-muted)}
.pv-family-name{font-family:var(--pv-font-display);font-size:19px;font-weight:600;line-height:1.25}
.pv-family-desc{font-size:13.5px;line-height:1.55;color:var(--pv-muted);flex:1 1 auto}
.pv-family-go{
  display:inline-flex;align-items:center;gap:8px;margin-top:4px;
  font-family:var(--pv-font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pv-copper);
}
.pv-family-go i{transition:transform .18s}
.pv-family:hover .pv-family-go i{transform:translateX(4px)}
.pv-assure{border-top:1px solid var(--pv-ink)}
.pv-assure-row{
  display:grid;grid-template-columns:58px minmax(0,1fr) 232px;gap:28px;
  padding:26px 0;border-bottom:1px solid var(--pv-line);
}
.pv-assure-row>*{min-width:0}
.pv-assure-n{font-family:var(--pv-font-mono);font-size:13px;letter-spacing:.1em;color:var(--pv-copper)}
.pv-assure-body h3{font-family:var(--pv-font-display);font-size:20px;font-weight:600}
.pv-assure-body p{margin-top:8px;font-size:14.5px;color:var(--pv-muted)}
.pv-assure-out{border-left:2px solid var(--pv-copper);padding-left:18px}
.pv-assure-out b{
  display:block;font-family:var(--pv-font-mono);font-size:10.5px;font-weight:500;
  letter-spacing:.11em;text-transform:uppercase;color:var(--pv-steel);
}
.pv-assure-out span{display:block;margin-top:7px;font-size:13.5px;color:var(--pv-muted)}
.pv-grade-media .pv-media{border:0;aspect-ratio:auto;height:100%;background:transparent}
.pv-ledger{border-top:2px solid var(--pv-ink)}
.pv-ledger-row{
  display:grid;grid-template-columns:clamp(96px,28%,200px) minmax(0,1fr);
  gap:4px 28px;padding:17px 0;border-bottom:1px solid var(--pv-line);
}
.pv-ledger-k{
  min-width:0;margin:0;font-family:var(--pv-font-mono);font-size:11.5px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--pv-muted);
}
.pv-ledger-v{min-width:0;margin:0;font-size:15px;color:var(--pv-muted)}
.pv-apps{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--pv-line);border-left:1px solid var(--pv-line);
}
.pv-apps>*{min-width:0}
.pv-app{
  padding:28px 24px 30px;background:var(--pv-card);
  border-right:1px solid var(--pv-line);border-bottom:1px solid var(--pv-line);
}
.pv-app-n{display:block;font-family:var(--pv-font-mono);font-size:22px;line-height:1;color:var(--pv-copper);opacity:.85}
.pv-app h3{font-family:var(--pv-font-display);font-size:19px;font-weight:600;margin-top:16px}
.pv-app p{margin-top:10px;font-size:14px;line-height:1.62;color:var(--pv-muted)}
.pv-doclist{border-top:1px solid var(--pv-line)}
.pv-caprows{border-top:1px solid var(--pv-line);margin-top:26px}
.pv-caprow{
  display:grid;grid-template-columns:168px minmax(0,1fr);gap:6px 22px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--pv-line);
}
.pv-caprow>*{min-width:0}
.pv-caprow b{font-size:15.5px;font-weight:600}
.pv-caprow span{
  font-family:var(--pv-font-mono);font-size:12px;line-height:1.65;letter-spacing:.05em;
  color:var(--pv-muted);text-align:left;overflow-wrap:break-word;
}
.pv-proc{border-top:1px solid var(--pv-ink)}
.pv-proc-row{
  display:grid;grid-template-columns:54px minmax(0,1fr) 244px;gap:26px;
  padding:22px 0;border-bottom:1px solid var(--pv-line);
}
.pv-proc-row>*{min-width:0}
.pv-proc-n{font-family:var(--pv-font-mono);font-size:13px;letter-spacing:.1em;color:var(--pv-copper)}
.pv-proc-body h3{font-family:var(--pv-font-display);font-size:18.5px;font-weight:600}
.pv-proc-body p{margin-top:7px;font-size:14px;color:var(--pv-muted)}
.pv-proc-body:has(> .pv-media){
  display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto 1fr;
  gap:0 30px;align-items:start;
}
.pv-proc-body:has(> .pv-media) h3{grid-column:1;grid-row:1}
.pv-proc-body:has(> .pv-media) p{grid-column:1;grid-row:2}
.pv-proc-body .pv-media{
  grid-column:2;grid-row:1/span 2;width:100%;aspect-ratio:4/3;
  border:1px solid var(--pv-line);background:var(--pv-paper-2);
}
.pv-proc-body .pv-media img{object-fit:cover}
.pv-proc-out{border-left:2px solid var(--pv-line-2);padding-left:18px}
.pv-proc-row:has(.pv-media) .pv-proc-out{display:flex;flex-direction:column;justify-content:center}
.pv-proc-out b{
  display:block;font-family:var(--pv-font-mono);font-size:10.5px;font-weight:500;
  letter-spacing:.11em;text-transform:uppercase;color:var(--pv-steel);
}
.pv-proc-out span{display:block;margin-top:7px;font-size:13px;color:var(--pv-muted)}
.pv-ctastrip{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;
  background:var(--pv-paper-2);border:1px solid var(--pv-line);border-left:4px solid var(--pv-copper);
  padding:30px 34px;
}
.pv-ctastrip>*{min-width:0}
.pv-ctastrip h2,.pv-ctastrip h3{font-family:var(--pv-font-display);font-size:22px;font-weight:600}
.pv-ctastrip p{margin-top:9px;font-size:14.5px;color:var(--pv-muted)}
.pv-ctastrip-acts{display:flex;flex-wrap:wrap;gap:12px;flex:0 0 auto}
.pv-phead-fig{
  position:relative;margin:30px 0 0;aspect-ratio:21/9;overflow:hidden;
  border:1px solid var(--pv-line);background:var(--pv-paper-2);
}
.pv-phead-fig img{width:100%;height:100%;object-fit:cover;display:block}
.pv-phead-fig .pv-plate{position:absolute;inset:0;display:block;color:var(--pv-muted)}
.pv-phead-fig svg{width:100%;height:100%;display:block}
.pv-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,326px);gap:56px;align-items:start}
.pv-detail>*{min-width:0}
.pv-detail-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:14px;
  font-family:var(--pv-font-mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--pv-muted);
}
.pv-detail-meta i{color:var(--pv-line-2);font-style:normal}
.pv-detail-media{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--pv-line);background:var(--pv-paper-2)}
.pv-detail-media img{width:100%;height:100%;object-fit:contain;display:block;background:var(--pv-card)}
.pv-detail-body{padding-top:6px}
/* the product title is a long, punctuated name: full h1 sizing (up to 58px) broke it
   mid-word, and the two action pills wrapped their labels onto three lines */
.pv-detail-body h1{font-size:clamp(21px,1.9vw,27px);line-height:1.24;margin-bottom:12px}
.pv-detail-body .pv-toolbar{flex-wrap:wrap}
.pv-detail-body .pv-toolbar .pv-btn{white-space:nowrap}
.pv-detail-media:has(.pv-gallery){aspect-ratio:auto;overflow:visible;border:0;background:transparent}
.pv-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--pv-line);margin-bottom:26px}
.pv-tab{
  padding:12px 20px;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;
  font-family:var(--pv-font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--pv-muted);transition:color .16s,border-color .16s;
}
.pv-tab:hover{color:var(--pv-ink)}
.pv-tab.on{color:var(--pv-copper);border-bottom-color:var(--pv-copper)}
.pv-article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:52px;align-items:start}
.pv-article>*{min-width:0}
.pv-legal{display:grid;gap:26px;max-width:900px}
.pv-legal>*{min-width:0}
.pv-legal h2{font-family:var(--pv-font-display);font-size:var(--pv-head-h);margin-top:14px}
.pv-legal p,.pv-legal li{font-size:15px;line-height:1.72;color:var(--pv-muted)}
.pv-quote-media .pv-media{aspect-ratio:4/3}
.pv-quote-acts{display:flex;flex-wrap:nowrap;align-items:center;gap:10px}
.pv-quote-acts>label{font-family:var(--pv-font-mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--pv-muted);white-space:nowrap}
.pv-quote-acts>div{display:inline-flex;align-items:center;border:1px solid var(--pv-line-2);background:var(--pv-card)}
.pv-quote-acts>div input{
  width:54px;border:0;border-left:1px solid var(--pv-line);border-right:1px solid var(--pv-line);
  background:transparent;text-align:center;padding:9px 4px;font-family:var(--pv-font-mono);font-size:13px;
}
.pv-quote-acts>div input:focus{outline:0;background:var(--pv-paper-2)}
.pv-quote-acts>.pv-iconbtn{width:36px;height:36px}
.pv-quote-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}
.pv-quote-summary>*{min-width:0}
/* panel heading above the caption rows. It used to read --pv-head-h, which is the
   header bar height (76px) and not a type size, so the heading was rendering at
   76px; it is now scaled like the other panel headings. */
.pv-quote-summary h3{font-family:var(--pv-font-display);
  font-size:clamp(20px,1.8vw,24px);line-height:1.25;margin-bottom:16px}
.pv-searchlist{display:flex;flex-direction:column;border-top:1px solid var(--pv-line)}
.pv-searchitem{
  display:grid;grid-template-columns:216px minmax(0,1fr);gap:26px;
  padding:22px 0;border-bottom:1px solid var(--pv-line);
}
.pv-searchitem>*{min-width:0}
.pv-searchitem .pv-media{aspect-ratio:16/10}
.pv-searchitem h2,.pv-searchitem h3{font-family:var(--pv-font-display);font-size:19px;font-weight:600;line-height:1.34}
.pv-searchitem h2 a:hover,h3 a:hover{color:var(--pv-copper)}
.pv-searchitem p{margin-top:10px;font-size:14px;line-height:1.64;color:var(--pv-muted)}
.pv-searchitem .pv-grade-acts{margin-top:14px}
@media (max-width:1120px){
  .pv-families{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv-detail{grid-template-columns:minmax(0,1fr);gap:40px}
  .pv-article{grid-template-columns:minmax(0,1fr);gap:40px}
  .pv-sidecard .pv-assure-row,.pv-sidecard .pv-proc-row{grid-template-columns:44px minmax(0,1fr);gap:14px 18px}
  .pv-sidecard .pv-assure-out,.pv-sidecard .pv-proc-out{grid-column:2/3;border-left:0;border-top:1px solid var(--pv-line);padding-left:0;padding-top:12px}
}
@media (max-width:1024px){
  .pv-proc-body:has(> .pv-media){grid-template-columns:minmax(0,1fr);gap:0}
  .pv-proc-body .pv-media{grid-column:1;grid-row:auto;width:min(100%,380px);margin-top:14px;aspect-ratio:4/3}
  .pv-families{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .pv-family-ic{aspect-ratio:16/9}
  .pv-apps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-detail-media{aspect-ratio:16/9}
  .pv-quote-summary{grid-template-columns:minmax(0,1fr);gap:34px}
}
@media (max-width:900px){
  .pv-families,.pv-grades,.pv-apps,.pv-docs,.pv-notes,.pv-steps3,.pv-stats,.pv-contact-grid,.pv-docs,.pv-artlist{grid-template-columns:minmax(0,1fr)}
  .pv-families,.pv-grades,.pv-apps,.pv-docs,.pv-steps3,.pv-stats,.pv-contact-grid{border-left:0}
  .pv-app,.pv-doc,.pv-steps3>*,.pv-stat,.pv-contact-card{border-left:0}
  .pv-families{gap:16px}
  .pv-family{padding:18px}
  .pv-family-ic{aspect-ratio:16/10}
  .pv-assure-row{grid-template-columns:44px minmax(0,1fr);gap:16px 20px;padding:22px 0}
  .pv-assure-out{grid-column:2/3;border-left:0;border-top:1px solid var(--pv-line);padding-left:0;padding-top:14px}
  .pv-ledger-row{grid-template-columns:minmax(0,1fr);gap:5px;padding:15px 0}
  .pv-ledger-k{min-width:0}
  .pv-proc-row{grid-template-columns:40px minmax(0,1fr);gap:14px 18px;padding:19px 0}
  .pv-proc-out{grid-column:2/3;border-left:0;padding-left:0;border-top:1px dashed var(--pv-line);padding-top:12px}
  .pv-ctastrip{grid-template-columns:minmax(0,1fr);gap:22px;padding:26px 24px}
  .pv-ctastrip-acts .pv-btn{flex:1 1 auto}
  .pv-searchitem{grid-template-columns:minmax(0,1fr);gap:16px}
  .pv-searchitem .pv-media{max-width:280px}
  .pv-introblock{padding:20px 22px}
}
@media (max-width:600px){
  .pv-phead-fig{aspect-ratio:16/9;margin-top:22px}
  .pv-doclist-row,.pv-caprow,.pv-row{grid-template-columns:minmax(0,1fr);gap:8px}
  .pv-caprow span{text-align:left}
  .pv-ledger-foot,.pv-quote-summary{gap:20px}
  .pv-ctastrip-acts{flex-direction:column;align-items:stretch}
  .pv-ctastrip-acts .pv-btn{width:100%}
  .pv-steps3>*,.pv-app,.pv-doc,.pv-family,.pv-stat,.pv-contact-card{padding:22px 20px}
  .pv-quote-acts{grid-column:2/4;grid-row:2/3;justify-content:flex-start;gap:8px}
  .pv-quote-acts>label{display:none}
  .pv-quote-acts>.pv-iconbtn{justify-self:end;margin-left:auto}
}
@media (max-width:420px){
  .pv-app-n{font-size:19px}
}

/* ------------------------------------------------- 31. contact channel grid */
.pv-contact-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--pv-line);border-left:1px solid var(--pv-line);
}
.pv-contact-grid>*{min-width:0}
.pv-contact-card{
  padding:26px 24px;background:var(--pv-card);
  border-right:1px solid var(--pv-line);border-bottom:1px solid var(--pv-line);
}
/* The grid draws its own top/left rules and every cell is squared, exactly like .pv-apps
   and .pv-steps3. But .pv-contact-card is also the framed-panel rule in section 29 (used
   by the request-form card and the QR card), so the grid cells inherit that 1px frame and
   the large radius: the outer cells then showed a doubled rule and rounded corners. */
.pv-contact-grid>.pv-contact-card{
  border:0;border-radius:0;
  border-right:1px solid var(--pv-line);border-bottom:1px solid var(--pv-line);
}
.pv-contact-card h3{font-family:var(--pv-font-display);font-size:18px;font-weight:700}
/* The channel cards pair the icon with the title. Everything below is scoped to the
   grid so the request-form card (also .pv-contact-card) keeps its normal flow: while
   unscoped, these rules turned the lock icon and the Privacy Policy link inside that
   form into block elements — and .pv-contact-card p also overrode .pv-note's flex,
   which stacked the whole privacy line. */
.pv-contact-grid>.pv-contact-card{display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:3px 14px;align-content:start}
.pv-contact-grid>.pv-contact-card>i{width:40px;height:40px;display:inline-flex;align-items:center;
  justify-content:center;border-radius:var(--pv-r);background:var(--pv-paper);
  color:var(--pv-copper);font-size:15px}
.pv-contact-grid>.pv-contact-card b{display:block;font-family:var(--pv-font-display);
  font-size:15px;font-weight:700;letter-spacing:.03em;overflow-wrap:anywhere}
.pv-contact-grid>.pv-contact-card span{display:block;margin-top:5px;font-size:14.5px;
  color:var(--pv-muted);overflow-wrap:anywhere}
.pv-contact-grid>.pv-contact-card small{display:block;margin-top:9px;font-size:13.5px;
  line-height:1.55;color:var(--pv-muted)}
.pv-contact-grid>.pv-contact-card:hover b{color:var(--pv-copper)}
@media (max-width:1024px){.pv-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .pv-contact-grid{grid-template-columns:minmax(0,1fr);border-left:0}
  .pv-contact-grid>.pv-contact-card{border-left:0}
}

/* ------------------------------------------- 32. secondary-page scaffolding */
/* page form wrapper (the footer newsletter uses .pv-subform, a different thing) */
.pv-form{display:grid;gap:16px}

/* three-up decision steps with an explicit numeric badge in the markup */
.pv-steps3{
  display:flex;flex-wrap:wrap;
  list-style:none;margin:0;padding:0; /* the <ol> marker would double the printed 01 / 02 badge */
  border-top:1px solid var(--pv-line);border-left:1px solid var(--pv-line);
}
.pv-steps3>*{
  min-width:0;flex:1 1 300px;
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 14px;align-content:start;
  padding:26px 24px;background:var(--pv-card);
  border-right:1px solid var(--pv-line);border-bottom:1px solid var(--pv-line);
}
.pv-steps3>b{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:var(--pv-r-pill);align-self:center;
  background:var(--pv-steel);color:#fff;
  font-family:var(--pv-font-mono);font-size:12.5px;letter-spacing:.06em;
}
.pv-steps3 h3{font-family:var(--pv-font-display);font-size:18px;font-weight:700;align-self:center;margin:0}
.pv-steps3 p{grid-column:1/-1;margin-top:12px;font-size:14px;line-height:1.62;color:var(--pv-muted)}

/* list-view variant of the product card grid (the filter bar's view switch) */
.pv-cards.is-list{grid-template-columns:minmax(0,1fr);gap:14px}
.pv-cards.is-list .pv-card{flex-direction:row}
.pv-cards.is-list .pv-card-media{flex:0 0 232px;aspect-ratio:auto;border-bottom:0;
  border-right:1px solid var(--pv-line)}
.pv-cards.is-list .pv-card-body{flex:1 1 auto}

/* light page-head variant, kept as an explicit hook */
.pv-phead-paper{background:var(--pv-paper-2)}

@media (max-width:900px){
  .pv-steps3>*{flex:1 1 100%;padding:22px 20px}
  .pv-cards.is-list .pv-card{flex-direction:column}
  .pv-cards.is-list .pv-card-media{flex:0 0 auto;aspect-ratio:1/1;border-right:0;
    border-bottom:1px solid var(--pv-line)}
}

/* -------------------------------------------- 33. header hooks & safety net */
.pv-lang-name{white-space:nowrap}
.pv-utility-tel{white-space:nowrap}
/* [hidden] must beat any author display rule on the same element */
[hidden]{display:none!important}
/* .pv-more is the overflow slot the header JS fills — empty until the nav needs it */
.pv-more{position:relative}

/* ------------------------------------- 34. split collapse + long-token wrap */
/* .pv-split / .pv-split-wide are two-column at every width by default; the
   right column holds long unbroken tokens (emails, part numbers), so they must
   collapse before those tokens can push the document wider than the viewport. */
@media (max-width:900px){
  .pv-split,.pv-split-wide{grid-template-columns:minmax(0,1fr);gap:clamp(22px,4vw,34px)}
}
/* long emails, URLs and part numbers must break rather than widen the page */
.pv-link{max-width:100%;overflow-wrap:anywhere;flex-wrap:wrap}
.pv-sidecard .pv-link,.pv-sidecard p,.pv-contact-item,.pv-contact-item a,
.pv-foot-col a,.pv-foot-contact a,.pv-pdp-ref,.pv-params-v{overflow-wrap:anywhere}

/* ==========================================================================
   35. provender additions
   Header spec rail (search permanently in the bar), light split-plate hero,
   granule dot field, grade rail, specification dossier, compliance grid,
   packing grid. Flat hairline-framed cards; state changes are row and
   underline only — no lift, no zoom, no shadow.
   ========================================================================== */

/* ---- granule dot field: the signature background language ---- */
.pv-dots{background-image:radial-gradient(var(--pv-dot) 1px,transparent 1px);
  background-size:14px 14px;background-position:0 0}
.pv-dots-soft{--pv-dot:rgba(16,57,44,.085);background-size:19px 19px}

/* ---- header: one laboratory bar ---- */
.pv-headwrap .pv-brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.pv-brand-tag{font-family:var(--pv-font-mono);font-size:10.5px;letter-spacing:.05em;
  color:var(--pv-muted);line-height:1.2;max-width:230px}
.pv-search{display:flex;align-items:center;gap:6px;height:40px;min-width:236px;
  border:1px solid var(--pv-line);border-radius:var(--pv-r);background:var(--pv-paper);
  padding:0 4px 0 12px;transition:border-color .18s ease}
.pv-search:focus-within{border-color:var(--pv-copper)}
.pv-search>i{color:var(--pv-muted);font-size:13px;flex:0 0 auto}
.pv-search input{flex:1 1 auto;min-width:0;border:0;background:transparent;
  font-size:14px;outline:none;color:var(--pv-ink)}
.pv-search button{display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;flex:0 0 auto;border:0;border-radius:var(--pv-r);
  background:var(--pv-copper);color:#fff;cursor:pointer;font-size:12px;
  transition:background .18s ease}
.pv-search button:hover{background:var(--pv-copper-d)}
.pv-tool-search{display:none}
/* When the rail cannot hold both its top-level items and the inline search field the
   header script marks the bar .is-tight. The field must not simply disappear: it
   collapses into the tool cluster as a magnifier button and drops out of the bar as a
   panel when opened. Same behaviour as the <=1024px breakpoint, but anchored right so
   the panel never pushes past the viewport edge. */
.pv-bar.is-tight .pv-search{display:none;position:absolute;top:calc(100% + 8px);right:16px;
  left:auto;width:min(420px,calc(100vw - 32px));z-index:70;background:var(--pv-card);min-width:0}
.pv-bar.is-tight .pv-search.open{display:flex}
.pv-bar.is-tight .pv-tool-search{display:inline-flex}
@media (max-width:1180px){
  .pv-search{min-width:186px}
  .pv-brand-tag{max-width:170px;font-size:10px}
}
@media (max-width:1024px){
  .pv-search{display:none;position:absolute;top:calc(100% + 8px);left:16px;right:16px;
    z-index:70;background:var(--pv-card);min-width:0}
  .pv-search.open{display:flex}
  .pv-tool-search{display:inline-flex}
}
@media (max-width:600px){
  .pv-lang{display:none}
  .pv-lang-menu{display:none}
}

/* ---- nav mega panel: light, hairline-framed, green top rule ---- */
.pv-nav-panel{background:var(--pv-card);border:1px solid var(--pv-line);
  border-top:3px solid var(--pv-steel);border-radius:0 0 var(--pv-r) var(--pv-r);
  padding:24px 26px 20px}
.pv-nav-parent{color:var(--pv-ink)}
.pv-nav-parent i{color:var(--pv-copper)}
.pv-nav-parent:hover{color:var(--pv-copper)}
.pv-nav-child{color:var(--pv-muted)}
.pv-nav-child:hover{color:var(--pv-copper)}
.pv-nav-all{color:var(--pv-copper);font-family:var(--pv-font-mono);font-size:12px;
  letter-spacing:.08em;text-transform:uppercase}
.pv-nav-all:hover{color:var(--pv-steel)}
/* the "More" panel is light too, so its links need the ink scale, not the on-dark one */
.pv-more-sub>li>a{color:var(--pv-muted)}
.pv-more-sub>li>a:hover{color:var(--pv-copper)}

/* ---- hero: light split plate over the granule field ---- */
.pv-hero{background:var(--pv-paper);color:var(--pv-ink);
  border-bottom:1px solid var(--pv-line)}
.pv-hero::before{opacity:1;
  background-image:radial-gradient(var(--pv-dot) 1.2px,transparent 1.2px);
  background-size:16px 16px}
.pv-hero::after{height:3px;background:linear-gradient(90deg,
  var(--pv-steel) 0 42%,var(--pv-copper) 42% 54%,var(--pv-steel) 54% 100%)}
.pv-hero h1{color:var(--pv-ink)}
.pv-hero-title em{color:var(--pv-copper)}
.pv-hero-lead{color:var(--pv-muted)}
.pv-hero-trust{border-top:1px solid var(--pv-line)}
.pv-hero-trust b{color:var(--pv-ink);letter-spacing:.02em;text-transform:none;font-size:15px}
.pv-hero-trust span{color:var(--pv-muted)}
.pv-hero-fig{border-radius:var(--pv-r);border:1px solid var(--pv-line);
  aspect-ratio:4/5;background:var(--pv-paper-2)}
.pv-hero-chip{left:-18px;bottom:-26px;border:1px solid var(--pv-line);
  border-top:3px solid var(--pv-copper);box-shadow:none}
.pv-hero-chip b{letter-spacing:.01em;text-transform:none;font-size:14.5px}
.pv-hero-badge{background:var(--pv-steel);border:1px solid var(--pv-steel);
  border-radius:var(--pv-r);font-family:var(--pv-font-mono);font-size:11.5px;
  letter-spacing:.06em;text-transform:none}
@media (max-width:900px){
  .pv-hero-chip{left:0;right:0;bottom:-18px;max-width:none}
  .pv-hero-media{padding-bottom:26px}
}

/* ---- specification ticker ---- */
.pv-ticker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:28px;
  border:1px solid var(--pv-line);border-radius:var(--pv-r);background:var(--pv-card);overflow:hidden}
.pv-ticker div{padding:13px 16px;border-left:1px solid var(--pv-line);min-width:0}
.pv-ticker div:first-child{border-left:0}
.pv-ticker b{display:block;font-family:var(--pv-font-mono);font-size:14.5px;color:var(--pv-steel);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-ticker span{display:block;margin-top:3px;font-size:11px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--pv-muted)}
@media (max-width:900px){
  .pv-ticker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-ticker div:nth-child(odd){border-left:0}
  .pv-ticker div:nth-child(n+3){border-top:1px solid var(--pv-line)}
}

/* ---- ingredient families: six illustrated cards, each on its own hairline frame
   with a gutter between them, so the tiles read as separate cards instead of one
   ruled table. The category image is the tile; the E-number rides on the plate as
   a forest pill so it stays legible over any photo. Flat: small radius, no
   shadow, the hover state only swaps colour. ---- */
.pv-grads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pv-gap)}
.pv-grad{display:block;background:var(--pv-card);border:1px solid var(--pv-line);
  border-radius:var(--pv-r);overflow:hidden;min-width:0;
  transition:background .18s ease,border-color .18s ease}
.pv-grad:hover{background:var(--pv-paper);border-color:var(--pv-line-2)}
.pv-grad-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;
  background:var(--pv-mint)}
.pv-grad-media img{display:block;width:100%;height:100%;object-fit:cover}
.pv-grad-badge{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;
  justify-content:center;height:26px;padding:0 11px;border-radius:var(--pv-r-pill);
  background:rgba(16,57,44,.88);color:#fff;font-family:var(--pv-font-mono);font-size:11px;
  font-weight:700;letter-spacing:.03em}
.pv-grad-body{display:block;padding:16px 18px 20px}
.pv-grad-body b{display:block;font-size:15.5px;font-weight:650;color:var(--pv-ink);
  margin-bottom:5px;line-height:1.32;transition:color .18s ease}
.pv-grad:hover .pv-grad-body b{color:var(--pv-copper)}
.pv-grad-body span{display:block;font-size:13.5px;color:var(--pv-muted);line-height:1.5}
.pv-grad-body em{display:block;margin-top:10px;font-family:var(--pv-font-mono);font-size:11.5px;
  font-style:normal;letter-spacing:.05em;color:var(--pv-copper)}
@media (max-width:1024px){.pv-grads{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.pv-grads{grid-template-columns:minmax(0,1fr);gap:20px}}

/* ---- specification dossier: the signature ruled ledger ---- */
.pv-dossier{border:1px solid var(--pv-line);border-radius:var(--pv-r);
  background:var(--pv-card);overflow:hidden}
.pv-dossier-head,.pv-dossier-row{display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1.1fr) minmax(0,.85fr) minmax(0,1fr) minmax(0,.85fr);
  gap:14px;padding:13px 18px;align-items:center}
.pv-dossier-head{background:var(--pv-steel);color:var(--pv-on-dark);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.pv-dossier-row{border-top:1px solid var(--pv-line);font-size:14.5px;
  transition:background .16s ease}
.pv-dossier-row:nth-of-type(even){background:var(--pv-paper)}
.pv-dossier-row:hover{background:var(--pv-mint)}
.pv-dossier-row b{font-weight:600;color:var(--pv-ink);min-width:0;overflow-wrap:anywhere}
.pv-dossier-row span{font-family:var(--pv-font-mono);font-size:12.5px;color:var(--pv-muted);
  min-width:0;overflow-wrap:anywhere}
@media (max-width:760px){
  .pv-dossier-head{display:none}
  .pv-dossier-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px 14px;padding:14px 16px}
  .pv-dossier-row b{grid-column:1 / -1;font-size:15px}
}
@media (max-width:420px){.pv-dossier-row{grid-template-columns:minmax(0,1fr)}}

/* ---- compliance grid ---- */
/* Each cell is a two-column, two-row grid: the icon and the document title ride on
   one line, the statement drops to a full-width row underneath. */
.pv-comp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  background:var(--pv-line);border:1px solid var(--pv-line);border-radius:var(--pv-r);overflow:hidden}
.pv-comp-cell{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 10px;
  align-content:start;background:var(--pv-card);padding:20px;min-width:0;
  border-left:3px solid transparent;transition:border-color .18s ease,background .18s ease}
.pv-comp-cell:hover{border-left-color:var(--pv-copper);background:var(--pv-paper)}
.pv-comp-cell i{grid-column:1;grid-row:1;align-self:start;padding-top:3px;
  color:var(--pv-copper);font-size:16px;line-height:1;margin:0}
.pv-comp-cell b{grid-column:2;grid-row:1;font-size:15px;font-weight:650;line-height:1.35;
  color:var(--pv-ink);margin:0}
.pv-comp-cell span{grid-column:1 / -1;grid-row:2;font-size:13.5px;color:var(--pv-muted);line-height:1.55}
@media (max-width:1024px){.pv-comp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.pv-comp{grid-template-columns:minmax(0,1fr)}}

/* ---- packing grid ---- */
.pv-packs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--pv-gap)}
.pv-pack{background:var(--pv-card);border:1px solid var(--pv-line);
  border-radius:var(--pv-r);overflow:hidden;min-width:0}
.pv-pack img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--pv-paper)}
.pv-pack-body{padding:14px 16px 17px}
.pv-pack-body b{display:block;font-size:14.5px;font-weight:650;color:var(--pv-ink);margin-bottom:4px}
.pv-pack-body span{display:block;font-size:13px;color:var(--pv-muted);line-height:1.5}
@media (max-width:900px){.pv-packs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.pv-packs{grid-template-columns:minmax(0,1fr)}}

/* ==========================================================================
   37. hero: the forest specification band
   The home hero is no longer a light split plate with a photo panel and a chip
   card. It is one inverted laboratory band: the copy keeps the left, a single
   circular specimen plate runs off the right edge of the page, and the
   specification figures close the band on a full-width rail instead of a boxed
   ticker under the copy. Same flat language — hairlines, no shadow, amber as
   the only action colour (bright amber on the dark surface, ink on the amber).
   ========================================================================== */
.pv-hero-spec{background:var(--pv-steel);color:var(--pv-on-dark);
  padding:clamp(46px,5.4vw,80px) 0 0;border-bottom:0}
/* dot field re-armed for a dark ground: the light dots of the granule language,
   not the dark ones the paper sections use */
.pv-hero-spec::before{opacity:1;
  background-image:radial-gradient(rgba(233,244,238,.09) 1.2px,transparent 1.2px);
  background-size:17px 17px}
/* no top stripe: the amber accents are the kicker rule, the rail figures and the
   plate label, so the band needs no second edge */
.pv-hero-spec::after{display:none}
.pv-hero-spec .pv-hero-in{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(24px,3vw,46px);align-items:center}

/* ---- the specimen plate: the sample photograph cut to a disc, running off the
   right edge of the page ---- */
.pv-hero-plate{position:relative;justify-self:end;width:min(100%,520px);aspect-ratio:1/1;
  border-radius:50%;overflow:hidden;background:var(--pv-paper-2);
  border:1px solid rgba(233,244,238,.26);
  margin-right:clamp(-130px,-8vw,-40px)}
.pv-hero-plate .pv-plate-shot{display:block;height:100%}
/* the sample photograph is a portrait flat-lay of one dish: the square crop keeps
   the whole dish and drops only the empty ground above and below it */
.pv-hero-plate .pv-plate-shot img{width:100%;height:100%;object-fit:cover}
.pv-plate-tag{position:absolute;left:7%;bottom:12%;display:inline-flex;align-items:center;
  max-width:76%;background:var(--pv-steel);color:var(--pv-copper-l);
  border:1px solid rgba(232,196,137,.36);border-radius:var(--pv-r);
  padding:7px 14px;font-family:var(--pv-font-mono);font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;line-height:1.2}

/* ---- copy column ---- */
/* the kicker is a ruled specification line now, not the outlined pill of the
   previous hero */
.pv-hero-spec .pv-kicker{border:0;border-left:2px solid var(--pv-copper);
  border-radius:0;padding:2px 0 2px 13px;margin-bottom:20px;color:var(--pv-copper-l);
  font-family:var(--pv-font-mono);font-size:12px;letter-spacing:.1em}
.pv-hero-spec h1{color:#fff}
.pv-hero-spec .pv-hero-title em{color:var(--pv-copper-l)}
.pv-hero-spec .pv-hero-lead{color:var(--pv-on-dark-dim)}
.pv-hero-spec .pv-btn-accent{background:var(--pv-copper-bright);color:#1c1206}
.pv-hero-spec .pv-btn-accent:hover{background:var(--pv-copper-l);color:#1c1206}
.pv-hero-spec .pv-btn-ghost{border-color:rgba(255,255,255,.4);color:#fff}
.pv-hero-spec .pv-btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
/* the sample note sits in the copy column, ruled off, instead of riding on the
   corner of the photograph as a floating card */
.pv-hero-sample{display:flex;align-items:center;gap:16px;max-width:560px;
  margin-top:clamp(26px,3vw,38px);padding-top:24px;
  border-top:1px solid rgba(233,244,238,.16)}
.pv-sample-thumb{flex:0 0 auto;width:62px;height:62px;border-radius:50%;overflow:hidden;
  border:1px solid rgba(233,244,238,.3);background:var(--pv-paper)}
.pv-sample-thumb img{width:100%;height:100%;object-fit:cover}
.pv-hero-sample b{display:block;font-family:var(--pv-font-display);font-size:15px;
  font-weight:650;color:#fff;margin-bottom:3px}
.pv-hero-sample span{display:block;font-size:13.5px;color:var(--pv-on-dark-dim);line-height:1.5}

/* ---- specification rail: full width, closed against the bottom of the band ---- */
/* z-index lifts the rail above the section's dot layer, the way .pv-hero-in does */
.pv-specrail{position:relative;z-index:1;margin-top:clamp(38px,4.6vw,66px);
  background:rgba(0,0,0,.16);border-top:1px solid rgba(233,244,238,.16)}
.pv-specrail-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.pv-specrail-cell{padding:20px 22px 24px;border-left:1px solid rgba(233,244,238,.13);min-width:0}
.pv-specrail-cell:first-child{border-left:0;padding-left:0}
.pv-specrail-cell b{display:block;font-family:var(--pv-font-mono);font-size:16px;font-weight:600;
  color:var(--pv-copper-l);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-specrail-cell span{display:block;margin-top:5px;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--pv-on-dark-dim)}

@media (max-width:1180px){
  /* the two-up band stacks before the plate can eat the copy column */
  .pv-hero-spec .pv-hero-in{grid-template-columns:minmax(0,1fr);gap:clamp(26px,4vw,40px)}
  .pv-hero-plate{justify-self:center;width:min(100%,440px);
    margin:clamp(28px,4vw,44px) 0 0}
}
@media (max-width:900px){
  .pv-specrail-in{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-specrail-cell{padding:16px 18px 18px}
  .pv-specrail-cell:nth-child(odd){border-left:0;padding-left:0}
  .pv-specrail-cell:nth-child(n+3){border-top:1px solid rgba(233,244,238,.13)}
  .pv-hero-sample{gap:14px}
}
@media (max-width:600px){
  .pv-hero-plate{width:min(100%,300px);margin-top:26px}
  .pv-plate-tag{left:6%;bottom:10%;font-size:11px;padding:6px 11px}
  .pv-sample-thumb{width:54px;height:54px}
  .pv-hero-sample b{font-size:14.5px}
  .pv-hero-sample span{font-size:12.5px}
}

/* ==========================================================================
   38. applications rail fed by the Solutions column
   The home page cells are a loop over column 24 now, so the running number is
   generated from the document order instead of being typed into every card.
   The other .pv-apps rails (solutions list page) keep their typed numbers.
   ========================================================================== */
.pv-apps-auto{counter-reset:pv-app}
.pv-apps-auto .pv-app-n::after{counter-increment:pv-app;
  content:counter(pv-app,decimal-leading-zero)}
/* the cell title is the link into the document */
.pv-app h3 a{transition:color .18s ease}
.pv-app h3 a:hover{color:var(--pv-copper)}
/* the document thumbnail the loop pulls in: framed inside the cell, so the flush
   hairline rail of .pv-apps keeps its shape */
.pv-app-media{display:block;margin:0 0 20px;aspect-ratio:16/10;overflow:hidden;
  border:1px solid var(--pv-line);border-radius:var(--pv-r);background:var(--pv-paper-2)}
.pv-app-media img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:600px){.pv-app-media{aspect-ratio:16/9;margin-bottom:16px}}


