/* Neiva Serviços — movimentos e hover transplantados da referência V216.
   Este arquivo contém somente comportamento visual; não altera layout, medidas ou conteúdo. */

:root{
  --motion-reference-ease:cubic-bezier(.22,.79,.24,1);
  --motion-reference-shadow:0 24px 52px rgba(7,0,42,.14),0 9px 22px rgba(7,0,42,.08);
}

/* Reveal editorial usado nos cards da referência. As classes são adicionadas pelo JS,
   portanto o conteúdo permanece visível caso scripts estejam bloqueados. */
.v8-reveal{
  opacity:0 !important;
  transform:translateY(24px) scale(.988) !important;
  transition:opacity .56s ease,transform .62s var(--motion-reference-ease),box-shadow .26s ease,border-color .26s ease !important;
  transition-delay:var(--v8-delay,0ms) !important;
  will-change:opacity,transform;
}
.v8-reveal.is-visible{
  opacity:1 !important;
  transform:translateY(0) scale(1) !important;
}

/* Direções laterais existentes na V216. */
@media (min-width:901px){
  .page-services .services-grid > :nth-child(odd).v8-reveal,
  .page-services .svc-item--1.v8-reveal,.page-services .svc-item--4.v8-reveal,
  .page-services .svc-item--5.v8-reveal,.page-services .svc-item--8.v8-reveal,
  .page-services .svc-item--9.v8-reveal{transform:translateX(-56px) !important;}
  .page-services .services-grid > :nth-child(even).v8-reveal,
  .page-services .svc-item--2.v8-reveal,.page-services .svc-item--3.v8-reveal,
  .page-services .svc-item--6.v8-reveal,.page-services .svc-item--7.v8-reveal{transform:translateX(56px) !important;}
  .page-services .capabilities-grid > :nth-child(odd).v8-reveal{transform:translateX(-40px) !important;}
  .page-services .capabilities-grid > :nth-child(even).v8-reveal{transform:translateX(40px) !important;}
  .page-portfolio .portfolio-item--1.v8-reveal,.page-portfolio .portfolio-item--3.v8-reveal{transform:translateX(-42px) !important;}
  .page-portfolio .portfolio-item--2.v8-reveal,.page-portfolio .portfolio-item--4.v8-reveal{transform:translateX(42px) !important;}
  .page-services .v8-reveal.is-visible,.page-portfolio .v8-reveal.is-visible{transform:none !important;opacity:1 !important;}
}

/* Sequência repetível das linhas de serviços e projetos, igual à referência V216. */
@media (min-width:721px){
  html.desktop-premium-v12 .desktop-reveal-v12{
    opacity:0 !important;
    transition:opacity .55s ease,transform .7s cubic-bezier(.22,.78,.24,1),box-shadow .28s ease !important;
    transition-delay:var(--flow-delay,0ms) !important;
    will-change:opacity,transform;
  }
  html.desktop-premium-v12 .desktop-reveal-v12[data-reveal="slide-left"]{transform:translateX(-54px) !important;}
  html.desktop-premium-v12 .desktop-reveal-v12[data-reveal="slide-right"]{transform:translateX(54px) !important;}
  html.desktop-premium-v12 .desktop-reveal-v12[data-reveal="fade-up"]{transform:translateY(34px) scale(.99) !important;}
  html.desktop-premium-v12 .desktop-reveal-v12.is-visible{opacity:1 !important;transform:none !important;}
}

/* Reveal móvel da referência. */
@media (max-width:900px){
  html.mobile-evolution-v101 [data-neiva-reveal]{
    opacity:0 !important;
    transform:translate3d(0,22px,0) !important;
    transition:opacity .7s var(--motion-reference-ease),transform .7s var(--motion-reference-ease) !important;
    transition-delay:var(--neiva-reveal-delay,0ms) !important;
    will-change:opacity,transform;
  }
  html.mobile-evolution-v101 [data-neiva-reveal="left"]{transform:translate3d(-18px,0,0) !important;}
  html.mobile-evolution-v101 [data-neiva-reveal="right"]{transform:translate3d(18px,0,0) !important;}
  html.mobile-evolution-v101 [data-neiva-reveal="scale"]{transform:scale(.965) !important;}
  html.mobile-evolution-v101 [data-neiva-reveal].is-visible{opacity:1 !important;transform:none !important;}
}

