/*
 Theme Name: Astra Child (No Credit)
 Template: astra
 Version: 1.0.1
*/

/* ===== 0) Shared tokens (LIGHT defaults) ===== */
:root { color-scheme: light; }
:root{
  --gp-text:#1e293b; --gp-hover-bg:#f1f5f9; --gp-active-bg:#e2e8f0;
  --gp-accent:#2563eb; --gp-sub-bg:#ffffff; --gp-sub-border:#e5e7eb;
  --gp-shadow:0 8px 20px rgba(0,0,0,.06);

  --igc-accent:#3b82f6; --igc-accent-2:#60a5fa;

  --oc-bg:#ffffff; --oc-fg:#1f2937; --oc-border:#e5e7eb;
  --oc-hover:#f1f5f9; --oc-muted:#64748b; --oc-overlay:rgba(0,0,0,.45);

  /* New: focus ring + underline */
  --ring:#3b82f6; --ring-a:0.22;
  --underline:#3b82f6;

  /* New: subtle transition timings */
  --t-fast: .16s; --t-med: .22s;
}

/* ===== 1) ASTRA — BASE / LIGHT ===== */

/* Global links */
a{ text-decoration:none !important; }
a:hover{ text-decoration:underline; }

/* Header bar + desktop menu */
.site-header, .main-header-bar{
  background:#fff; border-bottom:1px solid var(--gp-sub-border);
}

/* Make top-level menu resilient to long labels */
.ast-desktop .main-header-menu{ white-space:nowrap; }
.ast-desktop .main-header-menu > li{ position:relative; }
.ast-desktop .main-header-menu > li > a{
  color:var(--gp-text); font-weight:600; padding:14px 18px; line-height:1.25;
  border-radius:8px; transition:background var(--t-fast), color var(--t-fast);
  text-decoration:none; display:inline-flex; align-items:center; gap:8px;
}

/* Active/hover background */
.ast-desktop .main-header-menu > li > a:hover,
.ast-desktop .main-header-menu > li:hover > a{
  background:var(--gp-hover-bg); color:var(--gp-text);
}
.ast-desktop .main-header-menu > li.current-menu-item > a,
.ast-desktop .main-header-menu > li.current-menu-ancestor > a,
.ast-desktop .main-header-menu > li.current_page_item > a{
  background:var(--gp-active-bg); color:var(--gp-text);
}

/* NEW: Animated underline for top-level items */
.ast-desktop .main-header-menu > li > a::after{
  content:""; position:absolute; left:12px; right:12px; bottom:8px;
  height:2px; background:var(--underline); border-radius:2px;
  transform:scaleX(0); transform-origin:left center; transition:transform var(--t-med) ease;
  opacity:.85;
}
.ast-desktop .main-header-menu > li:hover > a::after,
.ast-desktop .main-header-menu > li:focus-within > a::after,
.ast-desktop .main-header-menu > li.current-menu-item > a::after,
.ast-desktop .main-header-menu > li.current-menu-ancestor > a::after{
  transform:scaleX(1);
}

/* NEW: Keyboard focus ring */
.ast-desktop .main-header-menu > li > a:focus-visible,
.ast-desktop .main-header-menu .sub-menu a:focus-visible{
  outline:0;
  box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) calc(var(--ring-a)*100%), transparent);
}

/* Submenus */
.ast-desktop .main-header-menu .sub-menu{
  background:var(--gp-sub-bg); border:1px solid var(--gp-sub-border);
  box-shadow:var(--gp-shadow); padding:6px; border-radius:10px;
  min-width:220px;
  transform:translateY(4px); opacity:0; visibility:hidden;
  transition:opacity var(--t-med), transform var(--t-med), visibility var(--t-med);
}
.ast-desktop .main-header-menu li:hover > .sub-menu,
.ast-desktop .main-header-menu li:focus-within > .sub-menu{
  transform:translateY(0); opacity:1; visibility:visible;
}
.ast-desktop .main-header-menu .sub-menu li{ position:relative; }
.ast-desktop .main-header-menu .sub-menu a{
  color:var(--gp-text); padding:10px 12px; border-radius:8px; text-decoration:none;
  display:flex; align-items:center; gap:10px; line-height:1.25;
}
.ast-desktop .main-header-menu .sub-menu li + li a{
  border-top:1px dashed var(--gp-sub-border);
}
.ast-desktop .main-header-menu .sub-menu li > a:hover{
  background:var(--gp-hover-bg); color:var(--gp-text);
}

