/*
Theme Name:  UVI Electrical (Hello Elementor Child)
Theme URI:   https://www.uvielectrical.com.au
Description: Complete UVI Electrical website in one theme — activate it (with Elementor installed) and it builds all pages, menu, header/footer, logo and images. Includes brand fonts, animations, schema and Google Ads tracking.
Author:      UVI Electrical
Template:    hello-elementor
Version:     1.0.0
Text Domain: uvi-child
*/

/* ---------- Brand tokens ---------- */
:root {
  --uvi-navy: #0B1F3A;
  --uvi-navy-2: #163055;
  --uvi-navy-deep: #071629;
  --uvi-amber: #F59E0B;
  --uvi-amber-light: #FBBF24;
  --uvi-copper: #B45309;
  --uvi-steel: #3F5572;
  --uvi-cloud: #F5F7FA;
  --uvi-line: #E3E8EF;
  --uvi-radius: 12px;
  --uvi-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- Self-hosted fonts (fast, no Google request, GDPR-safe) ---------- */
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/barlow-condensed-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/barlow-condensed-latin-800-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/barlow-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/barlow-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/barlow-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/barlow-latin-700-normal.woff2') format('woff2'); }

body { font-family: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif; color: var(--uvi-navy); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .elementor-heading-title { font-family: 'Barlow Condensed', 'Barlow', sans-serif; letter-spacing: .01em; }
a { transition: color .2s var(--uvi-ease); }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible { outline: 3px solid var(--uvi-amber); outline-offset: 2px; }

/* ---------- Header ---------- */
.uvi-header { transition: box-shadow .3s var(--uvi-ease), padding .3s var(--uvi-ease); }
.uvi-header.elementor-sticky--effects { box-shadow: 0 6px 24px rgba(11, 31, 58, .10); }
.uvi-header .elementor-nav-menu--main .elementor-item { padding: 10px 14px; }

/* ---------- Hero motion: slow pan on background overlay + animated bolt glow ---------- */
.uvi-hero { position: relative; overflow: hidden; }
.uvi-hero > .elementor-background-overlay { animation: uvi-pan 28s ease-in-out infinite alternate; will-change: transform; }
.uvi-hero::after {
  content: ""; position: absolute; right: -10%; top: -20%; width: 55%; height: 140%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(245, 158, 11, .18), rgba(245, 158, 11, 0) 70%);
  animation: uvi-glow 9s ease-in-out infinite;
}
@keyframes uvi-pan { from { transform: scale(1.04) translate3d(0, 0, 0); } to { transform: scale(1.12) translate3d(-2%, -2%, 0); } }
@keyframes uvi-glow { 0%, 100% { opacity: .55; transform: translate3d(0, 0, 0); } 50% { opacity: 1; transform: translate3d(-3%, 2%, 0); } }

/* ---------- Cards: lift & amber accent on hover ---------- */
.uvi-card { transition: transform .35s var(--uvi-ease), box-shadow .35s var(--uvi-ease), border-color .35s var(--uvi-ease); }
.uvi-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(11, 31, 58, .12); }
.uvi-card .elementor-icon-box-icon .elementor-icon { transition: transform .35s var(--uvi-ease), background-color .35s var(--uvi-ease), color .35s var(--uvi-ease); }
.uvi-card:hover .elementor-icon-box-icon .elementor-icon { transform: rotate(-6deg) scale(1.08); background-color: var(--uvi-amber); color: var(--uvi-navy) !important; }

/* "Why" tiles */
.uvi-why { position: relative; overflow: hidden; transition: transform .35s var(--uvi-ease), border-color .35s var(--uvi-ease); }
.uvi-why::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 0; background: var(--uvi-amber); transition: width .35s var(--uvi-ease); }
.uvi-why:hover { transform: translateY(-4px); border-color: var(--uvi-amber) !important; }
.uvi-why:hover::before { width: 5px; }

/* Process step number */
.uvi-step { display: inline-flex; width: 46px; height: 46px; align-items: center; justify-content: center; border-radius: 50%; background: var(--uvi-amber); color: var(--uvi-navy); font: 800 22px/1 'Barlow Condensed', sans-serif; margin-bottom: 8px; box-shadow: 0 0 0 0 rgba(245, 158, 11, .5); animation: uvi-pulse 2.8s infinite; }
@keyframes uvi-pulse { 0% { box-shadow: 0 0 0 0 rgba(245, 158, 11, .55); } 70% { box-shadow: 0 0 0 14px rgba(245, 158, 11, 0); } 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); } }

