/*
 * Ground-truth CSS overrides — built from V11 computed styles
 * Source: pnpm exec tsx infra/scripts/analysis/extract-ground-truth.ts https://firmpilottest.com/homepage-v11/ homepage-v11
 * Data:   infra/data/live-pages/homepage-v11/full-computed-styles.json
 *
 * V11 typography canon (measured, not guessed):
 *   Eyebrows: Nunito Sans 15px / 600 / 3.5px ls / uppercase
 *   H2 sections: Inria Serif 38px / 700 / lh 50px / ls 0.25px
 *   H1 hero: Inria Serif 56px / 900 (set in block attrs)
 *   Step titles: Inria Serif 36px / 400 (regular) / gold
 *   Practice area cards H3: Inria Serif 18px / 600 / centered
 *   Blog section H2: 42px
 *   Blog card H3: Playfair Display 21px / 700
 *   Locations H2: Playfair Display 40px / 500
 *   FAQ summary: Inria Serif 18px / 500
 */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&display=swap');

/* GLOBAL H2: 38px Inria Serif 700 (all section headings) */
.wp-block-group h2.wp-block-heading {
  font-family: "Inria Serif", serif !important;
  font-size: 38px;
  font-weight: 700;
  line-height: 50px;
  letter-spacing: 0.25px;
}

/* GLOBAL EYEBROWS: Nunito Sans 15px 600 3.5px tracking */
.wp-block-group p[style*="text-transform:uppercase"],
.wp-block-group p[style*="textTransform:uppercase"] {
  font-family: "Nunito Sans", sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 3.5px !important;
  line-height: 19px !important;
}

/* CASE RESULTS heading: 44px centered */
.hero-outer+.wp-block-group h2.wp-block-heading {
  font-size: 44px !important;
  line-height: 61px !important;
  text-align: center !important;
}

/* HOW IT WORKS step titles: 36px Inria Serif weight 400 (regular) */
.wp-block-group[style*="252525"] h3.wp-block-heading {
  font-family: "Inria Serif", serif !important;
  font-size: 36px !important;
  font-weight: 400 !important;
  line-height: 43px !important;
}

/* PRACTICE AREA CARDS in light gray section: 18px Inria Serif centered */
.wp-block-group[style*="F1F1F1"] .wp-block-columns h3.wp-block-heading {
  font-family: "Inria Serif", serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 24px !important;
  text-align: center !important;
}

/* BLOG SECTION H2: 42px centered */
.wp-block-group[style*="000000"] h2.wp-block-heading {
  font-size: 42px !important;
  text-align: center !important;
}

/* BLOG CARD H3: Playfair Display 21px 700 */
.wp-block-group[style*="000000"] .wp-block-columns h3.wp-block-heading {
  font-family: "Playfair Display", serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  line-height: 21px !important;
  text-align: start !important;
}

/* LOCATIONS SECTION H2: Playfair Display 40px 500 */
.wp-block-group[style*="161F48"] h2.wp-block-heading {
  font-family: "Playfair Display", serif !important;
  font-size: 40px !important;
  font-weight: 500 !important;
  line-height: 50px !important;
}

/* FAQ QUESTIONS: Inria Serif 18px 500 */
.wp-block-details>summary {
  font-family: "Inria Serif", serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
}


.alignfull {
  margin-top: 0 !important;
  margin-bottom: 0 !important;

  @media only screen and (max-width: 1280px) {
    margin-left: -24px !important;
    margin-right: -24px !important;
    max-width: calc(100% + 48px) !important;
  }
}

.alignwide {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

.h-full {
  height: 100%;
}

.relative {
  position: relative !important;
}


.wp-block-button.is-style-outline a {
  color: var(--wp--preset--color--white) !important;
  border-color: var(--wp--preset--color--white) !important;
}


@media only screen and (min-width: 781px) {
  .map-overlay {
    max-width: 320px !important;
    position: absolute !important;
    bottom: 24px !important;
    left: 24px !important;
  }
}


.wp-block-navigation .wp-block-navigation__submenu-icon {
  color: #fff;
}
.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container {
  left: 0 !important;
}

/* 3rd-level submenus: fly out to the right + height-limit with scroll */
.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
  left: 100% !important;
  top: 0 !important;
  max-height: 400px !important;
  overflow-y: auto !important;
}

.site-nav--sticky .wp-block-navigation a,
.site-nav--sticky .wp-block-navigation .wp-block-navigation-item__content {
  color: var(--wp--preset--color--white) !important;
}

.site-nav--sticky ul.wp-block-navigation-submenu li a {
  color: var(--wp--preset--color--navy) !important;
}

/* ── Nav hover + active highlight ──────────────────────────────────────── */

/* Top-level items: accent underline on hover */
.site-nav--sticky .wp-block-navigation > ul > li > a,
.site-nav--sticky .wp-block-navigation > ul > li > .wp-block-navigation-item__content {
  position: relative;
  transition: color 0.2s ease;
}
.site-nav--sticky .wp-block-navigation > ul > li > a::after,
.site-nav--sticky .wp-block-navigation > ul > li > .wp-block-navigation-item__content::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--wp--preset--color--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.2s ease;
}
.site-nav--sticky .wp-block-navigation > ul > li > a:hover::after,
.site-nav--sticky .wp-block-navigation > ul > li > .wp-block-navigation-item__content:hover::after,
.site-nav--sticky .wp-block-navigation > ul > li.current-menu-item > a::after,
.site-nav--sticky .wp-block-navigation > ul > li.current-menu-item > .wp-block-navigation-item__content::after,
.site-nav--sticky .wp-block-navigation > ul > li > [aria-current="page"]::after {
  transform: scaleX(1);
}

