/* ============================================================
   CANONICAL SITE HEADER
   The one header used on every page. Self-contained: it does not
   depend on main.css, editorial.css or service-pages.css, and it is
   linked last so it always wins.

   Values here are the measured values of the 2026-07-31 editorial
   redesign, which is the brand of record. Do not restate header or
   nav rules in any other stylesheet — that divergence is what made
   the nav render differently from page to page.
   ============================================================ */

.skip-link {
  position: absolute;
  top: -100px;
  left: 12px;
  z-index: 2100;
  padding: 12px 18px;
  background: #111a21;
  color: #fff;
  font: 600 0.92rem/1.2 Arial, Helvetica, sans-serif;
  text-decoration: none;
  border: 2px solid #f5b400;
  transition: top .15s ease;
}

.skip-link:focus {
  top: 12px;
}

.header {
  position: sticky;
  top: 0;
  z-index: 1000;
  padding: 0;
  background: #fbfaf7;
  border-top: 4px solid #f5b400;
  border-bottom: 1px solid #d5d0c7;
  box-shadow: none;
  backdrop-filter: none;
  font-family: Arial, Helvetica, sans-serif;
}

.header .container {
  width: min(100% - 56px, 1160px);
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

.header .navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 76px;
}

.header .logo {
  display: flex;
  align-items: baseline;
  gap: 0;
  font: 700 1.55rem/1 Arial, Helvetica, sans-serif;
  letter-spacing: -0.065em;
  text-decoration: none;
}

