:root{
  --red:#e8393f; --red-btn:#dc363c; --red-text:#d7353a; --red-dark:#c22e33; --maroon:#5d0f12; --ink:#141414; --black:#0a0a0a;
  --body:#101114; --line:#e2e2e2; --white:#fff;
  /* condensed display face for headings, Montserrat for everything else */
  --head:'Oswald',Arial Narrow,Helvetica,sans-serif;
  --text:'Montserrat',Segoe UI,Helvetica,Arial,sans-serif;
  --max:1400px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(92px + env(safe-area-inset-top,0px))}
body{margin:0;background:#fff;color:var(--body);font-family:var(--text);font-size:16px;line-height:1.75;font-weight:400;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--head);text-transform:uppercase;color:var(--ink);margin:0;letter-spacing:.01em;font-weight:700;line-height:1.1}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

/* ---------- header ---------- */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
  background:linear-gradient(90deg,#000 0%,#000 27%,#36060a 44%,#8e1114 60%,#c8181a 76%,#f12219 90%,#ff3321 100%)}
.topbar .wrap{display:flex;align-items:stretch;gap:0;height:92px}
.logo{display:flex;align-items:center;padding-right:34px;margin-right:30px;border-right:1px solid rgba(255,255,255,.14)}
.logo img{height:58px;width:auto}
.nav{display:flex;align-items:stretch;gap:4px;margin:0 auto 0 0}
.nav .has-sub{position:relative;display:flex;align-items:stretch}
.nav .submenu{position:absolute;top:100%;left:0;min-width:238px;background:#fff;
  box-shadow:0 18px 40px rgba(0,0,0,.22);padding:6px 0;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;z-index:60}
.nav .has-sub:hover .submenu,.nav .has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:none}
.nav .submenu a{display:block;padding:16px 22px;font-size:16.9px;font-weight:400;color:#1d1d1f;line-height:1.35;
  border-bottom:1px solid #ececec;white-space:normal}
.nav .submenu a:last-child{border-bottom:0}
.nav .submenu a:hover,.nav .submenu a.on{color:var(--red);background:#fafafa}
.nav .has-sub:hover > a{background:#e6261c;color:#fff}
.nav .has-sub:hover > a::after{content:"";position:absolute;left:0;right:0;top:100%;height:0}
.nav a{display:inline-flex;align-items:center;gap:7px;position:relative;padding:0 18px;
  font-size:17px;font-weight:500;letter-spacing:.005em;color:#fff;white-space:nowrap}
.nav a:hover{color:#ffd9d6}
.nav a.active{background:#e6261c;color:#fff}
.nav a.active::after{content:"";position:absolute;left:0;right:0;top:100%;height:20px;background:#e6261c;
  clip-path:polygon(0 0,100% 0,50% 100%)}
.nav .caret{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.2}
.utils{display:flex;align-items:center;gap:18px;padding-left:30px;margin-left:30px;border-left:1px solid rgba(255,255,255,.14)}
.utils a{display:inline-flex;color:#fff;opacity:.95}
.utils a:hover{opacity:1;color:#ffd9d6}
.utils svg{width:17px;height:17px;fill:currentColor}
.utils .searchbtn{background:none;border:0;padding:0;cursor:pointer;color:#fff;display:inline-flex}
.sitesearch{display:none;background:rgba(0,0,0,.55);border-top:1px solid rgba(255,255,255,.12)}
.sitesearch.open{display:block}
.sitesearch form{display:flex;gap:10px;padding:14px 0}
.sitesearch input{flex:1;padding:11px 14px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.35);color:#fff;font:inherit;font-size:15.8px;border-radius:2px}
.sitesearch input::placeholder{color:rgba(255,255,255,.6)}
.sitesearch button{border:0;cursor:pointer}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.burger span{display:block;width:22px;height:2px;background:#fff;margin:4px 0}

/* ---------- hero ---------- */
.hero{position:relative;background:linear-gradient(100deg,#2b0507 0%,#7d1418 34%,#c92f33 72%,#e8393f 100%);isolation:isolate;z-index:1}
.hero::before{content:"";position:absolute;inset:0;overflow:hidden;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400'%3E%3Crect width='600' height='400' fill='%23300' /%3E%3Cg fill='%23000' opacity='.35'%3E%3Crect x='30' y='20' width='170' height='360'/%3E%3Crect x='250' y='60' width='120' height='320'/%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat;opacity:.28;mix-blend-mode:multiply}
.hero .wrap{position:relative;padding-top:26px;padding-bottom:26px}
.hero-box{border:1px solid rgba(255,255,255,.55);padding:40px 46px 42px;max-width:none}
.eyebrow{font-family:var(--text);font-size:16px;font-weight:400;color:#fff;margin:0 0 12px}
.hero h1{color:#fff;white-space:nowrap;font-size:clamp(28px,3.4vw,46px);letter-spacing:.005em;margin-bottom:22px}
.btn{display:inline-block;font-family:var(--text);font-size:13.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:14px 29px;border-radius:999px;background:var(--red-btn);color:#fff;transition:background .2s,color .2s}
.btn:hover{background:#fff;color:var(--red)}
.btn-light{background:#fff;color:var(--red-text)}
.btn-light:hover{background:var(--red-btn);color:#fff}
/* the photo drops out of the hero band into the section below, as on the live site */
/* The photo lives in the intro's right column and is pulled up over the hero
   band. Keeping it in the flow means the intro grows to contain it, so nothing
   below can ever run into it. */
.hero-media{position:relative;z-index:3;width:100%;margin-top:-300px}
.hero-media .shot{max-width:100%}
.hero-media figure{margin:0;position:relative;z-index:1;box-shadow:0 18px 40px rgba(0,0,0,.28)}

/* photo placeholders */
.photo{background:#dfe1e3;position:relative;overflow:hidden}
.photo svg{width:100%;height:100%;display:block}

/* ---------- intro ---------- */
.intro{padding:96px 0 64px}
.intro .wrap{display:grid;grid-template-columns:minmax(0,1fr) clamp(360px,41%,560px);gap:56px;align-items:start}
.intro h2{font-size:clamp(25px,2.8vw,33px);line-height:1.2;margin-bottom:24px;max-width:19.5em}  /* em-based so the break after "&" holds at every heading size */
.intro p{margin:0 0 18px;max-width:58ch;font-size:16.5px}
.framed{position:relative;display:flex;justify-content:center}
.shot{width:100%;height:auto;max-width:440px}
.framed .shot,.hero-media img{border-radius:0}

/* ---------- why ---------- */
.why{padding:10px 0 96px;text-align:center}
.why h2{font-size:clamp(26px,3.4vw,37px);margin-bottom:54px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:38px 56px;text-align:left;margin-bottom:54px}
.feat{display:grid;grid-template-columns:30px 1fr;gap:18px}
.feat .tick{width:26px;height:26px;border-radius:50%;background:var(--red);display:grid;place-items:center;margin-top:3px}
.feat .tick svg{width:12px;height:12px;stroke:#fff;stroke-width:3;fill:none}
.feat h3{font-family:var(--text);text-transform:none;font-size:18.5px;font-weight:600;color:var(--ink);margin-bottom:6px;letter-spacing:0}
.feat p{margin:0;font-size:16px}

/* ---------- industries ---------- */
.industries{position:relative;background:linear-gradient(100deg,#000 0%,#1a0203 45%,#5a0f12 78%,#8d1a1d 100%);color:#fff;padding:86px 0;text-align:center;overflow:hidden}
.industries::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='400'%3E%3Cg stroke='%23fff' stroke-width='2' fill='none' opacity='.5'%3E%3Cpath d='M0 300 H800 M0 330 H800 M120 0 V400 M640 0 V400'/%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat;opacity:.07}
.industries .wrap{position:relative}
.industries h2{color:#fff;font-size:clamp(26px,3.4vw,37px);margin-bottom:18px}
.industries>.wrap>p{max-width:78ch;margin:0 auto 54px;color:#dcdcdc;font-size:16px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;margin-bottom:52px}
.ind h3{color:#fff;font-family:var(--text);text-transform:none;font-size:18.5px;font-weight:600;margin:16px 0 10px;letter-spacing:0}
.ind p{margin:0;font-size:15px;color:#d2d2d2;line-height:1.7}
.icon-sq{width:54px;height:54px;border:1px solid rgba(255,255,255,.7);display:grid;place-items:center;margin:0 auto;color:#fff}
.icon-sq svg{width:26px;height:26px;display:block}

/* ---------- commitment ---------- */
.commit{padding:96px 0}
.commit .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.commit h2{font-size:clamp(26px,3.2vw,35px);margin-bottom:26px}
.commit h3{font-family:var(--text);text-transform:none;font-size:19.5px;font-weight:600;color:var(--ink);margin:0 0 10px;letter-spacing:0}
.commit p{margin:0 0 30px;max-width:62ch;font-size:16.5px}

/* ---------- products ---------- */
.products{padding:0 0 90px;text-align:center}
.products h2{font-size:clamp(26px,3.4vw,37px);margin-bottom:14px}
.products .sub{font-family:var(--text);font-size:19.5px;font-weight:600;color:var(--ink);margin:0 0 16px}
.products>.wrap>p.lede{max-width:76ch;margin:0 auto 56px;font-size:16px}
.prod-rail{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:14px;align-items:start}
.prod-rail::before{content:"";position:absolute;left:7%;right:7%;top:38px;height:1px;background:var(--line)}
.prod{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px}
.prod .ring{width:76px;height:76px;border-radius:50%;background:var(--maroon);color:#fff;display:grid;place-items:center;
  box-shadow:0 0 0 7px #fff;transition:transform .28s cubic-bezier(.2,.7,.3,1),background .28s}
.prod .ring svg{width:32px;height:32px;display:block}
.prod:hover .ring{background:var(--red-btn);transform:translateY(-4px)}
.prod .plabel{font-size:13.5px;font-weight:600;color:var(--maroon);line-height:1.45;max-width:15ch}
.prod:hover .plabel{color:var(--red-text)}

/* ---------- cta card ---------- */
.started{padding:0 0 96px}
.card{border:1px solid var(--line);border-radius:4px;box-shadow:0 10px 34px rgba(17,17,20,.07);max-width:680px;margin:0 auto;text-align:center;padding:54px 48px 48px}
.card h2{font-size:clamp(24px,3vw,33px);margin-bottom:16px}
.card p{margin:0 auto 28px;max-width:58ch;font-size:16.5px}

/* ---------- footer ---------- */
footer{background:linear-gradient(100deg,#000 0%,#230405 55%,#4d0d10 100%);color:#d8d8d8;padding:64px 0 0}
.fgrid{display:grid;grid-template-columns:1.1fr .9fr .8fr 1.1fr;gap:40px}
.fbrand img{height:62px;margin-bottom:24px}
.fsocial{display:flex;gap:14px}
.fsocial a{width:30px;height:30px;display:grid;place-items:center;color:#fff}
.fsocial svg{width:21px;height:21px;fill:currentColor}
footer h4{color:#fff;font-family:var(--text);text-transform:none;font-size:17.5px;font-weight:600;margin:0 0 16px;letter-spacing:0}
footer ul{list-style:none;margin:0;padding:0}
footer li{font-size:16.4px;margin-bottom:10px}
footer li a:hover{color:var(--red)}
.fbottom{margin-top:56px;border-top:1px solid rgba(255,255,255,.12);text-align:center;font-size:14.7px;padding:18px 0;color:#bdbdbd}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .nav{display:none}
  .burger{display:block;margin-left:auto}
  .topbar .wrap{gap:12px;height:68px}
  .logo{border:0;margin:0;padding:0}
  .logo img{height:40px}
  .hero .wrap{grid-template-columns:1fr}
  /* stacked: the photo leads the intro, centred and capped */
  .hero-media{width:100%;max-width:430px;margin:0 auto 34px;order:-1}
  .hero-box{padding:30px 26px 32px}
  .intro .wrap,.commit .wrap{grid-template-columns:1fr;gap:44px}
  .intro{padding:70px 0 80px}
  .intro h2{max-width:26ch}
  .grid4{grid-template-columns:repeat(2,1fr);gap:34px 24px}
  .prod-rail{grid-template-columns:repeat(4,1fr);gap:30px 10px}
  .prod-rail::before{display:none}
}
@media (max-width:640px){
  .wrap{padding:0 18px}
  .hero .wrap{padding-top:36px;padding-bottom:40px}
  .hero-box{padding:30px 22px 32px}
  .hero h1{white-space:normal}
  .grid2{grid-template-columns:1fr;gap:30px}
  .grid4{grid-template-columns:1fr}
  .prod-rail{grid-template-columns:repeat(2,1fr);gap:30px 10px}
  .intro,.why,.commit,.industries{padding-top:60px;padding-bottom:60px}
  .card{padding:36px 22px}
  .fgrid{grid-template-columns:1fr 1fr;gap:32px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
.mobile-nav{display:none;background:#0a0a0a;border-top:1px solid rgba(255,255,255,.12)}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;padding:12px 24px;color:#fff;font-size:14.7px;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.07)}
.mobile-nav a.sub{padding-left:38px;font-size:13.8px;color:#cfcfcf}

/* ---------- inner pages, listings, product detail, forms ---------- */
.notice{margin:16px 0;padding:12px 16px;border-left:3px solid var(--red);background:#fdf3f3;color:#5d1116;font-size:14.7px}
.notice.success{border-color:#1f8a4c;background:#f1faf4;color:#14562f}
.pagehead{background:linear-gradient(100deg,#1a0203 0%,#7d1418 45%,#d8352f 100%);color:#fff;padding:54px 0}
.pagehead h1{color:#fff;font-size:clamp(26px,3.4vw,38px);margin-bottom:10px}
.pagehead p{margin:0;max-width:72ch;color:#f2d9d9;font-size:15.3px}
.pagehead a{color:#fff;text-decoration:underline}
.listing{padding:60px 0 90px}
@media (max-width:860px){
  .pdgrid,.contactgrid{grid-template-columns:1fr;gap:34px}
  .eform .f2{grid-template-columns:1fr}
  .card.enquiry{padding:26px 20px}
}

/* ================= catalogue + product detail ================= */
.phead{background:linear-gradient(100deg,#120102 0%,#6e1216 42%,#d8352f 100%);color:#fff;padding:58px 0 54px;position:relative;overflow:hidden}
.phead::after{content:"";position:absolute;right:-60px;top:-40px;width:320px;height:320px;border:30px solid rgba(255,255,255,.07);transform:rotate(18deg)}
.phead .wrap{position:relative}
.phead h1{color:#fff;font-size:clamp(27px,3.6vw,40px);margin:10px 0 12px}
.phead p{margin:0;max-width:70ch;color:#f3dada;font-size:15.3px}
.crumbs{font-size:13.2px;color:var(--body)}
.crumbs span{opacity:.5;margin:0 4px}
.crumbs a:hover{color:var(--red)}
.crumbs.light{color:#f0c9c9}
.crumbs.light a{color:#fff}

.catalogue{padding:52px 0 80px}
.catgrid{display:grid;grid-template-columns:240px 1fr;gap:44px;align-items:start}
.catside{position:sticky;top:114px;display:grid;gap:18px}
.catbox{border:1px solid var(--line);padding:20px}
.catbox h3{font-family:var(--head);font-size:15.8px;letter-spacing:.06em;margin-bottom:14px;color:var(--ink)}
.catlist{list-style:none;margin:0;padding:0}
.catlist a{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-size:14.7px;color:var(--ink);border-bottom:1px solid #f0f0f0}
.catlist a span{color:var(--body);font-size:12.7px}
.catlist a:hover,.catlist a.on{color:var(--red)}
.catlist a.on{font-weight:600}
.catbox.help{background:#faf7f7;border-color:#efe2e2}
.catbox.help p{font-size:13.8px;margin:0 0 16px}
.catbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.catbar .count{font-size:13.2px;letter-spacing:.08em;text-transform:uppercase;color:var(--body)}
.chips{display:none;gap:8px;flex-wrap:wrap}
.chips a{font-size:12.7px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink)}
.chips a.on{background:var(--red-btn);border-color:var(--red);color:#fff}

.grid-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:26px}
.pcard{border:1px solid #ebecef;border-radius:16px;background:#fff;display:flex;flex-direction:column;
  box-shadow:0 1px 2px rgba(17,17,20,.04);transition:box-shadow .3s,transform .3s,border-color .3s}
.pcard:hover{box-shadow:0 20px 44px rgba(17,17,20,.13);transform:translateY(-4px);border-color:#dfe1e6}
.pcard-media{position:relative;display:block;aspect-ratio:1/1;
  background:#fff;border-radius:15px 15px 0 0;border-bottom:1px solid #f1f2f4;overflow:hidden}
.pcard-media img{display:block;width:100%;height:100%;object-fit:contain;padding:28px 24px 32px;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.pcard:hover .pcard-media img{transform:scale(1.05)}
.pcard-media .shots{position:absolute;right:12px;top:12px;background:#fff;color:#3b3f46;font-size:10.1px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border:1px solid #ebecef;border-radius:999px;
  box-shadow:0 2px 8px rgba(17,17,20,.06)}
.noimg{display:grid;place-items:center;height:100%;color:#8b8f95;font-size:13.2px}
.pcard-media .noimg{position:absolute;inset:0;color:#92969e;font-size:11.1px;letter-spacing:.1em;text-transform:uppercase}
.pcard-body{padding:18px 18px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.pcard .model{font-size:11.1px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:600}
.pcard h3{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:17.5px;font-weight:600;color:var(--ink);line-height:1.35;margin:0}
.pcard h3 a:hover{color:var(--red)}
.pcard p{margin:0;font-size:13.8px;line-height:1.6}
.pcard-foot{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;border-top:1px solid #f1f1f1}
.link{font-size:13.2px;font-weight:600;color:var(--ink);white-space:nowrap}
.link span{display:inline-block;transition:transform .2s}
.pcard:hover .link{color:var(--red)}
.pcard:hover .link span{transform:translateX(3px)}
.btn.sm{padding:8px 14px;font-size:11.1px;white-space:nowrap}
.btn-outline{background:transparent;border:1px solid var(--red);color:var(--red-text)}
.btn-outline:hover{background:var(--red-btn);color:#fff}
.empty{padding:40px 0;color:var(--body)}

.strip{border-top:1px solid var(--line);background:#fafafa;padding:30px 0}
.strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.strip strong{display:block;font-family:var(--head);text-transform:uppercase;font-size:14.7px;letter-spacing:.05em;color:var(--ink);margin-bottom:4px}
.strip span{font-size:13.8px}

.pdetail{padding:34px 0 90px}
.pdgrid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:start;margin-top:22px}
.gallery{position:sticky;top:114px}
.gmain{position:relative;border:1px solid #ebecef;border-radius:16px;background:#fff;aspect-ratio:1/1;
  overflow:hidden;cursor:zoom-in;box-shadow:0 1px 2px rgba(17,17,20,.04)}
.gmain img{display:block;width:100%;height:100%;object-fit:contain;padding:30px;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.gmain:hover img{transform:scale(1.03)}
.gmain .noimg{display:grid;place-items:center;height:100%;color:#8d9098;font-size:12.7px;letter-spacing:.1em;text-transform:uppercase}
.expand{position:absolute;right:14px;bottom:14px;display:flex;align-items:center;gap:7px;
  padding:8px 13px;border:1px solid #e7e8ec;border-radius:999px;background:rgba(255,255,255,.94);color:var(--ink);
  font:inherit;font-size:11.1px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;
  box-shadow:0 4px 14px rgba(17,17,20,.1);transition:background .25s,color .25s,border-color .25s,transform .25s}
.expand svg{display:block}
.gmain:hover .expand,.expand:hover,.expand:focus-visible{background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-1px)}
.gthumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}
.gthumb{padding:0;border:1px solid #ebecef;border-radius:10px;background:#fff;aspect-ratio:1/1;cursor:pointer;
  overflow:hidden;transition:border-color .22s,box-shadow .22s,transform .22s}
.gthumb img{display:block;width:100%;height:100%;object-fit:contain;padding:7px}
.gthumb:hover{border-color:#cfd2d8;transform:translateY(-2px)}
.gthumb.on{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
.gnote{margin:11px 0 0;font-size:12.1px;letter-spacing:.06em;text-transform:uppercase;color:var(--body)}
.tag{display:inline-block;font-size:11.1px;letter-spacing:.12em;text-transform:uppercase;color:var(--red-text);border:1px solid #f1cfd0;padding:4px 11px;border-radius:999px;margin-bottom:14px}
.pinfo h1{font-size:clamp(24px,3vw,33px);margin-bottom:8px}
.pinfo .model{font-size:12.7px;letter-spacing:.1em;text-transform:uppercase;color:var(--body);margin:0 0 16px}
.pinfo .lead{font-size:16.4px;line-height:1.75;color:#242528;margin:0 0 22px}

/* A bulleted "Label: value" description renders as a tidy spec list. */
.specpoints{list-style:none;margin:0 0 24px;padding:0;border-top:1px solid #f0f1f3}
.specpoints li{display:grid;grid-template-columns:148px 1fr;gap:8px 18px;align-items:baseline;
  padding:9px 0;border-bottom:1px solid #f0f1f3;font-size:15.3px;line-height:1.6}
.specpoints .sp-label{font-size:11.1px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#565b63}
.specpoints .sp-value{color:#1f2124}
.specpoints li.sp-plain{grid-template-columns:1fr;position:relative;padding-left:18px}
.specpoints li.sp-plain::before{content:"";position:absolute;left:0;top:16px;width:6px;height:6px;border-radius:50%;background:var(--red)}

.supportlink{margin:-10px 0 24px;font-size:13.8px}
.supportlink a{display:inline-flex;align-items:center;gap:7px;color:var(--body);border-bottom:1px solid #e2e4e8;padding-bottom:2px}
.supportlink a:hover{color:var(--red);border-bottom-color:var(--red)}
.supportlink span{display:inline-block;transition:transform .25s}
.supportlink a:hover span{transform:translateX(4px)}

@media (max-width:560px){
  .specpoints li{grid-template-columns:1fr;gap:2px;padding:10px 0}
}

.ticks{list-style:none;padding:0;margin:0 0 24px}
.ticks.two{display:grid;grid-template-columns:1fr 1fr;gap:4px 22px}
.ticks li{position:relative;padding-left:20px;font-size:14.7px;margin-bottom:8px;line-height:1.55}
.ticks li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--red)}
.pactions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.pactions .btn{display:inline-flex;align-items:center;gap:8px}
.pactions .btn svg{display:block;flex:0 0 auto}
.assure{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--line)}
.assure li{font-size:13.8px;padding:5px 0;color:var(--body)}
.assure strong{color:var(--ink);font-weight:600}

.tabs{margin-top:64px;border:1px solid var(--line)}
.tabbar{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);background:#fafafa}
.tab{border:0;background:none;font:inherit;font-size:13.2px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:16px 24px;cursor:pointer;color:var(--body);border-bottom:2px solid transparent}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--ink);background:#fff;border-bottom-color:var(--red)}
.tabpanel{display:none;padding:30px 28px}
.tabpanel.on{display:block}
.tabpanel .ticks{margin-bottom:0}
.spectable{width:100%;border-collapse:collapse;font-size:14.7px}
.spectable th{text-align:left;font-weight:600;color:var(--ink);padding:11px 16px 11px 0;border-bottom:1px solid var(--line);width:38%;vertical-align:top}
.spectable td{padding:11px 0;border-bottom:1px solid var(--line)}
.docs{list-style:none;padding:0;margin:0}
.docs li{border-bottom:1px solid var(--line)}
.docs li:last-child{border-bottom:0}
.docs a{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;font-size:15.3px;color:var(--ink)}
.docs a:hover{color:var(--red)}
.docs span{font-size:11.1px;letter-spacing:.07em;text-transform:uppercase;color:var(--body);white-space:nowrap}
.docs.wide{margin-bottom:38px}
.dochead{font-size:19px;margin:34px 0 8px}
.card.enquiry{max-width:740px;margin:66px auto 0;text-align:left;padding:42px 44px 38px}
.card.enquiry h2{text-align:center;margin-bottom:6px}
.card.enquiry .sub{text-align:center;font-size:14.7px;margin:0 auto 26px;max-width:52ch}
.related-h{font-size:21px;margin:74px 0 26px;text-align:center}

/* ------------------------- quote request sheet -------------------------
   The form is laid out like the spec sheet this trade already passes around:
   a fixed label column, a value column, one hairline-separated row each.
   The row being filled in lifts out of the sheet — the only loud moment. */
.qsheet{text-align:left}
.qsheet .hp{position:absolute;left:-9999px}

.qs-pinned{display:flex;align-items:center;gap:14px;padding:12px 14px;margin-bottom:26px;
  background:#fafafb;border:1px solid #ebecef;border-radius:12px}
.qs-thumb{flex:0 0 auto;width:48px;height:48px;display:block;position:relative;
  background:#fff;border:1px solid #ebecef;border-radius:8px;overflow:hidden}
.qs-thumb img{display:block;width:100%;height:100%;object-fit:contain;padding:5px}
.qs-pinned-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.qs-pinned-text b{font-size:15.3px;font-weight:600;color:var(--ink);line-height:1.35}
.qs-pinned-text span{font-size:12.1px;letter-spacing:.08em;text-transform:uppercase;color:#565b63}

.qs-group{margin-bottom:28px}
.qs-group.qs-last{margin-bottom:22px}
.qs-group h3{font-family:var(--head);font-size:13.2px;letter-spacing:.14em;text-transform:uppercase;
  color:#5e626a;font-weight:600;margin:0 0 2px;padding-bottom:10px;border-bottom:1px solid #ebecef}

.qs-row{display:grid;grid-template-columns:168px 1fr;align-items:center;gap:0 20px;
  position:relative;padding:3px 0 3px 12px;border-bottom:1px solid #f1f2f4}
.qs-row.qs-tall{align-items:start;padding-top:14px}
/* the red marker that picks out the active row */
.qs-row::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);
  width:3px;height:22px;background:var(--red);border-radius:2px;
  transition:transform .22s cubic-bezier(.2,.7,.3,1)}
.qs-row.qs-tall::before{top:22px;transform:none;height:22px;transform-origin:top;transform:scaleY(0)}
.qs-row:focus-within::before{transform:translateY(-50%) scaleY(1)}
.qs-row.qs-tall:focus-within::before{transform:scaleY(1)}

.qs-row > label{font-size:14.7px;color:#33373d;margin:0;line-height:1.4;transition:color .2s}
.qs-row:focus-within > label{color:var(--ink)}

.qs-row input,.qs-row select,.qs-row textarea{
  display:block;width:100%;margin:0;padding:13px 2px;border:0;background:transparent;
  font:inherit;font-size:15.8px;color:var(--ink);border-radius:0}
.qs-row textarea{resize:vertical;min-height:78px;line-height:1.65;padding-top:2px}
.qs-row input:focus,.qs-row select:focus,.qs-row textarea:focus{outline:none}
.qs-row input::placeholder,.qs-row textarea::placeholder{color:#8d929b}
.qs-row select:has(option[value=""]:checked){color:#8d929b}
.qs-row select option{color:var(--ink)}
.qs-row select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5l5-5' fill='none' stroke='%238a8f98' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center;background-size:11px;padding-right:24px}

.qs-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.qs-foot p{margin:0;font-size:13.8px;line-height:1.6;color:#565b63;max-width:40ch}
.qs-foot .btn{border:0;cursor:pointer;padding:14px 32px}

@media (max-width:620px){
  .qs-row{grid-template-columns:1fr;gap:0;padding:10px 0 10px 12px}
  .qs-row > label{font-size:12.1px;letter-spacing:.06em;color:#565b63}
  .qs-row:focus-within > label{color:var(--ink)}
  .qs-row input,.qs-row select{padding:7px 2px 9px}
  .qs-row::before,.qs-row.qs-tall::before{top:12px;transform:scaleY(0);transform-origin:top;height:20px}
  .qs-row:focus-within::before,.qs-row.qs-tall:focus-within::before{transform:scaleY(1)}
  .qs-foot{flex-direction:column;align-items:stretch}
  .qs-foot .btn{width:100%}
  .qs-foot p{max-width:none;order:2;text-align:center}
}

.eform label{display:block;font-size:13.2px;font-weight:500;color:var(--ink);margin-bottom:14px}
.eform input,.eform textarea{display:block;width:100%;margin-top:6px;padding:11px 13px;border:1px solid var(--line);font:inherit;font-size:15.3px;background:#fff;color:var(--ink);border-radius:2px}
.eform input:focus,.eform textarea:focus{outline:none;border-color:var(--red)}
.eform .f2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.eform .hp{position:absolute;left:-9999px}
.eform button{border:0;cursor:pointer}
.contactgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.contactgrid h2{font-size:22px;margin-bottom:16px}
.contactgrid h3{font-family:var(--head);font-size:16.9px;margin:22px 0 8px}
.contactgrid p{margin:0 0 8px;font-size:15.3px}
.contactgrid .card.enquiry{margin:0;max-width:none}
.prose h2{font-size:21px;margin:30px 0 10px}
.prose p{max-width:78ch}
.listing{padding:60px 0 90px}

.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line);
  box-shadow:0 -8px 24px rgba(0,0,0,.1);transform:translateY(110%);transition:transform .25s}
.stickybar.show{transform:none}
.stickybar strong{display:block;font-size:14.7px;color:var(--ink)}
.stickybar span{font-size:12.1px;color:var(--body)}
/* ------------------------------- lightbox ------------------------------- */
.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;
  background:rgba(12,12,14,.93);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  padding:16px 16px 18px;opacity:0;transition:opacity .25s ease}
.lightbox.in{opacity:1}
.lightbox:focus{outline:none}
.lbhead{display:flex;align-items:center;gap:14px;min-height:42px;color:#fff;flex:0 0 auto}
.lbcount{font-size:12.1px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.lbtitle{font-size:13.8px;color:rgba(255,255,255,.9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lbclose{margin-left:auto;width:40px;height:40px;flex:0 0 auto;border:1px solid rgba(255,255,255,.18);border-radius:50%;
  background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:grid;place-items:center;
  transition:background .22s,border-color .22s,transform .22s}
.lbclose:hover{background:var(--red);border-color:var(--red);transform:rotate(90deg)}
.lbstage{position:relative;flex:1 1 auto;min-height:0;display:grid;place-items:center;padding:0 60px}
.lbframe{background:#fff;border-radius:14px;padding:18px;max-width:min(1000px,100%);max-height:100%;
  box-shadow:0 34px 90px rgba(0,0,0,.5);display:grid;place-items:center;
  transform:scale(.96);transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.lightbox.in .lbframe{transform:none}
.lbframe img{display:block;max-width:100%;max-height:calc(100vh - 220px);width:auto;height:auto;object-fit:contain}
.lbnav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border:1px solid rgba(255,255,255,.2);
  border-radius:50%;background:rgba(18,18,20,.6);color:#fff;cursor:pointer;display:grid;place-items:center;
  transition:background .22s,border-color .22s}
.lbnav:hover{background:var(--red);border-color:var(--red)}
.lbnav.prev{left:4px}
.lbnav.next{right:4px}
.lbstrip{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:14px;flex:0 0 auto}
.lbstrip button{width:54px;height:54px;padding:5px;border:1px solid rgba(255,255,255,.18);border-radius:9px;
  background:#fff;cursor:pointer;filter:brightness(.74) saturate(.7);
  transition:filter .22s,border-color .22s,transform .22s}
.lbstrip button img{width:100%;height:100%;object-fit:contain}
.lbstrip button:hover{filter:brightness(.92) saturate(.9);transform:translateY(-2px)}
.lbstrip button.on{filter:none;border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
@media (max-width:700px){
  .lbframe{padding:12px;border-radius:12px}
  .lbframe img{max-height:calc(100vh - 230px)}
  .lbstage{padding:0 46px}
  .lbnav{width:38px;height:38px}
  .lbnav.prev{left:0}
  .lbnav.next{right:0}
  .lbtitle{display:none}
  .lbstrip button{width:44px;height:44px}
}

@media (max-width:980px){
  .catgrid{grid-template-columns:1fr;gap:26px}
  .catside{position:static;display:none}
  .chips{display:flex}
  .pdgrid{grid-template-columns:1fr;gap:34px}
  .gallery{position:static}
  .strip .wrap{grid-template-columns:1fr;gap:16px}
}
@media (max-width:640px){
  .ticks.two{grid-template-columns:1fr}
  .eform .f2{grid-template-columns:1fr}
  .card.enquiry{padding:26px 20px;margin-top:44px}
  .tabpanel{padding:22px 18px}
  .tab{padding:13px 16px;font-size:12.1px}
  .gthumbs{grid-template-columns:repeat(4,1fr)}
  .contactgrid{grid-template-columns:1fr;gap:34px}
  .pdetail{padding-bottom:110px}
}

/* ===================== inner page banner + About Us ===================== */
.wrap.narrow{max-width:1030px}
.banner{position:relative;background:#1b1b1b center/cover no-repeat;min-height:430px;display:grid;place-items:center;text-align:center}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.3))}
.banner .wrap{position:relative;z-index:1}
.banner h1{color:#fff;font-size:clamp(34px,5.6vw,62px);letter-spacing:.012em;text-shadow:0 2px 18px rgba(0,0,0,.4)}

.about-intro{padding:62px 0 12px}
.about-intro h2{font-size:clamp(25px,3.4vw,36px);margin-bottom:18px}
.about-intro .lead{font-size:clamp(17px,1.6vw,20px);line-height:1.6;color:#1c2440;font-weight:300;margin:0 0 26px;max-width:62ch}
.about-intro p{font-size:16.4px;line-height:1.85;color:#262a33;margin:0 0 22px;max-width:78ch}

.reviews{padding:52px 0 0}
.reviews h2{font-size:clamp(23px,3.1vw,33px);margin-bottom:4px}
.reviews .sub{margin:0 0 28px;font-size:17px;color:#1f2024;font-weight:300}
.reviews-band{background:#e9e9e9 center/cover no-repeat;padding:92px 0 54px;position:relative}
.reviews-band::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.42)}
.reviews-band .wrap{position:relative}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;max-width:1030px;margin:0 auto;align-items:stretch}
.review{position:relative;height:calc(100% - 34px);margin:34px 0 0;background:#e3e3e3;border-radius:14px;padding:46px 26px 70px;text-align:center;
  box-shadow:0 14px 34px rgba(0,0,0,.09);display:flex;flex-direction:column}
.review .avatar{position:absolute;top:-34px;left:50%;transform:translateX(-50%);width:68px;height:68px;border-radius:50%;
  background:#111;display:grid;place-items:center;overflow:hidden;border:3px solid #111}
.review .avatar img{width:100%;height:100%;object-fit:cover}
.review .avatar svg{width:52px;height:52px}
.review figcaption{margin-bottom:12px}
.review figcaption strong{display:block;font-size:17.5px;font-weight:500;color:#1d1d1f}
.review .role{display:block;font-size:15.8px;font-weight:600;color:#bd2e33;margin-top:2px}
.review blockquote{margin:0 0 auto;font-size:13.8px;line-height:1.78;font-style:italic;color:#2b2b2e}
.review .quote-mark{position:absolute;left:26px;bottom:24px;width:46px;color:var(--red)}
.review .quote-mark svg{width:100%;height:auto;fill:currentColor}

.promise{padding:60px 0 86px}
.promise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.promise-box{display:flex;align-items:center;gap:16px;padding:30px 26px;min-height:132px}
.promise-box .pic{flex:0 0 auto;width:44px}
.promise-box .pic svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.promise-box h3{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:17px;font-weight:600;margin:0 0 5px}
.promise-box p{margin:0;font-size:14.7px;line-height:1.6}
.promise-box.p1{background:var(--red-btn);color:#fff}
.promise-box.p1 h3{color:#fff}
.promise-box.p1 p{color:rgba(255,255,255,.92)}
.promise-box.p2{background:#f2f2f2;color:#1d1d1f}
.promise-box.p2 h3{color:#1d1d1f}
.promise-box.p2 p{color:#2b2b2e}
.promise-box.p3{background:#5d0f12;color:#fff}
.promise-box.p3 h3{color:#fff}
.promise-box.p3 p{color:rgba(255,255,255,.88)}

@media (max-width:900px){
  .review-grid{grid-template-columns:1fr;max-width:420px}
  .promise-grid{grid-template-columns:1fr}
  .banner{min-height:300px}
  .about-intro{padding-top:46px}
  .reviews-band{padding:80px 0 44px}
}


/* ========================= service pages ========================= */
.svc-banner{position:relative;background:#1b1b1b center/cover no-repeat;padding:50px 0}
.svc-banner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(10,0,0,.82) 0%,rgba(120,16,18,.72) 48%,rgba(232,42,31,.68) 100%)}
.svc-banner .wrap{position:relative;z-index:1}
.svc-banner-box{border:3px solid rgba(255,255,255,.55);padding:52px 46px;text-align:center;max-width:var(--max);margin:0 auto}
.svc-banner-box h1{color:#fff;font-size:clamp(26px,3.7vw,41px);margin-bottom:16px}
.svc-banner-box p{margin:0 auto;max-width:72ch;color:#fff;font-size:17.5px;line-height:1.8}

.svc-why{padding:70px 0 10px}
.svc-why .framed,.svc-retro .framed{position:relative;padding:0 22px;width:fit-content;margin:0 auto}
.svc-why .framed::before,.svc-why .framed::after,
.svc-retro .framed::before,.svc-retro .framed::after{content:"";position:absolute;top:-16px;bottom:-16px;width:20px;background:var(--red)}
.svc-why .framed::before,.svc-retro .framed::before{left:0}
.svc-why .framed::after,.svc-retro .framed::after{right:0}
.svc-why .framed .shot,.svc-retro .framed .shot{position:relative;z-index:1;max-width:340px;width:100%}
.svc-why.centered{padding:70px 0 30px;text-align:center}
.why-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:64px;align-items:center}
.why-narrow{max-width:620px;margin:0 auto}
.svc-why h2,.svc-retro h2{font-size:clamp(22px,2.8vw,31px);margin-bottom:18px;line-height:1.25;max-width:17em}
.svc-why p,.svc-retro p{font-size:17px;line-height:1.8;color:var(--body);margin:0 0 18px}
.checks{list-style:none;margin:0 0 22px;padding:0}
.checks li{position:relative;padding-left:36px;font-size:16.5px;line-height:1.6;margin-bottom:14px;color:var(--body);font-weight:500}
.checks li::before{content:"";position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;background:var(--red)}
.checks li::after{content:"";position:absolute;left:7px;top:9px;width:10px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
.checks.two{display:grid;grid-template-columns:1fr 1fr;gap:0 34px}
.checks.light li{color:#f1f1f1}
.checks.light li strong{color:#fff;font-weight:600}
.svc-why.centered .checks{display:inline-block;text-align:left}

.svc-benefits{padding:56px 0 66px}
.benefit-grid{display:grid;grid-template-columns:.6fr 1.4fr;gap:56px;align-items:center}
.benefit-intro h2{font-size:clamp(23px,2.9vw,32px);line-height:1.2;margin-bottom:16px}
.benefit-intro p{font-size:16px;color:var(--body);margin:0;line-height:1.75}
.benefit-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.bcard{border:1px solid var(--line);padding:32px 26px;text-align:center;background:#fff}
.bcard .bicon{display:inline-grid;place-items:center;color:var(--red);margin-bottom:12px}
.bcard .bicon svg,.type .ticon svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bcard h3{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:19px;font-weight:600;margin:0 0 10px;color:var(--ink)}
.bcard p{margin:0;font-size:15.5px;line-height:1.65;color:var(--body)}

.svc-form{background:linear-gradient(100deg,#1b0203,#3d0608 60%,#520a0c);padding:52px 0}
.formcard{background:#fff;max-width:760px;margin:0 auto;padding:30px 30px 26px}
.formcard h2{font-size:24px;text-align:center;margin-bottom:20px}
.eform.quote label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#45484e;font-weight:600}
.eform.quote input,.eform.quote textarea{border:1px solid #d8d9dd;border-radius:3px;font-size:16px;color:var(--ink)}
.eform .center{text-align:center}

.svc-dark{position:relative;background:linear-gradient(100deg,#000 0%,#1d0203 46%,#6b0f12 78%,#9c1417 100%);
  background-size:cover;background-position:center;color:#fff;padding:70px 0}
.svc-dark::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,0,0,.9),rgba(90,12,14,.72))}
.svc-dark .wrap{position:relative}
.svc-dark{text-align:center}
.svc-dark h2{color:#fff;font-size:clamp(23px,3.2vw,34px);margin-bottom:16px}
.dark-lead{max-width:86ch;color:#f1f1f1;font-size:17px;line-height:1.8;margin:0 auto 34px}
.dark-note{max-width:86ch;color:#f1f1f1;font-size:16.5px;line-height:1.8;margin:6px auto 26px}
.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;max-width:980px;margin:0 auto 34px;text-align:center}
.type .ticon{display:inline-grid;place-items:center;width:64px;height:64px;border:1px solid rgba(255,255,255,.7);color:#fff;margin-bottom:16px}
.type h3{color:#fff;font-family:var(--text);text-transform:none;letter-spacing:0;font-size:19.5px;font-weight:600;margin:0 0 10px}
.type p{margin:0;font-size:15.5px;color:#e8e8e8;line-height:1.65}
.svc-dark .checks{margin-bottom:26px;text-align:left;max-width:980px;margin-left:auto;margin-right:auto}

.svc-process{padding:70px 0}
.process-grid{display:grid;grid-template-columns:.6fr 1.4fr;gap:56px;align-items:center}
.process-intro h2{font-size:clamp(23px,2.9vw,32px);line-height:1.2;margin-bottom:16px}
.process-intro p{font-size:16px;color:var(--body);margin:0;max-width:40ch;line-height:1.75}
.step-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.step{border:1px solid var(--line);padding:32px 26px;text-align:center;background:#fff}
.step .num{display:inline-grid;place-items:center;width:54px;height:54px;border:1px solid #f0cfd0;color:var(--red);
  font-family:var(--head);font-size:31px;font-weight:700;margin-bottom:14px;line-height:1}
.step h3{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:19px;font-weight:600;margin:0 0 10px;color:var(--ink)}
.step p{margin:0;font-size:15.5px;line-height:1.65;color:var(--body)}

.svc-retro{padding:16px 0 70px}

.svc-faq{padding:10px 0 86px}
.svc-faq h2{text-align:center;font-size:clamp(24px,3.2vw,34px);margin-bottom:30px}
.faqs details{border:1px solid var(--line);margin-bottom:10px;background:#fff}
.faqs summary{list-style:none;cursor:pointer;padding:18px 52px 18px 22px;position:relative;font-size:17px;font-weight:600;color:var(--ink)}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:23px;color:var(--red);line-height:1}
.faqs details[open] summary::after{content:"–"}
.faqs details[open] summary{border-bottom:1px solid var(--line)}
.faq-a{padding:16px 22px 20px;font-size:16px;line-height:1.75;color:var(--body)}

.svc-index{padding:70px 0 90px}
.svc-index-intro{max-width:76ch;margin:0 auto 44px;text-align:center;font-size:17px;line-height:1.8;color:var(--body)}
.svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:46px;align-items:start}
.svc-card h2{font-size:clamp(20px,2.3vw,26px);margin-bottom:16px}
.svc-card p{font-size:15.8px;line-height:1.85;color:#2a2d33;margin:0 0 24px}

@media (max-width:980px){
  .why-grid,.benefit-grid,.process-grid{grid-template-columns:1fr;gap:30px}
  .type-grid,.svc-cards{grid-template-columns:1fr;gap:30px}
  .checks.two{grid-template-columns:1fr}
  .benefit-cards,.step-cards{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .benefit-cards,.step-cards{grid-template-columns:1fr}
  .svc-banner-box{padding:26px 18px}
  .formcard{padding:22px 18px}
}

/* ============================ contact page ============================ */
.contact-banner{height:430px;background:#2a1030 center/cover no-repeat}
.contact-main{padding:76px 0 90px}
.contact-main h1{font-size:clamp(34px,5vw,56px);margin-bottom:34px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.contact-left h2{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:21px;font-weight:400;color:#1d1d1f;margin-bottom:14px}
.contact-left .lead{font-size:16.9px;line-height:1.8;color:#262a33;margin:0 0 34px;max-width:46ch}
.infowrap{position:relative;padding:0 0 42px 0}
.infowrap::after{content:"";position:absolute;left:0;right:0;top:92px;bottom:0;background:#f3f3f3;z-index:0}
.infocard{position:relative;z-index:1;background:var(--red-btn);color:#fff;padding:34px 32px 38px;max-width:360px;margin-left:60px}
.infocard h3{font-family:var(--text);text-transform:none;letter-spacing:0;color:#fff;font-size:23px;font-weight:600;margin:0 0 20px}
.infocard p{margin:0 0 4px;font-size:15.8px;line-height:1.7;color:#fff}
.infocard a{color:#fff}
.infocard a:hover{text-decoration:underline}
.infocard .ilabel{margin-top:20px;margin-bottom:8px;font-weight:500}
.eform.lined label{font-size:12.1px;letter-spacing:.12em;text-transform:uppercase;color:#55555a;font-weight:500;margin-bottom:26px}
.eform.lined input,.eform.lined textarea{border:0;border-bottom:1px solid #d8d8d8;border-radius:0;padding:10px 2px;background:transparent}
.eform.lined input:focus,.eform.lined textarea:focus{outline:none;border-bottom-color:var(--red)}
.eform.lined .f2{gap:0 30px}
.eform.lined button{margin-top:4px;padding:13px 38px}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;gap:40px}
  .contact-banner{height:260px}
  .infocard{margin-left:0;max-width:none}
  .infowrap::after{display:none}
  .eform.lined .f2{grid-template-columns:1fr}
}

/* ============================== news / blog ============================== */
.news-index{padding:60px 0 90px}
.news-index.more{padding-top:10px;border-top:1px solid var(--line);margin-top:40px}
.news-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-bottom:34px}
.news-intro{max-width:62ch;margin:0;font-size:16.4px;line-height:1.8;color:#262a33}
.news-search{position:relative;display:flex;align-items:center;gap:10px;flex:0 0 auto;
  border:1px solid var(--line);border-radius:999px;padding:11px 20px;min-width:290px;color:#8d929b;
  transition:border-color .22s,box-shadow .22s,color .22s}
.news-search:focus-within{border-color:var(--red);color:var(--red);box-shadow:0 0 0 4px rgba(232,57,63,.08)}
.news-search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:14.7px;color:var(--ink)}
.news-search input:focus{outline:none}

/* ---- the branded panel that stands in for a missing photo ---- */
.nglyph{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,#17181c 0%,#1f1012 55%,#3a0d10 100%)}
.nglyph::after{content:"";position:absolute;inset:0;opacity:.5;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 1px,transparent 1px 15px)}
.nglyph svg{position:relative;width:46%;max-width:132px;height:auto;overflow:visible;
  --pr:#ff4b43;transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.nglyph.v1 svg{width:40%}
.nlead-media .nglyph svg{max-width:168px}
.ncard:hover .nglyph svg,.nlead:hover .nglyph svg{transform:scale(1.07)}

/* ---- lead article ---- */
.nlead{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:stretch;
  background:#fff;border:1px solid #ebecef;border-radius:18px;overflow:hidden;margin-bottom:34px;
  box-shadow:0 1px 2px rgba(17,17,20,.04);
  transition:box-shadow .32s cubic-bezier(.2,.7,.3,1),transform .32s cubic-bezier(.2,.7,.3,1),border-color .32s}
.nlead:hover{transform:translateY(-4px);border-color:#dfe1e6;box-shadow:0 22px 48px rgba(17,17,20,.13)}
.nlead[hidden]{display:none}
.nlead-media{position:relative;display:block;min-height:330px;overflow:hidden;background:#f3f4f6}
.nlead-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.nlead:hover .nlead-media img{transform:scale(1.04)}
.nflag{position:absolute;z-index:2;top:16px;left:16px;background:#fff;color:var(--ink);
  font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 13px;border-radius:999px;box-shadow:0 3px 12px rgba(0,0,0,.18)}
.nlead-body{padding:40px 44px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.nlead-body h2{font-family:var(--text);text-transform:none;letter-spacing:-.01em;
  font-size:clamp(23px,2.2vw,30px);font-weight:600;line-height:1.25;margin:0;color:var(--ink)}
.nlead-body h2 a:hover{color:var(--red)}
.nlead-body p{margin:0;font-size:16.4px;line-height:1.75;color:#2a2d33;max-width:52ch}

/* ---- grid ---- */
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:28px}
.ncard{position:relative;border:1px solid #ebecef;border-radius:18px;background:#fff;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(17,17,20,.04);
  transition:box-shadow .32s cubic-bezier(.2,.7,.3,1),transform .32s cubic-bezier(.2,.7,.3,1),border-color .32s}
.ncard:hover{box-shadow:0 22px 48px rgba(17,17,20,.13);transform:translateY(-5px);border-color:#dfe1e6}
.ncard[hidden]{display:none}
.nmedia{display:block;aspect-ratio:16/10;background:#f3f4f6;overflow:hidden;position:relative}
.nmedia img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.ncard:hover .nmedia img{transform:scale(1.06)}
.nbody{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.nmeta{display:flex;align-items:center;gap:9px}
.ndate{font-size:11.1px;letter-spacing:.12em;text-transform:uppercase;color:var(--red-text);font-weight:700}
.ndot{width:3px;height:3px;border-radius:50%;background:#b9bdc4;flex:0 0 auto}
.nread{font-size:11.1px;letter-spacing:.1em;text-transform:uppercase;color:#6f747c;font-weight:600}
.ncard h2{font-family:var(--text);text-transform:none;letter-spacing:-.005em;font-size:19px;font-weight:600;
  line-height:1.34;margin:0;color:var(--ink)}
.ncard h2 a:hover{color:var(--red)}
.ncard p{margin:0;font-size:14.7px;line-height:1.72;color:#2a2d33}
.ncard .link,.nlead .link{margin-top:auto;padding-top:14px;font-size:12.7px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink);display:inline-flex;align-items:center;gap:8px}
.nlead .link{margin-top:6px;padding-top:0}
.ncard .link span,.nlead .link span{display:inline-block;transition:transform .25s}
.ncard:hover .link,.nlead:hover .link{color:var(--red)}
.ncard:hover .link span,.nlead:hover .link span{transform:translateX(5px)}

/* the whole card is the link target */
.ncard h2 a::after,.nlead-body h2 a::after{content:"";position:absolute;inset:0;z-index:1}
.nlead{position:relative}

@media (max-width:860px){
  .nlead{grid-template-columns:1fr}
  .nlead-media{min-height:0;aspect-ratio:16/9}
  .nlead-body{padding:28px 26px 30px}
  .news-head{gap:18px}
  .news-search{min-width:0;width:100%}
}
@media (max-width:560px){
  .news-grid{grid-template-columns:1fr;gap:20px}
  .nbody{padding:20px 20px 22px}
}
.post-banner{background-color:#1b1b1b}
.post{padding:56px 0 70px}
.post .meta{font-size:12.7px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin:14px 0 18px;font-weight:600}
.post .lead{font-size:18px;line-height:1.75;color:#1c2440;font-weight:300;margin:0 0 26px}
.post-body p{font-size:16.4px;line-height:1.9;color:#262a33;margin:0 0 20px}
.post-body h2{font-size:22px;margin:34px 0 14px}
.post-body ul{margin:0 0 18px;padding-left:20px}
.post-body li{font-size:15.8px;line-height:1.8;color:#262a33;margin-bottom:6px}

/* ============================ support library ============================ */
/* The document library is dense and tabular, so it runs the full content width
   rather than the 1030px shared by the other narrow pages. */
.sup-head .wrap.narrow,
.sup-top .wrap.narrow,
.sup-filter .wrap.narrow,
.sup-list .wrap.narrow{max-width:var(--max)}

.sup-head{padding:58px 0 10px;text-align:center}
.sup-head h1{font-size:clamp(34px,5vw,54px)}
.sup-top{padding:34px 0 10px}
.sup-topgrid{display:grid;grid-template-columns:1.25fr .75fr;gap:52px;align-items:start}
.sup-intro{font-size:17.5px;line-height:1.85;color:#262a33;margin:0 0 22px;max-width:60ch}
.sup-search{position:relative;max-width:480px}
.sup-search .mag{position:absolute;left:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;
  background:var(--red);color:#fff;display:grid;place-items:center}
.sup-search input{width:100%;padding:14px 20px 14px 52px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:16.5px;color:var(--ink);background:#fff}
.sup-search input:focus{outline:none;border-color:var(--red)}
.sup-tags{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:16px}
.sup-tags .tglabel{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c5c62}
.sup-tags .tg{border:0;background:none;padding:0;cursor:pointer;font:inherit;font-size:12.5px;letter-spacing:.14em;
  text-transform:uppercase;color:#2a2d33}
.sup-tags .tg:hover{color:var(--red)}
.sup-stats{border:1px solid var(--line);background:#fafafa}
.statrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 18px;border-bottom:1px solid var(--line)}
.statrow:last-child{border-bottom:0}
.statrow b{font-family:var(--head);font-size:24px;font-weight:700;color:var(--red-text);line-height:1}
.statrow span{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:#2a2d33}

.sup-filter{padding:22px 0 0}
.filterbar-doc{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid var(--line);padding:12px 16px;background:#fff}
.filterbar-doc .flabel{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c5c62;margin-right:4px}
.fchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 18px;font:inherit;font-size:13.5px;
  letter-spacing:.07em;text-transform:uppercase;color:#262a33;cursor:pointer}
.fchip:hover{border-color:#9a1a1e;color:#9a1a1e}
.fchip.on{background:#7d1114;border-color:#7d1114;color:#fff}

.sup-list{padding:34px 0 90px}
.docgroup{margin-bottom:38px}
.docgroup h2{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:23px;font-weight:600;color:#1f3864;
  display:flex;align-items:center;gap:12px;margin-bottom:6px}
.docgroup .gcount{font-size:12.1px;letter-spacing:.06em;text-transform:uppercase;color:#9a1a1e;background:#fdeaea;
  border-radius:999px;padding:3px 10px;font-weight:600}
.docgroup .gdesc{font-size:15.5px;line-height:1.7;color:#2a2d33;margin:0 0 14px;max-width:80ch}
.doccard{border:1px solid var(--line);background:#fff}
.docrow{display:grid;grid-template-columns:60px 100px 1fr auto;gap:18px;align-items:center;padding:15px 20px;border-bottom:1px solid #f0f0f0}
.docrow:last-child{border-bottom:0}
.docrow:hover{background:#fcfcfd}
.dthumb{width:66px;height:70px;border:1px solid var(--line);border-radius:3px;display:grid;place-items:center;
  overflow:hidden;background:#fff;flex:0 0 auto}
/* Whole image, never cropped — product shots and logos lose their meaning when the
   edges are cut off, so the picture is fitted inside the tile with a little air. */
.dthumb img{width:100%;height:100%;object-fit:contain;padding:5px;box-sizing:border-box;display:block}
.dthumb.is-blank{background:#fafbfc;border-style:dashed}
.dtype{font-size:11.1px;letter-spacing:.1em;text-transform:uppercase;color:#9a1a1e;background:#fdeaea;border-radius:3px;
  padding:4px 8px;text-align:center;font-weight:600;white-space:nowrap}
.dmain{min-width:0}
.dtitle{display:block;font-size:17.5px;font-weight:500;color:#1f3864;line-height:1.35}
.dtitle:hover{color:var(--red)}
.dmeta{display:block;font-size:14px;color:#565b63;margin-top:3px;line-height:1.5}
.dactions{display:flex;align-items:center;gap:12px;white-space:nowrap}
.dview{font-size:15px;color:#262a33}
.dview:hover{color:var(--red)}
.dactions .btn.sm{background:#9a1a1e;border-radius:3px;letter-spacing:.06em}
.dactions .btn.sm:hover{background:var(--red)}
.noresults{padding:26px 0;color:#2a2d33;font-size:16.5px}

.sup-cta{background:#f5f5f6;border:1px solid var(--line);padding:26px 28px;margin-top:10px}
.sup-cta h3{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:19.5px;font-weight:600;color:#1f3864;margin:0 0 8px}
.sup-cta p{font-size:15.5px;line-height:1.75;color:#2a2d33;margin:0 0 16px;max-width:76ch}
.sup-cta .btn{background:#9a1a1e;border-radius:3px}
.chipbtn{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:3px;padding:10px 16px;font-size:14.5px;color:#262a33}
.chipbtn:hover{border-color:var(--red);color:var(--red)}
.sup-foot{margin-top:18px;font-size:13.5px;color:#5f636a}

@media (max-width:900px){
  .sup-topgrid{grid-template-columns:1fr;gap:26px}
  .docrow{grid-template-columns:44px 1fr;gap:10px;padding:14px}
  .dtype{grid-column:2;justify-self:start}
  .dmain{grid-column:2}
  .dactions{grid-column:2;padding-top:4px}
}

/* ============================ products index ============================ */
.prod-head{padding:60px 0 44px;text-align:center}
.prod-head h1{font-size:clamp(40px,6.4vw,76px);letter-spacing:.01em}
.prod-intro{max-width:74ch;margin:18px auto 0;font-size:15.8px;line-height:1.8;color:#262a33}
.prod-head .btn{margin-top:28px;padding:14px 30px}
.prod-tiles{padding:0 0 90px}
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px 48px;max-width:1220px;margin:0 auto}
.tile{display:block;text-align:center}
.tile-media{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:#f1f2f3;border-radius:16px}
.tile-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.tile-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(232,42,31,.78) 0%,rgba(232,42,31,.42) 34%,rgba(232,42,31,.12) 62%,rgba(232,42,31,0) 85%);
  transition:opacity .35s}
.tile:hover .tile-media img{transform:scale(1.05)}
.tile:hover .tile-media::after{opacity:.55}
.tile-media .noimg{display:grid;place-items:center;height:100%;color:#8b8f95;font-size:13.2px}
.tile h2{margin:22px 0 0;font-size:clamp(22px,2.9vw,34px);color:var(--ink);letter-spacing:.012em}
.tile:hover h2{color:var(--red)}
.tile p{margin:10px auto 0;max-width:46ch;font-size:14.7px;line-height:1.7;color:#2a2d33}
@media (max-width:860px){
  .tile-grid{grid-template-columns:1fr;gap:36px}
  .prod-head{padding:40px 0 30px}
}

/* ====================== product landing (operators) ====================== */
.svc-banner-box .eyebrow-line{font-size:14.7px;color:#fff;margin:0 0 12px;font-weight:400}
.svc-banner-box h1 span{display:block;font-size:.82em;margin-top:6px}

.op-why{padding:64px 0 54px;text-align:center}
.op-why h2{font-size:clamp(21px,2.7vw,29px);line-height:1.3;margin:0 auto 34px;max-width:24ch}
.why-pairs{display:grid;grid-template-columns:1fr 1fr;gap:28px 46px;text-align:left;margin-bottom:30px}
.pair{display:grid;grid-template-columns:26px 1fr;gap:14px;align-items:start}
.tickmark{width:22px;height:22px;border-radius:50%;background:var(--red);position:relative;margin-top:3px}
.tickmark::after{content:"";position:absolute;left:6.5px;top:7px;width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
.pair h3{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:17px;font-weight:600;margin:0 0 6px;color:var(--ink)}
.pair p{margin:0;font-size:13.8px;line-height:1.7;color:#2a2d33}
.arrowlink{display:inline-block;font-size:13.2px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--red);
  border-bottom:1px solid var(--red);padding-bottom:5px}
.arrowlink:hover{color:#b3161b;border-color:#b3161b}

.op-featured{background:linear-gradient(100deg,#6d0c0f 0%,#b4151a 48%,#e8392a 100%);color:#fff;padding:26px 0}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;min-height:150px}
.feat-label{display:block;font-size:12.7px;color:#ffd9d6;margin-bottom:10px}
.op-featured h2{color:#fff;font-size:clamp(20px,2.5vw,28px);line-height:1.25;max-width:14ch}
.feat-media{justify-self:end;max-width:430px;width:100%}
.feat-media img{width:auto;max-width:100%;max-height:170px;height:auto;object-fit:contain;margin-left:auto;display:block}

.op-detail{padding:66px 0 10px}
.op-detail h2{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:22px;font-weight:600;margin-bottom:16px}
.op-detail p{font-size:14.7px;line-height:1.85;color:#2a2d33;margin:0 0 16px}
.dots{list-style:none;margin:0 0 22px;padding:0}
.dots li{position:relative;padding-left:16px;font-size:13.8px;line-height:1.7;color:#2a2d33;margin-bottom:9px}
.dots li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:#1d1d1f}
.dots li strong{color:var(--ink);font-weight:600}

.op-solutions{padding:56px 0 70px}
.op-solutions .benefit-intro h2{font-family:var(--head);text-transform:uppercase;font-size:clamp(20px,2.4vw,26px);max-width:14ch}
.op-solutions .benefit-intro .btn{margin-top:16px}
.op-solutions .bcard p{font-size:13.2px;line-height:1.65}

.op-audience{padding:64px 0}
.op-audience h2.center{text-align:center;margin-bottom:38px}
.aud-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center;margin-bottom:34px}
.op-audience .center{text-align:center}
.op-audience .ticon{width:50px;height:50px}
.op-audience .type h3{font-size:16.9px}
.op-audience .type p{font-size:13.2px}

.op-essential{padding:62px 0 80px}
.ess-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:58px;align-items:center}
.ess-grid h2{font-family:var(--head);text-transform:uppercase;font-size:clamp(20px,2.4vw,26px);line-height:1.25;margin-bottom:18px;max-width:22ch}
.ess-grid h2.ready{margin-top:34px}
.leadlist{list-style:none;margin:0;padding:0}
.leadlist li{font-size:13.8px;line-height:1.7;color:#2a2d33;margin-bottom:11px}
.leadlist li strong{color:var(--ink);font-weight:600}
.ready-text{font-size:13.8px;line-height:1.8;color:#2a2d33;margin:0;max-width:52ch}
.ready-text a{color:var(--red);text-decoration:underline}

@media (max-width:980px){
  .why-pairs,.feat-grid,.ess-grid{grid-template-columns:1fr;gap:26px}
  .aud-grid{grid-template-columns:1fr 1fr}
  .feat-media{justify-self:center}
}
@media (max-width:640px){ .aud-grid{grid-template-columns:1fr} }

/* ========================= category catalogue ========================= */
.cat-hero{background:linear-gradient(100deg,#0d0102 0%,#580c0f 46%,#c4181b 78%,#ef2a1f 100%);color:#fff;padding:46px 0 42px;position:relative;overflow:hidden}
.cat-hero::after{content:"";position:absolute;right:-70px;top:-60px;width:300px;height:300px;border:28px solid rgba(255,255,255,.07);transform:rotate(18deg)}
.cat-hero .wrap{position:relative}
.cat-hero h1{color:#fff;font-size:clamp(30px,4.4vw,52px);margin:10px 0 12px}
.cat-lead{margin:0;max-width:72ch;color:#f6dcda;font-size:15.3px;line-height:1.8}
.cat-hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:24px}
.cat-hero-actions .btn{background:#fff;color:var(--red-text)}
.cat-hero-actions .btn:hover{background:#1d1d1f;color:#fff}
.cat-count{font-size:12.1px;letter-spacing:.14em;text-transform:uppercase;color:#f3c9c6}

.cat-rail{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:92px;z-index:20}
.railbar{display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding:14px 0}
.railsearch{position:relative;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:999px;padding:9px 16px;min-width:264px;color:#5c5c62}
.railsearch input{border:0;background:none;font:inherit;font-size:14.7px;color:var(--ink);width:100%}
.railsearch input:focus{outline:none}
.railsearch:focus-within{border-color:var(--red);color:var(--red)}
.railcats{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.railcats a{font-size:12.1px;letter-spacing:.07em;text-transform:uppercase;padding:7px 14px;border:1px solid var(--line);border-radius:999px;color:#262a33}
.railcats a:hover{border-color:var(--red);color:var(--red)}
.railcats a.on{background:var(--red-btn);border-color:var(--red);color:#fff}

.cat-list{padding:42px 0 90px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:24px}
.pitem{position:relative;background:#fff;border:1px solid #ebecef;border-radius:16px;
  display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(17,17,20,.04);
  transition:box-shadow .32s cubic-bezier(.2,.7,.3,1),transform .32s cubic-bezier(.2,.7,.3,1),border-color .32s}
.pitem:hover{transform:translateY(-5px);border-color:#dfe1e6;box-shadow:0 20px 44px rgba(17,17,20,.13)}
.pitem[hidden]{display:none}

/* model chip — floats on the white panel, never over the product */
.ptag{position:absolute;z-index:3;top:12px;left:12px;background:#fff;color:#2e323a;
  font-size:10.1px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;padding:5px 10px;
  border:1px solid #e7e8ec;border-radius:999px;box-shadow:0 2px 8px rgba(17,17,20,.07);
  transition:background .25s,border-color .25s,color .25s}
.pitem:hover .ptag{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 4px 14px rgba(232,57,63,.3)}

/* square white stage — the whole photo is always visible, transparent PNGs stay clean.
   The photo is pinned to an explicit inset box so object-fit:contain always has a
   definite height to work against — nothing is ever cropped, whatever the shape. */
.pitem-media{position:relative;display:block;aspect-ratio:1/1;
  background:#fff;border-radius:15px 15px 0 0;border-bottom:1px solid #f1f2f4;overflow:hidden}
.pitem-media img{display:block;width:100%;height:100%;object-fit:contain;padding:40px 26px 34px;
  transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.pitem:hover .pitem-media img{transform:scale(1.05)}
.pitem-media .noimg{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:9px;
  color:#92969e;font-size:11.1px;letter-spacing:.1em;text-transform:uppercase}
.pitem-media .shots{position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:5px;
  background:#fff;color:#3b3f46;font-size:10.1px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 9px;border:1px solid #ebecef;border-radius:999px;box-shadow:0 2px 8px rgba(17,17,20,.06)}
.pitem-media .shots svg{display:block;opacity:.6}

.pitem-body{padding:17px 18px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.pitem-body h2{flex:0 0 auto}
.pitem h2{font-family:var(--head);text-transform:uppercase;letter-spacing:.015em;font-size:16.4px;font-weight:600;
  line-height:1.3;margin:0;color:var(--ink)}
.pitem h2 a:hover{color:var(--red)}
.pitem-foot{margin-top:auto;padding-top:14px;border-top:1px solid #f1f2f4;
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.detlink{font-size:11.1px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.detlink span{display:inline-block;transition:transform .25s}
.pitem:hover .detlink{color:var(--red)}
.pitem:hover .detlink span{transform:translateX(4px)}
.quotebtn{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;
  color:#565b63;transition:background .25s,border-color .25s,color .25s,transform .25s}
.quotebtn:hover{background:var(--red);border-color:var(--red);color:#fff;transform:scale(1.08)}

@media (max-width:620px){
  .pgrid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:14px}
  .pitem{border-radius:13px}
  .pitem-media{border-radius:12px 12px 0 0}
  .pitem-media img{padding:30px 15px 24px}
  .pitem-body{padding:13px 13px 12px;gap:6px}
  .pitem h2{font-size:13.8px}
  .pitem-foot{padding-top:11px}
  .ptag{top:8px;left:8px;font-size:9px;padding:4px 8px}
  .pitem-media .shots,.pcard-media .shots{display:none}
}

.cat-help{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  margin-top:46px;padding:26px 30px;background:#f6f6f7;border:1px solid var(--line)}
.cat-help h3{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:18px;font-weight:600;margin:0 0 6px;color:var(--ink)}
.cat-help p{margin:0;font-size:14.7px;line-height:1.7;color:#2a2d33;max-width:72ch}

@media (max-width:900px){
  .cat-rail{position:static}
  .railbar{gap:14px}
  .railcats{margin-left:0;width:100%;order:2}
  .railsearch{min-width:0;width:100%;order:1}
  .railcats a{font-size:11.1px;padding:7px 12px}
}
