/*
Theme Name: JXT Construction Projects
Theme URI: https://jxtconstruction.co.za/
Author: JXT Construction Projects
Author URI: https://jxtconstruction.co.za/
Description: Custom, high-performance WordPress theme for JXT Construction Projects (Pty) Ltd — NHBRC Registered Builder (#3000287514) specializing in structural concrete, concrete repairs, home extensions, and turnkey construction in Somerset West, Strand, and Cape Town. Includes automated 1-click page setup, 11 SEO-optimized engineering guides, and full Schema.org structured data.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary
License URI: https://jxtconstruction.co.za/
Text Domain: jxt-construction
Tags: construction, contractor, civil-engineering, renovations, concrete, builder, nhbrc, local-business, clean, modern, responsive
*/
/* Global SVG and Image Sizing Safeguards */
svg {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  max-width: 100%;
}

img {
  max-width: 100%;
  height: auto;
}

/* Explicit SVG Icon Dimension Protections */
svg.w-3, svg.h-3 { width: 0.75rem !important; height: 0.75rem !important; }
svg.w-3\.5, svg.h-3\.5 { width: 0.875rem !important; height: 0.875rem !important; }
svg.w-4, svg.h-4 { width: 1rem !important; height: 1rem !important; }
svg.w-4\.5, svg.h-4\.5 { width: 1.125rem !important; height: 1.125rem !important; }
svg.w-5, svg.h-5 { width: 1.25rem !important; height: 1.25rem !important; }
svg.w-6, svg.h-6 { width: 1.5rem !important; height: 1.5rem !important; }
svg.w-7, svg.h-7 { width: 1.75rem !important; height: 1.75rem !important; }
svg.w-8, svg.h-8 { width: 2rem !important; height: 2rem !important; }
svg.w-10, svg.h-10 { width: 2.5rem !important; height: 2.5rem !important; }
svg.w-12, svg.h-12 { width: 3rem !important; height: 3rem !important; }
svg.w-14, svg.h-14 { width: 3.5rem !important; height: 3.5rem !important; }
svg.w-16, svg.h-16 { width: 4rem !important; height: 4rem !important; }

/* Additional WordPress core utility overrides */
.alignwide {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption-text {
  text-align: center;
  font-size: 0.875rem;
  color: #78716c;
  margin-top: 0.5rem;
}

/* =========================================================
   Desktop Navigation Services Dropdown Hover Rules
   ========================================================= */
.nav-services-group {
  position: relative;
}

.nav-services-dropdown {
  position: absolute !important;
  top: calc(100% + 4px) !important;
  left: -40px !important;
  width: 700px !important;
  min-width: 700px !important;
  max-width: 700px !important;
  background-color: #ffffff !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.2), 0 4px 14px rgba(0, 0, 0, 0.08) !important;
  border-radius: 18px !important;
  border: 1px solid #e7e5e4 !important;
  padding: 16px 18px !important;
  z-index: 99999 !important;
  display: none !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 6px 16px !important;
  box-sizing: border-box !important;
  transform: translateY(6px);
  transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.2s;
}

/* Hover bridge so moving mouse from link to menu never triggers mouseleave */
.nav-services-dropdown::before {
  content: '';
  position: absolute;
  top: -18px;
  left: 0;
  right: 0;
  height: 22px;
}

.nav-services-group:hover .nav-services-dropdown,
.nav-services-dropdown:hover,
.nav-services-group.is-open .nav-services-dropdown {
  display: grid !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

.nav-services-group:hover .nav-services-arrow,
.nav-services-group.is-open .nav-services-arrow {
  transform: rotate(180deg);
}

.nav-services-dropdown a.service-dropdown-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 10px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #292524 !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
  white-space: nowrap !important;
}

.nav-services-dropdown a.service-dropdown-item:hover {
  background-color: #fff7ed !important;
  color: #ed791e !important;
}

.nav-services-dropdown a.service-dropdown-item span.dot {
  width: 6px !important;
  height: 6px !important;
  background-color: #ed791e !important;
  border-radius: 9999px !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
}

.nav-services-dropdown a.service-dropdown-item span.title {
  color: inherit !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: inline-block !important;
  white-space: nowrap !important;
}