.header .logo .logo-brand { color: #111a21; font-weight: 800; }
.header .logo .logo-product { color: #c58f00; font-weight: 500; }

.header .nav-links {
  display: flex;
  align-items: center;
  gap: 26px;
}

.header .nav-links > a,
.header .nav-links .services-nav-menu > summary {
  position: relative;
  padding: 26px 0 24px;
  color: #465059;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.65;
  text-decoration: none;
}

.header .nav-links > a:hover,
.header .nav-links .services-nav-menu:hover > summary,
.header .nav-links .services-nav-menu[open] > summary { color: #111a21; }

/* Hover/open underline. The summary's ::after carries the chevron, so its
   bar goes on ::before — same geometry either way. */
.header .nav-links > a::after,
.header .nav-links .services-nav-menu > summary::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 0;
  height: 3px;
  background: #f5b400;
  transition: width .3s ease;
}

.header .nav-links > a:hover::after,
.header .nav-links > a:focus-visible::after,
.header .nav-links .services-nav-menu:hover > summary::before,
.header .nav-links .services-nav-menu[open] > summary::before { width: 100%; }

/* Matched against `.header .nav-links > a` above, which is (0,2,1) — so the
   CTA rules carry the class on the element to stay ahead of it. */
.header .nav-links > a.nav-cta {
  padding: 11px 16px;
  background: #111a21;
  color: #fff;
  border: 1px solid #111a21;
  border-radius: 2px;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.header .nav-links > a.nav-cta:hover,
.header .nav-links > a.nav-cta:focus-visible {
  background: #f5b400;
  border-color: #f5b400;
  color: #111a21;
}

.header .nav-links > a.nav-cta::after { display: none; }

.header .menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  padding: 0;
  background: none;
  border: 1px solid #d5d0c7;
  border-radius: 2px;
  cursor: pointer;
}

.header .menu-toggle-bar {
  display: block;
  width: 17px;
  height: 2px;
  margin: 4px auto;
  background: #111a21;
  transition: transform .2s ease, opacity .2s ease;
}

.header .menu-toggle[aria-expanded="true"] .menu-toggle-bar:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.header .menu-toggle[aria-expanded="true"] .menu-toggle-bar:nth-child(2) { opacity: 0; }
.header .menu-toggle[aria-expanded="true"] .menu-toggle-bar:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.header a:focus-visible,
.header button:focus-visible {
  outline: 2px solid #111a21;
  outline-offset: 3px;
}

@media (max-width: 1024px) {
  .header .nav-links { gap: 18px; }

  .header .nav-links > a,
  .header .nav-links .services-nav-menu > summary { font-size: 0.84rem; }
}

@media (max-width: 900px) {
  .header .nav-links {
    position: fixed;
    top: var(--services-menu-top, 81px);
    right: 0;
    left: 0;
    z-index: 1500;
    gap: 0;
    max-height: calc(100vh - var(--services-menu-top, 81px));
    padding: 6px 28px 24px;
    overflow-y: auto;
    background: #fbfaf7;
    border-bottom: 1px solid #d5d0c7;
    box-shadow: 0 10px 30px rgba(17, 26, 33, .1);
    flex-direction: column;
    align-items: stretch;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-100%);
    transition: opacity .3s ease, transform .3s ease, visibility .3s;
  }

  .header .nav-links.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  /* One row shape for every item, so the stack reads as one list. */
  .header .nav-links > a,
  .header .nav-links .services-nav-menu > summary {
    width: 100%;
    padding: 13px 0;
    font-size: 0.92rem;
    border-bottom: 1px solid #d5d0c7;
  }

  .header .nav-links > a::after,
  .header .nav-links .services-nav-menu > summary::before { display: none; }

  .header .nav-links > a.nav-cta {
    margin-top: 14px;
    padding: 13px 16px;
    border-bottom: 1px solid #111a21;
    text-align: center;
  }

  .header .menu-toggle { display: block; }
}

/* ---- Footer social icons (Yeevu brand accounts) ----
   Lives here because site-header.css is the only stylesheet loaded by all 41
   pages; both footer variants (.service-footer and .footer) are dark. */
.yv-social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.yv-social__link { display: inline-grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: #c7d0dd; text-decoration: none; transition: color .2s ease, border-color .2s ease, transform .2s ease; }
.yv-social__link::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--yv-icon) center / contain no-repeat; mask: var(--yv-icon) center / contain no-repeat; }
.yv-social__link:hover, .yv-social__link:focus-visible { color: #f5b400; border-color: #f5b400; transform: translateY(-2px); }
.yv-social__link--linkedin { --yv-icon: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'><path%20d='M20.447%2020.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853%200-2.136%201.445-2.136%202.939v5.667H9.351V9h3.414v1.561h.046c.477-.9%201.637-1.85%203.37-1.85%203.601%200%204.267%202.37%204.267%205.455v6.286zM5.337%207.433a2.062%202.062%200%2001-2.063-2.065%202.064%202.064%200%20112.063%202.065zm1.782%2013.019H3.555V9h3.564v11.452zM22.225%200H1.771C.792%200%200%20.774%200%201.729v20.542C0%2023.227.792%2024%201.771%2024h20.451C23.2%2024%2024%2023.227%2024%2022.271V1.729C24%20.774%2023.2%200%2022.222%200h.003z'/></svg>"); }
.yv-social__link--x { --yv-icon: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'><path%20d='M18.244%202.25h3.308l-7.227%208.26%208.502%2011.24H16.17l-5.214-6.817L4.99%2021.75H1.68l7.73-8.835L1.254%202.25H8.08l4.713%206.231zm-1.161%2017.52h1.833L7.084%204.126H5.117z'/></svg>"); }
.yv-social__link--facebook { --yv-icon: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'><path%20d='M24%2012.073c0-6.627-5.373-12-12-12s-12%205.373-12%2012c0%205.99%204.388%2010.954%2010.125%2011.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007%201.792-4.669%204.533-4.669%201.312%200%202.686.235%202.686.235v2.953H15.83c-1.491%200-1.956.925-1.956%201.874v2.25h3.328l-.532%203.47h-2.796v8.385C19.612%2023.027%2024%2018.062%2024%2012.073z'/></svg>"); }
.yv-social__link--instagram { --yv-icon: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'><path%20d='M12%200C8.74%200%208.333.015%207.053.072%205.775.132%204.905.333%204.14.63c-.789.306-1.459.717-2.126%201.384S.935%203.35.63%204.14C.333%204.905.131%205.775.072%207.053.012%208.333%200%208.74%200%2012s.015%203.667.072%204.947c.06%201.277.261%202.148.558%202.913.306.788.717%201.459%201.384%202.126.667.666%201.336%201.079%202.126%201.384.766.296%201.636.499%202.913.558C8.333%2023.988%208.74%2024%2012%2024s3.667-.015%204.947-.072c1.277-.06%202.148-.262%202.913-.558.788-.306%201.459-.718%202.126-1.384.666-.667%201.079-1.335%201.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319%201.347%2020.651.935%2019.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012%2015.26%200%2012%200zm0%202.16c3.203%200%203.585.016%204.85.071%201.17.055%201.805.249%202.227.415.562.217.96.477%201.382.896.419.42.679.819.896%201.381.164.422.36%201.057.413%202.227.057%201.266.07%201.646.07%204.85s-.015%203.585-.074%204.85c-.061%201.17-.256%201.805-.421%202.227-.224.562-.479.96-.899%201.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211%200-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844%200-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689%201.379-.898.42-.166%201.051-.361%202.221-.421%201.275-.045%201.65-.06%204.859-.06zm0%203.678a6.162%206.162%200%20100%2012.324%206.162%206.162%200%20000-12.324zM12%2016a4%204%200%20110-8%204%204%200%20010%208zm7.846-10.405a1.441%201.441%200%2001-2.881%200%201.44%201.44%200%20012.881%200z'/></svg>"); }
.yv-social__link--youtube { --yv-icon: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'><path%20d='M23.498%206.186a3.016%203.016%200%2000-2.122-2.136C19.505%203.545%2012%203.545%2012%203.545s-7.505%200-9.377.505A3.017%203.017%200%2000.502%206.186C0%208.07%200%2012%200%2012s0%203.93.502%205.814a3.016%203.016%200%20002.122%202.136c1.871.505%209.376.505%209.376.505s7.505%200%209.377-.505a3.015%203.015%200%20002.122-2.136C24%2015.93%2024%2012%2024%2012s0-3.93-.502-5.814zM9.545%2015.568V8.432L15.818%2012l-6.273%203.568z'/></svg>"); }
.yv-social__link--tiktok { --yv-icon: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'><path%20d='M12.525.02c1.31-.02%202.61-.01%203.91-.02.08%201.53.63%203.09%201.75%204.17%201.12%201.11%202.7%201.62%204.24%201.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01%202.92.01%205.84-.02%208.75-.08%201.4-.54%202.79-1.35%203.94-1.31%201.92-3.58%203.17-5.91%203.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9%201.12-3.72%202.58-4.96%201.66-1.44%203.98-2.13%206.15-1.72.02%201.48-.04%202.96-.04%204.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11%201.04-1.36%201.75-.21.51-.15%201.07-.14%201.61.24%201.64%201.82%203.02%203.5%202.87%201.12-.01%202.19-.66%202.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/></svg>"); }
@media (prefers-reduced-motion: reduce) { .yv-social__link { transition: none; } .yv-social__link:hover { transform: none; } }

/* ---- Self-contained expert-support CTA ----
   For pages that load neither service-pages.css nor authority-pages.css
   (the editorial/main.css set). Mirrors the .content-band look. */
.yv-cta { padding: 72px 0; background: #fff8df; border-block: 1px solid #efd480; }
.yv-cta__inner { width: min(1180px, calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: center; }
.yv-cta__kicker { margin: 0 0 16px; color: #9a6700; font: 600 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .14em; text-transform: uppercase; }
.yv-cta h2 { max-width: 760px; margin: 0; color: #0b1220; font: 750 clamp(30px, 4vw, 46px)/1.1 Georgia, "Times New Roman", serif; letter-spacing: -.04em; text-wrap: balance; }
.yv-cta p { max-width: 700px; margin: 16px 0 0; color: #526071; font: 400 16px/1.65 Arial, Helvetica, sans-serif; }
.yv-cta__note { color: #6b7a8d !important; font-size: 13px !important; }
.yv-cta__actions { display: flex; flex-direction: column; gap: 10px; min-width: 264px; }
.yv-cta__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border: 1px solid transparent; border-radius: 4px; font: 700 14px/1 Arial, Helvetica, sans-serif; text-align: center; text-decoration: none; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.yv-cta__btn:hover { transform: translateY(-2px); }
.yv-cta__btn--primary { background: #f5b400; color: #111827; }
.yv-cta__btn--primary:hover { background: #ffc832; }
.yv-cta__btn--secondary { border-color: #d8c27e; background: transparent; color: #0b1220; }
.yv-cta__btn--secondary:hover { border-color: #9a6700; }
@media (max-width: 900px) { .yv-cta__inner { grid-template-columns: 1fr; gap: 34px; } .yv-cta__actions { min-width: 0; } }
@media (max-width: 640px) { .yv-cta { padding: 56px 0; } .yv-cta__inner { width: min(100% - 28px, 1180px); } }
@media (prefers-reduced-motion: reduce) { .yv-cta__btn { transition: none; } .yv-cta__btn:hover { transform: none; } }
