/* Self hosted, latin subset. Add latin-ext and Noto Sans SC per route at build. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/inter-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ============================================================
   ADiNO Klebstoffe - shared shell
   Tokens are inherited unchanged from the built homepage and
   Products landing page. Nothing here introduces a new value
   except --menu, which the brief specifies for the menu tile.
   ============================================================ */

:root{
  --ink:#010101;
  --slate:#5B5B60;
  --mist:#D6D3D6;
  --lilac:#E5E1E6;
  --paper:#F0EEED;
  --white:#FFFFFF;
  --o:#E75625;
  --o-deep:#B84117;
  --menu:#2C2C2A;

  --pad:clamp(24px, 5vw, 120px);
  --hdr:56px;

  --sans:Inter, system-ui, -apple-system, sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;

  --lift:0 8px 24px rgba(1,1,1,.10);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button,input,select,textarea{font:inherit; color:inherit;}
h1,h2,h3,p,ul,ol,figure{margin:0;}
ul{list-style:none; padding:0;}

:focus-visible{outline:3px solid var(--o); outline-offset:2px;}
@media (prefers-reduced-motion:reduce){*{transition:none !important; animation:none !important;}}

.skip{
  position:absolute; left:-9999px; top:0; z-index:99;
  background:var(--ink); color:#fff; padding:12px 20px;
  font-family:var(--mono); font-size:13px; letter-spacing:.1em; text-transform:uppercase;
}
.skip:focus{left:0;}

.mono{font-family:var(--mono);}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* ---------- HEADER ------------------------------------------------ */

.hdr{
  position:sticky; top:0; z-index:40;
  height:var(--hdr); display:flex; align-items:stretch;
  background:var(--ink);
}
.hdr__logo{
  flex:0 0 auto; display:flex; align-items:center;
  background:var(--ink); padding:0 28px 0 var(--pad);
}
.hdr__logo img{width:132px; height:36px; object-fit:contain; object-position:left center;}

.nav{
  flex:1 1 auto; min-width:0;
  display:flex; align-items:stretch; justify-content:flex-end; gap:32px;
  padding-right:32px;
}
.nav__item{position:static;}
.nav__link{
  display:flex; align-items:center; height:var(--hdr);
  font-size:15px; font-weight:500; color:#fff; white-space:nowrap;
  border-bottom:3px solid transparent;
  transition:border-color .15s ease;
}
.nav__link:hover,.nav__item:focus-within .nav__link{border-bottom-color:var(--o);}
.nav__item--active .nav__link{border-bottom-color:var(--o);}

.tiles{flex:0 0 auto; display:flex; align-items:stretch; gap:0;}
.tile{
  display:flex; align-items:center; justify-content:center; gap:8px;
  border:0; cursor:pointer; padding:0;
}
.tile--lang{width:88px; background:var(--lilac); color:var(--ink); font-size:14px; font-weight:600;}
.tile--search{width:56px; background:var(--o); color:#fff;}
.tile--menu{width:56px; background:var(--menu); color:#fff; flex-direction:column; gap:5px;}
.tile--menu span{display:block; width:22px; height:1.5px; background:#fff;}
.tile--menu{display:none;}

/* mega panels */
.panel{
  position:absolute; left:0; right:0; top:var(--hdr);
  background:var(--white); border-bottom:1px solid var(--mist);
  box-shadow:var(--lift);
  padding:44px var(--pad) 48px;
  opacity:0; visibility:hidden; transform:translateY(-4px);
  transition:opacity .14s ease, transform .14s ease, visibility .14s;
}
.nav__item:hover .panel,.nav__item:focus-within .panel{opacity:1; visibility:visible; transform:none;}
.panel__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0 48px;}
.panel__grid--3{grid-template-columns:repeat(3,1fr);}
.panel__link{
  display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:16px;
  padding:16px 0; border-bottom:1px solid var(--mist);
}
.panel__link:hover .panel__name{color:var(--o-deep);}
.panel__name{font-size:16px; font-weight:500;}
.panel__meta{font-family:var(--mono); font-size:12.5px; color:var(--slate);}
.panel__sub{
  grid-column:1/-1; font-size:14px; line-height:1.5; color:var(--slate);
  margin-top:4px;
}
.panel__head{
  font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--slate); margin-bottom:12px;
}

/* persistent contact tab */
.contact-tab{
  position:fixed; right:0; top:52%; z-index:35;
  background:var(--o); color:#fff; padding:22px 14px;
  font-size:14px; font-weight:600; letter-spacing:.04em;
  writing-mode:vertical-rl; display:flex; align-items:center; gap:12px;
}
.contact-tab:hover{background:var(--o-deep);}

/* Anchored jumps land below the sticky header rather than under it. */
:target,[id]{scroll-margin-top:calc(var(--hdr) + 20px);}

/* ---------- SECTION PRIMITIVES ------------------------------------ */

.band{padding:88px var(--pad);}
.band--head{padding:36px var(--pad) 72px;}
.lilac{background:var(--lilac);}
.paper{background:var(--paper);}
.white{background:var(--white);}
.dark{background:var(--ink); color:#fff;}

.rule{width:56px; height:3px; background:var(--o); margin-bottom:20px;}

.crumb{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:13px; color:var(--slate); margin-bottom:40px;
}
.crumb a{color:var(--slate);}
.crumb a:hover{color:var(--ink);}
.crumb i{color:var(--mist); font-style:normal;}
.crumb b{font-weight:400; color:var(--ink);}

.eyebrow{
  font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--slate); margin-bottom:16px;
}
h1,.h1{font-size:clamp(34px,4.2vw,56px); font-weight:600; letter-spacing:-.02em; line-height:1.05;}
h2,.h2{font-size:clamp(25px,2.5vw,32px); font-weight:600; letter-spacing:-.02em; line-height:1.15;}
h3,.h3{font-size:19px; font-weight:600; line-height:1.3;}
.lead{font-size:17px; line-height:1.65; color:var(--slate); max-width:68ch;}
.measure{max-width:68ch;}
.cap{font-family:var(--mono); font-size:12.5px; letter-spacing:.02em; color:var(--slate);}

.head-band{display:grid; grid-template-columns:1fr 380px; gap:96px; align-items:start;}

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:12px; height:52px; padding:0 24px;
  background:var(--o); color:#fff; border:0; border-radius:2px; cursor:pointer;
  font-family:var(--mono); font-size:13px; font-weight:500; letter-spacing:.1em;
  text-transform:uppercase; white-space:nowrap;
}
.btn:hover{background:var(--o-deep);}
.link{
  display:inline-flex; align-items:center; gap:10px;
  font-size:15px; font-weight:600; color:var(--o-deep);
  border-bottom:1px solid var(--o-deep); padding-bottom:2px;
}
.link svg{color:var(--o); transition:transform .16s ease;}
.link:hover svg{transform:translateX(4px);}
.actions{display:flex; align-items:center; gap:32px; flex-wrap:wrap;}

/* chips */
.chips{display:flex; flex-wrap:wrap; gap:12px;}
.chip{
  display:inline-flex; align-items:center; height:44px; padding:0 20px;
  border:1px solid var(--ink); border-radius:2px; background:transparent;
  color:var(--ink); font-size:16px;
}
.chip:hover{background:var(--ink); color:#fff;}
.chip--sm{height:26px; padding:0 10px; border-color:var(--mist); font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--slate);}
.chip--sm:hover{background:transparent; color:var(--slate);}

/* cards */
.card{
  border:1px solid var(--mist); border-radius:4px; background:var(--white);
  transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
a.card:hover{box-shadow:var(--lift); transform:translateY(-2px); border-color:var(--ink);}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:32px;}

/* image slot
   Every photograph on these pages is a labelled drop slot: the caption is
   the shot that has to be supplied, and the corner tag is the crop it has
   to be delivered at. */
.slot{
  position:relative; overflow:hidden;
  background:
    repeating-linear-gradient(135deg, rgba(1,1,1,.020) 0 10px, transparent 10px 20px),
    var(--paper);
  border:1px dashed var(--mist);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  padding:20px;
}
.slot::before{
  content:"";
  width:34px; height:28px; flex:0 0 auto; opacity:.75;
  background:no-repeat center/contain
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='28' fill='none'%3E%3Cpath d='M1 5h7l2-3h14l2 3h7v21H1z' stroke='%235B5B60' stroke-width='1.5' stroke-linecap='square'/%3E%3Ccircle cx='17' cy='15' r='6' stroke='%23E75625' stroke-width='1.5'/%3E%3C/svg%3E");
}
.slot::after{
  content:attr(data-slot);
  font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--slate); text-align:center; line-height:1.7; max-width:34ch;
}
.slot--4x3{aspect-ratio:4/3;}
.slot--3x2{aspect-ratio:3/2;}
.slot--16x9{aspect-ratio:16/9;}
.slot--1x1{aspect-ratio:1/1;}
.ratio{
  position:absolute; top:12px; left:12px;
  font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:.1em;
  color:var(--slate); border:1px solid var(--mist); border-radius:2px;
  padding:3px 7px; background:var(--white);
}

/* stat block */
.stats{display:flex; flex-direction:column; gap:16px;}
.stat{display:flex; align-items:baseline; gap:14px;}
.stat b{font-family:var(--mono); font-weight:500; font-size:30px; letter-spacing:-.01em; color:var(--ink); min-width:64px;}
.stat span{font-size:15px; color:var(--slate);}

/* ---------- LIST ROWS (documents + products) ---------------------- */

