@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;900&family=Inter:wght@300;400;500;600&display=swap');

:root {
  --azul:      #1B2F6E;
  --azul-dark: #142356;
  --ciano:     #29ABE2;
  --ciano-d:   #1E8FBF;
  --laranja:   #F47920;
  --laranja-d: #D9670F;
  --verde:     #72BF44;
  --branco:    #FFFFFF;
  --cinza-f:   #F4F6F9;
  --cinza-b:   #E8ECF0;
  --cinza-t:   #6B7C93;
  --text:      #1A2332;
  --radius:    12px;
  --shadow:    0 4px 24px rgba(0,0,0,.08);
  --shadow-h:  0 10px 40px rgba(41,171,226,.2);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', sans-serif;
  color: var(--text);
  background: var(--branco);
  line-height: 1.6;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
button { font-family: inherit; }

h1, h2, h3, h4 { font-family: 'Montserrat', sans-serif; line-height: 1.2; }
h1 { font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 900; }
h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 700; }
h3 { font-size: 1.1rem; font-weight: 700; }
p  { color: var(--cinza-t); }

/* ── Buttons ── */
.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .75rem 1.75rem; border-radius: 50px;
  font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: .9rem;
  cursor: pointer; border: none; transition: all .25s ease;
}
.btn-primary { background: var(--laranja); color: #fff; }
.btn-primary:hover { background: var(--laranja-d); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(244,121,32,.3); }
.btn-ciano   { background: var(--ciano); color: #fff; }
.btn-ciano:hover { background: var(--ciano-d); transform: translateY(-2px); box-shadow: var(--shadow-h); }
.btn-outline { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.6); }
.btn-outline:hover { background: rgba(255,255,255,.15); border-color: #fff; }
.btn-azul    { background: var(--azul); color: #fff; }
.btn-azul:hover { background: var(--azul-dark); }
.btn-sm      { padding: .5rem 1.1rem; font-size: .82rem; }
.btn-block   { width: 100%; justify-content: center; }

/* ── Nav ── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  display: flex; align-items: center; justify-content: space-between;
  padding: .7rem 5%;
  background: linear-gradient(100deg, var(--azul) 0%, #1e50a8 45%, var(--ciano) 130%);
  box-shadow: 0 4px 24px rgba(27,47,110,.25);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(255,255,255,.08);
  transition: padding .3s ease, box-shadow .3s ease;
}
.nav.nav-scrolled {
  padding-top: .45rem; padding-bottom: .45rem;
  box-shadow: 0 6px 30px rgba(27,47,110,.35);
}
.nav.nav-scrolled .nav-logo img { height: 34px; }
.nav-logo { display: flex; align-items: center; gap: .6rem; }
.nav-logo img {
  height: 40px;
  background: #fff;
  padding: 5px 10px;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
  transition: transform .25s ease, box-shadow .25s ease;
}
.nav-logo:hover img { transform: translateY(-1px) scale(1.02); box-shadow: 0 6px 20px rgba(0,0,0,.22); }
.nav-links { display: flex; gap: 2rem; align-items: center; }
.nav-links a { color: rgba(255,255,255,.9); font-weight: 500; font-size: .9rem;
  transition: color .2s; padding-bottom: 4px; border-bottom: 2px solid transparent; }
.nav-links a:hover, .nav-links a.active { color: #fff; border-bottom-color: #fff; }
.nav-right { display: flex; align-items: center; gap: 1rem; }
.cart-btn {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  color: #fff; font-size: 1.2rem; cursor: pointer;
  transition: background .2s, transform .2s; border: 1px solid rgba(255,255,255,.15);
}
.cart-btn:hover { background: rgba(255,255,255,.28); transform: translateY(-1px); }
.cart-count {
  position: absolute; top: -4px; right: -4px;
  background: var(--laranja); color: #fff;
  font-size: .68rem; font-weight: 700;
  width: 19px; height: 19px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 8px rgba(244,121,32,.5);
  border: 2px solid #fff;
}
.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; }
.hamburger span { display: block; width: 24px; height: 2px; background: #fff; border-radius: 2px; transition: .3s; }
.mobile-menu {
  position: fixed; top: 0; right: -100%; bottom: 0; width: 280px;
  background: var(--azul); z-index: 300; transition: right .3s ease;
  padding: 1.5rem; box-shadow: -10px 0 30px rgba(0,0,0,.2);
}
.mobile-menu.open { right: 0; }
.mobile-menu a { display: block; color: rgba(255,255,255,.85); padding: .9rem 0; font-size: 1rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.mobile-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 250; }
.mobile-overlay.open { display: block; }
.close-menu { color: #fff; font-size: 1.5rem; background: none; border: none; cursor: pointer; margin-bottom: 1rem; }

/* ── Hero ── */
.hero {
  min-height: 80vh;
  background: linear-gradient(135deg, var(--azul) 0%, var(--azul-dark) 60%, #0a1d4a 100%);
  display: flex; align-items: center;
  position: relative; overflow: hidden;
  padding: 6rem 5% 4rem;
}
.hero-content { position: relative; z-index: 2; max-width: 600px; }
.hero-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(41,171,226,.15); border: 1px solid rgba(41,171,226,.35);
  color: var(--ciano); border-radius: 50px; padding: .4rem 1rem;
  font-size: .78rem; font-weight: 600; font-family: 'Montserrat',sans-serif;
  letter-spacing: .04em; text-transform: uppercase; margin-bottom: 1.25rem;
}
.hero h1 { color: #fff; margin-bottom: 1.25rem; }
.hero h1 span { color: var(--ciano); }
.hero p { font-size: 1.05rem; color: rgba(255,255,255,.75); margin-bottom: 2rem; max-width: 480px; }
.hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-blob {
  position: absolute; border-radius: 50%;
  background: rgba(41,171,226,.08); animation: float 8s ease-in-out infinite;
}
.hb1 { width: 380px; height: 380px; right: 5%; top: 0%; }
.hb2 { width: 200px; height: 200px; right: 28%; top: 50%; animation-delay: -3s; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-20px); } }

/* ── Sections ── */
section { padding: 4.5rem 5%; }
.section-label {
  display: inline-block; font-family: 'Montserrat',sans-serif; font-size: .75rem;
  font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ciano); margin-bottom: .5rem;
}
.section-title { margin-bottom: .75rem; }
.section-sub   { max-width: 540px; margin-bottom: 2.5rem; }
.section-head  { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 2.5rem; }

/* ── Categories grid (homepage) ── */
.cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; }
.cat-card {
  position: relative; border-radius: var(--radius); overflow: hidden;
  height: 200px; display: flex; align-items: flex-end;
  box-shadow: var(--shadow); transition: transform .25s, box-shadow .25s;
}
.cat-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-h); }
.cat-card-bg {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center; font-size: 3.5rem;
}
.cat-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(transparent 30%, rgba(0,0,0,.65));
}
.cat-card-info { position: relative; z-index: 2; padding: 1.25rem; color: #fff; width: 100%; }
.cat-card-info h3 { color: #fff; font-size: 1.1rem; }
.cat-card-info span { font-size: .8rem; opacity: .85; }

/* ── Product Card ── */
.products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.5rem; }
.product-card {
  background: #fff; border-radius: var(--radius);
  box-shadow: var(--shadow); overflow: hidden;
  border: 1px solid var(--cinza-b);
  transition: transform .25s, box-shadow .25s;
  display: flex; flex-direction: column;
}
.product-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-h); }
.product-img-wrap {
  height: 190px; background: var(--cinza-f);
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.product-img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.product-img-wrap .placeholder { font-size: 3rem; opacity: .25; }
.product-badge {
  position: absolute; top: 10px; left: 10px;
  background: var(--laranja); color: #fff;
  font-size: .68rem; font-weight: 700; font-family: 'Montserrat',sans-serif;
  padding: .25rem .65rem; border-radius: 50px; text-transform: uppercase;
}
.esgotado-selo {
  position: absolute; top: 10px; right: 10px;
  background: rgba(31,41,55,.92); color: #fff;
  font-size: .68rem; font-weight: 700; font-family: 'Montserrat',sans-serif;
  padding: .25rem .7rem; border-radius: 50px; text-transform: uppercase;
  letter-spacing: .03em; z-index: 2;
}
.product-info { padding: 1.1rem; display: flex; flex-direction: column; flex: 1; }
.product-cat {
  font-size: .7rem; font-weight: 600; color: var(--ciano);
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: .35rem;
}
.product-info h3 { font-size: .98rem; margin-bottom: .4rem; }
.product-info h3 a { transition: color .2s; }
.product-info h3 a:hover { color: var(--ciano); }
.product-info p  { font-size: .85rem; margin-bottom: .9rem; flex: 1; }
.product-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.product-price { font-family: 'Montserrat',sans-serif; font-weight: 900; font-size: 1.1rem; color: var(--azul); }
.product-price .old { font-size: .75rem; font-weight: 400; color: var(--cinza-t); text-decoration: line-through; display: block; }
.btn-add-cart {
  width: 38px; height: 38px; border-radius: 50%; background: var(--ciano);
  color: #fff; border: none; font-size: 1.3rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  transition: background .2s, transform .2s;
}
.btn-add-cart:hover { background: var(--ciano-d); transform: scale(1.1); }

/* ── CTA banner ── */
.cta-banner {
  background: linear-gradient(135deg, var(--azul), var(--ciano-d));
  border-radius: 20px; padding: 3.5rem; text-align: center;
  position: relative; overflow: hidden;
}
.cta-banner h2 { color: #fff; margin-bottom: .75rem; }
.cta-banner p  { color: rgba(255,255,255,.8); margin-bottom: 2rem; font-size: 1.02rem; }

/* ── Features ── */
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 1.5rem; }
.feature-card {
  background: #fff; border-radius: var(--radius); padding: 1.75rem;
  box-shadow: var(--shadow); border: 1px solid var(--cinza-b);
  transition: transform .25s;
}
.feature-card:hover { transform: translateY(-4px); }
.feature-icon {
  width: 50px; height: 50px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1rem; font-size: 1.4rem;
}
.fi-azul   { background: rgba(27,47,110,.08); }
.fi-ciano  { background: rgba(41,171,226,.1); }
.fi-verde  { background: rgba(114,191,68,.1); }
.fi-laranja{ background: rgba(244,121,32,.1); }

/* ── Footer ── */
footer { background: var(--azul); color: rgba(255,255,255,.75); padding: 3.5rem 5% 1.5rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2.5rem; margin-bottom: 2.5rem; }
.footer-brand img { height: 50px; margin-bottom: .75rem; filter: brightness(0) invert(1); }
.footer-brand p { font-size: .87rem; max-width: 280px; }
.footer-col h4 { color: #fff; font-size: .88rem; margin-bottom: 1rem; }
.footer-col ul li { margin-bottom: .55rem; }
.footer-col ul li a { font-size: .86rem; transition: color .2s; }
.footer-col ul li a:hover { color: var(--ciano); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 1.25rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .75rem; }
.footer-bottom p { font-size: .8rem; }

/* ── Breadcrumb ── */
.breadcrumb { padding: 6.5rem 5% 0; font-size: .82rem; color: var(--cinza-t); }
.breadcrumb a { color: var(--ciano); }
.breadcrumb span { margin: 0 .4rem; }

/* ── Cart drawer ── */
.cart-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 400; }
.cart-overlay.open { display: block; }
.cart-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: 100%; max-width: 420px;
  background: #fff; z-index: 401; transition: transform .3s ease;
  transform: translateX(100%);
  display: flex; flex-direction: column; box-shadow: -10px 0 40px rgba(0,0,0,.2);
}
.cart-drawer.open { transform: translateX(0); }
.cart-header { padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--cinza-b); display: flex; align-items: center; justify-content: space-between; }
.cart-header h3 { font-size: 1.1rem; }
.cart-close { background: none; border: none; font-size: 1.4rem; cursor: pointer; color: var(--cinza-t); }
.cart-body { flex: 1; overflow-y: auto; padding: 1rem 1.5rem; }
.cart-item { display: flex; gap: .85rem; padding: .9rem 0; border-bottom: 1px solid var(--cinza-b); }
.cart-item img { width: 60px; height: 60px; object-fit: cover; border-radius: 8px; background: var(--cinza-f); }
.cart-item-info { flex: 1; }
.cart-item-info h4 { font-size: .88rem; margin-bottom: .25rem; }
.cart-item-price { font-size: .82rem; color: var(--azul); font-weight: 700; }
.cart-qty { display: flex; align-items: center; gap: .5rem; margin-top: .4rem; }
.cart-qty button { width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--cinza-b); background: #fff; cursor: pointer; font-size: .85rem; }
.cart-qty span { font-size: .85rem; font-weight: 600; min-width: 18px; text-align: center; }
.cart-item-remove { background: none; border: none; color: var(--cinza-t); cursor: pointer; font-size: .9rem; align-self: flex-start; }
.cart-item-remove:hover { color: #E53935; }
.cart-empty { text-align: center; padding: 3rem 1rem; color: var(--cinza-t); }
.cart-footer { padding: 1.25rem 1.5rem; border-top: 1px solid var(--cinza-b); }
.cart-total { display: flex; justify-content: space-between; font-size: 1.05rem; font-weight: 700; margin-bottom: 1rem; }
.cart-total span:last-child { color: var(--azul); }

/* ── Checkout form ── */
.checkout-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 500; align-items: center; justify-content: center; padding: 1rem; }
.checkout-overlay.open { display: flex; }
.checkout-box { background: #fff; border-radius: 16px; max-width: 460px; width: 100%; max-height: 90vh; overflow-y: auto; }
.checkout-header { padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--cinza-b); display: flex; justify-content: space-between; align-items: center; }
.checkout-body { padding: 1.5rem; }
.checkout-form-group { margin-bottom: 1rem; }
.checkout-form-group label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: .35rem; }
.checkout-form-group input, .checkout-form-group textarea {
  width: 100%; padding: .65rem .9rem; border: 2px solid var(--cinza-b);
  border-radius: 10px; font-size: .88rem; outline: none; transition: border-color .2s; font-family: 'Inter',sans-serif;
}
.checkout-form-group input:focus, .checkout-form-group textarea:focus { border-color: var(--ciano); }
.checkout-form-group textarea { resize: vertical; min-height: 80px; }

