/* =========================================================
   MICP v277 — Responsividade mobile consolidada
   Escopo: header hamburger, geometria mobile e Heros mobile refatoradas.
   Esta versão remove as camadas antigas de Hero mobile e mantém uma única regra por página.
   ========================================================= */

.nav-toggle{display:none;}

@media (max-width:900px){
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important;}
  *,*::before,*::after{box-sizing:border-box;}

  /* Header mobile */
  .site-header{
    position:relative!important;
    z-index:50!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    flex-wrap:wrap!important;
    height:auto!important;
    min-height:0!important;
    padding:16px 22px!important;
    background:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }
  .brand{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:calc(100% - 54px)!important;
    gap:10px!important;
    align-items:center!important;
  }
  .brand-mark{font-size:32px!important;letter-spacing:.13em!important;line-height:1!important;}
  .brand-line{height:32px!important;flex:0 0 1px!important;}
  .brand-text{font-size:8.5px!important;line-height:1.12!important;max-width:150px!important;}

  .nav-toggle{
    display:inline-flex!important;
    width:40px!important;
    height:40px!important;
    flex:0 0 40px!important;
    border:1px solid rgba(177,110,25,.55)!important;
    border-radius:50%!important;
    background:transparent!important;
    color:#181716!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    cursor:pointer!important;
    -webkit-tap-highlight-color:transparent;
  }
  .nav-toggle__bar,
  .nav-toggle__bar::before,
  .nav-toggle__bar::after{
    content:"";
    display:block;
    width:17px;
    height:2px;
    background:#181716;
    border-radius:2px;
    position:relative;
    transition:transform .18s ease, opacity .18s ease;
  }
  .nav-toggle__bar::before{position:absolute;top:-6px;left:0;}
  .nav-toggle__bar::after{position:absolute;top:6px;left:0;}
  .site-header.nav-open .nav-toggle__bar{background:transparent;}
  .site-header.nav-open .nav-toggle__bar::before{transform:translateY(6px) rotate(45deg);}
  .site-header.nav-open .nav-toggle__bar::after{transform:translateY(-6px) rotate(-45deg);}

  .main-nav{
    display:none!important;
    flex:1 0 100%!important;
    width:100%!important;
    margin:16px 0 0!important;
    padding:12px 0 4px!important;
    border-top:1px solid #ded2c3!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:0!important;
    white-space:normal!important;
    text-align:left!important;
  }
  .site-header.nav-open .main-nav{display:flex!important;}
  .main-nav a{
    width:100%!important;
    padding:12px 0!important;
    font-size:12px!important;
    line-height:1.2!important;
    letter-spacing:.02em!important;
  }
  .main-nav a.active:after{left:0!important;transform:none!important;bottom:5px!important;width:42px!important;height:2px!important;}
  .main-nav .nav-cta{width:auto!important;min-width:0!important;padding:12px 16px!important;margin-top:4px!important;}

  /* Geometria-base das Heros */
  .site-hero,
  .page-hero,
  .hero-home,
  .origin-hero{
    position:relative!important;
    min-height:500px!important;
    height:auto!important;
    overflow:hidden!important;
    background:#fbf8f3!important;
  }
  .hero-home{min-height:520px!important;}

  .page-hero__content,
  .site-hero__content,
  body:not(.page-home):not(.page-origin) .site-hero__content,
  body:not(.page-home):not(.page-origin) .page-hero__content,
  body.page-application .page-hero__content,
  body.page-method .page-hero__content,
  body.page-how-we-work .page-hero__content,
  body.page-contact .page-hero__content{
    position:relative!important;
    z-index:3!important;
    width:100%!important;
    max-width:100%!important;
    min-height:500px!important;
    height:auto!important;
    margin:0!important;
    padding:46px 28px 50px!important;
    display:flex!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    transform:none!important;
    box-sizing:border-box!important;
  }
  .site-hero__copy,
  .page-hero__copy,
  .hero-home__content,
  .origin-hero__inner,
  .contato-hero__copy,
  .method-hero__copy,
  .aplicacao-hero__copy,
  .how-hero__copy{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    opacity:1!important;
  }
  .hero-home__content{
    position:relative!important;
    z-index:3!important;
    width:100%!important;
    min-height:520px!important;
    padding:56px 28px 50px!important;
    display:block!important;
  }
  body.page-origin .origin-hero{
    min-height:500px!important;
    padding:56px 28px 58px!important;
    background-image:url('../assets/hero/origem-hero.webp')!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
  }
  body.page-origin .origin-hero__inner{position:relative!important;z-index:3!important;}

  /* Tipografia das Heros */
  .hero-title,
  .hero-home h1,
  body.page-origin .origin-hero h1,
  .contato-hero__copy h1,
  body.page-method .method-hero__copy h1,
  body.page-application .aplicacao-hero__copy .hero-title,
  body.page-how-we-work .how-hero__copy .hero-title{
    font-size:32px!important;
    line-height:1.10!important;
    letter-spacing:-.02em!important;
    max-width:100%!important;
    margin:0!important;
    color:#181716!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  body.page-method .method-hero__copy h1{font-size:30px!important;line-height:1.12!important;}
  body.page-origin .origin-hero h1{font-size:34px!important;line-height:1.10!important;}
  .hero-title__line{display:block!important;white-space:normal!important;}

  .contact-rule,
  .hero-rule,
  .origin-rule,
  body:not(.page-home) .site-hero .contact-rule,
  body:not(.page-home) .site-hero .hero-rule{
    width:58px!important;
    height:3px!important;
    margin:24px 0 20px!important;
    background:var(--gold)!important;
  }
  .hero-home__content p:not(.eyebrow),
  .site-hero .body-text,
  .page-hero .body-text,
  .contato-hero__copy p,
  .method-hero__copy p:not(.method-kicker),
  .aplicacao-hero__copy .body-text,
  body.page-origin .origin-hero p:not(.origin-kicker){
    max-width:100%!important;
    font-size:14px!important;
    line-height:1.62!important;
    color:#181716!important;
    opacity:1!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  /* =========================================================
     Heros mobile — uma única regra por página
     ========================================================= */

  /* Home — aprovado no iPhone */
  body.page-home .hero-home__image{
    opacity:1!important;
    filter:contrast(1.06) saturate(1.04)!important;
    object-position:center top!important;
  }
  body.page-home .hero-home__overlay{
    display:block!important;
    background:linear-gradient(90deg,
      rgba(247,243,236,.86) 0%,
      rgba(247,243,236,.74) 26%,
      rgba(247,243,236,.50) 46%,
      rgba(247,243,236,.18) 66%,
      rgba(247,243,236,0) 84%)!important;
  }

  /* A Origem do Método — imagem clara, máscara controlada */
  body.page-origin .origin-hero{
    background-position:66% center!important;
  }
  body.page-origin .origin-hero::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    pointer-events:none!important;
    background:linear-gradient(90deg,
      rgba(251,248,243,.66) 0%,
      rgba(251,248,243,.50) 28%,
      rgba(251,248,243,.28) 50%,
      rgba(251,248,243,.08) 70%,
      rgba(251,248,243,0) 88%)!important;
  }
  body.page-origin .origin-hero::after{height:48px!important;z-index:2!important;}

  /* O Método — foto em opacidade plena com máscara leve para leitura */
  body.page-method .page-hero__bg{
    opacity:1!important;
    filter:contrast(1.10) saturate(1.06)!important;
    background-size:cover!important;
    background-position:55% center!important;
  }
  body.page-method .page-hero__overlay{
    display:block!important;
    background:linear-gradient(90deg,
      rgba(251,248,243,.55) 0%,
      rgba(251,248,243,.40) 32%,
      rgba(251,248,243,.16) 58%,
      rgba(251,248,243,0) 82%)!important;
  }

  /* Aplicação Inicial — aprovado no iPhone */
  body.page-application .page-hero__bg{
    opacity:1!important;
    filter:contrast(1.06) saturate(1.05)!important;
    background-size:cover!important;
    background-position:58% center!important;
  }
  body.page-application .page-hero__overlay{
    display:block!important;
    background:
      linear-gradient(90deg,
        rgba(251,248,243,.76) 0%,
        rgba(251,248,243,.64) 22%,
        rgba(251,248,243,.42) 42%,
        rgba(251,248,243,.16) 62%,
        rgba(251,248,243,0) 80%),
      linear-gradient(180deg,
        rgba(251,248,243,.46) 0%,
        rgba(251,248,243,.18) 22%,
        rgba(251,248,243,0) 44%)!important;
  }

  /* Como Trabalhamos — aprovado no iPhone */
  body.page-how-we-work .page-hero__image{
    opacity:1!important;
    filter:contrast(1.06) saturate(1.04)!important;
    object-position:center center!important;
  }
  body.page-how-we-work .page-hero__overlay{
    display:block!important;
    background:linear-gradient(90deg,
      rgba(251,248,243,.74) 0%,
      rgba(251,248,243,.60) 24%,
      rgba(251,248,243,.36) 44%,
      rgba(251,248,243,.12) 63%,
      rgba(251,248,243,0) 82%)!important;
  }

  /* Contato — imagem clara, maior presença e máscara leve */
  body.page-contact .page-hero__bg{
    opacity:1!important;
    filter:contrast(1.12) saturate(1.06)!important;
    background-size:cover!important;
    background-position:56% top!important;
    inset:0!important;
  }
  body.page-contact .page-hero__overlay{
    display:block!important;
    background:linear-gradient(90deg,
      rgba(251,248,243,.42) 0%,
      rgba(251,248,243,.28) 32%,
      rgba(251,248,243,.10) 58%,
      rgba(251,248,243,0) 82%)!important;
  }

  /* Espaçamentos gerais mobile */
  .site-section,
  .method-section,
  .origin-section,
  .strip,
  .section-soft{
    padding-top:42px!important;
    padding-bottom:42px!important;
  }
  .page-application .strip,
  .page-application .section-soft,
  .page-application .app-intro,
  .page-application .app-objective{padding-top:40px!important;padding-bottom:40px!important;}

  .micp-statement,
  .section-title,
  .origin-copy h2,
  .origin-pillars h2,
  .origin-close h2,
  .method-copy h2,
  .page-application .app-intro h2,
  .page-application .app-objective .insight-title h2,
  .question-copy h2{
    font-size:30px!important;
    line-height:1.12!important;
  }

  /* Grids em uma coluna */
  .insight,
  .result,
  .process .timeline,
  .use-grid,
  .method-facts,
  .method-observe,
  .origin-grid-section,
  .origin-grid-section--reverse,
  .contact-panel{
    grid-template-columns:1fr!important;
  }
  .mini-card,
  .result-item,
  .use-card{
    border-left:0!important;
    border-top:1px solid #ded2c3!important;
    padding-top:24px!important;
  }
  .mini-card:first-of-type,
  .result-item:first-of-type{border-top:0!important;}

  /* CTA final mobile */
  .contact-band.site-cta,
  .site-footer .contact-band{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
    padding:26px 22px!important;
    text-align:left!important;
  }
  .site-cta__button,
  .contact-band .btn{width:100%!important;justify-content:center!important;}
}