/* Hover corporativo da V216, mapeado para os componentes atuais. */
@media (min-width:901px) and (hover:hover){
  .card,.why-card,.why-item,.pillar-card,.value-card,.mv-card,.values-card,.about-value-card,
  .service-flow-card,.capability-card,.capability-desktop-card,.portfolio-item,.portfolio-shot,
  .contact-channel,.state-tile,.fieldGallery__service,.marquee-item,
  .btn,.menu a,.langSwitch__btn,.footer a{
    transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background-color .24s ease,color .22s ease,opacity .22s ease !important;
  }
  .card:hover,.why-card:hover,.why-item:hover,.pillar-card:hover,.value-card:hover,.mv-card:hover,
  .values-card:hover,.about-value-card:hover,.capability-card:hover,.capability-desktop-card:hover,
  .portfolio-item:hover,.contact-channel:hover{
    transform:translateY(-3px) !important;
    border-color:rgba(31,95,168,.22) !important;
    box-shadow:var(--neiva-card-shadow-hover,var(--motion-reference-shadow)) !important;
  }
  .page-services .service-flow-card:hover{
    transform:translateY(-4px) !important;
    border-color:rgba(var(--flow-rgb,31,95,168),.28) !important;
    box-shadow:var(--v12-shadow-hover,var(--motion-reference-shadow)) !important;
  }
  .page-services .services-grid > .card:hover,
  .page-services .svc-item:hover,
  .page-services .capability-card:hover,
  .page-portfolio .portfolio-item:hover,
  .page-portfolio .portfolio-shot:hover,
  .page-portfolio .section .sep + .card:hover{
    transform:translateY(-6px) !important;
    box-shadow:var(--v11-shadow-strong,var(--motion-reference-shadow)) !important;
  }
  .btn:hover,.page-intro .btn:hover{transform:translateY(-1px) !important;}
  .langSwitch__btn:hover,.menu a:hover,.footer a:hover{opacity:.88;}
}

@media (prefers-reduced-motion:reduce){
  .v8-reveal,.desktop-reveal-v12,[data-neiva-reveal]{opacity:1 !important;transform:none !important;transition:none !important;}
}


/* Sobre — Valores: SVGs +4% e 6px mais altos */
body.page-about .about-value-card__art{
  width:131px !important;
  height:92px !important;
  margin:18px -2px 0 16px !important;
}
body.page-about .about-value-card--ethics .about-value-card__art{width:137px !important;}
body.page-about .about-value-card--safety .about-value-card__art{width:131px !important;}
body.page-about .about-value-card--quality .about-value-card__art{width:137px !important;}
@media (max-width:1180px) and (min-width:901px){
  body.page-about .about-value-card__art{width:116px !important;height:83px !important;margin:16px -2px 0 12px !important;}
  body.page-about .about-value-card--ethics .about-value-card__art{width:123px !important;}
  body.page-about .about-value-card--safety .about-value-card__art{width:119px !important;}
  body.page-about .about-value-card--quality .about-value-card__art{width:121px !important;}
}
@media (max-width:900px){
  body.page-about .about-value-card__art,
  body.page-about .about-value-card--ethics .about-value-card__art,
  body.page-about .about-value-card--safety .about-value-card__art,
  body.page-about .about-value-card--quality .about-value-card__art{
    width:77px !important;
    height:71px !important;
    right:8px !important;
    bottom:11px !important;
  }
}

/* =========================================================
   SOBRE — VALORES | SVGs desktop conforme referência visual
   Mobile preservado sem alterações.
   ========================================================= */
@media (min-width: 901px){
  body.page-about .values-cards--premium > .about-value-card{
    display:flex !important;
    flex-direction:column !important;
  }

  body.page-about .about-value-card__art,
  body.page-about .about-value-card--ethics .about-value-card__art,
  body.page-about .about-value-card--safety .about-value-card__art,
  body.page-about .about-value-card--quality .about-value-card__art{
    position:relative !important;
    float:none !important;
    display:block !important;
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center !important;
    shape-outside:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
    top:-6px !important;
  }

  body.page-about .about-value-card--ethics .about-value-card__art{
    width:184px !important;
    margin-top:12px !important;
    margin-bottom:7px !important;
  }

  body.page-about .about-value-card--safety .about-value-card__art{
    width:190px !important;
    margin-top:6px !important;
    margin-bottom:5px !important;
  }

  body.page-about .about-value-card--quality .about-value-card__art{
    width:192px !important;
    margin-top:6px !important;
    margin-bottom:7px !important;
  }

  body.page-about .values-cards--premium .about-value-card > p{
    margin-top:auto !important;
  }
}



/* Sobre — Valores desktop: altura definitiva de 370px.
   Sobrescreve a regra da página que limitava max-height a 269px. */
@media (min-width:901px){
  html.device-desktop body.page-about .values-cards--premium > .about-value-card,
  html:not(.device-mobile) body.page-about .values-cards--premium > .about-value-card{
    height:370px !important;
    min-height:370px !important;
    max-height:370px !important;
  }
}


