/* MedUse — correções responsivas e de alinhamento (v1.0.0) */

/* Serviços e Cursos: o hero passa a usar o mesmo eixo horizontal das seções. */
.subhero__inner{ max-width:1180px; }
.subhero h1{ max-width:900px; }
.subhero__lead{ max-width:720px; }
.subhero__chips{ max-width:920px; }

/* Proteção geral contra estouro de termos técnicos e nomes de produtos. */
.card,.method-card,.case__stat,.choose-item,.module,.format,.diff{ min-width:0; }
.card h2,.card h3,.method-card h3,.case__stat b,
.choose-item__need,.choose-item__sol,.badge,.tag,.course__meta span,
.module h3,.format h3,.diff h3{ overflow-wrap:anywhere; word-break:normal; }

@media (max-width:1024px){
  .process{ gap:44px 24px; }
}

@media (max-width:960px){
  /* Cabeçalho mobile branco e no fluxo: elimina o logo branco sobre o hero. */
  .site-header--overlay,
  .site-header--overlay.is-scrolled{
    position:sticky;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid var(--border-subtle);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  .site-header--overlay .logo-light{ display:none !important; }
  .site-header--overlay .logo-dark{ display:block !important; }
  .site-header--overlay:not(.is-scrolled) .nav-toggle{
    border-color:var(--border-default);
    color:var(--navy-700);
  }

  /* Menu sempre legível, rolável e independente da posição da página. */
  .nav{
    position:fixed;
    inset:var(--header-h) 0 auto 0;
    z-index:110;
    max-height:calc(100dvh - var(--header-h));
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:12px 20px max(20px,env(safe-area-inset-bottom));
  }
  .nav__link,
  .site-header--overlay:not(.is-scrolled) .nav__link,
  .site-header--overlay:not(.is-scrolled) .nav__link:hover,
  .site-header--overlay:not(.is-scrolled) .nav__link[aria-current="page"]{
    color:var(--text-muted);
  }
  .nav__link[aria-current="page"],
  .site-header--overlay:not(.is-scrolled) .nav__link[aria-current="page"]{
    color:var(--navy-700);
  }
  body.nav-open{ overflow:hidden; touch-action:none; }

  .about__grid,.contact__grid,.faq__grid,.course__grid{ gap:48px; }
  .section__inner{ padding:72px 24px; }
  .subhero__inner{ padding-top:68px; padding-bottom:68px; }
}

@media (max-width:640px){
  :root{ --header-h:82px; }
  .site-header__inner{ min-height:var(--header-h); height:var(--header-h); }
  .site-header__logo img{ height:32px; max-width:210px; }
  .nav-toggle{ width:46px; height:46px; }

  .hero__media{ min-height:650px; }
  .hero--full h1{ font-size:clamp(37px,11.4vw,50px); line-height:1.05; }
  .hero--full .hero__lead{ font-size:16px; line-height:1.7; margin-top:26px; }
  .hero--full .hero__actions{ margin-top:28px; }

  .section__inner{ padding-top:76px; padding-bottom:76px; }
  .section-head{ margin-bottom:40px; }
  .section-head--center{ margin-bottom:42px; }
  .section-head h2{ font-size:30px; }
  .section-head p{ font-size:16px; }
  .subhero__inner{ padding-top:58px; padding-bottom:58px; }
  .subhero h1{ font-size:34px; }
  .subhero__chips{ gap:10px; margin-top:28px; }
  .chip-link{ flex:1 1 100%; padding:13px 16px; }

  .card{ padding:24px; }
  .line-head{ margin-bottom:34px; }
  .line-head__top,.course__top,.method-card__top{ align-items:flex-start; flex-wrap:wrap; }
  .method-card__top h3{ flex:1 1 180px; min-width:0; }
  .course__grid{ gap:56px; }
  .modules{ gap:16px; }
  .module{ padding:20px; }
  .module__n{ width:34px; height:34px; }

  /* Soluções longas como BIHealth e MedGuidance não espremem o texto. */
  .choose-item{ flex-direction:column; align-items:flex-start; gap:8px; padding:20px; }
  .choose-item__sol{ white-space:normal; font-size:16px; }

  .case-list{ gap:36px; }
  .case__aside{ padding:28px 24px 30px; min-height:0; }
  .case__main{ padding:28px 24px 32px; }
  .case__stats{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .case__stat{ min-width:0; padding:15px; }
  .case__stat b{ font-size:clamp(18px,6vw,22px); }
  .case__status{ width:100%; justify-content:flex-start; white-space:normal; line-height:1.35; }

  .stat{ padding:26px 24px; }
  .stat__n{ font-size:clamp(32px,10vw,40px); overflow-wrap:anywhere; }

  .btn{ white-space:normal; line-height:1.3; min-width:0; }
  .cta-band__inner,.site-footer__top{ align-items:stretch; }
  .cta-band__inner{ padding-top:58px; padding-bottom:58px; }
  .cta-band .btn{ width:100%; }

  /* Um depoimento completo por vez; sem flashes entre dois cartões. */
  .carousel__viewport{ width:100%; }
  .carousel__track{ gap:16px; }
  .carousel__slide{ flex:0 0 100%; width:100%; }
  .carousel__controls{ margin-top:26px; }

  .partners{ gap:18px 24px; }
  .partners img{ height:38px; max-width:145px; }
  .partners--footer{ gap:28px; width:100%; justify-content:flex-start; }
  .partners--footer .partner + .partner{ border-left:0; padding-left:0; }
  .partners--footer .partner{ align-items:flex-start; }

  .wa-float{ width:56px; height:56px; right:16px; bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px)); }
  .wa-float svg{ width:29px; height:29px; }
}

