/* ============================================================
   SITE HEADER + FOOTER — shared sitewide styles
   ============================================================
   Enqueued once via functions.php (wp_enqueue_style) so every
   template gets the same header/nav/footer styling automatically.
   Do NOT re-paste these rules into a template's own <style> block —
   that duplication is what let the .has-sub/.sub-menu dropdown
   rules go missing on the author pages. Edit only here.

   Depends on the :root custom properties already defined in each
   template (--ink, --paper, --line, --verdict, --font-display,
   --font-mono, --radius, --max, etc.) — those tokens stay local to
   each template since they include page-specific colors too.
   ============================================================ */

/* header */
.site-header{ position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:1px solid var(--line); }
.header-row{ display:flex; align-items:center; justify-content:space-between; height:64px; }
.logo{ font-family:var(--font-display); font-weight:700; font-size:22px; letter-spacing:-0.02em; display:flex; align-items:center; gap:8px; }
.logo .dot{ width:10px; height:10px; background:var(--verdict); border:2px solid var(--ink); border-radius:50%; }
.primary-nav{ display:none; }
.primary-nav ul{ display:flex; gap:28px; align-items:center; list-style:none; }
.primary-nav a{ font-family:var(--font-mono); font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:8px 0; border-bottom:2px solid transparent; }
.primary-nav a:hover{ border-color:var(--verdict); }
.has-sub{ position:relative; }
.sub-menu{ position:absolute; top:100%; left:0; background:var(--paper); border:1px solid var(--line); border-radius:10px; min-width:190px; padding:8px; box-shadow:0 12px 28px rgba(16,21,31,.12); opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s, transform .15s; list-style:none; }
.has-sub:hover .sub-menu, .has-sub:focus-within .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.sub-menu a{ display:block; padding:8px 10px; border-radius:6px; text-transform:none; letter-spacing:0; font-weight:500; }
.sub-menu a:hover{ background:var(--paper-2); }
.header-actions{ display:flex; align-items:center; gap:10px; }
.icon-btn{ width:40px; height:40px; display:flex; align-items:center; justify-content:center; border:1.5px solid var(--ink); border-radius:10px; background:none; cursor:pointer; }
.icon-btn svg{ width:18px; height:18px; }
.nav-toggle{ display:flex; }
.mobile-nav{ display:none; border-top:1px solid var(--line); padding:14px 0 20px; }
.mobile-nav.open{ display:block; }
.mobile-nav ul{ display:flex; flex-direction:column; gap:2px; list-style:none; }
.mobile-nav > .wrap > ul > li > a{ display:flex; justify-content:space-between; align-items:center; padding:14px 4px; font-family:var(--font-display); font-weight:700; font-size:18px; border-bottom:1px solid var(--line); }
.mobile-nav li.menu-item-has-children > a{ position:relative; }
.mobile-nav li.menu-item-has-children > a::after{ content:"\25BE"; font-size:13px; margin-left:auto; }
.mobile-nav ul.sub-menu{ display:none; padding-left:14px; list-style:none; }
.mobile-nav ul.sub-menu.open{ display:block; }
.mobile-nav ul.sub-menu a{ font-family:var(--font-body); font-weight:500; font-size:15px; padding:10px 4px; border-bottom:1px solid var(--line); display:block; }
.mobile-search{ margin-top:14px; display:flex; gap:8px; border:1.5px solid var(--ink); border-radius:10px; padding:10px 12px; }
.mobile-search input{ border:none; flex:1; font-size:15px; font-family:inherit; background:none; }
.mobile-search input:focus{ outline:none; }
@media (min-width:900px){ .primary-nav{ display:block; } .nav-toggle{ display:none; } .mobile-nav{ display:none !important; } }

/* footer */
.site-footer{ background:var(--ink); color:#C7CCDA; padding:52px 0 26px; margin-top:20px; }
.footer-grid{ display:grid; gap:34px; grid-template-columns:1fr; }
.footer-brand .logo{ color:var(--paper); }
.footer-brand p{ margin-top:14px; font-size:14px; color:#9AA1B4; max-width:32ch; }
.footer-social{ display:flex; gap:10px; margin-top:18px; }
.footer-social a{ width:36px; height:36px; border:1px solid #39415A; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.footer-social svg{ width:16px; height:16px; }
.footer-col h5{ font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#7C8298; margin-bottom:14px; }
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col a{ font-size:14px; color:#C7CCDA; }
.footer-col a:hover{ color:var(--verdict); }
.footer-disclosure{ font-size:12.5px; color:#767C8F; line-height:1.6; }
.footer-bottom{ margin-top:40px; padding-top:20px; border-top:1px solid #262E42; font-size:12.5px; color:#767C8F; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }
@media (min-width:640px){ .footer-grid{ grid-template-columns:1.3fr 1fr 1fr; } }
@media (min-width:980px){ .footer-grid{ grid-template-columns:1.5fr 1fr 1fr 1.3fr; } }
