/* NEIVA PRODUCTION AUTHORITY — R10 — 2026-09-04
   Consolidated production overrides. Loaded after styles.css and accessibility.css. */
:root {
  --surface: #FCFCF9;
  --surface-rgb: 252, 252, 249;
  --a11y-paper: #FCFCF9;
}

html, body {
  background: var(--surface) !important;
}

/* Keep Neiva orange #FF8C00 as the visual accent; use blue/navy for small copy on light surfaces. */
.eyebrow-neutral,
.section.white .structure small,
.partners-section .section-head .eyebrow,
.legal-page .legal-num,
.page-projects .track-voltage-count,
.page-projects .track-summary > div:nth-child(2) strong,
.section.white .editorial-accent,
.lang-switcher__menu a.is-current .lang-option-code,
.gallery-section .serviceGallery__railEyebrow,
.gallery-section .serviceGallery__eyebrow,
.gallery-section .serviceGallery__serviceTag {
  color: var(--blue) !important;
}

/* Orange surfaces use dark copy for AA contrast. */
.site-header .nav-contact-cta,
.mobile-contact-cta,
.site-header.scrolled .nav-contact-cta,
.page-home .site-header:not(.scrolled) .nav-contact-cta,
.internal-page:not(.page-services) .site-header:not(.scrolled) .nav-contact-cta {
  color: var(--navy) !important;
}

/* Services uses a navy CTA against its orange page header while closed. */
.internal-page.page-services .site-header:not(.scrolled) .nav-contact-cta {
  color: #FFFFFF !important;
}

.section.white {
  background: #FFFFFF !important;
}

.structure-grid {
  border-bottom: 0 !important;
}

.hero-transition {
  background: var(--surface) !important;
}

/* Compact desktop: presentation yields before brand or primary navigation. */
@media (min-width: 981px) and (max-width: 1199px) {
  .site-header .nav-presentation { display: none !important; }
  .site-header .nav { gap: 18px !important; }
  .site-header .nav-links { gap: clamp(16px, 1.8vw, 22px) !important; }
  .site-header .nav-actions { gap: 8px !important; }
}

/* Desktop gallery title handoff: outgoing horizontal copy clears before panel contraction. */
@media (min-width: 981px) {
  .page-services .serviceGallery--panels .serviceGallery__serviceText {
    min-width: 420px !important;
    opacity: 0 !important;
    transform: none !important;
    transition: opacity 100ms ease 0ms !important;
  }
  .page-services .serviceGallery--panels .serviceGallery__service.is-active .serviceGallery__serviceText {
    min-width: 420px !important;
    opacity: 1 !important;
    transform: none !important;
    transition: opacity 280ms ease 180ms !important;
  }
  .page-services .serviceGallery--panels .serviceGallery__verticalLabel {
    opacity: 1 !important;
    transform: translateY(50%) rotate(-90deg) !important;
    transition: opacity 180ms ease 150ms !important;
  }
  .page-services .serviceGallery--panels .serviceGallery__service.is-active .serviceGallery__verticalLabel {
    opacity: 0 !important;
    transform: translateY(50%) rotate(-90deg) !important;
    transition: opacity 90ms ease 0ms !important;
  }
}

/* Mobile surfaces remain full-bleed and controls never overlap the open menu. */
@media (max-width: 980px) {
  .page-home main, .page-about main, .page-services main, .page-projects main, .page-contact main {
    background: var(--surface) !important;
  }
  .section.white > .shell,
  .page-services .section-services-primary > .shell,
  .page-services .gallery-section > .shell,
  .page-projects .section.white > .shell,
  .page-about #coverage > .shell {
    background: transparent !important;
  }
  .page-projects .track-visual, .page-projects .track-filter-panel, .page-projects .voltage-group, .page-projects .project {
    background: transparent !important;
  }
  body.menu-open [vw] [vw-access-button],
  body.menu-open .a11y-fab {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* Outside galleries the two accessibility launchers occupy independent safe zones. */
@media (max-width: 720px) {
  .a11y-fab {
    right: 14px !important;
    bottom: max(18px, env(safe-area-inset-bottom)) !important;
  }
  [vw].enabled {
    position: fixed !important;
    inset: auto 14px calc(max(18px, env(safe-area-inset-bottom)) + 64px) auto !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 2147482998 !important;
  }
  [vw].enabled [vw-access-button] {
    position: relative !important;
    inset: auto !important;
    margin: 0 !important;
    transform: scale(.78) !important;
    transform-origin: right bottom !important;
  }
}

/* Services — final approved editorial layout */
.page-services .section-services-primary {
  position: relative;
  background: var(--surface) !important;
  padding-top: clamp(64px, 6vw, 92px) !important;
  padding-bottom: clamp(84px, 7vw, 108px) !important;
}

.page-services .section-services-primary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--surface) 0%, #FBFBF7 100%);
  z-index: 0;
}

