/* =====================================================================
   HIVVE.STUDIO — Core Brand Typography & Universal Inverting Cursor
   Ensures unified logo font & size from Home Page and high-contrast
   self-inverting cursor (white on black, black on white).
   ===================================================================== */

/* 1. Global Font Imports (Syne 700/800 & Inter 400/500) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Syne:wght@700;800&display=swap');

/* 2. Standardized Home-Page Logo (HIVVE.STUDIO) across all pages */
.nav-logo,
.wordmark,
#navbar .nav-logo,
.nav-logo-wrap,
.nav-logo-text {
  font-family: 'Syne', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-weight: 800 !important;
  font-size: 1.5rem !important;
  letter-spacing: -0.02em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* Ensure monochrome uniformity matching Home Page */
.nav-logo span,
.wordmark span,
.nav-logo-text span {
  color: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  letter-spacing: inherit !important;
}

/* 3. Standardized Top-Level Navigation Links (1rem Uppercase) */
#navbar nav[aria-label="Main navigation"] > a,
#navbar nav[aria-label="Main navigation"] > .nav-services > a,
#navbar nav[aria-label="Main navigation"] > .nav-dropdown > a,
.primary-nav > a,
.primary-nav > .nav-services > a,
.primary-nav > .nav-dropdown > a,
.nav-links > a,
.nav-links > .nav-services > a,
.nav-links > .nav-dropdown > a,
nav.primary-nav > a,
nav.nav-links > a {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

/* Protect dropdown submenu items from 1rem override */
.service-menu strong {
  font-size: 0.83rem !important;
}
.service-menu span {
  font-size: 0.72rem !important;
}

/* 4. Universal Self-Inverting Cursor (Content-Creation Style) */
@media (hover: hover) and (pointer: fine) {
  body, 
  a, 
  button, 
  [role="button"], 
  input, 
  textarea, 
  select, 
  label,
  canvas,
  .hover-target,
  .placard,
  .service-card,
  .card {
    cursor: none !important;
  }
}
@media (hover: none) or (pointer: coarse) {
  .mouse-cursor, .mouse {
    display: none !important;
  }
}

.mouse-cursor,
.mouse {
  position: fixed;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  pointer-events: none;
  z-index: 99999999;
  mix-blend-mode: difference !important;
  transform: translate(-50%, -50%);
  transition: width 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              height 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  display: block !important;
  border-radius: 50%;
}

.mouse-cursor-ball,
.mouse_ball {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  background: #ffffff !important;
  border-radius: 50%;
  transition: transform 0.22s ease;
}

/* Expanded Lens when hovering interactive elements */
.mouse-cursor.hover,
.mouse.hover,
.mouse.active,
.mouse-cursor.active,
.mouse.click-mode,
.mouse-cursor.click-mode {
  width: 44px !important;
  height: 44px !important;
}

/* Suppress obsolete conflicting cursors */
.cursor-dot,
.cursor-outline,
.cursor:not(.mouse-cursor):not(.mouse) {
  display: none !important;
}

/* Pure touch mobile devices fallback */
@media (pointer: coarse) and (hover: none) {
  .mouse-cursor,
  .mouse {
    display: none !important;
  }
  body, a, button, [role="button"], input, textarea, select, label, canvas {
    cursor: auto !important;
  }
}

/* Screen-reader only utility for accessible headings/text */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border-width: 0 !important;
}
