/* TRUST 360 pilot page styles (Structured Cabling & Fiber). Reusable classes applied via Elementor CSS Classes.
   Colors come from the Elementor kit globals (--e-global-color-*). Rules:
   - lime (#CEFF00) only on dark backgrounds or as a fill with dark text;
   - text and links on light backgrounds use "lime on light" #4F6B00 (kit global t360-lime-on-light), never lime text on white. */
:root{
  --t360-lime:var(--e-global-color-t360-lime,#CEFF00);
  --t360-lime-on-light:var(--e-global-color-t360-lime-on-light,#4F6B00);
  --t360-panel:var(--e-global-color-t360-panel,#05070D);
  --t360-panel-soft:var(--e-global-color-t360-panel-soft,#0D1119);
  --t360-ink:var(--e-global-color-t360-ink,#1D1D1F);
  --t360-ink-soft:var(--e-global-color-t360-ink-soft,#52525B);
  --t360-surface:var(--e-global-color-t360-surface,#FFFFFF);
  --t360-surface-alt:var(--e-global-color-t360-surface-alt,#F5F5F7);
  --t360-on-panel:var(--e-global-color-t360-on-panel,#F4F6F8);
  --t360-line-dark:color-mix(in srgb,var(--t360-on-panel) 18%,transparent);
  --t360-line-light:#E1E3E8;
}
/* ---- sections ---- */
/* section/card/panel padding is set natively in Elementor (container padding, per breakpoint) */
.elementor .t360-section>.e-con-inner{gap:24px;max-width:1328px}
.t360-section a{color:var(--t360-lime-on-light)}
.t360-dark a,.t360-section.t360-dark a{color:var(--t360-on-panel)}
.t360-h2 .elementor-heading-title{max-width:32ch}
.t360-hl{color:var(--t360-lime)}
.t360-lead,.t360-lead-dark{max-width:60ch}
.t360-lead-dark{opacity:.86}
.t360-crumb{font-size:14px;opacity:.78}
.t360-crumb p{margin:0}
.t360-kicker .elementor-heading-title{margin:0}
/* split */
.elementor .t360-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.elementor .t360-hero .t360-split{grid-template-columns:7fr 5fr}
.elementor .t360-split-narrow{grid-template-columns:5fr 7fr;align-items:start}
.t360-hero-copy{max-width:720px}
.elementor .t360-btnrow{flex-direction:row;gap:14px}
/* grids */
.elementor .t360-grid{display:grid;gap:16px}
.elementor .t360-grid-4{grid-template-columns:repeat(4,1fr)}
.elementor .t360-grid-3{grid-template-columns:repeat(3,1fr);gap:18px}
.elementor .t360-grid-2{grid-template-columns:repeat(2,1fr)}
/* cards */
.t360-card{border-radius:32px;min-height:0}
.t360-card-dark{color:var(--t360-on-panel)}
.t360-card-line{border:1px solid var(--t360-line-light)}
.t360-card-darkline{border:1px solid var(--t360-line-dark)}
.t360-tile{min-height:140px;border-radius:32px}
.t360-card-title .elementor-heading-title{margin:0}
.t360-card-text p{margin:0}
.t360-badge,.t360-num{align-self:flex-start;width:max-content}
.t360-badge .elementor-heading-title{background:var(--t360-lime);color:var(--t360-panel);border-radius:999px;padding:4px 10px;font-size:12px;letter-spacing:.04em;text-transform:none}
.t360-num .elementor-heading-title{background:var(--t360-lime);color:var(--t360-panel);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:14px;letter-spacing:0;text-transform:none}
/* image slots (editable Image widgets inside; keep proportions) */
.t360-slot{overflow:hidden;border-radius:28px;border:1px dashed rgba(120,130,150,.6);background:repeating-linear-gradient(45deg,rgba(120,130,150,.18) 0 8px,rgba(120,130,150,.08) 8px 16px)}
.t360-slot .elementor-widget-image,.t360-slot .elementor-widget-container{height:100%}
.t360-slot img{width:100%;height:100%;object-fit:cover;display:block}
.t360-slot-hero{aspect-ratio:5/4;border-radius:0}
.t360-slot-band{aspect-ratio:1312/220;border-radius:32px}
.t360-slot-tab{aspect-ratio:600/320;border-radius:0;border:0}
.t360-step-label .elementor-heading-title{margin-top:12px}
/* buttons */
.elementor-button{min-height:44px;min-width:44px}
.elementor .t360-btn-outline .elementor-button{background:transparent!important;border:1px solid color-mix(in srgb,var(--t360-on-panel) 50%,transparent)!important;color:var(--t360-on-panel)!important}
.elementor .t360-btn-outline .elementor-button:hover{background:color-mix(in srgb,var(--t360-on-panel) 12%,transparent)!important}
.elementor .t360-link-lime .elementor-button{background:transparent!important;color:var(--t360-lime)!important;padding:0;border-radius:0;min-height:44px;justify-content:flex-start}
.elementor .t360-link-lime .elementor-button:hover{background:transparent!important;color:var(--t360-on-panel)!important;text-decoration:underline}
/* areas chips */
.t360-chips .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:8px}
.t360-chips .elementor-icon-list-item{margin:0;padding:0}
.t360-chips .elementor-icon-list-icon{display:none}
.t360-chips .elementor-icon-list-text{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--t360-line-light);border-radius:999px;background:var(--t360-surface);color:var(--t360-ink);font-size:15px;line-height:1.2}
/* related / benefits / cta containers */
.elementor .t360-related-wrap{border-radius:40px}
.elementor .t360-benefits-wrap{border-radius:40px}
.t360-contact-lines a{color:var(--t360-on-panel);text-decoration:none}
.t360-contact-lines a:hover{text-decoration:underline}
.t360-cta-areas{opacity:.78;font-size:15px}
.t360-form-placeholder{border:1px dashed var(--t360-line-dark);border-radius:32px;min-height:320px;justify-content:center}
/* FAQ (Nested Accordion) */
.t360-faq .e-n-accordion-item{border:1px solid var(--t360-line-light);border-radius:20px;background:var(--t360-surface);margin-bottom:12px;overflow:hidden}
.t360-faq .e-n-accordion-item-title{min-height:64px;padding:12px 24px;cursor:pointer}
.t360-faq .e-n-accordion-item-title-text{font-family:'Inter Tight','Inter',Arial,sans-serif;font-weight:700;font-size:20px;color:var(--t360-ink)}
.t360-faq .e-n-accordion-item-title-icon{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.t360-faq .e-n-accordion-item>.e-con{padding:0 24px 20px}
.t360-faq summary:focus-visible{outline:3px solid var(--t360-lime-on-light);outline-offset:-3px}
/* focus: visible everywhere */
.elementor a:focus-visible,.elementor .elementor-button:focus-visible{outline:3px solid var(--t360-lime-on-light);outline-offset:3px}
.t360-dark a:focus-visible,.t360-dark .elementor-button:focus-visible,.t360-dark .e-n-tab-title:focus-visible{outline-color:var(--t360-lime)}
/* bullets */
.t360-bullets ul{margin:0;padding-left:20px}
.t360-bullets li{margin:0 0 6px}
/* ---- segmented label (Business | Residential) ---- */
.elementor .t360-seg{display:inline-flex;flex-direction:row;align-self:flex-start;align-items:center;gap:4px;padding:4px;border:1px solid var(--t360-line-dark);border-radius:999px;width:max-content;max-width:100%}
.t360-seg-label p,.t360-seg-link p{margin:0}
.t360-seg-label{background:var(--t360-lime);border-radius:999px;padding:0 22px;min-height:44px;display:flex;align-items:center}
.t360-seg-label,.t360-seg-label *{color:var(--t360-panel)}
.t360-seg-link{padding:0 18px;min-height:44px;display:flex;align-items:center}
.t360-seg-link a{color:var(--t360-on-panel);text-decoration:underline;display:inline-flex;align-items:center;min-height:44px}
/* ===== Benefits block: Nested Tabs (.t360-benefits). CSS only; t360-benefits.js adds scroll-into-view + interaction flag. ===== */
.t360-benefits{
  --n-tabs-title-background-color:transparent;
  --n-tabs-title-background-color-hover:color-mix(in srgb,var(--t360-on-panel) 12%,transparent);
  --n-tabs-title-background-color-active:var(--t360-surface);
  --n-tabs-title-color:var(--t360-on-panel);
  --n-tabs-title-color-hover:var(--t360-on-panel);
  --n-tabs-title-color-active:var(--t360-panel);
  --n-tabs-heading-justify-content:flex-start;
  --n-tabs-title-gap:12px;
  --n-tabs-gap:20px;
  --n-tabs-title-padding-top:0;--n-tabs-title-padding-bottom:0;--n-tabs-title-padding-left:22px;--n-tabs-title-padding-right:22px;
  --n-tabs-title-transition:.4s ease;
  --n-tabs-title-border-radius:999px;
  --n-tabs-title-font-size:16px;
}
.elementor .t360-benefits .e-n-tab-title{border:1px solid color-mix(in srgb,var(--t360-on-panel) 40%,transparent);min-height:44px;min-width:44px;font-weight:500;transition:background-color .4s ease,color .4s ease,border-color .4s ease}
.elementor .t360-benefits .e-n-tab-title[aria-selected=true]{border-color:var(--t360-surface)}
.elementor .t360-benefits .e-n-tab-title:focus-visible{outline:3px solid var(--t360-lime);outline-offset:3px}
.t360-benefits .e-n-tab-title-text{white-space:nowrap}
.elementor .t360-benefits .e-n-tabs-content>.e-con{background:var(--t360-panel-soft);border:1px solid var(--t360-line-dark);border-radius:32px;overflow:hidden;padding:0;min-height:0}
.elementor .t360-panel-inner{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;width:100%}
.t360-panel-copy{justify-content:center}
.t360-panel-title .elementor-heading-title{margin:0}
.t360-panel-inner .t360-slot-tab{aspect-ratio:auto;min-height:320px;height:100%;border-left:1px dashed var(--t360-line-dark)}
/* incoming panel: slides in horizontally with a fade, only after the user interacts with the tabs */
@keyframes t360-panel-in{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
.t360-benefits.t360-is-interacted .e-n-tabs-content>.e-con.e-active,
.t360-benefits:has(.e-n-tab-title:focus) .e-n-tabs-content>.e-con.e-active{animation:t360-panel-in .7s cubic-bezier(.475,.425,0,.995) both}
/* ---- tablet ---- */
@media (max-width:1024px){
  .elementor .t360-grid-4{grid-template-columns:repeat(2,1fr)}
  .elementor .t360-split,.elementor .t360-split-narrow{gap:40px}
}
/* ---- mobile ---- */
@media (max-width:767px){
  .elementor .t360-split,.elementor .t360-split-narrow,.elementor .t360-hero .t360-split{grid-template-columns:1fr;gap:32px}
  .elementor .t360-grid-4,.elementor .t360-grid-3,.elementor .t360-grid-2{grid-template-columns:1fr}
  .t360-card{border-radius:28px}
  .t360-slot-hero{aspect-ratio:350/150}
  .t360-slot-band{aspect-ratio:350/150;border-radius:24px}
  .elementor .t360-related-wrap,.elementor .t360-benefits-wrap{border-radius:0}
  .elementor .t360-seg{flex-wrap:wrap}
  /* pills: horizontally scrollable strip */
  .t360-benefits .e-n-tabs-heading{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:6px}
  .t360-benefits .e-n-tab-title{flex:0 0 auto;scroll-snap-align:center}
  .elementor .t360-panel-inner{grid-template-columns:1fr}
  .elementor .t360-panel-inner .t360-slot-tab{order:-1;min-height:0;height:auto;aspect-ratio:348/130;border-left:0;border-bottom:1px dashed var(--t360-line-dark)}
  .t360-faq .e-n-accordion-item-title-text{font-size:18px}
  .t360-form-placeholder{min-height:0}
}
/* ---- reduced motion: instant switch, same content ---- */
@media (prefers-reduced-motion:reduce){
  .t360-benefits .e-n-tabs-content>.e-con.e-active,
  .t360-benefits.t360-is-interacted .e-n-tabs-content>.e-con.e-active,
  .t360-benefits:has(.e-n-tab-title:focus) .e-n-tabs-content>.e-con.e-active{animation:none!important;transform:none!important;opacity:1!important}
  .elementor .t360-benefits .e-n-tab-title{transition:none!important}
}

/* ---- header: mobile/tablet menu extra rows (Get a Quote, Call) are menu items hidden on desktop ---- */
@media (min-width:1025px){.t360-menu-mobile-only{display:none!important}}
@media (max-width:1024px){
  .hfe-nav-menu .menu-item.t360-menu-mobile-only>a{justify-content:center;text-align:center;min-height:52px;border-radius:999px;margin:12px 20px 0;font-weight:600;font-size:16px}
  .hfe-nav-menu .menu-item.t360-menu-cta>a.hfe-menu-item{background:var(--e-global-color-t360-lime,#CEFF00)!important;color:var(--e-global-color-t360-panel,#05070D)!important}
  .hfe-nav-menu .menu-item.t360-menu-call>a.hfe-menu-item{border:1px solid color-mix(in srgb,var(--t360-on-panel) 50%,transparent);color:var(--e-global-color-t360-on-panel,#F4F6F8)!important;margin-bottom:16px}
}

/* ---- fixes found in verification ---- */
/* buttons: dark text on lime fill (link colour rules must not recolour buttons) */
.elementor .t360-section .elementor-button,.elementor .t360-dark .elementor-button{color:var(--t360-panel)}
/* 44px tap targets for header/footer/page text links */
.hfe-nav-menu a.hfe-menu-item{min-height:44px;display:flex;align-items:center}
header .elementor-heading-title a,footer .elementor-heading-title a,header .elementor-widget-icon a,footer .elementor-widget-text-editor a,.t360-contact-lines a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
header .elementor-widget-icon .elementor-icon{width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}

/* ---- after QA ---- */
.elementor .t360-main{padding:0}
.t360-main>.e-con-inner{max-width:none;padding:0;gap:0}
.elementor .t360-main>.e-con{width:100%}
/* kicker to H2 spacing and type tweaks */
.t360-section .t360-kicker+.t360-h2,.t360-section .e-con>.t360-kicker{margin-bottom:0}
.t360-section>.e-con-inner{gap:14px}
.t360-panel-title .elementor-heading-title{font-size:40px;line-height:1.05}
.elementor .elementor-button{font-size:16px}
/* FAQ: two columns, hairline rows, round icon */
.elementor .t360-split-faq{grid-template-columns:5fr 7fr}
.t360-faq .e-n-accordion-item{border:0;border-top:1px solid var(--t360-line-light);border-radius:0;background:transparent;margin:0}
.t360-faq .e-n-accordion-item:last-child{border-bottom:1px solid var(--t360-line-light)}
.t360-faq .e-n-accordion-item-title{min-height:64px;padding:10px 0}
.t360-faq .e-n-accordion-item-title-text{font-size:20px;font-weight:600;letter-spacing:-.01em}
.t360-faq .e-n-accordion-item-title-icon{border:1px solid var(--t360-ink-soft);border-radius:50%;width:44px;height:44px;min-width:44px;color:var(--t360-ink)}
.t360-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon{background:var(--t360-lime);border-color:var(--t360-lime);color:var(--t360-panel)}
.t360-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon *{fill:var(--t360-panel);color:var(--t360-panel)}
.t360-faq .e-n-accordion-item>.e-con{padding:0 56px 22px 0}
.t360-faq .e-n-accordion-item>.e-con p{margin:0;font-size:16px}
/* areas */
.elementor .t360-split-areas{grid-template-columns:5fr 7fr;align-items:center}
.t360-slot-map{aspect-ratio:742/150;border-radius:32px}
@media (max-width:767px){
  .elementor .t360-split-faq,.elementor .t360-split-areas{grid-template-columns:1fr}
  .t360-slot-map{aspect-ratio:350/110}
  .t360-faq .e-n-accordion-item>.e-con{padding-right:0}
}

/* mobile header: fit logo, phone, quote button and hamburger inside 390px */
@media (max-width:767px){
  header .e-con-inner,header .e-con{gap:8px!important;column-gap:8px!important}
  header .elementor-widget-heading:first-child,header .e-con-inner>.elementor-widget-heading{flex:1 1 0;min-width:0}
  header .elementor-heading-title{font-size:14px;line-height:1.15}
  header .elementor-button{padding:0 16px}
}
/* closed UAE dropdown: its hidden items were wider than the 48px toggle widget and widened the page; take it out of flow while closed */
header .hfe-nav-menu__layout-horizontal.hfe-dropdown:not(.menu-is-active){position:absolute;width:0;height:0;overflow:hidden}
/* FAQ row refinements (override widget borders) */
.elementor .t360-faq .e-n-accordion-item{border:0!important;border-top:1px solid var(--t360-line-light)!important}
.elementor .t360-faq .e-n-accordion-item:last-child{border-bottom:1px solid var(--t360-line-light)!important}
.elementor .t360-faq .e-n-accordion-item-title{display:flex;justify-content:space-between;align-items:center;border:0!important}
.t360-faq .e-n-accordion-item-title-header{flex:1}
.t360-faq .e-n-accordion-item-title-icon{order:2}
.elementor .t360-faq .e-n-accordion-item>.e-con{border:0!important;padding:0 56px 22px 0!important}
/* nested containers: no default padding inside the pilot sections */
.t360-main .t360-hero-copy,.t360-main .t360-split,.t360-main .t360-btnrow{padding:0}

/* ---- round C ---- */
/* mobile menu: the extra CTA rows are <li> items; remove the UAE row divider on them so no line crosses the buttons */
.hfe-nav-menu .menu-item.t360-menu-mobile-only,.hfe-nav-menu .menu-item.t360-menu-mobile-only>a{border:0!important}
.hfe-nav-menu .menu-item.t360-menu-call>a.hfe-menu-item{border:1px solid color-mix(in srgb,var(--t360-on-panel) 50%,transparent)!important}
/* footer link list (Icon List; replaces the unlabeled second nav landmark) */
.t360-footer-links .elementor-icon-list-icon{display:none}
/* footer layout: see the Batch footer 2026-11-06 block at the end of this file */

/* ===== Batch D: mobile fidelity (390). Layout values live in Elementor (padding, direction, visibility, section backgrounds);
   CSS below only adds skin Elementor cannot express (per-breakpoint text colours, scroll-snap, masks). ===== */
.t360-carousel-meta .t360-counter p,.t360-carousel-meta .t360-counter .elementor-heading-title{margin:0;font-size:14px;font-weight:500;letter-spacing:.02em;color:var(--t360-on-panel);opacity:.7;font-variant-numeric:tabular-nums}
.t360-progress{position:relative;flex:1;height:3px;border-radius:2px;background:color-mix(in srgb,var(--t360-on-panel) 18%,transparent);min-height:0}
.t360-progress::after{content:"";position:absolute;left:0;top:0;height:100%;width:calc(var(--t360-progress,.3333)*100%);background:var(--t360-lime);border-radius:2px;transition:width .25s ease}
@media (prefers-reduced-motion:reduce){.t360-progress::after{transition:none}}
@media (max-width:767px){
  /* dark sections 4,5,7: text colours (heading colour controls are not responsive in Elementor) */
  .elementor .t360-m-dark .t360-kicker .elementor-heading-title{color:var(--t360-lime)}
  .elementor .t360-m-dark .t360-h2 .elementor-heading-title{color:var(--t360-on-panel)}
  .elementor .t360-m-dark .t360-lead{color:var(--t360-on-panel);opacity:.86}
  .elementor .t360-m-dark .t360-lead p,.elementor .t360-m-dark .t360-lead{color:var(--t360-on-panel)}
  /* deliverables tiles: compact outlined */
  .elementor .t360-deliverables .t360-tile{min-height:0;background:var(--t360-panel-soft);border:1px solid var(--t360-line-dark);border-radius:28px}
  .t360-deliverables .t360-grid{gap:12px}
  /* section 3: number circle in a left rail, text card beside it */
  .elementor .t360-how .t360-card{background:transparent!important;border:0!important;border-radius:0}
  .elementor .t360-how .t360-step-body h3.elementor-heading-title,.elementor .t360-how .t360-step-body .elementor-widget-heading h3{font-size:18px;letter-spacing:-.02em;line-height:1.2}
  .t360-how .t360-step-body{flex:1;min-width:0;background:var(--t360-surface);border:1px solid var(--t360-line-light);border-radius:24px}
  .t360-how .t360-step-body .t360-step-label .elementor-heading-title{margin-top:0}
  .t360-how .t360-num{flex:0 0 40px}
  /* section 4: benefits */
  .t360-benefits .e-n-tabs-heading{margin-right:-20px;padding-right:20px;scroll-padding-inline:0;scrollbar-width:none;
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 56px),transparent)}
  .t360-benefits .e-n-tabs-heading::-webkit-scrollbar{display:none}
  .t360-benefits.t360-strip-end .e-n-tabs-heading{-webkit-mask-image:none;mask-image:none}
  /* section 7: swipe carousel (scroll-snap); counter and progress are native widgets updated by t360-benefits.js */
  .elementor .t360-related .t360-carousel{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:12px;margin-inline:-20px;width:calc(100% + 40px);max-width:none;padding-inline:20px;scroll-snap-type:x mandatory;scroll-padding-inline:20px;scrollbar-width:none;overscroll-behavior-x:contain}
  .t360-related .t360-carousel::-webkit-scrollbar{display:none}
  .elementor .t360-related .t360-carousel>.t360-card{flex:0 0 min(300px,80vw);scroll-snap-align:start;min-height:200px}
  .t360-related .t360-carousel .elementor-button{padding-inline:0}
  .t360-carousel-meta{margin-top:4px}
}
@media (max-width:767px){
  /* mobile full-bleed dark surface for sections 4, 5, 7 (container background colour is not responsive in Elementor) */
  .elementor .t360-section.t360-m-dark{background-color:var(--t360-panel)!important}
  .elementor .t360-related-wrap,.elementor .t360-benefits-wrap{background-color:transparent!important}
}
@media (max-width:767px){.elementor .t360-seg.elementor-hidden-mobile{display:none}}
@media (max-width:767px){.t360-chips .elementor-icon-list-text{padding:0 14px;font-size:14px}}

/* ---- Batch F ---- */
/* tablet: deliverables stack (tiles were too narrow for 'documentation') */
@media (max-width:1024px){.elementor .t360-deliverables .t360-split{grid-template-columns:1fr}}
/* FAQ columns 4fr/8fr like the frame (right column starts ~x=541 at 1440) */
@media (min-width:1025px){.elementor .t360-split-faq{grid-template-columns:4fr 8fr}}
/* mobile hero: copy children join the hero grid so breadcrumb (first), image (native order start), then text */
@media (max-width:767px){
  .elementor .t360-hero .t360-split{gap:18px}
  .elementor .t360-hero .t360-hero-copy{display:contents}
  .t360-hero .t360-crumb{font-size:12px}
}
@media (max-width:767px){.t360-hero .t360-crumb,.t360-hero .t360-crumb p{font-size:12px;line-height:1.4}}
@media (max-width:767px){.elementor .t360-hero .t360-crumb,.elementor .t360-hero .t360-crumb p,.elementor .t360-hero .t360-crumb .elementor-widget-container{font-size:12px!important;line-height:1.4}}
/* open menu: keep link colour on focus/hover (UAE turned the focused first link dark on dark) */
header .hfe-dropdown a.hfe-menu-item:focus,header .hfe-dropdown a.hfe-menu-item:hover,header .hfe-dropdown a.hfe-menu-item.highlighted{color:var(--t360-on-panel)!important;outline:3px solid var(--t360-lime);outline-offset:-3px}

/* ===== Batch links+form ===== */
/* non-functional (pending) items: no link appearance */
.t360-nolink,.t360-nolink a,a:not([href]).hfe-menu-item,.elementor-button:not([href]){cursor:default;text-decoration:none}
.hfe-nav-menu .menu-item.t360-nolink>a:not([href]):hover,.hfe-nav-menu .menu-item.t360-nolink>a:not([href]):focus{background:transparent!important;outline:0}
.hfe-nav-menu .menu-item.t360-nolink>a:not([href]){opacity:.62}
.t360-link-lime.t360-nolink .elementor-button{background:transparent!important;color:var(--t360-on-panel)!important;opacity:.62;pointer-events:none;box-shadow:none}
.t360-seg-link.t360-nolink,.t360-seg-link .t360-nolink{opacity:.62;color:inherit;cursor:default}
/* quote form (WPForms Lite) on the dark panel */
.t360-form-panel{border:0;border-radius:32px;min-height:0;justify-content:flex-start}
.t360-form-panel .wpforms-container{margin:0}
.t360-form-panel .wpforms-form .wpforms-field{padding:0 0 18px}
.t360-form-panel .wpforms-field-label,.t360-form-panel legend.wpforms-field-label{color:var(--t360-on-panel);font-size:15px;font-weight:600;margin-bottom:6px}
.t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-description{color:var(--t360-on-panel);font-size:14px;margin-top:6px}
.t360-form-panel .wpforms-required-label{color:var(--t360-lime)}
.t360-form-panel .wpforms-field input[type=text],.t360-form-panel .wpforms-field input[type=email],.t360-form-panel .wpforms-field select,.t360-form-panel .wpforms-field textarea{width:100%;max-width:100%;min-height:44px;padding:10px 16px;border-radius:14px;border:1px solid color-mix(in srgb,var(--t360-on-panel) 40%,transparent);background:var(--t360-panel);color:var(--t360-on-panel);font:inherit;font-size:16px}
.t360-form-panel .wpforms-field textarea{min-height:120px}
.t360-form-panel .wpforms-field input:focus,.t360-form-panel .wpforms-field select:focus,.t360-form-panel .wpforms-field textarea:focus{outline:3px solid var(--t360-lime);outline-offset:2px;border-color:var(--t360-lime);box-shadow:none}
.t360-form-panel .wpforms-field-radio ul{display:flex;gap:12px;flex-wrap:wrap;padding:0;margin:0;list-style:none}
.t360-form-panel .wpforms-field-radio li{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:0 16px;border:1px solid color-mix(in srgb,var(--t360-on-panel) 40%,transparent);border-radius:999px;width:auto}
.t360-form-panel .wpforms-field-radio input{accent-color:var(--t360-lime);width:20px;height:20px;margin:0}
.t360-form-panel .wpforms-field-radio label{color:var(--t360-on-panel);margin:0;font-weight:500}
.t360-form-panel button.wpforms-submit{min-height:48px;padding:0 28px;border:0;border-radius:999px;background:var(--t360-lime);color:var(--t360-panel);font:inherit;font-weight:600;font-size:16px;cursor:pointer}
.t360-form-panel button.wpforms-submit:hover{filter:brightness(.92)}
.t360-form-panel button.wpforms-submit:focus-visible{outline:3px solid var(--t360-on-panel);outline-offset:3px}
.t360-form-panel label.wpforms-error,.t360-form-panel em.wpforms-error{color:#FFB4A8;font-size:14px;margin-top:6px;display:block}
.t360-form-panel .wpforms-field input.wpforms-error,.t360-form-panel .wpforms-field select.wpforms-error,.t360-form-panel .wpforms-field textarea.wpforms-error{border-color:#FFB4A8}
.t360-form-panel .wpforms-confirmation-container-full,.t360-form-panel .wpforms-confirmation-container{background:transparent;border:1px solid var(--t360-lime);color:var(--t360-on-panel);border-radius:16px}
.t360-form-panel .wpforms-confirmation-container-full p{color:var(--t360-on-panel)}
/* open mobile/tablet menu: panel ends cleanly (dark, bottom padding) */
@media (max-width:1024px){
  header .hfe-nav-menu__layout-horizontal.hfe-dropdown.menu-is-active,header nav.hfe-dropdown.menu-is-active{background:var(--t360-panel);padding-bottom:24px}
}
/* WPForms specificity fixes (labels/radios readable on dark panel) */
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-label,.elementor .t360-form-panel div.wpforms-container-full .wpforms-form legend.wpforms-field-label,.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-label-inline{color:var(--t360-on-panel)!important;opacity:1;font-weight:600}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-label-inline{font-weight:500;padding:0;display:inline;line-height:1.3}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio input[type=radio]{position:static;appearance:auto;-webkit-appearance:radio;width:20px;height:20px;margin:0;flex:none}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio li{min-height:44px;width:auto;flex:1 1 140px}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field input[type=text],.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field input[type=email],.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field select,.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field textarea{max-width:100%;width:100%;background:var(--t360-panel);color:var(--t360-on-panel)}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form button.wpforms-submit{background:var(--t360-lime);color:var(--t360-panel);border-radius:999px}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio li{align-items:center!important}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio label::before,.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio label::after,.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio input::before,.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio input::after{display:none!important;content:none!important}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form .wpforms-field-radio label{position:static!important;margin:0!important;line-height:1.3}
@media (max-width:1024px){
  header nav.hfe-dropdown.menu-is-active{border-bottom:1px solid var(--t360-line-dark);box-shadow:0 28px 36px -8px rgba(0,0,0,.55)}
}
.elementor .t360-form-panel div.wpforms-container-full .wpforms-form label.wpforms-error,.elementor .t360-form-panel div.wpforms-container-full .wpforms-form em.wpforms-error{color:#FFB4A8!important;font-size:14px}
/* ===== nolink items: fixed colours, no hover/focus/active/current change ===== */
.hfe-nav-menu .menu-item.t360-nolink>a,.hfe-nav-menu .menu-item.t360-nolink>a:hover,.hfe-nav-menu .menu-item.t360-nolink>a:focus,.hfe-nav-menu .menu-item.t360-nolink>a:active,.hfe-nav-menu .menu-item.t360-nolink.current-menu-item>a,.hfe-nav-menu .menu-item.t360-nolink>a.highlighted,header .hfe-nav-menu .menu-item.t360-nolink>a:hover{color:#6B6F76!important;opacity:1!important;background:transparent!important;outline:0!important;cursor:default!important;text-decoration:none!important}
@media (max-width:1024px){
  header nav.hfe-dropdown .menu-item.t360-nolink>a,header nav.hfe-dropdown .menu-item.t360-nolink>a:hover,header nav.hfe-dropdown .menu-item.t360-nolink>a:focus,header nav.hfe-dropdown .menu-item.t360-nolink>a:active,header nav.hfe-dropdown .menu-item.t360-nolink>a.highlighted{color:#A1A5AD!important}
}
.t360-footer-links .elementor-icon-list-item .elementor-icon-list-text,.t360-footer-links .elementor-icon-list-item:hover .elementor-icon-list-text{opacity:1}
.t360-footer-links .elementor-icon-list-item:not(:has(a)) .elementor-icon-list-text{color:#A1A5AD!important;cursor:default;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-weight:500}
.t360-link-lime.t360-nolink .elementor-button,.t360-link-lime.t360-nolink .elementor-button:hover,.t360-link-lime.t360-nolink .elementor-button:focus,.t360-link-lime.t360-nolink .elementor-button:active{color:#6B6F76!important;opacity:1!important;background:transparent!important;cursor:default!important;pointer-events:none}
.t360-seg-link.t360-nolink,.t360-seg-link .t360-nolink,.t360-seg-link .t360-nolink:hover{color:#6B6F76!important;opacity:1!important;cursor:default}
@media (max-width:767px){
  .t360-link-lime.t360-nolink .elementor-button,.t360-link-lime.t360-nolink .elementor-button:hover{color:#A1A5AD!important}
}
/* View service / Residential (other page) sit on dark panels at every width */
.t360-link-lime.t360-nolink .elementor-button,.t360-link-lime.t360-nolink .elementor-button:hover,.t360-link-lime.t360-nolink .elementor-button:focus,.t360-link-lime.t360-nolink .elementor-button:active,.t360-seg-link.t360-nolink,.t360-seg-link .t360-nolink,.t360-seg-link .t360-nolink:hover{color:#A1A5AD!important}

/* ===== Batch H: audience selector (section 4) + hero video ===== */
/* Selector: real buttons (aria-pressed) inside the existing pill. Business is default; JS toggles [hidden] + .t360-aud-on. */
.elementor .t360-seg-host{padding:0}
.t360-seg-widget .elementor-widget-container{display:block}
.elementor .t360-seg-btn{appearance:none;border:0;background:transparent;color:var(--t360-on-panel);font-family:inherit;font-size:15px;font-weight:600;line-height:1;min-height:44px;padding:0 22px;border-radius:999px;cursor:pointer;transition:background-color .25s ease,color .25s ease}
.elementor .t360-seg-btn:hover{background:color-mix(in srgb,var(--t360-on-panel) 12%,transparent)}
.elementor .t360-seg-btn[aria-pressed="true"],.elementor .t360-seg-btn[aria-pressed="true"]:hover{background:var(--t360-lime);color:var(--t360-panel);cursor:default}
.elementor .t360-seg-btn:focus-visible{outline:3px solid var(--t360-on-panel);outline-offset:3px}
.elementor .t360-aud-res:not(.t360-aud-on){display:none}
.elementor-editor-active .t360-aud-res:not(.t360-aud-on){display:flex!important}
.elementor .t360-aud-biz[hidden],.elementor .t360-aud-res[hidden]{display:none!important}
.t360-aud-anim{animation:t360-aud-in .25s ease both}
@keyframes t360-aud-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.t360-aud-anim{animation:none}.elementor .t360-seg-btn{transition:none}}
@media (max-width:767px){.elementor .t360-benefits-wrap .t360-seg{flex-wrap:nowrap}.elementor .t360-seg-btn{padding:0 18px}}

/* Hero media: poster/video (illustration). >=1025 full-bleed behind the copy; 768-1024 in-flow video; <=767 poster only (no mp4 request). */
.elementor .t360-hero-media{position:relative;overflow:hidden;border-radius:28px;aspect-ratio:1440/616;padding:0}
.t360-hero-media-widget,.t360-hero-media-widget .elementor-widget-container{height:100%}
.t360-hero-video{display:block;width:100%;height:100%;object-fit:cover;object-position:right center;background:var(--t360-panel)}
.t360-hero-media-ui{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:calc(100% - 24px)}
.t360-hero-controls{display:flex;align-items:center;gap:10px}
.t360-illus{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--t360-on-panel);background:rgba(5,7,13,.78);border:1px solid var(--t360-line-dark);border-radius:999px;padding:6px 12px;line-height:1}
.elementor .t360-hero-toggle{appearance:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--t360-line-dark);background:rgba(5,7,13,.78);color:var(--t360-on-panel);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.elementor .t360-hero-toggle[hidden]{display:none}
.elementor .t360-hero-toggle:hover{background:var(--t360-lime);color:var(--t360-panel)}
.elementor .t360-hero-toggle:focus-visible{outline:3px solid var(--t360-lime);outline-offset:3px}

.elementor .t360-hero-toggle .t360-ic-play,.elementor .t360-hero-toggle.is-paused .t360-ic-pause{display:none}
.elementor .t360-hero-toggle.is-paused .t360-ic-play{display:block}
@media (min-width:768px){
  .elementor .t360-hero .t360-split{position:static}
  .elementor .t360-hero .t360-hero-media{position:absolute;inset:0;aspect-ratio:auto;border-radius:0;z-index:0}
  .elementor .t360-hero .t360-hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--t360-panel) 0,rgba(5,7,13,.55) 38%,rgba(5,7,13,0) 58%)}
  .elementor .t360-hero .t360-hero-copy{position:relative;z-index:1;max-width:560px}
  .t360-hero-media-ui{right:28px;bottom:28px;z-index:2}
}
.elementor .t360-seg-btn:focus,.elementor .t360-seg-btn:active{background:transparent;color:var(--t360-on-panel)}
.elementor .t360-seg-btn[aria-pressed="true"]:focus,.elementor .t360-seg-btn[aria-pressed="true"]:active{background:var(--t360-lime);color:var(--t360-panel)}
.elementor .t360-hero-toggle:focus,.elementor .t360-hero-toggle:active{background:rgba(5,7,13,.78);color:var(--t360-on-panel)}
.elementor .t360-hero-toggle:hover,.elementor .t360-hero-toggle:focus-visible:hover{background:var(--t360-lime);color:var(--t360-panel)}
/* Hero media at 1025-1439: narrower so the lit rack never sits under the copy (measured contrast >= 4.5:1 required). */
@media (min-width:768px) and (max-width:1439px){
  .elementor .t360-hero .t360-hero-media{left:44%}
  .elementor .t360-hero .t360-hero-media::after{background:linear-gradient(90deg,var(--t360-panel) 0,var(--t360-panel) 24%,rgba(5,7,13,0) 64%)}
}

/* ===== Batch I (Residential/About pages): hero placeholder image fills the media box ===== */
.t360-hero-media .elementor-widget-image,.t360-hero-media .elementor-widget-container{height:100%}
.t360-hero-media .t360-slot-img img{width:100%;height:100%;object-fit:cover;display:block}
.t360-carousel:focus-visible{outline:3px solid var(--t360-lime);outline-offset:-3px}
/* Hero media 1025-1439: explicit width (Elementor containers carry width:100%, which made left:44% overflow the page). */
@media (min-width:768px) and (max-width:1439px){.elementor .t360-hero .t360-hero-media{left:44%;right:0;width:56%}}

/* ===== Real installations video (Home): secondary, user-started. 16:9 reserved, no layout shift. ===== */
.t360-rv-widget,.t360-rv-widget .elementor-widget-container{width:100%}
.t360-rv{position:relative;overflow:hidden;border-radius:28px;aspect-ratio:16/9;background:var(--t360-panel-soft);border:1px solid var(--t360-line-dark)}
.t360-rv-video{display:block;width:100%;height:100%;object-fit:cover;background:var(--t360-panel-soft);cursor:pointer}
.t360-rv-ui{position:absolute;inset:12px;pointer-events:none}
.t360-rv-ui .t360-real{position:absolute;left:0;top:0}
.t360-rv-ui .t360-rv-toggle{position:absolute;right:0;bottom:0}
.t360-rv-ui>*{pointer-events:auto}
.t360-real{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--t360-panel);background:var(--t360-lime);border-radius:999px;padding:6px 12px;line-height:1}
.elementor .t360-rv-toggle{appearance:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--t360-line-dark);background:rgba(5,7,13,.78);color:var(--t360-on-panel);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.elementor .t360-rv-toggle[hidden]{display:none}
.elementor .t360-rv-toggle:hover{background:var(--t360-lime);color:var(--t360-panel)}
.elementor .t360-rv-toggle:focus-visible{outline:3px solid var(--t360-lime);outline-offset:3px}
.elementor .t360-rv-toggle:focus:not(:focus-visible):not(:hover){background:rgba(5,7,13,.78);color:var(--t360-on-panel)}
.t360-rv-toggle .t360-ic-play,.t360-rv-toggle.is-paused .t360-ic-pause{display:none}
.t360-rv-toggle.is-paused .t360-ic-play{display:block}
.t360-rv-list{margin:0;padding-left:20px;display:grid;gap:6px}
.t360-rv-sec .t360-rv-list{color:var(--t360-on-panel)}
.t360-rv-note{font-size:14px;opacity:.8;max-width:75ch}
@media (max-width:767px){.t360-rv{border-radius:20px}.t360-rv-ui{inset:8px}}
.elementor .t360-rv-split{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:center;padding:0}
.elementor .t360-rv-split>.e-con{padding:0;min-width:0}
@media (max-width:1024px){.elementor .t360-rv-split{grid-template-columns:1fr;gap:32px}}
.t360-rv-sec .t360-lead-dark{opacity:1}

/* QA-L D1: inline links in running text are underlined (not distinguished by colour alone); buttons/cards excluded. */
.elementor-widget-text-editor a:not(.elementor-button),.elementor-widget-text-editor a:not(.elementor-button):visited{color:var(--t360-lime-on-light);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.t360-dark .elementor-widget-text-editor a:not(.elementor-button),.t360-dark .elementor-widget-text-editor a:not(.elementor-button):visited,.t360-m-dark .elementor-widget-text-editor a:not(.elementor-button){color:var(--t360-lime)}
.elementor-widget-text-editor a:not(.elementor-button):hover,.elementor-widget-text-editor a:not(.elementor-button):focus-visible{text-decoration-thickness:2px}

/* ===== Header v2 (Batch P, 2026-11-06). Fixed constant-size bar; dark graphite when scrolled; logo box never changes size.
   JS: assets/js/t360-header.js (.is-scrolled via an 8px sentinel + IntersectionObserver; aria-current="location" for same-page anchors).
   Layout values (bar height, logo images, menu items, colours at top) live in Elementor (UAE header template 14); this block owns states + transitions. ===== */
:root{--t360-ab:0px;--t360-bar:72px;--t360-gap:16px;--t360-hfade-d:350ms;--t360-hfade-e:cubic-bezier(.2,.7,.2,1);--t360-hfade:350ms cubic-bezier(.2,.7,.2,1)} /* ONE header fade token (all parts, both directions, also under prefers-reduced-motion: owner-authorised) */
@media (max-width:767px){:root{--t360-bar:64px}}
:root:has(body.admin-bar),body.admin-bar{--t360-ab:32px}
@media (max-width:782px){:root:has(body.admin-bar),body.admin-bar{--t360-ab:46px}}
@media (max-width:600px){:root:has(body.admin-bar),body.admin-bar{--t360-ab:0px}} /* WP admin bar is not fixed under 601px */
/* Sticky: no ancestor clips (body has overflow-x:clip, which does not create a scroll container). */
header#masthead{position:fixed!important;top:var(--t360-ab);left:0;right:0;width:100%;z-index:1000!important;box-sizing:border-box;background:#fff;
  transition:background-color var(--t360-hfade),box-shadow var(--t360-hfade)}
/* Bar: same height in both states (no min-height/padding change on scroll). */
#masthead .e-parent{box-sizing:border-box;height:var(--t360-bar);min-height:var(--t360-bar);background-color:#fff!important;border-bottom:1px solid transparent!important;
  transition:background-color var(--t360-hfade),border-color var(--t360-hfade)}
header:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead){background:#0B0F14;box-shadow:0 8px 24px rgba(0,0,0,.35)}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .e-parent{background-color:#0B0F14!important;border-bottom-color:rgba(255,255,255,.10)!important}
/* Anchors and focus targets stay clear of the header. */
html{scroll-padding-top:calc(var(--t360-ab) + var(--t360-bar) + var(--t360-gap))}

/* Logo: two stacked images in ONE fixed box (100x48 / 96x46 / 90x44); crossfade only. */
#masthead .t360-logo-box{position:relative;flex:none;width:100px;min-width:100px;max-width:100px;height:48px;padding:0;margin:0}
@media (max-width:1024px){#masthead .t360-logo-box{width:96px;min-width:96px;max-width:96px;height:46px}}
@media (max-width:767px){#masthead .t360-logo-box{width:90px;min-width:90px;max-width:90px;height:44px}}
#masthead .t360-logo-box>.elementor-widget{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0}
#masthead .t360-logo-box .t360-logo a{display:block;width:100%;height:100%}
#masthead .t360-logo-box .t360-logo img{display:block;width:100%!important;height:100%!important;max-width:none;object-fit:contain;object-position:left center;transform:none;transition:opacity var(--t360-hfade)}
#masthead .t360-logo-light img{opacity:0}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .t360-logo-light img{opacity:1}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .t360-logo-dark img{opacity:0}

/* Text/icon colours follow the state (Elementor holds the top-state colours). */
#masthead nav a.hfe-menu-item,#masthead .elementor-widget-heading a,#masthead .elementor-icon,#masthead .elementor-icon svg,#masthead .hfe-nav-menu__toggle svg,#masthead .hfe-nav-menu__toggle,#masthead .elementor-heading-title,#masthead .elementor-icon svg *,#masthead .hfe-nav-menu__toggle svg *{transition:color var(--t360-hfade),fill var(--t360-hfade)}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) nav:not(.hfe-dropdown) a.hfe-menu-item,:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .elementor-widget-heading a,:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .elementor-heading-title{color:#F5F5F7!important}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .elementor-icon,:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .elementor-icon svg,:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .hfe-nav-menu__toggle,:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .hfe-nav-menu__toggle svg,:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .hfe-nav-menu__toggle svg *{color:#F5F5F7!important;fill:#F5F5F7!important}

/* Nav indicator: 2px line under the text; scaleX from the left (not animated on page load: current page is static). */
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item{position:relative;border-radius:8px}
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:2px;background:#4F6B00;transform:scaleX(0);transform-origin:left;opacity:1!important;pointer-events:none;transition:transform .18s ease,opacity var(--t360-hfade),background-color var(--t360-hfade)}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) nav:not(.hfe-dropdown) a.hfe-menu-item::after{background:#CEFF00}
/* hover: colour shift + line at 40% */
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item:hover{color:#4F6B00!important}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) nav:not(.hfe-dropdown) a.hfe-menu-item:hover{color:#CEFF00!important}
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item:hover::after{transform:scaleX(1);opacity:.4!important}
/* keyboard focus: 2px outline offset 3px, radius 8px (never removed) */
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item:focus-visible{outline:2px solid #4F6B00;outline-offset:3px;border-radius:8px}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) nav:not(.hfe-dropdown) a.hfe-menu-item:focus-visible{outline-color:#CEFF00}
/* current page: full line + weight 600, static */
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item[aria-current="page"]{font-weight:600}
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item[aria-current="page"]::after{transform:scaleX(1);opacity:1!important;transition:background-color var(--t360-hfade)}
/* section in view (same-page anchors only): line + accent text */
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item[aria-current="location"]{color:#4F6B00!important}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) nav:not(.hfe-dropdown) a.hfe-menu-item[aria-current="location"]{color:#CEFF00!important}
#masthead nav:not(.hfe-dropdown) a.hfe-menu-item[aria-current="location"]::after{transform:scaleX(1);opacity:1!important}
#masthead .elementor-button[aria-current="location"]{box-shadow:inset 0 0 0 2px #0B0F14}
#masthead .elementor-button:focus-visible{outline:2px solid #4F6B00;outline-offset:3px}
:is(#masthead.is-scrolled,html.t360-pre-scrolled #masthead) .elementor-button:focus-visible{outline-color:#CEFF00}

/* Mobile/tablet menu: dark panel in both states, hangs from the bar at x=0, scrolls inside when taller than the viewport. */
@media (max-width:1024px){
  #masthead .elementor-widget[class*="hfe-nav-menu__breakpoint"]{position:static}
  #masthead nav.hfe-dropdown.menu-is-active{max-height:calc(100vh - var(--t360-ab) - var(--t360-bar));max-height:calc(100dvh - var(--t360-ab) - var(--t360-bar));overflow-y:auto;overscroll-behavior:contain}
  #masthead nav.hfe-dropdown{background:#0B0F14}
  #masthead nav.hfe-dropdown.menu-is-active{position:fixed!important;top:calc(var(--t360-ab) + var(--t360-bar))!important;left:0!important;right:0!important;width:auto!important;margin:0!important;transform:none!important}
  #masthead nav.hfe-dropdown a.hfe-menu-item{color:#F5F5F7}
  #masthead nav.hfe-dropdown a.hfe-menu-item[aria-current="page"],#masthead nav.hfe-dropdown a.hfe-menu-item[aria-current="location"]{font-weight:600;box-shadow:inset 3px 0 0 var(--t360-lime,#CEFF00)}
  #masthead nav.hfe-dropdown .menu-item.t360-menu-cta>a.hfe-menu-item[aria-current]{box-shadow:inset 0 0 0 3px #05070D}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  /* Owner-authorised (2026-11-06): the colour fade stays under reduce. Allowlist = colour/opacity only; transform/size/position never animate. */
  #masthead,#masthead *,#masthead *::before,#masthead *::after{transition-property:background-color,color,border-color,box-shadow,opacity,fill!important;transition-duration:var(--t360-hfade-d)!important;transition-timing-function:var(--t360-hfade-e)!important;transition-delay:0s!important}
  #masthead nav:not(.hfe-dropdown) a.hfe-menu-item::after{transition-property:background-color,opacity!important}
}

/* Instagram links (footer, selected installations, quote section): plain text links, lowest emphasis; lime stays for Call / Get a Quote */
.elementor a.t360-ig,.t360-ig{display:inline-flex;align-items:center;gap:10px;min-height:44px;min-width:44px;padding:0 4px;color:var(--t360-on-panel);font-family:Inter,Arial,sans-serif;font-size:16px;font-weight:500;line-height:1.2;text-decoration:none}
.t360-ig svg{flex:none;width:24px;height:24px}
.elementor a.t360-ig,.elementor a.t360-ig:visited{color:var(--t360-on-panel)}
.elementor a.t360-ig:hover{color:var(--t360-lime)}
.elementor .t360-ig:focus-visible{outline:3px solid var(--t360-lime);outline-offset:3px;border-radius:4px}
.elementor .t360-rv-ig p,.elementor .t360-cta-ig p{margin:0}
.elementor .t360-rv-ig a,.elementor .t360-cta-ig a{color:var(--t360-on-panel);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.elementor .t360-rv-ig a:hover,.elementor .t360-cta-ig a:hover{text-decoration-thickness:2px}
.elementor .t360-cta-ig{font-size:15px;opacity:.78}
.elementor .t360-rv-ig{font-size:16px}

/* ===== Footer v2 (Batch P, 2026-11-06). Content, colours, typography and links live in Elementor (UAE footer template 15);
   CSS only does grid placement, tap rows, focus and the strip layout. Privacy slot: intentionally absent until the policy is published. ===== */
.elementor .t360-footer{border-top:1px solid rgba(255,255,255,.08)}
.elementor .t360-footer-grid,.elementor .t360-footer-bar,.elementor .t360-footer-strip-grid{width:100%;max-width:1280px;margin-inline:auto}
.t360-footer .elementor-widget{margin:0}
/* trust strip (part of the footer template, above the columns) */
.elementor .t360-footer-strip{border-bottom:1px solid rgba(255,255,255,.08)}
.elementor .e-con.t360-footer-strip-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:0}
.elementor .t360-footer-strip-grid>.e-con{width:auto;max-width:none;min-width:0;--width:auto;--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0}
.t360-strip-h .elementor-heading-title{margin:0;font-size:15px;line-height:22px}
.t360-strip-t,.t360-strip-t p{margin:0;font-size:15px;line-height:22px}
.t360-strip-t a{color:#F5F5F7;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.t360-strip-t a:hover{color:var(--t360-lime);text-decoration-thickness:2px}
.t360-strip-t a:focus-visible{outline:2px solid var(--t360-lime);outline-offset:3px;border-radius:4px}
@media (min-width:900px){
  .elementor .e-con.t360-footer-strip-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
  .elementor .t360-footer-strip-grid>.t360-strip-item{padding:0 28px;border-left:1px solid rgba(255,255,255,.10)}
  .elementor .t360-footer-strip-grid>.t360-strip-item:first-child{padding-left:0;border-left:0}
  .elementor .t360-footer-strip-grid>.t360-strip-item:last-child{padding-right:0}
}
/* columns */
.elementor .e-con.t360-footer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;align-items:start;padding:0}
.elementor .t360-footer-grid>.e-con{width:auto;max-width:none;min-width:0;--width:auto;--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0}
.elementor .t360-footer-grid>.t360-footer-brand,.elementor .t360-footer-grid>.t360-footer-contact{grid-column:1/-1}
.t360-footer-brand .t360-logo{margin-bottom:16px}
.t360-footer-brand .t360-logo img{display:block;height:auto;max-width:160px}
.t360-footer-desc,.t360-footer-desc p,.t360-footer-note,.t360-footer-note p{max-width:38ch;margin:0}
.t360-footer-desc p{font-size:15px;line-height:24px;margin-bottom:12px}
.t360-footer-note p{font-size:14px;line-height:22px}
.t360-footer .t360-footer-h .elementor-heading-title{margin:0 0 8px;font-size:12px;line-height:16px;letter-spacing:.12em;font-weight:600;text-transform:uppercase;color:var(--e-global-color-t360-lime,#CEFF00)}
.t360-footer .t360-footer-links .elementor-icon-list-items,.t360-footer .t360-footer-contact-list .elementor-icon-list-items{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}
.t360-footer .t360-footer-links .elementor-icon-list-item,.t360-footer .t360-footer-contact-list .elementor-icon-list-item{margin:0;padding:0}
.t360-footer .t360-footer-links .elementor-icon-list-item>a,.t360-footer .t360-footer-contact-list .elementor-icon-list-item>a{display:flex;align-items:center;min-height:44px;padding:0;color:#F5F5F7;font-size:16px;line-height:24px}
.t360-footer .t360-footer-links .elementor-icon-list-item>a{font-weight:400}
.t360-footer .t360-footer-contact-list .elementor-icon-list-item>a{font-weight:500}
.t360-footer .t360-footer-links .elementor-icon-list-text,.t360-footer .t360-footer-contact-list .elementor-icon-list-text{padding:0!important;color:inherit}
.t360-footer .t360-footer-contact-list .elementor-icon-list-icon{display:none}
.t360-footer .t360-footer-ig{margin-top:0}
.elementor .t360-footer a.t360-ig{gap:12px;padding:0;min-height:44px}
.t360-footer .t360-ig svg{width:20px;height:20px;color:#A1A5AD}
.t360-footer .t360-footer-links a:hover,.t360-footer .t360-footer-contact-list a:hover,.elementor .t360-footer a.t360-ig:hover{color:var(--t360-lime);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.t360-footer .t360-footer-links a:hover .elementor-icon-list-text,.t360-footer .t360-footer-contact-list a:hover .elementor-icon-list-text{color:var(--t360-lime);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.elementor .t360-footer a.t360-ig:hover svg{color:var(--t360-lime)}
.t360-footer a:focus-visible,.elementor .t360-footer a.t360-ig:focus-visible{outline:2px solid var(--t360-lime);outline-offset:4px;border-radius:4px;color:var(--t360-lime)}
.t360-footer a:focus-visible .elementor-icon-list-text{color:var(--t360-lime)}
/* the ONE footer CTA */
.t360-footer-cta{margin-top:16px}
.elementor .t360-footer-cta .elementor-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.elementor .t360-footer-cta .elementor-button:focus-visible{outline:2px solid #fff;outline-offset:3px}
/* bottom bar: copyright left; right slot reserved for the Privacy link (not rendered until the policy is published) */
.elementor .t360-footer-bar{margin-top:40px}
.t360-footer-bar .t360-footer-divider{margin:0}
.t360-footer-bar .t360-footer-divider .elementor-divider{padding:0}
.t360-footer-bar .t360-footer-copy{padding:16px 0 20px;text-wrap:balance}
.t360-footer-bar .t360-footer-copy,.t360-footer-bar .t360-footer-copy *{font-size:14px;line-height:20px;color:#A1A5AD}
@media (min-width:768px){
  .elementor .e-con.t360-footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
  .elementor .t360-footer-grid>.t360-footer-brand{grid-column:1/-1}
  .elementor .t360-footer-grid>.t360-footer-contact{grid-column:auto}
}
@media (min-width:769px){
  .t360-footer .t360-footer-links .elementor-icon-list-item>a,.t360-footer .t360-footer-contact-list .elementor-icon-list-item>a,.elementor .t360-footer a.t360-ig{min-height:40px}
}
@media (min-width:1024px){
  .elementor .e-con.t360-footer-grid{grid-template-columns:1.6fr 1fr 1.2fr 1.4fr;gap:32px}
  .elementor .t360-footer-grid>.t360-footer-brand{grid-column:auto}
}
@media (min-width:1280px){.elementor .e-con.t360-footer-grid{gap:48px}}
@media (max-width:768px){.t360-footer-brand .t360-logo a{display:block;padding:12px 0;margin:-12px 0}}
@media (max-width:767px){
  .elementor .t360-footer-bar{margin-top:32px}
  .elementor .t360-footer-cta .elementor-button{width:100%}
  .t360-footer-brand .t360-logo a{display:block;padding:9px 0;margin:-9px 0}
}
/* gap above the footer: the last page section is the dark CTA (96/56 bottom padding); trim it to 32/24 (footer adds 40 on top: total gap 72 desktop, 64 mobile) */
.elementor .t360-main .t360-cta.t360-section{padding-bottom:16px}
@media (max-width:767px){.elementor .t360-main .t360-cta.t360-section{padding-bottom:24px}}

/* Hero control: labeled pill when paused (reduced motion, blocked, ended); icon-only circle while playing. */
.elementor .t360-hero-toggle .t360-hero-toggle-label{display:none}
.elementor .t360-hero-toggle.is-paused{width:auto;min-width:44px;height:44px;padding:0 18px 0 14px;gap:8px;border-radius:999px;background:var(--t360-lime);border-color:var(--t360-lime);color:var(--t360-panel);font-family:Inter,Arial,sans-serif;font-size:14px;font-weight:600;line-height:1;white-space:nowrap}
.elementor .t360-hero-toggle.is-paused .t360-hero-toggle-label{display:inline}
.elementor .t360-hero-toggle.is-paused:hover,.elementor .t360-hero-toggle.is-paused:focus-visible:hover{background:#F4F6F8;border-color:#F4F6F8;color:var(--t360-panel)}
.elementor .t360-hero-toggle.is-paused:focus,.elementor .t360-hero-toggle.is-paused:active{background:var(--t360-lime);color:var(--t360-panel)}
.elementor .t360-hero-toggle.is-paused:focus-visible{outline:3px solid #fff;outline-offset:3px}
.t360-hero-hint{margin:0;max-width:300px;padding:8px 12px;border-radius:12px;background:rgba(5,7,13,.88);border:1px solid var(--t360-line-dark);color:#F4F6F8;font-size:13px;line-height:18px;text-align:right}
.t360-hero-hint[hidden]{display:none}

/* ===== Batch N.1 (2026-11-06): QA Round N fixes ===== */
/* gap above footer: the boxed inner container also carried 96/56 bottom padding */
.elementor .t360-main .t360-cta.t360-section>.e-con-inner{padding-bottom:0}
/* logo link tap area >= 44 px at <=768 without changing the visual size (padding offset by negative margin) */
@media (max-width:768px){.t360-footer-brand .t360-logo a{display:block;padding:9px 0;margin:-9px 0}}
@media (min-width:1024px){.t360-footer-brand .t360-logo{margin-top:1px}}

/* ===== Batch O (2026-11-06): hero video as background from 768 px up; discreet control; no reduced-motion hint. ===== */
.elementor .t360-hero-toggle.is-paused:not(.is-blocked){width:44px;padding:0;gap:0;border-radius:50%;background:rgba(5,7,13,.78);border-color:var(--t360-line-dark);color:var(--t360-on-panel)}
.elementor .t360-hero-toggle.is-paused:not(.is-blocked) .t360-hero-toggle-label{display:none}
.elementor .t360-hero-toggle.is-paused:not(.is-blocked):hover,.elementor .t360-hero-toggle.is-paused:not(.is-blocked):focus-visible:hover{background:var(--t360-lime);border-color:var(--t360-lime);color:var(--t360-panel)}
.elementor .t360-hero-toggle.is-paused:not(.is-blocked):focus,.elementor .t360-hero-toggle.is-paused:not(.is-blocked):active{background:rgba(5,7,13,.78);color:var(--t360-on-panel)}
.elementor .t360-hero-toggle.is-paused:not(.is-blocked):focus-visible{outline:3px solid var(--t360-lime);outline-offset:3px}
.elementor .t360-hero-toggle.is-blocked .t360-hero-toggle-label{display:inline}
.elementor .t360-hero-toggle.is-blocked .t360-ic-pause{display:none}
.elementor .t360-hero-toggle.is-blocked .t360-ic-play{display:block}
/* Batch O.1: wider, softer left fade for the 768-1439 background band (no vertical cut at the video edge). */
@media (min-width:768px) and (max-width:1439px){
  .elementor .t360-hero .t360-hero-media{left:36%;width:64%}
  .elementor .t360-hero .t360-hero-media::after{background:linear-gradient(90deg,var(--t360-panel) 0,var(--t360-panel) 6%,rgba(5,7,13,.7) 30%,rgba(5,7,13,.25) 55%,rgba(5,7,13,0) 80%)}
}

/* Batch P2 fixes: strip link stays light on the dark band; footer logo link is a 44px tap row at <=768 */
.elementor .t360-footer .t360-strip-t a,.elementor .t360-footer .t360-strip-t a:visited{color:#F5F5F7}
.elementor .t360-footer .t360-strip-t a:hover{color:var(--t360-lime)}
@media (max-width:768px){.elementor .t360-footer-brand .t360-logo a{display:flex;align-items:center;min-height:44px;padding:0;margin:0}}

/* ===== Batch P.1 (2026-11-06): visual review fixes ===== */
/* 3. Footer/strip inner edges = page content edges (sections: 28px side padding + 1328px inner, 20px on phones) */
.elementor .t360-footer-main,.elementor .t360-footer-strip{padding-left:28px!important;padding-right:28px!important}
.elementor .t360-footer-grid,.elementor .t360-footer-bar,.elementor .t360-footer-strip-grid{max-width:1328px}
@media (max-width:767px){.elementor .t360-footer-main,.elementor .t360-footer-strip{padding-left:20px!important;padding-right:20px!important}}
/* 2. One lime request button above the footer: hide the footer CTA where the page already ends with the #quote form */
body:has(#quote) .t360-footer-cta{display:none}
/* 5. Mobile footer: Services column wider so labels stay on one line; stacked strip rows separated */
@media (max-width:767px){
  .elementor .e-con.t360-footer-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}
  .elementor .t360-footer-strip-grid>.t360-strip-item+.t360-strip-item{border-top:1px solid rgba(255,255,255,.10);padding-top:12px}
  .elementor .e-con.t360-footer-strip-grid{gap:12px}
}
/* 6. Mobile/tablet menu: no focus box after a pointer open; one lime Get a Quote at a time */
header#masthead nav.hfe-dropdown a.hfe-menu-item:not(:focus-visible){outline:0!important}
@media (max-width:1024px){#masthead:has(nav.hfe-dropdown.menu-is-active) .elementor-widget-button{visibility:hidden}}
/* 7. Nav indicator: one underline at a time; while a same-page section is current the page item keeps aria-current=page and weight, loses the line */
#masthead nav:not(.hfe-dropdown):has(a[aria-current="location"]) a.hfe-menu-item[aria-current="page"]::after{transform:scaleX(0);transition:transform .18s ease,background-color var(--t360-hfade),opacity var(--t360-hfade)!important}
@media (prefers-reduced-motion:reduce){#masthead nav:not(.hfe-dropdown):has(a[aria-current="location"]) a.hfe-menu-item[aria-current="page"]::after{transition:background-color var(--t360-hfade),opacity var(--t360-hfade)!important}}

/* Batch P.2: fixed header (sticky made Chrome scroll the page on focus/menu open) + spacer of identical height. Logged-in phones <=600 (admin bar scrolls away, not fixed) keep sticky. */
body{padding-top:var(--t360-bar)}
@media (max-width:600px){body.admin-bar{padding-top:0}body.admin-bar header#masthead{position:sticky!important;left:auto;right:auto}}

/* ===== Batch S (2026-11-06): Who we help v2 (Home). Native Elementor widgets (Heading, Text Editor, Image, Button, Nested Accordion).
   CSS = layout, selected-state styling, motion. Scope: .t360-wwh2 only. ===== */
.elementor .t360-wwh2>.e-con-inner{gap:0;max-width:1328px}
.elementor .t360-wwh2 .elementor-widget{margin:0}
.elementor .t360-wwh2 .t360-wwh2-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:end;padding:0;margin-bottom:56px}
.elementor .t360-wwh2 .t360-wwh2-head .t360-kicker{grid-column:1/-1;margin-bottom:20px}
.elementor .t360-wwh2 .t360-wwh2-head .t360-h2{grid-column:1/9}
.elementor .t360-wwh2 .t360-wwh2-head .t360-h2 .elementor-heading-title{max-width:none;font-weight:700;font-size:52px;line-height:1.02;letter-spacing:-.035em;text-wrap:balance}
.elementor .t360-wwh2 .t360-wwh2-head .t360-lead{grid-column:9/13;padding-bottom:6px;max-width:none}
.elementor .t360-wwh2 .t360-wwh2-head .t360-lead,.elementor .t360-wwh2 .t360-wwh2-head .t360-lead p{margin:0;font-size:17px;line-height:1.55;color:#52525B}
.elementor .t360-wwh2 .t360-wwh2-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start;padding:0}
.elementor .t360-wwh2 .t360-wwh2-media{grid-column:1/7;grid-row:1;padding:0;width:auto;max-width:none;min-width:0}
.elementor .t360-wwh2 .t360-wwh2-list{grid-column:7/13;grid-row:1/span 2;padding:0;width:auto;max-width:none;min-width:0}
.elementor .t360-wwh2 .t360-wwh2-cta{grid-column:1/7;grid-row:2;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:20px 28px;margin-top:32px;padding:0;width:auto;max-width:none}
/* image frame + caption overlay */
.elementor .t360-wwh2 .t360-wwh2-pic .elementor-widget-container{display:block}
.elementor .t360-wwh2 .t360-wwh2-pic figure{position:relative;margin:0;aspect-ratio:652/520;overflow:hidden;background:#05070D}
.elementor .t360-wwh2 .t360-wwh2-pic img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;border-radius:0}
.elementor .t360-wwh2 .t360-wwh2-pic figcaption{position:absolute;left:0;bottom:0;margin:0;padding:11px 16px 11px 18px;background:#05070D;color:#F4F6F8;border-left:6px solid #CEFF00;font-size:13px;line-height:1;text-align:left}
/* CTA + Residential link */
.elementor .t360-wwh2 .t360-wwh2-btn .elementor-button{min-height:48px;padding:0 26px;border-radius:999px;background:#05070D;color:#fff;font-size:15px;font-weight:600;line-height:1;transition:background-color .2s,color .2s}
.elementor .t360-wwh2 .t360-wwh2-btn .elementor-button:hover,.elementor .t360-wwh2 .t360-wwh2-btn .elementor-button:focus-visible{background:#CEFF00;color:#05070D}
.elementor .t360-wwh2 .t360-wwh2-btn .elementor-button-text::after{content:"\2192";content:"\2192"/"";margin-left:10px}
.elementor .t360-wwh2 .t360-wwh2-btn .elementor-button:focus-visible,.elementor .t360-wwh2 .t360-wwh2-res a:focus-visible{outline:3px solid #1D1D1F;outline-offset:3px}
.elementor .t360-wwh2 .t360-wwh2-res,.elementor .t360-wwh2 .t360-wwh2-res p{margin:0;font-size:15px;line-height:1.5;color:#1D1D1F}
.elementor .t360-wwh2 .t360-wwh2-res a{color:#4F6B00;text-underline-offset:3px}
/* accordion list */
.elementor .t360-wwh2 .e-n-accordion{display:flex;flex-direction:column;gap:4px;--n-accordion-border-width:0px;--n-accordion-padding:0px}
.elementor .t360-wwh2 .e-n-accordion-item-title-icon{display:none}
.elementor .t360-wwh2 .e-n-accordion-item{position:relative;border:0!important;border-radius:4px;background:transparent;transition:background-color .2s}
.elementor .t360-wwh2 .e-n-accordion-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#CEFF00;border-radius:4px 0 0 4px;transform:scaleY(0);transform-origin:top;transition:transform .2s ease-out;pointer-events:none}
.elementor .t360-wwh2 .e-n-accordion-item[open]{background:#05070D}
.elementor .t360-wwh2 .e-n-accordion-item[open]::before{transform:scaleY(1)}
.elementor .t360-wwh2 .e-n-accordion-item-title{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:16px 24px;cursor:pointer;list-style:none;border:0!important;border-radius:4px;color:#1D1D1F}
.elementor .t360-wwh2 .e-n-accordion-item-title::-webkit-details-marker{display:none}
.elementor .t360-wwh2 .e-n-accordion-item-title-header{flex:1 1 auto}
.elementor .t360-wwh2 .e-n-accordion-item-title-text{margin:0;font-family:var(--e-global-typography-primary-font-family),"Inter Tight",sans-serif;font-size:24px;font-weight:600;line-height:1.15;letter-spacing:-.02em;color:inherit;transition:color .2s}
.elementor .t360-wwh2 .e-n-accordion-item-title::after{content:"";flex:none;width:20px;height:20px;background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center/2px 100% no-repeat;transition:background-size .2s ease-out}
.elementor .t360-wwh2 .e-n-accordion-item[open]>.e-n-accordion-item-title{color:#F4F6F8}
.elementor .t360-wwh2 .e-n-accordion-item[open]>.e-n-accordion-item-title::after{color:#CEFF00;background-size:100% 2px,2px 0}
@media (hover:hover){.elementor .t360-wwh2 .e-n-accordion-item:not([open]):hover{background:#E9E9EE}}
.elementor .t360-wwh2 .e-n-accordion-item-title:focus-visible{outline:3px solid #1D1D1F;outline-offset:-3px}
.elementor .t360-wwh2 .e-n-accordion-item[open]>.e-n-accordion-item-title:focus-visible{outline-color:#CEFF00}
.elementor .t360-wwh2 .e-n-accordion-item>.e-con{padding:0 56px 26px 24px;border:0;min-height:0;background:transparent}
.elementor .t360-wwh2 .t360-wwh2-txt,.elementor .t360-wwh2 .t360-wwh2-txt p{margin:0;max-width:52ch;font-size:16px;line-height:1.6;color:#C5CAD2}
@media (max-width:1100px){
  .elementor .t360-wwh2 .t360-wwh2-head .t360-h2{grid-column:1/-1;margin-bottom:20px}
  .elementor .t360-wwh2 .t360-wwh2-head .t360-h2 .elementor-heading-title{font-size:44px}
  .elementor .t360-wwh2 .t360-wwh2-head .t360-lead{grid-column:1/9}
  .elementor .t360-wwh2 .e-n-accordion-item-title-text{font-size:22px}
}
@media (max-width:860px){
  .elementor .t360-wwh2 .t360-wwh2-head{margin-bottom:40px}
  .elementor .t360-wwh2 .t360-wwh2-body{display:flex;flex-direction:column}
  .elementor .t360-wwh2 .t360-wwh2-pic figure{aspect-ratio:688/330}
  .elementor .t360-wwh2 .t360-wwh2-list{margin-top:32px}
  .elementor .t360-wwh2 .t360-wwh2-cta{margin-top:32px}
}
@media (max-width:767px){
  .elementor .t360-wwh2 .t360-wwh2-head{margin-bottom:28px}
  .elementor .t360-wwh2 .t360-wwh2-head .t360-kicker{margin-bottom:16px}
  .elementor .t360-wwh2 .t360-wwh2-head .t360-h2 .elementor-heading-title{font-size:34px;letter-spacing:-.03em}
  .elementor .t360-wwh2 .t360-wwh2-head .t360-lead{grid-column:1/-1}
  .elementor .t360-wwh2 .t360-wwh2-head .t360-lead,.elementor .t360-wwh2 .t360-wwh2-head .t360-lead p{font-size:16px}
  .elementor .t360-wwh2 .t360-wwh2-pic figure{aspect-ratio:350/230}
  .elementor .t360-wwh2 .t360-wwh2-pic img{object-position:48% 50%}
  .elementor .t360-wwh2 .t360-wwh2-pic figcaption{font-size:12px;padding:9px 12px 9px 14px}
  .elementor .t360-wwh2 .t360-wwh2-list{margin:20px -20px 0;width:calc(100% + 40px)}
  .elementor .t360-wwh2 .e-n-accordion-item,.elementor .t360-wwh2 .e-n-accordion-item::before,.elementor .t360-wwh2 .e-n-accordion-item-title{border-radius:0}
  .elementor .t360-wwh2 .e-n-accordion-item-title{min-height:56px;padding:14px 20px}
  .elementor .t360-wwh2 .e-n-accordion-item-title-text{font-size:20px}
  .elementor .t360-wwh2 .e-n-accordion-item>.e-con{padding:0 20px 22px}
  .elementor .t360-wwh2 .t360-wwh2-txt,.elementor .t360-wwh2 .t360-wwh2-txt p{font-size:15.5px}
  .elementor .t360-wwh2 .t360-wwh2-cta{margin-top:28px;flex-direction:column;align-items:flex-start;gap:16px}
  .elementor .t360-wwh2 .t360-wwh2-btn,.elementor .t360-wwh2 .t360-wwh2-btn .elementor-button{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.elementor .t360-wwh2 *,.elementor .t360-wwh2 *::before,.elementor .t360-wwh2 *::after{transition:none!important;animation:none!important}}

/* ===== Batch S.1 (2026-11-06): review fixes. Image never upscaled (box <= native 1024x430), left column kept together, full-width list when stacked,
   stable list height (no page shift when switching sector), slightly stronger panel text, 24/44 px link target. Scope: .t360-wwh2 ===== */
.elementor .t360-wwh2 .t360-wwh2-body{grid-template-columns:minmax(0,600px) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:64px}
.elementor .t360-wwh2 .t360-wwh2-media{grid-column:1;grid-row:1}
.elementor .t360-wwh2 .t360-wwh2-list{grid-column:2;grid-row:1/span 2}
.elementor .t360-wwh2 .t360-wwh2-cta{grid-column:1;grid-row:2;align-self:start}
.elementor .t360-wwh2 .t360-wwh2-pic figure{aspect-ratio:600/430}
.elementor .t360-wwh2 .t360-wwh2-txt,.elementor .t360-wwh2 .t360-wwh2-txt p{font-size:17px;color:#DDE1E7}
.elementor .t360-wwh2 .t360-wwh2-res a{display:inline-block;padding:3px 0;margin:-3px 0}
@media (min-width:861px) and (max-width:1100px){
  .elementor .t360-wwh2 .t360-wwh2-body{grid-template-columns:minmax(0,440px) minmax(0,1fr);column-gap:40px}
  .elementor .t360-wwh2 .t360-wwh2-pic figure{aspect-ratio:440/330}
}
@media (max-width:860px){
  .elementor .t360-wwh2 .t360-wwh2-body{align-items:stretch}
  .elementor .t360-wwh2 .t360-wwh2-media,.elementor .t360-wwh2 .t360-wwh2-list,.elementor .t360-wwh2 .t360-wwh2-cta{width:100%;max-width:none}
  .elementor .t360-wwh2 .t360-wwh2-res a{padding:12px 0;margin:-12px 0}
}
@media (max-width:767px){
  .elementor .t360-wwh2 .t360-wwh2-list{width:calc(100% + 40px)}
  .elementor .t360-wwh2 .t360-wwh2-txt,.elementor .t360-wwh2 .t360-wwh2-txt p{font-size:16px}
}
/* S.1 stable list height: min-height = tallest open state measured per range (+6 px), so the next section never moves when switching sector */
.elementor .t360-wwh2 .e-n-accordion{min-height:678px;align-content:start}
@media (min-width:1440px){.elementor .t360-wwh2 .e-n-accordion{min-height:650px}}
@media (min-width:861px) and (max-width:1000px){.elementor .t360-wwh2 .e-n-accordion{min-height:822px}}
@media (max-width:860px){
  .elementor .t360-wwh2 .e-n-accordion{min-height:650px}
  .elementor .t360-wwh2 .t360-wwh2-pic figure{aspect-ratio:688/330}
}
@media (max-width:767px){.elementor .t360-wwh2 .t360-wwh2-pic figure{aspect-ratio:350/230}}
@media (max-width:480px){.elementor .t360-wwh2 .e-n-accordion{min-height:634px}}
@media (max-width:375px){.elementor .t360-wwh2 .e-n-accordion{min-height:696px}}

/* Batch T (2026-11-06): header 768-1023 layout. Logo left; phone, Get a Quote, hamburger grouped at the right, 48 px targets. 1024+ and <768 unchanged. */
@media (min-width:768px) and (max-width:1024px){
  #masthead .e-con-inner{gap:12px}
  #masthead .e-con-inner>.elementor-widget-icon{margin-inline-start:auto;width:48px;height:48px}
  #masthead .e-con-inner>.elementor-widget-icon .elementor-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px}
  #masthead .e-con-inner>.elementor-widget-button .elementor-button{min-height:48px;min-width:130px;padding-inline:22px}
  #masthead .e-con-inner>.elementor-widget-navigation-menu:last-child{margin-inline-start:-4px}
}
/* init without animation (class set by t360-header.js for two frames on load/pageshow) */
#masthead.t360-nofade,#masthead.t360-nofade *,html.t360-nofade-load #masthead,html.t360-nofade-load #masthead *,html.t360-nofade-load #masthead *::before,html.t360-nofade-load #masthead *::after,#masthead.t360-nofade *::before,#masthead.t360-nofade *::after{transition:none!important}
/* Batch T.1: no nested colour transitions. A wrapper that only inherits its colour must not transition it too (compounds the lag). */
#masthead .elementor-heading-title:has(>a),#masthead .elementor-widget-heading:has(a){transition:none!important}
#masthead .hfe-nav-menu__toggle,#masthead .hfe-nav-menu__toggle svg{transition:none!important} /* only the leaf <path> fades (inherited colour/fill chain otherwise lags) */
@media (prefers-reduced-motion:reduce){#masthead .hfe-nav-menu__toggle svg path{transition-property:fill!important}}

/* ==== Quote form 50: Company reveal (all widths) + mobile compaction (<=600) ==== */
/* Company is shown only when Business is selected (assets/js/t360-form.js). Without JS it stays visible and optional. */
.elementor .t360-form-panel #wpforms-form-50 .t360-f-company.is-hidden{display:none!important}
@media (max-width:600px){
  .elementor .t360-form-panel.e-con{padding:18px 16px 20px}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field{padding:0;margin:0 0 15px}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-label,
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 legend.wpforms-field-label{font-size:15px;line-height:1.25;margin:0 0 7px;padding:0}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-description{font-size:13px;line-height:1.35;margin-top:5px}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field input[type=text],
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field input[type=email],
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field select{height:46px;min-height:46px;padding:0 14px;font-size:16px}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field textarea{height:104px;min-height:104px;padding:10px 14px;font-size:16px}
  /* Business / Residential: one row, two equal pills; the whole pill is the label hit area */
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio ul{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:0;padding:0}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li{position:relative;display:flex;align-items:center;flex:none;width:auto;min-width:0;min-height:46px;margin:0;padding:0;border:1.5px solid color-mix(in srgb,var(--t360-on-panel) 40%,transparent);border-radius:999px;cursor:pointer}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li input[type=radio]{position:relative;z-index:0;margin:0 0 0 12px;pointer-events:none}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li label{position:absolute!important;inset:0;display:flex;align-items:center;margin:0!important;padding:0 8px 0 38px;font-size:15px;font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li:has(input:checked){border-color:var(--t360-lime);background:color-mix(in srgb,var(--t360-lime) 14%,var(--t360-panel))}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li:has(input:checked) label{font-weight:700}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li:has(input:focus-visible){outline:3px solid var(--t360-lime);outline-offset:2px}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 label.wpforms-error,
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 em.wpforms-error{font-size:13px;line-height:1.3;margin:5px 0 0}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 button.wpforms-submit{width:100%;min-height:48px;margin-top:4px}
  .elementor #quote{scroll-margin-top:-68px}
}
@media (max-width:340px){
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li label{font-size:14px;padding-left:36px}
}
@media (hover:hover) and (max-width:600px){
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li:hover{border-color:color-mix(in srgb,var(--t360-lime) 60%,transparent)}
}

/* Quote form 50 (U.1): lime focus ring on the submit button; hollow/filled radio dot on phones */
.elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 button.wpforms-submit:focus-visible{outline:3px solid var(--t360-lime)!important;outline-offset:3px;box-shadow:0 0 0 3px var(--t360-panel)!important}
.elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field input:focus-visible,
.elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field select:focus-visible,
.elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field textarea:focus-visible{outline:3px solid var(--t360-lime);outline-offset:2px;box-shadow:none}
@media (max-width:600px){
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li input[type=radio]{-webkit-appearance:none;appearance:none;width:20px;height:20px;border:2px solid color-mix(in srgb,var(--t360-on-panel) 75%,transparent);border-radius:50%;background:transparent;box-shadow:none}
  .elementor .t360-form-panel div.wpforms-container-full #wpforms-form-50 .wpforms-field-radio li input[type=radio]:checked{border-color:var(--t360-lime);background:var(--t360-lime);box-shadow:inset 0 0 0 3px var(--t360-panel)}
}

/* Privacy Policy (published): footer bottom-bar link, form-50 line, legal page typography */
.elementor .t360-footer-barrow{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 24px;width:100%}
.elementor .t360-footer-barrow .t360-footer-copy{flex:1 1 auto;min-width:0;padding:6px 0}
.elementor .t360-footer-barrow .t360-footer-legal{flex:0 0 auto;width:auto;padding:0}
.elementor .t360-footer-legal p{margin:0}
.elementor .t360-footer .t360-footer-legal a{display:inline-flex;align-items:center;min-height:40px;color:#A1A5AD;font-size:14px;line-height:20px;text-decoration:none;white-space:nowrap}
.elementor .t360-footer .t360-footer-legal a:hover,.elementor .t360-footer .t360-footer-legal a[aria-current=page]{color:var(--t360-lime);text-decoration:underline;text-underline-offset:3px}
.elementor .t360-footer .t360-footer-legal a:focus-visible{outline:2px solid var(--t360-lime);outline-offset:4px;border-radius:4px;color:var(--t360-lime)}
@media (max-width:768px){.elementor .t360-footer .t360-footer-legal a{min-height:44px}.elementor .t360-footer-barrow .t360-footer-copy{flex:1 1 100%;padding:12px 0 0}.elementor .t360-footer-barrow{padding-bottom:8px}}
.elementor .t360-form-panel div.wpforms-container-full p.t360-form-privacy{margin:12px 0 0;font-size:14px;line-height:1.45;color:color-mix(in srgb,var(--t360-on-panel) 78%,transparent)}
.elementor .t360-form-panel div.wpforms-container-full p.t360-form-privacy a{display:inline-block;min-height:24px;line-height:24px;color:var(--t360-on-panel);text-decoration:underline;text-underline-offset:3px}
.elementor .t360-form-panel div.wpforms-container-full p.t360-form-privacy a:hover{color:var(--t360-lime)}
.elementor .t360-form-panel div.wpforms-container-full p.t360-form-privacy a:focus-visible{outline:2px solid var(--t360-lime);outline-offset:3px;border-radius:3px}
@media (max-width:600px){.elementor .t360-form-panel div.wpforms-container-full p.t360-form-privacy{margin-top:10px;font-size:13px}}
.t360-legal{max-width:70ch;margin:0 auto;padding:56px 20px 72px;font-family:Inter,system-ui,sans-serif;color:#0B0F14}
.t360-legal h1{font-size:clamp(32px,5vw,44px);line-height:1.1;margin:0 0 20px;color:#0B0F14}
.t360-legal h2{font-size:22px;line-height:1.25;margin:40px 0 12px;color:#0B0F14}
.t360-legal p,.t360-legal li{font-size:17px;line-height:1.65;color:#1b2129}
.t360-legal p{margin:0 0 16px}
.t360-legal ul{margin:0 0 16px;padding-left:22px}
.t360-legal a{color:#0B0F14;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.t360-legal a:focus-visible{outline:3px solid #0B0F14;outline-offset:3px;border-radius:3px}
@media (max-width:600px){.t360-legal{padding:36px 20px 56px}.t360-legal h2{margin-top:32px}}

/* Batch Z1 (2026-11-06): footer Instagram = native Elementor icon-list widget (UAE footer 15, id ig360f1). Colours, icon size, gap (text_indent 6px) and link live in Elementor; CSS only does tap height, row alignment and focus. */
.t360-footer .t360-footer-ig-list .elementor-icon-list-items{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.t360-footer .t360-footer-ig-list .elementor-icon-list-item{margin:0;padding:0}
.t360-footer .t360-footer-ig-list .elementor-icon-list-item>a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;white-space:nowrap;text-decoration:none}
.t360-footer .t360-footer-ig-list .elementor-icon-list-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;padding:0;line-height:1}
.t360-footer .t360-footer-ig-list .elementor-icon-list-icon i,.t360-footer .t360-footer-ig-list .elementor-icon-list-icon svg{width:20px;height:20px;font-size:20px;color:#CEFF00;fill:currentColor}
.t360-footer .t360-footer-ig-list .elementor-icon-list-text{padding:0!important;margin:0;color:#FFFFFF;font-size:16px;line-height:24px}
.t360-footer .t360-footer-ig-list a:hover .elementor-icon-list-text{color:#CEFF00;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.t360-footer .t360-footer-ig-list a:focus-visible{outline:2px solid #CEFF00;outline-offset:4px;border-radius:4px}
@media (min-width:769px){.t360-footer .t360-footer-ig-list .elementor-icon-list-item>a{min-height:40px}}
.elementor .t360-footer .t360-footer-ig-list .elementor-icon-list-icon{padding:0!important;margin:0!important;width:20px!important}
.elementor .t360-footer .t360-footer-ig-list .elementor-icon-list-icon svg,.elementor .t360-footer .t360-footer-ig-list .elementor-icon-list-icon i{width:20px!important;height:20px!important;margin:0!important;font-size:20px!important}

/* ===== Batch Z2a: benefit-tab diagram slots (Home 60, Cabling 22, Residential 55). Slots keep their size/rhythm; striped placeholder style dropped for tab slots only. ===== */
.elementor .t360-slot.t360-slot-tab{background:var(--t360-panel-soft);border:0;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}
.elementor .t360-panel-inner .t360-slot-tab{border:0;border-left:1px solid var(--t360-line-dark);min-height:340px;height:100%;aspect-ratio:auto}
.t360-slot-tab>.elementor-widget{width:100%}
.t360-slot-tab .elementor-widget-html .elementor-widget-container{height:auto}
.t360-slot-tab svg.t360-dia{display:block;width:100%;height:auto;max-width:760px;margin:0 auto}
.t360-slot-tab svg.t360-dia[id$="-compact"]{max-width:420px}
.t360-slot-tab svg.t360-dia text{font-family:Inter,"Inter Tight",Arial,Helvetica,sans-serif}
/* real frame + live-text tag */
.t360-slot-photo>.elementor-widget-image,.t360-slot-photo .elementor-widget-image .elementor-widget-container{height:100%;width:100%}
.t360-slot-photo img{width:100%;height:100%;object-fit:cover;display:block}
.t360-slot-photo>.t360-frame-tag-w{position:absolute;left:12px;bottom:12px;width:auto;z-index:2}
.t360-frame-tag{background:rgba(5,7,13,.82);color:#F4F6F8;font:600 14px/1 Inter,Arial,sans-serif;padding:10px 16px;border-radius:999px}
/* one grid cell per tab group: the group is as tall as its tallest panel, so switching tabs never changes page height */
.elementor .t360-benefits .e-n-tabs-content:has(.t360-slot-tab){display:grid}
.elementor .t360-benefits .e-n-tabs-content:has(.t360-slot-tab)>.e-con{grid-area:1/1;min-width:0}
.elementor .t360-benefits .e-n-tabs-content:has(.t360-slot-tab)>.e-con:not(.e-active){display:flex!important;visibility:hidden;pointer-events:none}
/* stack copy under the diagram up to 1439 px (spec said 1179; at 1180-1439 the side-by-side slot is 517-619 px and the 14-unit labels render at 11.7-13.9 px, below the 14 px minimum) */
@media (max-width:1439px){
  .elementor .t360-panel-inner{grid-template-columns:1fr;grid-template-rows:auto 1fr;container-type:inline-size}
  /* same slot height on every tab (diagram max 760 px wide, ratio 620:340) so the copy below never shifts between tabs */
  .elementor .t360-panel-inner .t360-slot-tab{order:-1;min-height:0;height:calc(min(100cqw,760px)*.5484);border-left:0;border-bottom:1px solid var(--t360-line-dark)}
  .elementor .t360-panel-inner .t360-slot-photo{height:calc(min(100cqw,760px)*.5484)}
}
@media (max-width:767px){
  .elementor .t360-panel-inner .t360-slot-tab,.elementor .t360-panel-inner .t360-slot-photo{height:312px}
}
/* Z2a: panel content fills the shared grid cell, so the diagram column (and its divider line) is as tall as the tallest panel */
.elementor .t360-benefits .e-n-tabs-content:has(.t360-slot-tab)>.e-con>.t360-panel-inner{flex:1 1 auto;align-self:stretch;height:100%}

/* ===== Batch Z3 (2026-11-06): hero concept illustrations (Services, Residential, About). Scoped to .t360-hero-host / .t360-hero-art; Home and Cabling hero (.t360-hero-media LED video) untouched. ===== */
.elementor .t360-hero-host{position:relative;overflow:hidden}
.elementor .t360-hero-host .t360-split{max-width:1328px;width:100%;margin-left:auto;margin-right:auto}
.elementor .t360-hero-art{position:relative;padding:0;gap:0}
.elementor .t360-hero-art .elementor-widget-image{margin:0;width:100%}
.elementor .t360-hero-art .elementor-widget-image .elementor-widget-container{margin:0;line-height:0}
.elementor .t360-hero-art .elementor-widget-image img{display:block;width:100%;height:auto;max-width:none;aspect-ratio:3/2;object-fit:cover;object-position:var(--art-pos,50% 50%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 92%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 92%,transparent 100%)}
.elementor .t360-hero-art .t360-hero-art-tag{position:absolute;right:14px;bottom:20px;z-index:2;width:auto;margin:0;line-height:1;pointer-events:none}
.elementor .t360-hero-art .t360-hero-art-tag p,.elementor .t360-hero-art .t360-hero-art-tag .elementor-widget-container{margin:0;line-height:1;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.elementor .t360-hero-art--services{--art-fade:12%}
.elementor .t360-hero-art--residential{--art-fade:10%}
.elementor .t360-hero-art--about{--art-fade:28%}
/* below 1200: stacked, image after the breadcrumb (or first), full-bleed over the hero side padding */
@media (max-width:1199px){
  .elementor .t360-hero-host .t360-split.t360-has-art{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
  .elementor .t360-hero-host .t360-has-art>.t360-hero-copy{display:contents}
  .elementor .t360-hero-host .t360-has-art .t360-crumb{order:0}
  .elementor .t360-hero-host .t360-has-art>.t360-hero-art{order:1;margin:0 -20px;width:auto}
  .elementor .t360-hero-host .t360-has-art .t360-kicker{order:2;margin-top:6px}
  .elementor .t360-hero-host .t360-has-art .t360-h1{order:3}
  .elementor .t360-hero-host .t360-has-art .t360-lead-dark{order:4;max-width:640px}
  .elementor .t360-hero-host .t360-has-art .t360-btnrow{order:5}
}
@media (min-width:768px) and (max-width:1199px){
  .elementor .t360-hero-host .t360-has-art>.t360-hero-art{margin:0 -28px}
  .elementor .t360-hero-art .elementor-widget-image img{aspect-ratio:16/9}
  .elementor .t360-hero-art .t360-hero-art-tag{right:28px;bottom:20px}
}
/* >=1200: image fills the right side, bleeding to the viewport edge; only the edge touching the copy fades */
@media (min-width:1200px){
  .elementor .t360-hero-host .t360-split.t360-has-art{display:grid;grid-template-columns:minmax(0,var(--copy-w,500px)) 1fr;gap:0;align-items:center}
  .elementor .t360-hero-host .t360-has-art>.t360-hero-copy{position:relative;z-index:2;grid-column:1;max-width:none}
  .elementor .t360-hero-host .t360-has-art>.t360-hero-art{position:absolute;margin:0;width:auto;top:0;bottom:0;right:0;z-index:1;
    left:max(40%,calc(max(28px,(100% - 1328px)/2) + var(--copy-w,500px)))}
  .elementor .t360-hero-art .elementor-widget-image{position:absolute;inset:0;width:100%;height:100%}
  .elementor .t360-hero-art .elementor-widget-image .elementor-widget-container{height:100%}
  .elementor .t360-hero-art .elementor-widget-image img{height:100%;aspect-ratio:auto;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--art-fade,12%));mask-image:linear-gradient(90deg,transparent 0,#000 var(--art-fade,12%))}
  .elementor .t360-hero-art .t360-hero-art-tag{right:28px;bottom:28px}
}
@media (min-width:1440px){
  .elementor .t360-hero-host{--copy-w:560px}
  .elementor .t360-hero-art--services{--art-fade:14%}
  .elementor .t360-hero-art--residential{--art-fade:12%}
}
.elementor .t360-hero-art .t360-hero-art-tag,.elementor .t360-hero-art .t360-hero-art-tag p{color:var(--t360-on-panel)}
@media (min-width:1200px){.elementor .t360-hero-art{--art-pos:100% 50%}}
.elementor .t360-hero-art .t360-hero-art-tag p{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;line-height:1}
.elementor .t360-hero-art .t360-hero-art-tag.t360-illus,.elementor .t360-hero-art .t360-hero-art-tag .elementor-widget-container{font-size:12px;line-height:1}

/* ==== UI pass 1 (2026-11-07): partial-row card grids, no ghost cells ==== */
.elementor .t360-grid.t360-res-cards,.elementor .t360-grid.t360-svc5{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;align-items:stretch}
.elementor .t360-grid.t360-home7{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;align-items:stretch}
.elementor .t360-res-cards > .t360-card .t360-link-lime,.elementor .t360-svc5 > .t360-card .t360-link-lime,.elementor .t360-home7 > .t360-card .t360-link-lime{margin-top:auto}
.elementor .t360-res-cards .t360-card-title .elementor-heading-title,.elementor .t360-svc5 .t360-card-title .elementor-heading-title,.elementor .t360-home7 .t360-card-title .elementor-heading-title{text-wrap:balance}
@media (min-width:1024px){
  .elementor .t360-res-cards > :nth-child(2){grid-column:span 4}
  .elementor .t360-res-cards > :nth-child(1),.elementor .t360-res-cards > :nth-child(n+3){grid-column:span 2}
  .elementor .t360-svc5 > :nth-child(-n+3){grid-column:span 2}
  .elementor .t360-svc5 > :nth-child(n+4){grid-column:span 3}
  .elementor .t360-res-cards > .t360-card:nth-child(1) .t360-card-title .elementor-heading-title{font-size:30px;line-height:1.1}
  .elementor .t360-res-cards > .t360-card:nth-child(1) .t360-card-text p{font-size:17px;line-height:1.5}
}
@media (min-width:1200px){
  .elementor .t360-home7 > :nth-child(-n+4){grid-column:span 3}
  .elementor .t360-home7 > :nth-child(n+5){grid-column:span 4}
}
@media (min-width:768px) and (max-width:1199px){
  .elementor .t360-grid.t360-home7{grid-template-columns:repeat(2,minmax(0,1fr))}
  .elementor .t360-home7 > :nth-child(n){grid-column:auto}
  .elementor .t360-home7 > :last-child{grid-column:1/-1}
}
@media (min-width:768px) and (max-width:1023px){
  .elementor .t360-grid.t360-svc5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .elementor .t360-svc5 > :nth-child(n){grid-column:auto}
  .elementor .t360-svc5 > :last-child{grid-column:1/-1}
  .elementor .t360-res-cards > :nth-child(1),.elementor .t360-res-cards > :nth-child(2),.elementor .t360-res-cards > :nth-child(5){grid-column:span 6}
  .elementor .t360-res-cards > :nth-child(3),.elementor .t360-res-cards > :nth-child(4){grid-column:span 3}
}
/* Residential: two-column internal layout for the Audio card (>=768); cards 01 and 05 at 768-1023 */
@media (min-width:768px){
  .elementor .t360-res-cards > :nth-child(2){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);column-gap:24px;grid-auto-rows:min-content;align-content:start}
  .elementor .t360-res-cards > :nth-child(2) > :not(.t360-brands){grid-column:1}
  .elementor .t360-res-cards > :nth-child(2) > .t360-brands{grid-column:2;grid-row:1 / span 3;align-self:center;margin-top:0}
}
@media (min-width:768px) and (max-width:1023px){
  .elementor .t360-res-cards > :nth-child(1),.elementor .t360-res-cards > :nth-child(5){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;grid-auto-rows:min-content;align-content:start}
  .elementor .t360-res-cards > :nth-child(1) > :not(.t360-link-lime),.elementor .t360-res-cards > :nth-child(5) > :not(.t360-brands){grid-column:1}
  .elementor .t360-res-cards > :nth-child(1) > .t360-link-lime{grid-column:2;grid-row:1 / span 3;align-self:end;margin-top:0}
  .elementor .t360-res-cards > :nth-child(5) > .t360-brands{grid-column:2;grid-row:1 / span 3;align-self:center;margin-top:0;width:auto}
}
@media (max-width:767px){
  .elementor .t360-grid.t360-res-cards,.elementor .t360-grid.t360-svc5,.elementor .t360-grid.t360-home7{grid-template-columns:1fr;gap:12px;align-items:start}
  .elementor .t360-res-cards > :nth-child(n),.elementor .t360-svc5 > :nth-child(n),.elementor .t360-home7 > :nth-child(n){grid-column:auto}
}

/* ===== UI pass 2 (child 1.0.58) ===== */
:root{--t360-section-y:96px}
@media (max-width:1023px){:root{--t360-section-y:72px}}
@media (max-width:767px){:root{--t360-section-y:56px}}
/* V-08: no rule needed - anchored sections carry 96px inner top padding, headings land below the header (verified by click, 390/1440) */
/* V-10: Wi-Fi never breaks at the hyphen */
.t360-nb{white-space:nowrap}
/* V-13: same-background neighbours (About how+how, Cabling/Residential related+areas) keep ONE section gap, not two */
.elementor .t360-section.t360-how+.t360-section.t360-how>.e-con-inner,.elementor .t360-section.t360-related+.t360-section.t360-areas>.e-con-inner{padding-top:0}
/* V-14: video card legibility, bigger play hit area (behaviour untouched) */
.t360-rv-ui{z-index:2}
/* no scrim: the caption is baked into the video pixels and a scrim in front would dim it (checked 1440) */
.elementor .t360-rv-toggle,.elementor .t360-rv-toggle:focus:not(:focus-visible):not(:hover){width:56px;height:56px;background:#fff;color:#05070D;border-color:#fff}
.elementor .t360-rv-toggle:hover{background:var(--t360-lime);color:var(--t360-panel)}
.t360-rv-toggle svg{width:24px;height:24px}

/* Hero framing (Home 60 + Cabling 22): full rack visible (contain, no crop), edges masked into #05070D, stacked at 768-1024, poster full-bleed <=767, and the single soft halo definition. */
:root{--t360-vfade:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 30%,#000 47%),linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%)}
body:is(.page-id-60,.page-id-22) .t360-hero .t360-hero-video{background:transparent;object-fit:contain;object-position:right center;-webkit-mask-image:var(--t360-vfade);-webkit-mask-composite:source-in;mask-image:var(--t360-vfade);mask-composite:intersect}
@media (min-width:1025px){
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-split{grid-template-columns:minmax(0,1fr)}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-media{left:0;right:0;width:100%}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero{min-height:calc(min(100vw,1700px) * 828 / 1902 + 72px)}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-media::after{display:none}
 body:is(.page-id-60,.page-id-22) .t360-hero .t360-hero-video{position:absolute;top:0;bottom:0;right:0;margin-block:auto;width:min(100%,1700px);height:auto;aspect-ratio:1902/828}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-copy{max-width:min(560px,calc(46vw - 28px));width:100%}
}
@media (min-width:768px) and (max-width:1024px){
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-split{display:grid;grid-template-columns:1fr;gap:0}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-copy{max-width:640px;position:relative;z-index:1}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-media{position:relative;inset:auto;left:auto;width:calc(100% + 56px);margin:8px -28px 12px;overflow:visible;aspect-ratio:1902/828;height:auto;border-radius:0;background:transparent}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-media::after{display:none}
 body:is(.page-id-60,.page-id-22) .t360-hero .t360-hero-media-ui{bottom:-52px;right:40px}
}
@media (max-width:767px){
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-media{border-radius:0;background:transparent;margin-inline:-20px;width:calc(100% + 40px)}
 body:is(.page-id-60,.page-id-22) .t360-hero .t360-hero-video{-webkit-mask-image:none;mask-image:none}
 body:is(.page-id-60,.page-id-22) .elementor .t360-hero .t360-hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#05070D 0,rgba(5,7,13,.85) 20%,rgba(5,7,13,0) 55%),linear-gradient(180deg,#05070D 0,rgba(5,7,13,0) 10%,rgba(5,7,13,0) 90%,#05070D 100%)}
}
/* halo: faint ambient light on the floor under the rack, lower 90px of the hero, never over the rack */
.t360-hero{--halo-x:70%;--halo-w:38%;--halo-a:.14}
.page-id-22 .t360-hero{--halo-x:74.5%}
@media (max-width:1279px){.t360-hero{--halo-x:64%;--halo-w:48%}.page-id-22 .t360-hero{--halo-x:71%}}
@media (max-width:900px){.t360-hero{--halo-x:64%;--halo-w:70%}.page-id-22 .t360-hero{--halo-x:66%}}
.t360-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;z-index:1;pointer-events:none;background:radial-gradient(ellipse var(--halo-w) 60px at var(--halo-x) 100%,rgba(255,246,230,var(--halo-a)) 0,rgba(255,246,230,calc(var(--halo-a)*.4)) 45%,rgba(255,246,230,0) 100%)}
.t360-hero .t360-hero-toggle{position:relative;z-index:2}
@media (max-width:767px){.t360-hero::after{display:none}}
/* QA follow-up: hero halo only on Home (60) and Structured Cabling & Fiber (22) */
body:not(.page-id-60):not(.page-id-22) .t360-hero::after{display:none}

/* Batch 3: inline links inside dark cards (Services) use lime for contrast; light cards keep the dark-olive link colour. */
.t360-card-dark .t360-card-text a{color:#CEFF00;text-decoration-color:currentColor}
