/* ==========================================================================
   EMPIRE INTERIOR PLASTERING — Header Polish v1
   Scope: header[data-elementor-id="1010"] only. Page bodies untouched.
   ========================================================================== */

:root {
  --eip-ink: #0E1A2B;
  --eip-ink-soft: #1F2933;
  --eip-blue: #3278B3;
  --eip-blue-deep: #1E5A8E;
  --eip-blue-soft: #7FB6E5;
  --eip-blue-glow: rgba(50, 120, 179, .35);
  --eip-cream: #F7F9FC;
  --eip-line: rgba(15, 26, 43, .08);
  --eip-line-strong: rgba(15, 26, 43, .14);
  --eip-shadow-xs: 0 1px 2px rgba(15, 26, 43, .06);
  --eip-shadow-sm: 0 4px 14px -6px rgba(15, 26, 43, .12);
  --eip-shadow-md: 0 12px 28px -10px rgba(15, 26, 43, .18);
  --eip-shadow-lg: 0 24px 60px -20px rgba(15, 26, 43, .32);
  --eip-ease: cubic-bezier(.16, 1, .3, 1);
  --eip-fast: .22s var(--eip-ease);
  --eip-med:  .42s var(--eip-ease);
  --eip-slow: .8s  var(--eip-ease);
}

/* --------------------------------------------------------------------------
   1. TOP UTILITY BAR  (location · email · phone · socials)
   -------------------------------------------------------------------------- */
header.elementor-1010 .elementor-element-9c8cf40 {
  background: linear-gradient(180deg, #0B1626 0%, #0F1E33 100%) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  position: relative;
}
header.elementor-1010 .elementor-element-9c8cf40::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(127, 182, 229, .35), transparent);
  pointer-events: none;
}
header.elementor-1010 .elementor-element-2dc6639.div-header-top {
  padding: 8px 24px !important;
  min-height: 44px;
}
header.elementor-1010 .elementor-element-2dc6639 .e-con-inner {
  gap: 18px;
  align-items: center;
}

/* Icon pills */
header.elementor-1010 .div-header-top .elementor-icon-box-wrapper {
  align-items: center;
  gap: 12px;
}
header.elementor-1010 .div-header-top .elementor-icon-box-icon {
  margin-bottom: 0 !important;
}
header.elementor-1010 .div-header-top .elementor-icon-box-icon .elementor-icon {
  width: 32px !important; height: 32px !important;
  display: inline-flex !important; align-items: center; justify-content: center;
  background: rgba(127, 182, 229, .12) !important;
  border: 1px solid rgba(127, 182, 229, .18);
  color: var(--eip-blue-soft) !important;
  border-radius: 9px !important;
  transition: all var(--eip-fast);
}
header.elementor-1010 .div-header-top .elementor-icon-box-icon .elementor-icon svg {
  width: 13px; height: 13px;
  fill: currentColor;
}
header.elementor-1010 .div-header-top .elementor-icon-box-wrapper:hover .elementor-icon {
  background: var(--eip-blue) !important;
  border-color: var(--eip-blue) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px -4px var(--eip-blue-glow);
}

/* Top bar text */
header.elementor-1010 .div-header-top .elementor-icon-box-description {
  font-family: 'Encode Sans', system-ui, sans-serif;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: .005em;
  color: #cfd8e3 !important;
  margin: 0 !important;
  line-height: 1.4 !important;
  transition: color var(--eip-fast);
}
header.elementor-1010 .div-header-top a:hover .elementor-icon-box-description,
header.elementor-1010 .div-header-top .elementor-icon-box-wrapper:hover .elementor-icon-box-description {
  color: #fff !important;
}

/* Subtle vertical dividers between top-bar info blocks (desktop only) */
@media (min-width: 992px) {
  header.elementor-1010 .elementor-element-d66a271 > .elementor-element + .elementor-element {
    position: relative;
  }
  header.elementor-1010 .elementor-element-d66a271 > .elementor-element + .elementor-element::before {
    content: "";
    position: absolute; left: -10px; top: 50%;
    width: 1px; height: 18px;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, .08);
  }
}

