
  /* ============================================================
     Landing page do módulo App do Colaborador.
     Carregada DEPOIS de landing.css, que já traz os componentes
     compartilhados (.reveal, .faq, .field, .btn, .hero-accent) e todo
     o mock de celular (.app-stage, .app-phone, .app-kpis, .app-item,
     .app-chip). Aqui ficam as peças de layout da LP de módulo.
     ============================================================ */

  /* ---------- tipografia e grades próprias da LP ----------
     Ficam aqui (e não como utilitários arbitrários no HTML) para a página
     renderizar igual antes e depois do "npm run build:css". */
  .mod-h1 { font-size: clamp(2.1rem, 4.6vw, 3.2rem); line-height: 1.06; }
  .mod-h2 { font-size: clamp(1.8rem, 3.6vw, 2.5rem); line-height: 1.12; }
  .mod-h2-sm { font-size: clamp(1.7rem, 3.2vw, 2.3rem); line-height: 1.12; }
  .mod-lead { font-size: clamp(1rem, 1.6vw, 1.15rem); }
  .mod-cta-h2 { font-size: clamp(2rem, 4.4vw, 3.1rem); line-height: 1.05; }
  .mod-sub { font-size: clamp(1.2rem, 2.4vw, 1.65rem); line-height: 1.25; }

  .trust-list { display: grid; gap: 10px 24px; max-width: 34rem; }
  @media (min-width: 640px) { .trust-list { grid-template-columns: repeat(3, 1fr); } }

  .gain-grid { display: grid; gap: 32px; }
  @media (min-width: 768px) { .gain-grid { grid-template-columns: 1fr 1fr; column-gap: 48px; } }

  .steps { display: grid; gap: 32px; position: relative; }
  @media (min-width: 640px) {
    .steps { grid-template-columns: repeat(3, 1fr); }
    .steps::before { content: ''; position: absolute; top: 28px; left: 16.6%; right: 16.6%; border-top: 2px dashed #E8E7E5; }
  }

  /* CTA do hero: lado a lado quando cabe, empilhado quando não */
  .cta-row { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
  @media (min-width: 640px) { .cta-row { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 20px; } }

  /* ---------- comparativo: papel e WhatsApp x app do colaborador ---------- */
  .cmp { display: grid; gap: 18px; align-items: stretch; }
  @media (min-width: 860px) { .cmp { grid-template-columns: 1fr auto 1fr; gap: 12px; } }
  .cmp-panel { background: #fff; border: 1px solid #E8E7E5; border-radius: 16px; padding: 26px 24px; }
  .cmp-panel.is-app { border: 2px solid #D12B2B; box-shadow: 0 18px 44px -20px rgba(209,43,43,.30); }
  .cmp-tag { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #9a9a9a; }
  .cmp-panel.is-app .cmp-tag { color: #D12B2B; }
  .cmp-panel h3 { margin: 12px 0 0; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 19px; color: #111; }
  .cmp-panel > p { margin: 8px 0 0; font-size: 14px; line-height: 1.6; color: #666; }
  .cmp-list { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
  .cmp-list li { display: flex; align-items: flex-start; gap: 9px; font-size: 13.5px; line-height: 1.45; color: #444; }
  .cmp-list i, .cmp-list svg { flex: none; width: 16px; height: 16px; margin-top: 2px; color: #b9b7b3; }
  .cmp-panel.is-app .cmp-list i, .cmp-panel.is-app .cmp-list svg { color: #1F8A5B; }
  .cmp-arrow { display: flex; align-items: center; justify-content: center; color: #D12B2B; }
  .cmp-arrow span {
    width: 44px; height: 44px; border-radius: 50%; background: #FCEDED;
    display: flex; align-items: center; justify-content: center; border: 1px solid rgba(209,43,43,.18);
  }
  .cmp-arrow i, .cmp-arrow svg { width: 20px; height: 20px; }
  @media (max-width: 859px) { .cmp-arrow i, .cmp-arrow svg { transform: rotate(90deg); } }

  /* ---------- ganhos de gestão ---------- */
  .gain { display: flex; align-items: flex-start; gap: 14px; }
  .gain .g-ico {
    flex: none; width: 40px; height: 40px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    color: #D12B2B; background: linear-gradient(145deg, #FCEDED 0%, #F6DEDE 100%);
    box-shadow: inset 0 0 0 1px rgba(209,43,43,.14);
  }
  .gain .g-ico i, .gain .g-ico svg { width: 19px; height: 19px; }
  .gain h4 { margin: 2px 0 0; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 15px; color: #111; }
  .gain p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.55; color: #6b6b6b; }

  /* ---------- palco do celular no hero ----------
     Aqui a coluna é mais larga que na home, então limitamos a largura para
     os chips continuarem colados ao aparelho. */
  .app-stage { max-width: 430px; margin-left: auto; margin-right: auto; }

  /* ---------- carrossel de telas reais dentro do smartphone ----------
     A moldura escura simula o aparelho; as capturas se sobrepõem em
     absoluto e alternam por opacidade. A proporção vem do padding-top
     (1600/738 = 216.8%), que funciona sem depender de aspect-ratio. */
  .appcar { display: flex; justify-content: center; }
  /* moldura de smartphone, usada no hero e no carrossel */
  .ph-frame {
    /* largura definida (e não 100%): a tela é preenchida por uma imagem em
       posição absoluta, então sem isso a moldura colapsa para zero quando o
       contêiner é shrink-to-fit (grid item com margem automática). */
    position: relative; width: 292px; max-width: 100%;
    border-radius: 34px; padding: 11px 7px 9px;
    /* aro prata-escuro: gradiente com fio de luz no topo e sombra própria */
    background: linear-gradient(160deg, #A8ADB4 0%, #7C8188 45%, #565A60 100%);
    box-shadow:
      0 34px 62px -26px rgba(17,17,17,.38),
      0 10px 22px -12px rgba(17,17,17,.20),
      inset 0 1px 0 rgba(255,255,255,.4),
      inset 0 0 0 1px rgba(17,17,17,.22);
  }
  .ph-speaker {
    position: absolute; top: 4px; left: 50%; transform: translateX(-50%);
    width: 46px; height: 3px; border-radius: 3px; background: #4C5056;
  }
  /* fio escuro entre o aro e a tela, para a captura não encostar no prata */
  .ph-screen {
    position: relative; padding-top: 216.8%; border-radius: 26px; overflow: hidden;
    background: #fff; box-shadow: 0 0 0 1px rgba(17,17,17,.22);
  }
  .ph-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
  /* no hero o aparelho é menor, para a dobra não ficar alta demais */
  .ph-frame.is-hero { width: 250px; }
  .appcar-slide {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: 0; transition: opacity .45s ease;
  }
  .appcar-slide.is-active { opacity: 1; }
  @media (prefers-reduced-motion: reduce) { .appcar-slide { transition: none; } }

  /* lista de telas: legenda e, quando há JS, controle do carrossel */
  .appcar-steps { display: grid; gap: 10px; }
  .appcar-step {
    display: flex; align-items: flex-start; gap: 12px; width: 100%; text-align: left;
    background: #fff; border: 1.5px solid #E8E7E5; border-radius: 12px; padding: 13px 15px;
    cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease;
  }
  .appcar-step:hover { border-color: rgba(209,43,43,.4); }
  .appcar-step.is-active { border-color: #D12B2B; box-shadow: 0 10px 30px -14px rgba(209,43,43,.32); }
  .appcar-step .acs-ico {
    flex: none; width: 38px; height: 38px; border-radius: 11px;
    display: flex; align-items: center; justify-content: center;
    background: #F3F2F0; color: #9a9a9a; transition: background .2s ease, color .2s ease;
  }
  .appcar-step.is-active .acs-ico { background: #FCEDED; color: #D12B2B; }
  .appcar-step .acs-ico i, .appcar-step .acs-ico svg { width: 19px; height: 19px; }
  .appcar-step b { display: block; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 14px; color: #111; line-height: 1.2; }
  .appcar-step small { display: block; font-size: 12.5px; line-height: 1.45; color: #777; margin-top: 3px; }

  /* ---------- chips do hero ----------
     O palco encolhe até a largura do aparelho, então "left: 0" (landing.css)
     encosta o chip na borda do celular. Aqui ele sai um pouco para a esquerda.
     Fica neste arquivo para não deslocar o chip da mesma seção na home. */
  .app-chip-key { top: 26px; left: -52px; }
  .app-chip-sign { right: -46px; bottom: 34px; }
  @media (max-width: 1023px) {
    .app-chip-key { left: -26px; }
    .app-chip-sign { right: -22px; }
  }

  /* ---------- card coringa no grid de funcionalidades ---------- */
  .feat-cta .feat-cta-btn { align-self: flex-start; margin-top: auto; }
