/* =========================
   DVVC Custom Overrides
   ========================= */

/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@600;700;900&display=swap');

/* Tokens */
:root{
  --dvvc-blue:#1c316a; --dvvc-blue-50:#e9f7fe;
  --dvvc-red:#e83535; --dvvc-red-700:#9c1919;
  --dvvc-text:#000; --dvvc-muted:#666;
  --font-head:"Lato",Arial,"Helvetica Neue",Helvetica,system-ui,-apple-system,sans-serif;
  --font-body:Arial,"Helvetica Neue",Helvetica,system-ui,-apple-system,sans-serif;
}

/* Base */
body,button,input,select,textarea{font-family:var(--font-body);color:var(--dvvc-text);font-size:18px;line-height:1.6;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);color:var(--dvvc-blue);font-weight:700;margin-bottom:.5em;}
a{color:var(--dvvc-blue);text-decoration:none;}
a:hover,a:focus{text-decoration:underline;}

/* Header banner */
.site-header{
  background-image:url('https://testforjeff.com/wp-content/uploads/2025/10/flag-header-revise1600px-.jpg') !important;
  background-size:cover !important;background-position:center;background-repeat:no-repeat;
  min-height:200px;height:250px;padding:30px 0;position:relative;z-index:1000;overflow:visible;
}
.site-header .title-area{float:none;width:100%;text-align:center;padding:0;}
.site-title{margin:0;}
.site-title a{
  display:inline-block;text-transform:uppercase;font-family:var(--font-head);
  font-weight:900;letter-spacing:.04em;font-size:clamp(28px,4vw,50px);
  color:#fff !important;text-shadow:0 3px 8px rgba(0,0,0,.55),0 0 1px rgba(0,0,0,.3);
}

/* Primary nav (Genesis) — DO NOT flex the desktop UL; it breaks dropdowns */
.nav-primary{ text-align:center; background:transparent; padding:8px 0; }
.genesis-nav-menu{ overflow:visible !important; } /* ensure dropdowns not clipped */
.site-header, .nav-primary{ overflow:visible; }

/* Top-level links */
.nav-primary .genesis-nav-menu > li > a{
  text-transform:uppercase; letter-spacing:1px; font-weight:700;
  font-size:clamp(12px,1.05vw,14px); padding:8px 10px; color:var(--dvvc-blue);
  position:relative;
}

/* Parent caret */
.genesis-nav-menu .menu-item-has-children > a::after{content:" ▾";font-weight:700;margin-left:4px;}

/* ---------- DESKTOP DROPDOWN (forced, bulletproof) ---------- */
@media (min-width:769px){
  /* Position each li as dropdown anchor */
  .nav-primary .genesis-nav-menu > li { position: relative; }

  /* Reset any theme off-screen positioning and show via display */
  .nav-primary .genesis-nav-menu .sub-menu{
    display:none; position:absolute; left:0 !important; top:100%;
    background:#fff; min-width:200px; z-index:9999; padding:10px 0;
    box-shadow:0 2px 8px rgba(0,0,0,.12);
    opacity:1 !important; /* override theme's opacity trick */
  }

  /* Show on hover OR when JS adds .hover */
  .nav-primary .genesis-nav-menu li:hover > .sub-menu,
  .nav-primary .genesis-nav-menu li:focus-within > .sub-menu,
  .nav-primary .genesis-nav-menu li.hover > .sub-menu{ display:block; }

  .genesis-nav-menu .sub-menu li{ display:block; white-space:nowrap; }
  .genesis-nav-menu .sub-menu li > a{ color:var(--dvvc-blue); font-weight:600; padding:10px 14px; }
  .genesis-nav-menu .sub-menu li > a:hover{ background:var(--dvvc-blue-50); text-decoration:none; }
}

