/* ==========================================================================
   NewaSmart — site stylesheet (single file, no external dependencies)
   Brand: Shenzhen Xinlongxin Technology Co., Ltd. / newsmartech.com
   ========================================================================== */

:root{
  --ink:#2B1D14;
  --ink2:#5A4232;
  --muted:#9A7E6A;
  --line:#F0E2D0;
  --bg:#FFFDF8;
  --soft:#FFF9EF;
  --soft2:#FDEECC;
  --brand:#E75480;
  --brand-d:#B23A5E;
  --brand-l:#FCE7EF;
  --accent:#E8863A;
  --ok:#17795E;
  --err:#E75480;
  --r:10px;
  --r-lg:16px;
  --max:1120px;
  --shadow:0 1px 2px rgba(16,36,43,.05), 0 10px 28px rgba(16,36,43,.06);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font);font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.22;margin:0 0 .55em;letter-spacing:-.011em;color:var(--brand)}
h1{font-size:clamp(1.75rem,3.8vw,2.6rem);font-weight:700}
h2{font-size:clamp(1.28rem,2.4vw,1.72rem);font-weight:700;margin-top:1.9em}
h3[id],section[id],div[id],main[id]{scroll-margin-top:88px}
h3{font-size:1.06rem;font-weight:700;margin-top:1.5em}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.15em}
li{margin:.35em 0}
small{font-size:.86rem}
hr{border:0;border-top:1px solid var(--line);margin:2.2em 0}

