/* =========================================================
   UNITED CONSTRUCTION GROUP — site-wide foundations
   Loaded on every page. Header, footer and brand primitives.
   Remove the enqueue in novamira-sandbox/ucg-home-v2-noindex.php
   to revert everything here.
   ========================================================= */
:root{
  --ucg-navy:#071C48; --ucg-navy-2:#0B2559; --ucg-navy-3:#04122F;
  --ucg-orange:#F97104; --ucg-orange-2:#FF8A2B;
  --ucg-cream:#FDF4EC; --ucg-steel:#C8D5DC;
  --ucg-rule:rgba(200,213,220,.22);
  --ucg-r:999px;
}

/* ---------------- HEADER ---------------- */
.ucg-site-header{position:sticky;top:0;z-index:9999;font-family:'Poppins',system-ui,sans-serif}
.ucg-site-header *{box-sizing:border-box}
.ucg-site-header a{text-decoration:none}
.ucg-site-header .ucg-wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 32px}

.ucg-topbar{background:var(--ucg-navy-3);border-bottom:1px solid var(--ucg-rule);color:rgba(255,255,255,.62)}
.ucg-topbar .ucg-wrap{display:flex;justify-content:space-between;align-items:center;height:40px;gap:24px}
.ucg-topbar .ucg-lic{letter-spacing:.1em;text-transform:uppercase;font-size:11px !important}
.ucg-topbar .ucg-soc{display:flex;gap:16px;align-items:center}
.ucg-topbar,
.ucg-topbar .ucg-soc,
.ucg-topbar .ucg-soc a{font-size:12.5px !important;line-height:1.2 !important;color:rgba(255,255,255,.66)}
.ucg-topbar .ucg-soc a:hover{color:var(--ucg-orange)}

.ucg-nav{background:rgba(7,28,72,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--ucg-rule);
  transition:background .35s,box-shadow .35s}
.ucg-site-header.is-stuck .ucg-nav{background:rgba(4,18,47,.97);box-shadow:0 10px 30px -18px rgba(0,0,0,.9)}
.ucg-nav .ucg-wrap{display:flex;align-items:center;justify-content:space-between;height:80px;gap:18px}
.ucg-nav .ucg-logo img{height:38px;width:auto;display:block}
.ucg-menu{display:flex;gap:26px;font-size:12.5px;font-weight:400;letter-spacing:.11em;text-transform:uppercase;
  align-items:center;list-style:none;margin:0;padding:0}
.ucg-menu>li{position:relative;list-style:none;margin:0}
.ucg-menu>li>a{position:relative;padding:28px 0;display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.88)}
.ucg-menu>li>a::after{content:"";position:absolute;left:0;bottom:24px;width:0;height:2px;background:var(--ucg-orange);transition:width .3s}
.ucg-menu>li:hover>a::after{width:100%}
.ucg-menu>li:hover>a{color:#fff}
.ucg-caret{font-size:8px;opacity:.7;transition:transform .3s}
.ucg-menu>li:hover .ucg-caret{transform:rotate(180deg)}
.ucg-sub{position:absolute;top:100%;left:-20px;min-width:290px;background:var(--ucg-navy-3);
  border:1px solid var(--ucg-rule);border-radius:14px;padding:10px;opacity:0;visibility:hidden;
  transform:translateY(10px);transition:.28s;box-shadow:0 24px 60px -20px rgba(0,0,0,.7);list-style:none;margin:0}
.ucg-menu>li:hover .ucg-sub{opacity:1;visibility:visible;transform:none}
.ucg-sub li{margin:0;list-style:none}
.ucg-sub li a{display:block;padding:11px 16px;border-radius:8px;font-size:12px;letter-spacing:.06em;
  color:rgba(255,255,255,.75);text-transform:none}
.ucg-sub li a:hover{background:rgba(249,113,4,.14);color:var(--ucg-orange)}

.ucg-navcta{display:inline-flex;align-items:center;gap:7px;background:var(--ucg-orange);color:#fff !important;
  border-radius:var(--ucg-r);padding:9px 18px;font-size:11px;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;white-space:nowrap;transition:.28s;flex:0 0 auto}
.ucg-navcta:hover{background:var(--ucg-orange-2);transform:translateY(-2px);box-shadow:0 14px 34px -12px rgba(249,113,4,.75)}

.ucg-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px}
.ucg-burger span{width:24px;height:2px;background:#fff;border-radius:2px}
.ucg-mobile{display:none;background:var(--ucg-navy-3);border-top:1px solid var(--ucg-rule);
  max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.2,.7,.3,1)}
