/* Batch Z7 - "Technology we work with". Scoped to .t360-brands. Slots hold a text wordmark (.t360-wm) or, later, an official logo (Image widget). */
.t360-brands{
  --b-ink:var(--t360-ink,#1D1D1F); --b-soft:var(--t360-ink-soft,#52525B);
  --b-tile:var(--t360-surface-alt,#F5F5F7); --b-lime:var(--t360-lime,#CEFF00);
  --b-cols:7; --b-gap:16px; --b-tile-h:112px; --b-scale:1;
}
/* grid: CSS owns the layout; Elementor containers stay plain */
.elementor .t360-brands .t360-brand-grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:var(--b-gap);margin:0;padding:0;width:100%;max-width:none;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px}
.elementor .t360-brands .t360-brand-slot{
  flex:0 0 calc((100% - (var(--b-cols) - 1) * var(--b-gap)) / var(--b-cols));width:auto;max-width:calc((100% - (var(--b-cols) - 1) * var(--b-gap)) / var(--b-cols));
  min-height:var(--b-tile-h);display:flex;flex-direction:row;align-items:center;justify-content:center;
  background:var(--b-tile);border-radius:12px;padding:24px 20px;box-sizing:border-box;--padding-top:24px;--padding-right:20px;--padding-bottom:24px;--padding-left:20px;--gap:0px;gap:0;
}
.elementor .t360-brands .t360-brand-slot>.elementor-widget{width:100%;margin:0}
.elementor .t360-brands .t360-brand-slot .elementor-widget-container{display:flex;justify-content:center;width:100%}
/* official logo slot (Image widget): never filtered or recoloured */
.t360-brand-slot img{display:block;width:auto;height:calc(var(--bh,26px) * var(--bh-adj,1) * var(--b-scale));max-width:var(--bw,72%);object-fit:contain}
.t360-b-wide{--bh:20px;--bw:74%}.t360-b-std{--bh:26px;--bw:68%}.t360-b-comp{--bh:40px;--bw:52%}
.t360-b-heavy{--bh-adj:.9}.t360-b-light{--bh-adj:1.1}
/* neutral text wordmark: deliberately NOT a logotype */
.elementor .t360-brands .t360-wm .elementor-heading-title{margin:0;font-family:"Inter Tight",system-ui,sans-serif;font-weight:600;font-size:calc(var(--wm,21px) * var(--b-scale));line-height:1;letter-spacing:-.01em;color:var(--b-ink);white-space:nowrap;text-align:center;text-transform:none}
.t360-wm--s{--wm:22px}.t360-wm--m{--wm:21px}.t360-wm--l{--wm:20px}
/* strip (home) */
.t360-brands--strip{--b-cols:7}
@media (max-width:1199px){.t360-brands--strip{--b-cols:4;--b-scale:.94}}
@media (max-width:767px){.t360-brands{--b-gap:12px;--b-tile-h:88px;--b-scale:.84}.t360-brands--strip{--b-cols:2}
  .elementor .t360-brands .t360-brand-slot{padding:18px 14px}}
/* grouped (services) */
.elementor .t360-brands .t360-brand-group{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:var(--b-gap);align-items:center;padding:20px 0;width:100%;max-width:none}
.elementor .t360-brands .t360-brand-group>.e-con-inner{display:contents}
.elementor .t360-brands .t360-brand-cat .elementor-heading-title{margin:0;font:600 18px/1.2 "Inter Tight",system-ui,sans-serif;color:var(--b-ink);display:flex;align-items:center;gap:10px}
.elementor .t360-brands .t360-brand-cat .elementor-heading-title::before{content:"";width:10px;height:10px;background:var(--b-lime);border-radius:2px;flex:none}
.elementor .t360-brands--grouped .t360-brand-grid{--b-cols:4;justify-content:flex-start}
.t360-brands--grouped{--b-tile-h:84px}
.elementor .t360-brands--grouped .t360-brand-slot{padding:16px 16px}
.elementor .t360-brands .t360-brand-group{padding:12px 0}
@media (max-width:1023px){.elementor .t360-brands .t360-brand-group{grid-template-columns:1fr}}
@media (max-width:599px){.elementor .t360-brands--grouped .t360-brand-grid{--b-cols:2}}
/* inline chips inside existing cards (residential) */
.elementor .t360-brands--inline{--b-gap:8px;--b-tile-h:48px;--b-scale:1;--b-tile:#fff;width:100%;max-width:none;padding:0;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;background:none;margin-top:6px}
.elementor .t360-brands--inline .t360-brand-grid{justify-content:flex-start;gap:8px}
.elementor .t360-brands--inline{--gap:8px;gap:8px;row-gap:8px}
.elementor .t360-brands--inline .t360-brand-slot{flex:0 0 auto;max-width:none;min-width:0;padding:10px 12px;border-radius:8px;--padding-top:10px;--padding-right:12px;--padding-bottom:10px;--padding-left:12px}
.elementor .t360-brands--inline .t360-brand-slot .elementor-widget-container{width:auto}
.elementor .t360-brands--inline .t360-wm .elementor-heading-title{font-size:16px}
.elementor .t360-brands .t360-brand-inline-label .elementor-heading-title{margin:0;font:600 14px/1.2 "Inter Tight",system-ui,sans-serif;color:var(--b-soft);letter-spacing:0}
/* disclaimer */
.elementor .t360-brands .t360-brand-disclaimer,.elementor .t360-brand-disclaimer{margin:0;max-width:64ch;font-size:14px;line-height:1.5;color:var(--t360-ink-soft,#52525B)}
.elementor .t360-brand-disclaimer p{margin:0;font-size:14px;line-height:1.5;color:var(--t360-ink-soft,#52525B)}
/* appear on enter, once; visible by default (no JS / reduced motion) */
@media (prefers-reduced-motion:no-preference){
  html.t360-brands-js .t360-brands .t360-brand-slot{opacity:0;transform:translateY(10px);transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 45ms)}
  html.t360-brands-js .t360-brands.is-in .t360-brand-slot{opacity:1;transform:none}
}
@media print{html.t360-brands-js .t360-brands .t360-brand-slot{opacity:1!important;transform:none!important;transition:none!important}}

/* Batch Z7b - OFFICIAL logos in the slots (Image widgets for raster, inline original SVG in an HTML widget). No filter/opacity/recolour.
   Each logo sits on a white tile. Width per brand (--lw) balances optical weight; height follows the aspect ratio. */
.elementor .t360-brands .t360-brand-slot.t360-lg{background:#fff;box-shadow:inset 0 0 0 1px rgba(29,29,31,.08)}
.t360-brands{--lg-k:1}
.t360-brands--inline{--lg-k:.8}
.t360-lg-control4{--lw:122px}.t360-lg-episode{--lw:104px}.t360-lg-luma{--lw:108px}.t360-lg-rockville{--lw:140px}
.t360-lg-wiim{--lw:96px}.t360-lg-yamaha{--lw:104px}.t360-lg-sonos{--lw:108px}.t360-lg-uniview{--lw:66px}.t360-lg-netgear{--lw:128px}
.elementor .t360-brands .t360-brand-slot.t360-lg img,.t360-brands .t360-lg-svg{width:calc(var(--lw,100px) * var(--lg-k,1) * var(--b-scale));max-width:100%;height:auto;filter:none;opacity:1;margin-left:auto;margin-right:auto}
.t360-brands .t360-lg-svg{margin:0 auto}
.t360-brands .t360-lg-svg svg{display:block;width:100%;height:auto;overflow:visible}
.t360-brands .t360-lg-sonos .t360-lg-svg{color:#1D1D1F}
.elementor .t360-brands .t360-brand-slot.t360-lg .elementor-widget-html .elementor-widget-container,.elementor .t360-brands .t360-brand-slot.t360-lg .elementor-widget-image .elementor-widget-container{align-items:center}
@media (max-width:767px){.t360-lg-wiim{--lw:104px}.t360-lg-control4{--lw:132px}.t360-lg-rockville{--lw:144px}.t360-lg-netgear{--lw:128px}.t360-lg-sonos{--lw:116px}.t360-lg-uniview{--lw:66px}.t360-lg-yamaha{--lw:108px}.t360-lg-episode{--lw:112px}.t360-lg-luma{--lw:112px}}

/* WiiM (white-only official logo) sits on a dark tile; SVG untouched */
.elementor .t360-brands .t360-brand-slot.t360-lg-wiim{background:#0b0d12}
.t360-brands .t360-lg-wiim .t360-lg-svg{color:#fff}

/* ==== UI pass 1 (2026-11-07): ONE brand tile system for Home strip, Services groups, Residential chips ====
   Same white surface, 1px border, radius, fixed height per context; CSS grid (left-aligned, equal cells); per-logo --lw for equal visual weight.
   No filters on logos. WiiM = official white SVG on the dark variant tile with identical box. */
.t360-brands{--tile-bg:#fff;--tile-bd:rgba(29,29,31,.10);--tile-r:12px;--tile-dark:#0B0D12;--tile-h:104px;--tile-px:20px;--b-gap:16px}
.t360-brands--strip{--tile-h:104px;--tile-px:20px;--b-scale:1}
.t360-brands--grouped{--tile-h:88px;--tile-px:16px;--b-scale:1}
.elementor .t360-brands--inline{--tile-h:56px;--tile-px:12px;--tile-r:8px;--b-gap:8px}
@media (max-width:1279px) and (min-width:1024px){.t360-brands--strip{--tile-px:8px;--b-scale:.82;--b-gap:12px}}
@media (max-width:1023px){.t360-brands--strip{--tile-h:96px;--b-scale:.94}.t360-brands--grouped{--tile-h:84px}}
@media (max-width:767px){.t360-brands--strip{--tile-h:88px;--tile-px:16px;--b-gap:12px}.t360-brands--grouped{--b-gap:12px}}
@media (max-width:599px){.t360-brands--strip{--b-scale:.84}.t360-brands--grouped{--b-scale:.9}}
.elementor .t360-brands .t360-brand-slot.t360-lg{box-sizing:border-box;background:var(--tile-bg);border:1px solid var(--tile-bd);box-shadow:none;border-radius:var(--tile-r);
  height:var(--tile-h);min-height:0;flex:none;width:auto;max-width:none;min-width:0;align-self:stretch;justify-self:stretch;padding:0 var(--tile-px);
  --padding-top:0px;--padding-bottom:0px;--padding-left:var(--tile-px);--padding-right:var(--tile-px);display:flex;align-items:center;justify-content:center}
.elementor .t360-brands .t360-brand-slot.t360-lg-wiim{background:var(--tile-dark);border-color:var(--tile-dark)}
.elementor .t360-brands .t360-brand-slot.t360-lg .elementor-widget-container{display:flex;align-items:center;justify-content:center;width:100%}
/* grids */
.elementor .t360-brands--strip .t360-brand-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--b-gap);justify-content:stretch;align-items:stretch}
@media (max-width:1023px){
  .elementor .t360-brands--strip .t360-brand-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .elementor .t360-brands--strip .t360-brand-slot:nth-child(-n+4){grid-column:span 3}
  .elementor .t360-brands--strip .t360-brand-slot:nth-child(n+5){grid-column:span 4}}
@media (max-width:599px){
  .elementor .t360-brands--strip .t360-brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .elementor .t360-brands--strip .t360-brand-slot:nth-child(n){grid-column:auto}
  .elementor .t360-brands--strip .t360-brand-slot:last-child:nth-child(odd){grid-column:1/-1}}
.elementor .t360-brands--grouped .t360-brand-grid,.elementor .t360-brands--grouped .t360-brand-grid.t360-brand-grid--5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--b-gap);justify-content:start;align-items:stretch}
@media (max-width:1023px){.elementor .t360-brands--grouped .t360-brand-grid,.elementor .t360-brands--grouped .t360-brand-grid.t360-brand-grid--5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:599px){.elementor .t360-brands--grouped .t360-brand-grid,.elementor .t360-brands--grouped .t360-brand-grid.t360-brand-grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}}
.elementor .t360-brands--inline .t360-brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;justify-content:start;align-items:stretch;align-content:start}
/* per-logo optical width (px at k=1); height follows the natural aspect ratio */
.t360-lg-control4{--lw:120px}.t360-lg-episode{--lw:104px}.t360-lg-luma{--lw:108px}.t360-lg-rockville{--lw:144px}.t360-lg-sonos{--lw:108px}
.t360-lg-yamaha{--lw:96px}.t360-lg-uniview{--lw:64px}.t360-lg-netgear{--lw:128px}.t360-lg-wiim{--lw:96px}
.t360-brands--inline .t360-lg-rockville{--lw:115px}.t360-brands--inline .t360-lg-yamaha{--lw:90px}
/* Ubiquiti: neutral text placeholder (no official wordmark file; provisional, flagged by data-t360-provisional via JS, nothing visible) */
.elementor .t360-brands .t360-lg-ubiquiti .t360-wm .elementor-heading-title{font:500 calc(17px * var(--b-scale))/1 Inter,system-ui,sans-serif;letter-spacing:0;text-transform:none;color:#52525B}
.elementor .t360-brands--inline .t360-lg-ubiquiti .t360-wm .elementor-heading-title{font-size:15px}

/* ProdataKey (PDK) access control logo (trimmed derivative 206x127, full colour on white tile; no filter/recolour) */
.t360-lg-pdk{--lw:88px}