/* Arrow icon polish */
.main-header-menu .menu-item-has-children > a .ast-icon.icon-arrow{
  margin-left:6px; transform:translateY(1px); opacity:.7; transition:transform var(--t-med), opacity var(--t-fast);
}
.main-header-menu .menu-item-has-children:where(:hover,:focus-within) > a .ast-icon.icon-arrow{
  transform:translateY(1px) rotate(180deg); opacity:1;
}

.main-header-menu a, .main-header-menu a:hover{ text-decoration:none; }

/* ===== 2) Mobile header breakpoint ===== */
.ast-header-break-point .main-header-menu-toggle{
  border:1px solid var(--gp-sub-border); border-radius:10px; padding:9px 12px;
  position:relative; z-index:100030; color:var(--oc-fg); background:transparent;
  transition:background var(--t-fast), color var(--t-fast);
}
.ast-header-break-point .main-header-menu-toggle:focus-visible{
  outline:0; box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) calc(var(--ring-a)*100%), transparent);
}

.ast-header-break-point .main-header-menu{
  background:#fff; border:1px solid var(--gp-sub-border); border-radius:12px; padding:6px;
}
.ast-header-break-point .main-header-menu > li > a{
  padding:13px 14px; border-radius:8px; color:var(--gp-text); font-weight:600;
}
.ast-header-break-point .main-header-menu > li > a:hover{ background:var(--gp-hover-bg); }
.ast-header-break-point .main-header-menu .sub-menu a{
  padding:10px 12px; border-radius:8px;
}

/* ===== 3) Off-canvas overlay + drawer ===== */
.ast-mobile-popup-overlay{
  position:fixed; inset:0; background:var(--oc-overlay); opacity:0; visibility:hidden;
  pointer-events:none; z-index:100015; transition:opacity var(--t-med), visibility var(--t-med);
}
.ast-mobile-popup-overlay.active,
.ast-mobile-popup-active .ast-mobile-popup-overlay{
  opacity:1; visibility:visible; pointer-events:auto;
}
.ast-mobile-popup-drawer{
  position:fixed; top:0; right:0; width:340px; max-width:92vw; height:100dvh;
  padding-bottom:env(safe-area-inset-bottom);
  background:var(--oc-bg); color:var(--oc-fg); overflow:auto; -webkit-overflow-scrolling:touch;
  transform:translateX(100%); z-index:100020; pointer-events:none; transition:transform .28s ease;
  border-left:1px solid var(--oc-border); box-shadow:0 20px 40px rgba(2,6,23,.18);
  border-top-left-radius:14px; border-bottom-left-radius:14px; overscroll-behavior:contain;
}
.ast-mobile-popup-drawer[data-drawer="left"]{ left:0; right:auto; transform:translateX(-100%); }
.ast-mobile-popup-drawer.active,
.ast-mobile-popup-active .ast-mobile-popup-drawer{
  transform:translateX(0); pointer-events:auto;
}
@media (max-width:380px){ .ast-mobile-popup-drawer{ border-radius:0; } }

.ast-mobile-popup-drawer .main-header-menu{
  background:transparent; border:0; padding:10px 8px;
}
.ast-mobile-popup-drawer .main-header-menu > li{
  margin:2px 0; border-bottom:1px solid var(--oc-border);
}
.ast-mobile-popup-drawer .main-header-menu > li:last-child{ border-bottom:0; }
.ast-mobile-popup-drawer .main-header-menu > li > a{
  display:flex; align-items:center; gap:10px; padding:14px 12px; border-radius:10px;
  color:var(--oc-fg); font-weight:700; line-height:1.25; text-decoration:none;
  transition:background var(--t-fast), color var(--t-fast), transform .06s;
}
.ast-mobile-popup-drawer .main-header-menu > li > a:hover{ background:var(--oc-hover); }
.ast-mobile-popup-drawer .menu-item-has-children > a .ast-icon.icon-arrow{
  margin-left:auto; opacity:.8; transform:translateY(1px); transition:transform var(--t-med), opacity var(--t-fast);
}
.ast-mobile-popup-drawer .menu-item-has-children.ast-submenu-expanded > a .ast-icon.icon-arrow{
  transform:translateY(1px) rotate(180deg); opacity:1;
}