/* responsive consolidado em baixo */

/* ── Nav Dropdown ── */
.nav-dropdown { position: relative; }

.nav-dropdown-btn {
    background: none; border: none; border-bottom: 2px solid transparent;
    color: rgba(255,255,255,.85); font-family: 'Inter',sans-serif;
    font-size: .9rem; font-weight: 500;
    padding: 0 0 3px 0; cursor: pointer;
    transition: color .2s, border-color .2s;
}
.nav-dropdown-btn:hover,
.nav-dropdown-btn.active { color: #fff; border-bottom-color: #fff; }

.nav-dropdown-menu {
    display: none;
    position: absolute; top: calc(100% + 12px); left: 50%;
    transform: translateX(-50%);
    background: #fff; border-radius: var(--radius);
    box-shadow: 0 12px 40px rgba(0,0,0,.18);
    min-width: 240px; padding: .5rem 0; z-index: 500;
}
.nav-dropdown-menu.open { display: block; }
.nav-dropdown-menu::before {
    content: ''; position: absolute; top: -6px; left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-bottom-color: #fff; border-top: none;
}
.dropdown-all {
    display: block; padding: .6rem 1.1rem;
    font-size: .875rem; font-weight: 700; color: var(--azul) !important;
    transition: background .15s;
}
.dropdown-all:hover { background: var(--cinza-f); }
.dropdown-divider { border-top: 1px solid var(--cinza-b); margin: .35rem 0; }

/* Linha da categoria pai no dropdown */
.dropdown-pai-row {
    display: flex; align-items: center;
}
.dropdown-pai-link {
    flex: 1; display: block; padding: .6rem 0 .6rem 1.1rem;
    font-size: .875rem; font-weight: 600; color: var(--azul) !important;
    transition: background .15s, color .15s;
}
.dropdown-pai-link:hover { color: var(--ciano) !important; }
.dropdown-pai-row:hover { background: var(--cinza-f); }

/* Botão seta/fechar */
.dropdown-toggle-btn {
    background: none; border: none; cursor: pointer;
    padding: .5rem .85rem; font-size: .7rem;
    color: var(--cinza-t); transition: color .2s;
    display: flex; align-items: center; justify-content: center;
    min-width: 32px;
}
.dropdown-toggle-btn:hover { color: var(--ciano); }
.dropdown-toggle-btn.open { color: var(--danger); }
.dropdown-toggle-btn .btn-close { color: var(--danger); font-size: .75rem; }

/* Sub-categorias no dropdown */
.dropdown-sub-items { display: none; }
.dropdown-sub-items.open { display: block; background: var(--cinza-f); }
.dropdown-sub-item {
    display: block; padding: .45rem 1.1rem .45rem 1.75rem;
    font-size: .84rem; color: var(--cinza-t) !important;
    transition: background .15s, color .15s;
    border-left: 2px solid transparent;
}
.dropdown-sub-item:hover {
    background: rgba(41,171,226,.08);
    color: var(--ciano) !important;
    border-left-color: var(--ciano);
}

/* ── Cat Sidebar ── */
.cat-sidebar {
    background: #fff; border-radius: var(--radius);
    box-shadow: var(--shadow); padding: .75rem 0;
    position: sticky; top: 80px;
}
.cat-sidebar-title {
    font-size: .72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: var(--cinza-t);
    padding: .4rem 1.1rem .75rem;
}
.cat-sidebar-item {
    display: block; padding: .6rem 1.1rem;
    font-size: .875rem; font-weight: 500; color: var(--text);
    transition: background .15s, color .15s;
    border-left: 3px solid transparent;
}
.cat-sidebar-item:hover { background: var(--cinza-f); color: var(--ciano); }
.cat-sidebar-item.active { background: rgba(41,171,226,.08); color: var(--ciano); border-left-color: var(--ciano); font-weight: 600; }

.sort-select {
    padding: .45rem .85rem; border: 2px solid var(--cinza-b);
    border-radius: 50px; font-size: .82rem; outline: none;
    cursor: pointer; font-family: 'Inter',sans-serif;
    transition: border-color .2s;
}
.sort-select:focus { border-color: var(--ciano); }

/* ── Produto detail ── */
.produto-layout {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 3rem; align-items: start; margin-bottom: 2.5rem;
}
.galeria-principal {
    border-radius: var(--radius); overflow: hidden;
    background: var(--cinza-f); aspect-ratio: 1/1;
    display: flex; align-items: center; justify-content: center;
    position: relative;
}
.galeria-principal img {
    width: 100%; height: 100%; object-fit: contain;
}
.galeria-placeholder { font-size: 5rem; opacity: .2; }
.galeria-thumbs {
    display: flex; gap: .5rem; margin-top: .75rem; flex-wrap: wrap;
}
.galeria-thumb {
    width: 68px; height: 68px; object-fit: cover;
    border-radius: 8px; border: 2px solid var(--cinza-b);
    cursor: pointer; transition: border-color .2s;
}
.galeria-thumb:hover, .galeria-thumb.active { border-color: var(--ciano); }

.produto-preco-block { margin-bottom: 1.5rem; }
.preco-antigo { font-size: 1rem; text-decoration: line-through; color: var(--cinza-t); margin-right: .5rem; }
.preco-badge {
    background: var(--laranja); color: #fff;
    font-size: .72rem; font-weight: 700; font-family: 'Montserrat',sans-serif;
    padding: .2rem .6rem; border-radius: 50px; vertical-align: middle;
}
.preco-atual { font-family: 'Montserrat',sans-serif; font-weight: 900; font-size: 2rem; color: var(--azul); margin-top: .35rem; }

.produto-actions {
    display: flex; flex-direction: column; gap: .6rem; align-items: flex-start;
    margin-top: 1.25rem; max-width: 340px;
}
.produto-actions #btn-add-produto {
    padding: .7rem 1.25rem; font-size: .9rem; width: 100%;
    display: inline-flex; align-items: center; justify-content: center;
}
.qty-row {
    display: flex; align-items: center; gap: .6rem; justify-content: flex-start;
    width: 100%;
}
.qty-label { font-size: .88rem; font-weight: 600; color: var(--azul); }
.qty-selector {
    display: flex; align-items: center; border: 2px solid var(--cinza-b);
    border-radius: 50px; overflow: hidden; width: 130px;
}
.qty-selector button {
    width: 40px; height: 42px; background: var(--cinza-f); border: none;
    font-size: 1.2rem; cursor: pointer; transition: background .2s; flex-shrink: 0;
}
.qty-selector button:hover { background: var(--cinza-b); }
.qty-selector input {
    flex: 1; width: 100%; min-width: 0; height: 42px; border: none; outline: none;
    text-align: center; font-size: .95rem; font-weight: 600;
    font-family: 'Montserrat',sans-serif;
    -moz-appearance: textfield;
}
.qty-selector input::-webkit-outer-spin-button,
.qty-selector input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.btn-whatsapp-prod {
    display: flex; align-items: center; justify-content: center; gap: .5rem;
    margin-top: .6rem; background: #25D366; color: #fff;
    padding: .7rem 1.25rem; border-radius: 50px; font-weight: 600;
    font-size: .9rem; transition: background .2s;
    max-width: 340px; width: 100%;
}
.btn-whatsapp-prod:hover { background: #1da851; }

.produto-descricao {
    background: #fff; border-radius: var(--radius);
    box-shadow: var(--shadow); padding: 2rem;
    border: 1px solid var(--cinza-b); margin-top: 1rem;
}
.descricao-content { font-size: .93rem; line-height: 1.8; color: var(--text); }

/* responsive categoria/produto consolidado em baixo */

/* ── Categorias hierárquicas (página categorias.php) ── */
.cat-pai-section { margin-bottom: 3rem; }
.cat-pai-header {
    display: flex; align-items: center; gap: 1.25rem;
    margin-bottom: 1.25rem; padding-bottom: 1rem;
    border-bottom: 2px solid var(--cinza-b);
}
.cat-pai-img {
    width: 56px; height: 56px; border-radius: 12px; flex-shrink: 0;
}
.cat-pai-nome { font-size: 1.3rem; color: var(--azul); }

.sub-cat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}
.sub-cat-card {
    border-radius: var(--radius); overflow: hidden;
    box-shadow: var(--shadow); border: 1px solid var(--cinza-b);
    transition: transform .25s, box-shadow .25s;
    display: flex; flex-direction: column;
}
.sub-cat-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-h); }
.sub-cat-img {
    height: 130px; display: flex; align-items: center; justify-content: center;
}
.sub-cat-info {
    padding: .9rem 1rem; background: #fff;
}
.sub-cat-info h3 { font-size: .95rem; color: var(--text); margin-bottom: .2rem; }
.sub-cat-info span { font-size: .78rem; color: var(--ciano); font-weight: 600; }

