/* Página Comunidade — extraído para cache HTTP; não alterar copy no HTML */

  /* Fonte igual à home (melissaartioli.com.br) - Inter */
  .comunidade-page {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
  }
  
  /* ========================================
     HERO — abordagem profissional
     Mobile : coluna única (texto + imagem inline)
     Desktop: flexbox dois lados, imagem absoluta
     ======================================== */

  /* ── Seção ── */
  .mv-hero-section {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #0A1A6E 0%, #00063C 60%, #00063C 100%);
    color: #fff;
  }

  /* ── Layout mobile (coluna única) ── */
  .mv-hero-text-col {
    padding: 2.5rem 1.25rem 1.5rem;
  }
  .mv-hero-text-inner {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 36rem;
    margin: 0 auto;
    text-align: center;
  }
  .mv-hero-headline {
    font-size: clamp(1.5rem, 5vw, 2rem);
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    margin: 0;
  }
  .mv-hero-desc {
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.82);
    margin: 0;
  }
  .mv-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: #D4AF37;
    color: #00063C;
    font-weight: 700;
    font-size: 1rem;
    padding: 1rem 1.75rem;
    border-radius: 0.625rem;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(212,175,55,0.4);
    transition: background 0.2s, transform 0.15s;
  }
  .mv-hero-btn:hover { background: #c9a42e; transform: scale(1.04); color: #00063C; }

  /* Imagem mobile: compacta, centralizada, entre h1 e descrição */
  .mv-hero-img-mobile {
    display: flex;
    justify-content: center;
  }
  .mv-hero-img-mobile img {
    width: min(240px, 70vw);
    height: auto;
    border-radius: 1rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.3);
    object-fit: cover;
    object-position: top center;
    aspect-ratio: 3/4;
  }

  /* Coluna de imagem desktop: oculta no mobile */
  .mv-hero-img-col { display: none; }

  /* ── Layout desktop (≥1024px) ── */
  @media (min-width: 1024px) {
    .mv-hero-section {
      display: flex;
      align-items: stretch;
      min-height: 480px;
    }

    /* Coluna de texto: lado esquerdo, 56% */
    .mv-hero-text-col {
      flex: 0 0 56%;
      display: flex;
      align-items: center;
      padding: 3.5rem 0 3.5rem max(2rem, calc(50vw - 40rem));
    }
    .mv-hero-text-inner {
      text-align: left;
      margin: 0;
      max-width: 100%;
      gap: 1.25rem;
    }
    .mv-hero-headline {
      font-size: clamp(1.75rem, 2.5vw, 2.25rem);
    }
    .mv-hero-desc { font-size: 1.05rem; }

    /* Imagem mobile: escondida no desktop */
    .mv-hero-img-mobile { display: none; }

    /* Coluna de imagem: lado direito, 44%, relativa para conter a img absoluta */
    .mv-hero-img-col {
      display: block;
      flex: 0 0 44%;
      position: relative;
      overflow: hidden;
    }

    /* Imagem: preenche a coluna, alinhada ao fundo, levemente acima para mostrar a cabeça */
    .mv-hero-img-desktop {
      position: absolute;
      bottom: 0;
      right: 0;
      height: 115%;          /* 15% extra para garantir que mostra a cabeça */
      width: auto;
      object-fit: contain;
      object-position: bottom right;
      display: block;
    }
  }

  @media (min-width: 1280px) {
    .mv-hero-text-col {
      padding-left: max(2.5rem, calc(50vw - 40rem));
    }
    .mv-hero-headline { font-size: 2.5rem; }
    .mv-hero-img-desktop { height: 120%; }
  }

  @media (min-width: 1536px) {
    .mv-hero-headline { font-size: 3rem; }
  }
  
  /* ========================================
     ANIMAÇÕES DE SCROLL - UX MODERNA
     ======================================== */
  
  /* Elementos começam invisíveis e se movem para cima */
  .scroll-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  }
  
  .scroll-reveal.active {
    opacity: 1;
    transform: translateY(0);
  }
  
  /* Delays progressivos para efeito cascata */
  .scroll-reveal:nth-child(1) { transition-delay: 0.1s; }
  .scroll-reveal:nth-child(2) { transition-delay: 0.2s; }
  .scroll-reveal:nth-child(3) { transition-delay: 0.3s; }
  .scroll-reveal:nth-child(4) { transition-delay: 0.4s; }
  .scroll-reveal:nth-child(5) { transition-delay: 0.5s; }
  
  /* Fade in da esquerda */
  .fade-in-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  }
  
  .fade-in-left.active {
    opacity: 1;
    transform: translateX(0);
  }
  
  /* Fade in da direita */
  .fade-in-right {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  }
  
  .fade-in-right.active {
    opacity: 1;
    transform: translateX(0);
  }
  
  /* Scale up com fade */
  .scale-in {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  }
  
  .scale-in.active {
    opacity: 1;
    transform: scale(1);
  }
  
  /* Ícones com animação de rotação e bounce */
  .icon-bounce {
    transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  }
  
  .icon-bounce:hover {
    transform: scale(1.1) rotate(5deg);
  }
  
  /* Ícones: sem background no img (evita fundo indesejado) */
  .icon-bounce img {
    background: none !important;
    background-color: transparent !important;
  }
  
  /* Hover nos cards com elevação */
  .card-hover {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  .card-hover:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  }
  
  /* Botões com efeito de pulso */
  @keyframes pulse-gold {
    0%, 100% {
      box-shadow: 0 0 0 0 rgba(235, 192, 113, 0.7);
    }
    50% {
      box-shadow: 0 0 0 15px rgba(235, 192, 113, 0);
    }
  }
  
  .btn-pulse {
    animation: pulse-gold 2s infinite;
  }
  
  /* Gradiente animado no hero */
  @keyframes gradient-shift {
    0% {
      background-position: 0% 50%;
    }
    50% {
      background-position: 100% 50%;
    }
    100% {
      background-position: 0% 50%;
    }
  }
  
  .animated-gradient {
    background-size: 200% 200%;
    animation: gradient-shift 15s ease infinite;
  }
  
  /* Mobile: sem animação no hero, gradiente fixo cobrindo toda a seção */
  @media (max-width: 1023px) {
    .mv-hero-section {
      animation: none !important;
      background: linear-gradient(160deg, #00063c 0%, #00063c 25%, #00084a 50%, #011396 100%) !important;
      background-size: cover !important;
      background-position: center center !important;
      background-repeat: no-repeat !important;
    }
  }
  
  /* Linha decorativa animada - REMOVIDA para melhor UX */
  
  /* ========================================
     CTAs PADRONIZADOS NO MOBILE (mesmo formato do botão do hero)
     ======================================== */
  @media (max-width: 1023px) {
    .comunidade-page a.cta-home.link-comunidade-modal:not(.cta-comunidade-fixo) {
      font-size: 1.125rem !important; /* text-lg */
      font-weight: 600 !important; /* font-semibold */
      padding: 1rem 2rem !important; /* py-4 px-8 */
      min-height: 3.25rem;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      text-align: center !important;
    }
  }
  
  /* ========================================
     BOTÃO FIXO NO MOBILE
     ======================================== */
  
  /* Botão CTA fixo no mobile - texto ajustado para não vazar */
  .cta-comunidade-fixo {
    padding: 0.75rem 1rem !important;
    font-size: 0.8125rem !important; /* ~13px - cabe em uma linha no mobile */
    font-weight: 600 !important;
    gap: 0.375rem;
    white-space: nowrap;
  }
  .cta-comunidade-fixo i {
    font-size: 1.125rem !important; /* ícone proporcional ao texto */
  }
  /* Em telas muito estreitas, permite quebrar em 2 linhas */
  @media (max-width: 380px) {
    .cta-comunidade-fixo {
      white-space: normal;
      font-size: 0.75rem !important;
      line-height: 1.3;
    }
  }
  
  /* Container fixo no mobile */
  @media (max-width: 1023px) {
    .fixed-cta-mobile {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 50;
      background: linear-gradient(to top, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.8) 100%);
      backdrop-filter: blur(10px);
      padding: 1rem;
      box-shadow: 0 -4px 6px -1px rgba(0, 0, 0, 0.1), 0 -2px 4px -1px rgba(0, 0, 0, 0.06);
      animation: slideUp 0.3s ease-out;
    }
    
    @keyframes slideUp {
      from {
        transform: translateY(100%);
        opacity: 0;
      }
      to {
        transform: translateY(0);
        opacity: 1;
      }
    }
    
    /* Adiciona espaço no final da página para o botão fixo não sobrepor conteúdo */
    body {
      padding-bottom: 100px;
    }
  }
  
  /* Desktop: ajustes específicos */
  @media (min-width: 1024px) {
    /* Mais espaço entre header fixo e hero em desktop */
    .mv-hero-section {
      padding-top: 4rem; /* antes ~2.5rem via md:py-10 */
    }
    .fixed-cta-mobile {
      display: none !important;
    }
    
    body {
      padding-bottom: 0 !important;
    }
  }


        /* Mobile: coluna única */
        .comunidade-mv-section {
            overflow: hidden;
            padding-bottom: 0 !important;
        }
        .comunidade-mv-grid {
            display: flex;
            flex-direction: column;
            gap: 2rem;
        }
        .comunidade-mv-imagem-wrap {
            margin-top: 1rem;
            margin-bottom: -1.5rem;
        }
        .comunidade-mv-imagem-wrap img {
            display: block;
        }
        /* Desktop: grid com imagem à direita (mesmo padrão da hero) */
        @media (min-width: 1024px) {
            .comunidade-mv-section {
                padding-bottom: 4rem !important;
            }
            .comunidade-mv-grid {
                display: grid;
                grid-template-columns: 1fr 1fr;
                grid-template-rows: auto;
                gap: 0.75rem 2rem;
                align-items: start;
            }
            .comunidade-mv-content {
                grid-column: 1;
                grid-row: 1;
            }
            .comunidade-mv-imagem-wrap {
                grid-column: 2;
                grid-row: 1 / -1;
                display: flex;
                justify-content: flex-end;
                align-items: flex-end;
                align-self: end;
                margin-bottom: -6rem;
                margin-right: -500px;
                overflow: visible;
            }
            .comunidade-mv-imagem-wrap img {
                width: 1150px;
                max-width: 1150px;
                height: auto;
                object-fit: contain;
                object-position: bottom right;
                display: block;
                vertical-align: bottom;
            }
        }
    

        /* Credenciais - Mobile */
        .credenciais-grid {
            display: flex;
            flex-direction: column;
        }
        .credenciais-imagem-mobile {
            display: block;
        }
        .credenciais-imagem-wrap {
            display: none;
        }
        /* Credenciais - Desktop */
        @media (min-width: 1024px) {
            .credenciais-imagem-mobile {
                display: none !important;
            }
            .credenciais-grid {
                display: flex;
                flex-direction: row;
                align-items: center;
                gap: 2rem;
            }
            .credenciais-content {
                flex: 1;
                max-width: 800px;
            }
            .credenciais-imagem-wrap {
                display: flex;
                flex-shrink: 0;
                justify-content: flex-end;
                align-items: center;
                margin-right: -200px;
                overflow: visible;
            }
            .credenciais-imagem-wrap img {
                width: 500px;
                height: auto;
                object-fit: contain;
                display: block;
                border-radius: 1.5rem;
            }
        }
        .credenciais-section {
            overflow: visible;
        }
    
/* Renderização: seções abaixo da dobra repintam sob demanda (Chrome/Edge) */
.comunidade-page > section:not(.mv-hero-section) {
  content-visibility: auto;
  contain-intrinsic-size: auto 480px;
}