/* Hover + active: accent text color */
.site-nav--sticky .wp-block-navigation a:hover,
.site-nav--sticky .wp-block-navigation .wp-block-navigation-item__content:hover,
.site-nav--sticky .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.site-nav--sticky .wp-block-navigation .current-menu-item > a,
.site-nav--sticky .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.site-nav--sticky .wp-block-navigation [aria-current="page"] {
  color: var(--wp--preset--color--accent) !important;
}

/* Submenu items: left accent border on hover + active */
.site-nav--sticky .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  transition: color 0.15s ease, border-left-color 0.15s ease;
  border-left: 3px solid transparent;
  padding-left: 12px !important;
}
.site-nav--sticky .wp-block-navigation__submenu-container a:hover,
.site-nav--sticky .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.site-nav--sticky .wp-block-navigation__submenu-container .wp-block-navigation-item__content.wp-block-navigation-item__content:hover {
  color: var(--wp--preset--color--primary) !important;
  border-left-color: var(--wp--preset--color--accent) !important;
}

/* overflow:hidden on any ancestor breaks position:sticky — use clip instead */
html,
body,
.wp-site-blocks {
  overflow-x: clip !important;
}

header.wp-block-template-part {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}


/* ─── Mobile nav ─────────────────────────────────────────────────────────── */

/* Override WP core 600px breakpoint — switch desktop/mobile nav at 1024px */
@media (max-width: 1023px) {
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none !important;
  }
  .wp-block-navigation__responsive-container-open {
    display: flex !important;
  }
}
@media (min-width: 1024px) {
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    background-color: inherit;
    display: block !important;
    position: relative;
    width: 100%;
    z-index: auto;
  }
  .wp-block-navigation__responsive-container-open {
    display: none !important;
  }
}

/* Hide CTA (phone + button) when hamburger is active */
@media only screen and (max-width: 1023px) {
  .site-nav__cta {
    display: none !important;
  }
}

/* Hamburger + close buttons: white to match navy nav bar */
.site-nav .wp-block-navigation__responsive-container-open,
.site-nav .wp-block-navigation__responsive-container-close {
  color: #ffffff !important;
}

.site-nav .wp-block-navigation__responsive-container-open svg,
.site-nav .wp-block-navigation__responsive-container-close svg {
  fill: #ffffff !important;
  color: #ffffff !important;
}

/* Mobile overlay: primary brand background */
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--wp--preset--color--primary, #161f48) !important;
}

/* All text inside the open overlay: white */
.site-nav .wp-block-navigation__responsive-container.is-menu-open a,
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.site-nav .wp-block-navigation__responsive-container.is-menu-open button,
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
  color: #ffffff !important;
}

/* Submenu chevron icon: white */
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg {
  stroke: #ffffff !important;
}

/* ── Submenus collapsed by default in overlay ──────────────────────────── */

/* Override WP's default which makes all overlay submenus visible */
.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child
  .wp-block-navigation__submenu-container {
  height: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  opacity: 0 !important;
  min-width: 0 !important;
  position: static !important;
  border: none !important;
  padding: 0 !important;
  transition: opacity 0.2s ease;
}

/* Show submenu only when its toggle button has aria-expanded="true" */
.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child
  > .wp-block-navigation-submenu__toggle[aria-expanded="true"]
  ~ .wp-block-navigation__submenu-container {
  height: auto !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
  padding-left: 16px !important;
}

/* ── Submenu toggle: text + arrow side-by-side ─────────────────────────── */

/* WP overlay sets flex-direction:column on li — override for has-child */
.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

/* Submenu container drops to its own row beneath the toggle */
.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child > .wp-block-navigation__submenu-container {
  flex-basis: 100% !important;
  width: 100% !important;
}



/* The toggle IS the label — transparent, inline-flex, no forced width */
.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child > .wp-block-navigation-submenu__toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: auto !important;
  height: auto !important;
  min-height: 44px !important;
  padding: 8px 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
  color: #ffffff !important;
  text-align: left !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
}

/* Arrow icon inside the button */
.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child > .wp-block-navigation-submenu__toggle
  .wp-block-navigation__submenu-icon {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
  width: 14px !important;
  height: 14px !important;
  margin-left: 8px !important;
  overflow: hidden !important;
  transition: transform 0.2s ease !important;
}

.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child > .wp-block-navigation-submenu__toggle
  .wp-block-navigation__submenu-icon svg {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  stroke: #ffffff !important;
  fill: none !important;
}

/* Rotate arrow when expanded */
.site-nav .wp-block-navigation__responsive-container.is-menu-open
  .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"]
  .wp-block-navigation__submenu-icon {
  transform: rotate(180deg) !important;
}

.site-nav--sticky{
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}