@media (max-width:390px){
  .site-header{padding-left:18px!important;padding-right:18px!important;}
  .brand-mark{font-size:30px!important;}
  .brand-text{font-size:8px!important;max-width:138px!important;}

  .page-hero__content,
  .site-hero__content,
  body:not(.page-home):not(.page-origin) .site-hero__content,
  body:not(.page-home):not(.page-origin) .page-hero__content,
  body.page-application .page-hero__content,
  body.page-method .page-hero__content,
  body.page-how-we-work .page-hero__content,
  body.page-contact .page-hero__content{
    padding-left:24px!important;
    padding-right:24px!important;
  }
  .hero-home__content{padding-left:24px!important;padding-right:24px!important;}

  .hero-title,
  .hero-home h1,
  .contato-hero__copy h1,
  body.page-application .hero-title,
  body.page-contact .hero-title,
  body.page-how-we-work .hero-title{font-size:30px!important;}
  body.page-method .method-hero__copy h1{font-size:28px!important;}
  body.page-origin .origin-hero h1{font-size:32px!important;}

  body.page-home .hero-home__overlay{
    background:linear-gradient(90deg,
      rgba(247,243,236,.88) 0%,
      rgba(247,243,236,.76) 30%,
      rgba(247,243,236,.54) 50%,
      rgba(247,243,236,.20) 70%,
      rgba(247,243,236,0) 88%)!important;
  }
  body.page-origin .origin-hero::before{
    background:linear-gradient(90deg,
      rgba(251,248,243,.68) 0%,
      rgba(251,248,243,.52) 30%,
      rgba(251,248,243,.30) 54%,
      rgba(251,248,243,.10) 74%,
      rgba(251,248,243,0) 90%)!important;
  }
  body.page-contact .page-hero__overlay{
    background:linear-gradient(90deg,
      rgba(251,248,243,.46) 0%,
      rgba(251,248,243,.30) 34%,
      rgba(251,248,243,.12) 62%,
      rgba(251,248,243,0) 86%)!important;
  }
}

