
/* =========================================================
   Prime Terceirizados — correções mobile V2
   Este arquivo é carregado por último para neutralizar
   conflitos antigos e impedir cortes/overflow no celular.
   ========================================================= */

/* A animação precisa terminar em sua posição real. */
.reveal.is-visible {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

@media (max-width: 1199.98px) {
  html {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    overflow-x: clip;
  }

  body,
  header,
  main,
  footer,
  nav,
  section {
    min-width: 0;
    max-width: 100%;
  }

  /* Garante que nenhum container fique deslocado ou maior que a tela. */
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: max(18px, env(safe-area-inset-left)) !important;
    padding-right: max(18px, env(safe-area-inset-right)) !important;
  }

  .row > *,
  .hero-premium-grid > *,
  .service-feature > *,
  .about-panel > *,
  .process-grid > * {
    min-width: 0;
  }

  /* Header mobile sempre branco, como no desktop atual. */
  .site-header,
  .home-page .site-header {
    width: 100%;
    max-width: 100%;
    min-height: 70px;
    background: rgba(255,255,255,.985) !important;
    border-bottom: 1px solid #e3eaf1 !important;
    box-shadow: 0 7px 22px rgba(13,41,68,.08) !important;
    backdrop-filter: blur(16px);
  }

  .site-header .navbar,
  .home-page .site-header .navbar {
    width: 100%;
    min-height: 70px;
    padding: 6px 0 !important;
  }

  .site-header .navbar > .container-xl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }

  .navbar-brand {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
  }

  .brand-logo,
  .home-page .brand-logo {
    display: block;
    width: 86px !important;
    height: 54px !important;
    max-width: 86px;
    object-fit: contain;
    object-position: left center;
    filter: none !important;
  }

  .navbar-toggler,
  .home-page .navbar-toggler {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    margin-left: auto !important;
    padding: 0 !important;
    border-radius: 13px !important;
    background: #f3f7fb !important;
    color: #1b2b3b !important;
  }

  .navbar-toggler i,
  .home-page .navbar-toggler i {
    color: #1b2b3b !important;
  }

  .navbar-collapse,
  .home-page .navbar-collapse {
    flex-basis: 100%;
    width: 100%;
    min-width: 0;
    margin-top: 8px !important;
    padding: 10px !important;
    border: 1px solid #dfe7ef !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 16px 38px rgba(13,41,68,.12) !important;
  }

  .navbar-nav,
  .home-nav-pill {
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .navbar-nav .nav-link,
  .home-page .navbar-nav .nav-link {
    width: 100%;
    min-height: 46px;
    padding: 11px 12px !important;
    border-radius: 11px !important;
    color: #33465a !important;
  }

  .dropdown-menu {
    width: 100%;
    max-width: 100%;
    min-width: 0 !important;
    position: static !important;
    margin: 4px 0 8px !important;
    padding: 5px !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    background: #f7f9fc !important;
  }

  .dropdown-item {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  .site-header .btn-prime {
    width: 100%;
    max-width: 100%;
    margin: 8px 0 0 !important;
  }

  /* Impede animações laterais de criarem área horizontal fora da tela. */
  .reveal.reveal-left,
  .reveal.reveal-right {
    transform: translate3d(0, 22px, 0);
  }

  img,
  svg,
  video,
  iframe {
    max-width: 100%;
  }

  .btn-prime,
  .btn-prime-outline,
  .btn-neutral,
  .btn-whatsapp,
  .btn-prime-ghost {
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }

  .site-footer {
    overflow: hidden;
  }
}

@media (max-width: 767.98px) {
  :root {
    --header-height: 70px;
  }

  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {
    padding-left: max(18px, env(safe-area-inset-left)) !important;
    padding-right: max(18px, env(safe-area-inset-right)) !important;
  }

  .section {
    padding: 54px 0 !important;
  }

  .section-sm {
    padding: 42px 0 !important;
  }

  /* HOME / HERO */
  .home-hero-premium {
    width: 100%;
    max-width: 100%;
    min-height: auto !important;
    padding-top: 36px !important;
    padding-bottom: 28px !important;
    overflow: hidden !important;
  }

  .hero-premium-image {
    inset: 0 !important;
    transform: none !important;
    background-position: 68% center !important;
  }

  .hero-premium-overlay {
    inset: 0 !important;
    background:
      linear-gradient(90deg, rgba(5,14,24,.94) 0%, rgba(5,14,24,.88) 46%, rgba(5,14,24,.58) 100%),
      linear-gradient(180deg, rgba(5,14,24,.08) 0%, rgba(5,14,24,.58) 100%) !important;
  }

  .hero-premium-grid,
  .hero-simple-grid {
    width: 100%;
    max-width: 100%;
    min-height: 500px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    align-items: center !important;
  }

  .hero-premium-copy {
    width: 100%;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  .hero-kicker {
    max-width: 100%;
    font-size: .72rem !important;
    letter-spacing: .13em !important;
  }

  .hero-kicker::before {
    flex: 0 0 28px;
    width: 28px;
  }

  .home-hero-premium h1 {
    width: 100%;
    max-width: 100% !important;
    margin: 16px 0 16px !important;
    padding: 0 !important;
    font-size: clamp(2.15rem, 9.5vw, 3rem) !important;
    line-height: 1 !important;
    letter-spacing: -.052em !important;
    text-wrap: pretty !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .home-hero-premium p {
    width: 100%;
    max-width: 34rem !important;
    margin: 0 !important;
    font-size: 1rem !important;
    line-height: 1.62 !important;
  }

  .hero-actions,
  .hero-actions-left {
    width: 100%;
    max-width: 100%;
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 10px !important;
    margin-top: 22px !important;
  }

  .hero-actions > * {
    width: 100% !important;
    min-width: 0;
    min-height: 52px;
    margin: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .hero-value-strip-wrap {
    width: 100%;
    max-width: 100%;
    margin-top: 18px !important;
  }

  .hero-value-strip {
    width: 100%;
    max-width: 100%;
    grid-template-columns: 1fr !important;
    border-radius: 20px !important;
  }

  .hero-value-strip article {
    min-width: 0;
    padding: 18px !important;
  }

  .hero-value-strip article + article {
    border-left: 0 !important;
    border-top: 1px solid rgba(255,255,255,.09) !important;
  }

  /* SEÇÕES DA HOME */
  .services-featured,
  .home-specialties,
  .home-about,
  .home-process,
  .home-cta {
    overflow: hidden;
    padding-top: 58px !important;
    padding-bottom: 58px !important;
  }

  .home-cta {
    padding-top: 0 !important;
  }

  .home-heading {
    width: 100%;
    max-width: 100% !important;
    margin-bottom: 30px !important;
  }

  .home-heading h2,
  .about-copy h2,
  .home-cta-panel h2 {
    max-width: 100%;
    font-size: clamp(1.9rem, 8vw, 2.5rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.042em !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  .home-heading p,
  .about-copy p {
    font-size: .98rem;
    line-height: 1.66;
  }

  .service-feature-list {
    width: 100%;
    gap: 56px !important;
  }

  .service-feature,
  .service-feature-reverse {
    width: 100%;
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
  }

  .service-feature-media,
  .service-feature-copy,
  .service-feature-reverse .service-feature-media,
  .service-feature-reverse .service-feature-copy {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    order: initial !important;
  }

  .service-feature-media.reveal,
  .service-feature-copy.reveal {
    transform: translate3d(0, 22px, 0);
  }

  .service-feature-media.reveal.is-visible,
  .service-feature-copy.reveal.is-visible {
    transform: none !important;
  }

  .services-featured .service-feature-shape,
  .services-featured .service-blob-left,
  .services-featured .service-blob-right {
    width: 100%;
    max-width: 100%;
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: 24px !important;
    overflow: hidden;
  }

  .services-featured .service-feature-photo img {
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
  }

  .service-feature-dots,
  .service-feature-dots-right {
    display: none !important;
  }

  .service-feature-copy h3 {
    width: 100%;
    max-width: 100%;
    margin: 12px 0 14px !important;
    font-size: clamp(1.75rem, 7.4vw, 2.28rem) !important;
    line-height: 1.1 !important;
    letter-spacing: -.035em !important;
  }

  .service-feature-copy p {
    font-size: .98rem !important;
    line-height: 1.66 !important;
  }

  .service-feature-copy ul {
    width: 100%;
    max-width: 100%;
    padding-left: 0 !important;
    margin-top: 18px !important;
  }

  .service-feature-copy li {
    width: 100%;
    max-width: 100%;
    padding-left: 22px !important;
    font-size: .95rem;
    line-height: 1.55;
  }

  .service-card-link {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .specialties-grid,
  .process-grid {
    width: 100%;
    grid-template-columns: 1fr !important;
  }

  .specialty-card,
  .process-card {
    width: 100%;
    min-width: 0;
    min-height: 0 !important;
  }

  .about-panel {
    width: 100%;
    max-width: 100%;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 20px !important;
    border-radius: 22px !important;
    overflow: hidden;
  }

  .about-values {
    width: 100%;
    min-width: 0;
  }

  .about-values > div {
    width: 100%;
    min-width: 0;
    grid-template-columns: 44px minmax(0, 1fr) !important;
  }

  .about-values p {
    grid-column: 1 / -1 !important;
    margin-top: 2px !important;
  }

  .home-cta-panel {
    width: 100%;
    max-width: 100%;
    padding: 28px 20px !important;
    border-radius: 22px !important;
    overflow: hidden;
  }

  .home-cta-panel .btn-prime {
    width: 100%;
  }

  /* PÁGINAS INTERNAS */
  .page-hero {
    width: 100%;
    max-width: 100%;
    padding: 46px 0 42px !important;
    overflow: hidden !important;
  }

  .page-intro,
  .section-title {
    width: 100%;
    max-width: 100% !important;
  }

  .page-intro h1,
  .section-title h2 {
    max-width: 100%;
    font-size: clamp(1.95rem, 8.6vw, 2.6rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  .page-intro p,
  .lead-copy {
    max-width: 100%;
    font-size: 1rem !important;
    line-height: 1.65 !important;
  }

  .service-page .page-hero .row,
  .service-overview .row,
  .service-scope .row,
  .service-specialties .row,
  .service-cta-wrap .row {
    margin-left: calc(-.5 * var(--bs-gutter-x));
    margin-right: calc(-.5 * var(--bs-gutter-x));
  }

  .service-page .page-hero .btn-prime,
  .service-cta-wrap .btn-neutral {
    width: 100%;
    min-height: 50px;
  }

  .modern-photo-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 10px !important;
    border-radius: 20px !important;
  }

  .modern-photo-card img {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 4 / 3 !important;
    border-radius: 14px !important;
  }

  .photo-badge {
    position: static !important;
    max-width: 100% !important;
    margin-bottom: 9px !important;
    padding: 9px 11px !important;
    font-size: .7rem !important;
    white-space: normal;
  }

  .photo-title-card {
    position: static !important;
    width: 100%;
    max-width: 100% !important;
    margin-top: 9px !important;
    padding: 11px 13px !important;
    border-radius: 13px !important;
    backdrop-filter: none !important;
  }

  .service-page .check-list {
    width: 100%;
  }

  .service-page .check-list li {
    min-width: 0;
    line-height: 1.55;
  }

  .service-page .notice-box {
    width: 100%;
    max-width: 100%;
    padding: 16px !important;
    border-radius: 15px !important;
  }

  .service-page .scope-item,
  .limpeza-page .specialty-detail {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .service-page .scope-item > div {
    min-width: 0;
  }

  .cta-panel {
    width: 100%;
    max-width: 100%;
    padding: 24px 20px !important;
    border-radius: 20px !important;
  }

  .cta-panel h2 {
    max-width: 100%;
    font-size: clamp(1.75rem, 7.5vw, 2.25rem) !important;
    line-height: 1.1 !important;
  }

  /* CONTATO */
  .contact-whatsapp-card {
    width: 100%;
    max-width: 100%;
    padding: 26px 18px !important;
    border-radius: 22px !important;
  }

  .contact-whatsapp-card h2 {
    max-width: 100%;
    font-size: clamp(1.75rem, 8vw, 2.35rem) !important;
    overflow-wrap: anywhere;
  }

  .btn-whatsapp {
    width: 100%;
    min-height: 52px;
    padding: 13px 15px;
  }

  /* RODAPÉ */
  .site-footer {
    width: 100%;
    max-width: 100%;
    margin-top: 20px !important;
    padding: 44px 0 22px !important;
  }

  .site-footer .row {
    --bs-gutter-y: 1.8rem;
  }

  .site-footer .row > .col-6 {
    width: 100% !important;
  }

  .footer-links-columns {
    columns: 1 !important;
  }

  .footer-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    margin-top: 28px !important;
    gap: 8px !important;
  }
}

@media (max-width: 479.98px) {
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }

  .brand-logo,
  .home-page .brand-logo {
    width: 78px !important;
    height: 50px !important;
  }

  .home-hero-premium {
    padding-top: 30px !important;
  }

  .hero-premium-grid,
  .hero-simple-grid {
    min-height: 470px !important;
  }

  .home-hero-premium h1 {
    font-size: clamp(2.05rem, 9.8vw, 2.65rem) !important;
  }

  .home-heading h2,
  .about-copy h2,
  .home-cta-panel h2 {
    font-size: clamp(1.8rem, 8.3vw, 2.25rem) !important;
  }

  .service-feature-copy h3 {
    font-size: clamp(1.65rem, 7.7vw, 2.05rem) !important;
  }

  .about-panel,
  .home-cta-panel,
  .contact-whatsapp-card {
    border-radius: 19px !important;
  }
}

/* Em celulares, preferimos movimento vertical curto em vez de entrada lateral. */
@media (max-width: 767.98px) and (prefers-reduced-motion: no-preference) {
  .reveal.reveal-left,
  .reveal.reveal-right,
  .reveal.reveal-up {
    transform: translate3d(0, 18px, 0);
  }

  .reveal.reveal-left.is-visible,
  .reveal.reveal-right.is-visible,
  .reveal.reveal-up.is-visible {
    transform: none !important;
  }
}


/* Home — trajetória e reorganização */
@media (max-width: 767.98px) {
  .home-experience { width: 100%; max-width: 100%; overflow: hidden; }
  .experience-panel, .experience-mark, .experience-copy { width: 100%; max-width: 100%; min-width: 0; }
  .experience-mark { display: flex; align-items: center; }
  .experience-number { flex: 0 0 auto; }
  .experience-unit { min-width: 0; }
  .experience-copy h2, .experience-copy p { max-width: 100%; overflow-wrap: normal; word-break: normal; }
  .home-experience + .home-about { padding-top: 28px !important; }
}