/* Buttons */
.elementor-button { transition: transform .2s var(--uvi-ease), background-color .2s var(--uvi-ease), box-shadow .2s var(--uvi-ease); }
.elementor-button:hover { box-shadow: 0 10px 22px rgba(11, 31, 58, .18); }

/* Trust strip counters */
.uvi-trust .elementor-counter-number-wrapper { letter-spacing: -.01em; }

/* CTA band: subtle sheen sweep */
.uvi-cta-band { position: relative; overflow: hidden; }
.uvi-cta-band::before { content: ""; position: absolute; top: 0; bottom: 0; width: 40%; left: -40%; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.28) 50%, rgba(255,255,255,0) 100%); animation: uvi-sheen 7s ease-in-out infinite; pointer-events: none; }
@keyframes uvi-sheen { 0%, 60% { left: -40%; } 100% { left: 140%; } }

/* Contact form (works with Contact Form 7 / WPForms / Elementor Pro Form) */
.uvi-form input:not([type=submit]), .uvi-form select, .uvi-form textarea { width: 100%; min-height: 48px; padding: 12px 16px; border: 1px solid #C9D2DE; border-radius: 6px; background: #fff; font: 500 16px 'Barlow', sans-serif; color: var(--uvi-navy); transition: border-color .2s, box-shadow .2s; }
.uvi-form input:focus, .uvi-form select:focus, .uvi-form textarea:focus { outline: none; border-color: var(--uvi-amber); box-shadow: 0 0 0 3px rgba(245, 158, 11, .3); }
.uvi-form label { display: block; font-weight: 600; font-size: 14px; margin: 0 0 6px; }
.uvi-form input[type=submit], .uvi-form button[type=submit], .uvi-form .wpcf7-submit, .uvi-form .wpforms-submit { width: 100%; min-height: 52px; background: var(--uvi-amber); color: var(--uvi-navy); border: 0; border-radius: 6px; font: 700 20px/1 'Barlow Condensed', sans-serif; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; transition: background .2s, transform .2s; }
.uvi-form input[type=submit]:hover, .uvi-form .wpcf7-submit:hover, .uvi-form .wpforms-submit:hover { background: var(--uvi-amber-light); transform: translateY(-2px); }
.uvi-form .wpcf7-form-control-wrap { display: block; margin-bottom: 14px; }

/* Floating call / WhatsApp buttons (mobile conversions) */
.uvi-float { position: fixed; right: 16px; bottom: 16px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; }
.uvi-float a { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: transform .2s var(--uvi-ease); }
.uvi-float a:hover { transform: scale(1.08); }
.uvi-float .uvi-float-call { background: var(--uvi-navy); }
.uvi-float .uvi-float-wa { background: #25D366; animation: uvi-pulse-green 3s infinite; }
@keyframes uvi-pulse-green { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); } 70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }
.uvi-float svg { width: 26px; height: 26px; }
@media (min-width: 1025px) { .uvi-float .uvi-float-call { display: none; } }