.list{border-top:1px solid var(--mist);}
.list__head{
  position:sticky; top:var(--hdr); z-index:5;
  display:grid; gap:24px; background:var(--ink); padding:13px 20px;
}
.list__head span{
  font-family:var(--mono); font-weight:500; font-size:11.5px; letter-spacing:.12em;
  text-transform:uppercase; color:#fff;
}
.row{
  display:grid; gap:24px; align-items:center;
  min-height:56px; padding:0 20px;
  border-bottom:1px solid var(--mist);
  background:transparent; border-left:0; border-right:0; border-top:0;
  width:100%; text-align:left; cursor:pointer;
}
.row:hover{background:var(--paper);}
.row__code{font-family:var(--mono); font-weight:500; font-size:15px; color:var(--ink); white-space:nowrap;}
.row__type{font-size:15px; color:var(--slate);}
.row__app{font-size:15px; color:var(--slate); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.row__chev{display:flex; justify-content:flex-end; color:var(--o); transition:transform .18s ease;}
.row[aria-expanded="true"]{background:var(--paper);}
.row[aria-expanded="true"] .row__chev{transform:rotate(90deg);}

.group{margin-bottom:56px;}
.group__head{display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:16px; padding-bottom:14px;}
.group__head h2{font-size:17px; font-weight:600; letter-spacing:0;}
.group__head span{font-family:var(--mono); font-weight:500; font-size:13px; color:var(--slate);}

.empty{
  padding:22px 20px; border-bottom:1px solid var(--mist);
  font-size:15px; color:var(--slate); background:var(--paper);
}

/* ---------- FORM -------------------------------------------------- */

.field{display:flex; flex-direction:column; gap:8px; margin-bottom:22px;}
.field > label{font-size:14px; font-weight:500;}
.field > label em{font-style:normal; color:var(--slate); font-weight:400;}
.input,.select,.textarea{
  height:52px; padding:0 14px; border:1px solid var(--mist); border-radius:2px;
  background:var(--white); font-size:16px; width:100%;
}
.textarea{height:auto; padding:14px; min-height:140px; resize:vertical; line-height:1.6;}
.input:focus,.select:focus,.textarea:focus{outline:0; border-color:var(--ink); box-shadow:0 0 0 3px rgba(231,86,37,.28);}
.input::placeholder,.textarea::placeholder{color:var(--slate); opacity:.8;}
.input--mono{font-family:var(--mono);}
.select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' fill='none'%3E%3Cpath d='M1 1l3.5 3.5L8 1' stroke='%235B5B60' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
  padding-right:36px;
}
.field--error .input,.field--error .select,.field--error .textarea{border-color:var(--o-deep); border-width:1px; box-shadow:inset 3px 0 0 var(--o-deep);}
.err{display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--o-deep);}

/* ---------- FOOTER ------------------------------------------------ */

