/* =====================================================================
   HYGENOVA PRO
   Corporate light theme · navy blue + bronze · varied section tones
   ===================================================================== */

:root{
  --white:#FFFFFF;
  --tint:#F2F5F8;          /* cool light grey  */
  --tint2:#E8EFF6;         /* light blue       */
  --sand:#F8F5EF;          /* warm bronze tint */
  --ink:#16202B;
  --body:#4C5A69;
  --soft:#6E7C8A;
  --line:#DCE4EC;
  --line2:#C6D2DE;

  --brand:#14477E;
  --brand-d:#0E3560;
  --brand-x:#0A2848;
  --brand-l:#E7EEF7;
  --accent:#B5762A;
  --accent-l:#F3E7D5;

  --rail:1240px;
  --pad:36px;
  --r:5px;

  --fh:'Libre Franklin','Segoe UI',system-ui,sans-serif;
  --fb:'Source Sans 3','Segoe UI',system-ui,sans-serif;

  --sh1:0 4px 14px rgba(20,71,126,.06);
  --sh2:0 16px 40px rgba(20,71,126,.13);
}

*,*::before,*::after{ box-sizing:border-box; }

body{
  margin:0; background:var(--white); color:var(--body);
  font-family:var(--fb); font-size:16.5px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--brand); }
:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

.hg-rail{ max-width:var(--rail); margin:0 auto; padding:0 var(--pad); }
.hg-rail--narrow{ max-width:940px; }

h1,h2,h3,h4{ font-family:var(--fh); color:var(--ink); margin:0; letter-spacing:-.015em; }
h1{ font-size:clamp(30px,4vw,50px); line-height:1.08; font-weight:800; text-wrap:balance; }
h2{ font-size:clamp(26px,3vw,38px); line-height:1.14; font-weight:700; text-wrap:balance; }
h3{ font-size:19px; line-height:1.32; font-weight:700; }
h4{ font-size:16px; font-weight:700; }

.hg-eyebrow{
  display:block; font-family:var(--fh); font-size:12px; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--accent); margin-bottom:14px;
}
.hg-lead{ font-size:17px; line-height:1.72; margin:14px 0 0; max-width:64ch; }

.hg-i{ width:24px; height:24px; }