/* Social icons in top bar */
header.elementor-1010 .div-header-top .elementor-social-icons-wrapper {
  gap: 8px;
}
header.elementor-1010 .div-header-top .elementor-social-icon {
  width: 34px !important; height: 34px !important;
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  color: #cfd8e3 !important;
  border-radius: 9px !important;
  transition: all var(--eip-fast);
}
header.elementor-1010 .div-header-top .elementor-social-icon svg {
  width: 14px !important; height: 14px !important;
  fill: currentColor;
}
header.elementor-1010 .div-header-top .elementor-social-icon:hover {
  background: var(--eip-blue) !important;
  border-color: var(--eip-blue) !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px -6px var(--eip-blue-glow);
}

/* --------------------------------------------------------------------------
   2. MAIN HEADER BAR  (logo · nav · CTA)
   -------------------------------------------------------------------------- */
header.elementor-1010 .elementor-element-d6b1477.div-header {
  background: rgba(255, 255, 255, .92) !important;
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--eip-line);
  box-shadow: var(--eip-shadow-xs);
  position: relative;
  z-index: 5;
  transition: box-shadow var(--eip-med), background var(--eip-med);
}
header.elementor-1010 .elementor-element-72091e9 {
  padding: 10px 24px !important;
}
header.elementor-1010 .elementor-element-72091e9 .e-con-inner {
  align-items: center;
  gap: 24px;
}

/* Logo — constrain & polish */
header.elementor-1010 .elementor-widget-theme-site-logo {
  display: flex;
  align-items: center;
}
header.elementor-1010 .elementor-widget-theme-site-logo img {
  max-height: 64px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
  transition: transform var(--eip-fast), filter var(--eip-fast);
  filter: drop-shadow(0 1px 2px rgba(15, 26, 43, .08));
}
header.elementor-1010 .elementor-widget-theme-site-logo a:hover img {
  transform: scale(1.025);
  filter: drop-shadow(0 4px 10px rgba(50, 120, 179, .25));
}
@media (max-width: 1024px) {
  header.elementor-1010 .elementor-widget-theme-site-logo img { max-height: 56px !important; }
}
@media (max-width: 1024px) {
  header.elementor-1010 .elementor-element-72091e9 { padding: 10px 18px !important; }
  header.elementor-1010 .elementor-element-72091e9 .e-con-inner {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
  }
  /* Hide the desktop CTA on tablet/mobile to give burger room */
  header.elementor-1010 .elementor-element-3fc7820 { display: none !important; }
  /* Logo wrapper shrink to fit */
  header.elementor-1010 .elementor-element-f340033 { flex: 0 1 auto !important; }
  header.elementor-1010 .elementor-element-1783e6c { flex: 0 0 auto !important; margin-left: auto !important; }
}
@media (max-width: 768px) {
  header.elementor-1010 .elementor-widget-theme-site-logo img { max-height: 48px !important; }
  header.elementor-1010 .elementor-element-72091e9 { padding: 8px 14px !important; }
}
@media (max-width: 480px) {
  header.elementor-1010 .elementor-widget-theme-site-logo img { max-height: 42px !important; }
}

/* --------------------------------------------------------------------------
   3. NAVIGATION  (refined links + animated underline + dropdown)
   -------------------------------------------------------------------------- */
header.elementor-1010 .elementor-nav-menu .elementor-item {
  font-family: 'Encode Sans', system-ui, sans-serif;
  font-weight: 500 !important;
  font-size: 15px !important;
  letter-spacing: .01em !important;
  color: var(--eip-ink) !important;
  padding: 14px 18px !important;
  position: relative;
  transition: color var(--eip-fast);
}
header.elementor-1010 .elementor-nav-menu > .elementor-nav-menu > li > .elementor-item::before,
header.elementor-1010 .elementor-nav-menu > ul > li > .elementor-item::before {
  content: "";
  position: absolute;
  left: 18px; right: 18px; bottom: 8px;
  height: 2px;
  background: linear-gradient(90deg, var(--eip-blue), var(--eip-blue-deep));
  border-radius: 2px;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform var(--eip-med);
}
header.elementor-1010 .elementor-nav-menu > ul > li > .elementor-item:hover,
header.elementor-1010 .elementor-nav-menu > ul > li.current-menu-item > .elementor-item,
header.elementor-1010 .elementor-nav-menu > ul > li.current-menu-ancestor > .elementor-item {
  color: var(--eip-blue) !important;
}
header.elementor-1010 .elementor-nav-menu > ul > li > .elementor-item:hover::before,
header.elementor-1010 .elementor-nav-menu > ul > li.current-menu-item > .elementor-item::before,
header.elementor-1010 .elementor-nav-menu > ul > li.current-menu-ancestor > .elementor-item::before {
  transform: scaleX(1);
}