.ucg-mobile.open{max-height:82vh;overflow-y:auto}
.ucg-mobile ul{list-style:none;padding:12px 20px 24px;margin:0}
.ucg-mobile li{list-style:none;margin:0}
.ucg-mobile a{display:block;padding:13px 0;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  border-bottom:1px solid var(--ucg-rule);color:#fff}
.ucg-mobile .ucg-subm a{padding:8px 0 8px 16px;font-size:12px;text-transform:none;letter-spacing:.04em;
  color:rgba(255,255,255,.62);border-bottom:0}

@media(max-width:1320px){ .ucg-menu{gap:16px;font-size:11px} .ucg-navcta{padding:8px 15px;font-size:10.5px} }
@media(max-width:1080px){
  .ucg-menu,.ucg-nav .ucg-navcta{display:none}
  .ucg-burger{display:flex}
  .ucg-mobile{display:block}
  .ucg-nav .ucg-wrap{height:66px}
  .ucg-nav .ucg-logo img{height:32px}
  .ucg-topbar .ucg-wrap{height:36px;justify-content:center;gap:18px;padding:0 16px}
  .ucg-topbar .ucg-lic{display:none}
  .ucg-topbar,.ucg-topbar .ucg-soc,.ucg-topbar .ucg-soc a{font-size:12px !important}
}
@media(max-width:760px){
  .ucg-site-header .ucg-wrap{padding:0 20px}
  .ucg-topbar .ucg-wrap{gap:14px;padding:0 14px}
  .ucg-topbar,.ucg-topbar .ucg-soc,.ucg-topbar .ucg-soc a{font-size:11.5px !important}
}
@media(max-width:420px){
  .ucg-topbar,.ucg-topbar .ucg-soc,.ucg-topbar .ucg-soc a{font-size:10.5px !important}
  .ucg-topbar .ucg-soc{gap:10px}
}

/* ---------------- FOOTER ---------------- */
.ucg-site-footer{background:var(--ucg-navy-3);border-top:3px solid var(--ucg-orange);
  padding:56px 0 28px;font-size:14px;color:rgba(255,255,255,.6);
  font-family:'Poppins',system-ui,sans-serif}
.ucg-site-footer *{box-sizing:border-box}
.ucg-site-footer a{color:inherit;text-decoration:none}
.ucg-site-footer a:hover{color:var(--ucg-orange)}
.ucg-site-footer .ucg-wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 32px}
.ucg-fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:40px;padding-bottom:36px;
  border-bottom:1px solid var(--ucg-rule);align-items:start}
.ucg-site-footer .ucg-flogo{height:36px;width:auto;max-width:200px;margin-bottom:16px;display:block}
.ucg-site-footer p{font-size:14px;line-height:1.6;margin:0;color:rgba(255,255,255,.6)}
.ucg-site-footer h4{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ucg-orange) !important;margin:0 0 18px;font-weight:500}
.ucg-site-footer ul{list-style:none;display:grid;gap:9px;margin:0;padding:0}
.ucg-site-footer li{font-size:14px;margin:0;list-style:none}
.ucg-ftag{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--ucg-orange)}
.ucg-fbot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:26px;
  font-size:12.5px;color:rgba(255,255,255,.45)}
@media(max-width:1080px){ .ucg-fgrid{grid-template-columns:1fr 1fr;gap:32px} }
@media(max-width:760px){
  .ucg-site-footer{padding:44px 0 24px}
  .ucg-site-footer .ucg-wrap{padding:0 20px}
  .ucg-fgrid{grid-template-columns:1fr;gap:28px}
  .ucg-fbot{flex-direction:column;gap:10px}
}

/* ---------------- GLOBAL BRAND FOUNDATIONS ----------------
   Conservative: colour, radius and motion only. No layout
   changes, so existing page structures are untouched.        */
