/* Vigo Pintores / BigBullDesign - isolated floating navigation v1.1.0 */
.vpf-nav-shell,
.vpf-nav-shell *,
.vpf-nav-shell *::before,
.vpf-nav-shell *::after { box-sizing:border-box; }
.vpf-nav-shell {
  --vpf-width:1500px;
  --vpf-top:18px;
  --vpf-accent:#c40000;
  --vpf-bg:#ffffff;
  --vpf-ink:#171b22;
  --vpf-border:#e8eaf0;
  --vpf-radius:24px;
  --vpf-ease:220ms cubic-bezier(.22,.61,.36,1);
  position:fixed !important;
  inset-inline:0;
  top:var(--vpf-top);
  z-index:99980;
  padding-inline:clamp(12px,2.1vw,28px);
  pointer-events:none;
  font:500 15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
body.admin-bar .vpf-nav-shell { top:calc(var(--vpf-top) + 32px); }
.vpf-nav-shell button,
.vpf-nav-shell a { -webkit-tap-highlight-color:transparent; }
.vpf-nav-shell a { text-decoration:none !important; }
.vpf-nav-shell a:focus-visible,
.vpf-nav-shell button:focus-visible {
  outline:3px solid #d43535;
  outline-offset:3px;
}
.vpf-nav-shell .vpf-nav {
  width:100%;
  max-width:var(--vpf-width);
  margin-inline:auto;
  color:var(--vpf-ink);
  background:var(--vpf-bg);
  border:1px solid rgba(230,233,240,.85);
  border-radius:var(--vpf-radius);
  box-shadow:0 12px 38px rgba(9,19,36,.13),0 3px 9px rgba(9,19,36,.05);
  pointer-events:auto;
  position:relative;
  isolation:isolate;
  transition:box-shadow var(--vpf-ease),border-color var(--vpf-ease);
}
.vpf-nav-shell.is-scrolled .vpf-nav {
  box-shadow:0 14px 38px rgba(9,19,36,.17),0 4px 12px rgba(9,19,36,.08);
  border-color:rgba(230,233,240,.95);
}
.vpf-nav-shell .vpf-bar {
  display:flex;
  align-items:center;
  min-height:78px;
  gap:clamp(14px,1.7vw,30px);
  padding:11px clamp(18px,2vw,34px);
}
.vpf-nav-shell .vpf-brand {
  display:inline-flex;
  flex:0 1 220px;
  align-items:center;
  min-width:0;
  max-width:245px;
  min-height:44px;
  color:var(--vpf-ink) !important;
  text-decoration:none !important;
}
.vpf-nav-shell .vpf-brand-image {
  display:block;
  width:auto;
  max-width:100%;
  max-height:52px;
  object-fit:contain;
  object-position:left center;
}
.vpf-nav-shell .vpf-brand-name {
  display:block;
  font-size:clamp(1.07rem,1.35vw,1.36rem);
  font-weight:850;
  color:var(--vpf-ink);
  letter-spacing:-.055em;
  line-height:1.1;
  white-space:nowrap;
}
.vpf-nav-shell .vpf-brand-name::before {
  content:"";
  display:inline-block;
  width:11px;
  height:11px;
  background:var(--vpf-accent);
  border-radius:3px;
  margin-right:9px;
  transform:rotate(-15deg);
}
.vpf-nav-shell .vpf-nav-menu { margin-inline:auto; min-width:0; }
.vpf-nav-shell .vpf-menu,
.vpf-nav-shell .vpf-menu ul {
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.vpf-nav-shell .vpf-menu {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(3px,.45vw,12px);
}
.vpf-nav-shell .vpf-menu > li { position:relative; flex:none; margin:0 !important; padding:0 !important; }
.vpf-nav-shell .vpf-menu a,
.vpf-nav-shell .vpf-menu a:visited {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:13px clamp(8px,.9vw,15px);
  border-radius:12px;
  line-height:1.3;
  font-family:inherit;
  font-size:clamp(13px,.81vw,15px);
  font-weight:700;
  letter-spacing:-.005em;
  white-space:nowrap;
  color:var(--vpf-ink) !important;
  background:transparent;
  transition:background var(--vpf-ease),color var(--vpf-ease);
}
.vpf-nav-shell .vpf-menu a:hover,
.vpf-nav-shell .vpf-menu a:focus-visible,
.vpf-nav-shell .vpf-menu .current-menu-item > a,
.vpf-nav-shell .vpf-menu .current-menu-ancestor > a,
.vpf-nav-shell .vpf-menu .current_page_item > a {
  color:var(--vpf-accent) !important;
  background:color-mix(in srgb,var(--vpf-accent) 7%,white);
}
.vpf-nav-shell .vpf-menu li.menu-item-has-children > a::after {
  content:"";
  display:inline-block;
  flex:0 0 6px;
  width:7px;
  height:7px;
  border-right:1.8px solid currentColor;
  border-bottom:1.8px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  transition:transform var(--vpf-ease);
}
.vpf-nav-shell .vpf-menu li.menu-item-has-children:hover > a::after,
.vpf-nav-shell .vpf-menu li.menu-item-has-children:focus-within > a::after { transform:translateY(1px) rotate(225deg); }
.vpf-nav-shell .vpf-menu .sub-menu {
  display:block;
  position:absolute;
  z-index:10;
  top:calc(100% - 2px);
  left:0;
  width:max-content;
  min-width:225px;
  max-width:min(330px,85vw);
  padding:9px !important;
  background:var(--vpf-bg);
  border:1px solid var(--vpf-border);
  border-radius:15px;
  box-shadow:0 16px 36px rgba(10,15,30,.14);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity var(--vpf-ease),transform var(--vpf-ease),visibility var(--vpf-ease);
}
.vpf-nav-shell .vpf-menu li:hover > .sub-menu,
.vpf-nav-shell .vpf-menu li:focus-within > .sub-menu {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
.vpf-nav-shell .vpf-menu .sub-menu li { position:relative; margin:0 !important; }
.vpf-nav-shell .vpf-menu .sub-menu a { justify-content:space-between; padding:12px 13px; font-size:14px; white-space:normal; }
.vpf-nav-shell .vpf-menu .sub-menu .sub-menu { top:-9px; left:calc(100% + 8px); }
.vpf-nav-shell .vpf-actions { display:flex; align-items:center; gap:8px; flex:none; margin-left:auto; }
.vpf-nav-shell .vpf-cta,
.vpf-nav-shell .vpf-cta:visited,
.vpf-nav-shell .vpf-quick-cta,
.vpf-nav-shell .vpf-quick-cta:visited,
.vpf-nav-shell .vpf-mobile-cta,
.vpf-nav-shell .vpf-mobile-cta:visited {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:48px;
  padding:11px 17px;
  border-radius:999px;
  background:var(--vpf-accent);
  color:#fff !important;
  font-family:inherit;
  font-size:14px;
  font-weight:800;
  letter-spacing:-.01em;
  box-shadow:0 5px 15px color-mix(in srgb,var(--vpf-accent) 24%,transparent);
  white-space:nowrap;
  transition:filter var(--vpf-ease),transform var(--vpf-ease),box-shadow var(--vpf-ease);
}
.vpf-nav-shell .vpf-cta:hover,
.vpf-nav-shell .vpf-quick-cta:hover,
.vpf-nav-shell .vpf-mobile-cta:hover {
  filter:brightness(.88);
  transform:translateY(-2px);
  box-shadow:0 9px 20px color-mix(in srgb,var(--vpf-accent) 27%,transparent);
}
.vpf-nav-shell .vpf-cta svg,
.vpf-nav-shell .vpf-quick-cta svg,
.vpf-nav-shell .vpf-mobile-cta svg { display:block; width:18px; height:18px; flex:0 0 18px; }
.vpf-nav-shell .vpf-cta .vpf-arrow { width:16px; height:16px; flex-basis:16px; }
.vpf-nav-shell .vpf-menu-toggle,
.vpf-nav-shell .vpf-quick-cta,
.vpf-nav-shell .vpf-mobile-cta,
.vpf-nav-shell .vpf-submenu-toggle { display:none; }
.vpf-nav-shell .vpf-menu-toggle { cursor:pointer; }
/* Do not affect the WordPress admin-bar. Hide only the regular theme header when requested. */
body.vpf-hide-theme-header #masthead,
body.vpf-hide-theme-header > #page > header.site-header,
body.vpf-hide-theme-header #page > header.site-header,
body.vpf-hide-theme-header .wp-site-blocks > header.wp-block-template-part { display:none !important; }
/* Legacy safety spacer. Kept for sites opting out of overlay on interior pages. */
body.vpf-hide-theme-header .vpf-nav-spacer { height:calc(78px + var(--vpf-nav-offset, 34px)); }
body.vpf-overlay-home.vpf-hide-theme-header .vpf-nav-spacer { height:0; }
/* Interior pages can opt out of this spacer using body.vpf-overlay-inner (enabled by default). */
@media (max-width:1180px) {
  /* The floating menu overlays the home hero: keep its first line visible. */
  body.vpf-overlay-home .vp-page .vp-hero { padding-top:116px; }
  .vpf-nav-shell .vpf-bar { min-height:68px; padding:10px 15px 10px 19px; gap:12px; }
  .vpf-nav-shell .vpf-brand { flex:0 1 auto; max-width:220px; }
  .vpf-nav-shell .vpf-brand-image { max-height:43px; }
  .vpf-nav-shell .vpf-nav-menu {
    display:none;
    position:absolute;
    left:-1px;
    right:-1px;
    top:calc(100% + 10px);
    max-height:min(72dvh,680px);
    overflow:auto;
    overscroll-behavior:contain;
    margin:0;
    padding:14px;
    border:1px solid var(--vpf-border);
    border-radius:20px;
    background:var(--vpf-bg);
    box-shadow:0 17px 38px rgba(10,15,30,.17);
  }
  .vpf-nav-shell.is-open .vpf-nav-menu { display:block; }
  .vpf-nav-shell .vpf-menu { display:block; }
  .vpf-nav-shell .vpf-menu > li { width:100%; position:relative; border-bottom:1px solid var(--vpf-border); }
  .vpf-nav-shell .vpf-menu > li:last-child { border-bottom:0; }
  .vpf-nav-shell .vpf-menu a,
  .vpf-nav-shell .vpf-menu a:visited { min-height:48px; padding:13px 14px; font-size:15px; white-space:normal; }
  .vpf-nav-shell .vpf-menu .sub-menu {
    display:none;
    position:static;
    width:auto;
    min-width:0;
    max-width:100%;
    margin:0 0 7px 12px !important;
    padding:3px 0 5px 12px !important;
    border:0;
    border-left:2px solid color-mix(in srgb,var(--vpf-accent) 23%,white);
    border-radius:0;
    box-shadow:none;
    background:transparent;
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
  }
  .vpf-nav-shell .vpf-menu li:hover > .sub-menu,
  .vpf-nav-shell .vpf-menu li:focus-within > .sub-menu { transform:none; }
  .vpf-nav-shell .vpf-menu .sub-menu .sub-menu { margin:0 0 7px 12px !important; }
  .vpf-nav-shell .vpf-menu li.vpf-submenu-open > .sub-menu { display:block; }
  .vpf-nav-shell .vpf-menu li.menu-item-has-children > a { padding-right:60px; }
  .vpf-nav-shell .vpf-menu li.menu-item-has-children > a::after { display:none; }
  .vpf-nav-shell .vpf-submenu-toggle {
    position:absolute;
    right:5px;
    top:3px;
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    color:var(--vpf-ink);
    border:0;
    border-radius:10px;
    background:transparent;
    cursor:pointer;
  }
  .vpf-nav-shell .vpf-submenu-toggle::after {
    content:"";
    width:9px;
    height:9px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translateY(-3px) rotate(45deg);
    transition:transform var(--vpf-ease);
  }
  .vpf-nav-shell .vpf-submenu-toggle[aria-expanded="true"]::after { transform:translateY(2px) rotate(225deg); }
  .vpf-nav-shell .vpf-cta { display:none; }
  .vpf-nav-shell .vpf-quick-cta,
  .vpf-nav-shell .vpf-mobile-cta { display:inline-flex; }
  .vpf-nav-shell .vpf-quick-cta { min-height:43px; padding:9px 14px; font-size:13px; }
  .vpf-nav-shell .vpf-mobile-cta { width:100%; margin-top:12px; }
  .vpf-nav-shell .vpf-menu-toggle {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    flex:0 0 46px;
    width:46px;
    height:46px;
    padding:0;
    border:1px solid var(--vpf-border);
    border-radius:14px;
    background:color-mix(in srgb,var(--vpf-ink) 3%,white);
  }
  .vpf-nav-shell .vpf-menu-toggle span {
    width:19px;
    height:2px;
    background:var(--vpf-ink);
    border-radius:2px;
    transition:transform var(--vpf-ease),opacity var(--vpf-ease);
  }
  .vpf-nav-shell.is-open .vpf-menu-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .vpf-nav-shell.is-open .vpf-menu-toggle span:nth-child(2) { opacity:0; }
  .vpf-nav-shell.is-open .vpf-menu-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  body.vpf-hide-theme-header .vpf-nav-spacer { height:calc(68px + var(--vpf-nav-offset, 34px)); }
  body.vpf-overlay-home.vpf-hide-theme-header .vpf-nav-spacer { height:0; }
}
@media (max-width:600px) {
  .vpf-nav-shell { padding-inline:12px; --vpf-top:12px; }
  .vpf-nav-shell .vpf-nav { border-radius:19px; }
  .vpf-nav-shell .vpf-bar { min-height:62px; padding:8px 10px 8px 15px; }
  .vpf-nav-shell .vpf-brand-image { max-height:39px; }
  .vpf-nav-shell .vpf-brand-name { font-size:clamp(16px,4.5vw,20px); }
  .vpf-nav-shell .vpf-brand-name::before { width:9px; height:9px; margin-right:5px; }
  .vpf-nav-shell .vpf-quick-cta { min-height:39px; padding:9px 10px; font-size:12px; gap:5px; }
  .vpf-nav-shell .vpf-quick-cta svg { width:15px; height:15px; flex-basis:15px; }
  .vpf-nav-shell .vpf-menu-toggle { width:42px; height:42px; flex-basis:42px; border-radius:12px; }
  .vpf-nav-shell .vpf-nav-menu { border-radius:17px; padding:10px; top:calc(100% + 8px); }
  body.vpf-hide-theme-header .vpf-nav-spacer { height:calc(62px + var(--vpf-nav-offset, 24px)); }
  body.vpf-overlay-home.vpf-hide-theme-header .vpf-nav-spacer { height:0; }
}
@media (max-width:360px) {
  .vpf-nav-shell .vpf-brand-name { font-size:15px; }
  .vpf-nav-shell .vpf-quick-cta { font-size:0; width:40px; flex:0 0 40px; padding:0; }
  .vpf-nav-shell .vpf-quick-cta svg { width:20px; height:20px; flex-basis:20px; }
}
@media (max-width:782px) {
  body.admin-bar .vpf-nav-shell { top:calc(var(--vpf-top) + 46px); }
}
@media (prefers-reduced-motion:reduce) {
  .vpf-nav-shell *,
  .vpf-nav-shell *::before,
  .vpf-nav-shell *::after { transition-duration:0.01ms !important; scroll-behavior:auto !important; animation:none !important; }
}

/* v1.1.0: eliminate the artificial blank strip on internal pages.
   This beats the desktop/tablet/mobile legacy height rules without modifying Astra.
   Home remains controlled independently by vpf-overlay-home. */
body.vpf-nav-active.vpf-overlay-inner .vpf-nav-spacer {
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
}