.page-services .section-services-primary > .shell {
  position: relative;
  z-index: 1;
  width: min(1560px, calc(100% - clamp(72px, 9vw, 180px))) !important;
  padding-inline: 0 !important;
  background: transparent !important;
}

.page-services .section-services-primary .section-head {
  margin-bottom: clamp(54px, 4.4vw, 72px) !important;
  padding-inline: clamp(4px, .8vw, 10px) !important;
}

.page-services .section-services-primary .section-head h2 {
  width: min(100%, 980px) !important;
  max-width: 980px !important;
  margin-bottom: 18px !important;
  font-size: clamp(44px, 4.2vw, 66px) !important;
  line-height: 1.01 !important;
  letter-spacing: -.04em !important;
}

.page-services .section-services-primary .section-head p {
  max-width: 760px !important;
  color: #5F6673 !important;
  font-size: clamp(17px, 1.16vw, 20px) !important;
  line-height: 1.64 !important;
}

.page-services .section-services-primary .service-showcases {
  gap: 0 !important;
  border-top: 1px solid rgba(9, 28, 41, .08) !important;
}

.page-services .section-services-primary .service-showcase,
.page-services .section-services-primary .service-showcase.reverse {
  grid-template-columns: minmax(0, 1.04fr) minmax(380px, .96fr) !important;
  gap: clamp(46px, 3.8vw, 74px) !important;
  align-items: center !important;
  min-height: auto !important;
  padding: clamp(42px, 3.5vw, 58px) 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.page-services .section-services-primary .service-showcase.reverse {
  grid-template-columns: minmax(380px, .96fr) minmax(0, 1.04fr) !important;
}

.page-services .section-services-primary .service-showcase + .service-showcase,
.page-services .section-services-primary .service-showcase + .service-showcase.reverse,
.page-services .section-services-primary .service-showcase.reverse + .service-showcase,
.page-services .section-services-primary .service-showcase.reverse + .service-showcase.reverse {
  padding-top: clamp(46px, 3.8vw, 62px) !important;
  border-top: 1px solid rgba(9, 28, 41, .08) !important;
}

.page-services .section-services-primary .service-showcase-media,
.page-services .section-services-primary .service-showcase-media::before,
.page-services .section-services-primary .service-showcase-media::after {
  background: transparent !important;
  box-shadow: none !important;
}

.page-services .section-services-primary .service-showcase-media {
  min-height: clamp(420px, 33vw, 620px) !important;
  aspect-ratio: auto !important;
  padding: 0 !important;
  border-radius: 30px !important;
  overflow: hidden !important;
}

.page-services .section-services-primary .service-showcase-media img,
.page-services .section-services-primary .service-showcase.reverse .service-showcase-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: inherit !important;
  transform: none !important;
}

.page-services .section-services-primary .service-showcase:hover .service-showcase-media img {
  transform: none !important;
}

.page-services .section-services-primary .service-showcase-cards {
  padding: clamp(10px, 1.1vw, 18px) 0 !important;
  align-content: center !important;
}

.page-services .section-services-primary .service-card {
  padding: clamp(24px, 2vw, 32px) 0 !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(9, 28, 41, .09) !important;
  background: transparent !important;
}

.page-services .section-services-primary .service-card:last-child {
  border-bottom-color: rgba(9, 28, 41, .09) !important;
}

.page-services .section-services-primary .service-card__tag {
  margin-top: .5em !important;
  color: var(--blue) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
}