/* Sobre — Valores desktop: imagem maior e texto mais próximo */
@media (min-width:901px){
  html.device-desktop body.page-about .values-cards--premium > .about-value-card,
  html:not(.device-mobile) body.page-about .values-cards--premium > .about-value-card{
    padding: 18px 20px 22px !important;
    justify-content: flex-start !important;
    row-gap: 0 !important;
  }

  body.page-about .values-cards--premium .values-card__title{
    margin-bottom: 2px !important;
  }

  body.page-about .about-value-card--ethics .about-value-card__art{
    width: 198px !important;
    margin-top: 8px !important;
    margin-bottom: 10px !important;
  }

  body.page-about .about-value-card--safety .about-value-card__art{
    width: 204px !important;
    margin-top: 2px !important;
    margin-bottom: 10px !important;
  }

  body.page-about .about-value-card--quality .about-value-card__art{
    width: 206px !important;
    margin-top: 2px !important;
    margin-bottom: 10px !important;
  }

  body.page-about .values-cards--premium .about-value-card > p{
    margin-top: 2px !important;
    padding-top: 0 !important;
  }
}


/* Sobre — Valores desktop: logos maiores, alinhamento individual e cores corrigidas */
@media (min-width:901px){
  body.page-about .about-value-card .values-card__title{
    margin-bottom: 12px !important;
  }

  body.page-about .about-value-card--ethics .values-card__title{
    color: #FE6D14 !important;
  }

  body.page-about .about-value-card--safety .values-card__title{
    color: #91A95F !important;
  }

  body.page-about .about-value-card--quality .values-card__title{
    color: #07002A !important;
  }

  body.page-about .about-value-card--ethics .about-value-card__art{
    width: 228px !important;
    top: 0 !important;
    margin-top: 14px !important;
    margin-bottom: 12px !important;
  }

  body.page-about .about-value-card--safety .about-value-card__art{
    width: 236px !important;
    top: 0 !important;
    margin-top: 20px !important;
    margin-bottom: 10px !important;
  }

  body.page-about .about-value-card--quality .about-value-card__art{
    width: 238px !important;
    top: 0 !important;
    margin-top: 18px !important;
    margin-bottom: 10px !important;
  }

  body.page-about .values-cards--premium .about-value-card > p{
    margin-top: 4px !important;
  }
}


/* Home hero desktop: bloco de informações 10px à direita */
@media (min-width: 992px){
  body.page-home .hero__panel--premium{
    margin-left: 20px !important;
  }
}

/* Rodapé mobile + desktop: texto descritivo +1px */
html body .footer .footer__desc{
  font-size: calc(0.9rem + 2px) !important;
}


/* Desktop only: hero +15px to the right from current config */
@media (min-width: 992px){
  body.page-home .hero__panel--premium{
    margin-left: 35px !important;
  }
}

/* Desktop only: Pilares de atuação cards - reduce about 30% from current height, adapting from bottom upward */
@media (min-width: 992px){
  body.page-home .pillars-grid > .pillar-card{
    min-height: 109px !important;
    height: auto !important;
    padding: 18px 20px 13px !important;
    align-content: start !important;
  }
}


/* Desktop — Hero: deslocamento real de 15px, acima da regra margin:0!important */
@media (min-width:992px){
  html.device-desktop body.page-home .hero.hero--static .hero__panel--premium{
    left:15px !important;
    margin-left:0 !important;
  }
}

/* Desktop e mobile — Carrossel de clientes: espaçamento entre logos validado em 55px */
body.page-home .clients-marquee .marquee-track,
body.page-home .clients-marquee .marquee-track.marquee-track--js,
body.page-home .clients-marquee .marquee-track.is-paused{
  gap:55px !important;
}


/* =========================================================
   MOBILE ONLY — menu icons, functional Pilares arrow and
   reduced gap before Capacidades técnicas.
   ========================================================= */

/* Home and Contact icons remain white in portrait, landscape and zoom-triggered mobile mode. */
html.device-mobile body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="home"],
html.device-mobile body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="contact"],
html:not(.device-desktop) body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="home"],
html:not(.device-desktop) body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="contact"]{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
html.device-mobile body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="home"] svg,
html.device-mobile body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="contact"] svg,
html.device-mobile body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="home"] svg *,
html.device-mobile body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="contact"] svg *,
html:not(.device-desktop) body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="home"] svg,
html:not(.device-desktop) body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="contact"] svg,
html:not(.device-desktop) body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="home"] svg *,
html:not(.device-desktop) body.mobile-nav-v2 nav.mobileDock .mobileDock__item[data-sector-icon="contact"] svg *{
  color:#FFFFFF !important;
  fill:none !important;
  stroke:#FFFFFF !important;
  stroke-width:2.05 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  filter:none !important;
}

