body.itv-nx{
  --lime-l:#a4dd63;--ink-2:#0a1620;--hd-h:88px;--hd-h-sm:64px;--hair:rgba(255,255,255,.06);
  --nx-ease:cubic-bezier(.22,.61,.36,1);--nx-eout:cubic-bezier(.16,1,.3,1);
  --nx-shadow:0 24px 60px -18px rgba(0,0,0,.55);
  --surface:rgba(16,32,44,.82);--surface-solid:#0f2431;
  --txt:#dfeaf1;--txt-dim:#9fb2bf;--head:#fff;
}
/* The chrome's own box — do NOT inherit the host page's `.wrap`.

   The header bar is `<div class="wrap nx-bar">` and the footer uses `.wrap`
   twice. `.wrap` is a GENERIC kit class that every page also defines in its own
   body <style>, which loads AFTER this head stylesheet — so at equal (0,1,0)
   specificity the host wins on source order and its padding leaks into the
   chrome. On Interactive Calculators (10647) `.wrap` is
   `padding:28px 18px 80px`, which inflated the 48px header bar to 156px; the
   bar is centred in an 88px band, so it overflowed 34px ABOVE the header and
   clipped the top of the nav (reported 2026-08-25).

   Same failure mode as the theme's `[type="button"]` rules: a shared name the
   chrome used to win on source order and now has to win on specificity. */
body.itv-nx .nx-hdr .wrap,body.itv-nx .nx-ftr .wrap{max-width:1200px;margin-left:auto;margin-right:auto;padding:0 24px}
/* restate the footer's own vertical rhythm above that reset */
body.itv-nx .nx-ftr .wrap.nx-ftr-top{padding-bottom:52px}

/* Canvas background on the ROOT element.

   The kit pages get this from itv-dark-skin.css (`html{background:#0c1c28}`),
   but the v5-doc pages (homepage 8, preview 12089) opt out of the skin
   (_itv_nx_skin=0), and before migration the value came from the FOUC guard
   mu-plugin — which stops firing once a page is migrated. Without it <html>
   computes to transparent and overscroll (iOS rubber-band, short viewports)
   shows white behind a dark page. Same literal the skin uses.

   Not scoped under body.itv-nx: scope-skin.py leaves `html` selectors alone by
   design, and this stylesheet is only ever served to flagged pages anyway. */
html{background:#0c1c28}

/* Header/drawer SVG default size.

   This rule used to come from the FOUC guard mu-plugin (itv-nx-critical.php),
   which injects critical CSS on any page whose CONTENT carries `nx-hdr`. A
   migrated page no longer does, so the guard stops firing and this rule vanished
   with it — the chevrons fell back to their width="12" attribute, making every
   nav item 12px narrower and the whole nav 60px short.

   It sits HERE, before .nx-tel svg / .nx-icbtn svg, on purpose: `.nx-hdr svg` is
   (0,1,1), the same specificity as those, so it must lose the tie on source
   order or it would blow the phone and icon-button glyphs up to 24px too. */
body.itv-nx .nx-hdr svg,body.itv-nx .nx-drawer svg{width:24px;height:24px}

body.itv-nx [data-theme="light"]{
  --lime-l:#4d7a1f;--hair:rgba(20,45,61,.07);
  --surface:rgba(255,255,255,.88);--surface-solid:#fff;
  --txt:#36505f;--txt-dim:#5d7280;--head:#13293a;
}
/* header */
body.itv-nx .nx-hdr{position:fixed;inset:0 0 auto 0;z-index:900;height:var(--hd-h);display:flex;align-items:center;border-bottom:1px solid transparent;
  transition:height .38s var(--nx-ease),background .38s var(--nx-ease),box-shadow .38s var(--nx-ease),backdrop-filter .38s var(--nx-ease),border-color .38s var(--nx-ease)}
body.itv-nx .nx-bar{display:flex;align-items:center;gap:26px;width:100%}
body.itv-nx .nx-hdr.stuck{height:var(--hd-h-sm);background:var(--surface);-webkit-backdrop-filter:saturate(150%) blur(18px);backdrop-filter:saturate(150%) blur(18px);border-bottom-color:var(--line);box-shadow:0 10px 34px -20px rgba(0,0,0,.6)}
body.itv-nx .nx-hdr.stuck::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:linear-gradient(90deg,transparent,var(--lime) 30%,var(--steel) 70%,transparent);opacity:.55}
body.itv-nx .nx-brand{display:flex;align-items:center;flex:0 0 auto}
/* aspect-ratio + max-width:none give the SVG a definite width. NOTE: Elementor's
   frontend.css sets `.elementor img{height:auto}` (specificity 0,0,1,1) which beats a
   bare `.nx-logo` and collapses the header logo to 0x0 at the top (it only "popped in"
   on scroll because .nx-hdr.stuck .nx-logo out-specified it). The .nx-hdr scoping below
   wins back the height. */