/* CSS antigo removido */

/* ============================================
   RESPONSIVO — CONSOLIDADO
   ============================================ */

/* ── Tablet largo (< 1024px) ── */
@media (max-width: 1024px) {
    .hero { padding: 6rem 5% 3rem; }
    .products-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .produto-layout { gap: 2rem; }
}

/* ── Tablet (< 860px) ── */
@media (max-width: 860px) {
    /* Nav */
    .nav-links, .nav-dropdown { display: none; }
    .hamburger { display: flex; }

    /* Hero */
    .hero { min-height: 60vh; padding: 6rem 5% 3rem; }
    .hero h1 { font-size: 2rem; }

    /* Categoria sidebar → pills horizontais */
    .cat-sidebar {
        position: static;
        display: flex; flex-wrap: wrap; gap: .4rem;
        padding: .5rem; background: transparent; box-shadow: none;
    }
    .cat-sidebar-title { display: none; }
    .cat-sidebar-item {
        border-left: none; border-radius: 50px;
        padding: .4rem .9rem; font-size: .82rem;
        border: 2px solid var(--cinza-b); background: #fff;
    }
    .cat-sidebar-item.active { border-color: var(--ciano); background: rgba(41,171,226,.08); }
    .cat-sidebar-item:first-child { display: none; } /* esconde link "← Pai" em mobile */

    /* Layout categoria */
    .cat-layout-grid { grid-template-columns: 1fr !important; }

    /* Produto detalhe */
    .produto-layout { grid-template-columns: 1fr; gap: 1.5rem; }

    /* Sub-cat grid */
    .sub-cat-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }

    /* Footer */
    .footer-grid { grid-template-columns: 1fr 1fr; }

    /* CTA */
    .cta-banner { padding: 2.5rem 1.5rem; }
}