.ast-mobile-popup-drawer .main-header-menu .sub-menu{
  background:color-mix(in oklab, var(--oc-bg) 94%, transparent);
  border:1px solid var(--oc-border); border-radius:10px; margin:6px 8px 10px; padding:6px;
  overflow:hidden; clip-path:inset(0 round 10px);
  opacity:0; transform:translateY(-2px); transition:transform var(--t-med), opacity var(--t-med);
}
.ast-mobile-popup-drawer .menu-item-has-children > .sub-menu{ opacity:0; }
.ast-mobile-popup-drawer .menu-item-has-children.ast-submenu-expanded > .sub-menu{
  opacity:1; transform:translateY(0);
}
.ast-mobile-popup-drawer .main-header-menu .sub-menu a{
  padding:11px 12px; border-radius:8px; color:var(--oc-fg); font-weight:600;
}
.ast-mobile-popup-drawer .main-header-menu .sub-menu li + li a{
  border-top:1px dashed var(--oc-border);
}

/* Keep header above content */
.site-header, .main-header-bar, .ast-mobile-header-wrap{ position:relative; z-index:100025; }

/* Icons inherit text color */
.ast-header-break-point .main-header-menu-toggle .ast-mobile-svg,
.ast-header-break-point .main-header-menu-toggle .ast-mobile-svg *{
  fill:currentColor !important; stroke:currentColor !important;
}
.ast-mobile-popup-drawer .ast-search-menu-icon,
.ast-mobile-popup-drawer .ast-close-svg{ color:var(--oc-fg); }
.ast-mobile-popup-drawer .ast-search-menu-icon:hover{ background:var(--oc-hover); border-radius:8px; }

/* ===== 4) Extras (unchanged content polish) ===== */

/* Page title gradient (Astra title) */
h1.entry-title[itemprop="headline"]{
  margin:0 0 14px !important;
  font-family:'Inter', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-weight:900 !important; line-height:1.15 !important; letter-spacing:-0.02em !important;
  font-size:clamp(28px, 3.2vw, 40px) !important;
  background:linear-gradient(90deg, var(--igc-accent), var(--igc-accent-2)) !important;
  -webkit-background-clip:text !important; background-clip:text !important; color:transparent !important;
}
@media (max-width:768px){ h1.entry-title[itemprop="headline"]{ margin-top:20px !important; } }

/* Content spacing */
.home .entry-content{ padding-bottom:20px; }
@media (max-width:544px){ .home .entry-content{ padding-bottom:16px; } }
.entry-content > :last-child{ margin-bottom:28px; }

/* Light-mode content background */
@media (prefers-color-scheme: light){
  .site-content, .site-content .content-area, .site-content .ast-container{
    background-color:#ffffff !important;
  }
}

/* Footer legal list (pipes between items) */
.ihc-footer-legal .ihc-legal-list > li { margin: 0; padding: 0; }
.ihc-footer-legal .ihc-legal-list > li + li::before {
  content: "|";
  opacity: .6;
  margin: 0 10px;
}
.ihc-footer-legal .ihc-legal-list a {
  font-size: 13px;
  text-decoration: none;
  opacity: .95;
}
.ihc-footer-legal .ihc-legal-list a:hover { text-decoration: underline; }

/* Remove the bluish site background so it doesn't show behind the footer */
html, body, .site { background-color: #ffffff !important; }

/* Keep the footer itself unpainted (no lines/stripes) */
footer#colophon,
footer#colophon * {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* ===== 5) Motion preferences ===== */
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