/* =========================================================
   MICP v278 — Fase 3.2
   Unificação da arquitetura mobile das Heros
   Padrão: foto em bloco próprio + texto abaixo, fora da imagem.
   ========================================================= */

@media (max-width:900px){
  .site-hero,
  .page-hero,
  .hero-home,
  .origin-hero{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }

  /* Remove overlays no mobile: texto não fica mais sobre a fotografia */
  .site-hero__overlay,
  .page-hero__overlay,
  .hero-home__overlay,
  body.page-origin .origin-hero::after{
    display:none!important;
    background:none!important;
  }

  /* Foto da Hero: bloco visual independente */
  .hero-home__image,
  .page-hero__bg,
  .page-hero__media,
  .site-hero__media{
    order:1!important;
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:360px!important;
    min-height:360px!important;
    flex:0 0 360px!important;
    z-index:1!important;
    opacity:1!important;
    filter:contrast(1.06) saturate(1.04)!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
    background-color:#fbf8f3!important;
  }

  .hero-home__image,
  .page-hero__image,
  .page-hero__media img,
  .site-hero__media img{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    object-fit:cover!important;
    opacity:1!important;
    filter:contrast(1.06) saturate(1.04)!important;
    z-index:1!important;
  }

  /* Origem não possui elemento de mídia: a foto vira pseudo-bloco */
  body.page-origin .origin-hero{
    background-image:none!important;
  }
  body.page-origin .origin-hero::before{
    content:""!important;
    order:1!important;
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:360px!important;
    min-height:360px!important;
    flex:0 0 360px!important;
    z-index:1!important;
    pointer-events:none!important;
    background:url('../assets/hero/origem-hero.webp') 58% center / cover no-repeat!important;
    opacity:1!important;
    filter:contrast(1.06) saturate(1.04)!important;
  }

  /* Conteúdo da Hero: bloco editorial abaixo da fotografia */
  .site-hero__content,
  .page-hero__content,
  body:not(.page-home):not(.page-origin) .site-hero__content,
  body:not(.page-home):not(.page-origin) .page-hero__content,
  body.page-application .page-hero__content,
  body.page-method .page-hero__content,
  body.page-how-we-work .page-hero__content,
  body.page-contact .page-hero__content,
  .hero-home__content,
  body.page-origin .origin-hero__inner{
    order:2!important;
    position:relative!important;
    z-index:2!important;
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:38px 28px 44px!important;
    display:block!important;
    background:#fbf8f3!important;
    transform:none!important;
    box-sizing:border-box!important;
  }

  .site-hero__copy,
  .page-hero__copy,
  .contato-hero__copy,
  .method-hero__copy,
  .aplicacao-hero__copy,
  .how-hero__copy{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
  }

  /* Reposicionamento individual das fotografias */
  body.page-home .hero-home__image{object-position:58% center!important;}
  body.page-application .page-hero__bg{background-position:55% center!important;}
  body.page-how-we-work .page-hero__image{object-position:center center!important;}
  body.page-method .page-hero__bg{background-position:56% center!important;}
  body.page-contact .page-hero__bg{background-position:50% center!important;}

  /* Tipografia do bloco editorial pós-foto */
  .hero-title,
  .hero-home h1,
  body.page-origin .origin-hero h1,
  .contato-hero__copy h1,
  body.page-method .method-hero__copy h1,
  body.page-application .aplicacao-hero__copy .hero-title,
  body.page-how-we-work .how-hero__copy .hero-title{
    font-size:31px!important;
    line-height:1.10!important;
    letter-spacing:-.02em!important;
    max-width:100%!important;
    color:#181716!important;
    margin:0!important;
  }

  body.page-origin .origin-hero h1{font-size:34px!important;}
  body.page-method .method-hero__copy h1{font-size:30px!important;}

  .hero-title__line{display:block!important;white-space:normal!important;}

  .contact-rule,
  .hero-rule,
  .origin-rule,
  body:not(.page-home) .site-hero .contact-rule,
  body:not(.page-home) .site-hero .hero-rule{
    width:58px!important;
    height:3px!important;
    margin:24px 0 20px!important;
    background:var(--gold)!important;
  }

  .hero-home__content p:not(.eyebrow),
  .site-hero .body-text,
  .page-hero .body-text,
  .contato-hero__copy p,
  .method-hero__copy p:not(.method-kicker),
  .aplicacao-hero__copy .body-text,
  body.page-origin .origin-hero p:not(.origin-kicker){
    max-width:100%!important;
    font-size:14px!important;
    line-height:1.65!important;
    color:#181716!important;
    opacity:1!important;
  }
}