body.itv-nx .nx-logo{height:38px;width:auto;max-width:none;aspect-ratio:712 / 159;transition:height .38s var(--nx-ease)}
body.itv-nx .nx-hdr .nx-logo{height:38px;max-width:none}
body.itv-nx .nx-hdr.stuck .nx-logo{height:32px}
body.itv-nx .nx-logo--rev{display:block}body.itv-nx .nx-logo--std{display:none}
body.itv-nx [data-theme="light"] .nx-logo--rev{display:none}
body.itv-nx [data-theme="light"] .nx-logo--std{display:block}
body.itv-nx .nx-nav{display:flex;align-items:center;gap:2px;margin-left:6px}
body.itv-nx .nx-item{position:relative}
body.itv-nx .nx-link{display:inline-flex;align-items:center;gap:6px;padding:12px 15px;font-family:var(--body);font-weight:700;font-size:15px;letter-spacing:.2px;color:var(--txt);border-radius:10px;cursor:pointer;background:none;border:0;transition:color .2s var(--nx-ease)}
/* the theme/Elementor injects a #cc3366 button:hover bg — force our nav buttons flat (only the lime underline animates) */
body.itv-nx .nx-nav .nx-link,body.itv-nx .nx-nav .nx-link:hover,body.itv-nx .nx-nav .nx-link:focus,body.itv-nx .nx-nav .nx-link:active{background:transparent!important}
body.itv-nx .nx-chev{transition:transform .28s var(--nx-ease);opacity:.7}
body.itv-nx .nx-item:hover .nx-link,body.itv-nx .nx-item:focus-within .nx-link{color:var(--head)}
body.itv-nx .nx-item:hover .nx-chev,body.itv-nx .nx-item:focus-within .nx-chev{transform:rotate(180deg);color:var(--lime)}
body.itv-nx .nx-link::after{content:"";position:absolute;left:15px;right:15px;bottom:7px;height:2px;background:var(--lime);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .28s var(--nx-eout)}
body.itv-nx .nx-item:hover .nx-link::after,body.itv-nx .nx-item:focus-within .nx-link::after{transform:scaleX(1)}
body.itv-nx .nx-flyout{position:absolute;top:calc(100% + 10px);opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;background:var(--surface-solid);border:1px solid var(--line);border-radius:16px;box-shadow:var(--nx-shadow);z-index:950;
  transition:opacity .24s var(--nx-eout),transform .24s var(--nx-eout),visibility .24s}
