html,body{overflow-x:hidden;-webkit-text-size-adjust:100%}
  img,video,iframe{max-width:100%}
  [data-stats-band]>*:last-child{border-right:none!important}
  /* ---------- TABLET (<=960px) ---------- */
  @media (max-width:960px){
    [style*="repeat(3, 1fr"]{grid-template-columns:repeat(2,1fr)!important}
    [data-stats-band]{grid-template-columns:repeat(3,1fr)!important}
    [style*="repeat(4, 1fr"]{grid-template-columns:repeat(2,1fr)!important}
    [style*="grid-template-columns: 1.25fr"],
    [style*="grid-template-columns: 1fr 0.85fr"],
    [style*="grid-template-columns: 1.1fr .9fr"],
    [style*="grid-template-columns: 0.9fr 1.1fr"],
    [style*="grid-template-columns: 1fr 1.15fr"],
    [style*="grid-template-columns: 1.15fr"],
    [style*="grid-template-columns: 1.3fr .9fr"],
    [style*="grid-template-columns: 1fr 300px"],
    [style*="grid-template-columns: 230px 1fr"]{grid-template-columns:1fr!important;gap:32px!important}
    aside[style*="position: sticky"]{position:static!important;top:auto!important}
  }
  /* ---------- SMARTPHONE (<=640px) ---------- */
  @media (max-width:640px){
    [style*="repeat(3, 1fr"],
    [style*="repeat(4, 1fr"],
    [style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important}
    /* uniformiza o espaçamento entre cards empilhados no celular */
    [style*="display: grid"][style*="gap:"]{gap:18px!important}
    /* barra de estatísticas empilhada no celular, sem divisórias verticais */
    [data-stats-band]{grid-template-columns:1fr!important}
    [data-stats-band]>*{border-right:none!important;border-bottom:1px solid #eef2f2!important;padding:24px 22px!important}
    [data-stats-band]>*:last-child{border-bottom:none!important}
    /* reduz paddings verticais grandes */
    section{padding-top:24px!important;padding-bottom:24px!important}
    [style*="padding: 88px 24px 120px"]{padding:22px 20px 44px!important}
    [style*="padding: 48px 46px"],[style*="padding: 52px 50px"]{padding:30px 24px!important}
    [style*="padding: 48px"]{padding:28px!important}
    [style*="padding: 40px"]{padding:26px!important}
    [style*="padding: 44px"]{padding:26px!important}
    [style*="padding: 36px"]{padding:24px!important}
    /* títulos hero um pouco menores */
    h1{font-size:clamp(30px,8vw,42px)!important}
    [style*="max-width: 1000px"]{max-width:100%!important}
    /* seção "Por que a Upmaps": imagem que dependia da altura do texto */
    [style*="grid-template-columns: 1fr 0.85fr"] > div:last-child{min-height:0!important}
    [style*="grid-template-columns: 1fr 0.85fr"] > div:last-child > div[style*="height: 100%"]{position:relative!important;height:auto!important;min-height:0!important;aspect-ratio:4/3!important;margin-top:34px}
    [style*="grid-template-columns: 1fr 0.85fr"] > div:last-child > div[style*="height: 100%"] img{position:absolute!important;inset:0!important}
    /* selo flutuante reposicionado para dentro */
    [style*="grid-template-columns: 1fr 0.85fr"] > div:last-child > div[style*="top: -24px"]{top:auto!important;bottom:12px!important;left:12px!important;padding:14px 18px!important}
    [style*="grid-template-columns: 1fr 0.85fr"] > div:last-child > div[style*="top: -24px"] > div:first-child{font-size:28px!important}
    /* remove o blur decorativo que estourava a lateral */
    [style*="filter: blur(20px)"]{display:none!important}
    /* botões de CTA do hero: menores e lado a lado no celular */
    [style*="padding: 15px 28px"]{padding:12px 18px!important;font-size:14.5px!important;flex:1 1 auto;justify-content:center}
    /* Serviços: linhas imagem+texto empilham na vertical */
    [style*="scroll-margin-top: 130px"][style*="flex-direction"]{flex-direction:column!important;gap:24px!important}
    /* Sobre "Nossa trajetória": imagem não estica no mobile */
    section [style*="position: sticky"][style*="height: 100%"]{position:relative!important;top:auto!important;height:auto!important}
    section [style*="position: sticky"][style*="height: 100%"] img{height:auto!important;object-fit:contain!important}
    [style*="scroll-margin-top: 130px"][style*="flex-direction"] [style*="height: 340px"]{height:220px!important}
    /* Serviços: aplicações típicas em 1 coluna */
    [style*="grid-template-columns: 1fr 1fr"][style*="gap: 12px 20px"]{grid-template-columns:1fr!important}
    /* Sobre / trajetória: imagem com altura própria ao empilhar */
    [style*="grid-template-columns: 1.1fr 0.9fr"] > div:last-child > div[style*="height: 100%"]{height:auto!important;aspect-ratio:4/3!important}
  }
  /* ---------- CABEÇALHO responsivo (hambúrguer) ---------- */
  @media (max-width:900px){
    [data-menu-btn]{display:flex!important}
    /* barra utilitária do topo: oculta no mobile — site começa direto no menu */
    header > div:first-child{display:none!important}
    [data-mobile-contact]{display:flex!important}
    header nav[data-nav]{position:absolute!important;top:100%;left:0;right:0;flex-direction:column!important;align-items:stretch!important;background:#fff;border-bottom:1px solid #e7ecec;box-shadow:0 24px 40px -24px rgba(17,35,39,.35);padding:12px 16px 18px!important;gap:2px!important;display:none!important;z-index:250;max-height:80vh;overflow-y:auto}
    header nav[data-nav][data-open="true"]{display:flex!important}
    header nav[data-nav] > a,header nav[data-nav] > div > a{width:100%;padding:13px 12px!important;font-size:16px!important;border-radius:8px}
    header nav[data-nav] > div{position:static!important;width:100%}
    header nav[data-nav] [style*="position: absolute"]{position:static!important;box-shadow:none!important;border:none!important;border-top:1px solid #eef2f2!important;border-radius:0!important;width:100%!important;padding:4px 0 8px!important;margin-top:4px}
  }
  @media (max-width:720px){
    header > div:last-child > div{flex-wrap:nowrap!important;gap:10px!important;padding:12px 16px!important}
    header > div:last-child > div > a:first-child{margin-right:auto}
    header a[href="Contato.dc.html"][style*="background: #1C8584"]{padding:10px 14px!important;font-size:13px!important;order:2}
    [data-menu-btn]{order:3;width:44px!important;height:44px!important;min-width:44px;flex:0 0 44px;box-sizing:border-box}
    header > div:last-child > div{gap:12px!important}
    header > div:last-child > div > a:first-child img{height:32px!important}
  }
  @media (max-width:380px){
    header a[href="Contato.dc.html"][style*="background: #1C8584"]{display:none!important}
  }
  /* ---------- RODAPÉ responsivo ---------- */
  @media (max-width:900px){
    footer [style*="grid-template-columns: 1.5fr"]{grid-template-columns:1fr 1fr!important;gap:32px 28px!important}
  }
  @media (max-width:560px){
    footer > div:first-child{padding-top:32px!important;gap:26px!important}
    footer [style*="grid-template-columns: 1.5fr"]{grid-template-columns:1fr!important;gap:26px!important;text-align:center}
    footer [style*="grid-template-columns: 1.5fr"] a[href="/"]{justify-content:center}
    footer [style*="grid-template-columns: 1.5fr"] p{margin-left:auto;margin-right:auto;max-width:340px}
    footer [style*="grid-template-columns: 1.5fr"] [style*="display: flex"]{justify-content:center}
    footer [style*="grid-template-columns: 1.5fr"] ul{align-items:center}
    footer [style*="justify-content: space-between"]{flex-direction:column;gap:8px!important;text-align:center;margin-top:26px!important;padding-top:24px!important}
    footer ul{gap:9px!important}
  }

/* ---------- NAVEGAÇÃO: foco visível e rolagem suave ---------- */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #1C8584;outline-offset:3px;border-radius:6px}
header nav[data-nav] a:focus-visible{outline-offset:1px}

/* nav em telas intermediárias (901-1040px): compacta em vez de quebrar */
@media (min-width:901px) and (max-width:1040px){
  header nav[data-nav]{gap:0!important}
  header nav[data-nav] > a,header nav[data-nav] > div > a{padding:8px 9px!important;font-size:14.5px!important}
  header > div:last-child > div > a:last-child{padding:11px 15px!important;font-size:14px!important}
}

/* Home / bloco história: resolve altura quando o grid empilha */
@media (max-width:960px){
  .home-hist-frame{height:auto!important;min-height:0!important;aspect-ratio:16/10}
}