.ftr{background:var(--ink); color:#fff; padding:80px var(--pad) 0;}
.ftr__top{display:grid; grid-template-columns:repeat(12,1fr); gap:24px; padding-bottom:64px;}
.ftr__brand{grid-column:1/span 3;}
.ftr__brand img{width:160px; height:44px; object-fit:contain; object-position:left center;}
.ftr__brand p{margin-top:20px; font-size:15px; color:var(--mist);}
.ftr__col{grid-column:span 2;}
.ftr h2{
  font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:#fff; margin-bottom:20px; line-height:1.4;
}
.ftr__col ul{display:flex; flex-direction:column; gap:12px;}
.ftr__col a{font-size:15px; color:var(--mist);}
.ftr__col a:hover{color:#fff;}
.ftr__mid{border-top:1px solid rgba(255,255,255,.14); padding:48px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.ftr__mid p{font-size:15px; color:var(--mist);}
.ftr__mid a{color:var(--mist); border-bottom:1px solid rgba(255,255,255,.3);}
.ftr__mid a:hover{color:#fff;}
.ftr__bot{
  border-top:1px solid rgba(255,255,255,.14); padding:28px 0;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.ftr__bot span{font-size:13px; color:var(--slate);}
.ftr__bot a{font-size:13px; color:var(--mist);}
.ftr__bot a:hover{color:#fff;}
.ftr__lang{display:flex; align-items:center; gap:16px;}
.ftr__lang a[aria-current]{color:#fff; font-weight:600;}
.ftr__lang a:not([aria-current]){color:var(--slate);}

/* ============================================================
   1024
   ============================================================ */
@media (max-width:1199px){
  .head-band{grid-template-columns:1fr; gap:40px;}
  .grid-3{grid-template-columns:repeat(2,1fr); gap:24px;}
  .panel__grid{grid-template-columns:repeat(2,1fr); gap:0 32px;}
  .nav{gap:20px; padding-right:20px;}
  .nav__link{font-size:14px;}
  .hdr__logo{padding-right:20px;}
  .ftr__top{grid-template-columns:repeat(8,1fr);}
  .ftr__brand{grid-column:1/span 8; margin-bottom:16px;}
  .ftr__col{grid-column:span 2;}
  .ftr__mid{grid-template-columns:1fr;}
  .band{padding:72px var(--pad);}
}

/* ============================================================
   375
   ============================================================ */
@media (max-width:699px){
  body{font-size:16px;}
  .nav{display:none;}
  .tile--menu{display:flex;}
  .tile--lang{width:72px;}
  .contact-tab{display:none;}
  .band{padding:56px var(--pad);}
  .band--head{padding:24px var(--pad) 48px;}
  .grid-3,.grid-2{grid-template-columns:1fr; gap:24px;}
  .crumb{margin-bottom:24px;}
  .actions{gap:20px; align-items:flex-start; flex-direction:column;}
  .btn{width:100%; justify-content:space-between;}
  .ftr{padding-top:56px;}
  .ftr__top{grid-template-columns:1fr; gap:36px; padding-bottom:40px;}
  .ftr__brand,.ftr__col{grid-column:1/-1;}
  .ftr__bot{flex-direction:column; align-items:flex-start; gap:20px;}
  .list__head{display:none;}
  .row{grid-template-columns:1fr auto !important; gap:6px 16px; padding:16px 0; align-items:start;}
  .row__app,.row__type{grid-column:1; }
  .row__chev{grid-row:1; grid-column:2;}
}

/* mobile drawer */
.drawer{
  position:fixed; inset:var(--hdr) 0 0; z-index:39; background:var(--white);
  overflow-y:auto; padding:8px var(--pad) 48px;
  display:none;
}
.drawer[data-open]{display:block;}
.drawer a,.drawer summary{
  display:flex; align-items:center; justify-content:space-between;
  min-height:56px; border-bottom:1px solid var(--mist);
  font-size:18px; font-weight:500; cursor:pointer;
}
.drawer summary{list-style:none;}
.drawer summary::-webkit-details-marker{display:none;}
.drawer details a{font-size:16px; font-weight:400; color:var(--slate); padding-left:16px; min-height:48px;}
.drawer details[open] summary svg{transform:rotate(90deg);}

/* ============================================================
   PAGE COMPONENTS
   ============================================================ */

/* ---- Industries landing ------------------------------------ */
.ind{display:flex; flex-direction:column; overflow:hidden;}
.ind__media{position:relative; display:block;}
.ind__img{border:0; border-radius:0; width:100%;}
.ind__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(1,1,1,0) 42%, rgba(1,1,1,.74) 100%);
  pointer-events:none;
}
.ind__name{
  position:absolute; left:20px; right:20px; bottom:18px; z-index:2;
  font-size:22px; font-weight:600; line-height:1.2; color:#fff;
}
.ind__body{display:block; padding:22px 20px 20px;}
.ind__apps{
  display:block; font-family:var(--mono); font-size:12.5px; line-height:1.7; color:var(--slate);
  min-height:64px;
}
.ind__foot{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:18px; padding-top:16px; border-top:1px solid var(--mist);
  font-size:12.5px; color:var(--ink);
}
.ind__arrow{color:var(--o); display:flex; transition:transform .18s ease;}
.ind:hover .ind__arrow{transform:translateX(4px);}

/* ---- Documents --------------------------------------------- */
.filterbar{
  position:sticky; top:var(--hdr); z-index:20;
  background:var(--white); border-bottom:1px solid var(--mist);
  padding:16px var(--pad);
}
.filterbar__inner{
  display:grid; grid-template-columns:1fr 200px 220px 160px auto;
  gap:12px; align-items:center;
}
.filterbar__count{color:var(--slate); white-space:nowrap; font-size:13px;}

.list--doc .list__head,.list--doc .row{
  grid-template-columns:28px 132px 1fr 210px 54px 200px 132px;
}
.row__ic{color:var(--ink); display:flex;}
.row__name{font-size:15px; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.list--doc .row__name{font-family:var(--mono); font-size:13.5px; color:var(--slate);}
.row__cat{display:flex;}
.row__lang{font-size:12.5px; color:var(--slate);}
.row__size{font-size:12.5px; color:var(--slate); white-space:nowrap;}
.row__dl{
  display:inline-flex; align-items:center; justify-content:flex-end; gap:10px;
  font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--o-deep);
}
.row__dl svg{color:var(--o); transition:transform .16s ease;}
.row--doc:hover .row__dl svg{transform:translateX(4px);}
.row--rel{min-height:78px;}
.list--doc .row--rel{grid-template-columns:28px 1fr 160px 140px;}
.row--rel .row__name{white-space:normal; font-family:var(--sans); font-size:16px; color:var(--ink); line-height:1.5;}

.loadmore{display:flex; align-items:center; gap:24px; margin-top:28px; flex-wrap:wrap;}
.loadmore span{font-size:13px; color:var(--slate);}

/* ---- Why ADiNO --------------------------------------------- */
.pillars{gap:56px;}
.pillar__n{display:block; font-weight:500; font-size:14px; letter-spacing:.12em; color:var(--o); margin-bottom:16px;}
.pillar__h{font-size:19px; font-weight:600; line-height:1.3; letter-spacing:0; margin-bottom:14px;}
.pillar p{font-size:16px; line-height:1.65; color:var(--slate); margin-bottom:12px;}

.steps{display:grid; grid-template-columns:repeat(6,1fr); gap:0; margin-top:56px; border-left:1px solid rgba(255,255,255,.16);}
.step{padding:28px 24px 32px; border-right:1px solid rgba(255,255,255,.16);}
.step__n{display:block; font-weight:500; font-size:13px; letter-spacing:.12em; color:var(--o); margin-bottom:24px;}
.step__ic{color:#fff; margin-bottom:24px;}
.step__l{font-size:15px; font-weight:500; color:#fff;}

.lab{display:grid; grid-template-columns:46% 1fr; gap:72px; align-items:center;}
.ent__b{padding:24px 22px 26px;}
.ent__b h3{font-size:17px;}
.ent__place{font-size:12.5px; color:var(--slate); margin:6px 0 12px;}
.ent__b p{font-size:15px; line-height:1.6; color:var(--slate);}
.ent .slot{border:0; border-radius:4px 4px 0 0;}

.certs{display:grid; grid-template-columns:repeat(2,1fr); gap:48px; margin-top:36px;}
.cert__mark{
  display:inline-flex; align-items:center; height:52px; padding:0 22px;
  border:1px solid var(--ink); border-radius:2px;
  font-weight:500; font-size:16px; letter-spacing:.06em; margin-bottom:18px;
}
.cert p{font-size:16px; line-height:1.65; color:var(--slate); max-width:52ch;}

/* ---- Contact ----------------------------------------------- */
/* The world map is supplied artwork with its markers and labels baked in.
   Layered over it are three hotspots that scroll to the matching card. */
.mapband{background:#0B1220;}
.mapband__s{overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; cursor:grab;}
.mapband__s[data-drag]{cursor:grabbing; scroll-behavior:auto;}
.mapband__s::-webkit-scrollbar{height:0;}
.mapband__f{position:relative; line-height:0; width:100%;}
.mapband__i{width:100%; height:auto; display:block; user-select:none; -webkit-user-drag:none;}

.hot{
  position:absolute; width:56px; height:56px; transform:translate(-50%,-50%);
  padding:0; background:transparent; border:0; cursor:pointer;
}
.hot__ring{
  position:absolute; inset:50%; width:26px; height:26px; margin:-13px 0 0 -13px;
  border:2px solid var(--o); border-radius:50%; opacity:0;
  transition:opacity .18s ease, transform .18s ease;
}
.hot:hover .hot__ring,.hot:focus-visible .hot__ring,.hot[data-on] .hot__ring{opacity:1; transform:scale(1.55);}
.hot__tip{
  position:absolute; left:50%; bottom:calc(50% + 22px); transform:translateX(-50%);
  white-space:nowrap; background:var(--ink); color:#fff; padding:7px 11px; border-radius:2px;
  font-family:var(--mono); font-size:11px; letter-spacing:.04em;
  opacity:0; pointer-events:none; transition:opacity .16s ease;
}
.hot:hover .hot__tip,.hot:focus-visible .hot__tip{opacity:1;}
.hot:focus-visible{outline:3px solid var(--o); outline-offset:2px;}

.mapband__b{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding:16px var(--pad) 20px; background:#0B1220;
}
.mapband__hint{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#7E8798;}
.mapband__jump{display:flex; gap:8px; flex-wrap:wrap;}
.mjump{
  min-height:44px; padding:0 16px; border:1px solid rgba(255,255,255,.28); border-radius:2px;
  background:transparent; color:#fff; cursor:pointer;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
}
.mjump:hover,.mjump[data-on]{background:var(--o); border-color:var(--o);}

.offices{margin-bottom:56px;}
.offices:last-child{margin-bottom:0;}
.office{padding:26px 24px; transition:border-color .18s ease, box-shadow .18s ease;}
.office h3{font-size:17px; margin-bottom:12px;}
.office__addr{font-size:15px; line-height:1.6; color:var(--slate); margin-bottom:14px;}
.office__c{font-size:13px; line-height:1.8; color:var(--slate); margin-bottom:18px;}
.office__c a{border-bottom:1px solid var(--mist);}
.office[data-active]{border-left:3px solid var(--o); box-shadow:var(--lift);}

.enq{display:grid; grid-template-columns:1fr 360px; gap:96px; align-items:start;}
.form__pair{gap:24px;}
.enq__side{border-left:1px solid var(--mist); padding-left:36px;}
.enq__side h3{margin-bottom:20px;}
.enq__list{display:flex; flex-direction:column; gap:16px;}
.enq__list li{display:grid; grid-template-columns:34px 1fr; font-size:15px; line-height:1.6; color:var(--slate);}
.enq__list span{color:var(--o); font-size:13px; letter-spacing:.1em;}

/* ---- Category ---------------------------------------------- */
.anchors{border-top:1px solid var(--mist);}
.anchor{
  display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:16px;
  padding:18px 0; border-bottom:1px solid var(--mist); font-size:16px; font-weight:500;
}
.anchor svg{color:var(--o);}
.anchor__c{font-weight:500; font-size:13px; color:var(--slate);}
.anchor:hover{color:var(--o-deep);}

.rangeblock{display:flex; gap:72px; align-items:flex-start; margin-bottom:56px;}
.rangeblock__img{flex:0 0 46%; border:0;}
.rangeblock__t{flex:1 1 auto; min-width:0;}

.acc{border-top:1px solid var(--mist); border-bottom:1px solid var(--mist);}
.acc__sum{
  display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:20px;
  min-height:72px; cursor:pointer; list-style:none;
}
.acc__sum::-webkit-details-marker{display:none;}
.acc__name{font-size:17px; font-weight:600;}
.acc__c{font-size:13px; color:var(--slate);}
.acc__chev{display:flex; color:var(--o); transition:transform .18s ease;}
.acc[open] .acc__chev{transform:rotate(90deg);}
.acc__body{padding-bottom:32px;}

.prodfilter{display:grid; grid-template-columns:220px 260px 200px; gap:12px; margin-bottom:24px;}

.list--prod .list__head,.list--prod .row--prod{
  grid-template-columns:180px 160px 1fr 48px;
}
.prow--open .row--prod,.prow--open .expand{border-left:3px solid var(--o);}
.expand{background:var(--paper); border-bottom:1px solid var(--mist);}
.expand__in{display:grid; grid-template-columns:1fr 360px; gap:64px; padding:24px 24px 28px;}
.spec__row{
  display:grid; grid-template-columns:1fr auto; gap:24px; align-items:baseline;
  padding:12px 0; border-bottom:1px solid var(--mist);
}
.spec__row:last-child{border-bottom:0;}
.spec__l{font-size:15px; color:var(--slate);}
.spec__v{font-size:15px; text-align:right; white-space:nowrap;}
.spec__approx{font-family:var(--mono); font-size:12.5px; color:var(--slate);}
.spec__v b{font-weight:500; font-size:16px; color:var(--ink);}
.spec__unit{color:var(--slate);}
.spec__pending{font-size:12.5px; line-height:1.7; color:var(--slate); max-width:44ch;}
.expand__act{display:flex; flex-direction:column; align-items:flex-start; gap:10px;}
.expand__act .btn{width:100%; justify-content:space-between;}
.btn--sec{background:transparent; color:var(--ink); border:1px solid var(--ink);}
.btn--sec:hover{background:var(--ink); color:#fff;}
.expand__meta{font-size:12px; color:var(--slate); margin-bottom:8px;}
.expand__note{font-size:13px; line-height:1.5; color:var(--slate);}

/* ============================================================
   1024
   ============================================================ */
@media (max-width:1199px){
  .filterbar__inner{grid-template-columns:1fr 1fr 1fr; }
  .filterbar__inner .input{grid-column:1/-1;}
  .filterbar__count{grid-column:1/-1;}
  .list--doc .list__head,.list--doc .row{grid-template-columns:28px 120px 1fr 54px 170px 120px;}
  .list--doc .row__cat{display:none;}
  .list--doc .list__head span:nth-child(4){display:none;}
  .list--doc .row--rel{grid-template-columns:28px 1fr 140px 120px;}
  .steps{grid-template-columns:repeat(3,1fr);}
  .step{border-top:1px solid rgba(255,255,255,.16);}
  .lab{grid-template-columns:1fr; gap:36px;}
  .certs{gap:32px;}
  .enq{grid-template-columns:1fr; gap:48px;}
  .enq__side{border-left:0; border-top:1px solid var(--mist); padding-left:0; padding-top:32px;}
  .rangeblock{flex-direction:column !important; gap:32px;}
  .rangeblock__img{flex:0 0 auto; width:100%;}
  .prodfilter{grid-template-columns:1fr 1fr;}
  .prodfilter .input{grid-column:1/-1;}
  .expand__in{grid-template-columns:1fr 300px; gap:32px;}
  .list--prod .list__head,.list--prod .row--prod{grid-template-columns:150px 120px 1fr 40px;}
  .ind__name{font-size:20px;}
}

/* ============================================================
   375
   ============================================================ */
@media (max-width:699px){
  .filterbar{position:static;}
  .filterbar__inner{grid-template-columns:1fr; gap:10px;}
  .list--doc .row,.list--doc .row--rel{grid-template-columns:1fr !important; gap:6px; padding:16px 0;}
  .row__ic,.row__lang{display:none;}
  .list--doc .row__name{white-space:normal;}
  .row__dl{justify-content:flex-start; min-height:44px; align-items:center;}
  .steps{grid-template-columns:repeat(2,1fr);}
  .certs{grid-template-columns:1fr;}
  .enq__list li{grid-template-columns:30px 1fr;}
  .form__pair{gap:0;}
  .list--prod .list__head,.list--prod .row--prod{grid-template-columns:1fr 32px !important; padding:16px 0;}
  .row--prod .row__type,.row--prod .row__app{grid-column:1;}
  .row--prod .row__app{white-space:normal;}
  .expand__in{grid-template-columns:1fr; gap:24px; padding:20px 16px 24px;}
  .expand__act .btn{width:100%;}
  .anchors{margin-top:8px;}
  .mapband{padding:32px 0 28px;}
  .legend{gap:16px 20px; justify-content:flex-start; padding:0 var(--pad);}
  .pin__hit{r:52;}
  .ind__apps{min-height:0;}
  .prodfilter{grid-template-columns:1fr;}
  .loadmore .btn{width:100%;}
}

/* Industry card slots sit above the scrim so the caption stays legible
   while the photograph is still missing. */
.ind__img{justify-content:flex-start; padding-top:14%;}

/* ============================================================
   HOMEPAGE
   Ported from the built homepage: 580px hero with the caption
   box overhanging the bottom edge, the offset About block, the
   paired Industries and Products lists, the quality band, the
   news carousel and the support strip.
   ============================================================ */

.hero{position:relative; padding-bottom:72px; background:var(--white);}
.hero__img{position:relative; height:580px; overflow:hidden; background:var(--ink);}
.hero__img .slot{
  position:absolute; inset:0; aspect-ratio:auto; border:0;
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 10px, transparent 10px 20px),
    #2C2C2A;
  justify-content:flex-start; padding-top:12%;
}
.hero__img .slot::after{color:var(--mist);}
.hero__img .ratio{background:transparent; color:var(--mist); border-color:rgba(255,255,255,.3);}
.hero__scrim{position:absolute; inset:0; background:linear-gradient(90deg, rgba(1,1,1,.45) 0%, rgba(1,1,1,0) 55%);}

.hero__ctl{position:absolute; right:var(--pad); bottom:108px; width:260px;}
.hero__top{display:flex; align-items:center; justify-content:space-between; gap:16px;}
.hero__count{font-weight:500; font-size:15px; letter-spacing:.1em; color:#fff;}
.hero__count span{color:var(--mist);}
.hero__btns{display:flex; align-items:center; gap:4px;}
.hero__btns button{
  width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  background:rgba(1,1,1,.5); border:0; color:#fff; cursor:pointer;
}
.hero__btns button:hover{background:var(--o);}
.hero__bar{display:block; margin-top:14px; height:2px; background:rgba(255,255,255,.3);}
.hero__bar span{display:block; height:2px; width:0; background:var(--o);}
.hero__dots{display:flex; gap:6px; margin-top:12px;}
.dot{width:100%; height:22px; padding:0; background:transparent; border:0; cursor:pointer; position:relative;}
.dot::after{content:""; position:absolute; left:0; right:0; top:10px; height:2px; background:rgba(255,255,255,.28);}
.dot--on::after{background:#fff;}

.hero__cap{
  position:absolute; left:var(--pad); bottom:0; width:720px; max-width:calc(100% - var(--pad) * 2);
  background:rgba(1,1,1,.9); padding:40px 44px;
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:32px;
}
.hero__kicker{color:var(--o); margin-bottom:14px;}
.hero__cap h1{margin:0 0 12px; font-size:40px; line-height:1.12; color:#fff;}
.hero__cap p{margin:0; font-size:17px; line-height:1.6; color:var(--mist);}
.hero__go{
  width:64px; height:64px; flex:0 0 auto; background:var(--o); color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.hero__go:hover{background:var(--o-deep);}

.intro{
  display:grid; grid-template-columns:repeat(12,1fr); gap:24px; align-items:center;
  padding:96px var(--pad);
}
.intro__t{grid-column:1 / span 5;}
.intro__h{font-size:clamp(34px,3.4vw,48px); line-height:1.1; margin-bottom:20px;}
.intro__lead{margin-bottom:24px; font-size:22px; font-weight:500; letter-spacing:-.02em; line-height:1.3; color:var(--ink);}
.intro__t p{margin-bottom:18px; font-size:17px; line-height:1.65; color:var(--slate);}
.intro__t p:last-of-type{margin-bottom:32px;}
.kbd{font-weight:500; font-size:.95em; color:var(--ink);}
.intro__i{grid-column:7 / span 6; position:relative; min-height:480px;}
.intro__band{position:absolute; top:0; bottom:0; left:88px; right:calc(var(--pad) * -1); background:var(--paper);}
.intro__i .slot{position:absolute; top:48px; bottom:48px; left:0; right:128px; min-width:320px; aspect-ratio:auto;}

.lists{
  display:grid; grid-template-columns:repeat(12,1fr); gap:24px;
  border-top:1px solid var(--mist); margin:0 var(--pad); padding:72px 0 128px;
}
.lists__col:first-child{grid-column:1 / span 5;}
.lists__col:last-child{grid-column:7 / span 6;}
.lists__col h2{margin-bottom:8px;}
.lists__s{margin-bottom:28px; font-size:15px; line-height:1.65; color:var(--slate);}
.hrow{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:16px;
  padding:14px 12px; margin:0 -12px; border-bottom:1px solid var(--mist); color:var(--ink);
}
.hrow:hover{background:var(--paper);}
.hrow svg{color:var(--slate); transition:transform .16s ease;}
.hrow:hover svg{transform:translateX(4px); color:var(--o);}
.hrow__n{display:block; font-size:17px; font-weight:500;}
.hrow__m{
  display:block; margin-top:5px; font-weight:500; font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--slate);
}
.hrow__m--code{text-transform:none;}

.quality{display:grid; grid-template-columns:repeat(12,1fr); gap:24px; padding:0 var(--pad);}
.quality__t{grid-column:1 / span 5; min-width:0; padding:88px 0;}
.quality__i{grid-column:7 / span 6; min-width:0; min-height:500px; aspect-ratio:auto; border:0;}
.link--ink{color:var(--ink); border-bottom-color:var(--ink);}

.news{padding:128px calc(var(--pad) * 1.5);}
.news__h{display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:40px;}
.news__ctl{display:flex; align-items:center; gap:20px;}
.news__ctl > .mono{font-weight:500; font-size:14px; letter-spacing:.1em; color:var(--ink);}
.news__btns{display:flex; align-items:center; gap:4px;}
.news__btns button{
  width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  background:var(--white); border:1px solid var(--mist); color:var(--ink); cursor:pointer;
}
.news__btns button:hover{border-color:var(--ink);}
.news__btns button[disabled]{opacity:.4; cursor:default;}
.news__vp{overflow:hidden;}
.news__track{display:flex; gap:24px; transition:transform .5s cubic-bezier(.4,0,.2,1);}
.ncard{
  width:392px; flex:0 0 auto; border:1px solid var(--mist); background:var(--white);
  display:flex; flex-direction:column;
}
.slot--news{height:220px; flex:0 0 auto; aspect-ratio:auto; border:0; border-bottom:1px dashed var(--mist);}
.ncard__b{padding:24px; display:flex; flex-direction:column; flex:1 1 auto;}
.ncard__tags{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px;}
.ntag{
  font-weight:500; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--slate); background:var(--paper); padding:5px 10px;
}
.ncard__d{font-weight:500; font-size:12px; letter-spacing:.06em; color:var(--slate); margin-bottom:10px;}
.ncard h3{margin-bottom:12px; font-size:20px; letter-spacing:-.02em; line-height:1.25;}
.ncard p{margin-bottom:24px; font-size:15px; line-height:1.6; color:var(--slate); flex:1 1 auto;}
.ncard__a{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--o-deep);
}
.ncard__a svg{color:var(--o); transition:transform .16s ease;}
.ncard:hover .ncard__a svg{transform:translateX(4px);}

.support{
  display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center;
  padding:56px var(--pad);
}
.support__h{font-size:22px; margin-bottom:6px;}

/* ---- Products landing -------------------------------------- */
.head-band--plp{grid-template-columns:1fr 420px;}
.plpstats{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; padding-top:12px;}
.plpstat b{display:block; font-weight:500; font-size:40px; line-height:1; color:var(--ink);}
.plpstat span{display:block; margin-top:10px; font-size:14px; line-height:1.4; color:var(--slate);}

.pcat{display:flex; flex-direction:column; overflow:hidden;}
.pcat__i{border:0; border-bottom:1px dashed var(--mist); border-radius:0;}
.pcat__b{padding:28px; display:flex; flex-direction:column; flex:1 1 auto;}
.pcat__b h3{margin-bottom:10px; font-size:22px; letter-spacing:-.02em; line-height:1.25;}
.pcat__t{
  font-weight:500; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--slate); margin-bottom:16px;
}
.pcat__p{font-size:15px; line-height:1.6; color:var(--slate); flex:1 1 auto; margin-bottom:24px;}
.pcat__r{height:1px; background:var(--mist); margin-bottom:20px;}
.pcat__f{display:flex; align-items:baseline; justify-content:space-between; gap:16px;}
.pcat__f b{font-weight:500; font-size:18px; color:var(--ink);}
.pcat__f span span{font-size:15px; color:var(--slate); margin-left:8px;}
.pcat__a{color:var(--o); display:flex; transition:transform .18s ease;}
.pcat:hover .pcat__a{transform:translateX(4px);}

.powernail{display:grid; grid-template-columns:46fr 54fr; gap:72px; align-items:center;}
.list--plp{}
.row--plp{grid-template-columns:28px 1fr 240px 160px; min-height:74px;}
.row--plp .row__name{font-family:var(--sans); font-size:17px; font-weight:500; color:var(--ink);}

/* 404 */
.nf{display:flex; gap:12px; max-width:620px;}
.nf .input{flex:1 1 auto;}

/* ---- 1024 -------------------------------------------------- */
@media (max-width:1199px){
  .hero__img{height:480px;}
  .hero__cap{width:auto; right:var(--pad); padding:32px 32px;}
  .hero__cap h1{font-size:32px;}
  .hero__ctl{bottom:auto; top:32px;}
  .intro{grid-template-columns:1fr; gap:48px; padding:72px var(--pad);}
  .intro__t,.intro__i{grid-column:1/-1;}
  .intro__i{min-height:0; aspect-ratio:4/3;}
  .intro__band{display:none;}
  .intro__i .slot{position:static; inset:auto; right:auto; width:100%; height:100%;}
  .lists{grid-template-columns:1fr; gap:56px; padding:56px 0 88px;}
  .lists__col:first-child,.lists__col:last-child{grid-column:1/-1;}
  .quality{grid-template-columns:1fr; gap:0;}
  .quality__t{grid-column:1/-1; padding:72px 0 40px;}
  .quality__i{grid-column:1/-1; min-height:0; aspect-ratio:3/2; margin-bottom:72px;}
  .news{padding:88px var(--pad);}
  .support{grid-template-columns:1fr; gap:24px;}
  .support .btn{justify-self:start;}
  .head-band--plp{grid-template-columns:1fr;}
  .plpstats{max-width:520px;}
  .powernail{grid-template-columns:1fr; gap:36px;}
  .row--plp{grid-template-columns:28px 1fr 180px 120px;}
}

/* ---- 375 --------------------------------------------------- */
@media (max-width:699px){
  .hero{padding-bottom:0;}
  .hero__img{height:auto; aspect-ratio:4/5;}
  .hero__img .slot{padding-top:24%;}
  .hero__ctl{top:20px; right:var(--pad); left:var(--pad); width:auto;}
  .hero__cap{
    position:static; width:auto; max-width:none; background:var(--ink);
    padding:28px var(--pad) 32px; grid-template-columns:1fr; gap:24px;
  }
  .hero__cap h1{font-size:28px;}
  .hero__go{width:100%; height:52px;}
  .intro{padding:56px var(--pad);}
  .intro__lead{font-size:19px;}
  .lists{margin:0 var(--pad); padding:48px 0 64px; gap:44px;}
  .quality__t{padding:56px 0 32px;}
  .quality__i{margin-bottom:56px;}
  .news{padding:56px var(--pad);}
  .news__h{flex-direction:column; align-items:flex-start; gap:20px;}
  .ncard{width:calc(100vw - var(--pad) * 2 - 2px);}
  .support{padding:40px var(--pad);}
  .support .btn{width:100%;}
  .plpstats{grid-template-columns:repeat(3,1fr); gap:16px;}
  .plpstat b{font-size:28px;}
  .row--plp{grid-template-columns:1fr !important;}
  .nf{flex-direction:column;}
}

/* ============================================================
   iPHONE
   The design system asks for 375 first and a 44px minimum tap
   target. These rules cover the iOS specifics on top of that:
   the notch, the dynamic viewport, and Safari's habit of zooming
   into any input set below 16px.
   ============================================================ */

@supports (padding: max(0px)) {
  :root{
    --safe-l:env(safe-area-inset-left, 0px);
    --safe-r:env(safe-area-inset-right, 0px);
    --safe-b:env(safe-area-inset-bottom, 0px);
  }
  /* Sections that are padded by --pad take the larger of that and the
     inset. The logo field is padded asymmetrically and the hero pieces
     are positioned rather than padded, so both are handled separately. */
  .band, .intro, .news, .support, .quality,
  .drawer, .ftr, .filterbar, .panel, .mapband__b{
    padding-left:max(var(--pad), var(--safe-l));
    padding-right:max(var(--pad), var(--safe-r));
  }
  .hdr__logo{padding-left:max(var(--pad), var(--safe-l));}
  .lists{margin-left:max(var(--pad), var(--safe-l)); margin-right:max(var(--pad), var(--safe-r));}
  .hero__cap{left:max(var(--pad), var(--safe-l));}
  .hero__ctl{right:max(var(--pad), var(--safe-r));}
  .ftr{padding-bottom:var(--safe-b);}
}

@media (max-width:699px){
  /* Safari zooms the page in when a focused field is under 16px.
     Every control is held at 16px on touch. */
  .input, .select, .textarea{font-size:16px;}

  /* 44px minimum on everything tappable */
  .tile{min-width:52px;}
  .row__dl, .link, .ncard__a, .upd__a, .anchor, .hrow, .cat, .tpl{min-height:44px;}
  .chip{min-height:44px;}
  .dot{height:32px;}
  .hero__btns button, .news__btns button{width:48px; height:48px;}
  .crumb{gap:6px 10px;}
  .crumb a{padding:4px 0;}

  /* iOS momentum scrolling and no rubber-band snap inside the carousel */
  .news__vp{overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory;}
  .news__track{transform:none !important; transition:none;}
  .ncard{scroll-snap-align:start;}
  .news__ctl{display:none;}

  /* the drawer fills the dynamic viewport rather than the static one,
     so it does not sit under Safari's collapsing toolbar */
  .drawer{height:calc(100dvh - var(--hdr)); padding-bottom:calc(48px + var(--safe-b));}
  .hero__img{max-height:78dvh;}
}

/* Landscape on a phone: the hero would otherwise fill the screen
   and push the caption off the bottom. */
@media (max-width:932px) and (orientation:landscape) and (pointer:coarse){
  .hero__img{aspect-ratio:auto; height:62dvh;}
  .hero__cap{position:static; width:auto; max-width:none;}
}

/* iOS renders a sticky header over a rubber-banded page. Keeping the
   header opaque and above the scrim avoids the translucent flash. */
@media (pointer:coarse){
  .hdr{background:var(--ink);}
  .nav__item:hover .panel{opacity:0; visibility:hidden;}
  .nav__item[data-open] .panel{opacity:1; visibility:visible; transform:none;}
  a.card:hover, .cat:hover, .hrow:hover, .row:hover{background:inherit; transform:none; box-shadow:none;}
}

@media (max-width:699px){
  /* Everything a thumb can reach gets 44px, including the links that are
     small by nature: breadcrumbs, footer columns and inline addresses. */
  .crumb a, .crumb b{display:inline-flex; align-items:center; min-height:44px;}
  .crumb{margin-bottom:16px;}
  .ftr__col ul{gap:0;}
  .ftr__col a{display:flex; align-items:center; min-height:44px;}
  .ftr__bot a{display:inline-flex; align-items:center; min-height:44px;}
  .ftr__lang{gap:8px;}
  .ftr__lang a{padding:0 10px;}
  .ftr__mid a, .office__c a{display:inline-flex; align-items:center; min-height:44px;}
  .dot{height:44px;}
  .dot::after{top:21px;}
  .hero__dots{margin-top:4px;}
}

}

/* ============================================================
   LANGUAGE MENU
   ============================================================ */
.langwrap{position:relative; display:flex; align-items:stretch;}
.tile--lang{height:100%;}
.langmenu{
  position:absolute; top:100%; right:0; z-index:45; min-width:132px;
  background:var(--white); border:1px solid var(--mist); border-top:0;
  box-shadow:var(--lift); padding:4px 0;
}
.langmenu[hidden]{display:none;}
.langmenu a{
  display:flex; align-items:center; gap:10px; min-height:48px; padding:0 18px;
  font-size:15px; font-weight:500; color:var(--ink);
}
.langmenu a:hover{background:var(--paper);}
.langmenu a[aria-current]{box-shadow:inset 3px 0 0 var(--o);}
.langmenu .cjk{font-family:'Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',var(--sans);}
.tile--lang[aria-expanded="true"] svg{transform:rotate(180deg);}
.tile--lang svg{transition:transform .16s ease;}

/* ============================================================
   INTRO
   Plays once per session, on white, then lifts away.
   ============================================================ */
html[data-splash]{overflow:hidden;}
.splash{
  position:fixed; inset:0; z-index:200; background:var(--white);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .5s ease, visibility .5s;
}
.splash[data-done]{opacity:0; visibility:hidden;}
.splash__v{
  width:min(62vw, 640px); height:auto; max-height:60vh; object-fit:contain;
}
/* ============================================================
   MOBILE HEADER AND MAP
   ============================================================ */
@media (max-width:699px){
  /* With the nav hidden there is nothing pushing the tiles across,
     so they sit against the logo. Push them to the right edge. */
  .tiles{margin-left:auto;}
  .hdr__logo{padding-right:12px;}
  .hdr__logo img{width:116px;}
  .tile--lang{width:76px;}
  .tile--search,.tile--menu{width:60px;}
  .langmenu{min-width:120px;}
  .splash__v{width:80vw; max-height:52vh;}

  /* The artwork's baked labels fall below legibility at 393px, so the
     band scrolls at 1.9x. It opens on Europe through Asia, where all
     three sites are, rather than on the empty Pacific. */
  .mapband__f{width:190%;}
  .hot{width:66px; height:66px;}
  .hot__ring{width:30px; height:30px; margin:-15px 0 0 -15px;}
  .mapband__b{padding-bottom:24px;}
  .mapband__jump{width:100%;}
  .mjump{flex:1 1 auto;}
}

/* ============================================================
   INDUSTRY PAGE
   ============================================================ */
.apps{border-top:1px solid var(--mist);}
.app{
  display:grid; grid-template-columns:60px 1fr auto; gap:24px; align-items:center;
  min-height:76px; padding:14px 12px; margin:0 -12px; border-bottom:1px solid var(--mist);
}
.app:hover{background:var(--paper);}
.app__n{font-weight:500; font-size:13px; letter-spacing:.1em; color:var(--o);}
.app__t{font-size:19px; font-weight:500; letter-spacing:-.01em;}
.app__a{
  display:inline-flex; align-items:center; gap:10px; white-space:nowrap;
  font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--o-deep);
}
.app__a svg{color:var(--o); transition:transform .16s ease;}
.app:hover .app__a svg{transform:translateX(4px);}
.othergrid{display:grid; grid-template-columns:repeat(2,1fr); gap:0 48px; border-top:1px solid var(--mist);}

@media (max-width:1199px){
  .othergrid{grid-template-columns:1fr;}
}
@media (max-width:699px){
  .app{grid-template-columns:44px 1fr; gap:4px 16px; padding:16px 0; margin:0;}
  .app__t{grid-column:2;}
  .app__a{grid-column:2; min-height:44px;}
  .app__n{grid-row:1;}
}

/* ---- industry applications carry their product families -------- */
.app{grid-template-columns:60px minmax(0,1fr) minmax(0,1.25fr);}
.app__f{display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end;}
.fam{
  display:inline-flex; align-items:center; height:30px; padding:0 11px;
  border:1px solid var(--mist); border-radius:2px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; color:var(--slate);
}
.fam:hover{border-color:var(--ink); color:var(--ink);}
.app__p{font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--slate); text-align:right;}
.appnote{
  margin-bottom:20px; padding:14px 16px; background:var(--white);
  border:1px solid var(--mist); border-left:3px solid var(--o); border-radius:2px;
  font-size:14px; line-height:1.6; color:var(--slate);
}
.list--prod .row__app{font-size:12.5px; color:var(--slate);}
.acc + .acc{border-top:0;}

@media (max-width:1199px){
  .app{grid-template-columns:52px minmax(0,1fr) minmax(0,1fr);}
}
@media (max-width:699px){
  .app{grid-template-columns:44px 1fr;}
  .app__f{grid-column:2; justify-content:flex-start; margin-top:4px;}
  .app__p{grid-column:2; text-align:left; margin-top:4px;}
}

@media (max-width:699px){
  /* family chips are a tap target like any other link */
  .fam{min-height:44px; padding:0 14px;}
  .app__f{gap:8px;}
}

/* a slot with a real photograph in it hides its label and hatching */
.slot--filled::before,.slot--filled::after,.slot--filled .ratio{display:none;}
.slot--filled{background-color:var(--ink);}

/* ---- milestones ------------------------------------------- */
.mstones{border-top:1px solid var(--mist);}
.mstone{
  display:grid; grid-template-columns:110px 1fr; gap:32px; align-items:start;
  padding:22px 0; border-bottom:1px solid var(--mist);
}
.mstone__y{font-weight:500; font-size:22px; letter-spacing:.02em; color:var(--o);}
.mstone__l{display:flex; flex-direction:column; gap:7px;}
.mstone__l li{font-size:16px; line-height:1.55; color:var(--ink);}
@media (max-width:699px){
  .mstone{grid-template-columns:1fr; gap:8px; padding:18px 0;}
  .mstone__y{font-size:19px;}
  .mstone__l li{font-size:15px;}
}

/* ---- About: core industries ------------------------------- */
.core{display:grid; grid-template-columns:44% 1fr; gap:56px; align-items:center; margin-bottom:56px;}
.core--flip .core__i{order:2;}
.core:last-child{margin-bottom:0;}
.core__i{border:0;}
.core h3{font-size:22px; letter-spacing:-.02em; line-height:1.25;}
.core__sub{margin-top:20px; font-family:var(--mono); font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--slate);}
.core__l{display:flex; flex-direction:column; gap:9px; margin-top:12px;}
.core__l li{position:relative; padding-left:18px; font-size:16px; line-height:1.55; color:var(--slate);}
.core__l li::before{content:""; position:absolute; left:0; top:9px; width:6px; height:6px; background:var(--o);}
.core__c{margin-top:20px; font-size:16px; font-weight:500; color:var(--ink);}
.core .link{margin-top:20px;}
@media (max-width:1199px){
  .core{grid-template-columns:1fr; gap:28px;}
  .core--flip .core__i{order:0;}
}

/* ---- v8: mega panels list applications as direct links ---- */
.panel__cell{padding:14px 0 16px; border-bottom:1px solid var(--mist);}
.panel__cell .panel__link{padding:0; border-bottom:0;}
.panel__apps{display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:8px;}
.panel__apps a{font-size:13.5px; line-height:1.5; color:var(--slate);}
.panel__apps a:hover{color:var(--o-deep); text-decoration:underline; text-underline-offset:3px;}
.panel{max-height:calc(100vh - var(--hdr)); overflow-y:auto;}

/* ---- v8: application accordions shared by products and industries ---- */
.acc{scroll-margin-top:calc(var(--hdr) + 16px);}
.acc__name{display:flex; flex-direction:column; gap:4px;}
.acc__chem{font-size:12px; font-weight:400; letter-spacing:.06em; color:var(--slate);}
.prow[hidden]{display:none;}
.acc__cta{display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; margin-top:24px;
  padding:16px 20px; background:var(--paper); font-size:14.5px; color:var(--slate);}
.expand__cat{margin-top:4px; font-size:14px;}

/* ---- v8: category photo groups ---- */
.gal{position:relative;}
.gal--row{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.gal--show{aspect-ratio:16/9; overflow:hidden; background:var(--ink);}
.gal--show .gal__s{position:absolute; inset:0; aspect-ratio:auto; opacity:0; transition:opacity .6s ease;}
.gal--show .gal__s--on{opacity:1;}
.gal__dots{position:absolute; left:50%; bottom:16px; transform:translateX(-50%); display:flex; gap:8px; z-index:2;}
.gal__dot{width:28px; height:4px; border:0; padding:0; background:rgba(255,255,255,.45); cursor:pointer;}
.gal__dot--on{background:var(--o);}
@media (max-width:699px){
  .gal--row{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:82%;
    overflow-x:auto; scroll-snap-type:x mandatory; gap:12px;}
  .gal--row .gal__s{scroll-snap-align:start;}
  .gal--show{aspect-ratio:4/3;}
}

/* ---- v8: map dots for sites not drawn into the artwork ---- */
.hot--dot::before{content:""; position:absolute; left:50%; top:50%; width:12px; height:12px; margin:-6px 0 0 -6px;
  border-radius:50%; background:var(--o); box-shadow:0 0 0 4px rgba(231,86,37,.28);}
.hot--partner::before{width:9px; height:9px; margin:-4.5px 0 0 -4.5px; background:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.22);}
.office__area{font-size:12px; letter-spacing:.06em; color:var(--o-deep); margin:6px 0 10px;}
.regions{display:grid; grid-template-columns:repeat(5,1fr); gap:24px;}
.region h3{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-bottom:10px;}
.region ul{list-style:none; padding:0; margin:0; font-size:15px; line-height:1.7;}
.region__soon{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--o-deep); margin-top:8px;}
@media (max-width:899px){ .regions{grid-template-columns:repeat(2,1fr);} }

/* ---- v8: home code overview and network ---- */
.ctable{border-top:1px solid var(--ink);}
.crow{display:grid; grid-template-columns:120px 90px 1fr 1.4fr; gap:16px; align-items:baseline;
  padding:11px 8px; border-bottom:1px solid var(--mist); font-size:15px;}
a.crow:hover{background:var(--paper);}
a.crow:hover .crow__u{color:var(--o-deep);}
.crow--head{font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate);}
.crow__f{font-weight:500;}
.crow__c{color:var(--o-deep);}
.crow__b{color:var(--slate);}
@media (max-width:699px){
  .crow{grid-template-columns:84px 64px 1fr; font-size:14px; gap:10px;}
  .crow__u{grid-column:1/-1; padding-left:0; margin-top:-4px; color:var(--slate); font-size:13.5px;}
  .crow--head span:last-child{display:none;}
}
.homenet__g{display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:32px;}
.homenet__h{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-bottom:8px; font-weight:500;}
.homenet__l{list-style:none; padding:0; margin:0; border-top:1px solid var(--mist);}
.homenet__l li{display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--mist); font-size:15px;}
.homenet__l li b{font-weight:500;}
.homenet__l li span{font-size:12.5px; color:var(--slate); text-align:right;}
@media (max-width:699px){ .homenet__g{grid-template-columns:1fr; gap:28px;} .homenet__l li{flex-direction:column; gap:2px;} .homenet__l li span{text-align:left;} }

/* ---- v9: map labels drawn in HTML so every site sits at its true position ---- */
.hot--dot::before{width:11px; height:11px; margin:-5.5px 0 0 -5.5px; box-shadow:0 0 0 5px rgba(231,86,37,.22), 0 0 0 11px rgba(231,86,37,.10);}
.hot--partner::before{width:8px; height:8px; margin:-4px 0 0 -4px; box-shadow:0 0 0 3px rgba(255,255,255,.18);}
.hot__lab{position:absolute; top:50%; transform:translateY(-50%); white-space:nowrap; text-align:left;
  font-family:var(--sans); font-size:13px; line-height:1.35; color:#fff; pointer-events:none;}
.hot__lab b{display:block; color:var(--o); font-weight:600; font-size:14px;}
.hot__lab--r{left:calc(50% + 14px);}
.hot__lab--l{right:calc(50% + 14px); text-align:right;}
@media (max-width:899px){ .hot__lab{font-size:11px;} .hot__lab b{font-size:12px;} }

/* ---- v10: product rows open their real data sheet ---- */
.expand__in--tds{display:grid; grid-template-columns:1fr auto; gap:24px 40px; align-items:center;}
.expand__tds{display:flex; gap:16px; align-items:flex-start; font-size:15px; line-height:1.5;}
.expand__tds b{font-weight:600;}
.expand__tds .row__ic{color:var(--o); margin-top:2px;}
.expand__in--tds .expand__act{min-width:260px;}
@media (max-width:699px){ .expand__in--tds{grid-template-columns:1fr;} .expand__in--tds .expand__act{min-width:0;} }

/* ---- v10: corporate video and the new homepage intro ---- */
.video{padding-top:96px; padding-bottom:0;}
.video__frame{position:relative; max-width:1120px; margin:0 auto; aspect-ratio:16/9; background:var(--ink); overflow:hidden;}
.video__v{display:block; width:100%; height:100%; object-fit:cover; background:var(--ink);}
.intro__sub{font-size:17px; font-weight:600; margin:28px 0 4px; letter-spacing:-.005em;}
@media (max-width:699px){ .video{padding-top:56px;} }

/* ---- v10: About page rebuilt from Dieter's copy ---- */
.cols2{columns:2; column-gap:56px; max-width:1120px;}
.cols2 p{break-inside:avoid; margin:0 0 18px; font-size:16.5px; line-height:1.65; color:var(--slate);}
.abouttext{padding-top:72px; padding-bottom:56px;}
.split{display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:64px; align-items:start;}
.adv{background:var(--lilac); padding:32px 32px 28px;}
.adv h3{font-size:18px; font-weight:600; margin-bottom:14px;}
.adv ul{list-style:none; padding:0; margin:0;}
.adv li{position:relative; padding:10px 0 10px 22px; border-top:1px solid rgba(1,1,1,.08); font-size:15px; line-height:1.5;}
.adv li::before{content:""; position:absolute; left:0; top:18px; width:8px; height:8px; background:var(--o);}
.photo3{display:grid; grid-template-columns:2fr 1fr 1fr; gap:16px; margin-top:40px; align-items:end;}
.photo3 figure{margin:0;}
.photo3 figcaption{font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); margin-top:10px;}
.photo3__tall{aspect-ratio:3/4;}
.subhead{font-size:19px; font-weight:600; margin:40px 0 20px;}
.stds{gap:24px;}
.std{border-top:2px solid var(--o); padding-top:18px;}
.std__n{font-size:12px; color:var(--o-deep); letter-spacing:.1em;}
.std h3{font-size:17px; font-weight:600; margin:8px 0 10px;}
.std p{font-size:15px; line-height:1.6; color:var(--slate);}
.gnet{display:grid; grid-template-columns:1fr 1.4fr; gap:48px; margin-top:40px;}
.gnet__h{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-bottom:6px; font-weight:500;}
.gnet__l{list-style:none; padding:0; margin:0; border-top:1px solid var(--mist); columns:1;}
.gnet > div:last-child .gnet__l{columns:2; column-gap:32px;}
.gaddr{display:flex; flex-direction:column; gap:3px; padding:14px 0; border-bottom:1px solid var(--mist); font-size:14px; line-height:1.5; break-inside:avoid;}
.gaddr b{font-weight:600; font-size:15px;}
.gaddr__p{font-size:11.5px; letter-spacing:.06em; color:var(--o-deep); text-transform:uppercase;}
.gaddr .mono{font-size:12.5px;}
@media (max-width:899px){
  .cols2{columns:1;} .split{grid-template-columns:1fr; gap:36px;}
  .photo3{grid-template-columns:1fr 1fr;} .photo3 figure:first-child{grid-column:1/-1;}
  .gnet{grid-template-columns:1fr;} .gnet > div:last-child .gnet__l{columns:1;}
}

/* ---- v11: one-layer product tables, data sheet opens straight from the row ---- */
.list--prod .list__head,.list--prod .row--prod{grid-template-columns:180px 170px minmax(0,1fr) auto !important;}
.row--prod{cursor:default;}
.row--prod:hover{background:var(--paper);}
.btn--tds{min-height:40px; padding:0 16px; font-size:11.5px; gap:14px; white-space:nowrap; justify-self:end;}
.prow--open .row--prod{border-left:3px solid var(--o); background:var(--paper);}
@media (max-width:899px){ .list--prod .list__head,.list--prod .row--prod{grid-template-columns:140px 110px minmax(0,1fr) auto !important;} }
@media (max-width:699px){
  .list--prod .list__head{display:none;}
  .list--prod .row--prod{grid-template-columns:1fr auto !important; gap:4px 12px; padding:14px 0;}
  .row--prod .row__code{grid-column:1; grid-row:1;}
  .row--prod .row__type{grid-column:1; grid-row:2;}
  .row--prod .row__app{grid-column:1 / -1; grid-row:3; white-space:normal; word-break:break-all;}
  .row--prod .btn--tds{grid-column:2; grid-row:1 / span 2; align-self:center;}
}
.btn.btn--tds{min-height:38px; height:38px; padding:0 14px;}
.list--prod .row--prod{padding-top:8px; padding-bottom:8px;}

/* ---- v13: Website 9 table structure: code / basis / [temperature] / [durability] / button ---- */
.list--c0 .list__head,.list--c0 .row--prod{grid-template-columns:200px minmax(0,1fr) auto !important;}
.list--c1 .list__head,.list--c1 .row--prod{grid-template-columns:200px 200px minmax(0,1fr) auto !important;}
.list--c2 .list__head,.list--c2 .row--prod{grid-template-columns:200px 180px 220px minmax(0,1fr) auto !important;}
.row__val{font-size:14px; color:var(--ink);}
@media (max-width:899px){
  .list--c0 .list__head,.list--c0 .row--prod{grid-template-columns:150px minmax(0,1fr) auto !important;}
  .list--c1 .list__head,.list--c1 .row--prod{grid-template-columns:150px 120px minmax(0,1fr) auto !important;}
  .list--c2 .list__head,.list--c2 .row--prod{grid-template-columns:140px 100px 130px minmax(0,1fr) auto !important;}
}
@media (max-width:699px){
  .list--prod .row--prod{grid-template-columns:1fr auto !important;}
  .row--prod .row__val{grid-column:1; font-size:13px; color:var(--slate);}
  .row--prod .row__val::before{content:attr(data-label) ": ";}
  .row--prod .btn--tds{grid-row:1 / span 2;}
}
@media (max-width:699px){ .row--prod .row__val--none{display:none;} .row--prod .row__val{white-space:nowrap;} }
@media (max-width:699px){ .row--prod .row__val{grid-column:1 / -1; white-space:normal;} }

/* ---- v14: enquiry form on its own, "What to include" panel removed (Website 9, Contact) ---- */
.enq--single{grid-template-columns:minmax(0,880px); gap:0;}
.field .err{display:none;}
.field--error .err{display:flex;}

/* ---- v15: data sheet list without the internal file name column ---- */
.list--tds .list__head,.list--tds .row{grid-template-columns:28px 200px 1fr 54px 140px 132px !important;}
@media (max-width:899px){
  .list--tds .list__head,.list--tds .row{grid-template-columns:28px 150px 1fr 54px 120px 100px !important;}
  .list--tds .row__cat{display:flex;}
  .list--tds .list__head span:nth-child(4){display:block;}
}
@media (max-width:699px){ .list--tds .row{grid-template-columns:1fr !important;} .list--tds .list__head{display:none;} }

/* ---- v15: the three application centre photos at one size ---- */
.photo3{grid-template-columns:repeat(3,1fr); align-items:start;}
.photo3 .slot{aspect-ratio:4/3 !important;}
@media (max-width:899px){ .photo3{grid-template-columns:1fr 1fr;} .photo3 figure:first-child{grid-column:auto;} }
@media (max-width:699px){ .photo3{grid-template-columns:1fr;} }

/* ---- v16 · News page and articles --------------------------------- */
.nwl{padding:64px var(--pad) 112px; max-width:1440px; margin:0 auto;}
.nwf{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; color:inherit; text-decoration:none;}
.nwf__img, .nwc__img, .nwa__img{display:block; overflow:hidden; border-radius:10px; background:var(--paper);}
.nwf__img{aspect-ratio:3/2;}
.nwf__img img, .nwc__img img, .nwa__img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.nwf:hover .nwf__img img, .nwc:hover .nwc__img img{transform:scale(1.03);}
.nwf__img--brand, .nwc__img--brand, .nwa__img--brand{background:var(--ink); display:flex; align-items:center; justify-content:center;}
.nwf__img--brand img, .nwc__img--brand img, .nwa__img--brand img{width:38%; height:auto; object-fit:contain;}
.nwf:hover .nwf__img--brand img, .nwc:hover .nwc__img--brand img{transform:none;}
.nwsrc{display:flex; align-items:center; gap:8px; font-size:14px; color:var(--slate);}
.nwsrc__logo{width:20px; height:20px; border-radius:50%; flex:0 0 auto;}
.nwsrc span:nth-of-type(1){color:var(--ink); font-weight:500;}
.nwsrc__dot{color:var(--slate);}
.nwf__t{margin:18px 0 18px; font-size:clamp(28px,3vw,40px); line-height:1.15; letter-spacing:-.025em; font-weight:600;}
.nwf__x{font-size:16px; line-height:1.65; color:var(--slate); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.nwfoot{display:flex; align-items:center; gap:8px; margin-top:18px; font-size:14px; color:var(--slate);}
.nwfoot__cat{color:var(--o-deep); font-weight:500;}
.nwf:hover .nwf__t, .nwc:hover .nwc__t{color:var(--o-deep);}
.nwl__h{display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin:88px 0 28px;}
.nwl__h h2{font-size:clamp(24px,2.4vw,32px); letter-spacing:-.02em; font-weight:600;}
.nwl__all{display:inline-flex; align-items:center; gap:8px; color:var(--o-deep); font-weight:500; font-size:15px; text-decoration:none;}
.nwl__all svg{color:var(--o); transition:transform .16s ease;}
.nwl__all:hover svg{transform:translateX(4px);}
.nwl__grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px;}
.nwc{display:flex; flex-direction:column; color:inherit; text-decoration:none; min-width:0;}
.nwc__img{aspect-ratio:1/1; margin-bottom:16px;}
.nwc .nwsrc{font-size:12.5px;}
.nwc .nwsrc__logo{width:16px; height:16px;}
.nwc__t{margin:10px 0 10px; font-size:19px; line-height:1.3; letter-spacing:-.015em; font-weight:600;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.nwc__x{font-size:13.5px; line-height:1.55; color:var(--slate); flex:1 1 auto;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.nwc .nwfoot{margin-top:14px; font-size:12.5px;}
.nwa{max-width:820px; margin:0 auto; padding:56px var(--pad) 24px;}
.nwa__back{display:inline-flex; align-items:center; gap:8px; margin-bottom:32px; font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--o-deep); text-decoration:none;}
.nwa__back svg{transform:rotate(180deg); color:var(--o);}
.nwa__t{margin:16px 0 0; font-size:clamp(30px,4vw,46px); line-height:1.12; letter-spacing:-.025em;}
.nwa__img{aspect-ratio:16/9; margin:32px 0 36px;}
.nwa__body p{font-size:18px; line-height:1.75; color:var(--ink); margin-bottom:20px;}
.nwa .link{margin-top:12px;}
.nwl--more{padding-top:0;}
.nwl--more .nwl__h{margin-top:72px;}
@media (max-width:1024px){
  .nwl__grid{grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:40px;}
  .nwf{gap:32px;}
}
@media (max-width:767px){
  .nwl{padding:32px var(--pad) 72px;}
  .nwf{grid-template-columns:1fr; gap:20px;}
  .nwl__h{margin:56px 0 20px;}
  .nwl__grid{grid-template-columns:1fr; row-gap:36px;}
  .nwc__img{aspect-ratio:16/10;}
  .nwa{padding-top:32px;}
  .nwa__body p{font-size:16.5px;}
  .nwl__all, .nwa__back{min-height:44px;}
}

/* ---- v17 · News articles with full stories ------------------------ */
.nwa{max-width:860px;}
.nwa__body{margin-top:32px;}
.nwa__body p{font-size:17.5px; line-height:1.75; margin-bottom:20px;}
.nwa__hl{color:var(--o-deep); font-weight:600; font-size:19px !important; line-height:1.5 !important;}
.nwa__fig{margin:32px 0;}
.nwa__fig img{width:100%; height:auto; display:block; border-radius:10px;}
.nwa__q{margin:32px 0; padding:4px 0 4px 24px; border-left:3px solid var(--o);}
.nwa__q p{font-size:19px !important; line-height:1.6 !important; color:var(--o-deep); margin-bottom:12px !important;}
.nwa__q cite{font-style:normal; font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate);}
.nwa__gal{display:grid; gap:12px; margin:32px 0;}
.nwa__gal--2, .nwa__gal--4{grid-template-columns:repeat(2,minmax(0,1fr));}
.nwa__gal--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.nwa__gal img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:8px;}
@media (max-width:767px){
  .nwa__gal--3, .nwa__gal--4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .nwa__body p{font-size:16.5px;}
}
.indcore{margin-top:24px; max-width:72ch;}
.indcore__h{font-size:20px; font-weight:600; letter-spacing:-.01em; color:var(--ink);}

/* ---- v19 · data sheet language, documents accordion, enquiry ------ */
.tdsl{display:inline-flex; align-items:stretch; gap:6px;}
.tdsl__lang{display:inline-flex; border:1px solid var(--mist); background:var(--white);}
.tdsl__l{display:inline-flex; align-items:center; padding:0 10px; font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.1em; color:var(--slate); text-decoration:none;}
.tdsl__l + .tdsl__l{border-left:1px solid var(--mist);}
.tdsl__l:hover{color:var(--o-deep); background:var(--paper);}
.tdsl__l--on{color:var(--ink);}
.docacc{display:block;}
.docacc > summary{list-style:none; cursor:pointer; display:block;}
.docacc > summary::-webkit-details-marker{display:none;}
.docacc__hint{display:inline-flex; align-items:center; gap:8px; margin-top:6px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--o-deep);}
.docacc__hint svg{transition:transform .2s ease;}
.docacc[open] .docacc__hint svg{transform:rotate(180deg);}
.docacc[open] .docacc__hint{font-size:0;}
.docacc[open] .docacc__hint::before{content:"Hide data sheets"; font-size:12px;}
.docacc .list{margin-top:24px;}
.docacc > summary .rule{display:block;}
.row--tdsdoc .row__lang a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--o);}
.row--tdsdoc .row__lang a:hover{color:var(--o-deep);}
.row--tdsdoc .row__dl{text-decoration:none;}
@media (min-width:700px){ .list--tds .list__head,.list--tds .row{grid-template-columns:28px 200px 1fr 84px 140px 132px !important;} }
@media (max-width:699px){ .row--tdsdoc .row__lang{display:block;} .row--tdsdoc .row__lang::before{content:"Language  "; color:var(--slate);} }
.form__sent{margin-top:16px; font-size:15px; color:var(--ink); background:var(--paper); padding:14px 18px; border-left:3px solid var(--o);}
@media (max-width:767px){ .tdsl{flex-wrap:wrap;} }