.elementor-button,
.wp-block-button__link,
.ast-button,
button.ast-custom-button,
input[type="submit"],
.ast-single-post .post-password-form input[type="submit"]{
  border-radius:var(--ucg-r) !important;
  letter-spacing:.06em;
  transition:.28s cubic-bezier(.2,.7,.3,1) !important;
}
.elementor-button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover{ transform:translateY(-2px); }

/* form fields pick up the brand focus ring */
input[type="text"],input[type="email"],input[type="tel"],input[type="url"],
input[type="number"],input[type="search"],select,textarea{
  border-radius:10px;
  transition:border-color .25s, box-shadow .25s;
}
input[type="text"]:focus,input[type="email"]:focus,input[type="tel"]:focus,
input[type="url"]:focus,input[type="number"]:focus,input[type="search"]:focus,
select:focus,textarea:focus{
  border-color:var(--ucg-orange) !important;
  box-shadow:0 0 0 3px rgba(249,113,4,.16) !important;
  outline:none;
}

/* accessible focus outline for keyboard users */
a:focus-visible,button:focus-visible,
.elementor-button:focus-visible{
  outline:2px solid var(--ucg-orange);
  outline-offset:3px;
}

/* selection + scrollbar accent */
::selection{background:rgba(249,113,4,.28)}