@media (max-width:420px){
  .container{ padding-left:20px; padding-right:20px; }
  .section__inner,.subhero__inner,.cta-band__inner,.site-footer__top,.hero__inner{ padding-left:20px; padding-right:20px; }
  .hero__media{ min-height:680px; }
  .hero--full h1{ font-size:clamp(35px,11.2vw,46px); }
  .case__stats{ grid-template-columns:1fr; }
  .course__meta{ gap:12px; }
  .course__meta span{ width:100%; align-items:flex-start; }
  .badge,.tag{ max-width:100%; white-space:normal; }
}

/* ============================================================
   Acessibilidade — contraste, distinção de links e alvos de toque
   ============================================================ */

/* Contraste AA para textos pequenos identificados pelo Lighthouse. */
.process__n{ color:var(--cyan-700); }
.testi__role,
.contact-row__k,
.form-note{ color:var(--gray-600); }

/* Links em texto corrido não dependem apenas da cor. */
.contact__panel label a,
.contact__panel .form-note a{
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-underline-offset:3px;
}
.contact__panel label a:hover,
.contact__panel .form-note a:hover{
  text-decoration-thickness:2px;
}


/* Reserva o espaço dos controles antes de o JavaScript criar os pontos.
   Mantém os alvos de 48 px exigidos pela acessibilidade sem gerar CLS. */
.carousel__controls{ min-height:48px; }
.carousel__dots{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:48px;
  align-items:center;
  justify-content:center;
  min-height:48px;
  min-width:96px;
}
@media (max-width:640px){
  .carousel__dots{ min-width:192px; }
}

/* Mantém o ponto visual compacto, mas oferece alvo de toque de 48 × 48 px. */
.carousel__dots{ gap:0; }
.carousel__dot{
  position:relative;
  width:48px;
  height:48px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#fff;
  transform:none;
}
.carousel__dot::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:10px;
  height:10px;
  border-radius:50%;
  background:rgba(255,255,255,.38);
  transform:translate(-50%,-50%);
  transition:background var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard);
}
.carousel__dot[aria-current="true"]{
  background:transparent;
  transform:none;
}
.carousel__dot[aria-current="true"]::before{
  background:var(--cyan-300);
  transform:translate(-50%,-50%) scale(1.35);
}
.carousel__dot:hover::before{ background:#fff; }

@media (max-width:420px){
  .carousel__controls{ gap:6px; }
}