@media (max-width:390px){
  .hero-home__image,
  .page-hero__bg,
  .page-hero__media,
  .site-hero__media,
  body.page-origin .origin-hero::before{
    height:330px!important;
    min-height:330px!important;
    flex-basis:330px!important;
  }

  .site-hero__content,
  .page-hero__content,
  body:not(.page-home):not(.page-origin) .site-hero__content,
  body:not(.page-home):not(.page-origin) .page-hero__content,
  body.page-application .page-hero__content,
  body.page-method .page-hero__content,
  body.page-how-we-work .page-hero__content,
  body.page-contact .page-hero__content,
  .hero-home__content,
  body.page-origin .origin-hero__inner{
    padding:34px 24px 40px!important;
  }

  .hero-title,
  .hero-home h1,
  .contato-hero__copy h1,
  body.page-application .hero-title,
  body.page-contact .hero-title,
  body.page-how-we-work .hero-title{
    font-size:30px!important;
  }
  body.page-method .method-hero__copy h1{font-size:28px!important;}
  body.page-origin .origin-hero h1{font-size:32px!important;}
}


/* =========================================================
   MICP v279 — Fase 3.2 hardening
   Arquitetura mobile definitiva para Heros internas:
   foto isolada + texto em bloco editorial abaixo da imagem.
   Aplicado somente às páginas que ainda apresentavam conflito.
   ========================================================= */