/* Override Elementor's built-in pointer-underline so it doesn't double up */
header.elementor-1010 .elementor-nav-menu--main.e--pointer-underline .elementor-item:not(:hover):not(.elementor-item-active):not(.highlighted):not(:focus)::after,
header.elementor-1010 .elementor-nav-menu--main.e--pointer-underline .elementor-item::after {
  display: none !important;
}

/* Dropdown caret arrow */
header.elementor-1010 .elementor-nav-menu .ast-icon.icon-arrow svg,
header.elementor-1010 .elementor-nav-menu .sub-arrow svg {
  width: 10px !important; height: 10px !important;
  margin-left: 6px;
  transition: transform var(--eip-fast);
}
header.elementor-1010 .elementor-nav-menu li.menu-item-has-children:hover > .elementor-item .ast-icon.icon-arrow svg {
  transform: rotate(180deg);
}

/* Submenu (dropdown) panel */
header.elementor-1010 .elementor-nav-menu .sub-menu,
header.elementor-1010 .elementor-nav-menu--dropdown {
  background: rgba(255, 255, 255, .98) !important;
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  backdrop-filter: blur(16px) saturate(180%);
  border: 1px solid var(--eip-line) !important;
  border-radius: 14px !important;
  box-shadow: var(--eip-shadow-lg) !important;
  padding: 8px !important;
  margin-top: 12px !important;
  min-width: 240px;
  overflow: hidden;
}
header.elementor-1010 .elementor-nav-menu .sub-menu .elementor-sub-item {
  font-family: 'Encode Sans', system-ui, sans-serif;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--eip-ink) !important;
  padding: 11px 16px !important;
  border-radius: 9px !important;
  border: 0 !important;
  margin: 1px 0 !important;
  transition: all var(--eip-fast);
  position: relative;
}
header.elementor-1010 .elementor-nav-menu .sub-menu .elementor-sub-item::before {
  content: "";
  position: absolute; left: 8px; top: 50%;
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--eip-blue);
  opacity: 0;
  transform: translateY(-50%) translateX(-4px);
  transition: all var(--eip-fast);
}
header.elementor-1010 .elementor-nav-menu .sub-menu .elementor-sub-item:hover {
  background: linear-gradient(90deg, rgba(50, 120, 179, .08), rgba(50, 120, 179, 0)) !important;
  color: var(--eip-blue) !important;
  padding-left: 22px !important;
}
header.elementor-1010 .elementor-nav-menu .sub-menu .elementor-sub-item:hover::before {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

/* --------------------------------------------------------------------------
   4. CTA BUTTON  (REQUEST A FREE QUOTE)
   -------------------------------------------------------------------------- */
header.elementor-1010 .elementor-widget-button .elementor-button {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, var(--eip-blue) 0%, var(--eip-blue-deep) 100%) !important;
  color: #fff !important;
  border-radius: 100px !important;
  padding: 14px 30px !important;
  font-family: 'Encode Sans', system-ui, sans-serif;
  font-weight: 600 !important;
  font-size: 13.5px !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
  border: 0 !important;
  box-shadow:
    0 12px 28px -12px var(--eip-blue-glow),
    0 4px 10px -4px rgba(15, 26, 43, .18),
    inset 0 1px 0 rgba(255, 255, 255, .25);
  transition: transform var(--eip-fast), box-shadow var(--eip-fast);
  isolation: isolate;
}
header.elementor-1010 .elementor-widget-button .elementor-button .elementor-button-icon i,
header.elementor-1010 .elementor-widget-button .elementor-button .elementor-button-icon svg {
  font-size: 14px !important; width: 14px; height: 14px;
}

/* Sheen sweep */
header.elementor-1010 .elementor-widget-button .elementor-button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 35%, rgba(255, 255, 255, .35) 50%, transparent 65%);
  transform: translateX(-110%);
  transition: transform var(--eip-slow);
  z-index: -1;
}
header.elementor-1010 .elementor-widget-button .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow:
    0 22px 44px -16px var(--eip-blue-glow),
    0 8px 18px -6px rgba(15, 26, 43, .25),
    inset 0 1px 0 rgba(255, 255, 255, .35);
}
header.elementor-1010 .elementor-widget-button .elementor-button:hover::before {
  transform: translateX(110%);
}
header.elementor-1010 .elementor-widget-button .elementor-button:active {
  transform: translateY(0);
}