.page-services .section-services-primary .service-card h3 {
  margin: 0 0 12px !important;
  max-width: none !important;
  font-size: clamp(29px, 2.3vw, 38px) !important;
  font-weight: 600 !important;
  line-height: 1.04 !important;
  letter-spacing: -.038em !important;
}

.page-services .section-services-primary .service-card p {
  max-width: 46ch !important;
  margin: 0 !important;
  color: #606775 !important;
  font-size: clamp(17px, 1.08vw, 18.5px) !important;
  line-height: 1.66 !important;
}

/* Give the services page a broader, more continuous editorial rhythm on large screens. */
@media (min-width: 1280px) {
  .page-services .section-services-primary > .shell {
    width: min(1600px, calc(100% - 112px)) !important;
  }

  .page-services .section-services-primary .service-showcase,
  .page-services .section-services-primary .service-showcase.reverse {
    gap: clamp(54px, 4.2vw, 82px) !important;
  }
}

/* Mobile and tablet continuity: keep a single surface without lateral colour breaks. */
@media (max-width: 980px) {
  .page-services .section-services-primary {
    padding-top: 30px !important;
    padding-bottom: 48px !important;
  }

  .page-services .section-services-primary::before {
    background: var(--surface) !important;
  }

  .page-services .section-services-primary > .shell {
    width: calc(100% - 36px) !important;
    padding-inline: 0 !important;
  }

  .page-services .section-services-primary .section-head {
    margin-bottom: 30px !important;
    padding-inline: 0 !important;
  }

  .page-services .section-services-primary .section-head h2 {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(34px, 9.4vw, 46px) !important;
    line-height: 1.04 !important;
  }

  .page-services .section-services-primary .section-head p {
    max-width: 100% !important;
    font-size: 16px !important;
    line-height: 1.58 !important;
  }

  .page-services .section-services-primary .service-showcases {
    gap: 0 !important;
    border-top: 0 !important;
  }

  .page-services .section-services-primary .service-showcase,
  .page-services .section-services-primary .service-showcase.reverse {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    padding: 20px 0 !important;
  }

  .page-services .section-services-primary .service-showcase + .service-showcase,
  .page-services .section-services-primary .service-showcase + .service-showcase.reverse,
  .page-services .section-services-primary .service-showcase.reverse + .service-showcase,
  .page-services .section-services-primary .service-showcase.reverse + .service-showcase.reverse {
    padding-top: 24px !important;
    border-top: 1px solid rgba(9, 28, 41, .08) !important;
  }

  .page-services .section-services-primary .service-showcase-media {
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: 18px !important;
  }

  .page-services .section-services-primary .service-showcase-cards {
    padding: 0 !important;
  }

  .page-services .section-services-primary .service-card {
    padding: 18px 0 !important;
  }

  .page-services .section-services-primary .service-card__tag {
    margin: 0 0 10px !important;
    font-size: 10px !important;
  }

  .page-services .section-services-primary .service-card h3 {
    font-size: clamp(24px, 6.4vw, 29px) !important;
    margin-bottom: 10px !important;
  }

  .page-services .section-services-primary .service-card p {
    max-width: 100% !important;
    font-size: 15px !important;
    line-height: 1.58 !important;
  }



/* Single VLibras strategy inside the service-gallery lightbox: dock in header, never over media. */
.serviceGalleryLightbox__utilityDock {
  display: none;
}

@media (max-width: 980px) {
  .serviceGalleryLightbox__header {
    grid-template-columns: minmax(0, 1fr) auto auto auto !important;
  }
  .serviceGalleryLightbox__utilityDock {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    min-width: 42px !important;
    min-height: 48px !important;
  }
  .serviceGalleryLightbox__utilityDock[hidden] {
    display: none !important;
  }
  .serviceGalleryLightbox__utilityDock [vw],
  .serviceGalleryLightbox__utilityDock [vw].enabled {
    position: static !important;
    inset: auto !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    transform: none !important;
    z-index: auto !important;
  }
  .serviceGalleryLightbox__utilityDock [vw] [vw-access-button],
  .serviceGalleryLightbox__utilityDock [vw].enabled [vw-access-button] {
    position: static !important;
    inset: auto !important;
    margin: 0 !important;
    transform: scale(.54) !important;
    transform-origin: center center !important;
  }
  body.serviceGallery-open .a11y-fab {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

@media (max-width: 720px) {
  .page-services .section-services-primary > .shell {
    width: calc(100% - 28px) !important;
  }
  .serviceGalleryLightbox__utilityDock [vw] [vw-access-button],
  .serviceGalleryLightbox__utilityDock [vw].enabled [vw-access-button] {
    transform: scale(.48) !important;
  }
}

/* Mobile navigation — final approved institutional layout */
@media (max-width: 980px) {
  :root {
    --header-h: 78px;
    --brand-mobile-closed: clamp(204px, 55vw, 222px);
    --brand-mobile-open: clamp(214px, 58vw, 232px);
  }

  .site-header,
  .page-home .site-header,
  .internal-page .site-header {
    height: var(--header-h) !important;
  }

  .site-header .nav {
    min-height: var(--header-h) !important;
    height: var(--header-h) !important;
    align-items: center !important;
  }

  .site-header .brand,
  .page-home .site-header .brand,
  .internal-page .site-header .brand,
  .site-header.scrolled .brand,
  .page-home .site-header.scrolled .brand,
  .internal-page .site-header.scrolled .brand {
    width: var(--brand-mobile-closed) !important;
    max-width: calc(100vw - 104px) !important;
  }

  body.menu-open.page-home .site-header .brand,
  body.menu-open.internal-page[class*="page-"] .site-header .brand {
    width: var(--brand-mobile-open) !important;
    max-width: calc(100vw - 100px) !important;
  }

  body.menu-open .site-header,
  body.menu-open.page-home .site-header,
  body.menu-open.internal-page .site-header {
    background: #FCFBFA !important;
    color: var(--navy) !important;
    box-shadow: 0 1px 0 rgba(9, 28, 41, .09) !important;
  }

  body.menu-open .site-header::before,
  body.menu-open.page-home .site-header::before,
  body.menu-open.internal-page .site-header::before {
    background: #FCFBFA !important;
    opacity: 1 !important;
  }

  body.menu-open.page-home .site-header .brand-logo-white,
  body.menu-open.internal-page[class*="page-"] .site-header .brand-logo-white {
    opacity: 0 !important;
  }

  body.menu-open.page-home .site-header .brand-logo-color,
  body.menu-open.internal-page[class*="page-"] .site-header .brand-logo-color {
    opacity: 1 !important;
  }

  .site-header .menu-btn,
  .site-header.scrolled .menu-btn {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .site-header .menu-btn__line {
    right: 3px !important;
    height: 2px !important;
    border-radius: 999px !important;
  }

  .menu-btn.is-open,
  body.menu-open .menu-btn.is-open {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    border: 1px solid rgba(9, 28, 41, .14) !important;
    border-radius: 999px !important;
    background: #FFFFFF !important;
    color: var(--navy) !important;
    box-shadow: none !important;
  }

  .menu-btn.is-open .menu-btn__line {
    left: 50% !important;
    right: auto !important;
    top: 50% !important;
    height: 1.7px !important;
    background: currentColor !important;
    transform-origin: center !important;
  }

  .menu-btn.is-open .menu-btn__line--short {
    width: 22px !important;
    transform: translate(-50%, -50%) rotate(45deg) !important;
  }

  .menu-btn.is-open .menu-btn__line--medium {
    width: 0 !important;
    opacity: 0 !important;
    transform: translate(-50%, -50%) !important;
  }

  .menu-btn.is-open .menu-btn__line--long {
    width: 22px !important;
    transform: translate(-50%, -50%) rotate(-45deg) !important;
  }

  .site-header .mobile-nav,
  .page-home .site-header .mobile-nav,
  .internal-page .site-header .mobile-nav {
    inset: var(--header-h) 0 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    min-height: 0 !important;
    max-height: calc(100dvh - var(--header-h)) !important;
    padding: clamp(22px, 4dvh, 30px) 22px max(22px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    background: var(--surface) !important;
    color: var(--navy) !important;
    border-top: 0 !important;
    box-shadow: none !important;
  }

  .site-header .mobile-nav__primary {
    display: grid !important;
    gap: 0 !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
  }

  .site-header .mobile-nav__primary > a {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    min-height: 52px !important;
    padding: 7px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--navy) !important;
    font-size: clamp(18.5px, 4.65vw, 20px) !important;
    font-weight: 560 !important;
    line-height: 1.08 !important;
    letter-spacing: -.022em !important;
    text-decoration: none !important;
  }

  .site-header .mobile-nav__primary > a::before {
    content: "" !important;
    width: 0 !important;
    height: 2px !important;
    margin-right: 0 !important;
    border-radius: 999px !important;
    background: var(--orange) !important;
    transition: width .22s var(--ease), margin-right .22s var(--ease) !important;
  }

  .site-header .mobile-nav__primary > a.active {
    color: var(--blue) !important;
    font-weight: 660 !important;
  }

  .site-header .mobile-nav__primary > a.active::before {
    width: 20px !important;
    margin-right: 12px !important;
    background: var(--orange) !important;
  }

  .site-header .mobile-nav__utility {
    margin-top: auto !important;
    padding: 18px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(9, 28, 41, .10) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .site-header .mobile-nav__utility::before,
  .site-header .mobile-nav__utility::after {
    content: none !important;
    display: none !important;
  }

  .site-header .mobile-nav__utility .mobile-presentation {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--blue) !important;
    font-size: 13.5px !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
  }

  .site-header .mobile-nav__utility .mobile-presentation::after {
    content: "↗" !important;
    margin-left: 12px !important;
    font-size: 13px !important;
    opacity: .72 !important;
  }

  .site-header .mobile-nav__utility .mobile-contact-cta {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 50px !important;
    margin: 12px 0 0 !important;
    padding: 0 18px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: var(--orange) !important;
    color: var(--navy) !important;
    font-size: 15px !important;
    font-weight: 680 !important;
    letter-spacing: -.01em !important;
    box-shadow: none !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row {
    display: block !important;
    margin: 14px 0 0 !important;
    padding: 12px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(9, 28, 41, .08) !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row .lang-switcher__menu {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    gap: 18px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row .lang-switcher__menu a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    min-height: 32px !important;
    padding: 0 0 3px !important;
    gap: 6px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(9, 28, 41, .68) !important;
    font-size: 12px !important;
    font-weight: 680 !important;
    line-height: 1 !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row .lang-option-name {
    display: none !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row .lang-flag {
    display: none !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row a.is-current {
    color: var(--blue) !important;
    background: transparent !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row a.is-current::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: var(--orange) !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row a.is-current .lang-flag {
    display: block !important;
    width: 17px !important;
    height: auto !important;
    border-radius: 2px !important;
  }

  .page-contact .contact-visual__seal {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 24px auto 0 !important;
    padding: 0 0 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .page-contact .contact-visual__seal img {
    display: block !important;
    width: min(240px, 68vw) !important;
    max-width: 100% !important;
    height: auto !important;
    margin-inline: auto !important;
  }
}

@media (max-width: 980px) and (max-height: 700px) {
  .site-header .mobile-nav,
  .page-home .site-header .mobile-nav,
  .internal-page .site-header .mobile-nav {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .site-header .mobile-nav__primary > a {
    min-height: 44px !important;
    font-size: 17.5px !important;
  }

  .site-header .mobile-nav__utility {
    padding-top: 12px !important;
  }

  .site-header .mobile-nav__utility .mobile-presentation {
    min-height: 36px !important;
  }

  .site-header .mobile-nav__utility .mobile-contact-cta {
    min-height: 46px !important;
    margin-top: 8px !important;
  }

  .site-header .mobile-nav__utility .mobile-language-row {
    margin-top: 9px !important;
    padding-top: 8px !important;
  }
}


/* NEIVA R11 — restore videos and protect gallery title descenders */
.page-services #service-gallery .section-head,
.page-services #service-gallery .section-head > div {
  overflow: visible !important;
}

.page-services #service-gallery .section-head h2 {
  line-height: 1.04 !important;
  padding-bottom: .10em !important;
  overflow: visible !important;
}

@media (max-width: 720px) {
  .page-services #service-gallery .section-head h2 {
    line-height: 1.06 !important;
    padding-bottom: .10em !important;
  }
}