/* The Pilares arrow is now a real, accessible control. */
@media (max-width:900px){
  html.device-mobile body.page-home .section--pillars .pillars-more-hint,
  html:not(.device-desktop) body.mobile-nav-v2.page-home .section--pillars .pillars-more-hint{
    appearance:none !important;
    -webkit-appearance:none !important;
    padding:0 !important;
    font:inherit !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
  }
  html.device-mobile body.page-home .section--pillars .pillars-more-hint:active,
  html:not(.device-desktop) body.mobile-nav-v2.page-home .section--pillars .pillars-more-hint:active{
    transform:translateY(-50%) scale(.94) !important;
  }
  html.device-mobile body.page-home .section--pillars .pillars-more-hint:focus-visible,
  html:not(.device-desktop) body.mobile-nav-v2.page-home .section--pillars .pillars-more-hint:focus-visible{
    outline:3px solid rgba(254,109,20,.42) !important;
    outline-offset:2px !important;
  }
}

/* Reduce only the empty vertical gap between gallery and Capacidades técnicas. */
html.device-mobile body.page-services .capabilities-premium,
html:not(.device-desktop) body.mobile-nav-v2.page-services .capabilities-premium{
  padding-top:44px !important;
}


/* Home — Qualidade e segurança: quebras específicas desktop/mobile */
.quality-copy{display:block;}
.quality-copy--mobile{display:none;}
@media (max-width:991.98px){
  .quality-copy--desktop{display:none !important;}
  .quality-copy--mobile{display:block !important;}
}
@media (min-width:992px){
  .quality-copy--desktop{display:block !important;}
  .quality-copy--mobile{display:none !important;}
}

/* =========================================================
   HOME / PILARES — MOBILE PREMIUM PREVIOUS + NEXT CONTROLS
   Clean navigation below the cards; desktop remains unchanged.
   ========================================================= */
body.page-home .pillars-mobile-nav-premium{
  display:none;
}

@media (max-width:900px){
  body.page-home .pillars-more-hint{
    display:none !important;
  }

  body.page-home .pillars-mobile-nav-premium{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:max-content !important;
    max-width:100% !important;
    min-height:58px !important;
    margin:12px auto 28px !important;
    padding:8px !important;
    gap:8px !important;
    border:1px solid rgba(31,95,168,.12) !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.94) !important;
    box-shadow:0 10px 28px rgba(7,0,42,.08), inset 0 1px 0 rgba(255,255,255,.96) !important;
    -webkit-backdrop-filter:blur(12px) !important;
    backdrop-filter:blur(12px) !important;
  }

  body.page-home .pillars-mobile-nav-button{
    -webkit-appearance:none !important;
    appearance:none !important;
    display:grid !important;
    place-items:center !important;
    flex:0 0 42px !important;
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 !important;
    padding:0 !important;
    border:1px solid rgba(31,95,168,.14) !important;
    border-radius:13px !important;
    background:#FFFFFF !important;
    color:#1F5FA8 !important;
    box-shadow:0 4px 12px rgba(7,0,42,.06) !important;
    cursor:pointer !important;
    touch-action:manipulation !important;
    transition:transform .22s ease, background-color .22s ease, border-color .22s ease, color .22s ease, opacity .22s ease, box-shadow .22s ease !important;
  }

  body.page-home .pillars-mobile-nav-button--next:not(:disabled),
  body.page-home .pillars-mobile-nav-button--prev:not(:disabled){
    border-color:#1F5FA8 !important;
    background:#1F5FA8 !important;
    color:#FFFFFF !important;
    box-shadow:0 7px 16px rgba(31,95,168,.22) !important;
  }

  body.page-home .pillars-mobile-nav-button svg{
    display:block !important;
    width:19px !important;
    height:19px !important;
    overflow:visible !important;
  }

  body.page-home .pillars-mobile-nav-button svg path{
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:2 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
  }

  body.page-home .pillars-mobile-nav-button:active:not(:disabled){
    transform:scale(.94) !important;
  }

  body.page-home .pillars-mobile-nav-button:focus-visible{
    outline:3px solid rgba(254,109,20,.36) !important;
    outline-offset:2px !important;
  }

  body.page-home .pillars-mobile-nav-button:disabled{
    border-color:rgba(7,0,42,.07) !important;
    background:#F5F7FA !important;
    color:rgba(7,0,42,.24) !important;
    box-shadow:none !important;
    cursor:default !important;
    opacity:.72 !important;
  }

  body.page-home .pillars-mobile-nav-counter{
    display:flex !important;
    align-items:baseline !important;
    justify-content:center !important;
    flex:0 0 72px !important;
    min-width:72px !important;
    height:42px !important;
    padding:0 8px !important;
    color:#07002A !important;
    font-variant-numeric:tabular-nums !important;
    letter-spacing:.01em !important;
  }

  body.page-home .pillars-mobile-nav-current{
    font-size:15px !important;
    line-height:42px !important;
    font-weight:750 !important;
    color:#07002A !important;
  }

  body.page-home .pillars-mobile-nav-total{
    font-size:11px !important;
    line-height:42px !important;
    font-weight:700 !important;
    color:rgba(7,0,42,.52) !important;
  }

  body.page-home .pillars-mobile-nav-status{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
  }
}