/* Current menu indicator */
.nav-primary .genesis-nav-menu > .current-menu-item > a,
.nav-primary .genesis-nav-menu > .current-menu-ancestor > a{ position:relative; }
.nav-primary .genesis-nav-menu > .current-menu-item > a::after,
.nav-primary .genesis-nav-menu > .current-menu-ancestor > a::after{
  content:""; position:absolute; left:8px; right:8px; bottom:4px; height:2px; border-radius:2px; background:var(--dvvc-blue);
}

/* ---------- MOBILE / HAMBURGER ---------- */
.responsive-menu-icon{
  display:none; cursor:pointer; text-align:center;
  background:#e5554e; color:#fff; font-size:0; padding:10px; border:0; border-radius:3px; margin:8px auto 0;
}
.responsive-menu-icon .menu-text{ font-size:15px; letter-spacing:.08em; text-transform:uppercase; }
.responsive-menu-icon:before{ content:"\2630"; font-size:22px; line-height:1; }
.responsive-menu-icon.menu-open:before{ content:"\2715"; }

@media (max-width:768px){
  .responsive-menu-icon{ display:block; }
  /* Theme adds .responsive-menu rules; we show/hide with .dvvc-open */
  .genesis-nav-menu.responsive-menu{ display:none; }
  .genesis-nav-menu.responsive-menu.dvvc-open{ display:block; }

  .genesis-nav-menu.responsive-menu .menu-item{ display:block; margin:0; }
  .genesis-nav-menu.responsive-menu a{ padding:12px 16px; }

  .genesis-nav-menu.responsive-menu .sub-menu{
    display:none; position:relative; left:auto; opacity:1; border:none; box-shadow:none; width:100%;
  }
  .genesis-nav-menu.responsive-menu .menu-item-has-children.menu-open > .sub-menu{
    display:block !important; padding-left:12px;
  }
}