/* ---- v20 · search, documents details, language ------------------- */
.srch{position:fixed; inset:0; z-index:200; background:rgba(1,1,1,.55); display:flex; justify-content:center; align-items:flex-start; padding:calc(var(--hdr) + 24px) 16px 24px;}
.srch[hidden]{display:none;}
.srch__panel{width:min(760px,100%); background:var(--white); max-height:calc(100vh - var(--hdr) - 60px); display:flex; flex-direction:column;}
.srch__bar{display:flex; border-bottom:2px solid var(--ink);}
.srch__q{flex:1; min-width:0; border:0; padding:20px 22px; font:500 18px var(--sans); outline:none;}
.srch__x{width:64px; border:0; background:var(--ink); color:#fff; font-size:28px; cursor:pointer;}
.srch__list{list-style:none; margin:0; padding:0; overflow:auto;}
.srch__item{display:flex; align-items:center; border-bottom:1px solid var(--mist);}
.srch__a{flex:1; display:grid; grid-template-columns:110px 1fr; grid-template-rows:auto auto; column-gap:16px; padding:14px 22px; text-decoration:none; color:var(--ink);}
.srch__a:hover,.srch__a:focus{background:var(--paper); outline:none;}
.srch__k{grid-row:1 / span 2; align-self:center; font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--o-deep);}
.srch__t{font-weight:600; font-size:16px;}
.srch__s{font-size:13px; color:var(--slate);}
.srch__tds{margin-right:18px; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--o-deep); white-space:nowrap;}
.srch__empty{padding:20px 22px; color:var(--slate); font-size:15px;}
.srch-open{overflow:hidden;}
@media (max-width:599px){ .srch__a{grid-template-columns:1fr;} .srch__k{grid-row:auto;} .srch{padding-top:calc(var(--hdr) + 8px);} }
.docnote{margin:4px 0 20px; font-size:15px; color:var(--slate); display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
.docnote__all{border:1px solid var(--ink); background:var(--white); padding:8px 14px; font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;}
.docnote__all:hover{background:var(--paper);}
.row__more{display:inline-flex; align-items:center; gap:8px; border:0; background:none; padding:0; font:inherit; color:inherit; cursor:pointer; text-align:left;}
.row__more svg{color:var(--o); transition:transform .2s ease;}
.row__more[aria-expanded="true"] svg{transform:rotate(180deg);}
.row__more:hover{color:var(--o-deep);}
.docitem{border-bottom:1px solid var(--mist);}
.docitem .row{border-bottom:0;}
.docinfo{display:flex; flex-wrap:wrap; gap:12px 48px; padding:4px 24px 20px 64px; background:var(--white);}
.docinfo[hidden]{display:none;}
.docinfo span{display:flex; flex-direction:column; gap:4px; font-family:var(--mono); font-size:14px;}
.docinfo b{font-family:var(--mono); font-weight:500; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--slate);}
.langmenu__soon{display:block; padding:10px 16px; color:var(--slate); cursor:default;}
.langmenu__soon em{font-style:normal; font-size:10px; letter-spacing:.1em; text-transform:uppercase; margin-left:6px;}
.ftr__lang span{opacity:.45; cursor:default;}
@media (max-width:699px){ .docinfo{padding-left:16px;} }