/* ── Mobile (< 640px) ── */
@media (max-width: 640px) {
    section { padding: 2.5rem 4%; }

    /* Hero */
    .hero { min-height: auto; padding: 5.5rem 4% 2.5rem; }
    .hero h1 { font-size: 1.75rem; }
    .hero p  { font-size: .95rem; }
    .hero-btns { flex-direction: column; gap: .75rem; }
    .hero-btns .btn { width: 100%; justify-content: center; }

    /* Grelhas */
    .cat-grid, .sub-cat-grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
    .products-grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
    .features-grid { grid-template-columns: 1fr; }

    /* Cards mais compactos em mobile */
    .cat-card { height: 150px; }
    .sub-cat-img { height: 100px; }
    .product-img-wrap { height: 150px; }
    .product-info { padding: .85rem; }
    .product-info h3 { font-size: .88rem; }

    /* Produto detalhe */
    .galeria-thumbs { gap: .35rem; }
    .galeria-thumb { width: 54px; height: 54px; }
    .preco-atual { font-size: 1.6rem; }
    .produto-actions { max-width: 100%; }
    .btn-whatsapp-prod { max-width: 100%; }

    /* Carrinho e checkout */
    .cart-drawer { max-width: 100%; }
    .checkout-box { max-width: 100%; border-radius: 16px 16px 0 0; align-self: flex-end; }
    .checkout-overlay { align-items: flex-end; padding: 0; }

    /* Footer */
    .footer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .footer-bottom { flex-direction: column; text-align: center; gap: .4rem; }

    /* CTA */
    .cta-banner { padding: 2rem 1.25rem; border-radius: 14px; }
    .cta-banner h2 { font-size: 1.3rem; }

    /* Breadcrumb */
    .breadcrumb { font-size: .75rem; padding: 5.5rem 4% 0; }
}

