* { box-sizing:border-box; }
html, body { max-width:100%; overflow-x:hidden; }
main, main section, main section > div { min-width:0; }
main h1, main h2, main h3, main p, main span, main a, main button { overflow-wrap:anywhere; }

.nova-skip { position:absolute; left:-9999px; z-index:1000; }
.nova-skip:focus { left:12px; top:12px; background:#fff; color:#002D80; padding:10px 16px; }
.nova-header { position:relative; z-index:140; width:100%; font-family:Inter,sans-serif; }
.nova-topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:9px 32px; color:#181B1E; background:linear-gradient(90deg,#C3891A,#EEB943 51%,#FDD158); font-size:13px; font-weight:600; }
.nova-topbar > div { display:flex; gap:24px; flex-wrap:wrap; }
.nova-topbar a, .nova-topbar span { color:#181B1E; text-decoration:none; display:flex; align-items:center; gap:8px; }
.nova-nav-shell { position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; align-items:center; gap:14px; padding:15px 28px 18px; background:radial-gradient(circle at 12% 45%,rgba(0,119,209,.22),transparent 16%),radial-gradient(circle at 86% 15%,rgba(238,185,67,.18),transparent 20%),radial-gradient(circle at 50% 120%,rgba(24,27,30,.52),transparent 36%),linear-gradient(180deg,#002D80,#00246a); border-bottom:3px solid #EEB943; }
.nova-nav-shell::before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(24,27,30,.25),transparent 42%); pointer-events:none; }
.nova-nav-details { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.nova-nav-details span { position:absolute; display:block; border-radius:50%; border:1px solid rgba(238,185,67,.28); }
.nova-nav-details span:nth-child(1) { width:64px; height:64px; left:27%; top:8px; }
.nova-nav-details span:nth-child(2) { width:42px; height:42px; right:14%; top:12px; border-color:rgba(255,255,255,.15); }
.nova-nav-details span:nth-child(3) { width:12px; height:12px; left:16%; bottom:10px; background:#0077D1; border:0; opacity:.55; }
.nova-nav-details span:nth-child(4) { width:8px; height:8px; right:7%; top:18px; background:#EEB943; border:0; opacity:.7; }
.nova-logo img { width:250px; max-width:70vw; height:auto; display:block; }
.nova-desktop-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:26px; }
.nova-desktop-nav a { color:#fff; text-decoration:none; text-transform:uppercase; font-size:13px; font-weight:600; display:flex; gap:7px; align-items:center; }
.nova-desktop-nav a:hover { color:#EEB943; }
.nova-menu-toggle, .nova-mobile-nav { display:none; }
.nova-footer { position:relative; z-index:2; color:#9AA4AE; background:linear-gradient(180deg,#002D80,#060B18); font-family:Inter,sans-serif; }
.nova-footer-grid { max-width:1280px; margin:auto; padding:64px 32px 38px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px; }
.nova-footer-logo { width:250px; max-width:100%; height:auto; }
.nova-footer p { font-size:14px; line-height:1.65; max-width:290px; }
.nova-footer h2 { color:#EEB943; font:700 14px Montserrat,sans-serif; letter-spacing:.5px; margin:0 0 16px; }
.nova-footer nav { display:flex; flex-direction:column; gap:10px; }
.nova-footer nav a, .nova-footer nav span { color:#9AA4AE; text-decoration:none; font-size:14px; line-height:1.45; overflow-wrap:anywhere; display:flex; align-items:flex-start; gap:10px; }
.nova-footer nav i { width:15px; flex:0 0 15px; margin-top:2px; color:#EEB943; text-align:center; }
.nova-footer nav a:hover { color:#EEB943; }
.nova-footer-bottom { padding:20px 32px; border-top:2px solid #EEB943; text-align:center; color:#7C8794; font-size:13px; }
.nova-back-top, .nova-whatsapp { position:fixed; right:24px; z-index:110; width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.35); transition:transform .25s ease; }
.nova-back-top { bottom:96px; border:2px solid rgba(255,255,255,.2); background:#181B1E; color:#fff; cursor:pointer; }
.nova-whatsapp { bottom:32px; color:#181B1E; background:linear-gradient(90deg,#C3891A,#EEB943,#FDD158); text-decoration:none; font-size:22px; }
.nova-back-top:hover, .nova-whatsapp:hover { transform:translateY(-5px); }

.nova-reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1); }
.nova-reveal.nova-visible { opacity:1; transform:none; }
main a, main button { transition:transform .25s ease,box-shadow .25s ease,filter .25s ease; }
main a:hover, main button:hover { transform:translateY(-4px); }

#faq-photo, #faq-photo img { background-position:center top !important; object-position:center top !important; }

@media (max-width:767px) {
  .nova-topbar, .nova-desktop-nav { display:none; }
  .nova-nav-shell { min-height:82px; flex-direction:row; justify-content:space-between; padding:13px 18px; }
  .nova-logo img { width:190px; }
  .nova-menu-toggle { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:0; border-radius:50%; color:#fff; background:rgba(255,255,255,.12); font-size:18px; }
  .nova-mobile-nav { display:none; flex-direction:column; padding:10px 20px 20px; background:#002D80; border-bottom:3px solid #EEB943; }
  .nova-mobile-nav.is-open { display:flex; }
  .nova-mobile-nav a { color:#fff; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,.12); text-decoration:none; font:600 15px Inter,sans-serif; text-transform:uppercase; }
  .nova-footer-grid { grid-template-columns:1fr; padding:48px 24px 28px; text-align:center; gap:34px; }
  .nova-footer p { margin-left:auto; margin-right:auto; }
  .nova-footer nav { align-items:center; }
  .nova-whatsapp { display:flex; right:16px; bottom:20px; width:54px; height:54px; font-size:24px; }
  .nova-back-top { right:16px; bottom:86px; }

  main section { max-width:100%; }
  .home-intro, .home-why, .home-faq { grid-template-columns:1fr !important; }
  .home-intro > div:last-child, .home-why > div:last-child, .home-faq-copy { padding:44px 22px !important; }
  .home-why-items { grid-template-columns:1fr !important; gap:24px !important; }
  .home-faq-image { min-height:360px !important; }
  .mission-vision-wrap { padding:64px 20px !important; }
  .mission-vision-grid { grid-template-columns:1fr !important; gap:16px !important; background:transparent !important; }
  .mission-vision-card { padding:28px 24px !important; min-height:0 !important; }
  .service-row { grid-template-columns:1fr !important; }
  .service-image { order:1 !important; min-height:320px !important; }
  .service-copy { order:2 !important; padding:40px 22px !important; }
  .service-copy > * { max-width:100%; }
  .work-guides, .work-guides * { text-align:center !important; }
  .work-guides .guides-grid > * { align-items:center !important; }
  #ghl-form-container { width:100% !important; max-width:100% !important; min-width:0 !important; overflow:hidden !important; }
  #ghl-form-container iframe { display:block !important; width:100% !important; max-width:100% !important; min-width:0 !important; border:0 !important; }
  .property-form-copy { width:100% !important; min-width:0 !important; overflow:hidden !important; }
  main h1, main h2 { hyphens:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .nova-reveal { opacity:1; transform:none; transition:none; }
  main a, main button { transition:none; }
}

/* Keep the long contact email on one line inside footer columns */
.nova-footer nav a[href^="mailto:info@novageneralconstructiongroup.com"] {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  font-size: clamp(10px, 0.9vw, 12px);
  letter-spacing: -0.25px;
  min-width: 0;
}

@media (max-width: 767px) {
  .nova-footer nav a[href^="mailto:info@novageneralconstructiongroup.com"] {
    font-size: clamp(10px, 3vw, 13px);
  }
}

/* Locations coverage list */
.nova-location-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-family:Inter,sans-serif;font-size:14px;line-height:1.4}.nova-location-item strong{font-family:Montserrat,sans-serif;font-weight:700;color:#fff}.nova-location-item span{color:#DCE3EC;text-align:right}@media(max-width:520px){.nova-location-item{align-items:flex-start;flex-direction:column;gap:3px}.nova-location-item span{text-align:left}}


/* Animated service localities */
.nova-location-item {
  transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1), background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.nova-location-item.nova-reveal { transform: translateY(22px) scale(.985); }
.nova-location-item.nova-reveal.nova-visible { transform: translateY(0) scale(1); }
.nova-location-item:hover {
  transform: translateY(-4px) scale(1.015);
  background: rgba(255,255,255,.12);
  border-color: rgba(238,185,67,.62);
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
}
.nova-location-item:nth-child(2n).nova-reveal { transition-delay: .07s; }
.nova-location-item:nth-child(3n).nova-reveal { transition-delay: .14s; }
.nova-location-item:nth-child(4n).nova-reveal { transition-delay: .21s; }
@media (prefers-reduced-motion: reduce) {
  .nova-location-item, .nova-location-item.nova-reveal, .nova-location-item.nova-reveal.nova-visible {
    opacity:1; transform:none; transition:none;
  }
}


/* Footer social media */
.nova-footer .nova-social-links {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:8px;
}
.nova-footer .nova-social-link {
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border-radius:50%;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 8px 20px rgba(0,0,0,.22);
  transition:transform .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.nova-footer .nova-social-link i {
  width:auto;
  flex:0 0 auto;
  margin:0;
  color:#fff;
  font-size:20px;
}
.nova-footer .nova-social-link:hover {
  transform:translateY(-4px) scale(1.06);
  background:#EEB943;
  border-color:#EEB943;
  box-shadow:0 12px 26px rgba(0,0,0,.28);
  color:#181B1E;
}
.nova-footer .nova-social-link:hover i { color:#181B1E; }
@media (max-width:767px) {
  .nova-footer .nova-social-links { justify-content:center; }
}
