/* ============================================================
   Fischertec — ajustes de responsividade para celular e tablet

   As páginas usam estilo inline (style="..."), que vence qualquer regra
   normal de folha de estilo. Por isso cada override abaixo usa !important
   e seletores de atributo que casam com o texto do style.

   ATENÇÃO ao escrever novas regras: o runtime do dc (React) re-serializa
   o style inline com espaço depois dos dois-pontos. O HTML traz
   "inset:-40px", mas no DOM vira "inset: -40px". Um seletor com apenas
   uma das formas falha silenciosamente. Por isso todo seletor que depende
   de um valor aparece nas duas grafias.
   ============================================================ */

img, iframe, svg { max-width: 100%; }
body { -webkit-text-size-adjust: 100%; }

/* No desktop os elementos que o script anexa ficam ocultos, e os nós
   originais seguem no lugar de sempre — nada foi movido. */
.fis-nav-toggle,
.fis-filtros-botao,
.fis-abas { display: none; }

/* Faixa de números do hero — vale para TODAS as larguras.
   Com o quarto número (+200 máquinas vendidas) os itens deixaram de
   caber nos ~565px da coluna do hero e "Assistência" quebrava sozinha
   numa segunda linha, com um divisor solto no fim da primeira.
   Reduzir o vão de 28 para 14px e o rótulo em 1px devolve tudo à mesma
   linha, sem tirar informação. */
[style*="margin-top: 38px"][style*="flex-wrap"],
[style*="margin-top:38px"][style*="flex-wrap"] { gap: 14px !important; }
[style*="margin-top: 38px"] [style*="font-size: 13px"],
[style*="margin-top:38px"] [style*="font-size:13px"] { font-size: 12px !important; }

