/* ONE header geometry on every page (Corey 2026-09-27, products handoff "lock the header").
   Four markups exist: header.lhd (.lhd-in), header.la-header (.nav), header#hdr (.wrap.nav) and a bare <header> (.nav)
   on the insurance welcome/survey pages. This file puts the logo, SMS, CALL and menu button in the same slots at the
   same size for a given viewport; only the nav links in the middle differ per page. The approved logo is
   /img/home-logo.png (1200x600). Loaded last on every page; :not(#_) outranks older page rules. */
:root{--hd-gutter:clamp(16px,3.6vw,52px);--hd-row:96px;--hd-top:10px}
@media (max-width:1100px){:root{--hd-row:84px}}
@media (max-width:720px){:root{--hd-row:72px;--hd-top:6px}}

/* container */
html body :is(header.lhd .lhd-in,header.la-header>.nav,header#hdr>.nav,body>header:not([class]):not([id])>.nav):not(#_){
  box-sizing:border-box!important;width:calc(100% - 2*var(--hd-gutter))!important;max-width:1200px!important;margin:0 auto!important;
  padding:var(--hd-top) 0 0!important;min-height:calc(var(--hd-row) + var(--hd-top))!important;height:auto!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;flex-wrap:nowrap!important}

/* logo slot: 240px visible desktop / 200 tablet / 150 phone, visible left edge on the container edge */
html body :is(header.lhd .lhd-logo,header.la-header>.nav>a:first-child,header#hdr .brand,body>header:not([class]):not([id])>.nav>a:first-child):not(#_){
  flex:0 0 auto!important;display:block!important;line-height:0!important;margin:0!important;padding:0!important;align-self:center!important}
html body :is(header.lhd .lhd-logo img,header.la-header img.logo,header#hdr img.funnel-logo,body>header:not([class]):not([id]) img.logo,body>header:not([class]):not([id]) img.funnel-logo):not(#_){
  display:block!important;width:319px!important;max-width:none!important;height:auto!important;max-height:none!important;
  margin:0 0 calc(var(--hd-row) - 146px) -61px!important;position:static!important;top:auto!important;translate:none!important;transform:none!important}