/* utility classes available to any page */
.ucg-band-cream{background:var(--ucg-cream)}
.ucg-band-navy{background:var(--ucg-navy)}
.ucg-band-orange{background:var(--ucg-orange);color:#fff}

/* =========================================================
   THEME RESET
   Now that the homepage runs on the standard template, Astra's
   link styling applies to it. Strip underlines and inherited
   link colour inside our own components only.
   ========================================================= */
.ucg-v2 a,
.ucg-site-header a,
.ucg-site-footer a{text-decoration:none !important}
.ucg-v2 a:hover,
.ucg-site-header a:hover,
.ucg-site-footer a:hover{text-decoration:none !important}
.ucg-v2 .btn,
.ucg-v2 .btn:hover,
.ucg-v2 .intake-open{text-decoration:none !important;box-shadow:none}
.ucg-v2 .btn-primary,.ucg-v2 .btn-primary:hover{color:#fff !important}

/* Astra adds container padding + max-width to the content area —
   the homepage manages its own layout */
.ucg-v2-page .site-content .ast-container,
.ucg-v2-page .site-content > .ast-container{max-width:none !important;padding:0 !important}
.ucg-v2-page #primary,
.ucg-v2-page .content-area,
.ucg-v2-page .entry-content{margin:0 !important;padding:0 !important}
.ucg-v2-page .site-content{padding:0 !important}
.ucg-v2-page .entry-header,
.ucg-v2-page .ast-single-post-order,
.ucg-v2-page .page-title{display:none !important}
/* =========================================================
   STICKY FIX
   position:sticky only works while the element can travel
   inside its parent. Every Elementor wrapper around the header
   is exactly the header's own height (122px), so there was no
   room to travel and it scrolled straight off. The sticky now
   sits on the outer theme wrapper, whose parent (#page) is the
   full document height.
   ========================================================= */
header.elementor-28,
.elementor-location-header{position:sticky !important;top:0 !important;z-index:9999 !important}
.ucg-site-header{position:static !important}
/* wrappers must not clip the sticky element */
header.elementor-28,
header.elementor-28 > .e-con,
header.elementor-28 .elementor-element,
header.elementor-28 .elementor-widget-container{overflow:visible !important}
/* keep it above Elementor popups and the chat bubble */
header.elementor-28{isolation:isolate}
/* =========================================================
   FORM DRAWER (SITE-WIDE)
   Every GoHighLevel embed across the site is swapped for a
   compact intake card; the real form opens in a slide-in
   drawer. Same pattern as the homepage, and the iframe is only
   fetched when someone actually opens it.
   ========================================================= */
.ucgf-intake{position:relative;border:1px solid rgba(249,113,4,.45);border-radius:22px;
  padding:clamp(28px,3vw,42px);background:
    radial-gradient(120% 90% at 100% 0%, rgba(249,113,4,.16) 0%, rgba(249,113,4,0) 55%),
    rgba(7,28,72,.72);
  backdrop-filter:blur(12px);overflow:hidden;cursor:pointer;width:100%;text-align:left;
  font-family:'Poppins',system-ui,sans-serif;color:#fff;display:block;
  transition:.45s cubic-bezier(.2,.7,.3,1);max-width:560px;margin:0 auto}
.ucgf-intake::before{content:"";position:absolute;inset:0;z-index:0;opacity:.5;
  background-image:linear-gradient(rgba(200,213,220,.08) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(200,213,220,.08) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(85% 75% at 70% 25%,#000 0%,transparent 78%);
  mask-image:radial-gradient(85% 75% at 70% 25%,#000 0%,transparent 78%)}
.ucgf-intake:hover{border-color:rgba(249,113,4,.8);transform:translateY(-5px);
  box-shadow:0 34px 70px -34px rgba(0,0,0,.85)}
.ucgf-intake>*{position:relative;z-index:1}
.ucgf-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}
.ucgf-kicker{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:#F97104;margin-bottom:10px}
.ucgf-intake h3{font-size:clamp(21px,2vw,27px);line-height:1.15;color:#fff;margin:0;font-weight:600;letter-spacing:-.02em}
.ucgf-roof{flex:0 0 auto;width:44px;height:25px;overflow:visible;opacity:.9}
.ucgf-roof path{fill:none;stroke:#F97104;stroke-width:2;stroke-linejoin:miter}
.ucgf-roof path.faint{stroke:rgba(200,213,220,.3)}
.ucgf-steps{list-style:none;display:grid;gap:0;border-top:1px solid rgba(200,213,220,.22);margin:0 0 26px;padding:0}
.ucgf-steps li{display:flex;align-items:center;gap:15px;padding:13px 0;
  border-bottom:1px solid rgba(200,213,220,.22);font-size:14px;color:rgba(255,255,255,.86);
  list-style:none;margin:0}
.ucgf-steps .n{flex:0 0 28px;height:28px;border-radius:50%;border:1px solid rgba(249,113,4,.5);
  color:#F97104;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500}
.ucgf-steps .t{margin-left:auto;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.ucgf-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ucgf-open{display:inline-flex;align-items:center;gap:10px;background:#F97104;color:#fff;
  border-radius:999px;padding:15px 28px;font-size:13px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;transition:.3s}
.ucgf-intake:hover .ucgf-open{background:#FF8A2B;box-shadow:0 14px 34px -12px rgba(249,113,4,.8)}
.ucgf-note{font-size:12.5px;color:rgba(255,255,255,.5);text-align:right;line-height:1.45}

.ucgf-scrim{position:fixed;inset:0;background:rgba(4,18,47,.72);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transition:.45s;z-index:99998}
.ucgf-scrim.on{opacity:1;visibility:visible}
.ucgf-drawer{position:fixed;top:0;right:0;height:100%;width:min(640px,100%);background:#04122F;
  border-left:1px solid rgba(200,213,220,.22);z-index:99999;transform:translateX(100%);
  transition:transform .55s cubic-bezier(.22,.9,.28,1);display:flex;flex-direction:column;
  box-shadow:-40px 0 90px -30px rgba(0,0,0,.85);font-family:'Poppins',system-ui,sans-serif}
.ucgf-drawer.on{transform:none}
.ucgf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:24px 26px;border-bottom:1px solid rgba(200,213,220,.22);flex:0 0 auto}
.ucgf-head .k{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:#F97104;margin-bottom:8px}
.ucgf-head h3{font-size:20px;color:#fff;margin:0;font-weight:600}
.ucgf-head p{font-size:13px;color:rgba(255,255,255,.5);margin:6px 0 0}
.ucgf-x{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:1px solid rgba(200,213,220,.22);
  background:none;color:#fff;font-size:19px;cursor:pointer;transition:.3s;display:flex;
  align-items:center;justify-content:center;line-height:1}
.ucgf-x:hover{background:#F97104;border-color:#F97104;transform:rotate(90deg)}
.ucgf-body{flex:1;overflow-y:auto;background:#fff}
.ucgf-body iframe{width:100%;min-height:1600px;border:0;display:block}
.ucgf-loading{padding:70px 28px;text-align:center;color:rgba(7,28,72,.5);font-size:14px}
.ucgf-spin{width:34px;height:34px;border:2px solid rgba(7,28,72,.14);border-top-color:#F97104;
  border-radius:50%;margin:0 auto 18px;animation:ucgfSpin .8s linear infinite}
@keyframes ucgfSpin{to{transform:rotate(360deg)}}
@media(max-width:760px){
  .ucgf-drawer{width:100%}
  .ucgf-cta{flex-direction:column;align-items:stretch}
  .ucgf-open{justify-content:center}
  .ucgf-note{text-align:left}
}
/* =========================================================
   FORM PANEL V2
   A wide, low CTA panel rather than a repeat of the homepage
   step card — these sections already carry their own heading,
   so the panel only needs to reassure and open the form.
   Also neutralises the sized container the embed left behind.
   ========================================================= */
.ucgf-host-reset{
  background-color:transparent !important;
  min-height:0 !important;height:auto !important;max-height:none !important;
  border:0 !important;outline:0 !important;box-shadow:none !important;
  padding:0 !important;overflow:visible !important;
  display:block !important}

.ucgf-panel{position:relative;display:block;width:100%;max-width:720px;margin:0 auto;
  border:0;border-radius:20px;overflow:hidden;cursor:pointer;text-align:left;
  font-family:'Poppins',system-ui,sans-serif;color:#fff;
  background:linear-gradient(135deg, rgba(7,28,72,.94) 0%, rgba(4,18,47,.92) 100%);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.7);
  transition:.42s cubic-bezier(.2,.7,.3,1);padding:clamp(26px,3vw,38px) clamp(24px,3vw,40px)}
.ucgf-panel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#F97104}
.ucgf-panel::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 120% at 100% 0%, rgba(249,113,4,.20) 0%, rgba(249,113,4,0) 58%)}
.ucgf-panel:hover{transform:translateY(-4px);box-shadow:0 40px 84px -30px rgba(0,0,0,.8)}
.ucgf-panel > *{position:relative;z-index:1}

.ucgf-panel .ucgf-eyebrow{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;
  color:#F97104;margin-bottom:10px}
.ucgf-panel h3{font-size:clamp(20px,2vw,26px);line-height:1.2;color:#fff;margin:0 0 18px;
  font-weight:600;letter-spacing:-.02em}
.ucgf-trust{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;margin:0 0 24px;padding:0}
.ucgf-trust li{display:flex;align-items:center;gap:9px;font-size:13.5px;
  color:rgba(255,255,255,.78);list-style:none;margin:0}
.ucgf-trust .tick{width:19px;height:19px;flex:0 0 19px;border-radius:50%;
  background:rgba(249,113,4,.18);border:1px solid rgba(249,113,4,.6);color:#F97104;
  display:flex;align-items:center;justify-content:center;font-size:10px}
.ucgf-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ucgf-btn{display:inline-flex;align-items:center;gap:10px;background:#F97104;color:#fff;
  border-radius:999px;padding:15px 30px;font-size:13px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;transition:.3s;white-space:nowrap}
.ucgf-panel:hover .ucgf-btn{background:#FF8A2B;box-shadow:0 14px 34px -12px rgba(249,113,4,.8)}
.ucgf-panel:hover .ucgf-btn .arw{transform:translateX(5px)}
.ucgf-btn .arw{transition:transform .3s}
.ucgf-meta{font-size:12.5px;color:rgba(255,255,255,.5);line-height:1.45}
@media(max-width:600px){
  .ucgf-row{flex-direction:column;align-items:stretch}
  .ucgf-btn{justify-content:center}
  .ucgf-meta{text-align:center}
}
/* =========================================================
   OVERLAY KILL
   Elementor paints "background overlay" as a ::before pseudo
   element, which no inline style or JS can touch. The tinted
   panel behind the old form was one of these. Only applies to
   wrappers we've already identified as embed leftovers.
   ========================================================= */
.ucgf-host-reset::before,
.ucgf-host-reset::after{
  content:none !important;
  display:none !important;
  background:none !important;
  background-color:transparent !important;
  background-image:none !important;
  opacity:0 !important;
}
.ucgf-host-reset > .elementor-background-overlay{display:none !important}