/* --------------------------------------------------------------------------
   5. MOBILE — burger button & drawer
   -------------------------------------------------------------------------- */
/* Force burger visible at <=1024px regardless of FlyingPress RUCSS purge */
@media (max-width: 1024px) {
  header.elementor-1010 .elementor-element-1ce6960 {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    z-index: 99 !important;
    position: relative !important;
  }
  header.elementor-1010 .elementor-element-1ce6960 .elementor-widget-container {
    width: auto !important;
    display: inline-flex !important;
  }
  header.elementor-1010 .elementor-menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--eip-ink) !important;
    color: #fff !important;
    width: 46px !important; height: 46px !important;
    min-width: 46px !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    box-shadow: var(--eip-shadow-sm);
    transition: background var(--eip-fast), transform var(--eip-fast), box-shadow var(--eip-fast);
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 100 !important;
    flex-shrink: 0 !important;
  }
  header.elementor-1010 .elementor-menu-toggle .elementor-menu-toggle__icon--open,
  header.elementor-1010 .elementor-menu-toggle .elementor-menu-toggle__icon--close {
    width: 22px !important; height: 22px !important;
    fill: currentColor !important;
  }
  header.elementor-1010 .elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close,
  header.elementor-1010 .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
    display: none !important;
  }
  header.elementor-1010 .elementor-menu-toggle svg {
    width: 22px; height: 22px;
  }
  header.elementor-1010 .elementor-menu-toggle:hover,
  header.elementor-1010 .elementor-menu-toggle.elementor-active {
    background: var(--eip-blue) !important;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px -6px var(--eip-blue-glow);
  }

  header.elementor-1010 .elementor-nav-menu--dropdown {
    background: rgba(255, 255, 255, .98) !important;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    border-radius: 0 0 18px 18px !important;
    box-shadow: var(--eip-shadow-lg) !important;
    margin-top: 12px !important;
    padding: 12px !important;
    border: 1px solid var(--eip-line) !important;
  }
  header.elementor-1010 .elementor-nav-menu--dropdown .elementor-item {
    padding: 14px 18px !important;
    border-radius: 10px !important;
    border: 0 !important;
  }
  header.elementor-1010 .elementor-nav-menu--dropdown .elementor-item:hover,
  header.elementor-1010 .elementor-nav-menu--dropdown .menu-item.current-menu-item > .elementor-item {
    background: linear-gradient(90deg, rgba(50, 120, 179, .1), rgba(50, 120, 179, 0)) !important;
    color: var(--eip-blue) !important;
  }
  header.elementor-1010 .elementor-nav-menu--dropdown .sub-menu {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 0 0 12px !important;
    margin: 4px 0 !important;
  }
}

/* --------------------------------------------------------------------------
   6. STICKY SCROLL SHRINK
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {
  body.eip-scrolled header.elementor-1010 .elementor-element-d6b1477.div-header {
    box-shadow: var(--eip-shadow-md);
    background: rgba(255, 255, 255, .96) !important;
  }
  body.eip-scrolled header.elementor-1010 .elementor-element-72091e9 {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    transition: padding var(--eip-med);
  }
  body.eip-scrolled header.elementor-1010 .elementor-widget-theme-site-logo img {
    max-height: 52px !important;
    transition: max-height var(--eip-med);
  }
}

/* --------------------------------------------------------------------------
   7. ENTRANCE ANIMATION
   -------------------------------------------------------------------------- */
@keyframes eipHeaderIn {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}
header.elementor-1010 .elementor-element-d6b1477.div-header > .e-con-inner > * {
  animation: eipHeaderIn .7s var(--eip-ease) backwards;
}
header.elementor-1010 .elementor-element-d6b1477.div-header > .e-con-inner > *:nth-child(1) { animation-delay: .05s; }
header.elementor-1010 .elementor-element-d6b1477.div-header > .e-con-inner > *:nth-child(2) { animation-delay: .15s; }
header.elementor-1010 .elementor-element-d6b1477.div-header > .e-con-inner > *:nth-child(3) { animation-delay: .25s; }

/* --------------------------------------------------------------------------
   8. ACCESSIBILITY — reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  header.elementor-1010 *,
  header.elementor-1010 *::before,
  header.elementor-1010 *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* Focus rings (keyboard nav) */
header.elementor-1010 a:focus-visible,
header.elementor-1010 button:focus-visible {
  outline: 2px solid var(--eip-blue) !important;
  outline-offset: 3px;
  border-radius: 6px;
}