@media (prefers-reduced-motion:reduce){
  body.page-home .pillars-mobile-nav-button{
    transition:none !important;
  }
}


/* ================================================================
   Mobile Motion V272 — correção definitiva
   - mesmo breakpoint do site (até 1023px)
   - estado inicial pintado antes da revelação
   - hero mobile com sequência própria
   ================================================================ */
@media (max-width:1023px){
  html.mobile-motion-v272 [data-neiva-reveal]{
    opacity:0 !important;
    transform:translate3d(0,30px,0) scale(.992) !important;
    transition-property:opacity,transform !important;
    transition-duration:1.05s,1.15s !important;
    transition-timing-function:cubic-bezier(.22,.79,.24,1),cubic-bezier(.22,.79,.24,1) !important;
    transition-delay:var(--neiva-reveal-delay,0ms) !important;
    will-change:opacity,transform;
    backface-visibility:hidden;
  }
  html.mobile-motion-v272 [data-neiva-reveal="left"]{
    transform:translate3d(-34px,0,0) scale(.994) !important;
  }
  html.mobile-motion-v272 [data-neiva-reveal="right"]{
    transform:translate3d(34px,0,0) scale(.994) !important;
  }
  html.mobile-motion-v272 [data-neiva-reveal="scale"]{
    transform:scale(.955) !important;
  }
  html.mobile-motion-v272 [data-neiva-reveal].is-visible{
    opacity:1 !important;
    transform:translate3d(0,0,0) scale(1) !important;
  }

  html.mobile-motion-v272 [data-neiva-hero-reveal]{
    opacity:0 !important;
    transform:translate3d(0,34px,0) !important;
    filter:blur(3px) !important;
    transition-property:opacity,transform,filter !important;
    transition-duration:1.05s,1.18s,.9s !important;
    transition-timing-function:cubic-bezier(.22,.79,.24,1),cubic-bezier(.22,.79,.24,1),ease-out !important;
    transition-delay:var(--neiva-hero-delay,0ms) !important;
    will-change:opacity,transform,filter;
    backface-visibility:hidden;
  }
  html.mobile-motion-v272 [data-neiva-hero-reveal="left"]{
    transform:translate3d(-38px,0,0) !important;
  }
  html.mobile-motion-v272 [data-neiva-hero-reveal="right"]{
    transform:translate3d(38px,0,0) !important;
  }
  html.mobile-motion-v272 [data-neiva-hero-reveal="scale"]{
    transform:translate3d(0,14px,0) scale(.94) !important;
  }
  html.mobile-motion-v272 [data-neiva-hero-reveal].is-visible{
    opacity:1 !important;
    transform:translate3d(0,0,0) scale(1) !important;
    filter:blur(0) !important;
  }

  html.mobile-motion-v272 body.page-home .hero-bg__picture{
    animation:neiva-mobile-hero-bg-v272 1.65s cubic-bezier(.22,.79,.24,1) both;
    transform-origin:50% 50%;
  }
  @keyframes neiva-mobile-hero-bg-v272{
    from{opacity:.68;transform:scale(1.045)}
    to{opacity:1;transform:scale(1)}
  }
}

