/* DNK Custom Header CSS - Auto-generated */

@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,700&family=Inter:wght@300;400;500;600&family=Space+Mono:wght@400;700&display=swap");

/* ====== XPRO HEADER WRAPPER - ALWAYS FIXED ====== */
.xpro-theme-builder-header-nav {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
}

/* ====== OFFER BANNER - fixed at top:0 ====== */
.dnk-offer-banner.e-con {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1002 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ====== MAIN NAV - fixed below banner ====== */
.dnk-header-nav.e-con {
  position: fixed !important;
  top: 36px !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1001 !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

/* ====== BODY PADDING - clear fixed header (36px banner + 66px nav = 102px) ====== */
body.elementor-page:not(.elementor-editor-active) .elementor-location-header + * {
  margin-top: 102px;
}

/* Also target Astra / Hello / GeneratePress themes */
body.elementor-page #content,
body.elementor-page #main,
body.elementor-page .site-content,
body.elementor-page .ast-container { padding-top: 0 !important; }

.hfe-header ~ .elementor-location-archive,
.hfe-header ~ #page { padding-top: 102px; }

/* ====== NAV UNDERLINE HOVER ANIMATION ====== */
.dnk-header-nav .xpro-nav-menu > li > a,
.dnk-header-nav .xpro-nav-menu li > a {
  position: relative !important;
  padding-bottom: 2px !important;
  transition: color 0.28s cubic-bezier(0.4,0,0.2,1) !important;
}

.dnk-header-nav .xpro-nav-menu > li > a::after,
.dnk-header-nav .xpro-nav-menu li > a::after {
  content: "" !important;
  position: absolute !important;
  bottom: -2px !important;
  left: 0 !important;
  width: 0 !important;
  height: 1px !important;
  background: #ffffff !important;
  transition: width 0.28s cubic-bezier(0.4,0,0.2,1) !important;
}

.dnk-header-nav .xpro-nav-menu > li > a:hover::after,
.dnk-header-nav .xpro-nav-menu li.current-menu-item > a::after {
  width: 100% !important;
}

.dnk-header-nav .xpro-nav-menu li.current-menu-item > a {
  color: #ffffff !important;
}

/* ====== TRUST STRIP MARQUEE ====== */
@keyframes dnk-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.dnk-track { animation: dnk-marquee 28s linear infinite; }

/* ====== BUTTON CTA - white-space nowrap ====== */
.dnk-header-nav .elementor-widget-button .elementor-button {
  white-space: nowrap;
  transition: background 0.28s cubic-bezier(0.4,0,0.2,1), color 0.28s !important;
}

/* ====== MOBILE ====== */
@media (max-width: 860px) {
  .dnk-header-nav .elementor-widget-xpro-horizontal-menu .xpro-nav-menu,
  .dnk-header-nav .elementor-widget-button { display: none; }
  .dnk-offer-banner.e-con { font-size: 10px; }
  .dnk-header-nav.e-con { top: 33px !important; }
}

/* ====== ASTRA THEME - BODY OFFSET FOR FIXED HEADER ====== */
/* Astra with Elementor Canvas template - first section needs top padding */

/* The XPRO header is 102px tall (36px banner + 66px nav) */
/* We add margin to the first container after the header */

body.ast-page-builder-template .ast-above-header-wrap,
body.ast-page-builder-template header.ast-site-header,
body.ast-page-builder-template .ast-below-header-wrap {
  display: none !important;
}

/* On elementor_canvas pages (our pages), Astra hides its own header */
body.ast-hfb-header:not(.ast-page-builder-template) header { display: none; }

/* Push all page content below the XPRO fixed header */
.ast-page-builder-template #ast-content-id,
body.elementor-page #page {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* First Elementor section on canvas pages - add top padding = 102px */
.elementor-location-archive > .elementor,
.elementor-location-single > .elementor {
  padding-top: 0;
}

/* For all our page content sections that come after the XPRO header injection */
.elementor-section-wrap > .elementor-section:first-child,
.elementor-section-wrap > .e-con:first-child {
  padding-top: 102px !important;
}

/* Exception: the hero section already has its own top padding baked in */
/* Override specifically for home page full-height hero */
#dnk-hero.e-con,
.e-con#dnk-hero {
  padding-top: 0 !important;
  min-height: calc(100vh - 0px) !important;
}

/* For shop and other pages first section */
#shop-hero.e-con:first-child,
.elementor-section-wrap > .e-con:first-child:not(#dnk-hero) {
  padding-top: 166px !important;
}
