/* 03-header — Header (2 rows + announcement bar) and slide-in mobile menu.
   Loaded on every page in file-name order (see inc/core/assets.php).
   Markup: template-parts/header/main.php + template-parts/header/mobile-menu.php */

/* footer logo link (template-parts/footer/site-footer.php) */
.logo{display:flex; align-items:center; gap:12px; flex-shrink:0;}

/* ---------- slide-in mobile menu ---------- */
.mobile-menu-overlay{position:fixed; inset:0; background:rgba(4,9,26,.55); z-index:190; opacity:0; visibility:hidden; transition:opacity var(--med), visibility var(--med);}
.mobile-menu-overlay.open{opacity:1; visibility:visible;}
.mobile-menu{position:fixed; top:0; right:-340px; width:320px; max-width:86vw; height:100%; background:var(--surface); z-index:200; box-shadow:-16px 0 48px rgba(14,26,56,.28); transition:right var(--med) var(--ease-out); display:flex; flex-direction:column;}
.mobile-menu.open{right:0;}
.mobile-menu-head{display:flex; align-items:center; justify-content:space-between; padding:18px 20px; background:linear-gradient(135deg,var(--blue),var(--blue-deep)); color:#fff; font-weight:700; font-size:15px;}
.mobile-menu-close{background:rgba(255,255,255,.16); border:none; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.mobile-menu-close svg{width:14px; height:14px; stroke:#fff; fill:none; stroke-width:2.2;}
.mobile-menu-list{list-style:none; margin:0; padding:8px 0; overflow-y:auto; flex:1;}
.mobile-menu-list a{display:flex; align-items:center; gap:11px; padding:13px 20px; font-size:13.5px; font-weight:500; color:var(--text); border-bottom:1px solid var(--line);}
.mobile-menu-list a svg{width:16px; height:16px; stroke:var(--blue-deep); fill:none; stroke-width:1.7; flex-shrink:0;}
.mobile-menu-cta{padding:16px 20px; border-top:1px solid var(--line);}

/* =====================================================================
   HEADER v2 — row 1 (logo · search · account), row 2 (navy nav), announcement bar
   Markup: template-parts/header/main.php
   ===================================================================== */
/* --header-h = height of the sticky white row (used by sticky filter bars on other pages) */
:root{--header-h:93px;--logo-green:#2f9e44;--logo-green-2:#3fb757;--logo-navy:#17348a;}
@media (max-width:1280px){:root{--header-h:85px;}}
@media (max-width:760px){:root{--header-h:125px;}}
.th-wrap{max-width:1440px;margin:0 auto;padding:0 24px;}
.th-main{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .2s;}
.th-main.stuck{box-shadow:0 8px 24px rgba(10,20,45,.10);}
.th-row1{display:flex;align-items:center;gap:28px;height:92px;}
.th-logo{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.th-logo img{height:64px;width:auto;max-width:240px;object-fit:contain;display:block;}
.th-word{font-weight:700;color:var(--text);font-size:18px;line-height:1.1;}
.th-word em{font-style:normal;color:var(--teal);}
.th-word small{display:block;font-size:10px;font-weight:600;color:var(--text-mut);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;}

/* search pill */
.th-search{position:relative;flex:1;min-width:0;max-width:1100px;display:flex;align-items:center;height:62px;border:1px solid #cfd5e2;border-radius:16px;background:#fff;padding:5px 6px 5px 0;transition:border-color .2s,box-shadow .2s;}
.th-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-pale);}
.th-search .scope{height:100%;background:transparent;border-right:1px solid var(--line);padding:0 18px 0 22px;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:16px 0 0 16px;}
.th-search .scope > svg{width:16px;height:16px;stroke:var(--text-mut);}
.th-search .scope-menu{top:calc(100% + 12px);}
.th-search input{flex:1;min-width:0;height:100%;border:none;outline:none;background:transparent;padding:0 18px;font:inherit;font-size:16px;color:var(--text);}
.th-search input::placeholder{color:#8a93a8;}
.th-search .search-tool{background:transparent;border:none;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:12px;cursor:pointer;color:var(--blue);flex-shrink:0;}
.th-search .search-tool svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;}
.th-search .search-tool:hover{background:var(--blue-pale);}
.th-search .search-tool.listening{color:#fff;background:#e0393e;}
.th-search .go{width:74px;height:52px;margin-left:6px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(160deg,var(--blue),var(--blue-deep));color:#fff;flex-shrink:0;box-shadow:0 6px 16px rgba(62,111,242,.30);transition:filter .2s;}
.th-search .go:hover{filter:brightness(1.07);}
.th-search .go svg{width:24px;height:24px;stroke:#fff;fill:none;stroke-width:2.4;}
.th-search .search-suggest{top:calc(100% + 10px);}

/* account button */
.th-acc{position:relative;flex-shrink:0;margin-left:auto;}
.th-acc-btn{display:flex;align-items:center;gap:12px;height:58px;padding:0 18px 0 10px;border:1px solid var(--line-2);background:var(--blue-pale);border-radius:14px;cursor:pointer;font:inherit;font-size:16px;font-weight:700;color:var(--ink);white-space:nowrap;}
.th-acc-ico{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 0 var(--line);}
.th-acc-ico svg{width:22px;height:22px;color:var(--ink);}
.th-chev{width:16px;height:16px;flex-shrink:0;transition:transform .2s;}
.th-item.open .th-chev,.th-acc.open .th-chev{transform:rotate(180deg);}
.th-burger{display:none;width:44px;height:44px;border:1px solid var(--line-2);border-radius:12px;background:#fff;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.th-burger svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:2;}

/* dropdown panels (shared) */
.th-drop{position:absolute;top:calc(100% + 8px);left:0;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px rgba(10,20,45,.18);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:80;}
.th-drop::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px;}
.th-drop-right{left:auto;right:0;}
.th-item.open > .th-drop,.th-acc.open > .th-drop{opacity:1;visibility:visible;transform:none;}
@media (hover:hover) and (pointer:fine){
  .th-item:hover > .th-drop,.th-acc:hover > .th-drop{opacity:1;visibility:visible;transform:none;}
  .th-item:hover .th-chev,.th-acc:hover .th-chev{transform:rotate(180deg);}
}
.th-drop a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;font-size:14px;font-weight:500;color:var(--text-soft);}
.th-drop a:hover{background:var(--cream-2);color:var(--ink);}
.th-drop a svg{width:17px;height:17px;stroke:var(--blue-deep);fill:none;stroke-width:1.8;flex-shrink:0;}
.th-drop-head{font-size:13px;color:var(--text-mut);padding:8px 12px 4px;}
.th-drop-btns{display:flex;gap:8px;padding:6px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;}
.th-drop-btns a{flex:1;justify-content:center;font-weight:700;padding:10px 0;}
.th-drop .th-btn-blue{background:var(--blue);color:#fff;}
.th-drop .th-btn-blue:hover{background:var(--blue-deep);color:#fff;}
.th-drop .th-btn-line{border:1px solid var(--blue);color:var(--blue);}

/* row 2 — navy nav */
.th-nav{background:var(--ink);position:relative;z-index:55;}
.th-row2{display:flex;align-items:center;gap:20px;height:78px;}
.th-item{position:relative;}
.th-cats-btn{display:flex;align-items:center;gap:14px;height:60px;padding:0 26px;border:none;border-radius:10px;background:linear-gradient(160deg,var(--logo-green-2),var(--logo-green));color:#fff;box-shadow:0 6px 18px rgba(47,158,68,.35);font:inherit;font-size:18px;font-weight:700;cursor:pointer;white-space:nowrap;}
.th-cats-btn > svg:first-child{width:26px;height:26px;}
.th-cats-btn:hover{filter:brightness(1.07);}
/* Browse Categories: simple list, each icon in its category colour (--cc set in header/main.php) */
.th-drop-cats{min-width:330px;max-height:min(72vh,620px);overflow-y:auto;padding:8px;}
.th-drop .thc{gap:14px;padding:8px 10px;font-size:15px;font-weight:600;color:var(--ink);}
.thc-ico{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#f2f5fb;background:color-mix(in srgb,var(--cc) 9%,#fff);border:1px solid #e3e9f4;border-color:color-mix(in srgb,var(--cc) 20%,#fff);transition:background .15s;}
.th-drop .thc-ico svg{width:21px;height:21px;stroke:var(--cc);stroke-width:1.9;}
.th-drop .thc:hover{background:#f5f8fd;color:var(--ink);}
.th-drop .thc:hover .thc-ico{background:var(--cc);border-color:var(--cc);}
.th-drop .thc:hover .thc-ico svg{stroke:#fff;}
.th-drop-cats .th-drop-all{justify-content:center;color:var(--blue);font-weight:700;border-top:1px solid var(--line);border-radius:0;margin-top:6px;padding:12px;}
.th-links{display:flex;align-items:center;gap:6px;margin-left:24px;}
.th-link{display:flex;align-items:center;gap:8px;height:48px;padding:0 16px;background:none;border:none;border-radius:8px;color:#fff;font:inherit;font-size:17px;font-weight:600;cursor:pointer;white-space:nowrap;}
.th-link:hover,.th-item.open > .th-link{background:rgba(255,255,255,.08);}
.th-ctas{display:flex;align-items:center;gap:16px;margin-left:auto;}
.th-ctas a{display:flex;align-items:center;gap:12px;height:56px;padding:0 24px;border-radius:8px;font-size:17px;font-weight:600;white-space:nowrap;}
.th-ctas svg{width:22px;height:22px;flex-shrink:0;}
.th-cta-line{border:1.5px solid var(--logo-green);color:#fff;}
.th-cta-line svg{color:var(--logo-green-2);}
.th-cta-line:hover{background:rgba(47,158,68,.16);}
.th-cta-white{background:#fff;color:var(--logo-navy);}
.th-cta-white svg{color:var(--logo-green);}
.th-cta-white:hover{background:#eef6f0;}

/* announcement bar (top of the page, printed only when it has text) */
.th-announce{background:var(--blue-pale);color:var(--ink);border-bottom:1px solid var(--line);}
.th-announce .th-wrap{min-height:40px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;font-weight:600;padding-top:6px;padding-bottom:6px;}

/* safety: hide the old top strip if an old header.php still prints it */
.topstrip{display:none;}

/* ---------- laptop ---------- */
@media (max-width:1280px){
  .th-row1{gap:18px;height:84px;}
  .th-logo img{height:54px;}
  .th-search{height:56px;}
  .th-search .scope{font-size:14px;padding:0 14px 0 16px;}
  .th-search .go{width:64px;height:46px;}
  .th-acc-btn{height:52px;font-size:15px;}
  .th-row2{height:66px;gap:12px;}
  .th-cats-btn{height:50px;font-size:16px;padding:0 18px;}
  .th-links{margin-left:8px;gap:0;}
  .th-link{font-size:15px;padding:0 12px;}
  .th-ctas{gap:10px;}
  .th-ctas a{height:48px;font-size:15px;padding:0 16px;gap:9px;}
}
/* ---------- tablet ---------- */
@media (max-width:1024px){
  .th-links{display:none;}
  .th-burger{display:flex;}
  .th-acc{margin-left:0;}
  .th-search .scope{display:none;}
  .th-search input{padding-left:18px;}
}
@media (max-width:900px) and (min-width:761px){
  .th-acc-txt,.th-acc-btn .th-chev{display:none;}
  .th-acc-btn{padding:0 8px;}
}
/* ---------- mobile ---------- */
@media (max-width:760px){
  .th-wrap{padding:0 12px;}
  .th-row1{flex-wrap:wrap;height:auto;gap:10px;padding:10px 12px;}
  .th-logo img{height:42px;max-width:160px;}
  .th-acc{margin-left:auto;}
  .th-acc-btn{height:44px;padding:0 8px;gap:6px;border-radius:12px;}
  .th-acc-ico{width:30px;height:30px;}
  .th-acc-ico svg{width:18px;height:18px;}
  .th-acc-txt{font-size:13px;max-width:96px;overflow:hidden;text-overflow:ellipsis;}
  .th-acc-btn .th-chev{display:none;}
  .th-search{order:5;flex:1 1 100%;max-width:none;height:50px;border-radius:12px;padding:4px;}
  .th-search input{font-size:15px;padding:0 12px;}
  .th-search .search-tool{width:40px;height:40px;}
  .th-search .go{width:52px;height:42px;margin-left:2px;border-radius:10px;}
  .th-search .go svg{width:20px;height:20px;}
  .th-row2{height:auto;gap:8px;padding:8px 12px;}
  .th-cats{flex:1;}
  .th-cats-btn{width:100%;height:44px;font-size:13px;gap:6px;padding:0 8px;justify-content:center;}
  .th-cats-btn > svg:first-child{width:20px;height:20px;}
  .th-drop-cats{min-width:0;width:calc(100vw - 24px);}
  .th-ctas{flex:1;gap:8px;margin-left:0;}
  .th-ctas a{flex:1;justify-content:center;height:44px;font-size:13px;padding:0 8px;gap:6px;}
  .th-ctas svg{width:18px;height:18px;}
  .th-cta-white{display:none !important;}
  .th-announce .th-wrap{min-height:34px;font-size:12.5px;}
}
@media (max-width:380px){
  .th-acc-txt{display:none;}
  .th-cats-btn span,.th-ctas span{font-size:12.5px;}
}