/* v21: privacy policy, coming soon labels */
.pv{max-width:760px;}
.pv__s{margin-bottom:40px;}
.pv__s h2{font-size:22px; font-weight:600; letter-spacing:-.01em; margin-bottom:14px;}
.pv__s p{font-size:16.5px; line-height:1.75; color:var(--ink); margin-bottom:14px;}
.pv__s a{color:var(--o-deep, #B84117); text-decoration:underline; text-underline-offset:3px;}
.ftr__legal{color:inherit; text-decoration:underline; text-underline-offset:3px;}
.ftr__lang em, .langmenu__soon em, .drawer__lang em{font-style:normal; font-size:.78em; letter-spacing:.06em; text-transform:uppercase; opacity:.65; margin-left:4px;}
.drawer__lang{padding:20px 24px; font-size:14px; color:var(--slate);}
.drawer__lang span{margin:0 6px;}
.form__privacy{font-size:13px; color:var(--slate); margin-top:14px;}
.form__privacy a{color:inherit; text-decoration:underline;}
.ftr__lang > span{color:#9A9AA0 !important; opacity:1 !important;}
.ftr__lang em{opacity:1; color:#9A9AA0;}
.drawer__lang{display:flex; flex-direction:column; gap:8px;}
.drawer__lang b{font-weight:600; color:var(--ink);}
.drawer__lang span{margin:0;}
.ftr__lang > span .cjk{color:#9A9AA0 !important;}

/* v22: collapsible document groups */
.group__toggle{display:flex; align-items:center; gap:16px; width:100%; background:none; border:0; padding:0; margin:0 0 8px; text-align:left; cursor:pointer; font:inherit; color:inherit;}
.group__toggle h2{margin:0;}
.group__toggle .group__n{font-family:var(--mono); font-size:13px; color:var(--slate);}
.group__cta{margin-left:auto; display:inline-flex; align-items:center; gap:10px; font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--o-deep); border:1px solid var(--mist); padding:10px 14px; transition:background .15s;}
.group__cta em{font-style:normal;}
.group__cta svg{transition:transform .2s;}
.group__toggle:hover .group__cta{background:var(--paper);}
.group__toggle[aria-expanded="true"] .group__cta svg{transform:rotate(180deg);}
.group__toggle [data-hide]{display:none;}
.group__toggle[aria-expanded="true"] [data-hide]{display:inline;}
.group__toggle[aria-expanded="true"] [data-show]{display:none;}
.group__body{margin-top:24px;}
.group[data-group]{margin-bottom:48px;}
@media (max-width:699px){ .group__toggle{flex-wrap:wrap;} .group__cta{margin-left:0; width:100%; justify-content:space-between;} }
