/* Seu Pneu Novo — Portugal · réplica do visual de seupneunovo.com.br (tema Flatsome, Poppins) */

/* Poppins servida pela loja (assets/fonts, subconjuntos latin + latin-ext): sem pedidos à Google antes do consentimento.
   Poppins © 2020 The Poppins Project Authors (github.com/itfoundry/Poppins) — SIL Open Font License 1.1 (openfontlicense.org). */
@font-face { font-family: Poppins; font-style: normal; font-weight: 300; font-display: swap; src: url(../fonts/poppins-300-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/poppins-400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/poppins-500-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/poppins-600-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/poppins-700-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/poppins-800-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 900; font-display: swap; src: url(../fonts/poppins-900-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 500; font-display: swap; src: url(../fonts/poppins-500i-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 700; font-display: swap; src: url(../fonts/poppins-700i-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 800; font-display: swap; src: url(../fonts/poppins-800i-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 900; font-display: swap; src: url(../fonts/poppins-900i-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 300; font-display: swap; src: url(../fonts/poppins-300-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/poppins-400-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/poppins-500-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/poppins-600-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/poppins-700-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/poppins-800-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: normal; font-weight: 900; font-display: swap; src: url(../fonts/poppins-900-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 500; font-display: swap; src: url(../fonts/poppins-500i-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 700; font-display: swap; src: url(../fonts/poppins-700i-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 800; font-display: swap; src: url(../fonts/poppins-800i-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Poppins; font-style: italic; font-weight: 900; font-display: swap; src: url(../fonts/poppins-900i-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --navy: #292d96;
  --azul: #0051dd;
  --azul-btn: #1a3fd6;
  --azul-claro: #1f5be0;
  /* verdes escurecidos para contraste ≥ 4,5:1 com branco (preço, pílula, botões) */
  --verde: #347f28;
  --verde-btn: #1a7f30;
  --verde-carrinho: #15803d;
  --vermelho: #e3262f;
  --texto: #202020;
  --cinza: #777;
  --linha: #e1e1e1;
  --fundo-suave: #f5f6fa;
  --raio: 8px;
  --sombra: 0 6px 24px rgba(20, 24, 60, .12);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--texto); font: 400 15px/1.5 Poppins, system-ui, -apple-system, "Segoe UI", sans-serif; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-weight: 600; line-height: 1.25; margin: 0 0 .5em; }
.container { max-width: 1300px; margin: 0 auto; padding: 0 16px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ico { width: 1em; height: 1em; display: inline-block; vertical-align: -.15em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.ico.f { fill: currentColor; stroke: none; }

/* ------------------------------------------------------------- cabeçalho */
.topo { background: #fff; position: relative; z-index: 30; }
.topo-main { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 28px; min-height: 115px; }
.logo img { width: 97px; height: 97px; }
.topo-centro { display: flex; flex-direction: column; gap: 6px; max-width: 620px; }
.topo-links { display: flex; flex-wrap: wrap; gap: 2px 16px; font-size: 12px; align-items: center; white-space: nowrap; overflow: hidden; }   /* quebra de linha em vez de cortar o contacto */
.topo-links a { display: inline-flex; align-items: center; gap: 5px; }
.topo-links .ico { color: var(--navy); font-size: 14px; }
.topo-links b { font-weight: 600; }
.busca { display: flex; border: 1px solid #d5d5d5; border-radius: 30px; overflow: hidden; height: 50px; background: #fff; }
.busca input { flex: 1; border: 0; padding: 0 18px; font-size: 14px; outline: none; min-width: 0; background: transparent; }
.busca:focus-within { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(0, 81, 221, .25); }   /* o input não tem contorno próprio */
a:focus-visible, button:focus-visible, select:focus-visible, input[type=checkbox]:focus-visible, summary:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; }
.busca button { width: 70px; margin: 4px; border: 0; border-radius: 26px; background: var(--navy); color: #fff; font-size: 20px; cursor: pointer; display: grid; place-items: center; }
.topo-acoes { display: flex; align-items: center; gap: 26px; position: relative; padding-top: 22px; }
.topo-acoes > a { display: flex; align-items: center; gap: 8px; font-size: 13.5px; line-height: 1.2; }
.topo-acoes > a .ico { font-size: 30px; stroke-width: 1.5; }
.btn-rastrear { position: absolute; right: 0; top: -14px; background: var(--navy); color: #fff !important; font-size: 13.5px !important; font-weight: 500; padding: 5px 20px; border-radius: 10px; }
.carrinho-total { color: var(--verde-carrinho); font-weight: 600; display: block; }
.carrinho-qtd { position: absolute; top: -6px; left: 18px; background: var(--vermelho); color: #fff; font-size: 10px; font-weight: 700; border-radius: 10px; min-width: 17px; height: 17px; display: grid; place-items: center; padding: 0 4px; }
.topo-carrinho { position: relative; }

.menu { background: var(--navy); color: #fff; }
.menu ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; min-height: 58px; gap: 4px; }
.menu li { position: relative; }
.menu li > a { display: block; padding: 8px 18px; font-size: 13.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .1px; white-space: nowrap; }
.menu li > a:hover { opacity: .85; }
.menu .badge-novo { position: absolute; top: -9px; right: 8px; background: var(--vermelho); font-size: 9px; padding: 1px 5px; border-radius: 3px; font-weight: 600; }
.menu .ofertas > a { background: var(--azul-claro); border-radius: 9px; display: flex; align-items: center; gap: 10px; padding: 6px 18px; line-height: 1.15; }
.menu .ofertas .ico { font-size: 26px; }
.menu .sub { display: none; position: absolute; top: 100%; left: 0; background: #fff; color: var(--texto); box-shadow: var(--sombra); border-radius: 0 0 8px 8px; padding: 14px; min-width: 520px; grid-template-columns: repeat(3, 1fr); gap: 2px 18px; z-index: 40; }
.menu li:hover > .sub, .menu li:focus-within > .sub { display: grid; }
.menu .sub a { font-size: 13.5px; padding: 5px 4px; text-transform: none; font-weight: 500; border-radius: 4px; }
.menu .sub a:hover { background: var(--fundo-suave); color: var(--azul); }

.topo-mob { display: none; }

/* ------------------------------------------------------------- banner + busca */
.hero { position: relative; }
.slides { position: relative; overflow: hidden; background: #eef0f6; }
.slide { display: none; position: relative; aspect-ratio: 1920 / 500; min-height: 330px; overflow: hidden;
  background: linear-gradient(90deg, #fafbff 0%, #f1f3f9 55%, #e9ecf5 100%); }
.slide.ativo { display: block; animation: slideIn .5s ease; }
@keyframes slideIn { from { opacity: .3; } to { opacity: 1; } }
.slide::after { content: ""; position: absolute; inset: 0 0 0 60%; background:
  repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 2px, transparent 2px 70px),
  repeating-linear-gradient(0deg, rgba(255,255,255,.06) 0 2px, transparent 2px 92px),
  linear-gradient(135deg, #2f3ab0 0%, #1b2177 70%, #141859 100%);
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%); }
.slide-txt { position: absolute; z-index: 2; left: 14%; top: 50%; transform: translateY(-58%); max-width: 46%; }
.slide-marca { height: 46px; width: auto; margin-bottom: 12px; }
.slide-marca-txt { font-size: 32px; font-weight: 800; letter-spacing: -.5px; color: #111; margin-bottom: 6px; display: inline-block; }
.slide h2 { font-size: clamp(22px, 2.6vw, 42px); color: #1b2177; font-weight: 800; margin: 0; line-height: 1.05; text-transform: uppercase; }
.slide .linha2 { font-size: clamp(16px, 1.8vw, 28px); color: #f47b20; font-weight: 700; font-style: italic; text-transform: uppercase; line-height: 1.1; margin: 4px 0 6px; }
.slide .grande { font-size: clamp(44px, 6vw, 104px); font-weight: 900; font-style: italic; color: #f47b20; letter-spacing: -2px; line-height: .95; text-transform: uppercase; }
.slide .preco-banner { color: #8cc63f; font-weight: 900; font-style: italic; font-size: clamp(46px, 6.2vw, 108px); letter-spacing: -2px; line-height: .95; display: flex; align-items: flex-start; gap: 6px; }
.slide .preco-banner small { font-size: .3em; letter-spacing: 0; margin-top: .25em; }
.slide .preco-banner sup { font-size: .38em; letter-spacing: 0; line-height: 1; margin-top: .12em; display: flex; flex-direction: column; }
.slide .preco-banner sup em { font-size: .55em; color: #1b2177; font-style: normal; font-weight: 800; margin-top: 4px; }
.slide .sub-banner { color: #1b2177; font-size: clamp(13px, 1.1vw, 18px); font-weight: 500; margin-top: 6px; }
.slide-pneu { position: absolute; z-index: 1; right: 25%; top: 50%; transform: translateY(-50%); height: 112%; width: auto; mix-blend-mode: multiply; }
.slide-dir { position: absolute; z-index: 2; right: 6%; top: 50%; transform: translateY(-55%); text-align: right; color: #fff; }
.slide-dir .num { font-size: clamp(54px, 6vw, 110px); font-weight: 900; font-style: italic; color: #a5d233; line-height: .9; }
.slide-dir .t1 { font-size: clamp(22px, 2.6vw, 44px); font-weight: 800; line-height: 1; }
.slide-dir .t2 { font-size: clamp(14px, 1.3vw, 22px); color: #a5d233; font-style: italic; font-weight: 500; }
.slides-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; background: none; border: 0; color: #fff; font-size: 34px; cursor: pointer; opacity: .8; padding: 10px; }
.slides-nav.ant { left: 4px; color: #1b2177; } .slides-nav.seg { right: 4px; }
.slides-dots { position: absolute; bottom: 58px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 5; }
.slides-dots button { width: 9px; height: 9px; border-radius: 50%; border: 0; background: rgba(27,33,119,.3); cursor: pointer; padding: 0; }
.slides-dots button.ativo { background: #1b2177; }
.slides-pausa { position: absolute; right: 10px; bottom: 10px; z-index: 5; width: 28px; height: 28px; border-radius: 50%; border: 0; padding: 0; background: rgba(20, 24, 89, .6); color: #fff; font-size: 10px; cursor: pointer; display: grid; place-items: center; }

.caixa-busca { position: relative; z-index: 6; max-width: 1215px; margin: -44px auto 0; background: #fff; border-radius: 16px; box-shadow: var(--sombra); padding: 26px 40px; display: grid; gap: 18px; }
.busca-linha { display: grid; grid-template-columns: 210px 1fr 1fr 1fr 215px; gap: 16px; align-items: center; }
.busca-linha.veiculo { grid-template-columns: 210px 1fr 1fr 1fr 215px; }   /* marca, modelo, ano: alinhada com a pesquisa por medida */
.busca-tit { font-size: 19px; font-weight: 700; line-height: 1.2; text-transform: uppercase; }
.busca-tit span { color: var(--azul-btn); display: block; }
.sel { position: relative; }
.sel select { width: 100%; height: 54px; border: 1px solid #ddd; border-radius: 7px; background: #fff; padding: 0 40px 0 18px; font-size: 15px; appearance: none; -webkit-appearance: none; cursor: pointer; }
.sel::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; border-right: 2px solid #555; border-bottom: 2px solid #555; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.sel select:disabled { color: #999; background: #fafafa; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 7px; cursor: pointer; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; transition: filter .15s; text-align: center; }
.btn:hover { filter: brightness(1.08); }
.btn-azul { background: var(--azul-btn); color: #fff; height: 54px; font-size: 14px; padding: 0 24px; }
.btn-verde { background: var(--verde-btn); color: #fff; height: 50px; font-size: 18px; letter-spacing: 2px; padding: 0 24px; border-radius: 12px; font-weight: 600; }
.btn-navy { background: var(--navy); color: #fff; height: 46px; padding: 0 22px; font-size: 13px; }
.btn-claro { background: #fff; color: var(--navy); border: 1px solid #cfd3ea; height: 44px; padding: 0 18px; font-size: 13px; }
.btn:disabled { opacity: .55; cursor: not-allowed; filter: none; }
.veiculo-res { grid-column: 1 / -1; display: none; background: var(--fundo-suave); border-radius: 10px; padding: 14px 18px; font-size: 14px; }
.veiculo-res.ativo { display: block; }
.veiculo-res .medidas-lista { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.veiculo-res .medidas-lista a { background: #fff; border: 1px solid #cdd3f0; color: var(--navy); font-weight: 600; padding: 6px 14px; border-radius: 20px; }
.veiculo-res .medidas-lista a:hover { background: var(--navy); color: #fff; }
.aviso-medida { color: #6a6a6a; font-size: 12.5px; }

/* ------------------------------------------------------------- selos */
.selos { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; padding-top: 40px; padding-bottom: 10px; max-width: 1240px; margin: 0 auto; }
.selo { display: flex; align-items: center; gap: 12px; }
.selo .ico { font-size: 44px; color: var(--azul-btn); stroke-width: 1.6; }
.selo b { display: block; font-size: 15px; font-weight: 600; line-height: 1.25; }
.selo span { font-size: 13px; color: #888; line-height: 1.2; }

/* ------------------------------------------------------------- secções + cartões */
.secao { padding-top: 40px; padding-bottom: 10px; }
.secao-tit { text-align: center; font-size: 34px; font-weight: 400; margin: 0 0 30px; }
.grelha { display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px 26px; }
.grelha.g5 { grid-template-columns: repeat(5, 1fr); gap: 34px 22px; }
.cartao { display: flex; flex-direction: column; position: relative; }
.cartao-img { aspect-ratio: 1; display: grid; place-items: center; margin-bottom: 18px; position: relative; }
.cartao-img img { width: 88%; height: 88%; object-fit: contain; transition: transform .25s; }
.cartao:hover .cartao-img img { transform: scale(1.04); }
.cartao-tags { position: absolute; left: 0; top: 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.tag { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 3px; background: #111; color: #fff; text-transform: uppercase; letter-spacing: .3px; }
.tag.inverno { background: #1d6fd6; } .tag.todas { background: #0f8a6a; } .tag.verao { background: #f29d1f; } .tag.rf { background: #444; }
.marca-logo { height: 36px; display: flex; align-items: center; margin-bottom: 10px; }
.marca-logo img { max-height: 36px; width: auto; max-width: 170px; }
.marca-txt { font-weight: 800; font-style: italic; font-size: 21px; letter-spacing: -.3px; text-transform: uppercase; line-height: 1; color: #111; }
.marca-txt.hankook { color: #f26c22; font-style: normal; } .marca-txt.goodyear { color: #004d9d; } .marca-txt.dunlop { color: #111; border-bottom: 3px solid #ffd400; }
.marca-txt.uniroyal { color: #0d3b8c; } .marca-txt.nankang { color: #c8102e; font-style: normal; } .marca-txt.vredestein { color: #000; font-style: normal; letter-spacing: 1px; }
.marca-txt.general-tire { color: #1d4f91; } .marca-txt.bfgoodrich { color: #c8102e; } .marca-txt.matador { color: #d41c2c; } .marca-txt.cooper { color: #003a70; }
.marca-txt.kormoran, .marca-txt.debica { color: #1d4f91; } .marca-txt.roadstone { color: #0b6d3c; } .marca-txt.falken { color: #0057a6; } .marca-txt.toyo { color: #003d7c; font-style: normal; }
.cartao-nome { font-size: 14.5px; line-height: 1.45; text-transform: uppercase; min-height: 42px; margin-bottom: 8px; }
.cartao-nome:hover { color: var(--azul); }
.preco { color: var(--verde); font-weight: 600; font-size: 23px; line-height: 1.1; }
.preco small { font-size: 12px; color: #757575; font-weight: 400; margin-left: 4px; }
.pilula { background: var(--verde); color: #fff; font-size: 14px; padding: 7px 10px; border-radius: 8px; margin-top: 8px; display: block; font-weight: 500; }
.ref { font-size: 11px; color: #444; margin-top: 7px; }
.etq-mini { display: flex; gap: 4px; margin-top: 7px; font-size: 11px; color: #555; align-items: center; flex-wrap: wrap; }
.etq-mini i { font-style: normal; font-weight: 700; color: #fff; padding: 0 5px; border-radius: 2px; margin-right: 4px; }
.etq-mini .ico { font-size: 14px; color: #1d4f91; }

.mini-banners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 48px auto 10px; }
.mini-banner { border-radius: 14px; overflow: hidden; aspect-ratio: 420 / 190; position: relative; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; color: #fff; text-align: center;
  background: radial-gradient(120% 140% at 10% 10%, #3a3f55 0%, #15171f 60%), #111; }
.mini-banner::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 6px, transparent 6px 22px); }
.mini-banner .mb-logo { position: relative; background: rgba(255,255,255,.95); padding: 6px 14px; border-radius: 6px; }
.mini-banner .mb-logo img { height: 34px; width: auto; }
.mini-banner .mb-logo .marca-txt { font-size: 26px; }
.mini-banner p { position: relative; margin: 0; font-size: 13px; max-width: 60%; line-height: 1.3; }
.mini-banner .btn { position: relative; background: #e3262f; color: #fff; height: 34px; font-size: 12.5px; padding: 0 22px; border-radius: 6px; }

.banner-largo { margin: 50px auto 10px; border-radius: 12px; overflow: hidden; display: grid; grid-template-columns: 1fr 1.6fr 1fr; align-items: center; gap: 20px; padding: 26px 34px; color: #fff;
  background: linear-gradient(90deg, #14161d 0%, #262a38 50%, #14161d 100%); position: relative; }
.banner-largo .bl-logo img { width: 120px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.4)); border-radius: 12px; }
.banner-largo h3 { font-size: 28px; font-weight: 600; margin: 0; text-align: center; }
.banner-largo h3 em { color: var(--azul-claro); font-style: normal; }
.banner-largo .bl-dir { font-size: 14px; }
.banner-largo .bl-dir .btn { margin-top: 10px; background: var(--vermelho); color: #fff; height: 36px; padding: 0 20px; font-size: 12px; border-radius: 6px; }
.banner-largo .bl-pneus { display: flex; justify-content: center; gap: 0; margin-top: 12px; background: #fff; border-radius: 10px; padding: 6px 10px; }
.banner-largo .bl-pneus img { width: 25%; }

.diferenciais { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin: 60px auto 50px; }
.dif { background: var(--azul); color: #fff; border-radius: 24px; text-align: center; padding: 30px 14px 26px; min-height: 212px; }
.dif .ico { font-size: 54px; stroke-width: 1.3; color: #9ec2ff; margin-bottom: 14px; }
.dif b { display: block; font-size: 16.5px; font-weight: 600; text-transform: uppercase; line-height: 1.2; margin-bottom: 6px; }
.dif span { font-size: 13.5px; line-height: 1.15; display: block; }

/* minmax(0, 1fr): as colunas encolhem abaixo da largura dos logótipos (sem isto a grelha transbordava a 320–405 px) */
.marcas-grelha { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px 18px; margin: 0 auto 70px; }
.marcas-grelha a { aspect-ratio: 196 / 110; border: 1px solid #ececec; border-radius: 6px; display: grid; place-items: center; box-shadow: 0 2px 6px rgba(0,0,0,.04); background: #fff; padding: 10px; transition: box-shadow .2s, transform .2s; }
.marcas-grelha a:hover { box-shadow: 0 8px 20px rgba(0,0,0,.08); transform: translateY(-2px); }
.marcas-grelha img { max-height: 46px; width: auto; max-width: 82%; }
.marcas-grelha .marca-txt { font-size: min(22px, 1.6vw); }

/* ------------------------------------------------------------- rodapé */
.rodape { background: var(--navy); color: #fff; padding: 46px 0 0; position: relative; overflow: hidden; }
.rodape::before { content: ""; display: block; height: 7px; background: var(--azul); border-radius: 4px; max-width: 1300px; margin: 0 auto 60px; width: calc(100% - 32px); }
.rodape-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr 1.1fr; gap: 30px; }
.rodape h4 { font-size: 14.5px; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; margin: 0 0 30px; position: relative; }
.rodape h4::after { content: ""; position: absolute; left: 0; bottom: -12px; width: 30px; height: 3px; background: var(--azul-claro); }
.rodape ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.rodape li a { font-size: 15px; font-weight: 300; }
.rodape li a:hover { text-decoration: underline; }
.rodape-logo { width: 116px; margin-bottom: 18px; border-radius: 12px; }
.rodape-contactos { display: grid; gap: 4px; font-size: 15px; font-weight: 300; }
.rodape-contactos a { display: flex; gap: 10px; align-items: center; }
.rodape-social { display: flex; gap: 14px; margin-top: 20px; font-size: 30px; }
.pagamentos { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.pag { background: #fff; color: #111; border-radius: 6px; height: 34px; padding: 0 10px; display: inline-flex; align-items: center; font-weight: 800; font-size: 13px; gap: 4px; }
.pag.mbway { color: #d4002d; }
.valorpneu { font-size: 12.5px; line-height: 1.35; margin-top: 8px; }
.valorpneu b { color: #a5d233; font-size: 14px; display: block; font-style: italic; }
.rodape-base { text-align: center; padding: 40px 0 30px; font-size: 14px; font-weight: 300; display: grid; gap: 10px; justify-items: center; }
.rodape-base img.ssl { width: 230px; filter: brightness(0) invert(1); opacity: .95; }
.ssl-txt { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; letter-spacing: .3px; }
.ssl-txt .ico { font-size: 20px; }
.rodape .preencher { color: #5c4500; }
.rodape-contactos .tel-nota { display: block; font-size: 12px; opacity: .85; }
.livro { display: inline-block; background: #fff; border-radius: 6px; padding: 6px 12px; color: #c00; font-weight: 700; font-size: 12px; }
.livro span { color: #333; font-weight: 500; display: block; font-size: 10.5px; }
.whats-flutuante { position: fixed; right: 18px; bottom: 18px; z-index: 60; width: 60px; height: 60px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; font-size: 32px; box-shadow: 0 6px 18px rgba(0,0,0,.25); }

/* ------------------------------------------------------------- listagem */
.migalhas { font-size: 15px; color: #888; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.migalhas a:hover { color: var(--texto); }
.migalhas b { color: var(--texto); font-weight: 600; }
.lista-topo { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 26px 0; flex-wrap: wrap; }
.lista-topo .direita { display: flex; align-items: center; gap: 18px; font-size: 15px; }
.lista-topo select { height: 40px; border: 1px solid #ccc; padding: 0 34px 0 12px; font-size: 15px; background: #fff; min-width: 230px; appearance: none; -webkit-appearance: none; }
.lista-topo .sel::after { right: 14px; }
.lista-corpo { display: grid; grid-template-columns: 250px 1fr; gap: 34px; align-items: start; }
.lista-h1 { font-size: 26px; font-weight: 600; margin: 0 0 4px; }
.lista-sub { color: #666; font-size: 14px; margin: 0 0 18px; }
.filtros { font-size: 14px; position: sticky; top: 12px; }
.filtro { border-bottom: 1px solid #eee; padding: 14px 0; }
.filtro h5 { margin: 0 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .6px; font-weight: 600; }
.filtro label { display: flex; align-items: center; gap: 8px; padding: 3px 0; cursor: pointer; }
.filtro label span { color: #999; font-size: 12px; margin-left: auto; }
.filtro input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--azul); }
.filtro label:has(input:disabled) { opacity: .45; cursor: default; }   /* opção que levaria a 0 resultados */
.filtro .mais { max-height: 230px; overflow: auto; }
.filtro-precos { display: flex; gap: 6px; align-items: center; }
.filtro-precos input { width: 80px; height: 34px; border: 1px solid #ddd; border-radius: 5px; padding: 0 8px; }
.filtros-acoes { display: flex; gap: 8px; margin-top: 14px; }
.btn-filtros-mob { display: none; }
.paginacao { display: flex; justify-content: center; gap: 6px; margin: 40px 0 60px; flex-wrap: wrap; }
.paginacao a, .paginacao span { min-width: 40px; height: 40px; border: 2px solid #ddd; border-radius: 50%; display: grid; place-items: center; font-weight: 600; font-size: 14px; padding: 0 6px; }
.paginacao .atual { background: var(--azul); border-color: var(--azul); color: #fff; }
.paginacao a:hover { border-color: var(--azul); color: var(--azul); }
.vazio { text-align: center; padding: 50px 20px 70px; background: var(--fundo-suave); border-radius: 14px; }
.vazio h2 { font-size: 22px; }
.medidas-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 16px; }
.medidas-chips a { background: #fff; border: 1px solid #d7dbef; padding: 6px 14px; border-radius: 20px; font-size: 14px; font-weight: 500; }
.medidas-chips a:hover { border-color: var(--azul); color: var(--azul); }

/* ------------------------------------------------------------- produto */
.produto { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; padding: 30px 0 20px; }
.galeria-principal { aspect-ratio: 1; display: grid; place-items: center; }
.galeria-principal img { width: 90%; height: 90%; object-fit: contain; }
.produto-info .migalhas { font-size: 13px; text-transform: uppercase; margin-bottom: 16px; }
.produto-info .marca-logo { height: 44px; margin-bottom: 6px; }
.produto-info .marca-logo img { max-height: 44px; }
.produto-info h1 { font-size: 30px; font-weight: 500; text-transform: uppercase; letter-spacing: -.6px; margin: 0 0 6px; line-height: 1.15; }
.produto-ref { font-size: 14px; font-weight: 500; margin-bottom: 18px; }
.produto-preco { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.produto-preco .ico { font-size: 30px; color: var(--verde); stroke-width: 1.4; }
.produto-preco .preco { font-size: 28px; }
.produto-preco small { color: #888; font-size: 13px; }
.produto-linha { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; margin-bottom: 8px; }
.produto-linha .ico { font-size: 28px; stroke-width: 1.4; }
.produto-linha small { display: block; color: #555; font-size: 14px; }
.disponib { color: #444; font-size: 13px; margin: 12px 0; display: flex; align-items: flex-start; gap: 8px; line-height: 1.4; }
.disponib .ico { font-size: 17px; color: var(--navy); margin-top: 1px; }
/* etiqueta europeia junto do preço (Reg. (UE) 2020/740) */
.etq-junto { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; margin: 0 0 10px; }
.etq-junto .etq-mini { margin-top: 0; font-size: 12px; }
.etq-junto a { color: var(--azul); text-decoration: underline; }
.etq-falta { display: flex; gap: 8px; align-items: flex-start; background: #fff3cd; color: #5c4500; border-radius: 8px; padding: 8px 12px; font-size: 13px; margin: 0 0 10px; line-height: 1.4; }
.etq-falta .ico { font-size: 17px; margin-top: 1px; }
.etq-falta a { text-decoration: underline; }
.etq-aviso { background: #fff3cd; color: #5c4500; border-radius: 6px; padding: 8px 10px; margin: 0; font-size: 13px; line-height: 1.4; }
/* "vender só pneus com etiqueta" ligado: ficha sem compra e aviso no carrinho */
.nao-vende { background: #fff3cd; color: #5c4500; border-radius: 8px; padding: 10px 14px; font-size: 14px; margin: 0 0 14px; line-height: 1.45; overflow-wrap: anywhere; }
.comprar { display: flex; gap: 14px; align-items: stretch; margin-bottom: 12px; }
.qtd { display: flex; align-items: center; border: 1px solid #ddd; border-radius: 12px; height: 50px; }
.qtd button { width: 32px; height: 100%; border: 0; background: none; cursor: pointer; font-size: 16px; }
.qtd input { width: 34px; border: 0; text-align: center; font-size: 15px; -moz-appearance: textfield; }
.qtd input::-webkit-inner-spin-button { -webkit-appearance: none; }
.comprar .btn-verde { flex: 1; }
.atalhos-qtd { display: flex; gap: 8px; margin-bottom: 14px; font-size: 13px; align-items: center; color: #666; flex-wrap: wrap; }
.atalhos-qtd button { border: 1px solid #ccd; background: #fff; border-radius: 16px; padding: 3px 12px; cursor: pointer; font-size: 13px; }
.atalhos-qtd button:hover { border-color: var(--azul); color: var(--azul); }
.produto-links { display: flex; gap: 28px; font-size: 15px; margin: 16px 0 22px; flex-wrap: wrap; }
.produto-links a { display: flex; gap: 8px; align-items: center; }
.produto-links .ico { font-size: 20px; }
.produto-links .wa .ico { color: #25b04b; }
.simulador { border: 1px solid #e4e4e4; border-radius: 12px; padding: 18px 28px 22px; }
.simulador b { display: flex; gap: 8px; align-items: center; font-weight: 600; margin-bottom: 10px; }
.simulador .linha { display: flex; border: 1px solid #ddd; border-radius: 10px; overflow: hidden; }
.simulador input { flex: 1; border: 0; padding: 0 14px; height: 50px; outline: none; min-width: 0; }
.simulador .linha:focus-within { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(0, 81, 221, .25); }
.simulador button { border: 0; background: #ececec; padding: 0 24px; font-weight: 600; cursor: pointer; }
.simulador .res { font-size: 14px; margin-top: 10px; }
.simulador .res.ok { color: var(--verde-btn); } .simulador .res.erro { color: #c62828; }
.abas { display: flex; gap: 6px; margin: 40px 0 0; flex-wrap: wrap; }
.abas button { border: 2px solid transparent; background: none; padding: 9px 12px; font-size: 15px; border-radius: 12px; cursor: pointer; font-weight: 500; }
.abas button.ativo { border-color: #111; }
.abas-corpo { display: grid; grid-template-columns: 1fr 300px; gap: 40px; padding: 26px 0 30px; }
.aba { display: none; } .aba.ativo { display: block; }
.tabela { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.tabela th, .tabela td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #eee; vertical-align: top; }
.tabela th { width: 42%; font-weight: 500; color: #555; background: #fafafa; }
.aba p { margin: 0 0 12px; }
.etiqueta-ue { border: 1px solid #ddd; padding: 16px; border-radius: 6px; align-self: start; font-size: 13px; }
.etiqueta-ue h5 { margin: 0 0 10px; font-size: 13px; text-transform: uppercase; letter-spacing: .5px; color: #1d4f91; }
.etq-linha { display: grid; grid-template-columns: 26px 1fr; gap: 8px; align-items: center; margin-bottom: 10px; }
.etq-escala { display: grid; gap: 2px; }
.etq-escala div { height: 15px; color: #fff; font-size: 11px; font-weight: 700; padding-left: 5px; display: flex; align-items: center; clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%); }
.etq-escala div.sel-cl { outline: 2px solid #111; outline-offset: 1px; }
.etq-escala div.sel-cl::after { content: "◀"; color: #111; margin-left: auto; padding-right: 12px; font-size: 10px; }
.etq-ruido { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 18px; }
.etq-ruido .ico { font-size: 26px; color: #1d4f91; }
.etq-nota { color: #777; font-size: 12px; margin-top: 10px; line-height: 1.4; }

/* ------------------------------------------------------------- carrinho + checkout */
.pagina-tit { font-size: 28px; font-weight: 600; margin: 30px 0 20px; }
.carrinho-grid { display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: start; margin-bottom: 70px; }
.linha-carrinho { display: grid; grid-template-columns: 90px 1fr auto auto 30px; gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid #eee; }
.linha-carrinho img { width: 90px; height: 90px; object-fit: contain; }
.linha-carrinho .nome { font-size: 14px; text-transform: uppercase; line-height: 1.4; }
.linha-carrinho .unit { font-size: 12.5px; color: #777; }
.linha-carrinho .qtd { height: 40px; border-radius: 8px; }
.linha-carrinho .total { font-weight: 600; min-width: 90px; text-align: right; }
.remover { background: none; border: 0; cursor: pointer; color: #999; font-size: 18px; }
.remover:hover { color: #c62828; }
.resumo { background: var(--fundo-suave); border-radius: 14px; padding: 24px; position: sticky; top: 14px; }
.resumo h3 { font-size: 17px; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 14px; }
.resumo-linha { display: flex; justify-content: space-between; padding: 8px 0; font-size: 15px; border-bottom: 1px solid #e3e5ee; }
.resumo-linha.total { border: 0; font-size: 20px; font-weight: 700; padding-top: 14px; }
.resumo-linha.total span:last-child { color: var(--verde-btn); }
.resumo .btn { width: 100%; margin-top: 16px; }
.resumo .nota { font-size: 12.5px; color: #666; margin-top: 12px; line-height: 1.4; }
.resumo-itens { font-size: 13px; margin-bottom: 8px; }
.resumo-itens div { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px dashed #d9dce8; }
.checkout-grid { display: grid; grid-template-columns: 1fr 400px; gap: 40px; align-items: start; margin-bottom: 70px; }
.bloco { border: 1px solid #e6e6e6; border-radius: 14px; padding: 22px 24px; margin-bottom: 20px; }
.bloco h3 { font-size: 17px; display: flex; gap: 10px; align-items: center; margin-bottom: 16px; }
.bloco h3 .n { background: var(--navy); color: #fff; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.campo { display: grid; gap: 5px; font-size: 13.5px; }
.campo.full { grid-column: 1 / -1; }
.campo label { font-weight: 500; }
.campo input, .campo textarea { height: 48px; border: 1px solid #d5d5d5; border-radius: 8px; padding: 0 14px; font-size: 15px; outline: none; background: #fff; }
.campo textarea { height: 76px; padding: 10px 14px; resize: vertical; }
.campo input:focus, .campo textarea:focus { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(0,81,221,.12); }
.campo input.erro { border-color: #d32f2f; }
.campo .dica { color: #888; font-size: 12px; }
.metodos { display: grid; gap: 12px; }
.metodo { border: 2px solid #e1e1e1; border-radius: 12px; padding: 14px 16px; display: flex; gap: 14px; align-items: center; cursor: pointer; }
.metodo:has(input:checked) { border-color: var(--azul); background: #f4f7ff; }
.metodo input { width: 18px; height: 18px; accent-color: var(--azul); }
.metodo b { display: block; font-size: 15px; }
.metodo span { font-size: 13px; color: #666; }
.metodo .pag { margin-left: auto; border: 1px solid #eee; }
.aceito { display: flex; gap: 10px; font-size: 13.5px; align-items: flex-start; margin: 16px 0 0; }
.aceito input { margin-top: 3px; accent-color: var(--azul); }
.aceito a { color: var(--azul); text-decoration: underline; }
.erro-box { background: #fdecea; color: #b71c1c; border-radius: 10px; padding: 12px 14px; font-size: 14px; margin-top: 12px; display: none; }
.erro-box.ativo { display: block; }
/* top/right/bottom/left antes de inset: Safari iOS < 14.5 não conhece inset. z-index acima do banner de cookies (110) e do aviso (120) */
.modal-fundo { position: fixed; top: 0; right: 0; bottom: 0; left: 0; inset: 0; background: rgba(10, 12, 40, .55); z-index: 130; display: none; align-items: center; justify-content: center; padding: 16px; }
.modal-fundo.ativo { display: flex; }
.modal { background: #fff; border-radius: 18px; max-width: 440px; width: 100%; padding: 30px 26px; text-align: center; max-height: 92vh; overflow: auto; }
.modal h3 { font-size: 21px; }
.modal .ico-grande { font-size: 56px; color: var(--azul); margin-bottom: 8px; }
.modal .contador { font-size: 34px; font-weight: 700; color: var(--navy); margin: 10px 0; font-variant-numeric: tabular-nums; }
.modal .barra { height: 6px; background: #eee; border-radius: 3px; overflow: hidden; margin: 6px 0 16px; }
.modal .barra div { height: 100%; background: var(--azul); width: 100%; transition: width 1s linear; }
.copiar { background: none; border: 0; color: var(--azul); cursor: pointer; font-size: 12px; text-decoration: underline; }
.spinner { width: 40px; height: 40px; border: 4px solid #e4e7f4; border-top-color: var(--azul); border-radius: 50%; animation: gira 1s linear infinite; margin: 10px auto; }
@keyframes gira { to { transform: rotate(360deg); } }
.estado-ok { color: var(--verde-btn); }
.obrigado { max-width: 760px; margin: 40px auto 80px; text-align: center; }
.obrigado .ico-grande { font-size: 72px; color: var(--verde-btn); }
.obrigado .caixa { text-align: left; background: var(--fundo-suave); border-radius: 14px; padding: 20px 24px; margin: 24px 0; }
.texto-legal { max-width: 900px; margin: 0 auto 70px; font-size: 15px; line-height: 1.7; }
.texto-legal h1 { font-size: 30px; margin: 30px 0 20px; }
.texto-legal h2 { font-size: 19px; margin: 28px 0 10px; }
.texto-legal a { color: var(--azul); text-decoration: underline; }
.preencher { background: #fff3cd; padding: 0 4px; border-radius: 3px; }

/* toast do carrinho */
.toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 140%); background: #1b1e3c; color: #fff; padding: 14px 18px; border-radius: 12px; z-index: 120; display: flex; gap: 14px; align-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.3); transition: transform .3s; font-size: 14px; max-width: calc(100% - 32px); }
.toast.ativo { transform: translate(-50%, 0); }
.toast a { background: var(--verde-btn); color: #fff; padding: 8px 14px; border-radius: 8px; font-weight: 600; white-space: nowrap; }
.cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; max-width: 560px; background: #fff; border-radius: 14px; box-shadow: 0 10px 40px rgba(0,0,0,.2); padding: 18px 20px; z-index: 110; font-size: 13.5px; display: none; }
.cookies.ativo { display: block; }
.cookies div { display: flex; gap: 10px; margin-top: 12px; justify-content: flex-end; flex-wrap: wrap; }
.cookies a { color: var(--azul); text-decoration: underline; }

/* menu móvel */
.gaveta-fundo { position: fixed; top: 0; right: 0; bottom: 0; left: 0; inset: 0; background: rgba(0,0,0,.45); z-index: 90; display: none; }
/* fechada fica invisível também para o teclado e os leitores de ecrã (visibility), não só fora do ecrã */
.gaveta { position: fixed; top: 0; left: 0; bottom: 0; width: 300px; max-width: 86%; background: #fff; z-index: 91; transform: translateX(-100%); visibility: hidden; transition: transform .25s, visibility .25s; overflow: auto; }
body.menu-aberto .gaveta { transform: none; visibility: visible; } body.menu-aberto .gaveta-fundo { display: block; }
.gaveta ul { list-style: none; padding: 10px 0; margin: 0; }
.gaveta li a { display: block; padding: 12px 20px; border-bottom: 1px solid #f0f0f0; font-weight: 600; font-size: 14px; text-transform: uppercase; }
.gaveta .cab { background: var(--navy); color: #fff; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; font-weight: 600; }
.gaveta .cab button { background: none; border: 0; color: #fff; font-size: 24px; cursor: pointer; }
.gaveta details summary { padding: 12px 20px; border-bottom: 1px solid #f0f0f0; font-weight: 600; font-size: 14px; text-transform: uppercase; cursor: pointer; }
.gaveta details a { font-weight: 500; text-transform: none; padding-left: 34px; }

/* ------------------------------------------------------------- responsivo */
@media (max-width: 1100px) {
  .topo-main { grid-template-columns: 100px 1fr auto; gap: 18px; }
  .topo-acoes { gap: 16px; } .topo-acoes .lbl { display: none; }
  .menu li > a { padding: 8px 10px; font-size: 12.5px; }
  .busca-linha, .busca-linha.veiculo { grid-template-columns: 1fr 1fr 1fr; }
  .busca-tit { grid-column: 1 / -1; }
  .busca-linha .btn-azul { grid-column: span 3; }
  .busca-linha.veiculo .btn-azul { grid-column: span 3; }
  .selos { grid-template-columns: repeat(3, 1fr); }
  .grelha.g5 { grid-template-columns: repeat(4, 1fr); }
  .diferenciais { grid-template-columns: repeat(3, 1fr); }
  .rodape-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 849px) {
  .topo-main, .menu { display: none; }
  .topo-mob { display: block; border-bottom: 1px solid #eee; }
  .topo-mob .linha1 { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; height: 70px; }
  .topo-mob .logo { justify-self: center; } .topo-mob .logo img { width: 62px; height: 62px; }
  .topo-mob button, .topo-mob .topo-carrinho { background: none; border: 0; font-size: 26px; display: grid; place-items: center; cursor: pointer; color: var(--texto); }
  .topo-mob .carrinho-qtd { left: 22px; top: 6px; }
  .topo-mob .busca { height: 44px; margin-bottom: 10px; }
  .topo-mob .busca button { width: 54px; font-size: 18px; }
  .slide { aspect-ratio: 640 / 520; min-height: 0; }
  @supports not (aspect-ratio: 1) { .slide { height: 81.25vw; } }   /* Safari iOS < 15: sem isto o banner ficava com altura 0 */
  .slide::after { inset: 46% 0 0 0; clip-path: polygon(0 22%, 100% 0, 100% 100%, 0 100%); }
  .slide-txt { left: 6%; right: 6%; top: 8%; transform: none; max-width: none; }
  .slide-pneu { right: 4%; top: auto; bottom: -6%; transform: none; height: 60%; }
  .slide-dir { right: auto; left: 6%; top: auto; bottom: 10%; transform: none; text-align: left; }
  .slides-dots { bottom: 18px; }
  .slides-nav { display: none; }
  .caixa-busca { margin: 14px 16px 0; padding: 18px 16px; border-radius: 14px; }
  .busca-linha, .busca-linha.veiculo { grid-template-columns: 1fr; gap: 10px; }
  .busca-linha .btn-azul, .busca-linha.veiculo .btn-azul { grid-column: auto; height: 46px; }
  .sel select { height: 46px; }
  .busca-tit { font-size: 17px; }
  .selos { grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 26px; padding-bottom: 0; }
  .selo .ico { font-size: 34px; } .selo b { font-size: 13.5px; } .selo span { font-size: 12px; }
  .secao-tit { font-size: 26px; margin-bottom: 20px; }
  .grelha, .grelha.g5 { grid-template-columns: 1fr 1fr; gap: 26px 14px; }
  .cartao-nome { font-size: 12.5px; min-height: 0; }
  .preco { font-size: 19px; }
  .pilula { font-size: 12px; padding: 6px 8px; }
  .marca-logo { height: 28px; } .marca-logo img { max-height: 28px; max-width: 130px; } .marca-txt { font-size: 17px; }
  .mini-banners { grid-template-columns: 1fr; gap: 14px; }
  .banner-largo { grid-template-columns: 1fr; text-align: center; justify-items: center; padding: 22px 18px; }
  .banner-largo h3 { font-size: 22px; }
  .diferenciais { grid-template-columns: 1fr 1fr; margin: 40px auto; }
  .dif { min-height: 0; padding: 22px 10px; border-radius: 18px; } .dif .ico { font-size: 42px; } .dif b { font-size: 14px; } .dif span { font-size: 12.5px; }
  .marcas-grelha { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .marcas-grelha a { padding: 6px; }
  .marcas-grelha .marca-txt { font-size: min(15px, 3.2vw); }
  .rodape-grid { grid-template-columns: 1fr; gap: 26px; }
  .rodape::before { margin-bottom: 36px; }
  .lista-corpo { grid-template-columns: 1fr; }
  .filtros { display: none; position: fixed; top: 0; right: 0; bottom: 0; left: 0; inset: 0; z-index: 95; background: #fff; overflow: auto; padding: 20px; }
  body.filtros-abertos .filtros { display: block; }
  .btn-filtros-mob { display: inline-flex; }
  .lista-topo select { min-width: 0; }
  .produto { grid-template-columns: minmax(0, 1fr); gap: 10px; padding-top: 10px; }
  .galeria-principal { max-width: 380px; margin: 0 auto; }
  .produto-info h1 { font-size: 22px; }
  .abas-corpo { grid-template-columns: 1fr; }
  .simulador { padding: 16px; }
  .simulador input { width: 0; }   /* flex:1 enche a linha; sem largura intrínseca (size=20) não força 360 px */
  .carrinho-grid, .checkout-grid { grid-template-columns: 1fr; }
  .linha-carrinho { grid-template-columns: 70px 1fr 30px; gap: 10px; }
  .linha-carrinho img { width: 70px; height: 70px; }
  .linha-carrinho .qtd { grid-column: 2; justify-self: start; }
  .linha-carrinho .total { grid-column: 2; text-align: left; }
  .linha-carrinho .remover { grid-row: 1; grid-column: 3; }
  .campos { grid-template-columns: 1fr; }
  .pagina-tit { font-size: 23px; }
}
@media (max-width: 400px) {
  .grelha, .grelha.g5 { gap: 22px 10px; }
  .comprar { flex-direction: column; } .qtd { align-self: flex-start; }
}
[hidden] { display: none !important; }
.toast { visibility: hidden; transition: transform .3s, visibility .3s; transform: translate(-50%, 200%); }
.toast.ativo { visibility: visible; }
.resumo-itens b { white-space: nowrap; }
@media (max-width: 849px) {
  /* letra ≥ 16 px nos campos: o Safari iOS deixa de ampliar a página a cada toque */
  input, select, textarea, .campo input, .campo textarea, .busca input, .sel select, .qtd input, .lista-topo select { font-size: 16px; }
  .toast { bottom: 88px; }
  .whats-flutuante { width: 52px; height: 52px; font-size: 28px; right: 14px; bottom: 14px; }
}
@media (max-width: 849px) {
  .slide::after { inset: 63% 0 0 0; clip-path: polygon(0 30%, 100% 0, 100% 100%, 0 100%); }
  .slide-txt { top: 5%; }
  .slide-marca { height: 30px; margin-bottom: 6px; }
  .slide .preco-banner { font-size: 54px; }
  .slide-pneu { right: 3%; bottom: -10%; height: 50%; }
  .slide-dir { bottom: 7%; }
  .slide-dir .num { font-size: 40px; } .slide-dir .t1 { font-size: 20px; } .slide-dir .t2 { font-size: 12px; }
}

/* ------------------------------------------------------------- promoção "Leva 4, paga 3" (spn_promo_* em inc/loja.php) */
body.sem-scroll { overflow: hidden; }
/* faixa do topo: vermelho escurecido (contraste ≥ 4,5:1 com o texto branco), riscas diagonais e selos amarelos */
.barra-promo { position: relative; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px 16px; padding: 9px 16px; color: #fff; text-align: center; line-height: 1.2;
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.07) 0 2px, transparent 2px 46px), linear-gradient(90deg, #8f0f1a 0%, #c41d25 30%, #c41d25 70%, #8f0f1a 100%);
  border-bottom: 3px solid #ffd400; }
.barra-promo:hover .bp-tit { text-decoration: underline; text-underline-offset: 3px; }
.bp-selo { background: #ffd400; color: #1b1b1b; font-size: 11px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; padding: 4px 8px; border-radius: 2px; white-space: nowrap; }
.bp-tit { font-size: 15px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; }
.bp-sub { font-size: 12.5px; opacity: .92; }
.bp-tempo { display: flex; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; }
.bp-tempo > span { display: flex; flex-direction: column; align-items: center; min-width: 42px; padding: 3px 4px 2px; border-radius: 4px; background: rgba(0, 0, 0, .22); }
.bp-tempo b { font-size: 17px; font-weight: 800; line-height: 1.05; }
.bp-tempo small { font-size: 8.5px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; opacity: .8; }
.bp-tempo i { font-style: normal; opacity: .6; font-weight: 700; }
.tag.promo { background: #c41d25; }

/* barra de progresso (carrinho lateral e página do carrinho) */
.promo-barra { padding: 14px 18px 16px; border-bottom: 1px solid #eee; }
.promo-barra-txt { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 4px 10px; font-size: 13.5px; text-align: center; margin-bottom: 10px; }
.promo-barra-txt a { color: #b85a0c; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.promo-barra-trilho { height: 9px; background: #e6e6e6; border-radius: 6px; overflow: hidden; }
.promo-barra-trilho i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #f9b066, #f47b20); transition: width .4s ease; }
.carrinho-grid .promo-barra { border: 1px solid #f3dcc6; background: #fffaf4; border-radius: 12px; margin-bottom: 6px; }

/* preço de uma linha com pneus grátis */
.gc-precos, .linha-carrinho .total { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; }
.gc-precos s, .linha-carrinho .total s, .resumo-itens s { color: #8a8a8a; font-size: 12.5px; font-weight: 400; }
.gratis-txt { color: var(--verde-btn); font-weight: 700; font-size: 12.5px; text-transform: uppercase; }
b.gratis-txt { font-size: 15px; }
.selo-promo { border: 1px dashed #c41d25; color: #c41d25; font-size: 11px; font-weight: 600; padding: 2px 7px; border-radius: 4px; margin-top: 4px; white-space: nowrap; }
.resumo-linha.desconto span:last-child { color: #c41d25; font-weight: 600; }
.resumo-itens .item-gratis { display: block; color: var(--verde-btn); font-size: 11.5px; font-weight: 600; }

/* carrinho lateral */
.gc-fundo { position: fixed; top: 0; right: 0; bottom: 0; left: 0; inset: 0; background: rgba(10, 12, 40, .5); z-index: 125; opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }
.gc { position: fixed; top: 0; right: 0; bottom: 0; width: 440px; max-width: 100%; background: #fff; z-index: 126; display: flex; flex-direction: column; outline: none;
  transform: translateX(100%); visibility: hidden; transition: transform .28s ease, visibility .28s; box-shadow: -12px 0 40px rgba(0, 0, 0, .18); }
body.gc-aberto .gc { transform: none; visibility: visible; }
body.gc-aberto .gc-fundo { opacity: 1; visibility: visible; }
.gc-topo { display: flex; align-items: center; justify-content: space-between; padding: 14px 14px 14px 18px; border-bottom: 1px solid #eee; }
.gc-topo h2 { font-size: 19px; font-weight: 700; margin: 0; }
.gc-topo button { background: none; border: 0; color: #111; font-size: 26px; padding: 6px; cursor: pointer; display: grid; place-items: center; }
.gc-corpo { flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.gc-espera .gc-corpo, .gc-espera .gc-rodape { opacity: .6; pointer-events: none; transition: opacity .15s; }
.gc-item { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 12px; padding: 16px 18px; border-bottom: 1px solid #f0f0f0; align-items: start; }
.gc-img img { width: 76px; height: 76px; object-fit: contain; }
.gc-nome { font-size: 13px; font-weight: 600; text-transform: uppercase; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gc-nome:hover { color: var(--azul); }
.gc-ref { font-size: 11.5px; color: #6f6f6f; margin: 3px 0 8px; }
.gc-acoes { display: flex; align-items: center; gap: 14px; }
.gc-qtd { display: flex; align-items: center; border: 1px solid #d5d5d5; border-radius: 8px; height: 34px; }
.gc-qtd button { width: 30px; height: 100%; border: 0; background: none; cursor: pointer; font-size: 17px; }
.gc-qtd button:disabled { color: #bbb; cursor: default; }
.gc-qtd span { min-width: 24px; text-align: center; font-weight: 600; font-size: 14px; }
.gc-rem { background: none; border: 0; padding: 0; color: #333; font-size: 12.5px; text-decoration: underline; cursor: pointer; }
.gc-rem:hover { color: #c62828; }
.gc-precos b { font-size: 15px; white-space: nowrap; }
.gc-vazio { padding: 36px 24px 10px; text-align: center; font-size: 14px; }
.gc-vazio p { margin: 0 0 8px; }
.gc-vazio-promo { background: #fff4e8; border-radius: 10px; padding: 10px 12px; font-size: 13px; margin-top: 14px !important; }
.gc-sug { padding: 18px 0 20px 18px; }
.gc-sug-topo { display: flex; justify-content: space-between; align-items: center; padding-right: 18px; margin-bottom: 12px; }
.gc-sug-topo h3 { font-size: 16px; font-weight: 700; margin: 0; }
.gc-sug-topo button { width: 34px; height: 30px; margin-left: 6px; border: 1px solid #ccc; border-radius: 6px; background: #fff; font-size: 18px; line-height: 1; cursor: pointer; }
.gc-sug-lista { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 18px 4px 0; scrollbar-width: none; }
.gc-sug-lista::-webkit-scrollbar { display: none; }   /* navega-se pelas setas ‹ › ou a deslizar */
.gc-card { flex: 0 0 150px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 6px; background: var(--fundo-suave); border-radius: 10px; padding: 10px; }
.gc-card img { width: 100%; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; }
.gc-card-nome { font-size: 11.5px; line-height: 1.3; text-transform: uppercase; min-height: 30px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gc-card-preco { color: var(--verde); font-weight: 700; font-size: 15px; }
.gc-card-add { margin-top: auto; height: 32px; border: 1px solid var(--navy); border-radius: 8px; background: #fff; color: var(--navy); font-size: 12.5px; font-weight: 600; cursor: pointer; }
.gc-card-add:hover { background: var(--navy); color: #fff; }
.gc-rodape { border-top: 1px solid #eee; padding: 12px 18px 14px; padding-bottom: calc(14px + env(safe-area-inset-bottom)); background: #fff; }
.gc-linha { display: flex; justify-content: space-between; align-items: center; font-size: 14px; padding: 3px 0; }
.gc-linha b { font-weight: 700; }
.gc-total { align-items: flex-start; font-size: 17px; font-weight: 600; padding-top: 6px; }
.gc-total a { margin-left: 8px; color: #333; font-size: 12.5px; font-weight: 400; text-decoration: underline; }
.gc-total > span:last-child { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.gc-total s { color: #8a8a8a; font-size: 13.5px; font-weight: 400; }
.gc-total b { color: var(--verde-btn); font-size: 20px; }
.gc-finalizar { width: 100%; margin-top: 12px; height: 52px; font-size: 16px; letter-spacing: 1px; }
.gc-nota { text-align: center; font-size: 11.5px; color: #6f6f6f; margin: 8px 0 0; }

/* popup da promoção */
.promo-pop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; inset: 0; z-index: 140; background: rgba(10, 12, 40, .62); display: flex; align-items: center; justify-content: center; padding: 16px; animation: promoFundo .25s ease; }
@keyframes promoFundo { from { opacity: 0; } }
.promo-pop-caixa { position: relative; display: grid; grid-template-columns: 1fr 1fr; width: 100%; max-width: 900px; max-height: calc(100vh - 32px); overflow: auto; background: #fff; border-radius: 16px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); animation: promoEntra .35s cubic-bezier(.2, .9, .3, 1.15); }
@keyframes promoEntra { from { opacity: 0; transform: translateY(18px) scale(.97); } }
.promo-pop-x { position: absolute; top: 12px; right: 12px; z-index: 3; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .94); color: #111; font-size: 18px; display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.promo-pop-txt { display: flex; flex-direction: column; justify-content: center; }
.promo-pop-logo { background: var(--navy); display: flex; justify-content: center; padding: 14px; }
.promo-pop-logo img { width: 84px; height: 84px; border-radius: 14px; }
.promo-pop-corpo { padding: 24px 34px 24px; }
.promo-pop h2 { margin: 0; color: #1b2177; font-weight: 900; font-style: italic; text-transform: uppercase; line-height: .95; letter-spacing: -1px; }
.promo-pop h2 .l1 { display: block; font-size: clamp(36px, 5.2vw, 56px); }
.promo-pop h2 .l2 { display: inline-block; margin-top: 12px; background: #ffd400; padding: 6px 14px 8px; font-size: clamp(26px, 3.6vw, 40px); }
.promo-pop-pilula { display: inline-block; margin: 18px 0 24px; border: 1.5px solid #1b2177; border-radius: 20px; padding: 5px 14px; color: #1b2177; font-size: 11px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; }
.promo-pop-cta { width: 100%; height: 56px; background: #1b2177; color: #fff; font-size: 16px; letter-spacing: 1px; border-radius: 8px; }
.promo-pop-nao { display: block; margin: 12px auto 0; background: none; border: 0; color: #555; font-size: 13px; text-decoration: underline; cursor: pointer; }
.promo-pop-nota { margin: 14px 0 0; color: #666; font-size: 11.5px; line-height: 1.45; text-align: center; }
.promo-pop-nota a { color: var(--azul); text-decoration: underline; }
.promo-pop-img { position: relative; overflow: hidden; min-height: 460px; background: linear-gradient(160deg, #fafbff 0%, #eef0f7 55%, #e4e8f3 100%); }
.promo-pop-img::after { content: ""; position: absolute; inset: 54% 0 0 0; clip-path: polygon(0 34%, 100% 0, 100% 100%, 0 100%); background:
  repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 2px, transparent 2px 70px),
  repeating-linear-gradient(0deg, rgba(255,255,255,.06) 0 2px, transparent 2px 92px),
  linear-gradient(135deg, #2f3ab0 0%, #1b2177 70%, #141859 100%); }
.promo-pop-img img { position: absolute; z-index: 1; left: 50%; top: 48%; width: 112%; max-width: none; transform: translate(-50%, -50%); mix-blend-mode: multiply; }
.promo-pop-selo { position: absolute; z-index: 2; top: 26px; left: 24px; width: 112px; height: 112px; border-radius: 50%; background: #c41d25; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; transform: rotate(-10deg); box-shadow: 0 8px 20px rgba(196, 29, 37, .35); }
.promo-pop-selo b { font-size: 34px; font-weight: 900; font-style: italic; }
.promo-pop-selo span { margin: 2px 0; font-size: 9.5px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; }
.promo-pop-dir { position: absolute; z-index: 2; right: 22px; bottom: 20px; color: #fff; text-align: right; }
.promo-pop-dir b { display: block; font-size: 20px; font-weight: 800; font-style: italic; text-transform: uppercase; }
.promo-pop-dir span { color: #a5d233; font-size: 13px; font-style: italic; font-weight: 500; }

/* quadro "Quanto mais leva, mais poupa" (ficha do produto) */
.escaloes { border: 1px solid #f0d4d6; border-top: 4px solid #c41d25; border-radius: 14px; padding: 16px 16px 14px; margin: 14px 0 16px; text-align: center; box-shadow: 0 4px 14px rgba(0, 0, 0, .04); }
.escaloes h3 { margin: 0; color: #c41d25; font-size: 13.5px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.escaloes h3::after { content: ""; display: block; width: 46px; height: 1px; background: #f0b9bd; margin: 10px auto 12px; }
.esc-lista { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.esc { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 9px 4px 8px; border: 1px solid #f6d0d3; border-radius: 10px; background: #fff5f5; color: var(--texto); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.esc b { color: #c41d25; font-size: 17px; font-weight: 800; white-space: nowrap; }
.esc span { font-size: 13px; font-weight: 700; }
.esc small { color: #6f6f6f; font-size: 11px; letter-spacing: .3px; text-transform: uppercase; }
.esc:hover, .esc.ativo { border-color: #c41d25; box-shadow: 0 0 0 2px rgba(196, 29, 37, .15); }
.escaloes p { margin: 12px 0 0; color: #666; font-size: 12.5px; }
.escaloes p a { color: var(--azul); text-decoration: underline; }

/* slide da promoção no banner da página inicial */
.slide-promo h2 { color: #c41d25; }
.slide-promo .grande span { color: #1b2177; }

@media (max-width: 849px) {
  .barra-promo { gap: 6px 10px; padding: 8px 10px; }
  .bp-selo, .bp-sub { display: none; }
  .bp-tit { font-size: 13px; }
  .bp-tempo > span { min-width: 34px; } .bp-tempo b { font-size: 14px; } .bp-tempo small { font-size: 7.5px; }
  .linha-carrinho .total { align-items: flex-start; text-align: left; }
}
@media (max-width: 680px) {
  .promo-pop { padding: 12px; }
  .promo-pop-caixa { grid-template-columns: 1fr; max-width: 420px; max-height: calc(100vh - 24px); }
  .promo-pop-img { order: -1; min-height: 190px; }
  .promo-pop-img img { width: 76%; top: 50%; }
  .promo-pop-selo { top: 14px; left: 14px; width: 84px; height: 84px; }
  .promo-pop-selo b { font-size: 26px; } .promo-pop-selo span { font-size: 7.5px; }
  .promo-pop-dir { right: 14px; bottom: 12px; } .promo-pop-dir b { font-size: 15px; } .promo-pop-dir span { font-size: 11px; }
  .promo-pop-logo { padding: 10px; } .promo-pop-logo img { width: 54px; height: 54px; border-radius: 10px; }
  .promo-pop-corpo { padding: 18px 20px 20px; text-align: center; }
  .promo-pop h2 .l1 { font-size: 34px; } .promo-pop h2 .l2 { margin-top: 8px; font-size: 26px; }
  .promo-pop-pilula { margin: 12px 0 16px; font-size: 10px; }
  .promo-pop-cta { height: 50px; font-size: 15px; }
}
@media (max-width: 520px) {
  .esc-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .promo-pop, .promo-pop-caixa { animation: none; }
  .gc, .gc-fundo, .promo-barra-trilho i { transition: none; }
}

/* ------------------------------------------------------------- pesquisa por veículo: "a procurar" → medidas (loja.js) */
.veiculo-res.ativo { animation: vrEntra .3s ease; }
@keyframes vrEntra { from { opacity: 0; transform: translateY(-6px); } }
.vr-procura { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 500; color: var(--navy); }
.vr-procura .ico { font-size: 34px; stroke-width: 1.6; animation: vrRoda .8s linear infinite; }
@keyframes vrRoda { to { transform: rotate(360deg); } }
.vr-trilho { height: 4px; margin-top: 12px; border-radius: 3px; background: #dfe3f3; overflow: hidden; }
.vr-trilho i { display: block; width: 0; height: 100%; border-radius: 3px; background: linear-gradient(90deg, var(--azul), var(--navy)); animation: vrBarra 1.1s cubic-bezier(.3, .6, .4, 1) forwards; }
@keyframes vrBarra { to { width: 100%; } }
.vr-tit { display: flex; align-items: center; gap: 8px; }
.vr-tit .ico { flex: none; font-size: 20px; color: var(--verde-btn); animation: vrPop .45s cubic-bezier(.2, .9, .3, 1.5); }
@keyframes vrPop { from { transform: scale(0); } }
.veiculo-res .medidas-lista a.vr-chip { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.15; padding: 7px 16px 6px; border-radius: 14px; opacity: 0; animation: vrChip .42s ease forwards; transition: background .15s, color .15s, transform .15s; }
.veiculo-res .medidas-lista a.vr-chip:hover { transform: translateY(-2px); }
.vr-chip small { font-size: 10.5px; font-weight: 500; color: #6f6f6f; }
.vr-chip:hover small { color: #dfe6ff; }
@keyframes vrChip { from { opacity: 0; transform: translateY(10px) scale(.95); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .veiculo-res.ativo, .vr-procura .ico, .vr-tit .ico, .veiculo-res .medidas-lista a.vr-chip { animation: none; opacity: 1; }
  .vr-trilho i { animation: none; width: 100%; }
}

/* ficha do produto sem etiqueta europeia: as abas ocupam a largura toda */
.abas-corpo.sem-etq { grid-template-columns: 1fr; }

/* ================================================================ checkout: ambiente próprio (sem pesquisa nem menu) */
body.co { background: #efefef; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.co-topo { background: #fff; border-bottom: 1px solid #e2e2e2; overflow: hidden; }
.co-topo-in { position: relative; max-width: 1180px; margin: 0 auto; padding: 0 16px; height: 150px; display: flex; align-items: center; justify-content: space-between; }
.co-logo { position: relative; z-index: 2; display: block; }
.co-logo img { width: 97px; height: 97px; display: block; }
.co-arte { position: absolute; z-index: 1; left: 150px; right: 0; top: 0; bottom: 0; overflow: hidden; pointer-events: none; }
.co-arte img { position: absolute; left: 18%; top: -70%; width: 420px; height: 420px; object-fit: contain; opacity: .9; }
.co-arte::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #fff 0, rgba(255,255,255,.55) 22%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 70%, rgba(255,255,255,.75) 100%); }
.co-seguro { position: relative; z-index: 2; display: flex; align-items: center; gap: 8px; }
.co-seguro-ico { width: 44px; height: 44px; fill: none; stroke: var(--navy); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.co-seguro span { display: grid; line-height: 1.1; }
.co-seguro b { font-size: 15px; color: #222; }
.co-seguro em { font-style: normal; font-size: 12px; font-weight: 600; border: 1.5px solid #222; border-radius: 4px; padding: 2px 7px; margin-top: 3px; background: #fff; }
.co-wrap { max-width: 1180px; margin: 0 auto; padding: 24px 16px 60px; }
.co-grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; align-items: start; }
.co-card { background: #fff; border-radius: 12px; padding: 24px; margin-bottom: 18px; box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.co-card h2 { font-size: 19px; font-weight: 600; margin: 0 0 2px; }
.co-sub { color: #666; font-size: 14px; margin: 0 0 18px; }
.co-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.co-campos .campo input { height: 54px; border-color: #d9d9d9; border-radius: 8px; font-size: 15px; }
.co-campos .campo input::placeholder, .co-mbway input::placeholder { color: #8a8a8a; }
.co-campos .campo input:focus { border-color: var(--azul); }
.co-campos .campo input.erro, .co-mbway input.erro { border-color: #d32f2f; background: #fff8f8; }
.co-erro { display: none; color: #c62828; font-size: 12.5px; line-height: 1.3; }
.co-erro.ativo { display: block; }
.co-tel { display: flex; align-items: center; height: 54px; border: 1px solid #d9d9d9; border-radius: 8px; background: #fff; overflow: hidden; }
.co-tel:focus-within { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(0,81,221,.12); }
.co-tel-pre { display: flex; align-items: center; gap: 7px; padding: 0 12px; height: 100%; border-right: 1px solid #e3e3e3; font-size: 14px; color: #333; white-space: nowrap; }
.co-bandeira { width: 22px; height: 15px; border-radius: 2px; }
.co-tel input { flex: 1; min-width: 0; height: 100%; border: 0 !important; box-shadow: none !important; border-radius: 0; padding: 0 14px; font-size: 15px; outline: none; }
.co-tel.erro { border-color: #d32f2f; background: #fff8f8; }
.co-nota { font-size: 12.5px; color: #666; margin: 12px 0 0; line-height: 1.45; }
.co-nota a { color: var(--azul); text-decoration: underline; }
.co-nota-pag { display: flex; gap: 8px; align-items: flex-start; }
.co-mbway { margin-top: 14px; }
.co-mbway input { height: 54px; border-color: #d9d9d9; }
.co-pagar { width: 100%; margin-top: 16px; font-size: 17px; letter-spacing: 1px; }
.co-resumo-bar { display: none; width: 100%; background: #fff; border: 0; border-radius: 10px; padding: 16px 18px; margin-bottom: 14px; align-items: center; justify-content: space-between; gap: 10px; font: inherit; font-size: 15px; color: #333; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.05); text-align: left; }
.co-resumo-bar-l { display: flex; align-items: center; gap: 9px; }
.co-resumo-bar .ico { font-size: 20px; color: #444; }
.co-chev { width: 18px; height: 18px; fill: none; stroke: #444; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.co-resumo-bar[aria-expanded="true"] .co-chev { transform: rotate(180deg); }
.co-resumo-bar b { font-size: 15px; color: #222; white-space: nowrap; }
.co-resumo { position: sticky; top: 14px; }
.co-resumo-card { border: 2px solid #111; padding: 20px 20px 18px; }
.co-resumo-tit { display: flex; justify-content: space-between; align-items: baseline; font-size: 17px !important; margin-bottom: 10px !important; }
.co-resumo-qtd { font-size: 12.5px; font-weight: 500; color: #666; }
.co-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto 24px; gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px solid #ededed; }
.co-item-img { position: relative; width: 64px; height: 64px; border: 1px solid #e6e6e6; border-radius: 8px; background: #fff; display: grid; place-items: center; }
.co-item-img img { width: 56px; height: 56px; object-fit: contain; }
.co-item-n { position: absolute; top: -8px; left: -8px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: #8a8a8a; color: #fff; font-size: 11.5px; font-weight: 700; display: grid; place-items: center; }
.co-item-info { min-width: 0; }
.co-item-nome { display: block; font-weight: 700; font-size: 13.5px; line-height: 1.3; color: #333; text-transform: uppercase; }
.co-item-unit { font-size: 12px; color: #777; margin-top: 2px; }
.co-item-gratis { font-size: 12px; color: var(--verde-btn); font-weight: 600; margin-top: 2px; }
.co-qtd { display: inline-flex; align-items: center; border: 1px solid #d9d9d9; border-radius: 6px; margin-top: 8px; height: 30px; overflow: hidden; }
.co-qtd button { width: 30px; height: 100%; border: 0; background: #f6f6f6; font-size: 16px; cursor: pointer; color: #333; display: grid; place-items: center; }
.co-qtd button:hover { background: #ececec; }
.co-qtd input { width: 38px; height: 100%; border: 0; border-left: 1px solid #e6e6e6; border-right: 1px solid #e6e6e6; text-align: center; font: inherit; font-size: 14px; outline: none; -moz-appearance: textfield; }
.co-qtd input::-webkit-outer-spin-button, .co-qtd input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.co-item-preco { text-align: right; font-size: 13.5px; white-space: nowrap; display: grid; }
.co-item-preco s { color: #8a8a8a; font-size: 12px; font-weight: 400; }
.co-item-preco b { font-weight: 600; color: #222; }
.co-item-rm { width: 24px; height: 24px; border: 1.5px solid #bbb; border-radius: 50%; background: #fff; color: #888; cursor: pointer; display: grid; place-items: center; font-size: 12px; padding: 0; }
.co-item-rm:hover { border-color: #c62828; color: #c62828; }
.co-item.a-mudar { opacity: .5; pointer-events: none; }
.co-promo .promo-barra { padding: 12px 0 10px; border-bottom: 1px solid #ededed; }
.co-promo .promo-barra-txt { font-size: 13px; }
.co-totais { padding-top: 6px; }
.co-linha { display: flex; justify-content: space-between; padding: 7px 0; font-size: 14.5px; }
.co-linha.desconto span:last-child { color: #c41d25; font-weight: 600; }
.co-linha.total { border-top: 1px solid #ddd; margin-top: 4px; padding-top: 12px; font-size: 20px; font-weight: 700; }
.co-rodape { background: #fff; border-top: 1px solid #e2e2e2; margin-top: 20px; }
.co-rodape-in { max-width: 1180px; margin: 0 auto; padding: 26px 16px 90px; text-align: center; font-size: 12.5px; color: #666; }
.co-rodape-selos { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin-bottom: 16px; font-size: 13px; color: #333; }
.co-rodape-selos > span { display: inline-flex; align-items: center; gap: 7px; }
.co-rodape-selos .ico { font-size: 18px; color: var(--navy); }
.co-rodape-selos .pag { height: 26px; font-size: 11px; border: 1px solid #e6e6e6; }
.co-rodape-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin-bottom: 14px; }
.co-rodape-links a { color: #444; text-decoration: underline; text-underline-offset: 3px; }
.co-rodape .rodape-empresa { margin-bottom: 8px; }
@media (max-width: 1100px) { .co-grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 18px; } }
@media (max-width: 849px) {
  .co-topo-in { height: 118px; }
  .co-logo img { width: 78px; height: 78px; }
  .co-arte { left: 90px; } .co-arte img { width: 330px; height: 330px; left: 10%; top: -62%; }
  .co-seguro-ico { width: 38px; height: 38px; } .co-seguro b { font-size: 14px; } .co-seguro em { font-size: 11px; }
  .co-wrap { padding-top: 16px; }
  .co-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .co-resumo-bar { display: flex; }
  .co-resumo { position: static; order: -1; display: none; margin-bottom: 16px; }
  .co-resumo.aberto { display: block; }
  .co-card { padding: 20px 16px; margin-bottom: 14px; }
  .co-campos { grid-template-columns: 1fr; gap: 12px; }
  .co-item { grid-template-columns: 56px minmax(0, 1fr) 24px; }
  .co-item-img { width: 56px; height: 56px; } .co-item-img img { width: 48px; height: 48px; }
  .co-item-preco { grid-column: 2; text-align: left; display: flex; gap: 8px; align-items: baseline; }
  .co-item-rm { grid-row: 1; grid-column: 3; }
  .co-rodape-in { padding-bottom: 96px; }
}
