.will-fade{opacity:0;transform:translateY(18px);transition:opacity .45s ease,transform .45s ease}
.will-fade.is-visible{opacity:1;transform:none}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{padding-top:0;overflow-x:hidden}
img,picture,video{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--cor-destaque);outline-offset:2px}

.site-disclaimer-top{
  position:relative;
  z-index:1002;
  padding:8px 0;
  font-size:.72rem;
  line-height:1.45;
}
.navbar{
  position:sticky;
  top:0;
  z-index:1000;
}
.page-content{padding-top:24px}

.hero,
.hero--baby{
  min-height:min(100vh,880px);
  background-color:#1a2f38;
  background-image:
    linear-gradient(135deg,rgba(30,90,110,.88),rgba(26,47,56,.78)),
    image-set(
      url("../images/banner-960.webp") type("image/webp") 1x,
      url("../images/banner-1400.webp") type("image/webp") 2x
    );
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  content-visibility:auto;
  contain-intrinsic-size:800px;
}
@supports not (background-image:image-set(url("x") 1x)){
  .hero,.hero--baby{
    background-image:linear-gradient(135deg,rgba(30,90,110,.88),rgba(26,47,56,.78)),url("../images/banner-960.webp");
  }
}

.servicos,.sobre,.valores,.estatisticas,.depoimentos,.faq,.contato,.footer{
  content-visibility:auto;
  contain-intrinsic-size:700px;
}

.btn,.nav-link-cta,.faq-pergunta,.carousel-btn,.menu-toggle{
  min-height:44px;
  touch-action:manipulation;
}
.form-group input,
.form-group textarea{font-size:16px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .whatsapp-float{animation:none}
  .will-fade{opacity:1;transform:none}
}

@media (max-width:1024px){
  .hero,.hero--baby{min-height:auto;padding:120px 20px 70px}
  .hero-title{font-size:clamp(1.9rem,4vw,2.8rem)}
  .hero-subtitle{font-size:clamp(1rem,2.4vw,1.2rem)}
  .sobre,.servicos,.valores,.depoimentos,.faq,.contato{padding:70px 20px}
  .sobre-image img{height:auto;max-height:420px;aspect-ratio:4/3;object-fit:cover}
}

@media (max-width:1100px){
  .menu-toggle{display:flex !important}
  .nav-menu{
    position:fixed !important;
    top:56px !important;
    right:-100% !important;
    width:min(100%,320px) !important;
    height:calc(100dvh - 56px) !important;
    background:var(--cor-branco) !important;
    box-shadow:var(--sombra-forte) !important;
    flex-direction:column !important;
    padding:24px 18px !important;
    gap:8px !important;
    transition:right .3s ease !important;
    align-items:stretch !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    display:flex !important;
  }
  .nav-menu.active{right:0 !important}
  .nav-link::after{display:none !important}
  .nav-link,
  .nav-link.nav-link-cta{
    width:100%;
    display:block;
    text-align:left;
    padding:12px 14px;
  }
  .nav-link.nav-link-cta{text-align:center;margin-top:8px}
  .logo-text{font-size:clamp(1rem,2.8vw,1.35rem);max-width:72vw}
  .nav-wrapper{padding:10px 0}
}

@media (max-width:768px){
  .site-disclaimer-top{font-size:.65rem;padding:8px 0}
  .site-disclaimer-top .container{padding:0 12px}
  .site-disclaimer-address{font-size:.6rem}

  .hero,.hero--baby{
    min-height:auto;
    padding:88px 16px 48px;
    background-image:
      linear-gradient(160deg,rgba(20,50,60,.92),rgba(26,47,56,.82)),
      url("../images/banner-640.webp");
  }
  .hero-content{max-width:100%}
  .hero-eyebrow{font-size:.7rem;padding:6px 10px;margin-bottom:12px}
  .hero-title{font-size:clamp(1.55rem,7vw,2.1rem);margin-bottom:14px;line-height:1.25}
  .hero-subtitle{font-size:.95rem;margin-bottom:22px;line-height:1.55}
  .hero-legal-note{font-size:.68rem;margin-top:18px;text-align:left}
  .hero-cta{gap:10px;flex-direction:column}
  .btn{width:100%;text-align:center;padding:13px 18px;font-size:.98rem}

  .section-header{margin-bottom:28px}
  .section-title{font-size:1.7rem}
  .section-subtitle{font-size:.95rem}
  .servicos-grid,.valores-grid{grid-template-columns:1fr;gap:14px}
  .servico-card,.valor-card{padding:22px 18px}
  .servico-titulo{font-size:1.15rem}

  .sobre-grid{gap:24px}
  .sobre-text{font-size:1rem}
  .sobre-missao{padding:18px}
  .info-item{min-width:140px}

  .estatisticas{padding:48px 16px}
  .estatisticas-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .stat-card{padding:16px 12px}
  .stat-numero{font-size:2.1rem}
  .stat-label{font-size:.9rem}

  .carousel-wrapper{min-height:auto}
  .depoimento-card{padding:22px 16px}
  .depoimento-texto{font-size:1rem;margin-bottom:14px}
  .carousel-controls{margin-top:20px;gap:14px}
  .carousel-btn{width:44px;height:44px}

  .faq-pergunta{padding:16px;font-size:1rem;gap:10px}
  .faq-resposta,
  .faq-item.active .faq-resposta{padding-left:16px;padding-right:16px}
  .faq-item.active .faq-resposta{max-height:none;padding-bottom:16px}

  .contato{padding:60px 16px}
  .contato-form-wrapper{padding:20px 16px}
  .contato-form .form-row{grid-template-columns:1fr}
  .contato-info h3{font-size:1.35rem;margin-bottom:18px}

  .footer{padding:40px 16px 16px}
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .footer-legal{padding:14px}
  .footer-legal p{font-size:.8rem}

  .scroll-to-top{bottom:20px;right:16px;width:44px;height:44px}
  #trust-badges{padding:10px 0 !important}
  #trust-badges > div{gap:12px !important;padding:0 12px !important}
}

@media (max-width:480px){
  .container{padding:0 14px}
  .hero-title{font-size:1.45rem}
  .hero-subtitle{font-size:.9rem}
  .estatisticas-grid{grid-template-columns:1fr 1fr;gap:10px}
  .stat-numero{font-size:1.75rem}
  .logo-text{font-size:1rem;line-height:1.2;max-width:70vw}
}

@media (max-width:360px){
  .estatisticas-grid{grid-template-columns:1fr}
  .hero-cta .btn{font-size:.92rem}
}

@supports (padding:max(0px)){
  .site-disclaimer-top,.navbar,.footer,#trust-badges{
    padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
  }
  .scroll-to-top{
    right:max(16px,env(safe-area-inset-right));
    bottom:max(20px,env(safe-area-inset-bottom));
  }
}