/* Right-side floating category navigation (wide screens only) */
/* embedded left catalog sidebar */
.page-shell{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
body.side-on .page-shell{grid-template-columns:236px minmax(0,1fr)}
.page-main{min-width:0}
.side-col{display:none}
body.side-on .side-col{display:block;position:sticky;top:106px;align-self:start;max-height:calc(100vh - 120px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:12px;margin:16px 0 16px 16px;padding:14px 10px 20px;scrollbar-width:thin}
.side-nav a.side-cur{background:var(--brand);color:#fff;font-weight:700;border-radius:8px;padding:8px 10px;margin-bottom:4px}
.side-nav a.side-cur:hover{background:var(--brand-d)}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-nav a{font-size:12px;line-height:1.35;color:var(--ink2);text-decoration:none;padding:6px 9px;border-radius:6px;white-space:nowrap;border-left:3px solid transparent}
.side-nav a:hover{background:var(--brand-l);color:var(--brand-d);border-left-color:var(--brand)}
.side-nav .side-cap{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);opacity:.75;padding:2px 9px 4px}
.side-nav a.sub{padding-left:34px;font-size:11.5px;font-weight:500;border-left-width:2px;opacity:.92;margin-left:2px}
/* category-level items: solid brand button style (like header CTA) */
.side-nav > a:not(.sub):not(.side-top){
  background:var(--brand);
  color:#fff;
  font-weight:700;
  border-left:none;
  margin-top:8px;
  border-radius:8px;
  padding:8px 10px;
  box-shadow:0 2px 6px rgba(231,84,128,.25);
}
.side-nav > a:not(.sub):not(.side-top):hover{background:var(--brand-d);color:#fff}
.side-nav .side-top{border-bottom:1px solid var(--line);margin-bottom:4px;padding-bottom:6px;font-weight:600;color:var(--brand-d)}

.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.lead{font-size:1.09rem;color:var(--ink2)}
.muted{color:var(--muted)}
.center{text-align:center}
.narrow{max-width:820px}

/* ---------- skip link / a11y ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--brand);color:#fff;padding:10px 16px;z-index:99}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}


/* ---------- top category bar ---------- */
.cat-bar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:66px;z-index:45}
.cat-bar-inner{display:flex;flex-wrap:wrap;gap:8px;padding:10px 20px}
.cat-pill{display:inline-flex;align-items:center;gap:6px;background:#E75480;color:#fff;font-weight:700;font-size:13px;padding:8px 14px;border-radius:8px;text-decoration:none;box-shadow:0 2px 6px rgba(231,84,128,.25);transition:background .15s,transform .15s}
.cat-pill .n{font-weight:600;opacity:.85;font-size:11.5px}
.cat-pill:hover{background:#B23A5E;color:#fff;text-decoration:none;transform:translateY(-1px)}
.cat-pill-all{background:#E75480;color:#fff;border:none;box-shadow:0 2px 6px rgba(231,84,128,.25)}
.cat-pill-all:hover{background:#B23A5E;color:#fff}

/* ---------- full catalog panel ---------- */
@media (max-width:1099px){.cat-bar{position:static}}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);
  backdrop:saturate(160%) blur(8px);border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;gap:18px;min-height:66px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.06rem;color:var(--ink);letter-spacing:-.02em}
.brand:hover{text-decoration:none}
.brand-mark{
  align-self:stretch;width:44px;flex:0 0 44px;border-radius:12px;
  background:var(--brand);color:#fff;display:grid;place-items:center;
  font-size:1.05rem;font-weight:800;letter-spacing:.02em;
}
.brand small{display:block;font-size:.72rem;font-weight:700;color:var(--ink2);letter-spacing:.02em;text-transform:uppercase;line-height:1.25}
.brand-tag{display:inline;font-size:.72rem;font-weight:700;color:var(--ink2);letter-spacing:.02em;text-transform:uppercase;margin-left:9px}
@media(min-width:1000px){.brand-tag{white-space:nowrap}}
/* Medium screens: tighten header so brand + nav stay on one line */
@media(max-width:1180px){
  .brand-mark{width:38px;flex:0 0 38px;border-radius:10px;font-size:.95rem}
  .brand{font-size:1rem}
  .brand-tag{font-size:.55rem;margin-left:6px;letter-spacing:0}
  .brand small{font-size:.55rem}
  .site-nav{gap:3px}
  .site-nav a{font-size:.74rem;padding:7px 8px}
  .nav-cta{margin-left:4px}
}
@media(max-width:1040px){
  .brand-mark{width:34px;flex:0 0 34px;font-size:.9rem}
  .brand{font-size:.95rem}
  .brand-tag{font-size:.5rem}
  .brand small{font-size:.5rem}
  .site-nav a{font-size:.7rem;padding:6px 7px}
}
@media(max-width:940px){
  .brand-mark{width:26px;flex:0 0 26px;font-size:.72rem;border-radius:7px}
  .brand{font-size:.85rem}
  .brand-tag{font-size:.42rem;margin-left:3px}
  .brand small{font-size:.42rem}
  .site-nav{gap:4px 2px;justify-content:flex-end}
  .site-nav a{font-size:.6rem;padding:5px 6px}
  .nav-cta{margin-left:2px}
}
@media(max-width:820px){
  .site-nav{gap:2px}
  .site-nav a{font-size:.6rem;padding:5px 6px}
  .nav-cta{margin-left:2px}
}

.site-nav{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.site-nav a{
  display:inline-flex;align-items:center;
  color:#0B2E6B;font-size:.87rem;font-weight:700;line-height:1;
  padding:9px 13px;border-radius:8px;border:1.5px solid transparent;
  background:#F5B301;
}
.site-nav a:hover{background:#E0A300;color:#0B2E6B;text-decoration:none}
.site-nav a[aria-current="page"]{color:#0B2E6B;background:#F5B301}
.nav-cta{margin-left:8px}

.nav-toggle{display:none}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 20px;border-radius:999px;border:1.5px solid transparent;
  font-size:.95rem;font-weight:700;line-height:1;cursor:pointer;
  transition:transform .12s ease, background .15s ease, color .15s ease;
}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-d);color:#fff}
.btn-ghost{background:#fff;color:var(--brand);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--brand);background:var(--brand-l)}
.btn-accent{background:var(--accent);color:#fff}
.btn-sm{padding:9px 15px;font-size:.87rem}
.btn-block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:1.3em 0}

/* ---------- sections ---------- */
section{padding:52px 0}
section.tight{padding:34px 0}
.bg-soft{background:var(--soft)}
.bg-soft2{background:var(--soft2)}
.section-head{max-width:760px;margin-bottom:1.6em}
.section-head p{margin-bottom:0}
.eyebrow{
  display:inline-block;font-size:.95rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--brand);background:var(--brand-l);
  padding:7px 15px;border-radius:999px;margin-bottom:.9em;
}

/* ---------- hero ---------- */
.hero{padding:56px 0 46px;background:linear-gradient(180deg,#FFFDF8 0%,#FFFFFF 78%)}
.hero-grid{display:grid;grid-template-columns:1fr;gap:28px;align-items:center}
.hero-copy{grid-column:auto;max-width:none}
.hero-media{align-self:center}
.hero-media .ph{padding:10px;min-height:0}
.hero-video video{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:12px;display:block}
.hero-slots-row{grid-column:1/-1}
.hero h1{margin-bottom:.45em;font-size:clamp(1.28rem,2.4vw,1.72rem);color:var(--brand)}
.hero .lead{font-size:1.15rem;text-align:justify;-webkit-hyphens:auto;hyphens:auto}
.hero .hero-sub{margin-top:1.2em}
.tick{color:var(--ok);font-weight:800}

/* ---------- photo slots (drop in real photos when they arrive) ---------- */
.ph{
  margin:0;position:relative;overflow:hidden;
  border:1px solid #F6E3C4;border-radius:var(--r-lg);
  background:linear-gradient(152deg,#FFF8EE 0%,#FFFDF9 58%,#FFFAF0 100%);
  min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:9px;padding:28px 20px;text-align:center;
}
.ph::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(231,84,128,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(231,84,128,.08) 1px,transparent 1px);
  background-size:28px 28px;
}
.ph>*{position:relative}
.ph-16x9{aspect-ratio:16/9;min-height:0}
.ph-4x3{aspect-ratio:4/3;min-height:0}
.ph-1x1{aspect-ratio:1/1;min-height:0}
.ph-16x9 .ph-ico{width:58px;height:58px;border-radius:16px}
.ph-16x9 .ph-ico svg{width:29px;height:29px}
.ph-16x9 .ph-t{font-size:1.04rem}
.hero .ph-16x9 .ph-ico{width:66px;height:66px;border-radius:18px}
.hero .ph-16x9 .ph-ico svg{width:33px;height:33px}
.ph-ico{
  width:46px;height:46px;border-radius:13px;background:#fff;color:var(--brand);
  display:grid;place-items:center;box-shadow:0 1px 2px rgba(16,36,43,.07);
}
.ph-ico svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ph-t{font-size:.95rem;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.ph-d{font-size:.79rem;color:var(--muted);max-width:28em}
.ph-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ph-strip .ph{min-height:150px;border-radius:var(--r);gap:7px;padding:20px 12px}
.ph-strip .ph-ico{width:38px;height:38px;border-radius:11px}
.ph-strip .ph-ico svg{width:19px;height:19px}
.ph-strip .ph-t{font-size:.86rem}
.ph-strip .ph-d{font-size:.72rem}

/* ---------- cards & grids ---------- */
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px;box-shadow:var(--shadow);
}
.card h3{margin-top:0}
.card p:last-child{margin-bottom:0}
.card-value{border-top:3px solid var(--brand)}
.card-value .num{
  display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;
  background:var(--brand-l);color:var(--brand);font-weight:800;font-size:.86rem;margin-bottom:.7em;
}

/* ---------- product cards ---------- */
.product{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);
}
.product .ph{border:0;border-bottom:1px solid var(--line);border-radius:0;min-height:164px;gap:6px;padding:20px 14px}
.product .ph-ico{width:38px;height:38px;border-radius:11px}
.product .ph-ico svg{width:19px;height:19px}
.product .ph-t{font-size:.88rem}
.product .ph-d{font-size:.73rem}
.product-body{padding:18px;display:flex;flex-direction:column;flex:1}
.product-body h3{margin:0 0 .3em;font-size:1.02rem;color:var(--brand)}
.crumb + h1{color:var(--brand)}
.product-body h3 .model{
  display:inline-block;background:var(--brand);color:#fff;
  border-radius:8px;padding:3px 11px;font-size:1.16rem;font-weight:800;
  letter-spacing:.03em;margin-right:8px;vertical-align:-2px;
}
.product-body p{font-size:.92rem;color:var(--ink2);flex:1}
.product-body .btn{margin-top:.6em;align-self:flex-start}

/* Real media (photos & video) replacing placeholders */
.media{margin:0;overflow:hidden}
.media img,.media video{display:block;width:100%;height:auto}
.product .media{border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;padding:14px}
.product .media img{object-fit:contain;max-height:230px;margin:0 auto;width:auto;max-width:100%}
.media-caption{font-size:.79rem;color:var(--muted);padding:10px 14px 0}
.video-frame{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:#000}
.video-frame video{display:block;width:100%;height:auto}
.spec-photo{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:0 0 16px}
.spec-photo img{display:block;max-height:260px;width:auto;max-width:100%;margin:0 auto}
.range-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.range-grid .product .media{padding:14px}
.range-grid .product .media img{object-fit:contain;max-height:200px;margin:0 auto;width:auto;max-width:100%}
.card-link{display:block;color:inherit;text-decoration:none}
.card-link:hover{text-decoration:none}
.card-link:hover *{text-decoration:none}
.card-link .product{height:100%}
.card-link:hover h3{color:var(--brand-d)}
.card-link:hover .ph img{transform:scale(1.03)}
@media (max-width:860px){.card-link .product{height:auto}}
@media (max-width:860px){.range-grid{grid-template-columns:1fr}}

/* ---------- tables ---------- */
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.2em;border:1px solid var(--line);border-radius:var(--r)}
table{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff;min-width:520px}
caption{
  text-align:left;font-weight:800;color:var(--ink);font-size:1rem;
  padding:12px 14px;background:var(--soft);border-bottom:1px solid var(--line);
}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--soft);font-weight:700;color:var(--ink2);white-space:nowrap}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
td.pf1ell{font-weight:700;white-space:nowrap}
.spec-label{font-weight:700;color:var(--ink2);width:34%;white-space:nowrap}

/* ---------- callouts ---------- */
.callout{
  border:1px solid var(--line);border-left:4px solid var(--brand);
  background:var(--soft);border-radius:var(--r);padding:16px 18px;margin:1.4em 0;
}
.callout p:last-child{margin-bottom:0}
.callout.warn{border-left-color:var(--accent);background:#FFF6E8}
.callout h3{margin-top:0;font-size:1rem}
.note{font-size:.87rem;color:var(--muted);margin-top:.6em}
.pill-row{display:flex;flex-wrap:nowrap;gap:6px;margin:1em 0;overflow-x:auto;scrollbar-width:none}
.pill-row::-webkit-scrollbar{display:none}
.pill{
  font-size:.74rem;font-weight:700;color:var(--brand);background:var(--brand-l);
  border-radius:999px;padding:4px 10px;white-space:nowrap;
}
.pill.neutral{color:#fff;background:var(--brand)}
.pill.neutral:hover{background:var(--brand-d);color:#fff;text-decoration:none}

/* ---------- feature list ---------- */
.feature-list{list-style:none;padding:0;margin:1.2em 0;display:grid;gap:10px}
.feature-list li{
  position:relative;padding-left:30px;font-size:.95rem;color:var(--ink2);margin:0;
}
.feature-list li::before{
  content:"";position:absolute;left:0;top:.5em;width:16px;height:16px;border-radius:50%;
  background:var(--brand-l);border:1.5px solid var(--brand);
}
.feature-list li::after{
  content:"";position:absolute;left:5px;top:.78em;width:6px;height:3px;
  border-left:2px solid var(--brand);border-bottom:2px solid var(--brand);
  transform:rotate(-45deg);
}
.steps{counter-reset:s;list-style:none;padding:0;margin:1.2em 0;display:grid;gap:12px}
.steps li{
  counter-increment:s;position:relative;padding:14px 16px 14px 56px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);margin:0;
  font-size:.95rem;color:var(--ink2);
}
.steps li::before{
  content:counter(s);position:absolute;left:16px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;
  font-size:.82rem;font-weight:800;display:grid;place-items:center;
}
.steps li strong{color:var(--ink);display:block;font-size:.99rem}

/* ---------- split / who-we-serve ---------- */
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:1.4em}
.split .card h3{margin-top:0}
.split .card{border-top:3px solid var(--brand)}
.split .card.us{border-top-color:var(--accent)}

/* ---------- form ---------- */
.form-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow)}
.field{margin-bottom:16px}
.field label{display:block;font-size:.9rem;font-weight:700;margin-bottom:6px}
.field .req{color:var(--err)}
.field input,.field select,.field textarea{
  width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:var(--r);
  font-family:inherit;font-size:.95rem;color:var(--ink);background:#fff;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--brand);outline:0;box-shadow:0 0 0 3px rgba(231,84,128,.12);
}
.field .hint{display:block;font-size:.79rem;color:var(--muted);margin-top:5px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-note{font-size:.82rem;color:var(--muted);margin-top:12px}
.form-status{margin-bottom:16px;padding:13px 15px;border-radius:var(--r);font-size:.92rem;display:none}
.form-status.is-error{display:block;background:#FDEDEA;border:1px solid #F3C6BE;color:#B23A5E}
.form-status.is-ok{display:block;background:#EAF7F1;border:1px solid #BFE3D4;color:#14614A}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
button[disabled]{opacity:.6;cursor:progress}

/* ---------- floating contact ---------- */
.floatbar{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;flex-direction:column;gap:10px}
.floatbar a{
  display:inline-flex;align-items:center;gap:9px;background:var(--brand);color:#fff;
  padding:12px 17px;border-radius:999px;font-size:.9rem;font-weight:700;
  box-shadow:0 8px 22px rgba(231,84,128,.28);
}
.floatbar a:hover{text-decoration:none;background:var(--brand-d)}
.floatbar a.wa{background:#25D366;box-shadow:0 8px 22px rgba(37,211,102,.3)}
.floatbar a.wa:hover{background:#1EB455}
.floatbar svg{width:17px;height:17px;flex:0 0 17px}

/* ---------- footer ---------- */
.site-footer{background:#4A1524;color:#EBD3A8;padding:46px 0 30px;margin-top:56px;font-size:.9rem}
.site-footer h4{margin:0 0 .7em;color:#fff;font-size:.94rem;letter-spacing:.02em}
.site-footer a{color:#FBE3EC}
.site-footer a:hover{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.footer-grid p{color:#D9B87E;margin-bottom:.55em}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin:.35em 0}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;
  display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between;color:#C9A265;font-size:.83rem;
}
.reply-badge{
  display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 13px;
  font-size:.83rem;color:#FBE3EC;font-weight:600;margin-top:.4em;
}
.reply-badge .dot{width:7px;height:7px;border-radius:50%;background:#3FD39A;flex:0 0 7px}

/* ---------- misc page bits ---------- */
.page-hero{padding:44px 0 10px;background:var(--soft)}
.crumb{font-size:.82rem;color:var(--muted);margin-bottom:.9em}
.crumb a{color:var(--muted)}
.thanks{max-width:640px;margin:0 auto;text-align:center;padding:60px 0}
.thanks .big{
  width:64px;height:64px;border-radius:50%;background:#EAF7F1;color:var(--ok);
  display:grid;place-items:center;margin:0 auto 18px;font-size:1.7rem;font-weight:800;
}
.err-page{max-width:600px;margin:0 auto;text-align:center;padding:70px 0}
.err-page .code{font-size:3.4rem;font-weight:800;color:var(--brand);line-height:1;margin-bottom:.2em}

/* ---------- responsive ---------- */
@media (max-width:1099px){.page-shell{display:block}.side-col{display:none}
body.side-on .side-col{display:block;position:sticky;top:106px;align-self:start;max-height:calc(100vh - 120px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:12px;margin:16px 0 16px 16px;padding:14px 10px 20px;scrollbar-width:thin}
.side-nav a.side-cur{background:var(--brand);color:#fff;font-weight:700;border-radius:8px;padding:8px 10px;margin-bottom:4px}
.side-nav a.side-cur:hover{background:var(--brand-d)}}

@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:30px}
  .hero .lead{text-align:left;-webkit-hyphens:none;hyphens:none}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr;gap:26px}
  .ph-strip{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:720px){
  body{font-size:15.5px}
  section{padding:38px 0}
  .site-nav{
    display:none;position:absolute;left:0;right:0;top:100%;background:#fff;
    border-bottom:1px solid var(--line);padding:12px 20px 18px;flex-direction:column;align-items:stretch;
    box-shadow:0 18px 30px rgba(16,36,43,.1);
  }
  .site-nav.is-open{display:flex}
  .site-nav a{padding:12px;font-size:1rem}
  .nav-cta{margin:8px 0 0}
  .nav-toggle{
    display:inline-flex;margin-left:auto;align-items:center;gap:8px;background:#fff;
    border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;font-weight:700;
    font-size:.88rem;color:var(--ink);cursor:pointer;
  }
  .grid-2,.grid-3,.grid-4,.split,.field-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:22px}
  .floatbar{right:12px;bottom:12px;left:12px}
  .floatbar a{justify-content:center;width:100%}
  /* the floating bar becomes full-width on small screens — keep it off the footer */
  body{padding-bottom:72px}
  .ph-strip{grid-template-columns:1fr 1fr;gap:10px}
  table{min-width:440px;font-size:.88rem}
}

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

/* when a single category is selected, strip the homepage down to just that category */
body.cat-filter .hero,
body.cat-filter section.tight.bg-soft,
body.cat-filter section.bg-soft > .wrap > .section-head,
body.cat-filter section.who-block,
body.cat-filter .compare-row{display:none}

/* ---------- video slots (4 upload windows under the hero) ---------- */
.video-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:1.2em;align-items:start}
.vslot{position:relative;aspect-ratio:16/9;background:#FFF3F6;border:2px dashed #F3B8CC;border-radius:12px;overflow:hidden}
.vslot-wide{grid-column:1/-1}
.vslot-ph{position:absolute;inset:0;display:grid;place-items:center;color:#C9748F;font-weight:700;font-size:.85rem;letter-spacing:.04em}
.vslot.is-live{border-style:solid;border-color:var(--line);background:#000;aspect-ratio:auto}
.vslot.is-live video{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;background:#000;border-radius:12px}
.vslot-sound{position:absolute;right:12px;bottom:54px;z-index:3;background:rgba(0,0,0,.66);color:#fff;border:0;border-radius:999px;padding:9px 15px;font-size:.82rem;font-weight:700;letter-spacing:.01em;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.vslot-sound:hover{background:rgba(0,0,0,.84)}
@media (max-width:560px){.video-slots{grid-template-columns:1fr}}