/* Footer */
.uvi-footer a:hover { color: #FCD34D !important; }

/* ---------- Mobile polish ---------- */
@media (max-width: 767px) {
  .uvi-hero .elementor-widget-image { order: -1; }
  .elementor-button { width: 100%; justify-content: center; }
  .uvi-cta-band .elementor-widget-button { width: 100%; }
}

/* ---------- Respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .elementor-invisible { visibility: visible !important; }
}

/* ======================================================================
   Theme header & footer (used when Elementor Pro's Theme Builder is not active)
   ====================================================================== */
.uvi-wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.uvi-topbar{background:var(--uvi-navy);color:#fff;font-size:14px}
.uvi-topbar .uvi-wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 24px;min-height:42px;padding-top:6px;padding-bottom:6px}
.uvi-topbar-l{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center}
.uvi-topbar-l a,.uvi-topbar-l span{display:inline-flex;gap:8px;align-items:center;color:#fff;text-decoration:none}
.uvi-topbar-l span{color:#C7D2E0}.uvi-topbar-l svg{width:14px;height:14px;color:var(--uvi-amber)}.uvi-topbar-l a:hover{color:#FCD34D}
.uvi-soc{display:flex;gap:6px}.uvi-soc a{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:#C7D2E0;border:1px solid #244068;border-radius:8px;transition:.2s}.uvi-soc a:hover{color:#FCD34D;transform:translateY(-2px)}.uvi-soc svg{width:16px;height:16px}
.uvi-header{background:#fff;border-bottom:1px solid var(--uvi-line);position:sticky;top:0;z-index:999;transition:box-shadow .3s}
.admin-bar .uvi-header{top:32px}@media(max-width:782px){.admin-bar .uvi-header{top:46px}}
.uvi-header.is-stuck{box-shadow:0 6px 24px rgba(11,31,58,.1)}
.uvi-header .uvi-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:88px;padding-top:10px;padding-bottom:10px}
.uvi-logo img{display:block;width:310px;max-width:100%;height:auto}
.uvi-nav{display:flex;align-items:center;gap:2px;flex-wrap:wrap;justify-content:flex-end}
.uvi-menu,.uvi-menu ul{list-style:none;margin:0;padding:0}.uvi-menu{display:flex;align-items:center;gap:2px}
.uvi-menu>li{position:relative}.uvi-menu>li>a{color:var(--uvi-navy);font-weight:600;font-size:15px;padding:10px 12px;min-height:44px;display:inline-flex;align-items:center;position:relative;text-decoration:none}
.uvi-menu>li>a::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;background:var(--uvi-amber);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--uvi-ease)}
.uvi-menu>li:hover>a::after,.uvi-menu>li.current-menu-item>a::after,.uvi-menu>li.current-menu-ancestor>a::after{transform:scaleX(1)}
.uvi-menu>li.current-menu-item>a,.uvi-menu>li.current-menu-ancestor>a{color:var(--uvi-copper)}
.uvi-menu>li.menu-item-has-children>a::before{content:"";display:inline-block;width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-3px 0 0 6px;order:2}
.uvi-menu .sub-menu{position:absolute;left:0;top:100%;min-width:240px;background:#fff;border:1px solid var(--uvi-line);border-radius:10px;box-shadow:0 18px 40px rgba(11,31,58,.14);padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s var(--uvi-ease)}
.uvi-menu li:hover>.sub-menu,.uvi-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.uvi-menu .sub-menu a{display:block;padding:10px 12px;border-radius:6px;color:var(--uvi-navy);font-weight:500;text-decoration:none}.uvi-menu .sub-menu a:hover{background:var(--uvi-cloud);color:var(--uvi-copper)}
.uvi-cta{margin-left:10px;display:inline-flex;align-items:center;min-height:46px;padding:0 20px;border-radius:6px;background:var(--uvi-amber);color:var(--uvi-navy)!important;font:700 17px/1 'Barlow Condensed',sans-serif;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;transition:.2s}.uvi-cta:hover{background:var(--uvi-amber-light);transform:translateY(-2px)}
.uvi-burger{display:none;background:none;border:0;width:46px;height:46px;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;padding:8px}.uvi-burger span{display:block;height:3px;background:var(--uvi-navy);border-radius:2px}
@media(max-width:1024px){
  .uvi-header .uvi-wrap{position:relative}.uvi-burger{display:flex}.uvi-logo img{width:220px}
  .uvi-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:12px 16px 20px;border-bottom:1px solid var(--uvi-line);box-shadow:0 20px 40px rgba(11,31,58,.12);max-height:calc(100vh - 120px);overflow-y:auto}
  .uvi-nav.is-open{display:flex}.uvi-menu{flex-direction:column;align-items:stretch}.uvi-menu>li>a{font-size:18px;padding:12px 8px}
  .uvi-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 6px 16px}
  .uvi-cta{margin:10px 0 0;justify-content:center}.uvi-topbar .uvi-hours,.uvi-topbar .uvi-soc{display:none}
}
.uvi-footer{background:var(--uvi-navy-deep);color:#C7D2E0;padding:64px 0 28px;font-size:15px}
.uvi-fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}.uvi-fgrid>div{display:flex;flex-direction:column;gap:10px}
.uvi-fgrid h4{font-size:18px;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin:0 0 6px}
.uvi-fgrid a{color:#C7D2E0;text-decoration:none}.uvi-fgrid a:hover{color:#FCD34D}.uvi-fbrand p{line-height:1.6;max-width:380px;margin:6px 0}.uvi-fbrand img{width:260px;height:auto}
.uvi-fbot{border-top:1px solid #244068;margin-top:40px;padding-top:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px;color:#9FB0C4}
@media(max-width:900px){.uvi-fgrid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.uvi-fgrid{grid-template-columns:1fr}.uvi-fbot{flex-direction:column}}
/* hide Hello's default header/footer pieces & page title if they sneak in */
.site-header,.site-footer{display:none!important}
.elementor-page .entry-title,.elementor-page .page-header{display:none}