/* ── Mobile pequeno (< 380px) ── */
@media (max-width: 380px) {
    .cat-grid, .sub-cat-grid, .products-grid { grid-template-columns: 1fr; }
    .nav { padding: .65rem 4%; }
}

/* ── Menu mobile ── */
.mobile-menu {
    display: flex; flex-direction: column;
}
.mobile-menu .mobile-menu-logo {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 1.5rem; padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255,255,255,.15);
}
.mobile-menu .mobile-menu-logo img { height: 36px; filter: brightness(0) invert(1); }
.mobile-menu a {
    display: block; color: rgba(255,255,255,.85);
    padding: .85rem 0; font-size: .95rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
    transition: color .2s;
}
.mobile-menu a:hover { color: #fff; }
.mobile-menu .mobile-cat-pai {
    font-weight: 700; color: rgba(255,255,255,.6) !important;
    font-size: .75rem !important; text-transform: uppercase;
    letter-spacing: .08em; padding: 1rem 0 .4rem !important;
    border-bottom: none !important; pointer-events: none;
}
.mobile-menu .mobile-sub-link {
    padding-left: .9rem !important;
    font-size: .88rem !important;
    color: rgba(255,255,255,.7) !important;
}
.mobile-menu .mobile-sub-link:hover { color: var(--ciano) !important; }

/* ── Reduce motion ── */
@media (prefers-reduced-motion: reduce) {
    *, .hero-blob { animation: none !important; transition: none !important; }
}

/* ── Mobile menu sub-grupos ── */
.mobile-pai-row {
    display: flex; align-items: center;
}
.mobile-pai-link {
    flex: 1; display: block;
    padding: .85rem 0 !important;
    border-bottom: none !important;
    font-size: .95rem;
}
.mobile-toggle-btn {
    background: none; border: none; cursor: pointer;
    padding: .5rem .6rem; font-size: .75rem;
    color: rgba(255,255,255,.5); transition: color .2s;
    display: flex; align-items: center;
}
.mobile-toggle-btn:hover { color: #fff; }
.mobile-toggle-btn.open .btn-close { color: rgba(255,120,120,.9); }
.mobile-pai-row { border-bottom: 1px solid rgba(255,255,255,.08); }
.mobile-sub-group { display: none; }
.mobile-sub-group.open { display: block; }
.mobile-sub-link {
    display: block;
    padding: .65rem 0 .65rem 1.1rem !important;
    font-size: .88rem !important;
    color: rgba(255,255,255,.65) !important;
    border-bottom: 1px solid rgba(255,255,255,.05) !important;
    border-left: 2px solid rgba(41,171,226,.5) !important;
}
.mobile-sub-link:hover { color: var(--ciano) !important; }

/* ── Voucher no carrinho ── */
.voucher-box { margin-bottom: 1rem; }
.voucher-input-row { display: flex; gap: .5rem; }
.voucher-input-row input {
    flex: 1; padding: .55rem .8rem;
    border: 2px solid var(--cinza-b); border-radius: 10px;
    font-size: .85rem; outline: none; text-transform: uppercase;
    font-family: 'Courier New', monospace; letter-spacing: .05em;
    transition: border-color .2s;
}
.voucher-input-row input:focus { border-color: var(--ciano); }
.voucher-msg { font-size: .8rem; margin-top: .5rem; }
.voucher-msg.erro    { color: var(--laranja-d); }
.voucher-msg.sucesso { color: var(--verde); }
.voucher-applied {
    display: flex; align-items: center; justify-content: space-between;
    background: rgba(114,191,68,.12); border: 1px solid rgba(114,191,68,.3);
    border-radius: 10px; padding: .5rem .8rem; margin-top: .5rem;
    font-size: .85rem; color: var(--verde);
}
.voucher-applied button {
    background: none; border: none; color: var(--verde);
    cursor: pointer; font-size: .9rem; font-weight: 700;
}
.cart-subtotal, .cart-desconto {
    display: flex; justify-content: space-between;
    font-size: .88rem; margin-bottom: .4rem; color: var(--cinza-t);
}
.cart-desconto { color: var(--verde); font-weight: 600; }
.cart-desconto span:last-child { color: var(--verde); }

.voucher-nota {
    font-size: .72rem; color: var(--cinza-t);
    margin-top: .4rem; font-style: italic;
}

/* ── Preços no item do carrinho ── */
.cart-item-price .preco-old {
    text-decoration: line-through;
    color: var(--cinza-t);
    font-weight: 400;
    font-size: .8rem;
}
.cart-item-price .preco-now {
    color: var(--laranja-d);
    font-weight: 700;
}

/* Linha IVA incluído no carrinho */
.cart-iva {
    display: flex; justify-content: space-between;
    font-size: .78rem; color: var(--cinza-t);
    margin-top: -.35rem; margin-bottom: .75rem;
    font-style: italic;
}

/* ── Botão voltar ao topo ── */
.scroll-top {
    position: fixed;
    bottom: 28px; right: 28px;
    width: 48px; height: 48px;
    border-radius: 50%;
    border: none;
    background: linear-gradient(135deg, var(--azul), var(--ciano));
    color: #fff;
    font-size: 1.4rem; font-weight: 700;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 6px 20px rgba(27,47,110,.35);
    opacity: 0; visibility: hidden;
    transform: translateY(16px) scale(.85);
    transition: opacity .3s ease, transform .3s ease, visibility .3s;
    z-index: 150;
}
.scroll-top.visible {
    opacity: 1; visibility: visible;
    transform: translateY(0) scale(1);
}
.scroll-top:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 10px 28px rgba(41,171,226,.45);
}
.scroll-top span { line-height: 1; margin-top: -2px; }

@media (max-width: 640px) {
    .scroll-top { bottom: 20px; right: 20px; width: 44px; height: 44px; font-size: 1.25rem; }
}

/* ── Botão de pesquisa na topbar ── */
.search-btn {
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(255,255,255,.15);
    color: #fff; font-size: 1.1rem; cursor: pointer;
    transition: background .2s, transform .2s;
    border: 1px solid rgba(255,255,255,.15);
}
.search-btn:hover { background: rgba(255,255,255,.28); transform: translateY(-1px); }

/* ── Painel de pesquisa ── */
.search-overlay {
    position: fixed; inset: 0; background: rgba(20,32,51,.5);
    opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s;
    z-index: 350; backdrop-filter: blur(2px);
}
.search-overlay.open { opacity: 1; visibility: visible; }

.search-panel {
    position: fixed; top: 0; left: 0; right: 0;
    background: #fff; z-index: 400;
    transform: translateY(-100%);
    transition: transform .3s ease;
    box-shadow: 0 8px 30px rgba(0,0,0,.15);
}
.search-panel.open { transform: translateY(0); }
.search-panel-inner { max-width: 700px; margin: 0 auto; padding: 1.5rem 5%; }

.search-form {
    display: flex; align-items: center; gap: .75rem;
    border-bottom: 2px solid var(--azul); padding-bottom: .75rem;
}
.search-form .search-icon { font-size: 1.2rem; opacity: .6; }
.search-form input {
    flex: 1; border: none; outline: none;
    font-size: 1.15rem; font-family: 'Inter',sans-serif;
    color: var(--azul); background: transparent;
}
.search-form input::placeholder { color: var(--cinza-t); }
.search-close {
    background: none; border: none; cursor: pointer;
    font-size: 1.1rem; color: var(--cinza-t); padding: .3rem .5rem;
    transition: color .2s;
}
.search-close:hover { color: var(--laranja-d); }

/* Sugestões instantâneas */
.search-suggestions { margin-top: 1rem; }
.search-suggestion {
    display: flex; align-items: center; gap: .85rem;
    padding: .7rem .5rem; border-radius: 10px;
    text-decoration: none; transition: background .15s;
}
.search-suggestion:hover { background: var(--cinza-f); }
.search-suggestion img {
    width: 46px; height: 46px; border-radius: 8px;
    object-fit: cover; border: 1px solid var(--cinza-b); flex-shrink: 0;
    background: var(--cinza-f);
}
.search-suggestion .ss-placeholder {
    width: 46px; height: 46px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    background: var(--cinza-f); font-size: 1.2rem; flex-shrink: 0;
}
.search-suggestion-info { flex: 1; min-width: 0; }
.search-suggestion-info strong {
    display: block; font-size: .9rem; color: var(--azul);
    font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-suggestion-info small { font-size: .75rem; color: var(--cinza-t); }
.search-suggestion-price {
    font-family: 'Montserrat',sans-serif; font-weight: 700;
    font-size: .9rem; color: var(--laranja-d); flex-shrink: 0;
}
.search-empty { text-align: center; padding: 2rem 1rem; color: var(--cinza-t); font-size: .9rem; }
.search-ver-todos {
    display: block; text-align: center; margin-top: .5rem;
    padding: .7rem; background: var(--cinza-f); border-radius: 10px;
    color: var(--azul); font-weight: 600; font-size: .85rem;
    text-decoration: none; transition: background .2s;
}
.search-ver-todos:hover { background: #e8ecf1; }

/* Formulário na página de resultados */
.search-page-form {
    display: flex; gap: .75rem; max-width: 600px;
    margin-top: 1.5rem;
}
.search-page-form input {
    flex: 1; padding: .85rem 1.25rem;
    border: 2px solid var(--cinza-b); border-radius: 50px;
    font-size: 1rem; outline: none; transition: border-color .2s;
}
.search-page-form input:focus { border-color: var(--ciano); }

@media (max-width: 640px) {
    .search-page-form { flex-direction: column; }
    .search-page-form input { width: 100%; }
}

/* ── Variantes do produto (tamanho/cor) ── */
.variante-grupo { margin: 1.25rem 0; }
.variante-label {
    display: block; font-size: .9rem; font-weight: 600;
    color: var(--azul); margin-bottom: .6rem;
}
.variante-obrigatorio { color: var(--laranja-d); }
.variante-opcoes { display: flex; flex-wrap: wrap; gap: .5rem; }
.variante-btn {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: .55rem .9rem;
    border: 2px solid var(--cinza-b); border-radius: 10px;
    background: #fff; color: var(--azul);
    font-size: .88rem; font-weight: 500; cursor: pointer;
    transition: all .18s ease;
    min-width: 44px; justify-content: center;
}
.variante-btn:hover { border-color: var(--ciano); background: rgba(41,171,226,.05); }
.variante-btn.selecionado {
    border-color: var(--azul); background: var(--azul); color: #fff;
    box-shadow: 0 3px 10px rgba(27,47,110,.25);
}
.variante-btn.selecionado .cor-amostra { box-shadow: 0 0 0 2px #fff; }
.cor-amostra {
    width: 18px; height: 18px; border-radius: 50%;
    border: 1px solid rgba(0,0,0,.15); flex-shrink: 0;
    display: inline-block;
}
.variante-aviso {
    margin-top: .75rem; padding: .7rem 1rem;
    background: #fff4e5; border: 1px solid #ffd59e;
    border-radius: 10px; color: #8a5700; font-size: .85rem; font-weight: 500;
}

/* Linha de identificação legal no rodapé */
.footer-legal {
    flex-basis: 100%;
    font-size: .72rem !important;
    color: rgba(255,255,255,.55);
    margin-bottom: .5rem;
    line-height: 1.5;
}

/* ═══════════════════════════════════════════
   Banner de cookies
   ═══════════════════════════════════════════ */
.cookie-banner {
    position: fixed; bottom: 0; left: 0; right: 0;
    background: #fff; z-index: 500;
    box-shadow: 0 -6px 30px rgba(0,0,0,.18);
    border-top: 3px solid var(--ciano);
    padding: 1.25rem 5%;
    animation: cookieSlideUp .4s ease;
}
@keyframes cookieSlideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }

.cookie-banner-inner {
    max-width: 1200px; margin: 0 auto;
    display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
    justify-content: space-between;
}
.cookie-text { flex: 1; min-width: 260px; }
.cookie-text strong { font-family: 'Montserrat',sans-serif; color: var(--azul); font-size: .95rem; }
.cookie-text p { font-size: .82rem; color: var(--cinza-t); margin-top: .3rem; line-height: 1.5; }

.cookie-actions { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; }
.cookie-btn {
    padding: .6rem 1.1rem; border-radius: 50px;
    font-family: 'Inter',sans-serif; font-size: .82rem; font-weight: 600;
    cursor: pointer; border: 2px solid transparent; transition: all .2s;
    white-space: nowrap;
}
.cookie-btn-primary { background: var(--azul); color: #fff; }
.cookie-btn-primary:hover { background: var(--ciano-d); }
.cookie-btn-outline { background: transparent; color: var(--azul); border-color: var(--cinza-b); }
.cookie-btn-outline:hover { border-color: var(--ciano); color: var(--ciano-d); }

.cookie-custom {
    max-width: 1200px; margin: 1.25rem auto 0;
    border-top: 1px solid var(--cinza-b); padding-top: 1rem;
}
.cookie-opcao {
    display: flex; align-items: flex-start; gap: .6rem;
    padding: .5rem 0; font-size: .84rem; color: var(--cinza-t); cursor: pointer;
}
.cookie-opcao input { margin-top: .15rem; accent-color: var(--ciano); flex-shrink: 0; }
.cookie-opcao strong { color: var(--azul); }

/* Placeholder do mapa (click-to-load) */
.mapa-consentimento {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: .75rem; text-align: center; padding: 2rem 1rem;
    background: linear-gradient(160deg, #f8fafc, #eef2f7);
    min-height: 360px; height: 100%;
}
.mapa-consentimento p { font-size: .88rem; color: var(--cinza-t); max-width: 320px; }
.btn-carregar-mapa {
    background: var(--azul); color: #fff; border: none;
    padding: .7rem 1.4rem; border-radius: 50px;
    font-family: 'Montserrat',sans-serif; font-weight: 600; font-size: .85rem;
    cursor: pointer; transition: background .2s;
}
.btn-carregar-mapa:hover { background: var(--ciano-d); }

@media (max-width: 640px) {
    .cookie-banner-inner { flex-direction: column; align-items: stretch; }
    .cookie-actions { justify-content: stretch; }
    .cookie-actions .cookie-btn { flex: 1; text-align: center; }
}

/* Selo Livro de Reclamações no rodapé */
.footer-lre {
    display: inline-block; margin-top: 1rem;
    transition: transform .2s;
}
.footer-lre:hover { transform: translateY(-2px); }
.footer-lre img { height: 40px; width: auto; display: block; filter: none !important; }

/* ── Seletor de método de contacto no checkout ── */
.checkout-metodo { margin: 1.25rem 0; }
.checkout-metodo-titulo {
    display: block; font-weight: 600; font-size: .9rem;
    color: var(--azul); margin-bottom: .75rem;
}
.metodo-opcao {
    display: flex; align-items: center; gap: .75rem;
    padding: .8rem .9rem; margin-bottom: .6rem;
    border: 2px solid var(--cinza-b); border-radius: 12px;
    cursor: pointer; transition: all .18s;
}
.metodo-opcao:hover { border-color: var(--ciano); background: rgba(41,171,226,.03); }
.metodo-opcao input { accent-color: var(--ciano); flex-shrink: 0; width: 18px; height: 18px; }
.metodo-opcao input:checked ~ .metodo-texto strong { color: var(--ciano-d); }
.metodo-opcao:has(input:checked) { border-color: var(--ciano); background: rgba(41,171,226,.06); }
.metodo-icon { font-size: 1.4rem; flex-shrink: 0; }
.metodo-texto { display: flex; flex-direction: column; gap: .1rem; }
.metodo-texto strong { font-size: .9rem; color: var(--azul); display: flex; align-items: center; gap: .5rem; }
.metodo-texto small { font-size: .75rem; color: var(--cinza-t); }
.metodo-tag {
    background: #25D366; color: #fff; font-size: .6rem; font-weight: 700;
    text-transform: uppercase; padding: .12rem .4rem; border-radius: 4px;
    letter-spacing: .03em;
}
.metodo-destaque { border-color: rgba(37,211,102,.4); }

.metodo-subopcoes {
    margin: .25rem 0 .6rem; padding: .9rem;
    background: var(--cinza-c, #f5f7fa); border-radius: 10px;
}
.submetodo-titulo { display: block; font-size: .82rem; font-weight: 600; color: var(--azul); margin-bottom: .6rem; }
.submetodo-botoes { display: flex; gap: .5rem; flex-wrap: wrap; }
.submetodo-opcao { flex: 1; min-width: 90px; cursor: pointer; }
.submetodo-opcao input { display: none; }
.submetodo-opcao span {
    display: block; text-align: center; padding: .55rem .5rem;
    border: 2px solid var(--cinza-b); border-radius: 8px;
    font-size: .8rem; font-weight: 500; color: var(--azul);
    transition: all .18s;
}
.submetodo-opcao input:checked + span {
    border-color: var(--ciano); background: var(--ciano); color: #fff;
}

.checkout-aviso {
    margin-bottom: .75rem; padding: .7rem 1rem;
    background: #fff4e5; border: 1px solid #ffd59e;
    border-radius: 10px; color: #8a5700; font-size: .82rem; font-weight: 500;
}

/* ── Paginação (páginas públicas) ── */
.paginacao {
    display: flex; align-items: center; justify-content: center;
    gap: .4rem; flex-wrap: wrap; margin-top: 2.5rem;
}
.pag-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 40px; height: 40px; padding: 0 .9rem;
    border: 2px solid var(--cinza-b); border-radius: 10px;
    color: var(--azul); font-weight: 600; font-size: .88rem;
    background: #fff; transition: all .18s; cursor: pointer;
}
.pag-btn:hover { border-color: var(--ciano); color: var(--ciano-d); }
.pag-atual {
    background: var(--azul); color: #fff; border-color: var(--azul);
    cursor: default;
}
.pag-atual:hover { color: #fff; }

/* ── Bloco de vantagens/confiança na página do produto ── */
.produto-vantagens {
    margin-top: 1.75rem; padding-top: 1.5rem;
    border-top: 1px solid var(--cinza-b);
    display: flex; flex-direction: column; gap: 1rem;
}
.vantagem-item { display: flex; align-items: flex-start; gap: .8rem; }
.vantagem-icon {
    font-size: 1.1rem; flex-shrink: 0;
    width: 38px; height: 38px; border-radius: 50%;
    background: rgba(41,171,226,.1); color: var(--ciano-d);
    display: flex; align-items: center; justify-content: center;
}
.vantagem-texto { display: flex; flex-direction: column; gap: .1rem; }
.vantagem-texto strong { font-size: .88rem; color: var(--azul); }
.vantagem-texto small { font-size: .78rem; color: var(--cinza-t); line-height: 1.4; }

/* ── Partilhar produto ── */
.produto-partilha {
    margin-top: 1.5rem; padding-top: 1.25rem;
    border-top: 1px solid var(--cinza-b);
    display: flex; align-items: center; gap: .6rem;
}
.partilha-label { font-size: .82rem; color: var(--cinza-t); font-weight: 500; }
.partilha-btn {
    width: 36px; height: 36px; border-radius: 50%;
    border: 2px solid var(--cinza-b); background: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .9rem; font-weight: 700; color: var(--azul);
    cursor: pointer; transition: all .18s; text-decoration: none;
}
.partilha-btn:hover { border-color: var(--ciano); color: var(--ciano-d); transform: translateY(-2px); }