/* Em aparelhos com redução de movimento, preserva um fade discreto em vez de zerar o efeito. */
@media (max-width:1023px) and (prefers-reduced-motion:reduce){
  html.mobile-motion-v272 [data-neiva-reveal],
  html.mobile-motion-v272 [data-neiva-hero-reveal]{
    opacity:0 !important;
    transform:none !important;
    filter:none !important;
    transition:opacity .48s ease var(--neiva-reveal-delay,var(--neiva-hero-delay,0ms)) !important;
  }
  html.mobile-motion-v272 [data-neiva-reveal].is-visible,
  html.mobile-motion-v272 [data-neiva-hero-reveal].is-visible{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
  html.mobile-motion-v272 body.page-home .hero-bg__picture{
    animation:neiva-mobile-hero-bg-reduced-v272 .55s ease both !important;
  }
  @keyframes neiva-mobile-hero-bg-reduced-v272{
    from{opacity:.72}
    to{opacity:1}
  }
}

/* ================================================================
   SOLUTIONS / MOBILE V273
   Only the mobile services card rail and Field Operations selector.
   ================================================================ */
body.page-services .solutions-mobile-nav-premium{
  display:none;
}

@media (max-width:1023px){
  html.device-mobile body.page-services .solutions-mobile-nav-premium,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-premium{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:max-content !important;
    max-width:100% !important;
    min-height:54px !important;
    margin:5px auto 0 !important;
    padding:7px !important;
    gap:7px !important;
    border:1px solid rgba(31,95,168,.10) !important;
    border-radius:17px !important;
    background:rgba(255,255,255,.92) !important;
    box-shadow:0 8px 22px rgba(7,0,42,.065),inset 0 1px 0 rgba(255,255,255,.96) !important;
    -webkit-backdrop-filter:blur(12px) !important;
    backdrop-filter:blur(12px) !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button{
    -webkit-appearance:none !important;
    appearance:none !important;
    display:grid !important;
    place-items:center !important;
    flex:0 0 38px !important;
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    border:1px solid #1F5FA8 !important;
    border-radius:12px !important;
    background:#1F5FA8 !important;
    color:#fff !important;
    box-shadow:0 6px 14px rgba(31,95,168,.18) !important;
    cursor:pointer !important;
    touch-action:manipulation !important;
    transition:transform .2s ease,opacity .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button svg,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button svg{
    display:block !important;
    width:18px !important;
    height:18px !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button svg path,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button svg path{
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:2 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button:active:not(:disabled),
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button:active:not(:disabled){
    transform:scale(.94) !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button:focus-visible,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button:focus-visible{
    outline:3px solid rgba(254,109,20,.32) !important;
    outline-offset:2px !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button:disabled,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button:disabled{
    border-color:rgba(7,0,42,.07) !important;
    background:#F5F7FA !important;
    color:rgba(7,0,42,.22) !important;
    box-shadow:none !important;
    opacity:.7 !important;
    cursor:default !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-counter,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-counter{
    display:flex !important;
    align-items:baseline !important;
    justify-content:center !important;
    flex:0 0 68px !important;
    min-width:68px !important;
    height:38px !important;
    padding:0 7px !important;
    color:#07002A !important;
    font-variant-numeric:tabular-nums !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-current,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-current{
    color:#07002A !important;
    font-size:14px !important;
    line-height:38px !important;
    font-weight:750 !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-total,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-total{
    color:rgba(7,0,42,.48) !important;
    font-size:10.5px !important;
    line-height:38px !important;
    font-weight:700 !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-status,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-status{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    margin:-1px !important;
    padding:0 !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104{
    grid-template-rows:auto auto !important;
    row-gap:0 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__meta,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__meta{
    grid-column:1 / -1 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__viewport .fieldGallery__rail,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__viewport .fieldGallery__rail{
    padding:0 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    border:1px solid rgba(255,255,255,.30) !important;
    border-radius:12px !important;
    background:rgba(31,95,168,.86) !important;
    box-shadow:0 7px 18px rgba(7,0,42,.18) !important;
    transition:transform .2s ease,opacity .2s ease,background-color .2s ease !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow:active:not(:disabled),
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow:active:not(:disabled){
    transform:scale(.94) !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow:disabled,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow:disabled{
    border-color:rgba(255,255,255,.13) !important;
    background:rgba(255,255,255,.10) !important;
    color:rgba(255,255,255,.38) !important;
    box-shadow:none !important;
    opacity:.7 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__all,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__all{
    cursor:pointer !important;
    transition:background-color .2s ease,border-color .2s ease,transform .2s ease !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__all:active,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__all:active{
    transform:scale(.97) !important;
  }

  html.device-mobile body.page-services .fieldGallery__service,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fieldGallery__service{
    cursor:pointer !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104[hidden]{
    display:none !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104{
    position:fixed !important;
    z-index:10050 !important;
    inset:0 !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    padding:18px 12px max(18px,env(safe-area-inset-bottom)) !important;
    background:rgba(7,0,42,.58) !important;
    opacity:0 !important;
    -webkit-backdrop-filter:blur(8px) !important;
    backdrop-filter:blur(8px) !important;
    transition:opacity .18s ease !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104.is-open{
    opacity:1 !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__panel{
    width:min(100%,540px) !important;
    max-height:min(78dvh,680px) !important;
    padding:15px !important;
    overflow:auto !important;
    border:1px solid rgba(255,255,255,.7) !important;
    border-radius:26px !important;
    background:#F5F7FA !important;
    box-shadow:0 28px 70px rgba(7,0,42,.34) !important;
    transform:translateY(18px) scale(.985) !important;
    transition:transform .2s cubic-bezier(.22,.79,.24,1) !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104.is-open .fgServiceSheetV104__panel{
    transform:translateY(0) scale(1) !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__head{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    margin-bottom:12px !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__title{
    margin:0 !important;
    color:#07002A !important;
    font-size:20px !important;
    line-height:1.1 !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__close{
    width:40px !important;
    height:40px !important;
    display:grid !important;
    place-items:center !important;
    border:1px solid rgba(7,0,42,.09) !important;
    border-radius:13px !important;
    background:#fff !important;
    color:#07002A !important;
    font-size:23px !important;
    line-height:1 !important;
    box-shadow:0 5px 14px rgba(7,0,42,.07) !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__list{
    display:grid !important;
    gap:8px !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__item{
    width:100% !important;
    min-height:54px !important;
    padding:9px 11px !important;
    display:grid !important;
    grid-template-columns:34px minmax(0,1fr) !important;
    align-items:center !important;
    gap:11px !important;
    border:1px solid rgba(7,0,42,.08) !important;
    border-radius:16px !important;
    background:#fff !important;
    color:#1F5FA8 !important;
    text-align:left !important;
    box-shadow:0 5px 14px rgba(7,0,42,.045) !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__item.is-active{
    border-color:rgba(254,109,20,.46) !important;
    background:rgba(254,109,20,.065) !important;
    color:#FE6D14 !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__itemIcon{
    width:34px !important;
    height:34px !important;
    display:grid !important;
    place-items:center !important;
    border:1px solid currentColor !important;
    border-radius:11px !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__itemIcon svg{
    width:20px !important;
    height:20px !important;
    fill:none !important;
    stroke:currentColor !important;
  }

  html:not(.device-desktop) .fgServiceSheetV104__itemText{
    min-width:0 !important;
    color:currentColor !important;
    font-size:13px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
  }
}

@media (prefers-reduced-motion:reduce){
  body.page-services .solutions-mobile-nav-button,
  body.page-services .fgServiceSelectorV104__arrow,
  .fgServiceSheetV104,
  .fgServiceSheetV104__panel{
    transition:none !important;
  }
}

/* ================================================================
   SOLUTIONS / MOBILE V274 — refined minimalist controls
   Visual-only refinement requested after V273.
   ================================================================ */
@media (max-width:1023px){
  html.device-mobile body.page-services .solutions-mobile-nav-premium,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-premium{
    min-height:48px !important;
    padding:5px !important;
    gap:6px !important;
    border-color:rgba(31,95,168,.075) !important;
    border-radius:16px !important;
    background:rgba(255,255,255,.88) !important;
    box-shadow:0 5px 16px rgba(7,0,42,.045),inset 0 1px 0 rgba(255,255,255,.96) !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button{
    flex-basis:36px !important;
    width:36px !important;
    min-width:36px !important;
    max-width:36px !important;
    height:36px !important;
    min-height:36px !important;
    max-height:36px !important;
    border:1px solid rgba(31,95,168,.18) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.84) !important;
    color:#1F5FA8 !important;
    box-shadow:0 3px 10px rgba(7,0,42,.055) !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button svg,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button svg{
    width:16px !important;
    height:16px !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button svg path,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button svg path{
    stroke-width:1.75 !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-button:disabled,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-button:disabled{
    border-color:rgba(7,0,42,.055) !important;
    background:rgba(245,247,250,.72) !important;
    color:rgba(7,0,42,.18) !important;
    box-shadow:none !important;
    opacity:.62 !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-counter,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-counter{
    flex-basis:64px !important;
    min-width:64px !important;
    height:36px !important;
  }

  html.device-mobile body.page-services .solutions-mobile-nav-current,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-current,
  html.device-mobile body.page-services .solutions-mobile-nav-total,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .solutions-mobile-nav-total{
    line-height:36px !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    border:1px solid rgba(255,255,255,.34) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.12) !important;
    color:rgba(255,255,255,.94) !important;
    box-shadow:0 3px 12px rgba(7,0,42,.10) !important;
    -webkit-backdrop-filter:blur(8px) !important;
    backdrop-filter:blur(8px) !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow svg,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow svg{
    width:16px !important;
    height:16px !important;
    stroke-width:1.75 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow:disabled,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow:disabled{
    border-color:rgba(255,255,255,.14) !important;
    background:rgba(255,255,255,.055) !important;
    color:rgba(255,255,255,.34) !important;
    box-shadow:none !important;
    opacity:.72 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__meta,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__meta{
    padding-left:9px !important;
  }
}

/* ================================================================
   SOLUTIONS / MOBILE V275 — premium separated gallery navigation
   Keeps the selected service full-width and moves controls below it.
   ================================================================ */
@media (max-width:1023px){
  html.device-mobile body.page-services .fieldGalleryBlock--v80,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fieldGalleryBlock--v80{
    padding-top:30px !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 36px 36px !important;
    grid-template-rows:auto auto auto !important;
    grid-template-areas:
      "service service service"
      "counter previous next"
      "all all all" !important;
    column-gap:7px !important;
    row-gap:10px !important;
    align-items:center !important;
    padding:0 14px !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__viewport,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__viewport{
    grid-area:service !important;
    width:100% !important;
    min-width:0 !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__meta,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__meta{
    display:contents !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__counter,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__counter{
    grid-area:counter !important;
    align-self:center !important;
    justify-self:start !important;
    padding-left:4px !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow--prev,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow--prev{
    grid-area:previous !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow--next,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow--next{
    grid-area:next !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__arrow,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__arrow{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    min-height:36px !important;
    justify-self:end !important;
    border-color:rgba(255,255,255,.26) !important;
    background:rgba(255,255,255,.105) !important;
    box-shadow:0 3px 10px rgba(7,0,42,.085) !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__all,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__all{
    grid-area:all !important;
    width:100% !important;
    min-height:40px !important;
    margin-top:1px !important;
    padding:9px 14px !important;
    border-color:rgba(255,255,255,.20) !important;
    background:rgba(255,255,255,.065) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.055) !important;
    text-align:center !important;
  }

  html.device-mobile body.page-services .fgServiceSelectorV104__viewport .fieldGallery__service,
  html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__viewport .fieldGallery__service{
    min-height:74px !important;
    padding-left:17px !important;
    padding-right:17px !important;
  }
}

/* V278 definitive mobile gallery selector cleanup */
html.device-mobile body.page-services .fgServiceSelectorV104__all,html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__all{
    -webkit-appearance:none !important;
    appearance:none !important;
    min-height:auto !important;
    min-width:0 !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    outline:none !important;
    border-radius:0 !important;
    background:none !important;
    background-color:transparent !important;
    background-image:none !important;
    color:rgba(255,255,255,.96) !important;
    font-size:12px !important;
    line-height:1.22 !important;
    font-weight:700 !important;
    letter-spacing:.01em !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:6px !important;
    width:auto !important;
    justify-self:start !important;
    box-shadow:none !important;
    text-align:left !important;
    text-decoration:none !important;
    white-space:nowrap !important;
    cursor:pointer !important;
  }
html.device-mobile body.page-services .fgServiceSelectorV104__all::before,html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__all::before{
    content:none !important;
    display:none !important;
  }
html.device-mobile body.page-services .fgServiceSelectorV104__all::after,html:not(.device-desktop) body.mobile-nav-v2.page-services .fgServiceSelectorV104__all::after{
    content:"" !important;
    display:inline-block !important;
    width:10px !important;
    height:6px !important;
    margin-left:2px !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(255,255,255,0.92)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
    background-size:10px 6px !important;
    opacity:.96 !important;
    transform:translateY(1px) !important;
    transition:transform .22s ease, opacity .22s ease !important;
  }
html.fg-service-sheet-open body.page-services .fgServiceSelectorV104__all::after,
html.fg-service-sheet-open body.mobile-nav-v2.page-services .fgServiceSelectorV104__all::after{
    transform:translateY(1px) rotate(180deg) !important;
  }



/* V279 — Home mobile pillars buttons matched to approved services control */
@media (max-width:900px){
  body.page-home .pillars-mobile-nav-button{
    flex:0 0 36px !important;
    width:36px !important;
    min-width:36px !important;
    max-width:36px !important;
    height:36px !important;
    min-height:36px !important;
    max-height:36px !important;
    border:1px solid rgba(31,95,168,.18) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.84) !important;
    color:#1F5FA8 !important;
    box-shadow:0 3px 10px rgba(7,0,42,.055) !important;
  }

  body.page-home .pillars-mobile-nav-button svg{
    width:16px !important;
    height:16px !important;
  }

  body.page-home .pillars-mobile-nav-button svg path{
    stroke-width:1.75 !important;
  }

  body.page-home .pillars-mobile-nav-button--next:not(:disabled),
  body.page-home .pillars-mobile-nav-button--prev:not(:disabled){
    border-color:rgba(31,95,168,.18) !important;
    background:rgba(255,255,255,.84) !important;
    color:#1F5FA8 !important;
    box-shadow:0 3px 10px rgba(7,0,42,.055) !important;
  }

  body.page-home .pillars-mobile-nav-button:disabled{
    border-color:rgba(7,0,42,.055) !important;
    background:rgba(245,247,250,.72) !important;
    color:rgba(7,0,42,.18) !important;
    box-shadow:none !important;
    opacity:.62 !important;
  }
}

/* V280 — refined expansion chevron for services selector */