.mobile-hero-copy{display:none;}

@media (max-width:900px){
  body.page-origin .origin-hero .origin-hero__inner,
  body.page-method .method-hero .site-hero__content,
  body.page-application .aplicacao-hero .site-hero__content,
  body.page-contact .contato-hero .site-hero__content{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
  }

  body.page-origin .origin-hero,
  body.page-method .method-hero,
  body.page-application .aplicacao-hero,
  body.page-contact .contato-hero{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:360px!important;
    min-height:360px!important;
    max-height:360px!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
    background:#fbf8f3!important;
    border-bottom:0!important;
  }

  body.page-origin .origin-hero{background-image:none!important;}

  body.page-origin .origin-hero::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    background:url('../assets/hero/origem-hero.webp') 58% center / cover no-repeat!important;
    opacity:1!important;
    filter:contrast(1.06) saturate(1.04)!important;
    z-index:1!important;
    pointer-events:none!important;
  }

  body.page-origin .origin-hero::after,
  body.page-method .method-hero .page-hero__overlay,
  body.page-application .aplicacao-hero .page-hero__overlay,
  body.page-contact .contato-hero .page-hero__overlay{
    display:none!important;
    content:none!important;
    background:none!important;
    opacity:0!important;
  }

  body.page-method .method-hero .page-hero__bg,
  body.page-application .aplicacao-hero .page-hero__bg,
  body.page-contact .contato-hero .page-hero__bg{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    max-height:none!important;
    flex:none!important;
    z-index:1!important;
    opacity:1!important;
    filter:contrast(1.06) saturate(1.04)!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
    background-color:#fbf8f3!important;
  }

  body.page-method .method-hero .page-hero__bg{background-position:54% center!important;}
  body.page-application .aplicacao-hero .page-hero__bg{background-position:55% center!important;}
  body.page-contact .contato-hero .page-hero__bg{background-position:50% center!important;}

  body.page-origin .mobile-hero-copy,
  body.page-method .mobile-hero-copy,
  body.page-application .mobile-hero-copy,
  body.page-contact .mobile-hero-copy{
    display:block!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:34px 28px 42px!important;
    margin:0!important;
    background:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }

  body.page-origin .mobile-hero-copy .hero-title,
  body.page-method .mobile-hero-copy .hero-title,
  body.page-application .mobile-hero-copy .hero-title,
  body.page-contact .mobile-hero-copy .hero-title{
    margin:0!important;
    max-width:100%!important;
    color:#181716!important;
    font-family:var(--font-serif)!important;
    font-size:34px!important;
    line-height:1.10!important;
    letter-spacing:-.02em!important;
    font-weight:400!important;
  }

  body.page-method .mobile-hero-copy .hero-title{font-size:32px!important;}
  body.page-application .mobile-hero-copy .hero-title{font-size:36px!important;}
  body.page-contact .mobile-hero-copy .hero-title{font-size:36px!important;}
  body.page-contact .mobile-hero-copy .hero-title span{color:var(--gold)!important;}

  body.page-origin .mobile-hero-copy .contact-rule,
  body.page-origin .mobile-hero-copy .origin-rule,
  body.page-method .mobile-hero-copy .contact-rule,
  body.page-application .mobile-hero-copy .contact-rule,
  body.page-contact .mobile-hero-copy .contact-rule{
    display:block!important;
    width:58px!important;
    height:3px!important;
    margin:24px 0 20px!important;
    background:var(--gold)!important;
  }

  body.page-origin .mobile-hero-copy .body-text,
  body.page-method .mobile-hero-copy .body-text,
  body.page-application .mobile-hero-copy .body-text,
  body.page-contact .mobile-hero-copy .body-text{
    margin:0!important;
    max-width:100%!important;
    color:#181716!important;
    font-size:15px!important;
    line-height:1.68!important;
    opacity:1!important;
  }
}