body.itv-nx .nx-flyout::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
body.itv-nx .nx-item:hover .nx-flyout,body.itv-nx .nx-item:focus-within .nx-flyout{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
body.itv-nx .nx-flyhead{font-family:var(--body);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--lime-l);padding:2px 6px 10px}
body.itv-nx .nx-dd{left:0;min-width:248px;padding:14px}
body.itv-nx .nx-dd a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font-weight:700;font-size:14.5px;color:var(--txt);transition:background .16s var(--nx-ease),color .16s var(--nx-ease),transform .16s var(--nx-ease)}
body.itv-nx .nx-dot{width:6px;height:6px;border-radius:50%;background:var(--steel);flex:0 0 auto;transition:background .16s}
body.itv-nx .nx-dd a:hover{background:color-mix(in srgb,var(--lime) 12%,transparent);color:var(--head);transform:translateX(3px)}
body.itv-nx .nx-dd a:hover .nx-dot{background:var(--lime)}
body.itv-nx .nx-dd a.nx-all{margin-top:6px;color:var(--lime-l);font-weight:900}
/* Industries flyout: 14 links in two columns (2026-09-29). The head and the "All" link span both. */
body.itv-nx .nx-dd.nx-dd--2col{width:min(540px,calc(100vw - 40px));display:grid;grid-template-columns:1fr 1fr;column-gap:6px}
body.itv-nx .nx-dd--2col .nx-flyhead,body.itv-nx .nx-dd--2col a.nx-all{grid-column:1/-1}
body.itv-nx .nx-mega{left:50%;transform:translate(-50%,10px);width:min(760px,calc(100vw - 40px));padding:20px}
body.itv-nx .nx-item:hover .nx-mega,body.itv-nx .nx-item:focus-within .nx-mega{transform:translate(-50%,0)}
body.itv-nx .nx-mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
body.itv-nx .nx-svc{display:flex;gap:13px;padding:13px;border-radius:13px;border:1px solid transparent;transition:border-color .18s var(--nx-ease),background .18s var(--nx-ease),transform .18s var(--nx-ease)}
body.itv-nx .nx-svc:hover{border-color:color-mix(in srgb,var(--lime) 45%,transparent);background:color-mix(in srgb,var(--lime) 8%,transparent);transform:translateY(-2px)}
body.itv-nx .nx-ic{flex:0 0 auto;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(160deg,var(--navy),var(--navy-dd));border:1px solid var(--line);color:var(--lime-l);transition:transform .2s var(--nx-ease)}
body.itv-nx [data-theme="light"] .nx-ic{background:linear-gradient(160deg,#e9f2f7,#dbe8ef);color:var(--lime-d)}
body.itv-nx .nx-svc:hover .nx-ic{transform:scale(1.06) rotate(-3deg)}
body.itv-nx .nx-ic svg{width:20px;height:20px}
body.itv-nx .nx-mega-cm{display:grid;grid-template-columns:repeat(3,1fr);gap:2px 14px;margin-top:14px;padding-top:14px;border-top:1px solid var(--hair)}
body.itv-nx .nx-mega-cmh{grid-column:1/-1;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--lime);margin-bottom:2px}
body.itv-nx .nx-mega-cm a{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--txt);padding:7px 9px;border-radius:9px;text-decoration:none;transition:.15s}
body.itv-nx .nx-mega-cm a::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--lime);opacity:.5;flex:0 0 auto}
body.itv-nx .nx-mega-cm a:hover{background:color-mix(in srgb,var(--lime) 12%,transparent);color:var(--head)}
body.itv-nx .nx-mega-cm a:hover::before{opacity:1}
@media(max-width:640px){body.itv-nx .nx-mega-cm{grid-template-columns:1fr 1fr}}
body.itv-nx .nx-svc b{display:block;color:var(--head);font-size:15px;font-weight:900}
body.itv-nx .nx-svc>span:last-child>span{display:block;color:var(--txt-dim);font-size:12.5px;line-height:1.4;margin-top:2px}
body.itv-nx .nx-mega-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:15px;border-top:1px solid var(--hair)}
body.itv-nx .nx-mega-foot p{margin:0;font-size:13px;color:var(--txt-dim)}
body.itv-nx .nx-mega-foot p b{color:var(--head)}
body.itv-nx .nx-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex:0 0 auto}
body.itv-nx .nx-tel{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:14.5px;color:var(--txt);padding:8px 10px;border-radius:10px;white-space:nowrap;transition:color .18s,background .18s}
body.itv-nx .nx-tel svg{width:16px;height:16px;color:var(--lime)}
body.itv-nx .nx-tel:hover{color:var(--head);background:var(--hair)}
body.itv-nx .nx-cta{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:12px;font-family:var(--body);font-weight:900;font-size:14.5px;letter-spacing:.2px;white-space:nowrap;color:#08210a;background:linear-gradient(135deg,var(--lime-l),var(--lime));box-shadow:0 8px 22px -8px rgba(135,196,64,.7);border:0;cursor:pointer;transition:transform .18s var(--nx-ease),box-shadow .18s var(--nx-ease),filter .18s}
body.itv-nx .nx-cta:hover{transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(135,196,64,.85);filter:brightness(1.05)}
body.itv-nx .nx-cta svg{width:15px;height:15px;transition:transform .2s var(--nx-ease)}
body.itv-nx .nx-cta:hover svg{transform:translateX(3px)}
body.itv-nx .nx-icbtn{width:40px;height:40px;padding:0;border-radius:11px;display:grid;place-items:center;cursor:pointer;background:var(--hair);border:1px solid var(--line);color:var(--txt);transition:color .18s,background .18s,transform .18s}
body.itv-nx .nx-icbtn:hover{color:var(--head);background:var(--line);transform:translateY(-1px)}
body.itv-nx .nx-icbtn svg{width:19px;height:19px}
body.itv-nx .nx-hamb{display:none}
/* search icon: plain (no box), sized + white to match the nav labels so it stands out */
body.itv-nx .nx-search-btn{background:none;border:0;width:auto;height:auto;padding:10px 12px;color:var(--head)}
body.itv-nx .nx-search-btn:hover{background:none;color:var(--lime);transform:none}
body.itv-nx .nx-search-btn svg{width:22px;height:22px;stroke-width:2.4}
/* site search overlay */
body.itv-nx .nx-search{position:fixed;inset:0;z-index:995;display:flex;flex-direction:column;align-items:center;padding:15vh 20px 20px;opacity:0;visibility:hidden;background:rgba(6,15,22,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .25s var(--nx-ease)}
body.itv-nx .nx-search.open{opacity:1;visibility:visible}
body.itv-nx .nx-search-box{display:flex;align-items:center;gap:9px;width:min(640px,100%);background:var(--surface-solid);border:1px solid var(--line);border-radius:16px;padding:9px 11px;box-shadow:var(--nx-shadow);transform:translateY(-12px) scale(.98);transition:transform .28s var(--nx-eout)}
body.itv-nx .nx-search.open .nx-search-box{transform:none}
body.itv-nx .nx-search-ic{display:grid;place-items:center;width:26px;flex:0 0 auto;color:var(--lime)}
body.itv-nx .nx-search-ic svg{width:20px;height:20px}
body.itv-nx .nx-search-input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--head);font-family:var(--body);font-size:17px;font-weight:700;padding:10px 4px}
body.itv-nx .nx-search-input::placeholder{color:var(--txt-dim);font-weight:400}
body.itv-nx .nx-search-go{flex:0 0 auto;width:42px;height:42px;border-radius:11px;border:0;cursor:pointer;display:grid;place-items:center;color:#08210a;background:linear-gradient(135deg,var(--lime-l),var(--lime));transition:filter .18s,transform .18s}
body.itv-nx .nx-search-go:hover{filter:brightness(1.06);transform:translateY(-1px)}
body.itv-nx .nx-search-go svg{width:18px;height:18px}
body.itv-nx .nx-search-x{flex:0 0 auto;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--hair);color:var(--txt);cursor:pointer;display:grid;place-items:center;transition:color .18s,background .18s}
body.itv-nx .nx-search-x:hover{color:var(--head);background:var(--line)}
body.itv-nx .nx-search-x svg{width:17px;height:17px}
body.itv-nx .nx-search-hint{width:min(640px,100%);margin:12px 4px 0;color:var(--txt-dim);font-size:12.5px}
body.itv-nx .nx-search-hint kbd{background:var(--hair);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-family:var(--body);font-size:11px}
/* mobile drawer */
body.itv-nx .nx-scrim{position:fixed;inset:0;z-index:980;background:rgba(4,12,18,.6);opacity:0;visibility:hidden;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:opacity .3s var(--nx-ease)}
body.itv-nx .nx-scrim.open{opacity:1;visibility:visible}
body.itv-nx .nx-drawer{position:fixed;top:0;right:0;z-index:990;height:100dvh;width:min(390px,90vw);background:var(--surface-solid);border-left:1px solid var(--line);transform:translateX(102%);transition:transform .4s var(--nx-eout);display:flex;flex-direction:column;overflow-y:auto}
body.itv-nx .nx-drawer.open{transform:translateX(0)}
body.itv-nx .nx-drawer-top{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--hair)}
body.itv-nx .nx-drawer-top img{height:32px}
body.itv-nx .nx-mnav{padding:12px 14px 4px;flex:1}
body.itv-nx .nx-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:15px 14px;font-family:var(--body);font-weight:900;font-size:16px;color:var(--head);border-radius:11px}
body.itv-nx .nx-acc>summary::-webkit-details-marker{display:none}
body.itv-nx .nx-acc>summary:hover{background:var(--hair)}
body.itv-nx .nx-acc>summary .nx-chev{color:var(--lime)}
body.itv-nx .nx-acc[open]>summary .nx-chev{transform:rotate(180deg)}
body.itv-nx .nx-sub{padding:2px 8px 12px}
body.itv-nx .nx-sub a{display:block;padding:11px 16px;font-weight:700;font-size:14.5px;color:var(--txt-dim);border-radius:9px}
body.itv-nx .nx-sub a:hover{color:var(--head);background:color-mix(in srgb,var(--lime) 10%,transparent)}
body.itv-nx .nx-mlink{display:block;padding:15px 14px;font-family:var(--body);font-weight:900;font-size:16px;color:var(--head);border-radius:11px}
body.itv-nx .nx-mlink:hover{background:var(--hair)}
body.itv-nx .nx-drawer-foot{padding:18px 22px 26px;border-top:1px solid var(--hair);display:grid;gap:12px}
body.itv-nx .nx-drawer-foot .nx-cta{justify-content:center}
body.itv-nx .nx-drawer-foot .nx-tel{justify-content:center;background:var(--hair)}
/* footer */
body.itv-nx .nx-ftr{position:relative;margin-top:clamp(60px,9vw,110px);padding:74px 0 0;border-top:1px solid var(--line);overflow:hidden;color:var(--gray);
  background:radial-gradient(120% 90% at 15% 0%,rgba(47,83,109,.35),transparent 60%),linear-gradient(180deg,var(--ink-2),#07141d)}
body.itv-nx .nx-ftr::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--lime) 30%,var(--steel) 70%,transparent);opacity:.4}
body.itv-nx .nx-ftr-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.1fr;gap:40px;padding-bottom:52px}
body.itv-nx .nx-ftr-brand img{height:40px;margin-bottom:18px}
body.itv-nx .nx-ftr-tag{font-family:var(--body);font-weight:900;color:#fff;font-size:15px;letter-spacing:.4px;margin:0 0 12px}
body.itv-nx .nx-ftr-tag .lime{color:var(--lime-l)}
body.itv-nx .nx-ftr-blurb{font-size:14px;color:var(--gray);max-width:34ch;margin:0 0 20px}
body.itv-nx .nx-nap{display:grid;gap:9px;font-size:14px;margin-bottom:20px}
body.itv-nx .nx-nap a{display:flex;gap:10px;align-items:flex-start;color:var(--gray)}
body.itv-nx .nx-nap svg{width:17px;height:17px;color:var(--lime);flex:0 0 auto;margin-top:2px}
body.itv-nx .nx-nap a:hover{color:#fff}
body.itv-nx .nx-ftr-msg{display:inline-flex;align-items:center;gap:9px;padding:11px 20px;border-radius:11px;font-family:var(--body);font-weight:900;font-size:14px;color:#fff;border:1px solid var(--line);background:rgba(255,255,255,.04);transition:border-color .2s,background .2s,transform .2s}
body.itv-nx .nx-ftr-msg svg{width:16px;height:16px;color:var(--lime)}
body.itv-nx .nx-ftr-msg:hover{border-color:var(--lime);background:rgba(135,196,64,.1);transform:translateY(-2px)}
body.itv-nx .nx-ftr-col h4{font-family:var(--body);font-size:12px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#fff;margin:6px 0 18px}
body.itv-nx .nx-ftr-col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
body.itv-nx .nx-ftr-col a{font-size:14px;color:var(--gray);position:relative;transition:color .16s,padding-left .16s}
body.itv-nx .nx-ftr-col a:hover{color:#fff;padding-left:6px}
body.itv-nx .nx-ftr-col a::before{content:"";position:absolute;left:-6px;top:50%;width:3px;height:3px;border-radius:50%;background:var(--lime);opacity:0;transform:translateY(-50%);transition:opacity .16s}
body.itv-nx .nx-ftr-col a:hover::before{opacity:1}
body.itv-nx .nx-ftr-bottom{border-top:1px solid var(--hair);padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
body.itv-nx .nx-ftr-legal{font-size:13px;color:var(--gray)}
/* the legal links carry no class, so hello-elementor's `a{color:#c36}` (pink)
   painted them — ratio 3.42 on the footer. Found in the 2026-08-27 audit. */
body.itv-nx .nx-ftr-legal a{color:var(--gray)}
body.itv-nx .nx-ftr-legal a:hover{color:#fff}
body.itv-nx .nx-socials{display:flex;gap:10px}
body.itv-nx .nx-socials a{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--gray);transition:color .18s,background .18s,transform .18s,border-color .18s}
body.itv-nx .nx-socials a:hover{color:#fff;background:var(--lime);border-color:var(--lime);transform:translateY(-3px)}
body.itv-nx .nx-socials svg{width:18px;height:18px}
/* load reveal + responsive */
@keyframes nxNavIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
body.itv-nx .nx-hdr .nx-brand,body.itv-nx .nx-item,body.itv-nx .nx-actions>*{animation:nxNavIn .5s var(--nx-eout) both}
body.itv-nx .nx-hdr .nx-brand{animation-delay:.05s}
body.itv-nx .nx-item:nth-child(1){animation-delay:.1s}body.itv-nx .nx-item:nth-child(2){animation-delay:.15s}body.itv-nx .nx-item:nth-child(3){animation-delay:.2s}body.itv-nx .nx-item:nth-child(4){animation-delay:.25s}body.itv-nx .nx-item:nth-child(5){animation-delay:.3s}
body.itv-nx .nx-actions>*:nth-child(1){animation-delay:.32s}body.itv-nx .nx-actions>*:nth-child(2){animation-delay:.36s}body.itv-nx .nx-actions>*:nth-child(3){animation-delay:.4s}body.itv-nx .nx-actions>*:nth-child(4){animation-delay:.44s}
/* --- mobile action bar -------------------------------------------------------
   Two fixes, both pre-existing (measured identical on the homepage BEFORE the
   #39 migration, so neither was caused by it):

   1. The icon buttons never declared `padding`, so the theme's
      `button,[type="button"]{padding:8px 16px}` applied. On a 40px border-box
      button that leaves 40 - 32 - 2 = 6px of content width, which squashed the
      hamburger glyph to 6x19. Fixed by declaring padding:0 on .nx-icbtn.

   2. `.nx-tel` was hidden outright below 1080px, so phones — the devices that
      can actually place the call — had no tap-to-call in the header. It now
      stays as an icon-only button; the number itself needs ~110px we do not
      have at 390px, so .nx-tel-num is hidden and the aria-label carries it.

   Controls go to 44px here (the accessible minimum tap target) with 22px
   glyphs. At 390px: logo 170 + three 44px controls + gaps still fits. */
@media (max-width:1080px){
  body.itv-nx .nx-nav{display:none}
  body.itv-nx .nx-hamb{display:grid}
  body.itv-nx .nx-actions>.nx-tel{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:11px;background:var(--hair);border:1px solid var(--line)}
  body.itv-nx .nx-actions>.nx-tel .nx-tel-num{display:none}
  body.itv-nx .nx-actions>.nx-tel svg{width:22px;height:22px}
  /* the search button is deliberately chrome-less on desktop (.nx-search-btn
     clears background+border); on mobile it sits beside two chipped controls,
     so give it the same chip or the row reads as two buttons and a loose icon */
  body.itv-nx .nx-icbtn,body.itv-nx .nx-actions>.nx-search-btn{width:44px;height:44px;padding:0;background:var(--hair);border:1px solid var(--line);border-radius:11px}
  body.itv-nx .nx-icbtn svg{width:22px;height:22px}
}
@media (min-width:1081px){body.itv-nx .nx-drawer,body.itv-nx .nx-scrim{display:none}}
@media (max-width:960px){body.itv-nx .nx-ftr-top{grid-template-columns:1fr 1fr;gap:34px}body.itv-nx .nx-ftr-brand{grid-column:1 / -1}}
@media (max-width:640px){body.itv-nx .nx-mega,body.itv-nx .nx-mega-grid{grid-template-columns:1fr}body.itv-nx .nx-ftr-top{grid-template-columns:1fr}body.itv-nx .nx-cta .lbl-long{display:none}body.itv-nx .nx-actions{gap:7px}}
@media (prefers-reduced-motion:reduce){body.itv-nx .nx-hdr .nx-brand,body.itv-nx .nx-item,body.itv-nx .nx-actions>*{animation:none}}

/* --- seam where the host page's content meets the chrome footer --------------
   The footer used to be baked INSIDE the page's last section, so the trailing
   space of the Elementor content wrapper fell BELOW it, where it was dead. Now
   the footer renders after the content, so that same space becomes a visible gap
   ABOVE it. Measured 106px on the kit pages: the wrapper section's 96px
   padding-bottom plus Elementor's 10px `.e-con-inner` padding.
   Scoped to the LAST wrapper/section so no interior section spacing changes. */
body.itv-nx.itv-nx .elementor > .elementor-element:last-child > .e-con-inner{padding-bottom:0}
body.itv-nx.itv-nx .elementor-widget-container > section:last-child{padding-bottom:0}