/* ---------------------------------------------------------------- buttons */
.hg-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--fh); font-size:14.5px; font-weight:600;
  padding:14px 26px; border-radius:var(--r); border:1.5px solid var(--brand);
  background:var(--brand); color:#fff; text-decoration:none; cursor:pointer;
  transition:background .22s,border-color .22s,color .22s;
}
.hg-btn:hover{ background:var(--brand-d); border-color:var(--brand-d); color:#fff; }
.hg-btn--ghost{ background:transparent; color:var(--brand); }
.hg-btn--ghost:hover{ background:var(--brand-l); color:var(--brand-d); border-color:var(--brand); }
.hg-btn--white{ background:#fff; color:var(--brand); border-color:#fff; }
.hg-btn--white:hover{ background:var(--tint2); border-color:var(--tint2); color:var(--brand-d); }
.hg-btn--clear{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.hg-btn--clear:hover{ background:rgba(255,255,255,.12); border-color:#fff; color:#fff; }
.hg-btn--bronze{ background:var(--accent); border-color:var(--accent); }
.hg-btn--bronze:hover{ background:#9A6322; border-color:#9A6322; }

.hg-arrow{
  font-family:var(--fh); font-weight:600; font-size:14.5px; color:var(--brand);
  text-decoration:none; display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
}
.hg-arrow span{ transition:transform .25s; }
.hg-arrow:hover span{ transform:translateX(4px); }
.is-dark .hg-arrow, .hg-sec--deep .hg-arrow{ color:#9CC2EA; }

/* ---------------------------------------------------------------- top bar */
.hg-top{ background:var(--brand-x); color:#B9CFE6; font-size:13.5px; }
.hg-top .hg-rail{ display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:42px; }
.hg-top a{ color:#DCE8F4; text-decoration:none; }
.hg-top a:hover{ color:#fff; }
.hg-top-l{ display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.hg-top-l span{ display:inline-flex; align-items:center; gap:8px; }
.hg-top-l .hg-i{ width:15px; height:15px; opacity:.75; }
.hg-top-r{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:#9FBBD8; }
.hg-top-r span{ display:inline-flex; align-items:center; gap:8px; letter-spacing:.04em; }
.hg-top-r .hg-i{ width:15px; height:15px; color:var(--accent); opacity:1; }
.hg-top-l .hg-wa{ color:#8FE3A8; }
.hg-top-l .hg-wa:hover{ color:#B6F0C6; }

/* ---------------------------------------------------------------- header */
.hg-head{
  background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:70;
  transition:box-shadow .3s ease;
}
.hg-head .hg-rail{ display:flex; align-items:center; gap:32px; min-height:84px; transition:min-height .3s ease; }
.hg-head.is-stuck{ box-shadow:0 2px 18px rgba(20,71,126,.10); }
.hg-head.is-stuck .hg-rail{ min-height:64px; }
.hg-head.is-stuck .hg-logo-mark{ width:30px; }
.hg-head.is-stuck .hg-logo b{ font-size:23px; }
.hg-head.is-stuck .hg-logo small{ opacity:0; height:0; margin-top:0; }
.hg-head.is-stuck .hg-nav a{ padding:21px 0; }

.hg-logo{ display:flex; align-items:center; gap:13px; text-decoration:none; flex:none; }
.hg-logo-mark{
  display:block; width:36px; flex:none; color:var(--accent);
  transition:width .3s ease;
}
.hg-logo-mark svg{ display:block; width:100%; height:auto; }
.hg-logo-type{ display:flex; flex-direction:column; }
.hg-logo b{
  font-family:var(--fh); font-weight:800; font-size:27px; letter-spacing:.01em;
  color:var(--brand); line-height:1; transition:font-size .3s ease;
}
.hg-logo b i{ font-style:normal; color:var(--accent); }
.hg-logo small{
  font-family:var(--fh); font-size:9px; font-weight:600; letter-spacing:.26em;
  text-transform:uppercase; color:var(--soft); margin-top:6px;
  padding-top:6px; border-top:1px solid var(--line2);
  transition:opacity .25s ease, height .3s ease, margin .3s ease;
}
.hg-logo img{ max-height:54px; width:auto; }

.hg-nav{ margin-left:auto; }
.hg-nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:28px; }
.hg-nav li{ position:relative; }
.hg-nav a{
  font-family:var(--fh); font-size:15px; font-weight:600; color:var(--ink);
  text-decoration:none; display:block; padding:31px 0; position:relative;
}
.hg-nav > ul > li > a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-1px; height:3px;
  background:var(--accent); transition:right .28s;
}
.hg-nav .menu-item-has-children > a{ padding-right:17px; }
.hg-nav .menu-item-has-children > a::before{
  content:""; position:absolute; right:2px; top:50%; width:6px; height:6px;
  border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor;
  transform:translateY(-70%) rotate(45deg); opacity:.55;
  transition:transform .25s ease, opacity .25s ease;
}
.hg-nav .menu-item-has-children:hover > a::before,
.hg-nav .menu-item-has-children:focus-within > a::before{
  transform:translateY(-25%) rotate(-135deg); opacity:1;
}
.hg-nav a:hover{ color:var(--brand); }
.hg-nav > ul > li:hover > a::after, .hg-nav > ul > li.current-menu-item > a::after{ right:0; }
.hg-nav ul ul{
  position:absolute; left:-18px; top:100%; min-width:236px; display:block;
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--sh2); padding:9px 0; flex-direction:column; gap:0;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s, transform .2s, visibility .2s;
}
.hg-nav ul ul::before{
  content:""; position:absolute; left:26px; top:-6px; width:11px; height:11px;
  background:#fff; border-left:1px solid var(--line); border-top:1px solid var(--line);
  transform:rotate(45deg); border-radius:1px;
}
.hg-nav li:hover > ul, .hg-nav li:focus-within > ul{ opacity:1; visibility:visible; transform:none; }
.hg-nav ul ul a{
  padding:10px 18px; font-size:14.5px; font-weight:500; color:var(--body);
  border-left:2px solid transparent; transition:border-color .18s, color .18s, background .18s;
}
.hg-nav ul ul a:hover,
.hg-nav ul ul .current-menu-item > a{
  background:#FAFCFE; border-left-color:var(--accent); color:var(--brand);
}

.hg-burger{
  display:none; margin-left:auto; width:44px; height:44px; border:1px solid var(--line);
  border-radius:var(--r); background:#fff; cursor:pointer; padding:0;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.hg-burger span{ display:block; width:20px; height:2px; background:var(--ink); transition:.25s; }
.hg-head .hg-btn{
  flex:none; margin-left:8px; background:var(--accent); border-color:var(--accent);
  padding-left:22px; padding-right:22px;
}
.hg-head .hg-btn:hover{ background:#9C6322; border-color:#9C6322; }
.hg-head .hg-nav{ padding-right:26px; margin-right:2px; border-right:1px solid var(--line); }

/* ---------------------------------------------------------------- home hero */
.hg-hero{ border-bottom:1px solid var(--line); }
.hg-hero-grid{ display:grid; grid-template-columns:1.04fr .96fr; align-items:stretch; }
.hg-hero-text{ padding:80px 60px 80px 0; display:flex; flex-direction:column; justify-content:center; }
.hg-hero-text h1{ margin:0 0 20px; max-width:15ch; }
.hg-hero-text h1 em{ font-style:normal; color:var(--brand); }
.hg-hero-text > p{ font-size:18px; line-height:1.68; max-width:52ch; margin:0; }
.hg-hero-btn{ display:flex; gap:12px; flex-wrap:wrap; margin-top:32px; }
.hg-hero-badge{ display:flex; gap:26px; flex-wrap:wrap; margin-top:36px; padding-top:26px; border-top:1px solid var(--line); }
.hg-hero-badge div{ display:flex; flex-direction:column; gap:2px; }
.hg-hero-badge b{ font-family:var(--fh); font-size:15px; font-weight:700; color:var(--ink); }
.hg-hero-badge span{ font-size:13px; color:var(--soft); }
.hg-hero-img{ position:relative; overflow:hidden; min-height:520px; }
.hg-hero-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:22% 62%; }

/* hero slider */
.hg-slider .hg-slide{ opacity:0; transition:opacity .9s ease; object-position:center 55%; }
.hg-slider .hg-slide.is-on{ opacity:1; }
.hg-slider-dots{
  position:absolute; right:16px; bottom:16px; z-index:3; display:flex; gap:9px;
}
.hg-slider-dots button{
  width:10px; height:10px; padding:0; border:0; border-radius:50%; cursor:pointer;
  background:rgba(255,255,255,.55); box-shadow:0 1px 3px rgba(0,0,0,.35);
  transition:background .25s ease, transform .25s ease;
}
.hg-slider-dots button:hover{ background:rgba(255,255,255,.85); }
.hg-slider-dots button.is-on{ background:#fff; transform:scale(1.25); }
@media (prefers-reduced-motion:reduce){
  .hg-slider .hg-slide{ transition:none; }
}
.hg-hero-card{ position:absolute; left:0; bottom:0; z-index:2; background:var(--brand); color:#fff; padding:22px 26px; max-width:300px; }
.hg-hero-card b{ font-family:var(--fh); font-size:15px; font-weight:700; display:block; margin-bottom:4px; }
.hg-hero-card span{ font-size:13.5px; color:#C9DAEC; line-height:1.55; display:block; }

/* ---------------------------------------------------------------- stats band */
.hg-stats{ background:var(--brand-d); color:#fff; }
.hg-stats .hg-rail{ display:grid; grid-template-columns:repeat(4,1fr); }
.hg-stats div{ padding:30px 0 30px 30px; border-left:1px solid rgba(255,255,255,.16); display:flex; flex-direction:column; gap:4px; }
.hg-stats div:first-child{ border-left:0; padding-left:0; }
.hg-stats b{ font-family:var(--fh); font-size:27px; font-weight:800; letter-spacing:-.02em; color:#fff; font-variant-numeric:tabular-nums; }
.hg-stats span{ font-size:14px; color:#A9C4DD; }

/* ---------------------------------------------------------------- section tones */
.hg-sec{ padding:92px 0; }
.hg-sec--white{ background:var(--white); }
.hg-sec--tint{ background:var(--tint); }
.hg-sec--blue{ background:var(--tint2); }
.hg-sec--sand{ background:var(--sand); }
.hg-sec--deep{ background:var(--brand-d); color:#C3D6E8; }
.hg-sec--deep h2,.hg-sec--deep h3,.hg-sec--deep h4{ color:#fff; }
.hg-sec--deep .hg-eyebrow{ color:#8FB6DF; }
.hg-sec--line{ border-top:1px solid var(--line); }
.hg-sec--tight{ padding:64px 0; }

/* framed inner box variant */
.hg-frame{
  border:1px solid var(--line); border-radius:8px; background:#fff;
  padding:56px 52px; box-shadow:var(--sh1);
}
.hg-frame--sand{ background:var(--sand); border-color:#EADFCB; }
.hg-frame--blue{ background:var(--tint2); border-color:#CFE0F0; }

/* ---------------------------------------------------------------- headings */
.hg-heading{ margin-bottom:46px; display:grid; gap:22px; }
.hg-heading--left{ grid-template-columns:1fr; max-width:760px; }
.hg-heading--center{ grid-template-columns:1fr; max-width:760px; margin-left:auto; margin-right:auto; text-align:center; }
.hg-heading--center .hg-lead{ margin-left:auto; margin-right:auto; }
.hg-heading--split{ grid-template-columns:1.05fr .95fr; align-items:end; gap:56px; }
.hg-heading--split .hg-heading-aside{ padding-bottom:4px; }
.hg-heading.is-dark h2{ color:#fff; }
.hg-heading.is-dark .hg-lead{ color:#C3D6E8; }
.hg-heading.is-dark .hg-eyebrow{ color:#8FB6DF; }
.hg-heading-aside{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; }

/* ---------------------------------------------------------------- grids */
.hg-grid{ display:grid; gap:24px; }
.hg-grid--2{ grid-template-columns:repeat(2,1fr); }
.hg-grid--3{ grid-template-columns:repeat(3,1fr); }
.hg-grid--4{ grid-template-columns:repeat(4,1fr); }
.hg-grid--tight{ gap:1px; background:var(--line); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.hg-grid--tight > *{ background:#fff; }

/* ---------------------------------------------------------------- split (image + text) */
.hg-split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.hg-split--flip .hg-split-img{ order:2; }
.hg-split--wide{ grid-template-columns:1.15fr .85fr; }
.hg-split-img{ position:relative; }
.hg-split-img img{ width:100%; border-radius:8px; box-shadow:var(--sh1); }
.hg-split-img--frame img{ border:1px solid var(--line); }
.hg-split-img .hg-stamp{
  position:absolute; right:-14px; bottom:-14px; background:var(--brand); color:#fff;
  padding:16px 20px; border-radius:6px; max-width:210px; box-shadow:var(--sh2);
}
.hg-split-img .hg-stamp b{ font-family:var(--fh); font-size:15px; display:block; }
.hg-split-img .hg-stamp span{ font-size:13px; color:#C3D6E8; }

.hg-ticks{ list-style:none; padding:0; margin:26px 0 0; display:grid; gap:13px; }
.hg-ticks li{ display:flex; gap:12px; align-items:flex-start; font-size:15.5px; }
.hg-ticks li .hg-i{ width:19px; height:19px; flex:none; margin-top:3px; color:var(--accent); }
.hg-sec--deep .hg-ticks li{ color:#C3D6E8; }
.hg-sec--deep .hg-ticks li .hg-i{ color:#8FB6DF; }

/* ---------------------------------------------------------------- tiles (icon cards) */
.hg-tile{
  background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:30px 28px 32px; display:flex; flex-direction:column; gap:11px;
  transition:transform .26s, box-shadow .26s, border-color .26s;
}
.hg-tile:hover{ transform:translateY(-3px); box-shadow:var(--sh2); border-color:var(--line2); }
.hg-tile-ic{
  width:50px; height:50px; border-radius:8px; display:grid; place-items:center;
  background:var(--brand-l); color:var(--brand); margin-bottom:6px;
}
.hg-tile-ic .hg-i{ width:25px; height:25px; }
.hg-tile p{ margin:0; font-size:15px; line-height:1.68; }
.hg-tile--bronze .hg-tile-ic{ background:var(--accent-l); color:var(--accent); }
.hg-sec--deep .hg-tile{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.14); }
.hg-sec--deep .hg-tile:hover{ background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.28); box-shadow:none; }
.hg-sec--deep .hg-tile p{ color:#C3D6E8; }
.hg-sec--deep .hg-tile-ic{ background:rgba(255,255,255,.12); color:#fff; }

/* plain list tile without border (for tight grids) */
.hg-flat{ padding:30px 28px 32px; display:flex; flex-direction:column; gap:10px; }
.hg-flat .hg-i{ color:var(--brand); }
.hg-flat p{ margin:0; font-size:14.8px; line-height:1.66; }

/* ---------------------------------------------------------------- model cards */
.hg-model{
  border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff;
  display:flex; flex-direction:column;
  transition:transform .28s, box-shadow .28s, border-color .28s;
}
.hg-model:hover{ transform:translateY(-4px); box-shadow:var(--sh2); border-color:var(--line2); }
.hg-model-top{ position:relative; overflow:hidden; background:var(--tint2); }
.hg-model-top img{ width:100%; height:290px; object-fit:cover; }
.hg-model-top--pad{ height:290px; display:flex; align-items:center; justify-content:center; gap:26px; padding:26px 30px;
  background:linear-gradient(160deg,#F7FAFD 0%,#E3EDF6 100%); }
.hg-model-top--pad img{ height:auto; width:auto; max-height:210px; max-width:47%; object-fit:contain; }
.hg-model-flag{
  position:absolute; left:0; top:22px; z-index:2;
  background:var(--brand); color:#fff; font-family:var(--fh); font-weight:700;
  font-size:11.5px; letter-spacing:.13em; text-transform:uppercase;
  padding:8px 16px 8px 14px; border-radius:0 4px 4px 0;
}
.hg-model-body{ padding:30px 30px 32px; display:flex; flex-direction:column; gap:13px; flex:1; }
.hg-model-body p{ margin:0; font-size:15.5px; }
.hg-model-body ul{ list-style:none; padding:0; margin:4px 0 0; display:grid; gap:10px; }
.hg-model-body li{ display:flex; gap:11px; font-size:15px; align-items:flex-start; }
.hg-model-body li .hg-i{ width:18px; height:18px; flex:none; margin-top:3px; color:var(--accent); }
.hg-model-body .hg-arrow{ margin-top:auto; padding-top:18px; align-self:flex-start; }

/* ---------------------------------------------------------------- product cards */
.hg-pcard{
  background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .26s, box-shadow .26s, border-color .26s;
}
.hg-pcard:hover{ transform:translateY(-3px); box-shadow:var(--sh2); border-color:var(--line2); }
.hg-pcard-img{ display:block; background:#EAF0F5; }
.hg-pcard-img img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.hg-pcard-ph{ aspect-ratio:1/1; display:grid; place-items:center;
  background:linear-gradient(178deg,#E9EFF4 0%,#DCE6EE 62%,#C3D0DC 100%); }
.hg-pcard-ph .hg-i{ width:34%; height:34%; color:var(--brand); opacity:.6; }
.hg-pcard-body{ padding:22px 22px 24px; display:flex; flex-direction:column; gap:9px; flex:1; }
.hg-pcard-tag{ font-family:var(--fh); font-size:11.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--soft); }
.hg-pcard h3{ font-size:17.5px; }
.hg-pcard h3 a{ color:var(--ink); text-decoration:none; }
.hg-pcard h3 a:hover{ color:var(--brand); }
.hg-pcard p{ margin:0; font-size:14.5px; line-height:1.6; }
.hg-pcard-size{ margin-top:auto; padding-top:15px; border-top:1px solid var(--line);
  font-family:var(--fh); font-size:14px; font-weight:700; color:var(--brand); font-variant-numeric:tabular-nums; }

/* ---------------------------------------------------------------- fragrance cards */
.hg-fcard{
  background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:24px 22px 22px; display:flex; flex-direction:column; gap:11px;
  border-top:3px solid var(--hg-c,var(--brand));
  transition:box-shadow .26s, transform .26s;
}
.hg-fcard:hover{ box-shadow:var(--sh2); transform:translateY(-3px); }
.hg-fcard-top{ display:flex; align-items:center; gap:12px; }
.hg-sw{ width:34px; height:34px; border-radius:50%; flex:none; background:var(--hg-c,var(--brand));
  box-shadow:inset 0 -3px 8px rgba(0,0,0,.16); }
.hg-fcard h3{ font-size:17.5px; }
.hg-fcard h3 small{ display:block; font-family:var(--fh); font-size:11.5px; font-weight:600;
  letter-spacing:.13em; text-transform:uppercase; color:var(--soft); margin-top:3px; }
.hg-notes{ display:grid; border-top:1px solid var(--line); margin-top:2px; }
.hg-notes div{ display:grid; grid-template-columns:56px 1fr; gap:12px; padding:9px 0;
  border-bottom:1px solid var(--line); font-size:14px; }
.hg-notes div:last-child{ border-bottom:0; }
.hg-notes b{ font-family:var(--fh); font-size:11px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--soft); padding-top:2px; }

/* ---------------------------------------------------------------- numbered steps */
.hg-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.hg-step{ background:#fff; padding:32px 28px 34px; display:flex; flex-direction:column; gap:11px; position:relative; }
.hg-step-n{
  width:42px; height:42px; border-radius:50%; flex:none; background:var(--brand-l); color:var(--brand);
  display:grid; place-items:center; font-family:var(--fh); font-size:15px; font-weight:800;
  font-variant-numeric:tabular-nums; margin-bottom:5px;
}
.hg-step:hover .hg-step-n{ background:var(--brand); color:#fff; }
.hg-step p{ margin:0; font-size:14.5px; line-height:1.66; }

/* ---------------------------------------------------------------- spec list */
.hg-spec{ margin:6px 0 0; border-top:1px solid var(--line); }
.hg-spec > div{ display:flex; justify-content:space-between; align-items:baseline; gap:22px;
  padding:14px 0; border-bottom:1px solid var(--line); }
.hg-spec dt{ font-size:14.5px; color:var(--soft); }
.hg-spec dd{ margin:0; font-family:var(--fh); font-size:15px; font-weight:600; color:var(--ink);
  text-align:right; font-variant-numeric:tabular-nums; }
.hg-sec--deep .hg-spec{ border-color:rgba(255,255,255,.18); }
.hg-sec--deep .hg-spec > div{ border-color:rgba(255,255,255,.18); }
.hg-sec--deep .hg-spec dt{ color:#8FB6DF; }
.hg-sec--deep .hg-spec dd{ color:#fff; }

/* ---------------------------------------------------------------- certificates */
.hg-certs{ display:grid; grid-template-columns:repeat(2,minmax(0,230px)) 1fr; gap:34px; align-items:start; }
.hg-certs figure{ margin:0; }
.hg-certs img{ width:100%; border:1px solid var(--line); border-radius:4px; box-shadow:var(--sh2); background:#fff; }
.hg-certs figcaption{ margin-top:13px; font-family:var(--fh); font-size:13.5px; font-weight:700; color:var(--ink); }
.hg-certs figcaption span{ display:block; font-weight:400; font-size:13px; color:var(--soft); margin-top:2px; }

/* ---------------------------------------------------------------- market cards */
.hg-market{ background:#fff; padding:30px 26px 32px; display:flex; flex-direction:column; gap:9px; }
.hg-market i{ font-style:normal; font-family:var(--fh); font-size:11.5px; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase; color:var(--accent); }
.hg-market p{ margin:0; font-size:14.5px; }

/* ---------------------------------------------------------------- prose */
.hg-prose{ max-width:74ch; }
.hg-prose > *{ margin-top:0; }
.hg-prose p{ margin:0 0 20px; font-size:16.5px; line-height:1.78; }
.hg-prose h2{ margin:44px 0 16px; font-size:clamp(23px,2.4vw,30px); }
.hg-prose h3{ margin:34px 0 12px; font-size:20px; }
.hg-prose ul,.hg-prose ol{ margin:0 0 22px; padding-left:22px; }
.hg-prose li{ margin-bottom:9px; line-height:1.72; }
.hg-prose blockquote{
  margin:26px 0; padding:20px 26px; border-left:3px solid var(--accent);
  background:var(--sand); border-radius:0 var(--r) var(--r) 0;
}
.hg-prose blockquote p:last-child{ margin-bottom:0; }
.hg-prose a{ color:var(--brand); text-decoration:underline; text-underline-offset:2px; }
.hg-prose img{ border-radius:8px; margin:8px 0 22px; }
.hg-prose table{ width:100%; border-collapse:collapse; margin:0 0 24px; }
.hg-prose th,.hg-prose td{ border:1px solid var(--line); padding:11px 14px; text-align:left; font-size:15px; }
.hg-prose th{ background:var(--tint); font-family:var(--fh); font-weight:700; color:var(--ink); }

/* ---------------------------------------------------------------- page hero */
.hg-phero{ background:var(--brand-d); color:#C3D6E8; padding:56px 0 62px; position:relative; overflow:hidden; }
.hg-phero h1{ color:#fff; max-width:20ch; }
.hg-phero .hg-eyebrow{ color:#8FB6DF; }
.hg-phero .hg-lead{ color:#C3D6E8; }
.hg-phero--image::before{
  content:""; position:absolute; inset:0; background-image:var(--hg-hero);
  background-size:cover; background-position:center; opacity:.22;
}
.hg-phero--image::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(92deg,var(--brand-d) 18%,rgba(14,53,96,.72) 62%,rgba(14,53,96,.45) 100%);
}
.hg-phero .hg-rail{ position:relative; z-index:2; }

.hg-crumb{ font-size:13.5px; color:#8FB6DF; margin-bottom:20px; display:flex; gap:9px; flex-wrap:wrap; align-items:center; }
.hg-crumb a{ color:#B9CFE6; text-decoration:none; }
.hg-crumb a:hover{ color:#fff; }
.hg-crumb b{ color:#fff; font-weight:600; }

/* ---------------------------------------------------------------- FAQ */
.hg-faq{ max-width:880px; border-top:1px solid var(--line); }
.hg-faq details{ border-bottom:1px solid var(--line); }
.hg-faq summary{ cursor:pointer; list-style:none; position:relative; padding:22px 46px 22px 0;
  font-family:var(--fh); font-size:17px; font-weight:600; color:var(--ink); }
.hg-faq summary::-webkit-details-marker{ display:none; }
.hg-faq summary::after{ content:""; position:absolute; right:10px; top:30px; width:11px; height:11px;
  border-right:2px solid var(--brand); border-bottom:2px solid var(--brand);
  transform:rotate(45deg); transition:transform .28s, top .28s; }
.hg-faq details[open] summary::after{ transform:rotate(-135deg); top:34px; }
.hg-faq summary:hover{ color:var(--brand); }
.hg-faq p{ margin:0; padding:0 60px 24px 0; font-size:15.5px; line-height:1.75; }

/* ---------------------------------------------------------------- CTA band */
.hg-cta{ background:linear-gradient(122deg,var(--brand-x) 0%,var(--brand) 100%); color:#fff; }
.hg-cta-in{ display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; padding:64px 0; }
.hg-cta h2{ color:#fff; margin-bottom:8px; }
.hg-cta p{ margin:0; color:#C3D6E8; max-width:60ch; }
.hg-cta-btn{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------------------------------------------------------------- forms */
.hg-form{ display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.hg-form .hg-full{ grid-column:1/-1; }
.hg-form label{ display:block; font-family:var(--fh); font-size:12px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--soft); margin-bottom:6px; }
.hg-field{ padding:12px 0 14px; }
.hg-form input,.hg-form select,.hg-form textarea{
  width:100%; background:#fff; border:1px solid var(--line); border-radius:var(--r);
  color:var(--ink); font-family:var(--fb); font-size:15.5px; padding:12px 14px;
}
.hg-form textarea{ resize:vertical; min-height:110px; }
.hg-form input:focus,.hg-form select:focus,.hg-form textarea:focus{ outline:0; border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-l); }
.hg-form .hg-btn{ margin-top:20px; }

.hg-form--dark label{ color:#8FB6DF; }
.hg-form--dark input,.hg-form--dark select,.hg-form--dark textarea{
  background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.28);
  border-radius:0; color:#fff; padding:8px 0 10px;
}
.hg-form--dark input::placeholder,.hg-form--dark textarea::placeholder{ color:rgba(255,255,255,.45); }
.hg-form--dark input:focus,.hg-form--dark select:focus,.hg-form--dark textarea:focus{
  border-bottom-color:#fff; box-shadow:none;
}
.hg-form--dark select option{ background:var(--brand-d); color:#fff; }

/* ---------------------------------------------------------------- contact cards */
.hg-contact{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.hg-ccard{ border:1px solid var(--line); border-radius:8px; padding:30px 26px; background:#fff;
  display:flex; flex-direction:column; gap:10px; }
.hg-ccard .hg-tile-ic{ margin-bottom:4px; }
.hg-ccard p{ margin:0; font-size:15px; line-height:1.7; }
.hg-ccard a{ color:var(--brand); text-decoration:none; font-weight:600; }
.hg-ccard a:hover{ text-decoration:underline; }

/* ---------------------------------------------------------------- single product */
.hg-prod{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
.hg-prod-img{ border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#EAF0F5; }
.hg-prod-img img{ width:100%; }
.hg-prod-meta{ display:flex; gap:9px; flex-wrap:wrap; margin-bottom:16px; }
.hg-chip{ font-family:var(--fh); font-size:12px; font-weight:600; letter-spacing:.06em;
  color:var(--brand); background:var(--brand-l); border-radius:999px; padding:6px 14px; text-decoration:none; }
.hg-chip:hover{ background:var(--brand); color:#fff; }

/* ---------------------------------------------------------------- pagination */
.hg-pag{ display:flex; gap:8px; justify-content:center; margin-top:48px; flex-wrap:wrap; }
.hg-pag .page-numbers{
  display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px;
  padding:0 12px; border:1px solid var(--line); border-radius:var(--r); background:#fff;
  color:var(--ink); text-decoration:none; font-family:var(--fh); font-weight:600; font-size:14.5px;
}
.hg-pag .page-numbers:hover{ border-color:var(--brand); color:var(--brand); }
.hg-pag .page-numbers.current{ background:var(--brand); border-color:var(--brand); color:#fff; }

/* ---------------------------------------------------------------- footer */
.hg-foot{ background:var(--ink); color:#A8B6C4; }
.hg-foot-top{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.25fr; gap:48px; padding:70px 0 54px; }
.hg-foot .hg-logo b{ color:#fff; }
.hg-foot .hg-logo-mark{ color:var(--accent); }
.hg-foot .hg-logo small{ border-top-color:rgba(255,255,255,.2); }
.hg-foot .hg-logo small{ color:#8494A4; }
.hg-foot-top > div > p{ margin:18px 0 0; font-size:14.5px; line-height:1.7; max-width:38ch; }
.hg-foot h4{ font-family:var(--fh); font-size:12px; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:#fff; margin:0 0 18px; }
.hg-foot ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.hg-foot a{ color:#A8B6C4; text-decoration:none; font-size:14.5px; transition:color .2s; }
.hg-foot a:hover{ color:#fff; }
.hg-foot-adr{ display:grid; gap:14px; font-size:14.5px; line-height:1.62; }
.hg-foot-adr div{ display:flex; gap:11px; align-items:flex-start; }
.hg-foot-adr .hg-i{ width:17px; height:17px; flex:none; margin-top:3px; color:#7F8FA0; }
.hg-foot-adr b{ color:#fff; font-family:var(--fh); font-weight:600; display:block; margin-bottom:2px; }
.hg-foot-bot{ border-top:1px solid rgba(255,255,255,.12); padding:22px 0 34px;
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:13.5px; }

.hg-skip{ position:absolute; left:-9999px; }
.hg-skip:focus{ left:12px; top:12px; z-index:999; background:#fff; padding:10px 16px; border-radius:var(--r); }

/* ---------------------------------------------------------------- responsive */
@media (max-width:1080px){
  :root{ --pad:24px; }
  .hg-nav{ display:none; }
  .hg-head .hg-nav{ border-right:0; padding-right:0; }
  .hg-head .hg-btn{ display:none; }
  .hg-burger{ display:flex; }
  .hg-nav.is-open{
    display:block; position:absolute; left:0; right:0; top:100%;
    background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--sh2); padding:10px 24px 22px;
  }
  .hg-nav.is-open ul{ flex-direction:column; gap:0; }
  .hg-nav.is-open a{ padding:13px 0; }
  .hg-nav.is-open .menu-item-has-children{ position:relative; }
  .hg-nav.is-open .menu-item-has-children > a::before{ content:none; }
  .hg-nav.is-open .hg-sub-toggle{
    position:absolute; right:0; top:4px; width:40px; height:40px; padding:0;
    border:0; background:none; cursor:pointer; display:flex;
    align-items:center; justify-content:center;
  }
  .hg-nav.is-open .hg-sub-toggle::before{
    content:""; width:8px; height:8px; border-right:1.8px solid var(--soft);
    border-bottom:1.8px solid var(--soft); transform:translateY(-2px) rotate(45deg);
    transition:transform .25s ease;
  }
  .hg-nav.is-open .hg-sub-toggle[aria-expanded="true"]::before{ transform:translateY(2px) rotate(-135deg); }
  .hg-nav.is-open ul ul{ position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:0; border-left:2px solid var(--line); border-radius:0;
    margin:0 0 8px 8px; padding:0 0 0 12px; display:none; }
  .hg-nav.is-open ul ul::before{ content:none; }
  .hg-nav.is-open li.is-open > ul{ display:block; }
  .hg-nav.is-open ul ul a{ border-left:0; }
  .hg-hero-grid{ grid-template-columns:1fr; }
  .hg-hero-text{ padding:56px 0 48px; }
  .hg-hero-img{ min-height:380px; }
  .hg-stats .hg-rail{ grid-template-columns:repeat(2,1fr); }
  .hg-stats div{ border-left:0; padding-left:0; border-top:1px solid rgba(255,255,255,.16); }
  .hg-stats div:first-child,.hg-stats div:nth-child(2){ border-top:0; }
  .hg-heading--split{ grid-template-columns:1fr; gap:20px; }
  .hg-split{ grid-template-columns:1fr; gap:34px; }
  .hg-split--flip .hg-split-img{ order:0; }
  .hg-split-img .hg-stamp{ right:14px; bottom:-14px; }
  .hg-grid--3,.hg-grid--4{ grid-template-columns:repeat(2,1fr); }
  .hg-steps{ grid-template-columns:repeat(2,1fr); }
  .hg-certs{ grid-template-columns:1fr 1fr; }
  .hg-contact{ grid-template-columns:1fr; }
  .hg-prod{ grid-template-columns:1fr; gap:34px; }
  .hg-frame{ padding:38px 28px; }
  .hg-foot-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  .hg-sec{ padding:62px 0; }
  .hg-grid--2,.hg-grid--3,.hg-grid--4{ grid-template-columns:1fr; }
  .hg-steps{ grid-template-columns:1fr; }
  .hg-certs{ grid-template-columns:1fr; }
  .hg-form{ grid-template-columns:1fr; }
  .hg-foot-top{ grid-template-columns:1fr; }
  .hg-model-top img,.hg-model-top--pad{ height:230px; }
  .hg-top .hg-rail{ flex-direction:column; align-items:flex-start; padding-top:9px; padding-bottom:9px; gap:6px; }
  .hg-top-r{ display:none; }
  .hg-cta-in{ padding:48px 0; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
}

@media print{
  .hg-top,.hg-head,.hg-cta,.hg-foot{ display:none; }
  body{ font-size:12pt; }
}

/* ---------------------------------------------------------------- enquiry form notices */
.hg-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.hg-note{
  padding:14px 18px; border-radius:6px; margin:0 0 20px;
  font-size:14.5px; line-height:1.55; border:1px solid transparent;
}
.hg-note--ok{ background:#E8F5EC; border-color:#B7E0C4; color:#1B6B36; }
.hg-note--bad{ background:#FDECEC; border-color:#F3C2C2; color:#9B2226; }
.hg-sec--deep .hg-note--ok{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.28); color:#DFF3E6; }
.hg-sec--deep .hg-note--bad{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.28); color:#FFD9D9; }