/* Buttons / panels */
.wp-block-button .wp-block-button__link,.button{font-family:var(--font-body);font-weight:600;padding:.5rem .9rem;background:var(--dvvc-blue);color:#fff;border-radius:4px;}
.redbutton a{background:var(--dvvc-red);color:#fff;font-family:var(--font-head);font-weight:700;padding:6px 10px;display:inline-block;margin:2px 20px;}
.redbutton a:hover{background:var(--dvvc-red-700);}
.dvvc-panel,.wp-block-group.is-style-dvvc-panel{background:var(--dvvc-blue-50);border:1px solid #cfeafa;border-radius:8px;padding:16px 20px;}

/* Directory bits */
.ch-grid a img,.ch-grid img{height:100px;width:100px;padding:12px;}
.ch-grid a .text-center{font-size:12px !important;color:#333 !important;width:200px;}

/* Title centering helper (optional) */
body:not(.has-custom-logo):not(.header-image) .title-area{float:none !important;width:100% !important;text-align:center !important;}
body:not(.has-custom-logo):not(.header-image) .site-title,
body:not(.has-custom-logo):not(.header-image) .site-title a{display:block !important;margin:0 auto !important;text-align:center !important;}

/* Responsive title size */
@media (max-width:768px){ .site-title a{ font-size:28px; } }
/* =========================================================
   GENESIS DESKTOP DROPDOWN — FORCE HOVER TO WORK
   (Do not use display:none on desktop; rely on left/opacity)
========================================================= */

@media (min-width: 769px) {

  /* Make sure nothing clips the dropdowns */
  .site-header,
  .site-header .wrap,
  .nav-primary,
  .nav-primary .wrap,
  .genesis-nav-menu { overflow: visible !important; }

  /* Reset submenu to Genesis off-screen pattern */
  .genesis-nav-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: -9999px;         /* hidden by default */
    opacity: 0;            /* hidden by default */
    background: #fff;
    min-width: 200px;
    padding: 10px 0;
    z-index: 9999;
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    /* IMPORTANT: remove any display:none from earlier rules */
    display: block !important;
  }

  /* On hover/focus/JS .hover, reveal */
  .genesis-nav-menu .menu-item:hover > .sub-menu,
  .genesis-nav-menu .menu-item:focus-within > .sub-menu,
  .genesis-nav-menu .menu-item.hover > .sub-menu {
    left: 0;               /* bring on-screen */
    opacity: 1;            /* show */
  }

  /* Keep parent positioned safely; don't force relative */
  .genesis-nav-menu .menu-item:hover { position: static !important; }

  /* Submenu link styling */
  .genesis-nav-menu .sub-menu li { white-space: nowrap; }
  .genesis-nav-menu .sub-menu li > a {
    color: #1c316a;
    font-weight: 600;
    padding: 10px 14px;
    text-decoration: none;
  }
  .genesis-nav-menu .sub-menu li > a:hover {
    background: #e9f7fe;
  }
}

/* =========================================================
   MOBILE (unchanged): hamburger/tap logic from dvvc-nav.js
   Keep display toggling only on mobile so it won’t affect desktop
========================================================= */
@media (max-width: 768px) {
  .genesis-nav-menu.responsive-menu { display: none; }
  .genesis-nav-menu.responsive-menu.dvvc-open { display: block; }
  .genesis-nav-menu.responsive-menu .sub-menu { display: none; position: relative; left: auto; opacity: 1; }
  .genesis-nav-menu.responsive-menu .menu-item-has-children.menu-open > .sub-menu { display: block !important; padding-left: 12px; }
}
/* =========================================================
   FINAL DESKTOP DROPDOWN OVERRIDES (GENESIS PATTERN, FORCED)
   Put this at the very bottom of custom.css
========================================================= */

@media (min-width: 769px) {
  /* Never clip dropdowns */
  .site-header,
  .site-header .wrap,
  .nav-primary,
  .nav-primary .wrap,
  .nav-primary .genesis-nav-menu {
    overflow: visible !important;
    position: relative;
    z-index: 1000;
  }

  /* Base hidden state (off-screen, but display:block so size is known) */
  .nav-primary .genesis-nav-menu .sub-menu {
    display: block !important;    /* ensure no display:none on desktop */
    position: absolute !important;
    top: 100% !important;
    left: -9999px !important;      /* hidden by default */
    opacity: 0 !important;         /* hidden by default */
    visibility: hidden !important; /* hidden by default */
    min-width: 200px;
    padding: 10px 0;
    background: #fff;
    z-index: 9999;
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
  }

  /* SHOW on hover / focus / JS-added .hover */
  .nav-primary .genesis-nav-menu li:hover > .sub-menu,
  .nav-primary .genesis-nav-menu li:focus-within > .sub-menu,
  .nav-primary .genesis-nav-menu li.hover > .sub-menu {
    left: 0 !important;            /* bring on-screen */
    opacity: 1 !important;         /* visible */
    visibility: visible !important;
  }

  /* Keep the parent stable; don't force relative on hover (prevents jumps) */
  .nav-primary .genesis-nav-menu li:hover,
  .nav-primary .genesis-nav-menu li:focus-within {
    position: static !important;
  }

  /* Submenu link styling */
  .nav-primary .genesis-nav-menu .sub-menu li { white-space: nowrap; }
  .nav-primary .genesis-nav-menu .sub-menu li > a {
    display: block;
    padding: 10px 14px;
    color: #1c316a;
    font-weight: 600;
    text-decoration: none;
  }
  .nav-primary .genesis-nav-menu .sub-menu li > a:hover {
    background: #e9f7fe;
  }
}

/* MOBILE remains unchanged; hamburger/tap logic stays as-is */
@media (max-width: 768px) {
  .genesis-nav-menu.responsive-menu { display: none; }
  .genesis-nav-menu.responsive-menu.dvvc-open { display: block; }
  .genesis-nav-menu.responsive-menu .sub-menu { display: none; position: relative; left: auto; opacity: 1; }
  .genesis-nav-menu.responsive-menu .menu-item-has-children.menu-open > .sub-menu { display: block !important; padding-left: 12px; }
}