@media (max-width:1100px){html body :is(header.lhd .lhd-logo img,header.la-header img.logo,header#hdr img.funnel-logo,body>header:not([class]):not([id]) img.logo,body>header:not([class]):not([id]) img.funnel-logo):not(#_){width:266px!important;margin:0 0 calc(var(--hd-row) - 122px) -51px!important}}
@media (max-width:720px){html body :is(header.lhd .lhd-logo img,header.la-header img.logo,header#hdr img.funnel-logo,body>header:not([class]):not([id]) img.logo,body>header:not([class]):not([id]) img.funnel-logo):not(#_){width:200px!important;margin:0 0 calc(var(--hd-row) - 92px) -38px!important}}

/* nav links take the middle; they collapse into the menu before they can push the fixed controls */
html body :is(header.lhd .lhd-links,header.la-header .navlinks,header#hdr .nav-links,body>header:not([class]):not([id]) .navlinks):not(#_){flex:1 1 auto!important;min-width:0!important;margin:0 clamp(12px,2vw,32px)!important}
@media (max-width:1100px){html body :is(header.lhd .lhd-links,header.la-header:not(.menu-open) .navlinks,header#hdr .nav-links,body>header:not([class]):not([id]):not(.menu-open) .navlinks):not(#_){display:none!important}}
/* nav link SIZE lives HERE now, so no page can drift to its own inline size (Corey 2026-10-01).
   Matches custom.html's proven steps; nav collapses into the menu below 1100px so smaller steps are a safety net. */
html body :is(header.lhd .lhd-links,header.la-header .navlinks,header#hdr .nav-links,body>header:not([class]):not([id]) .navlinks) a:not(#_):not(#__){font-size:.98rem!important}
@media (max-width:1240px){html body :is(header.lhd .lhd-links,header.la-header .navlinks,header#hdr .nav-links,body>header:not([class]):not([id]) .navlinks) a:not(#_):not(#__){font-size:.88rem!important;letter-spacing:.4px!important}}
@media (max-width:1080px){html body :is(header.lhd .lhd-links,header.la-header .navlinks,header#hdr .nav-links,body>header:not([class]):not([id]) .navlinks) a:not(#_):not(#__){font-size:.8rem!important;letter-spacing:.2px!important}}

/* action group: SMS, CALL, menu - same order, size and gap everywhere */
html body :is(header.lhd .lhd-right,header#hdr .nav-right):not(#_){flex:0 0 auto!important;display:flex!important;align-items:center!important;gap:10px!important;margin:0 0 0 auto!important}
html body :is(header.lhd,header.la-header,header#hdr,body>header:not([class]):not([id])) .hdr-contact:not(#_){display:flex!important;align-items:center!important;gap:10px!important;margin:0 0 0 auto!important;flex:0 0 auto!important}
html body :is(header.la-header,body>header:not([class]):not([id]))>.nav>.hdr-contact:not(#_){margin-left:auto!important}
html body :is(header.lhd,header.la-header,header#hdr,body>header:not([class]):not([id])) .hdr-contact a.nav-ghost:not(#_){width:92px!important;height:44px!important;min-height:44px!important;padding:0 10px 0 6px!important;box-sizing:border-box!important;justify-content:center!important;gap:8px!important;font-family:'Oswald',sans-serif!important;font-size:13px!important;font-weight:600!important;letter-spacing:.08em!important}
html body :is(header.lhd .lhd-burger,header.la-header .la-burger,header#hdr .lam-burger,body>header:not([class]):not([id]) .la-burger):not(#_){
  flex:0 0 auto!important;width:46px!important;height:44px!important;min-width:46px!important;margin:0 0 0 10px!important;display:inline-flex!important}
html body header#hdr .hdr-contact .lam-burger:not(#_){margin-left:0!important}
@media (max-width:720px){
  html body :is(header.lhd,header.la-header,header#hdr,body>header:not([class]):not([id])) .hdr-contact:not(#_){gap:6px!important}
  html body :is(header.lhd,header.la-header,header#hdr,body>header:not([class]):not([id])) .hdr-contact a.nav-ghost:not(#_){width:44px!important;padding:0!important;justify-content:center!important}
  html body :is(header.lhd,header.la-header,header#hdr,body>header:not([class]):not([id])) .hdr-contact a.nav-ghost>span:not(.gi):not(#_),
  html body :is(header.lhd,header.la-header,header#hdr,body>header:not([class]):not([id])) .hdr-contact a.nav-ghost em:not(#_){display:none!important}
  html body :is(header.lhd .lhd-burger,header.la-header .la-burger,header#hdr .lam-burger,body>header:not([class]):not([id]) .la-burger):not(#_){margin-left:6px!important}
}
/* the CALL -> menu spacing is 10px in every family (their wrappers carry different flex gaps) */
html body :is(header.la-header>.nav>.la-burger,body>header:not([class]):not([id])>.nav>.la-burger):not(#_):not(#__){margin-left:-6px!important}
html body header.lhd .lhd-right>.lhd-burger:not(#_):not(#__){margin-left:0!important}
html body header#hdr .hdr-contact>.lam-burger:not(#_):not(#__){margin-left:0!important}
@media (max-width:720px){
  html body :is(header.la-header>.nav>.la-burger,body>header:not([class]):not([id])>.nav>.la-burger):not(#_):not(#__){margin-left:-6px!important}
  html body header.lhd .lhd-right>.lhd-burger:not(#_):not(#__){margin-left:0!important}
  html body header#hdr .hdr-contact>.lam-burger:not(#_):not(#__){margin-left:4px!important}
}

/* White headers use the approved Launch Development & Automation logo (/img/home-logo.png?v=20261109, 1200x600): it is
   dense artwork, so it gets its own size - vertically centred in the row, left edge on the container edge. */
html body :is(header.lhd .lhd-logo img,header.la-header img.logo,header#hdr img.funnel-logo,body>header:not([class]):not([id]) img.logo,body>header:not([class]):not([id]) img.funnel-logo)[src*="home-logo"]:not(#_):not(#__){width:192px!important;margin:0 0 calc(var(--hd-row) - 96px) 0!important}
@media (max-width:1100px){html body :is(header.lhd .lhd-logo img,header.la-header img.logo,header#hdr img.funnel-logo,body>header:not([class]):not([id]) img.logo,body>header:not([class]):not([id]) img.funnel-logo)[src*="home-logo"]:not(#_):not(#__){width:172px!important;margin:0 0 calc(var(--hd-row) - 86px) 0!important}}
@media (max-width:720px){html body :is(header.lhd .lhd-logo img,header.la-header img.logo,header#hdr img.funnel-logo,body>header:not([class]):not([id]) img.logo,body>header:not([class]):not([id]) img.funnel-logo)[src*="home-logo"]:not(#_):not(#__){width:144px!important;margin:0 0 calc(var(--hd-row) - 72px) 0!important}}

/* White headers (purple logo), Corey 2026-09-27: breathing room under the logo, and the menu links + SMS/CALL/menu
   centred on the LAUNCH lettering (the logo's rocket makes the image's own centre sit too high).
   Lettering centre = 70.5% of the image height; each control is bottom-aligned so its centre lands there. */
html body :is(header.la-header>.nav,header#hdr>.nav,body>header:not([class]):not([id])>.nav,header.lhd .lhd-in):has(img[src*="home-logo"]):not(#_):not(#__){
  align-items:flex-end!important;min-height:0!important;padding:12px 0 14px!important}
html body :is(header.la-header,header#hdr,body>header:not([class]):not([id]),header.lhd):has(img[src*="home-logo"]) :is(img.logo,img.funnel-logo,.lhd-logo img):not(#_):not(#__){margin:0!important}
html body :is(header.la-header,header#hdr,body>header:not([class]):not([id]),header.lhd):has(img[src*="home-logo"]) :is(.navlinks,.nav-links,.lhd-links):not(#_):not(#__){
  align-self:flex-end!important;display:flex;align-items:center!important;height:44px!important;margin-bottom:6px!important}
html body :is(header.la-header,header#hdr,body>header:not([class]):not([id]),header.lhd):has(img[src*="home-logo"]) :is(.navlinks,.nav-links,.lhd-links) a:not(#_):not(#__){line-height:1.2!important;padding-top:0!important;padding-bottom:0!important}
html body :is(header.la-header,header#hdr,body>header:not([class]):not([id]),header.lhd):has(img[src*="home-logo"]) :is(.hdr-contact,.nav-right,.lhd-right,.la-burger,.back,.secure):not(#_):not(#__){align-self:flex-end!important;margin-bottom:6px!important}
html body :is(header#hdr,header.lhd):has(img[src*="home-logo"]) :is(.nav-right,.lhd-right) .hdr-contact:not(#_):not(#__){margin-bottom:0!important}
@media (max-width:1100px){
  html body :is(header.la-header,header#hdr,body>header:not([class]):not([id]),header.lhd):has(img[src*="home-logo"]) :is(.navlinks,.nav-links,.lhd-links,.hdr-contact,.nav-right,.lhd-right,.la-burger,.back,.secure):not(#_):not(#__){margin-bottom:3px!important}
}
@media (max-width:720px){
  html body :is(header.la-header>.nav,header#hdr>.nav,body>header:not([class]):not([id])>.nav,header.lhd .lhd-in):has(img[src*="home-logo"]):not(#_):not(#__){padding:8px 0 10px!important}
  html body :is(header.la-header,header#hdr,body>header:not([class]):not([id]),header.lhd):has(img[src*="home-logo"]) :is(.hdr-contact,.nav-right,.lhd-right,.la-burger,.back,.secure):not(#_):not(#__){margin-bottom:0!important}
}
/* the single text item on the welcome/survey/signup headers ("Back to Home", "No credit card required") is shorter
   than a 44px button, so it needs more lift to centre on the lettering */
html body>header:not([class]):not([id]):has(img[src*="home-logo"]) :is(.back,.secure):not(#_):not(#__):not(#___){margin-bottom:18px!important}
@media (max-width:1100px){html body>header:not([class]):not([id]):has(img[src*="home-logo"]) :is(.back,.secure):not(#_):not(#__):not(#___){margin-bottom:15px!important}}
@media (max-width:720px){html body>header:not([class]):not([id]):has(img[src*="home-logo"]) :is(.back,.secure):not(#_):not(#__):not(#___){margin-bottom:11px!important}}

/* --- "ALL" is a plain TEXT menu option, NOT a button (Corey 2026-09-29).
   launch-menu.js injects <a class="lam-all lam-trigger">ALL</a> as the last nav link, so on desktop
   "ALL" reads like EARN CASH / QUOTE / ... and opens the mega-menu; that injected link inherits the
   nav's own link styling. The old hamburger button is hidden on desktop. On mobile the nav collapses,
   so the button stays as the menu trigger but is stripped to plain "ALL" text (no pill). --- */
/* injected nav text option: match the other nav links (they set font/color); just kill the underline */
html body :is(header.lhd .lhd-links,header.la-header .navlinks,header#hdr .nav-links,body>header:not([class]):not([id]) .navlinks) a.lam-all:not(#_):not(#__){
  text-decoration:none!important;cursor:pointer!important}
/* the hamburger button -> plain "ALL" text, no pill/box (used only where the nav is collapsed) */
html body :is(header.lhd .lhd-burger,header.la-header .la-burger,header#hdr .lam-burger,body>header:not([class]):not([id]) .la-burger):not(#_):not(#__){
  width:auto!important;min-width:0!important;height:44px!important;padding:0 4px!important;gap:0!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  font-family:'Oswald',sans-serif!important;font-size:13px!important;font-weight:600!important;letter-spacing:.12em!important;
  color:inherit!important;line-height:1!important;cursor:pointer!important}
html body :is(header.lhd .lhd-burger,header.la-header .la-burger,header#hdr .lam-burger,body>header:not([class]):not([id]) .la-burger)>*:not(#_):not(#__){display:none!important}
html body :is(header.lhd .lhd-burger,header.la-header .la-burger,header#hdr .lam-burger,body>header:not([class]):not([id]) .la-burger):not(#_):not(#__)::after{content:"ALL"!important;display:inline-block!important}
/* on desktop the nav carries the ALL text link, so hide the standalone button entirely */
@media (min-width:1101px){
  html body :is(header.lhd .lhd-burger,header.la-header .la-burger,header#hdr .lam-burger,body>header:not([class]):not([id]) .la-burger):not(#_):not(#__){display:none!important}
}

/* Center the nav + SMS/CALL/ALL on the LAUNCH logo's optical centre. Current-logo pages are handled
   by the section above. The fallback below preserves alignment for product-specific brand marks. */
html body header.lhd:not(:has(img[src*="home-logo"])) :is(.lhd-links,.lhd-right):not(#_):not(#__){transform:translateY(16px)!important}
html body :is(header.la-header,header#hdr,body>header:not([class]):not([id])):not(:has(img[src*="home-logo"])) :is(.navlinks,.nav-links,.hdr-contact,.la-burger,.lam-burger,.back,.secure):not(#_):not(#__){transform:translateY(16px)!important}
@media (max-width:1100px){
  html body header.lhd:not(:has(img[src*="home-logo"])) :is(.lhd-links,.lhd-right):not(#_):not(#__){transform:translateY(13px)!important}
  html body :is(header.la-header,header#hdr,body>header:not([class]):not([id])):not(:has(img[src*="home-logo"])) :is(.navlinks,.nav-links,.hdr-contact,.la-burger,.lam-burger,.back,.secure):not(#_):not(#__){transform:translateY(13px)!important}
}
@media (max-width:720px){
  html body header.lhd:not(:has(img[src*="home-logo"])) :is(.lhd-links,.lhd-right):not(#_):not(#__){transform:translateY(10px)!important}
  html body :is(header.la-header,header#hdr,body>header:not([class]):not([id])):not(:has(img[src*="home-logo"])) :is(.navlinks,.nav-links,.hdr-contact,.la-burger,.lam-burger,.back,.secure):not(#_):not(#__){transform:translateY(10px)!important}
}

/* Fit the logo and contact controls inside a 320px viewport. */
@media(max-width:340px){
html body :is(header.lhd .lhd-in,header.la-header>.nav,header#hdr>.nav,body>header:not([class]):not([id])>.nav):not(#_):not(#__){gap:10px!important}
html body :is(header.lhd .lhd-logo,header.la-header .logo,header#hdr .logo,body>header:not([class]):not([id]) .logo) img:not(#_):not(#__){width:180px!important}
}