@media (max-width:390px){
  body.page-origin .origin-hero,
  body.page-method .method-hero,
  body.page-application .aplicacao-hero,
  body.page-contact .contato-hero{
    height:330px!important;
    min-height:330px!important;
    max-height:330px!important;
  }

  body.page-origin .mobile-hero-copy,
  body.page-method .mobile-hero-copy,
  body.page-application .mobile-hero-copy,
  body.page-contact .mobile-hero-copy{
    padding:30px 24px 38px!important;
  }

  body.page-origin .mobile-hero-copy .hero-title{font-size:32px!important;}
  body.page-method .mobile-hero-copy .hero-title{font-size:30px!important;}
  body.page-application .mobile-hero-copy .hero-title{font-size:34px!important;}
  body.page-contact .mobile-hero-copy .hero-title{font-size:34px!important;}
}


/* =========================================================
   MICP v280 — correção definitiva da Hero Contato no mobile
   Evita conflito com a arquitetura antiga da página Contato.
   No mobile, a fotografia passa a ser um bloco físico próprio
   antes do texto, sem depender da .page-hero__bg original.
   ========================================================= */

.contact-mobile-hero-photo{
  display:none;
}

@media (max-width:900px){
  body.page-contact .page-hero.contato-hero{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
    border:0!important;
  }

  body.page-contact .contact-mobile-hero-photo{
    display:block!important;
    width:100%!important;
    height:360px!important;
    min-height:360px!important;
    margin:0!important;
    padding:0!important;
    background-image:url('../assets/hero/contact-hero.webp')!important;
    background-repeat:no-repeat!important;
    background-size:cover!important;
    background-position:50% center!important;
    background-color:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact{
    display:block!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:34px 28px 42px!important;
    margin:0!important;
    background:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact .hero-title{
    margin:0!important;
    max-width:100%!important;
    color:#181716!important;
    font-family:var(--font-serif)!important;
    font-size:36px!important;
    line-height:1.10!important;
    letter-spacing:-.02em!important;
    font-weight:400!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact .hero-title span{
    color:var(--gold)!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact .contact-rule{
    display:block!important;
    width:58px!important;
    height:3px!important;
    margin:24px 0 20px!important;
    background:var(--gold)!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact .body-text{
    margin:0!important;
    max-width:100%!important;
    color:#181716!important;
    font-size:15px!important;
    line-height:1.68!important;
    opacity:1!important;
  }
}

@media (max-width:390px){
  body.page-contact .contact-mobile-hero-photo{
    height:330px!important;
    min-height:330px!important;
    background-position:52% center!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact{
    padding:30px 24px 38px!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact .hero-title{
    font-size:34px!important;
  }
}


/* =========================================================
   MICP v281 — Contato mobile: foto real antes do texto
   Corrige o caso em que o background da seção não aparecia no iPhone.
   Mantém apenas uma arquitetura mobile: imagem física + texto abaixo.
   ========================================================= */

.contact-mobile-hero-photo{display:none;}
.contact-mobile-hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;}

@media (max-width:900px){
  body.page-contact .page-hero.contato-hero{
    display:none!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    overflow:hidden!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }

  body.page-contact .contact-mobile-hero-photo{
    display:block!important;
    width:100%!important;
    height:340px!important;
    min-height:340px!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }

  body.page-contact .contact-mobile-hero-photo img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center top!important;
    opacity:1!important;
    filter:none!important;
  }

  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact{
    display:block!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:34px 28px 42px!important;
    margin:0!important;
    background:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }
}

@media (max-width:390px){
  body.page-contact .contact-mobile-hero-photo{
    height:315px!important;
    min-height:315px!important;
  }

  body.page-contact .contact-mobile-hero-photo img{
    object-position:center top!important;
  }
}


/* =========================================================
   MICP v282 — Contato: foto mobile forçada e independente
   A classe abaixo não reutiliza regras antigas da Hero/Contato.
   ========================================================= */
.contact-mobile-hero-photo-force{
  display:block!important;
  width:100%!important;
  height:340px!important;
  min-height:340px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fbf8f3!important;
  border-bottom:1px solid #ded2c3!important;
}
.contact-mobile-hero-photo-force img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center top!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
}
@media (min-width:901px){
  .contact-mobile-hero-photo-force{display:none!important;}
}
@media (max-width:900px){
  body.page-contact .page-hero.contato-hero{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
  }
  body.page-contact .contact-mobile-hero-photo-force{
    display:block!important;
    height:340px!important;
    min-height:340px!important;
  }
  body.page-contact .mobile-hero-copy.mobile-hero-copy--contact{
    display:block!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:34px 28px 42px!important;
    margin:0!important;
    background:#fbf8f3!important;
    border-bottom:1px solid #ded2c3!important;
  }
}
@media (max-width:390px){
  body.page-contact .contact-mobile-hero-photo-force{
    height:315px!important;
    min-height:315px!important;
  }
  body.page-contact .contact-mobile-hero-photo-force img{
    object-position:center top!important;
  }
}

/* =========================================================
   MICP v283 — Contato mobile: arquitetura única pela Hero existente
   Corrige o conflito anterior: não usa bloco externo de foto/copy.
   A própria .contato-hero passa a renderizar imagem + texto em sequência.
   ========================================================= */
@media (max-width: 900px){
  body.page-contact .contact-mobile-hero-photo,
  body.page-contact .contact-mobile-hero-photo-force,
  body.page-contact .mobile-hero-copy,
  body.page-contact .mobile-hero-copy--contact{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  body.page-contact .page-hero.contato-hero{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:#fbf8f3!important;
    border-top:1px solid #ded2c3!important;
    border-bottom:1px solid #ded2c3!important;
  }

  body.page-contact .page-hero.contato-hero .page-hero__bg,
  body.page-contact .page-hero.contato-hero .site-hero__media{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    inset:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    width:100%!important;
    height:340px!important;
    min-height:340px!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    background-image:url('../assets/hero/contact-hero.webp')!important;
    background-size:cover!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
    z-index:0!important;
  }

  body.page-contact .page-hero.contato-hero .page-hero__overlay,
  body.page-contact .page-hero.contato-hero .site-hero__overlay,
  body.page-contact .page-hero.contato-hero::before,
  body.page-contact .page-hero.contato-hero::after{
    display:none!important;
    content:none!important;
  }

  body.page-contact .page-hero.contato-hero .page-hero__content,
  body.page-contact .page-hero.contato-hero .site-hero__content{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:34px 28px 42px!important;
    background:#fbf8f3!important;
    z-index:1!important;
  }

  body.page-contact .page-hero.contato-hero .contato-hero__copy,
  body.page-contact .page-hero.contato-hero .site-hero__copy{
    display:block!important;
    max-width:100%!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
  }

  body.page-contact .page-hero.contato-hero .hero-title{
    display:block!important;
    margin:0!important;
    color:#181716!important;
    font-size:36px!important;
    line-height:1.08!important;
    letter-spacing:-.03em!important;
  }

  body.page-contact .page-hero.contato-hero .hero-title span{
    color:var(--gold)!important;
  }

  body.page-contact .page-hero.contato-hero .contact-rule{
    display:block!important;
    width:96px!important;
    height:4px!important;
    margin:26px 0 26px!important;
    background:var(--gold)!important;
  }

  body.page-contact .page-hero.contato-hero .body-text{
    display:block!important;
    max-width:100%!important;
    margin:0!important;
    color:#181716!important;
    font-size:18px!important;
    line-height:1.65!important;
    opacity:1!important;
  }
}

@media (max-width: 390px){
  body.page-contact .page-hero.contato-hero .page-hero__bg,
  body.page-contact .page-hero.contato-hero .site-hero__media{
    height:315px!important;
    min-height:315px!important;
  }

  body.page-contact .page-hero.contato-hero .hero-title{
    font-size:34px!important;
  }
}

/* =========================================================
   MICP v284 — Mobile nav overlay hardening
   Objetivo: impedir que o menu mobile aberto empurre a Hero para baixo.
   O menu passa a flutuar sobre o conteúdo, preservando a posição da imagem.
   ========================================================= */
@media (max-width:900px){
  .site-header{
    position:relative!important;
    flex-wrap:nowrap!important;
    overflow:visible!important;
  }

  .site-header .main-nav{
    position:absolute!important;
    top:100%!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:18px 22px 22px!important;
    border-top:1px solid #ded2c3!important;
    background:#fbf8f3!important;
    z-index:999!important;
    box-shadow:0 14px 24px rgba(45,38,30,.10)!important;
  }

  .site-header.nav-open .main-nav{
    display:flex!important;
  }

  .site-header .main-nav a{
    padding:13px 0!important;
  }

  .site-header .main-nav a.active:after{
    bottom:4px!important;
  }

  body.page-contact .page-hero.contato-hero{
    margin-top:0!important;
  }
}


/* =========================================================
   MICP v285 — Mobile nav overlay cover + Contact hero cleanup
   Objetivo:
   1) O menu aberto cobre a área útil abaixo do header, sem empurrar/mostrar a Hero.
   2) Contato usa apenas a Hero existente no mobile: foto primeiro, texto abaixo.
   ========================================================= */
@media (max-width:900px){
  html, body{
    overflow-x:hidden!important;
  }

  .site-header{
    position:relative!important;
    z-index:10000!important;
    overflow:visible!important;
  }

  .site-header .main-nav{
    display:none!important;
    position:absolute!important;
    top:100%!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    min-height:calc(100vh - 76px)!important;
    margin:0!important;
    padding:30px 22px 44px!important;
    background:#fbf8f3!important;
    border-top:1px solid #ded2c3!important;
    box-shadow:none!important;
    z-index:9999!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .site-header.nav-open .main-nav{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:0!important;
  }

  .site-header.nav-open + main{
    pointer-events:none!important;
  }

  .site-header .main-nav a{
    width:100%!important;
    padding:16px 0!important;
    font-size:12px!important;
    line-height:1.2!important;
  }

  .site-header .main-nav a.active:after{
    left:0!important;
    transform:none!important;
    bottom:7px!important;
    width:42px!important;
    height:2px!important;
  }

  /* Contato: eliminar definitivamente blocos auxiliares antigos */
  body.page-contact .contact-mobile-hero-photo,
  body.page-contact .contact-mobile-hero-photo-force,
  body.page-contact .mobile-hero-copy,
  body.page-contact .mobile-hero-copy--contact{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  /* Contato: a Hero real vira foto + texto abaixo no mobile */
  body.page-contact .page-hero.contato-hero{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:#fbf8f3!important;
    border-top:1px solid #ded2c3!important;
    border-bottom:1px solid #ded2c3!important;
  }

  body.page-contact .page-hero.contato-hero .page-hero__bg{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:340px!important;
    min-height:340px!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    background-image:url('../assets/hero/contact-hero.webp')!important;
    background-size:cover!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
    z-index:0!important;
  }

  body.page-contact .page-hero.contato-hero .page-hero__overlay{
    display:none!important;
    content:none!important;
  }

  body.page-contact .page-hero.contato-hero .page-hero__content{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:34px 28px 42px!important;
    background:#fbf8f3!important;
    z-index:1!important;
  }

  body.page-contact .page-hero.contato-hero .contato-hero__copy{
    display:block!important;
    max-width:100%!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
  }
}

@media (max-width:390px){
  body.page-contact .page-hero.contato-hero .page-hero__bg{
    height:315px!important;
    min-height:315px!important;
  }
}