/* ---------- tablet e celular ---------- */
@media (max-width: 900px) {

  /* Toda grade de várias colunas passa a empilhar. Este seletor não
     depende de valor, então funciona nas duas grafias. */
  [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }

  /* Exceção: listas de especificação ficam melhor em duas colunas. */
  dl[style*="grid-template-columns"] { grid-template-columns: auto 1fr !important; }

  .wrap { padding-inline: 18px !important; }

  /* Cabeçalho de celular: hambúrguer à esquerda, logo centralizado,
     CTA à direita — uma linha só. O menu abre por cima do conteúdo.
     A reestruturação do DOM é feita pelo menu-mobile.js. */
  .wrap[style*="height:68px"],
  .wrap[style*="height: 68px"] {
    height: 60px !important;
    gap: 0 !important;
    padding-block: 0 !important;
    position: relative !important;
    flex-wrap: nowrap !important;
    /* hambúrguer encostado à esquerda, CTA à direita; o logo é
       posicionado à parte, no centro da tela */
    justify-content: space-between !important;
  }
  .wrap[style*="height:68px"] img,
  .wrap[style*="height: 68px"] img { height: 36px !important; }

  .fis-nav-toggle {
    display: flex !important;
    order: 1;
    flex: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 44px;
    padding: 0;
    margin-left: -6px;
    background: none;
    border: 0;
    cursor: pointer;
  }
  .fis-nav-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: #14171a;
    border-radius: 2px;
    transition: transform .2s ease, opacity .15s ease;
  }
  /* vira um X quando aberto */
  .fis-nav-aberto .fis-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .fis-nav-aberto .fis-nav-toggle span:nth-child(2) { opacity: 0; }
  .fis-nav-aberto .fis-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* Fora do fluxo do flex: assim o logo fica no centro da TELA, e não
     no meio do espaço que sobra entre o hambúrguer e o botão do
     WhatsApp — que têm larguras diferentes e puxariam o logo para o
     lado. O .wrap é position:relative e centralizado, então 50% dele
     coincide com 50% da viewport. */
  .wrap[style*="height: 68px"] > a:first-child,
  .wrap[style*="height:68px"] > a:first-child {
    order: 2;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0 !important;
  }

  /* WhatsApp: último <a> da barra (o hambúrguer é <button>, anexado
     depois, então :last-of-type continua apontando para o link certo) */
  .wrap[style*="height: 68px"] > a:last-of-type,
  .wrap[style*="height:68px"] > a:last-of-type {
    order: 3;
    flex: none;
    font-size: 13px !important;
    padding: 9px 15px !important;
  }

  /* Os links do meio formam o painel que desce. Cada um é absoluto, com
     50px de altura, empilhado a partir da base da barra. É assim, e não
     agrupando num <nav>, porque agrupar exigiria mover nós do React —
     o que derrubava a página no primeiro re-render. */
  .wrap[style*="height: 68px"] > a:not(:first-child):not(:last-of-type),
  .wrap[style*="height:68px"] > a:not(:first-child):not(:last-of-type) {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    height: 50px;
    align-items: center;
    padding: 0 18px;
    margin: 0;
    background: #fff;
    border-bottom: 1px solid #f1f2f4;
    font-size: 16px !important;
    font-weight: 600 !important;
  }
  .fis-nav-aberto > a:not(:first-child):not(:last-of-type) { display: flex !important; }
  .fis-nav-aberto > a:nth-child(2) { top: 100%; }
  .fis-nav-aberto > a:nth-child(3) { top: calc(100% + 50px); }
  .fis-nav-aberto > a:nth-child(4) { top: calc(100% + 100px); }
  .fis-nav-aberto > a:nth-child(5) {
    top: calc(100% + 150px);
    border-bottom: 0;
    box-shadow: 0 14px 26px rgba(16, 24, 40, .14);
  }

  /* Tipografia: 58px de h1 não cabe em 375px */
  h1 { font-size: clamp(26px, 7.5vw, 38px) !important; }
  h2 { font-size: clamp(21px, 5.8vw, 28px) !important; }
  h3 { font-size: clamp(17px, 4.6vw, 21px) !important; }

  /* Caixas com padding pensado para desktop */
  [style*="padding:56px 48px"], [style*="padding: 56px 48px"],
  [style*="padding:52px 48px"], [style*="padding: 52px 48px"],
  [style*="padding:40px 44px"], [style*="padding: 40px 44px"],
  [style*="padding:36px"],      [style*="padding: 36px"],
  [style*="padding:28px"],      [style*="padding: 28px"],
  [style*="padding:26px"],      [style*="padding: 26px"],
  [style*="padding:22px"],      [style*="padding: 22px"] { padding: 22px 18px !important; }

  /* Espaçamento vertical das seções */
  [style*="padding-block:72px"], [style*="padding-block: 72px"] { padding-block: 40px !important; }
  [style*="padding-block:64px"], [style*="padding-block: 64px"] { padding-block: 36px !important; }
  [style*="padding-block:56px"], [style*="padding-block: 56px"] { padding-block: 32px !important; }
  [style*="padding-block:52px"], [style*="padding-block: 52px"] { padding-block: 30px !important; }
  [style*="padding-bottom:72px"], [style*="padding-bottom: 72px"] { padding-bottom: 40px !important; }
  [style*="padding-bottom:64px"], [style*="padding-bottom: 64px"] { padding-bottom: 36px !important; }
  [style*="padding-bottom:56px"], [style*="padding-bottom: 56px"] { padding-bottom: 32px !important; }

  /* Imagens de destaque não podem tomar a tela inteira */
  [style*="min-height:440px"], [style*="min-height: 440px"],
  [style*="min-height:420px"], [style*="min-height: 420px"] { min-height: 210px !important; }
  [style*="min-height:360px"], [style*="min-height: 360px"],
  [style*="min-height:340px"], [style*="min-height: 340px"],
  [style*="min-height:320px"], [style*="min-height: 320px"] { min-height: 185px !important; }
  img[style*="min-height:420px"], img[style*="min-height: 420px"] { height: 210px !important; }
  img[style*="max-height:420px"], img[style*="max-height: 420px"] { max-height: 230px !important; }
  img[style*="max-height:440px"], img[style*="max-height: 440px"] { max-height: 230px !important; }
  [style*="height:250px"], [style*="height: 250px"] { height: 185px !important; }
  [style*="height:210px"], [style*="height: 210px"] { height: 165px !important; }

  /* Grudar no topo só faz sentido enquanto existem duas colunas */
  [style*="top:88px"], [style*="top: 88px"] { position: static !important; }

  /* Enfeites decorativos que vazam para fora da tela.
     O do hero fica num pai sem overflow:hidden, então cria
     rolagem horizontal de verdade. */
  [style*="inset:-40px"], [style*="inset: -40px"] { inset: -6px !important; }
  [style*="right:-80px"], [style*="right: -80px"] { right: -170px !important; }

  /* ---- hero ----
     line-height 1.05 é feito para título de uma linha; no celular o
     mesmo título ocupa três e as linhas se colam. */
  h1 { line-height: 1.14 !important; }
  h1[style*="margin: 22px 0px 0px"],
  h1[style*="margin:22px 0 0"] { margin-top: 16px !important; }

  /* 18px de corpo é peso de desktop; 16px lê melhor em 375px */
  p[style*="font-size: 18px"],
  p[style*="font-size:18px"] {
    font-size: 16px !important;
    margin-top: 14px !important;
  }

  /* botões mais próximos do texto que os motiva */
  [style*="margin-top: 32px"][style*="flex-wrap"],
  [style*="margin-top:32px"][style*="flex-wrap"] {
    margin-top: 22px !important;
    gap: 10px !important;
  }

  /* ---- home: números do hero ----
     Os separadores verticais viram traços soltos quando a fila quebra.
     Some com eles e alinha os três itens numa grade de duas colunas. */
  /* São 4 números (+200, Nacional, Sob medida, Assistência): duas
     colunas por duas linhas fecham certo, sem célula órfã. Com mais
     largura por célula o número volta a 20px — em três colunas ele
     precisava encolher para 17px só para caber. */
  [style*="margin-top: 38px"][style*="flex-wrap"],
  [style*="margin-top:38px"][style*="flex-wrap"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px 14px !important;
    margin-top: 24px !important;
  }
  [style*="margin-top: 38px"] > [style*="width: 1px"],
  [style*="margin-top:38px"] > [style*="width:1px"] { display: none !important; }
  [style*="margin-top: 38px"] [style*="font-size: 22px"],
  [style*="margin-top:38px"] [style*="font-size:22px"] { font-size: 20px !important; }
  [style*="margin-top: 38px"] [style*="font-size: 13px"],
  [style*="margin-top:38px"] [style*="font-size:13px"] {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  /* ---- home: faixa de diferenciais ----
     space-between com 6 itens produz quebra irregular. Grade fixa alinha. */
  .wrap[style*="justify-content: space-between"],
  .wrap[style*="justify-content:space-between"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px 14px !important;
    align-items: start !important;
  }

  /* ---- cartões de máquina ----
     São fotos de produto em fundo claro; "cover" corta a máquina.
     "contain" mostra o equipamento inteiro. */
  [style*="height: 150px"] img,
  [style*="height:150px"] img { object-fit: contain !important; }
  [style*="height: 150px"],
  [style*="height:150px"] { height: 165px !important; }

  /* ---- página de máquina ----
     A caixa de orçamento é a coluna da direita no desktop; empilhada,
     ia parar depois de tudo (y≈2700 numa página de 4500). Dissolvemos a
     coluna esquerda para poder intercalar: foto, depois nome e CTA,
     depois o conteúdo. */
  [style*="grid-template-columns: 1fr 340px"],
  [style*="grid-template-columns:1fr 340px"] {
    display: flex !important;
    flex-direction: column !important;
  }
  [style*="grid-template-columns: 1fr 340px"] > [style*="min-width: 0px"],
  [style*="grid-template-columns:1fr 340px"] > [style*="min-width:0"] {
    display: contents !important;
  }
  [style*="grid-template-columns: 56px 1fr"],
  [style*="grid-template-columns:56px 1fr"] { order: -2; }
  [style*="top: 88px"], [style*="top:88px"] { order: -1; }

  /* A miniatura da galeria vira uma faixa cortada de 56px atravessando a
     tela, e só existe uma foto. Não faz sentido no celular. */
  [style*="grid-template-columns: 56px 1fr"] > div:first-child,
  [style*="grid-template-columns:56px 1fr"] > div:first-child { display: none !important; }

  /* ---- catálogo: filtros em duas colunas ----
     Recolhido mostra só o botão. Aberto vira uma grade: categorias à
     esquerda, opções da categoria escolhida à direita. Os grupos
     originais ficam todos na mesma célula e só o ativo é exibido —
     assim nada precisa ser movido no DOM do React. */
  aside {
    display: grid !important;
    grid-template-columns: 116px 1fr;
    column-gap: 12px;
    align-items: start;
  }
  aside > * { display: none !important; }

  .fis-filtros-botao {
    display: flex !important;
    grid-column: 1 / -1;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
    font-family: "Space Grotesk", system-ui, sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #14171a;
  }
  .fis-chevron {
    width: 9px; height: 9px; flex: none;
    border-right: 2px solid #8a9099;
    border-bottom: 2px solid #8a9099;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .2s ease;
  }
  .fis-filtros-aberto .fis-chevron { transform: rotate(-135deg) translate(-3px, -3px); }

  /* coluna da esquerda: as categorias */
  .fis-filtros-aberto > .fis-abas {
    display: flex !important;
    flex-direction: column;
    gap: 2px;
    grid-column: 1;
    grid-row: 2;
    margin-top: 14px;
    border-right: 1px solid #ededed;
    padding-right: 10px;
  }
  .fis-aba {
    text-align: left;
    background: none;
    border: 0;
    border-radius: 8px;
    padding: 11px 9px;
    font: inherit;
    font-size: 14px;
    color: #3a4048;
    cursor: pointer;
  }
  .fis-aba-ativa {
    background: #fbe9e8;
    color: #7a1416;
    font-weight: 700;
  }

  /* coluna da direita: só o grupo escolhido, todos na mesma célula */
  .fis-filtros-aberto > .fis-grupo {
    grid-column: 2;
    grid-row: 2;
    margin-top: 14px !important;
    border-top: 0 !important;
    padding-top: 0 !important;
  }
  .fis-filtros-aberto[data-grupo-ativo="0"] > .fis-grupo[data-grupo="0"],
  .fis-filtros-aberto[data-grupo-ativo="1"] > .fis-grupo[data-grupo="1"],
  .fis-filtros-aberto[data-grupo-ativo="2"] > .fis-grupo[data-grupo="2"] {
    display: block !important;
  }
  /* o nome da categoria já está na aba da esquerda */
  .fis-filtros-aberto > .fis-grupo > div:first-child { display: none !important; }
  .fis-filtros-aberto > .fis-grupo > div { padding-block: 9px !important; }

  /* ---- rodapé ----
     Empilhado ele passava de 700px. Separadores entre os três blocos
     dão hierarquia, e o entrelinhas folgado (2.1) vira alvo de toque
     de 44px sem desperdiçar altura. */
  [style*="padding-block: 52px"][style*="grid-template-columns"],
  [style*="padding-block:52px"][style*="grid-template-columns"] {
    gap: 0 !important;
  }
  [style*="padding-block: 52px"][style*="grid-template-columns"] > div + div,
  [style*="padding-block:52px"][style*="grid-template-columns"] > div + div {
    border-top: 1px solid rgba(255, 255, 255, .10);
    margin-top: 16px;
    padding-top: 16px;
  }
  [style*="padding-block: 52px"],
  [style*="padding-block:52px"] { padding-block: 24px !important; }
  /* tagline e selo do rodapé mais juntos do logo */
  [style*="padding-block: 52px"] p[style*="max-width: 34ch"],
  [style*="padding-block:52px"] p[style*="max-width:34ch"] { margin-top: 10px !important; }
  /* logo do rodapé não precisa competir com o do topo */
  [style*="padding-block: 52px"] img,
  [style*="padding-block:52px"] img { height: 46px !important; }

  /* lista de navegação: linha mais curta, mas cada link com 44px de
     área tocável */
  [style*="line-height: 2.1"], [style*="line-height:2.1"] { line-height: 1.5 !important; }
  /* Só o espaçamento separa os links: hairline em cada um deixaria o
     rodapé com cara de tela de configurações.
     8px de padding dá alvo de ~37px: passa folgado no mínimo de 24px
     da WCAG 2.5.8 (AA) e mantém o rodapé curto. Os 44px do nível AAA
     custariam ~50px de altura extra num bloco que só se atravessa. */
  [style*="line-height: 2.1"] > a,
  [style*="line-height:2.1"] > a { padding-block: 7px !important; }

  /* bloco de contato: telefone e WhatsApp agora são links */
  [style*="line-height: 1.9"], [style*="line-height:1.9"] { line-height: 1.75 !important; }
  [style*="line-height: 1.9"] a[href^="tel:"],
  [style*="line-height: 1.9"] a[href*="wa.me"],
  [style*="line-height:1.9"] a[href^="tel:"],
  [style*="line-height:1.9"] a[href*="wa.me"] {
    display: inline-block;
    padding-block: 7px;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: rgba(255, 255, 255, .28);
  }

  /* Botões principais ocupam a largura — alvo de toque maior */
  [style*="padding:15px 26px"], [style*="padding: 15px 26px"],
  [style*="padding:16px 28px"], [style*="padding: 16px 28px"] {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* ---------- telas bem estreitas (iPhone SE e afins) ----------
   Só abaixo de 340px o logo centralizado começa a encostar no botão do
   WhatsApp. O limite fica aqui de propósito: a 380px ele pegava também
   os celulares de 360 e 375, que têm espaço de sobra para o logo maior. */
@media (max-width: 340px) {
  .wrap[style*="height:68px"] img,
  .wrap[style*="height: 68px"] img { height: 28px !important; }
  .fis-cta {
    font-size: 11px !important;
    padding: 7px 10px !important;
  }
}

/* ---------- celular estreito ---------- */
@media (max-width: 560px) {
  .wrap { padding-inline: 14px !important; }

  .wrap[style*="height:68px"],
  .wrap[style*="height: 68px"] { gap: 8px 12px !important; }

  /* características principais: rótulo e valor podem quebrar */
  [style*="gap:0 40px"] > div, [style*="gap: 0px 40px"] > div { flex-wrap: wrap !important; }
}
