/* ============================================================
   FAMOORS — Design system (redesign)
   Base tokens, chrome (header / nav / footer) e componentes da home.
   Páginas ainda não migradas herdam de legacy.css (carregado antes).
   ============================================================ */

:root {
  --teal:#4D6D78;
  --teal-dark:#3C565F;
  --navy:#7B9CA6;
  --mint:#BED4D0;
  --sand:#EFE3D5;
  --pearl:#F8F6F0;
  --gold:#D4AF77;
  --gold-dark:#C29A5C;
  --ink:#2E3F45;
  --line:#E3DACF;
  --card-shadow:0 6px 24px rgba(77,109,120,.08);
  --radius:18px;
  --primary:var(--gold);            /* compat c/ regras legadas */
  --lightblack:var(--teal);
}

*,*::before,*::after { box-sizing:border-box; }

body {
  margin:0;
  background:var(--pearl);
  font-family:'Archivo',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
  color:var(--teal);
  font-size:14px;
  line-height:1.6;
}

.logo,h1,h2,h3,.f-serif { font-family:'Cormorant Garamond',Georgia,serif; }

a { color:var(--teal); text-decoration:none; transition:color .15s ease; }
a:hover { color:var(--gold); }

img { max-width:100%; height:auto; }

/* rodapé colado ao fundo */
#container { display:flex; flex-direction:column; min-height:100vh; }
#container > main { flex:1 0 auto; }

/* alertas AJAX (canto sup. dir.) */
#alert { position:fixed; top:0; right:0; padding:1rem; z-index:1080; max-width:360px; }

/* ---------- botões ---------- */
.btn,
.btn-primary,
.btn-famoors {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:var(--teal);
  color:var(--pearl);
  border:1px solid var(--teal);
  padding:12px 26px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.03em;
  cursor:pointer;
  line-height:1.2;
  transition:filter .15s ease, background .15s ease, color .15s ease;
}
.btn:hover,.btn-primary:hover { background:var(--teal-dark); border-color:var(--teal-dark); color:var(--pearl); filter:none; }
.btn.gold,.btn-gold { background:var(--gold); border-color:var(--gold); color:var(--teal); }
.btn.gold:hover,.btn-gold:hover { background:var(--gold-dark); border-color:var(--gold-dark); color:var(--teal); }
.btn.outline,.btn-outline { background:transparent; color:var(--teal); border-color:var(--mint); }
.btn.outline:hover,.btn-outline:hover { background:var(--sand); color:var(--teal); }
.btn-sm { padding:8px 18px; font-size:12px; }

/* ============================================================
   TOPBAR
   ============================================================ */
#top {
  background:var(--teal);
  color:var(--pearl);
  font-size:11.5px;
  letter-spacing:.08em;
}
#top .container { max-width:1440px; }
#top .row { align-items:center; min-height:38px; }
#top .welcom-text p { margin:0; display:flex; align-items:center; gap:8px; text-transform:uppercase; opacity:.92; }
#top .welcom-text svg { width:16px; height:16px; fill:var(--gold); }
#top .header-social { margin:0; text-align:right; }
#top .header-social .list-inline-item { margin-left:14px; }
#top .header-social a { color:var(--pearl); opacity:.85; font-size:13px; }
#top .header-social a:hover { color:var(--gold); opacity:1; }

/* ============================================================
   HEADER (telefone | marca | ações)
   ============================================================ */
header { background:var(--pearl); }
header .container { max-width:1440px; }
header .row { min-height:96px; }

/* header fixo no mobile/tablet (topbar + logo + menu num só bloco pegajoso) */
@media (max-width:991px) {
  #site-header {
    position:sticky;
    top:0;
    z-index:1030;
    background:var(--pearl);
    box-shadow:0 4px 18px rgba(77,109,120,.12);
  }
  #site-header .menu-bg { background:var(--pearl); }
}

.header-lang-currency { margin:0; display:flex; align-items:center; gap:18px; }
.header-lang-currency .list-inline-item { margin:0; font-size:13px; font-weight:600; color:var(--teal); }
.header-lang-currency a { color:var(--teal); display:inline-flex; align-items:center; gap:6px; }
.header-lang-currency a:hover { color:var(--gold); }
.header-lang-currency i { color:var(--gold); }
.header-lang-currency .btn-link,
.header-lang-currency .dropdown-toggle { color:var(--teal); font-weight:600; text-decoration:none; padding:4px 6px; }
.header-lang-currency .dropdown-menu { border:1px solid var(--line); border-radius:12px; padding:6px; box-shadow:var(--card-shadow); }

#logo { text-align:center; margin:0; }
#logo img { height:80px; max-height:80px; max-width:100%; width:auto; object-fit:contain; display:inline-block; }
#logo h1 { margin:0; font-size:30px; color:var(--teal); letter-spacing:.03em; }
#logo h1 a { color:var(--teal); }

/* alinhamento vertical: o <a> da conta ficava colado ao topo da linha */
.head-user,
.head-user .dropdown { display:flex; align-items:center; }

.header-actions-col .head-icon,
.header-actions-col .dropdown-toggle,
.head-user .dropdown-toggle {
  color:var(--teal);
  background:transparent;
  border:0;
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  font-weight:600;
  line-height:1;
}
.header-actions-col svg { width:20px; height:20px; }
.header-actions-col .head-icon svg use,
.head-user .dropdown-toggle svg use { stroke:var(--teal); }
.header-actions-col .head-icon:hover,
.head-user .dropdown-toggle:hover { color:var(--gold); }

.account-dropdown { border:1px solid var(--line); border-radius:14px; padding:8px; box-shadow:var(--card-shadow); min-width:210px; }
.account-dropdown .dropdown-item { border-radius:9px; padding:9px 12px; font-size:13px; color:var(--teal); display:flex; align-items:center; gap:9px; }
.account-dropdown .dropdown-item i { color:var(--gold); width:16px; text-align:center; }
.account-dropdown .dropdown-item:hover { background:var(--sand); color:var(--teal); }

/* mini-cart (dropdown botão) */
#cart .dropdown > button,
#cart .btn-dark {
  background:var(--teal) !important;
  border:0 !important;
  color:var(--pearl) !important;
  border-radius:999px;
  padding:9px 16px;
  font-size:13px;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
#cart .dropdown > button svg { width:16px; height:16px; fill:var(--pearl); }
#cart .dropdown-menu.mini-cart {
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  min-width:340px;
  box-shadow:0 18px 44px rgba(77,109,120,.18);
}
#cart .dropdown-menu.mini-cart li.cart-box { max-width:none; width:100%; }
.mini-cart__item { display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.mini-cart__item:last-child { border-bottom:0; }
.mini-cart__thumb img { width:56px; height:56px; object-fit:cover; border-radius:10px; }
.mini-cart__name { font-weight:600; font-size:13px; color:var(--teal); }
.mini-cart__meta { font-size:11.5px; color:var(--navy); display:flex; flex-direction:column; }
.mini-cart__qty { font-size:12.5px; color:var(--teal); font-weight:600; }
.mini-cart__remove button { background:none; border:0; color:var(--navy); }
.mini-cart__totals { margin:12px 0; font-size:13px; }
.mini-cart__total-row { display:flex; justify-content:space-between; padding:3px 0; color:var(--navy); }
.mini-cart__total-row.is-grand { font-weight:700; color:var(--teal); font-size:15px; border-top:1px solid var(--line); padding-top:10px; margin-top:6px; }
.mini-cart__actions { display:flex; gap:10px; margin-top:6px; }
.mini-cart__actions .btn-cart { flex:1; padding:10px 14px; border-radius:999px; font-size:12.5px; font-weight:700; text-align:center; }
.btn-cart--ghost { background:var(--sand); color:var(--teal); }
.btn-cart--primary { background:var(--teal); color:var(--pearl); }
.mini-cart__empty { padding:16px; text-align:center; color:var(--navy); font-size:13px; }

/* pesquisa (offcanvas topo) — barra fina no topo, não painel de ecrã inteiro */
#searchoffcanvasTop {
  height:auto !important; min-height:0; max-height:none; bottom:auto;
  background:var(--pearl); border-bottom:1px solid var(--line); box-shadow:0 10px 30px rgba(77,109,120,.12);
}
#searchoffcanvasTop .offcanvas-header { display:block; padding:0; }
#searchoffcanvasTop .offcanvas-body { flex:none; overflow:visible; padding:18px 24px; }
/* o template embrulha o formulário num .container do bootstrap: aqui não pode impor largura */
#searchoffcanvasTop .container { width:100%; max-width:none; padding:0; margin:0; }
#searchoffcanvasTop .header-search-wrap { max-width:720px; margin:0 auto; padding-right:56px; }
#searchoffcanvasTop .header-search-form {
  border-color:var(--line); box-shadow:0 8px 24px rgba(77,109,120,.12);
}
#searchoffcanvasTop .header-search-form:focus-within {
  border-color:var(--gold); box-shadow:0 8px 24px rgba(77,109,120,.12), 0 0 0 3px rgba(212,175,119,.22);
}
#searchoffcanvasTop .header-search-icon { color:var(--navy); }
#searchoffcanvasTop .header-search-input { color:var(--teal); font-size:15px; }
#searchoffcanvasTop .header-search-submit { background:var(--teal); font-size:13px; }
#searchoffcanvasTop .header-search-submit:hover { background:var(--gold); filter:none; }
#searchoffcanvasTop .header-search-close { color:var(--teal); box-shadow:var(--card-shadow); }
#searchoffcanvasTop .header-search-close:hover { background:var(--sand); color:var(--teal); }
@media (max-width:575px) {
  #searchoffcanvasTop .offcanvas-body { padding:14px 16px; }
  #searchoffcanvasTop .header-search-wrap { padding-right:46px; }
}
#search .input-group { border:1px solid var(--mint); border-radius:999px; overflow:hidden; background:#fff; }
#search .form-control { border:0; padding:12px 18px; font-size:14px; background:transparent; }
#search .form-control:focus { box-shadow:none; }
#search .btn { border-radius:0; background:var(--teal); border:0; padding:0 22px; }
#search .btn:hover { background:var(--teal-dark); }

/* ============================================================
   NAV DE CATEGORIAS (desktop)
   ============================================================ */
.menu-bg { border-top:1px solid var(--mint); border-bottom:1px solid var(--mint); background:var(--pearl); }
.menu-bg .container { max-width:1440px; }
#menu.navbar { padding:0; }
#menu .navbar-nav { width:100%; justify-content:center; gap:8px; }
#menu .nav-item > .nav-link,
#menu .nav-item > .dropdown-item {
  font-size:13.5px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--teal);
  padding:16px 18px;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:0;
}
#menu .nav-item > .nav-link:hover,
#menu .nav-item > .dropdown-item:hover,
#menu .nav-item.show > .nav-link { color:var(--gold); background:transparent; }
#menu .nav-item .enaleng { font-size:11px; color:var(--navy); }
#menu .dropdown-menu {
  border:0;
  border-radius:0 0 16px 16px;
  padding:22px 26px;
  box-shadow:0 20px 44px rgba(77,109,120,.16);
  margin-top:0;
}
#menu .dropdown-inner { display:flex; gap:34px; }
#menu .dropdown-menu .dropdown-item { padding:6px 0; font-size:13px; color:var(--navy); text-transform:none; font-weight:500; }
#menu .dropdown-menu .dropdown-item:hover { color:var(--gold); background:transparent; }
#menu .dropdown-divider { border-color:var(--line); }

/* ============================================================
   MENU MOBILE (offcanvas)
   ============================================================ */
.menu-bar-icon {
  border:0; background:transparent; color:var(--teal);
  padding:8px; display:inline-flex; /* removed */
}
.menu-bar-icon .hamburger-icon { color:var(--teal); }
.mobile-menu.offcanvas.offcanvas-start { width:300px; max-width:86vw; border:0; box-shadow:8px 0 32px rgba(77,109,120,.16); background:var(--pearl); }
.mobile-menu .offcanvas-header { padding:20px 20px 16px; background:var(--pearl); border-bottom:1px solid var(--line); }
.mobile-menu .offcanvas-title { color:var(--teal); font-size:12px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; font-family:'Archivo',sans-serif; }
.mobile-menu .btn-close { opacity:.5; }
.mobile-menu .btn-close:hover { opacity:1; }
.mobile-menu .offcanvas-body { padding:10px; }
.mobile-menu .nav.navbar-nav { gap:2px; }
.mobile-menu .nav-item > a {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:13px 14px; border-radius:10px; color:var(--teal);
  font-size:14px; font-weight:600; text-transform:none; background:transparent;
}
.mobile-menu .nav-item > a:hover,
.mobile-menu .nav-item.show > a { background:var(--sand); color:var(--gold); }
.mobile-menu .nav-item .enaleng { color:var(--navy); font-size:12px; }
.mobile-menu .dropdown-menu { border:0; background:#fff; border-radius:10px; margin:2px 0 8px; padding:4px; box-shadow:none; }
.mobile-menu .dropdown-menu .dropdown-item { padding:10px 14px; border-radius:8px; font-size:13px; color:var(--navy); }
.mobile-menu .dropdown-menu .dropdown-item:hover { background:var(--sand); color:var(--gold); }
.mobile-menu .dropdown-menu.show { position:static !important; transform:none !important; }

/* ============================================================
   CARTÃO DE PRODUTO (home / categoria / relacionados)
   ============================================================ */
.product-thumb {
  background:#fff;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--card-shadow);
  position:relative;
  height:100%;
  display:flex;
  flex-direction:column;
  transition:transform .18s ease, box-shadow .18s ease;
}
.product-thumb:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(77,109,120,.14); }
.product-thumb .image { overflow:hidden; }
.product-thumb .image img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; transition:transform .35s ease; }
.product-thumb:hover .image img { transform:scale(1.05); }
.product-thumb .content,
.product-thumb .caption { padding:16px 18px; text-align:center; display:flex; flex-direction:column; gap:6px; flex:1; }
.product-thumb .name,
.product-thumb .caption a { font-size:14px; font-weight:600; color:var(--teal); }
.product-thumb .rating,
.product-thumb .stars { color:var(--gold); font-size:13px; letter-spacing:2px; }
.product-thumb .price { font-size:15px; font-weight:700; color:var(--teal); }
.product-thumb .price-old { color:var(--navy); text-decoration:line-through; font-weight:500; margin-right:6px; }
/* linha de ações (carrinho / favoritos / comparar) — entre o nome e o preço */
.product-thumb .thumb-actions {
  display:flex; gap:8px; justify-content:center; align-items:center;
  margin:0; padding:0;
}
.product-thumb .thumb-actions button,
.product-thumb .thumb-actions .thumb-action-link {
  width:34px; height:34px; border-radius:50%; border:1px solid var(--mint);
  background:#fff; color:var(--teal); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; padding:0;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.product-thumb .thumb-actions button:hover,
.product-thumb .thumb-actions .thumb-action-link:hover { background:var(--teal); color:var(--pearl); border-color:var(--teal); }
.product-thumb .thumb-actions button svg { width:15px; height:15px; fill:currentColor; }
.product-thumb .thumb-actions input { display:none; }
.product-thumb .price--quote .price-new { color:var(--gold); font-size:13px; }

/* overlay de hover sobre a imagem — cores (bikinis) ou formato (livros) */
.product-thumb .image { position:relative; }
.product-thumb .thumb-hover {
  position:absolute; left:0; right:0; bottom:0;
  display:flex; align-items:center; justify-content:center;
  padding:12px;
  /* background:rgba(248,246,240,.9);
  backdrop-filter:blur(3px);  */
  -webkit-backdrop-filter:blur(3px);
  opacity:0; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease;
  pointer-events:none;
}
.product-thumb .image:hover .thumb-hover { opacity:1; transform:translateY(0); }
.product-thumb .thumb-hover__row { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.product-thumb .thumb-swatch {
  width:20px; height:20px; border-radius:50%;
  box-shadow:0 0 0 1px var(--mint), 0 0 0 3px #fff;
}
.product-thumb .thumb-swatch--multi {
  background:conic-gradient(#C25B54,#D4AF77,#6B8E5A,#3E6DA3,#D98BA8,#C25B54);
}
.product-thumb .thumb-hover__fmt { gap:10px; }
.product-thumb .thumb-fmt {
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; line-height:1; padding:6px; border-radius:50%;
  box-shadow:0 0 0 1px var(--mint);
}
.product-thumb .image .thumb-hover .thumb-hover__fmt .thumb-fmt img {
  width:22px !important; height:22px !important; max-width:22px !important;
  aspect-ratio:auto !important; object-fit:contain !important;
  position:static !important; inset:auto !important;
  transform:none !important; display:block;
}
.badge-new,.product-thumb .badge {
  position:absolute; top:12px; left:12px; z-index:1;
  background:var(--gold); color:var(--teal);
  font-size:11px; font-weight:700; padding:4px 12px; border-radius:999px;
}

/* ============================================================
   SECÇÕES / TÍTULOS
   ============================================================ */
.section-heading,.section-title { text-align:center; margin:0 0 32px; }
.section-heading h2,.section-title h2,.co-heading {
  font-family:'Cormorant Garamond',serif;
  font-size:32px;
  color:var(--teal);
  font-weight:600;
  margin:0;
  text-transform:none;
  letter-spacing:0;
}
.section-heading hr,.section-title hr {
  width:56px; border:0; border-top:2px solid var(--gold);
  margin:12px auto 0; opacity:1;
}
.section-kicker { font-size:11px; letter-spacing:.25em; color:var(--navy); font-weight:700; text-transform:uppercase; margin-bottom:6px; }

/* ============================================================
   FOOTER
   ============================================================ */
footer { background:var(--teal); color:var(--pearl); margin-top:64px; padding:60px 32px 0; }
footer a { color:var(--mint); }
footer a:hover { color:var(--gold); }

/* .cols — grelha exata do export */
footer .cols {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:40px;
  max-width:1200px;
  margin:0 auto 40px;
}
footer h5,
footer .col-title {
  font-size:13px; letter-spacing:.15em; font-weight:700; color:var(--gold);
  text-transform:uppercase; margin:0 0 18px;
}
footer h5 .toggle,
footer h5 .btn { display:none; }
.footer-link,
footer .links { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.footer-link a,
footer .links a { font-size:14px; color:var(--mint); }
.footer-link a:hover,
footer .links a:hover { color:var(--gold); }
.footer-collapse { display:block !important; }
footer p { font-size:14px; line-height:1.9; color:var(--mint); margin:0; }

/* bloco contacto (storeinfo) */
.storeinfo h5 { margin-bottom:16px; }
.storeinfo .f-left { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.storeinfo .f-left li { display:flex; gap:10px; font-size:13.5px; color:var(--mint); line-height:1.5; }
.storeinfo .f-left li i { color:var(--gold); margin-top:3px; }
.storeinfo .f-left li .fs-0 { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.storeinfo .f-left a { color:var(--mint); }
.storeinfo .f-left a:hover { color:var(--gold); }

#column-left1 h1 { display:none; }

/* newsletter */
#footer-newsletter h3 { font-size:12px !important; letter-spacing:.15em; font-weight:700; color:var(--gold) !important; text-transform:uppercase; margin-bottom:14px; }
#footer-newsletter .inputnew,
#footer-newsletter input[type="text"] {
  width:100%; padding:12px 16px; border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.12);
  color:var(--pearl); font-size:13px;
}
#footer-newsletter .inputnew::placeholder,
#footer-newsletter input[type="text"]::placeholder { color:rgba(248,246,240,.65); }
#footer-newsletter .inputnew:focus,
#footer-newsletter input[type="text"]:focus {
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.35);
  outline:none; box-shadow:none;
}
#footer-newsletter .button,
#footer-newsletter .newsletters-footer {
  width:100% !important; margin-top:12px !important; background:var(--gold) !important;
  color:var(--teal) !important; border:0 !important; border-radius:999px !important;
  padding:12px !important; font-weight:700 !important; font-size:13px !important;
}
#footer-newsletter .checkbox { font-size:12px; color:var(--mint); margin-top:12px; }
#footer-newsletter .checkbox a { color:var(--gold); }

/* ============================================================
   NEWSLETTER POPUP  (tmdadvancenewsletter → #tmdnewsletterPopup)
   Formato "glass card" — famoors-newsletter-popup.html
   ============================================================ */
#tmdnewsletterPopup .modal-dialog { max-width:520px; width:calc(100% - 32px); margin-left:auto; margin-right:auto; }
#tmdnewsletterPopup .modal-content {
  position:relative; overflow:hidden;
  border:1px solid rgba(255,255,255,.6) !important;
  border-radius:32px !important;
  background:rgba(248,246,240,.82) !important;
  background-image:none !important;
  -webkit-backdrop-filter:blur(26px) saturate(160%);
  backdrop-filter:blur(26px) saturate(160%);
  box-shadow:0 30px 60px rgba(77,109,120,.28) !important;
  min-height:0 !important;
}
#tmdnewsletterPopup .modal-body { padding:52px 44px 36px !important; text-align:center; }

/* botão fechar — dentro do cartão, canto superior direito */
#tmdnewsletterPopup .close {
  position:absolute !important;
  top:16px !important; right:16px !important; left:auto !important; bottom:auto !important; margin:0 !important;
  width:34px; height:34px; line-height:1; padding:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; z-index:6; opacity:1; text-shadow:none;
  font-size:19px; font-weight:400;
  border:1px solid rgba(255,255,255,.75) !important;
  background:rgba(255,255,255,.55) !important;
  color:var(--teal) !important;
  box-shadow:none !important;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
#tmdnewsletterPopup .close:hover { background:rgba(212,175,119,.4) !important; color:var(--teal-dark) !important; }

/* cabeçalho */
#tmdnewsletterPopup .newsletters { padding:0 !important; margin:0 !important; position:static !important; }
#tmdnewsletterPopup .nl-envelope { width:86px; height:86px; margin:0 auto 22px; display:block; }
#tmdnewsletterPopup h3 {
  font-family:'Cormorant Garamond',serif;
  font-size:32px !important; font-weight:600 !important; line-height:1.1;
  color:var(--teal) !important; margin:0 0 12px !important;
}
#tmdnewsletterPopup .nl-desc,
#tmdnewsletterPopup .newsletters p {
  font-size:14px; line-height:1.7; color:var(--teal);
  opacity:.8; margin:0 auto 26px; max-width:400px;
}

/* form: pill input + botão gradiente */
#tmdnewsletterPopup #addpop .donot {
  position:static !important; height:auto !important;
  top:auto; bottom:auto; left:auto; right:auto;
}
#tmdnewsletterPopup .row.mb-3 { margin:0 0 14px !important; }
#tmdnewsletterPopup .row.mb-3 > .col-sm-12 {
  display:flex !important; gap:10px; flex-wrap:nowrap; padding:0; align-items:stretch;
}
#tmdnewsletterPopup input.form-control {
  flex:1 1 auto; min-width:0; width:auto; height:auto !important;
  padding:15px 20px !important; border-radius:999px !important;
  border:1px solid rgba(77,109,120,.22) !important;
  background:rgba(255,255,255,.62) !important;
  font-size:14px; color:var(--teal) !important; box-shadow:none !important;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
#tmdnewsletterPopup input.form-control::placeholder { color:var(--navy) !important; opacity:1; }
#tmdnewsletterPopup input.form-control:focus { outline:2px solid var(--gold) !important; border-color:transparent !important; }
#tmdnewsletterPopup #newsletters-subspopup {
  flex:0 0 auto; float:none !important;
  padding:15px 28px !important; border-radius:999px !important;
  border:0 !important; white-space:nowrap;
  background:linear-gradient(135deg,var(--gold),var(--teal)) !important;
  color:var(--pearl) !important; font-weight:700; font-size:15px;
}
#tmdnewsletterPopup #newsletters-subspopup:hover { opacity:.92; }

#tmdnewsletterPopup .nl-hint { display:block; font-size:12px; color:var(--navy); margin:2px 0 14px; }
#tmdnewsletterPopup .popup_success:empty { display:none; }
#tmdnewsletterPopup .name_errorpop:empty,
#tmdnewsletterPopup .email_errorpop:empty { display:none; }

/* concordar + não mostrar */
#tmdnewsletterPopup .agree-box {
  position:static !important;
  display:flex !important; flex-direction:column; align-items:center; gap:10px;
  margin-top:4px;
}
#tmdnewsletterPopup .checkbox { display:flex; align-items:center; justify-content:center; width:auto; }
#tmdnewsletterPopup .checkbox label {
  display:flex; align-items:center; gap:8px; margin:0;
  font-size:12px; font-weight:400; color:var(--teal); cursor:pointer;
}
#tmdnewsletterPopup .checkbox input { accent-color:var(--teal); width:14px; height:14px; margin:0; }
#tmdnewsletterPopup .checkbox a { color:var(--gold); }
#tmdnewsletterPopup #news-popupshow {
  background:transparent !important; border:0 !important; padding:0 !important;
  color:var(--navy) !important; font-size:12px; text-decoration:underline; white-space:normal;
}
#tmdnewsletterPopup .popup_success { margin-top:12px; }

/* responsivo */
#tmdnewsletterPopup .modal-dialog-centered { min-height:calc(100% - 1rem); }
#tmdnewsletterPopup .modal-body { max-height:calc(100vh - 40px); overflow-y:auto; }

@media (max-width:560px) {
  #tmdnewsletterPopup .modal-dialog { width:calc(100% - 24px); }
  #tmdnewsletterPopup .modal-body { padding:46px 22px 28px !important; }
  #tmdnewsletterPopup .nl-envelope { width:72px; height:72px; margin-bottom:16px; }
  #tmdnewsletterPopup h3 { font-size:26px !important; margin-bottom:10px !important; }
  #tmdnewsletterPopup .nl-desc { font-size:13px; margin-bottom:20px; }
  #tmdnewsletterPopup .row.mb-3 > .col-sm-12 { flex-wrap:wrap !important; gap:8px; }
  #tmdnewsletterPopup input.form-control { flex:1 1 100%; padding:13px 18px !important; }
  #tmdnewsletterPopup #newsletters-subspopup { flex:1 1 100%; padding:13px 24px !important; }
  #tmdnewsletterPopup .close { top:12px !important; right:12px !important; }
}

.footblink {
  max-width:1200px;
  margin:0 auto;
  padding:26px 0 22px;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
  border-top:1px solid rgba(248,246,240,.15);
}
.footblink > div,
.footblink .foot-pay {
  width:100%;
  max-width:100%;
  flex:0 0 100%;
  float:none;
  text-align:center;
}
.footblink img,
.footblink .foot-pay img {
  display:inline-block;
  float:none;
  margin:0 auto;
  max-height:46px;
  height:46px;
  width:auto;
  opacity:1;
}
.powerby {
  background:var(--teal) !important;
  border-top:1px solid rgba(248,246,240,.15);
}
.powerby .container { max-width:1200px; }
.powerby p { margin:0; padding:22px 0; text-align:center; font-size:12px; color:var(--mint); }
.powerby p a { color:var(--gold); }

/* scroll-to-top */
#scroll {
  position:fixed; right:22px; bottom:22px; width:44px; height:44px; border-radius:50%;
  background:var(--gold); color:var(--teal); display:flex; align-items:center; justify-content:center;
  z-index:60; box-shadow:0 8px 22px rgba(77,109,120,.25);
}
#scroll:hover { background:var(--gold-dark); color:var(--teal); }

/* ============================================================
   BREADCRUMB (global, discreto)
   ============================================================ */
.breadcrumb {
  display:flex; flex-wrap:wrap; gap:6px; padding:18px 0 0; margin:0;
  background:transparent; font-size:12px; color:var(--navy); list-style:none;
}
.breadcrumb .breadcrumb-item a { color:var(--navy); }
.breadcrumb .breadcrumb-item.active,
.breadcrumb .breadcrumb-item:last-child { color:var(--teal); font-weight:600; }
.breadcrumb .breadcrumb-item + .breadcrumb-item::before { content:"/"; color:var(--mint); padding-right:6px; }

/* ============================================================
   HOME — layout (réplica do export)
   ============================================================ */
#common-home,
#common-home.container-fluid { max-width:1440px; margin:0 auto; padding:0; }
#common-home > .row { margin:0; --bs-gutter-x:0; }
#common-home > .row > #content,
#common-home #content { padding:0; }

/* ============================================================
   HERO — carrossel de imagens com "peek" (desktop) / full-bg (mobile)
   ============================================================ */
.rless > .col-lg-12 { padding:0; }

.hero {
  position:relative;
  margin:28px 32px;
  border-radius:24px;
  background:linear-gradient(120deg,#EFE3D5 0%,#BED4D0 100%);
  padding:48px 40px 64px 48px;
  display:flex;
  align-items:center;
  gap:32px;
  overflow:hidden;      /* recortado nas bordas do painel */
}
.hero-slider .slick-list { overflow:visible; }   /* peek visível dentro do painel */

/* --- coluna de texto (esquerda, fixa) --- */
.hero-text {
  flex:0 0 40%;
  max-width:40%;
  position:relative;
  z-index:4;
  animation:heroIn .7s cubic-bezier(.22,.61,.36,1) both;
}
.hero-text > * { position:relative; z-index:1; }
/* degradé por trás do texto: faz DESAPARECER o(s) slide(s) à esquerda */
.hero-text::before {
  content:"";
  position:absolute;
  top:-140px; bottom:-140px;
  left:-48px;
  right:-300px;
  background:linear-gradient(90deg,
    #ECE3D5 0%,
    #ECE3D5 56%,
    rgba(236,227,213,.7) 78%,
    rgba(236,227,213,0) 100%);
  z-index:0;
  pointer-events:none;
}
.hero-slider .slick-slide { position:relative; z-index:1; }
.hero-slider .slick-center { z-index:2; }
@keyframes heroIn {
  from { opacity:0; transform:translateY(22px); }
  to   { opacity:1; transform:translateY(0); }
}
.hero-kicker {
  font-size:15px;
  letter-spacing:.3em;
  color:var(--gold);
  font-weight:600;
  margin-bottom:6px;
  text-transform:uppercase;
}
.hero-text h2,
.hero-title {
  font-family:'Cormorant Garamond',serif;
  font-size:44px;
  line-height:1.1;
  color:var(--teal);
  font-weight:600;
  margin:0 0 18px;
}
.hero-text .hero-sub {
  font-size:15px;
  color:var(--teal);
  opacity:.85;
  margin:0 0 26px;
  max-width:420px;
}

/* --- slider (direita) --- */
.hero-slider {
  flex:1 1 auto;
  min-width:0;
  position:relative;
}
.hero-slider .slick-list { overflow:visible; }
.hero-slider .slick-track { display:flex; align-items:center; }
.hero-slide {
  padding:0 9px;
  outline:none;
}
.hero-slide a,
.hero-slide img { display:block; width:100%; }
.hero-slide img {
  aspect-ratio:1 / 1;
  height:auto;
  max-height:380px;
  object-fit:cover;
  border-radius:18px;
  transition:opacity .45s ease, transform .45s ease, filter .45s ease;
}
/* slides não-centrais: espreitam esbatidos (degradé) */
.hero-slider .slick-slide:not(.slick-center) img {
  opacity:.32;
  transform:scale(.9);
  filter:saturate(.85);
}
.hero-slider .slick-center img {
  opacity:1;
  transform:scale(1);
}

/* setas */
.hero-slider .slick-prev,
.hero-slider .slick-next {
  width:44px; height:44px; z-index:5;
  background:rgba(255,255,255,.85);
  border-radius:50%;
  box-shadow:0 6px 18px rgba(77,109,120,.18);
}
.hero-slider .slick-prev { left:-14px; }
.hero-slider .slick-next { right:-6px; }
.hero-slider .slick-prev:hover,
.hero-slider .slick-next:hover { background:#fff; }
.hero-slider .slick-prev:before,
.hero-slider .slick-next:before {
  font-family:"Font Awesome 6 Free","FontAwesome",sans-serif;
  font-weight:900;
  color:var(--teal);
  font-size:15px;
  opacity:1;
}
.hero-slider .slick-prev:before { content:"\f053"; }
.hero-slider .slick-next:before { content:"\f054"; }

/* dots — desktop: canto inferior direito do painel / mobile: sobre a imagem */
.hero-dots {
  position:absolute;
  left:40%;
  right:40px;
  bottom:26px;
  width:auto;
  z-index:6;
}
.hero-dots .slick-dots {
  position:static !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:9px;
  margin:0;
  padding:0;
  width:auto;
  list-style:none;
}
.hero-dots .slick-dots li {
  position:static;
  width:10px; height:10px;
  margin:0;
  padding:0;
}
.hero-dots .slick-dots li button {
  width:10px; height:10px;
  padding:0; margin:0;
  border:0; background:transparent;
  font-size:0; line-height:0;
  cursor:pointer;
}
.hero-dots .slick-dots li button:before {
  content:"" !important;
  display:block;
  width:10px; height:10px;
  border-radius:50%;
  background:var(--teal);
  opacity:.28;
  position:static;
  transition:opacity .2s ease, background .2s ease, transform .2s ease;
}
.hero-dots .slick-dots li.slick-active button:before {
  opacity:1;
  background:var(--gold);
  transform:scale(1.15);
}

/* ---------- BANNERS ABAIXO DO HERO (infiofferbanner) — exato ao export ---------- */
.offerbanner {
  display:flex;
  gap:20px;
  max-width:1440px;
  margin:0 auto 44px;
  padding:0 32px;
  flex-wrap:wrap;
}
.offer-tile {
  flex:1;
  min-width:300px;
  position:relative;
  height:340px;
  border-radius:20px;
  overflow:hidden;
}
.offer-tile > a,
.offer-tile > picture,
.offer-tile > a > picture { display:block; width:100%; height:100%; }
.offer-tile source { display:none; }
.offer-tile img {
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
  max-height:none !important;
}
.offer-tile .offer-tag {
  position:absolute;
  left:24px;
  bottom:24px;
  padding:10px 20px;
  border-radius:999px;
  font-size:14px;
  font-weight:600;
  background:rgba(77,109,120,.88);
  color:#F8F6F0;
}
.offer-tile:nth-child(2) .offer-tag {
  background:rgba(212,175,119,.92);
  color:#4D6D78;
}

/* ---------- TOP PRODUCTS (tabs + .grid) — exato ao export ---------- */
.tab-products { max-width:1440px; margin:60px auto 0; padding:0 32px; }
.tab-products .section-title { text-align:center; margin-bottom:36px; }
.tab-products .section-kicker {
  font-size:12px; letter-spacing:.25em; color:var(--navy);
  font-weight:700; margin-bottom:6px; text-transform:uppercase;
}
.tab-products .section-title h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:32px; color:var(--teal); font-weight:600; margin:0;
}
.tab-products .tabs { display:flex; justify-content:center; gap:28px; margin-top:22px; }
.tab-products .tabs span {
  font-size:14px; font-weight:600; color:var(--navy); cursor:pointer; padding-bottom:6px;
}
.tab-products .tabs span.active {
  font-weight:700; color:var(--teal); border-bottom:2px solid var(--gold);
}

/* ============================================================
   TOP PRODUCTS por marca
   Desktop: linha estatica centrada (ate 5).  Mobile: carrossel 1-a-1 + dots.
   ============================================================ */
.brands-products .tabs { flex-wrap:wrap; }
.brands-products .tab-content { overflow:hidden; }
.brands-products .brand-pane { display:none; min-width:0; }
.brands-products .brand-pane.active { display:block; }

.brands-products .brand-carousel { margin:0; min-width:0; }
.brands-products .brand-slide { padding:0 12px; }
.brands-products .brand-slide .product-thumb {
  margin:0 auto; height:440px;
  display:flex; flex-direction:column;
}
/* imagem ocupa TODO o espaço livre até ao título; conteúdo colado em baixo */
.brands-products .brand-slide .product-thumb .image {
  flex:1 1 auto; min-height:0; display:flex; flex-direction:column; position:relative;
}
.brands-products .brand-slide .product-thumb .image > a {
  flex:1 1 auto; min-height:0; height:auto !important; display:block; position:relative;
}
.brands-products .brand-slide .product-thumb .image img {
  position:absolute !important; inset:0;
  width:100% !important; height:100% !important; aspect-ratio:auto !important; object-fit:cover !important;
}
.brands-products .brand-slide .product-thumb .content,
.brands-products .brand-slide .product-thumb .caption {
  flex:0 0 auto; justify-content:flex-end; gap:8px; min-height:0; padding:12px 18px 18px;
}
.brands-products .brand-slide .product-thumb .rating,
.brands-products .brand-slide .product-thumb .stars { display:none; }
.brands-products .brand-slide .product-thumb .description {
  display:flex; flex-direction:column; gap:10px; width:100%;
}
.brands-products .brand-slide .product-thumb .thumb-actions { margin:2px 0; }
.brands-products .brand-slide .product-thumb .description h4,
.brands-products .brand-slide .product-thumb .name {
  min-height:2.5em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; align-items:center;
}
.brands-products .brand-more { text-align:center; margin:34px 0 50px; }
.brands-products .brand-more .btn { min-width:180px; }

/* ============================================================
   CARROSSÉIS PARTILHADOS — Top Products / Relacionados / Blog
   Sempre carrossel; slidesToShow adapta ao ecrã (JS responsive).
   ============================================================ */
.brand-carousel.slick-initialized,
.pdp__related.slick-initialized,
.latest-news.slick-initialized { display:block; }

.brand-carousel .slick-list,
.pdp__related .slick-list,
.latest-news .slick-list { overflow:hidden; }
.brand-carousel .slick-track { display:flex; align-items:stretch; }
/* related/blog: sem stretch — os cartões seguem a altura do conteúdo
   (o nome tem min-height de 2 linhas, por isso ficam iguais na prática) */
.pdp__related .slick-track,
.latest-news .slick-track { display:flex; align-items:flex-start; }
.brand-carousel .slick-slide,
.pdp__related .slick-slide,
.latest-news .slick-slide { height:auto; }
.brand-carousel .slick-slide > div { height:100%; }
.pdp__related .slick-slide,
.latest-news .slick-slide { padding:0 12px; }
/* a imagem quadrada NÃO pode encolher (o .image tem overflow:hidden → min-height:auto vira 0) */
.pdp__related .product-thumb .image,
.latest-news .product-thumb .image { flex:0 0 auto; }
/* setas */
.brand-carousel .slick-prev, .brand-carousel .slick-next,
.pdp__related .slick-prev, .pdp__related .slick-next,
.latest-news .slick-prev, .latest-news .slick-next {
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.95);
  box-shadow:0 6px 20px rgba(77,109,120,.16); z-index:5;
}
.brand-carousel .slick-prev, .pdp__related .slick-prev, .latest-news .slick-prev { left:-6px; }
.brand-carousel .slick-next, .pdp__related .slick-next, .latest-news .slick-next { right:-6px; }
.brand-carousel .slick-prev:before, .brand-carousel .slick-next:before,
.pdp__related .slick-prev:before, .pdp__related .slick-next:before,
.latest-news .slick-prev:before, .latest-news .slick-next:before {
  font-family:"FontAwesome","Font Awesome 6 Free"; font-weight:900;
  color:var(--teal); font-size:15px; opacity:1;
}
.brand-carousel .slick-prev:before, .pdp__related .slick-prev:before, .latest-news .slick-prev:before { content:"\f053"; }
.brand-carousel .slick-next:before, .pdp__related .slick-next:before, .latest-news .slick-next:before { content:"\f054"; }
.brand-carousel .slick-disabled, .pdp__related .slick-disabled, .latest-news .slick-disabled { opacity:.3; cursor:default; }

/* dots */
.brand-carousel .slick-dots,
.pdp__related .slick-dots,
.latest-news .slick-dots {
  position:static !important; display:flex !important;
  justify-content:center; gap:9px; margin:22px 0 0; padding:0;
}
.brand-carousel .slick-dots li,
.pdp__related .slick-dots li,
.latest-news .slick-dots li { width:auto; height:auto; margin:0; }
.brand-carousel .slick-dots li button,
.pdp__related .slick-dots li button,
.latest-news .slick-dots li button { width:10px; height:10px; padding:0; }
.brand-carousel .slick-dots li button:before,
.pdp__related .slick-dots li button:before,
.latest-news .slick-dots li button:before {
  content:"" !important; display:block; width:10px; height:10px;
  border-radius:50%; background:var(--teal); opacity:.28;
}
.brand-carousel .slick-dots li.slick-active button:before,
.pdp__related .slick-dots li.slick-active button:before,
.latest-news .slick-dots li.slick-active button:before {
  opacity:1; background:var(--gold); transform:scale(1.15);
}

/* 1 slide + peek (ecrãs pequenos, centerMode ligado) */
@media (max-width:560px) {
  .brand-carousel .slick-slide:not(.slick-center) .product-thumb,
  .pdp__related .slick-slide:not(.slick-center) .product-thumb,
  .latest-news .slick-slide:not(.slick-center) .product-thumb {
    opacity:.4; transform:scale(.92); transition:opacity .35s, transform .35s;
  }
  .brand-carousel .slick-center .product-thumb,
  .pdp__related .slick-center .product-thumb,
  .latest-news .slick-center .product-thumb { opacity:1; transform:none; }
  .brand-carousel .slick-prev, .brand-carousel .slick-next,
  .pdp__related .slick-prev, .pdp__related .slick-next,
  .latest-news .slick-prev, .latest-news .slick-next { display:none !important; }
}

/* .grid — igual ao export */
.tab-products .grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:24px;
  margin:0 0 50px;
}
.tab-products .grid > .product-thumb,
.tab-products .grid > div {
  margin:0;
}

/* .card = .product-thumb com as medidas do export */
.tab-products .product-thumb {
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
  position:relative;
}
.tab-products .product-thumb .image { position:relative; }
.tab-products .product-thumb .image > a { display:block; height:220px; }
.tab-products .product-thumb .image img {
  width:100% !important;
  height:220px !important;
  object-fit:cover !important;
  display:block !important;
}
.tab-products .product-thumb .content,
.tab-products .product-thumb .caption {
  padding:16px 18px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:6px;
}
.tab-products .product-thumb .description {
  display:flex; flex-direction:column; align-items:center; gap:6px; width:100%;
}
.tab-products .product-thumb .description > *,
.tab-products .product-thumb .content > * { margin:0; }
.tab-products .product-thumb .description h4,
.tab-products .product-thumb .name {
  font-size:14px; font-weight:600; color:var(--teal); margin:0; line-height:1.25;
}
.tab-products .product-thumb .description h4 a { color:var(--teal); }
.tab-products .product-thumb .price {
  font-size:15px; font-weight:700; color:var(--teal); line-height:1.2; margin:0;
}
.tab-products .product-thumb .price .price-new { font-size:15px; font-weight:700; color:var(--teal); }
.tab-products .product-thumb .price .price-old { font-size:13px; }
.tab-products .product-thumb .price-tax,
.tab-products .product-thumb .description .price-tax,
.tab-products .product-thumb .price small { display:none; }
.tab-products .product-thumb .rating,
.tab-products .product-thumb .stars {
  color:var(--gold); font-size:13px; margin:0 0 6px; letter-spacing:2px;
  line-height:1; height:15px;
}
.tab-products .product-thumb .rating .fa-stack {
  width:15px; height:15px; line-height:15px; font-size:13px; vertical-align:top;
}
.tab-products .product-thumb .rating .fa-stack .fa-stack-1x { line-height:15px; font-size:13px; }
.tab-products .product-thumb .price { font-size:15px; font-weight:700; color:var(--teal); }
.tab-products .product-thumb .d-list-view,
.tab-products .product-thumb .description p { display:none; }
.tab-products .product-thumb .button {
  position:absolute; top:12px; right:12px; left:auto;
  flex-direction:column; gap:8px; padding:0; opacity:0;
  transition:opacity .18s ease;
}
.tab-products .product-thumb:hover .button { opacity:1; }
.tab-products .product-thumb .button button {
  width:34px; height:34px; border-radius:50%; border:0;
  background:#fff; color:var(--teal);
  box-shadow:0 3px 10px rgba(77,109,120,.18);
  display:flex; align-items:center; justify-content:center;
}
.tab-products .product-thumb .button button svg { width:15px; height:15px; fill:currentColor; }
.tab-products .product-thumb .button button:hover { background:var(--teal); color:#fff; }
.badge {
  position:absolute; top:12px; left:12px;
  background:var(--gold); color:var(--teal);
  font-size:11px; font-weight:700; padding:5px 12px; border-radius:999px; z-index:1;
}

/* ---------- MARCAS (inficategory) ---------- */
.bg-white.cmn-space { background:transparent !important; margin-top:64px; }
#common-home .caregory-list ~ *,
.caregory-list { max-width:1200px; margin:8px auto 0; }

/* Poucas marcas (<=5): linha centrada, sem carrossel */
.caregory-list.caregory-static {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:24px 0;
}
.caregory-list.caregory-static .infi-item-layout {
  flex:0 0 auto;
  width:200px;
  max-width:44%;
}

/* Com carrossel (>5 marcas) — centra os slides do slick */
.caregory-list.slick-initialized .slick-track { display:flex; align-items:flex-start; }
.caregory-list.slick-initialized .slick-slide { display:flex; justify-content:center; height:auto; }

.infi-item-layout { text-align:center; padding:0 16px; }
.infi-item-thumb { margin-bottom:0; }
.infi-item-img {
  width:150px; height:150px; margin:0 auto 14px;
  border-radius:50%; border:2px solid var(--gold); padding:6px;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  background:#fff;
}
.infi-item-img a { display:block; width:100%; height:100%; }
.infi-item-img img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.infi-item-title { margin:0; font-size:14px; }
.infi-item-title a { font-family:'Archivo',sans-serif; font-weight:600; color:var(--teal); }
.infi-item-title a:hover { color:var(--gold); }
.catepro,
.giant-item-subtitle { display:none; }
.caregory-list .slick-prev,
.caregory-list .slick-next { width:38px; height:38px; }
.caregory-list .slick-prev:before,
.caregory-list .slick-next:before { color:var(--teal); opacity:.6; font-size:24px; }

/* ---------- BLOG (card único vertical) ---------- */
.blog-home,
.blog-home.container { max-width:1440px; width:100%; margin:56px auto 0; padding:0 32px; }
.latest-news { margin:26px 0 0; min-width:0; padding:0; }
.latest-news .product-thumb { display:flex; flex-direction:column; border-radius:20px; box-shadow:0 10px 30px rgba(77,109,120,.1); overflow:hidden; background:#fff; }
/* a imagem ocupa a largura toda do cartão: sem padding/margem herdados do legacy.css */
.latest-news .product-thumb .image { margin:0; padding:0; overflow:hidden; line-height:0; font-size:0; }
.latest-news .product-thumb .image > a { display:block; margin:0; padding:0; }
.latest-news .product-thumb .image img { width:100%; max-width:none; margin:0; padding:0; aspect-ratio:4/3; height:auto; object-fit:cover; display:block; border-radius:20px 20px 0 0; }
.latest-news .product-thumb .content { padding:18px 22px 22px; text-align:left; display:flex; flex-direction:column; gap:10px; }
.latest-news .product-thumb .description { display:flex; flex-direction:column; gap:10px; flex:1 1 auto; }
.latest-news .product-thumb .description h4 { font-size:17px; color:var(--teal); font-weight:700; margin:0; text-transform:none; letter-spacing:0; }
.latest-news .product-thumb .description p {
  color:var(--navy); font-size:14px; line-height:1.6; margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.latest-news .product-thumb .description .btn { align-self:flex-start; margin-top:4px; }

/* ---------- TESTEMUNHOS — .testi-grid, largura = banner ---------- */
.testimonials {
  background:transparent;
  max-width:1440px;
  margin:60px auto 0;
  padding:0 32px;
}
.testimonials .section-title { text-align:center; margin-bottom:36px; }
.testimonials .section-kicker {
  font-size:12px; letter-spacing:.25em; color:var(--navy);
  font-weight:700; text-transform:uppercase; margin-bottom:6px;
}
.testimonials .section-title h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:32px; color:var(--teal); font-weight:600; margin:0;
}
.testi-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin:0 0 60px;
}
.testi-card {
  background:#fff;
  border:0;
  border-radius:18px;
  padding:28px 26px;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
  display:flex;
  flex-direction:column;
  gap:16px;
}
.testi-card::before { content:none; }
.testi-card .stars { color:var(--gold); font-size:13px; letter-spacing:2px; line-height:1; }
.testi-card .stars i { font-size:13px; }
.testi-card p {
  font-size:14px; line-height:1.7; color:var(--teal); margin:0; flex:1;
}
.testi-card .avatar { display:flex; align-items:center; gap:12px; }
.testi-card .avatar .ph {
  width:44px; height:44px; flex:0 0 44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--teal); color:var(--pearl); font-weight:700; font-size:16px;
  text-transform:uppercase;
}
.testi-card .avatar .who .n { font-size:13px; font-weight:700; color:var(--teal); }
.testi-card .avatar .who .r { font-size:12px; color:var(--navy); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:991px) {
  header .row { min-height:84px; padding-top:12px; padding-bottom:12px; }
  header .row.align-items-center > .header-logo-col { padding-right:0; }
  #logo a { display:inline-flex; align-items:center; justify-content:center; line-height:0; }
  #logo img { height:60px; max-height:60px; max-width:112px; margin-left:0; }
  @media (max-width:575px) {
    #logo img { width:80px; height:auto; max-height:60px; }
  }
  #top { font-size:10.5px; }
  #top .welcom-text p { justify-content:center; }
  .hero { padding:44px 0 44px 32px; gap:24px; }
  .hero-text { flex-basis:44%; max-width:44%; }
  .hero-text h2,.hero-title { font-size:32px; }
  .hero-slide img { max-height:320px; }
  .offerbanner { margin:0 16px 32px; }
  .tab-products,.testimonials,.blog-home { padding:0 16px; }
  .testi-grid { grid-template-columns:1fr; }
  .tab-products .grid { grid-template-columns:repeat(2,1fr); }

  .brands-products .tabs {
    flex-wrap:nowrap;
    overflow-x:auto;
    justify-content:flex-start;
    gap:20px;
    padding-bottom:4px;
    -webkit-overflow-scrolling:touch;
  }
  .brands-products .tabs span { white-space:nowrap; flex:0 0 auto; }
}

/* ---------- HERO no MOBILE: imagem full-bg, texto em baixo, dots ---------- */
@media (max-width:767px) {
  .section-heading h2,.section-title h2 { font-size:26px; }
  footer { margin-top:44px; }

  /* ---------- TESTEMUNHOS no MOBILE: carrossel com touch + dots ---------- */
  .testi-grid.slick-initialized {
    display:block;
    grid-template-columns:none;
    margin-bottom:36px;
  }
  .testi-grid.slick-initialized .slick-list { overflow:hidden; }
  .testi-grid.slick-initialized .slick-slide { padding:0 8px; }
  .testi-grid.slick-initialized .testi-card {
    display:flex;                 /* o slick força .slick-slide{display:block} — repor flex */
    flex-direction:column;
    padding:34px 28px;
    gap:20px;
    /* a altura e igualada por JS (equalize) — mesma para todos */
    transition:opacity .35s, transform .35s;
  }
  .testi-grid.slick-initialized .testi-card p { flex:1 1 auto; line-height:1.9; margin:0; }
  .testi-grid.slick-initialized .testi-card .avatar { margin-top:auto; flex:0 0 auto; }
  .testi-grid.slick-initialized .slick-slide:not(.slick-center) .testi-card {
    opacity:.45; transform:scale(.94);
  }
  .testi-grid.slick-initialized .slick-center .testi-card { opacity:1; transform:none; }
  .testi-grid.slick-initialized .slick-prev,
  .testi-grid.slick-initialized .slick-next { display:none !important; }
  .testi-grid.slick-initialized .slick-dots {
    position:static !important;
    display:flex !important;
    justify-content:center;
    gap:9px;
    margin:22px 0 0;
    padding:0;
  }
  .testi-grid.slick-initialized .slick-dots li { width:auto; height:auto; margin:0; }
  .testi-grid.slick-initialized .slick-dots li button { width:10px; height:10px; padding:0; }
  .testi-grid.slick-initialized .slick-dots li button:before {
    content:"" !important;
    display:block;
    width:10px; height:10px;
    border-radius:50%;
    background:var(--teal);
    opacity:.28;
  }
  .testi-grid.slick-initialized .slick-dots li.slick-active button:before {
    opacity:1; background:var(--gold); transform:scale(1.15);
  }

  .hero {
    display:block;
    padding:0;
    margin:20px 16px;
    min-height:470px;
    border-radius:20px;
    overflow:hidden;
    background:var(--sand);
  }
  .hero-slider { position:absolute; inset:0; }
  .hero-slider .slick-list,
  .hero-slider .slick-track,
  .hero-slide { height:100%; }
  .hero-slider .slick-list { overflow:hidden; }
  .hero-slide { padding:0; }
  .hero-slide a { height:100%; }
  .hero-slide img {
    aspect-ratio:auto;
    width:100%; height:100%;
    max-height:none;
    min-height:470px;
    border-radius:0;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }

  .hero-text {
    position:absolute;
    left:0; right:0; bottom:0;
    flex:none; max-width:100%;
    z-index:2;
    padding:90px 22px 52px;
    background:linear-gradient(to top,
      rgba(46,63,69,.92) 0%,
      rgba(46,63,69,.72) 30%,
      rgba(46,63,69,.28) 62%,
      rgba(46,63,69,0) 100%);
  }
  .hero-text::before { content:none; }
  .hero-text .hero-kicker { color:var(--gold); }
  .hero-text h2,
  .hero-text .hero-title { color:#fff; font-size:30px; margin:0 0 12px; }
  .hero-text .hero-sub { color:rgba(255,255,255,.9); margin:0 0 18px; }

  .hero-dots {
    display:block;
    position:absolute;
    left:0; right:0; bottom:16px;
    z-index:4;
  }
  .hero-dots .slick-dots li button:before { background:#fff; opacity:.55; }
  .hero-dots .slick-dots li.slick-active button:before { opacity:1; background:var(--gold); }

  .main-footer { padding-top:42px; }
  /* bloco CONTACTOS sempre aberto, igual às outras colunas (sem acordeão no mobile) */
  footer h5 .toggle,
  footer h5 .btn { display:none !important; }
  .footer-collapse { display:block !important; }
  footer h5 {
    display:block; cursor:default;
    border-bottom:0 !important; padding:0 !important; margin:0 0 16px !important;
  }
}

/* ============================================================
   PÁGINA DE CATEGORIA  (product/category.twig → .catpage)
   Estrutura e valores do export (famoors-categorias.html)
   ============================================================ */
#product-category.catpage { max-width:none; padding:0; margin:0; }

/* faixa com gradiente + breadcrumb + título */
.catpage__hero {
  background:linear-gradient(120deg,#EFE3D5 0%,#BED4D0 100%);
  padding:40px 32px;
  margin:0 0 30px;
}
.catpage__hero-inner { max-width:1200px; margin:0 auto; }
.catpage .crumb { font-size:12px; color:var(--navy); margin-bottom:16px; }
.catpage .crumb a { color:var(--navy); }
.catpage .crumb a:hover { color:var(--gold); }
.catpage .crumb .cur { color:var(--teal); font-weight:600; }
.catpage__hero h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:38px; color:var(--teal); font-weight:600; margin:0; line-height:1.1;
}

/* corpo: sidebar + grelha */
.catpage__body {
  max-width:1200px; margin:0 auto;
  display:flex; gap:36px;
  padding:0 32px 60px;
  align-items:flex-start; flex-wrap:wrap;
}
.catpage__side { width:240px; flex:0 0 240px; min-width:200px; }
.catpage__main { flex:1; min-width:0; }

/* elementos só-mobile (drawer de filtros) */
.catpage__filter-open,
.catpage__side-head,
.catpage__side-overlay { display:none; }

/* painéis (partilhado: .panel, .cat-nav, .category-filter) */
.catpage .panel,
.catpage__side .cat-nav,
.catpage__side .category-filter {
  background:#fff;
  border-radius:18px;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
  padding:26px;
  margin-bottom:20px;
  border:0;
}
.catpage .panel-title,
.catpage__side .cat-nav__head,
.catpage__side .category-filter .card-header {
  font-size:15px; font-weight:700; color:var(--teal);
  margin:0 0 18px; padding:0; background:none; border:0;
  display:block;
}
.catpage__side .category-filter .card-header .toggle { display:none; }
.catpage__side .cat-nav,
.catpage__side .cat-nav.mb-3 { margin-bottom:20px; }

/* o OpenCart embrulha o column_left num <aside id="column-left" class="col-3 d-none d-md-block"> */
.catpage__side #column-left {
  width:100% !important;
  max-width:100%;
  flex:none !important;
  display:block !important;
  padding:0;
  margin:0;
}
/* anular a decoração legada do módulo cat-nav */
.catpage__side .cat-nav {
  border:0 !important;
  overflow:visible;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
}
.catpage__side .cat-nav__head {
  padding:0; border-bottom:0;
  text-transform:none; letter-spacing:0;
  color:var(--teal); font-size:15px;
}

/* lista de categorias (módulo cat-nav + painel "Refinar") */
.catpage__catlist { display:flex; flex-direction:column; gap:10px; }
.catpage__catlist a,
.catpage__side .cat-nav__list a,
.catpage__side .cat-nav__item {
  font-size:13px; color:var(--navy); font-weight:400;
}
.catpage__catlist a:hover,
.catpage__side .cat-nav__item:hover { color:var(--gold); background:none; padding-left:0; }
.catpage__side .cat-nav__list { display:flex; flex-direction:column; gap:10px; list-style:none; margin:0; padding:0; }
.catpage__side .cat-nav__item {
  display:block; padding:6px 0; border-radius:0;
}
.catpage__side .cat-nav__item.active {
  color:var(--gold); font-weight:700;
  background:none !important; box-shadow:none !important; padding-left:0;
}

/* módulo de filtros — Cor (swatches) + outros grupos (checkboxes) */
.catpage__side .category-filter .filter-block + .filter-block { margin-top:20px; }
.catpage__side .category-filter .filter-block__title {
  font-size:13px; font-weight:700; color:var(--teal); margin:0 0 12px;
}
.catpage__side .filter-swatches { display:flex; gap:10px; flex-wrap:wrap; }
.catpage__side .swatch {
  width:26px; height:26px; border-radius:50%;
  box-shadow:0 0 0 1px var(--mint);
  cursor:pointer; position:relative; display:block;
  transition:box-shadow .15s ease, transform .15s ease;
}
.catpage__side .swatch input { position:absolute; opacity:0; width:0; height:0; }
.catpage__side .swatch__label {
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
}
.catpage__side .swatch--multi {
  background:conic-gradient(#C25B54,#D4AF77,#6B8E5A,#3E6DA3,#D98BA8,#C25B54);
}
.catpage__side .swatch:hover { transform:scale(1.08); }
.catpage__side .swatch.is-active {
  box-shadow:0 0 0 2px var(--gold), 0 0 0 4px #fff inset;
}
.catpage__side .filter-checks { display:flex; flex-direction:column; gap:8px; }
.catpage__side .filter-check { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--navy); cursor:pointer; }
.catpage__side .filter-check input { accent-color:var(--teal); }
.catpage__side .category-filter #button-filter {
  background:var(--teal); border-color:var(--teal); color:var(--pearl);
  border-radius:999px; font-size:12px; font-weight:700; padding:10px 18px;
  margin-top:18px; width:100%;
}

/* painel Preço — slider de intervalo */
.catprice__track {
  position:relative; height:4px; border-radius:4px; background:var(--mint);
  margin:10px 0 14px;
}
.catprice__fill {
  position:absolute; top:0; bottom:0; left:0; right:0;
  background:var(--gold); border-radius:4px;
}
.catprice__range {
  position:absolute; left:0; right:0; top:50%; transform:translateY(-50%);
  width:100%; margin:0; height:22px;
  -webkit-appearance:none; appearance:none; background:none; pointer-events:none;
}
.catprice__range::-webkit-slider-thumb {
  -webkit-appearance:none; appearance:none;
  width:18px; height:18px; border-radius:50%;
  background:#fff; border:2px solid var(--gold);
  box-shadow:0 2px 8px rgba(77,109,120,.25);
  cursor:pointer; pointer-events:auto;
}
.catprice__range::-moz-range-thumb {
  width:16px; height:16px; border-radius:50%;
  background:#fff; border:2px solid var(--gold);
  box-shadow:0 2px 8px rgba(77,109,120,.25);
  cursor:pointer; pointer-events:auto;
}
.catprice__range::-moz-range-track { background:none; }
.catprice__values { display:flex; justify-content:space-between; font-size:12px; color:var(--navy); margin-bottom:14px; }
.catprice .catprice__apply { width:100%; }
.catprice__clear {
  display:block; text-align:center; margin-top:10px;
  font-size:12px; color:var(--navy);
}
.catprice__clear:hover { color:var(--gold); }

/* barra de topo: contagem + ordenação */
.catpage__toolbar {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:20px; flex-wrap:wrap; gap:12px;
}
.catpage__count { font-size:13px; color:var(--navy); }
.catpage__sort { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--teal); }
.catpage .fld {
  padding:12px 16px; border-radius:12px; border:1px solid var(--mint);
  font-size:14px; color:var(--teal); width:100%; background:#fff;
}
.catpage .fld:focus { outline:2px solid var(--gold); border-color:var(--gold); }
.catpage__sort .fld { border-radius:999px; width:auto; padding:10px 34px 10px 16px; }

/* grelha de produtos — cartões iguais aos da home */
.catpage__grid {
  display:grid;
  /* auto-fill (não auto-fit) — mantém as colunas vazias para 1 produto não esticar */
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:24px;
  margin:0;
  justify-content:start;
}
.catpage__grid .product-thumb { max-width:340px; }
.catpage__grid .product-thumb {
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 6px 24px rgba(77,109,120,.08); position:relative;
  display:flex; flex-direction:column; height:420px;
}
/* imagem ocupa TODO o espaço livre até ao título (igual ao Top Products) */
.catpage__grid .product-thumb .image {
  flex:1 1 auto; min-height:0; display:flex; flex-direction:column; position:relative;
}
.catpage__grid .product-thumb .image > a {
  flex:1 1 auto; min-height:0; height:auto !important; display:block; position:relative;
}
.catpage__grid .product-thumb .image img {
  position:absolute !important; inset:0;
  width:100% !important; height:100% !important; aspect-ratio:auto !important;
  object-fit:cover !important; display:block !important;
}
.catpage__grid .product-thumb .content,
.catpage__grid .product-thumb .caption {
  flex:0 0 auto; padding:14px 18px 18px; text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:8px;
}
.catpage__grid .product-thumb .description { display:flex; flex-direction:column; align-items:center; gap:10px; width:100%; }
.catpage__grid .product-thumb .description > *,
.catpage__grid .product-thumb .content > * { margin:0; }
.catpage__grid .product-thumb .description h4,
.catpage__grid .product-thumb .name {
  font-size:14px; font-weight:600; color:var(--teal); line-height:1.3;
  min-height:2.6em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.catpage__grid .product-thumb .description h4 a { color:var(--teal); }
/* estrelas removidas nos cartões de categoria (igual ao Top Products) */
.catpage__grid .product-thumb .rating,
.catpage__grid .product-thumb .stars { display:none; }
.catpage__grid .product-thumb .price { font-size:15px; font-weight:700; color:var(--teal); }
.catpage__grid .product-thumb .price .price-new { font-size:15px; font-weight:700; color:var(--teal); }
.catpage__grid .product-thumb .price .price-old { font-size:13px; }
.catpage__grid .product-thumb .price-tax,
.catpage__grid .product-thumb .price small,
.catpage__grid .product-thumb .d-list-view,
.catpage__grid .product-thumb .description p { display:none; }
.catpage__grid .product-thumb .you-save,
.catpage__grid .product-thumb .discount-onprice,
.catpage__grid .product-thumb .badge {
  position:absolute; top:12px; left:12px; z-index:1;
  background:var(--gold); color:var(--teal);
  font-size:11px; font-weight:700; padding:5px 12px; border-radius:999px;
}
.catpage__grid .product-thumb .discount-onprice { top:12px; left:auto; right:12px; background:var(--teal); color:var(--pearl); }
/* ações (carrinho / favoritos / comparar) — entre o nome e o preço (igual ao Top Products) */
.catpage__grid .product-thumb .thumb-actions {
  position:static; flex-direction:row; justify-content:center; gap:8px; margin:2px 0;
}

/* paginação — pílulas circulares (export) */
.catpage__pagination { margin-top:40px; }
.catpage__pagination .pagination {
  display:flex; justify-content:center; gap:8px; flex-wrap:wrap;
  list-style:none; padding:0; margin:0;
}
.catpage__pagination .pagination li { margin:0; }
.catpage__pagination .pagination .page-link,
.catpage__pagination .pagination li > span {
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:700;
  background:var(--sand); color:var(--teal);
  border:0; padding:0;
}
.catpage__pagination .pagination .page-item.active .page-link,
.catpage__pagination .pagination li.active > span {
  background:var(--teal); color:var(--pearl);
}
.catpage__pagination .pagination .page-link:hover { background:var(--mint); color:var(--teal); }
.catpage__pagination .pagination .page-item.disabled .page-link { opacity:.4; }

.catpage__empty { font-size:15px; color:var(--navy); margin:20px 0; }

@media (max-width:900px) {
  .catpage__body { gap:20px; padding:0 16px 48px; }
  .catpage__hero { padding:32px 16px; }
  .catpage__hero h1 { font-size:30px; }
  .catpage__main { flex:1 1 100%; }

  /* botão que abre o drawer */
  .catpage__filter-open {
    display:inline-flex; align-items:center; gap:8px;
    align-self:flex-start;
    background:#fff; color:var(--teal);
    border:1px solid var(--mint); border-radius:999px;
    padding:11px 22px; font-size:13px; font-weight:700;
    box-shadow:0 6px 20px rgba(77,109,120,.08);
    cursor:pointer;
  }
  .catpage__filter-open:hover { border-color:var(--gold); color:var(--gold); }
  .catpage__filter-open svg { flex:0 0 auto; }

  /* overlay */
  .catpage__side-overlay {
    display:block;
    position:fixed; inset:0;
    background:rgba(46,63,69,.45);
    opacity:0; transition:opacity .28s ease;
    z-index:1200;
  }
  .catpage__side-overlay.is-open { opacity:1; }

  /* painel lateral vira gaveta */
  .catpage__side {
    display:block;
    position:fixed; top:0; left:0; bottom:0;
    width:86%; max-width:340px;
    margin:0; padding:0 20px 30px;
    background:var(--pearl);
    z-index:1210;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
    transform:translateX(-100%);
    transition:transform .28s ease;
    box-shadow:0 0 44px rgba(46,63,69,.28);
  }
  .catpage__side.is-open { transform:translateX(0); }

  .catpage__side-head {
    display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; z-index:1;
    background:var(--pearl);
    padding:18px 0 14px; margin-bottom:4px;
    border-bottom:1px solid var(--line);
    font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--teal); font-weight:600;
  }
  .catpage__side-close {
    background:none; border:0; cursor:pointer;
    font-size:26px; line-height:1; color:var(--navy);
    width:34px; height:34px;
  }
  .catpage__side-close:hover { color:var(--gold); }

  /* dentro do drawer: painéis empilhados, sem cartão */
  .catpage__side .panel,
  .catpage__side .cat-nav,
  .catpage__side .category-filter {
    background:transparent; box-shadow:none; border-radius:0;
    padding:18px 0; margin:0;
    border-bottom:1px solid var(--line);
  }
  .catpage__side .panel:last-child,
  .catpage__side .catprice:last-child { border-bottom:0; }
  .catpage__side #column-left { width:100% !important; }
  .catprice__apply, .catpage__side .category-filter #button-filter { margin-top:14px; }
}
@media (max-width:560px) {
  /* 1 produto por linha — cartão mais alto para a imagem ficar quadrada */
  .catpage__grid { grid-template-columns:1fr; gap:18px; }
  .catpage__grid .product-thumb { height:auto; max-width:none; }
  .catpage__grid .product-thumb .image { aspect-ratio:1/1; flex:0 0 auto; }
  .catpage__grid .product-thumb .content,
  .catpage__grid .product-thumb .caption { padding:14px 16px 18px; }
  .catpage__toolbar { flex-direction:column; align-items:flex-start; }
}

/* ============================================================
   PÁGINA DE PESQUISA  (product/search.twig → .searchpage)
   ============================================================ */
#product-search.searchpage { max-width:none; padding:0; margin:0; }

.searchpage__hero {
  margin:0; padding:36px 32px 76px;
  background:linear-gradient(120deg,#EFE3D5 0%,#BED4D0 100%);
}
.searchpage__hero-inner { max-width:1200px; margin:0 auto; }
.searchpage .crumb { margin:0 0 18px; color:var(--navy); font-size:12px; }
.searchpage .crumb a { color:var(--navy); }
.searchpage .crumb a:hover { color:var(--gold); }
.searchpage .crumb .cur { color:var(--teal); font-weight:700; }
.searchpage__hero .section-kicker { display:block; margin-bottom:8px; }
.searchpage__hero h1 {
  max-width:800px; margin:0; color:var(--teal);
  font-family:'Cormorant Garamond',serif; font-size:42px; line-height:1.08; font-weight:600;
}

.searchpage__main { max-width:1200px; margin:0 auto; padding:0 32px 70px; }
.searchpage__panel {
  position:relative; z-index:2; margin:-44px 0 52px; padding:27px 30px 25px;
  background:#fff; border:1px solid rgba(190,212,208,.62); border-radius:22px;
  box-shadow:0 14px 40px rgba(77,109,120,.13);
}
.searchpage__panel-head,
.searchpage__results-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.searchpage__panel-head { margin-bottom:20px; }
.searchpage__panel-head > i {
  width:42px; height:42px; flex:0 0 42px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); background:var(--sand); font-size:15px;
}
.searchpage__eyebrow {
  display:block; margin:0 0 5px; color:var(--gold);
  font-size:10px; line-height:1.2; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
}
.searchpage__panel h2,
.searchpage__results-head h2 {
  margin:0; color:var(--teal); font-family:'Cormorant Garamond',serif;
  font-size:27px; line-height:1.15; font-weight:600;
}
.searchpage__form {
  display:grid; grid-template-columns:minmax(240px,1.35fr) minmax(220px,1fr) auto;
  gap:15px 16px; align-items:end;
}
.searchpage__field { min-width:0; }
.searchpage__field > label {
  display:block; margin:0 0 7px; color:var(--teal);
  font-size:11px; font-weight:800; letter-spacing:.045em; text-transform:uppercase;
}
.searchpage .fld {
  width:100%; height:48px; padding:11px 42px 11px 15px;
  color:var(--teal); background:#fff; border:1px solid var(--mint); border-radius:13px;
  font-size:13px; transition:border-color .15s ease, box-shadow .15s ease;
}
.searchpage .fld:focus {
  outline:0; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,119,.14);
}
.searchpage__input-wrap { position:relative; }
.searchpage__input-wrap > i {
  position:absolute; top:50%; left:16px; z-index:1; transform:translateY(-50%);
  color:var(--navy); font-size:13px; pointer-events:none;
}
.searchpage__input-wrap .fld { padding-left:42px; padding-right:15px; }
.searchpage__submit {
  min-width:150px; height:48px; padding:0 22px; border:0; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center; gap:13px;
  color:var(--pearl); background:var(--teal); font-size:13px; font-weight:800;
  transition:background .16s ease, transform .16s ease;
}
.searchpage__submit:hover { color:#fff; background:var(--gold); transform:translateY(-1px); }
.searchpage__submit i { font-size:11px; }
.searchpage__checks {
  grid-column:1 / 3; display:flex; align-items:center; gap:24px; flex-wrap:wrap;
  padding-top:1px;
}
.searchpage__check {
  display:inline-flex; align-items:center; gap:9px; color:var(--navy);
  font-size:12px; cursor:pointer; transition:opacity .15s ease;
}
.searchpage__check input { width:15px; height:15px; margin:0; accent-color:var(--teal); }
.searchpage__check.is-disabled { opacity:.4; cursor:not-allowed; }

.searchpage__results-head { align-items:flex-end; margin-bottom:18px; }
.searchpage__result-count {
  max-width:380px; color:var(--navy); font-size:12px; line-height:1.4; text-align:right;
}
.searchpage__toolbar {
  display:flex; align-items:center; gap:14px; margin:0 0 24px; padding:13px 15px;
  background:#fff; border:1px solid var(--line); border-radius:16px;
  box-shadow:0 4px 18px rgba(77,109,120,.055);
}
.searchpage__views { display:flex; gap:6px; flex:0 0 auto; }
.searchpage__view {
  width:38px; height:38px; padding:0; border:1px solid var(--mint); border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--teal); background:#fff; transition:.15s ease;
}
.searchpage__view svg { fill:currentColor; }
.searchpage__view:hover,
.searchpage__view.active { color:var(--pearl); background:var(--teal); border-color:var(--teal); }
.searchpage__compare {
  display:inline-flex; align-items:center; gap:8px; padding:10px 15px;
  color:var(--teal); background:var(--sand); border-radius:999px;
  font-size:11px; font-weight:800; white-space:nowrap;
}
.searchpage__compare:hover { color:#fff; background:var(--gold); }
.searchpage__controls {
  margin-left:auto; display:flex; align-items:center; justify-content:flex-end; gap:9px;
}
.searchpage__controls label { color:var(--navy); font-size:11px; white-space:nowrap; }
.searchpage__controls .fld { width:190px; height:40px; padding:8px 34px 8px 13px; border-radius:999px; }
.searchpage__controls .searchpage__limit { width:76px; }

.searchpage #product-list {
  display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px;
  margin:0 !important; padding:0;
}
.searchpage #product-list > .col { width:auto; max-width:none; margin:0 !important; padding:0; }
.searchpage #product-list .product-thumb {
  height:430px; margin:0; overflow:hidden; border:0; border-radius:19px;
  display:flex; flex-direction:column; background:#fff;
  box-shadow:0 7px 26px rgba(77,109,120,.09);
}
.searchpage #product-list .product-thumb .image {
  position:relative; flex:1 1 auto; min-height:0; display:flex; flex-direction:column;
}
.searchpage #product-list .product-thumb .image > a { position:relative; display:block; flex:1 1 auto; min-height:0; }
.searchpage #product-list .product-thumb .image img {
  position:absolute; inset:0; width:100% !important; height:100% !important;
  object-fit:cover !important; aspect-ratio:auto !important;
}
.searchpage #product-list .product-thumb .content,
.searchpage #product-list .product-thumb .caption {
  flex:0 0 auto; padding:15px 18px 19px; display:flex; align-items:center;
  flex-direction:column; justify-content:flex-end; gap:8px; text-align:center;
}
.searchpage #product-list .product-thumb .description { width:100%; display:flex; flex-direction:column; align-items:center; gap:9px; }
.searchpage #product-list .product-thumb .description > *,
.searchpage #product-list .product-thumb .content > * { margin:0; }
.searchpage #product-list .product-thumb h4,
.searchpage #product-list .product-thumb .name {
  min-height:2.6em; margin:0; color:var(--teal); font-size:14px; line-height:1.3; font-weight:600;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.searchpage #product-list .product-thumb h4 a { color:var(--teal); }
.searchpage #product-list .product-thumb .d-list-view,
.searchpage #product-list .product-thumb .description > p,
.searchpage #product-list .product-thumb .rating,
.searchpage #product-list .product-thumb .price-tax,
.searchpage #product-list .product-thumb .price small { display:none; }
.searchpage #product-list .product-thumb .price { color:var(--teal); font-size:15px; font-weight:700; }
.searchpage #product-list .product-thumb .price--quote .price-new { color:var(--gold); font-size:13px; }

/* modo de lista acionado pelo controlo padrão do OpenCart */
.searchpage #product-list.product-list { grid-template-columns:1fr; }
.searchpage #product-list.product-list .product-thumb {
  height:250px; display:grid; grid-template-columns:minmax(210px,280px) 1fr;
}
.searchpage #product-list.product-list .product-thumb .image { min-height:250px; }
.searchpage #product-list.product-list .product-thumb .content,
.searchpage #product-list.product-list .product-thumb .caption {
  align-items:flex-start; justify-content:center; padding:28px; text-align:left;
}
.searchpage #product-list.product-list .product-thumb .description { align-items:flex-start; }
.searchpage #product-list.product-list .product-thumb h4 { min-height:0; }
.searchpage #product-list.product-list .product-thumb .d-list-view {
  display:block; max-width:620px; color:var(--navy); font-size:12px; line-height:1.6;
}

.searchpage__pagination {
  min-height:40px; margin-top:38px; display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.searchpage__pagination .pagination { display:flex; gap:8px; margin:0; padding:0; list-style:none; }
.searchpage__pagination .page-link,
.searchpage__pagination .pagination li > span {
  width:38px; height:38px; padding:0; border:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--teal); background:var(--sand); font-size:12px; font-weight:700;
}
.searchpage__pagination .active .page-link,
.searchpage__pagination .pagination li.active > span { color:var(--pearl); background:var(--teal); }
.searchpage__pagination .page-link:hover { color:var(--teal); background:var(--mint); }
.searchpage__pagination-text { color:var(--navy); font-size:12px; text-align:right; }
.searchpage__empty {
  padding:54px 24px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:20px;
  box-shadow:0 6px 24px rgba(77,109,120,.06);
}
.searchpage__empty > span {
  width:56px; height:56px; margin:0 auto 17px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--gold); background:var(--sand);
}
.searchpage__empty h3 { max-width:620px; margin:0 auto 8px; color:var(--teal); font-size:17px; }
.searchpage__empty p { margin:0; color:var(--navy); font-size:13px; }

@media (max-width:950px) {
  .searchpage__form { grid-template-columns:1fr 1fr; }
  .searchpage__submit { grid-column:1 / -1; justify-self:start; }
  .searchpage__checks { grid-column:1 / -1; }
  .searchpage__toolbar { flex-wrap:wrap; }
  .searchpage__controls { width:100%; margin-left:0; justify-content:flex-start; }
  .searchpage #product-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .searchpage__hero { padding:28px 16px 66px; }
  .searchpage__hero h1 { font-size:32px; }
  .searchpage__main { padding:0 16px 52px; }
  .searchpage__panel { margin-top:-38px; padding:23px 20px 21px; }
  .searchpage__form { grid-template-columns:1fr; }
  .searchpage__submit,
  .searchpage__checks { grid-column:auto; }
  .searchpage__submit { width:100%; }
  .searchpage__checks { align-items:flex-start; flex-direction:column; gap:11px; }
  .searchpage__results-head { align-items:flex-start; flex-direction:column; }
  .searchpage__result-count { text-align:left; }
  .searchpage__toolbar { align-items:flex-start; }
  .searchpage__compare { margin-left:auto; }
  .searchpage__controls { display:grid; grid-template-columns:auto 1fr; }
  .searchpage__controls .fld,
  .searchpage__controls .searchpage__limit { width:100%; }
  .searchpage #product-list { grid-template-columns:1fr; gap:18px; }
  .searchpage #product-list .product-thumb { height:auto; }
  .searchpage #product-list .product-thumb .image { aspect-ratio:1/1; flex:none; }
  .searchpage #product-list.product-list .product-thumb { height:auto; display:flex; }
  .searchpage #product-list.product-list .product-thumb .image { min-height:0; aspect-ratio:1/1; }
  .searchpage #product-list.product-list .product-thumb .content,
  .searchpage #product-list.product-list .product-thumb .caption { align-items:center; padding:18px; text-align:center; }
  .searchpage #product-list.product-list .product-thumb .description { align-items:center; }
  .searchpage #product-list.product-list .product-thumb .d-list-view { display:none; }
  .searchpage__pagination { align-items:flex-start; flex-direction:column; }
  .searchpage__pagination-text { text-align:left; }
}

/* ============================================================
   PÁGINA DE PRODUTO  (product/product.twig → .pdp)
   ============================================================ */
#product-info.pdp { max-width:none; padding:0; margin:0; }

.pdp__crumb-wrap { max-width:1200px; margin:0 auto; padding:32px 32px 0; }
.pdp .crumb { font-size:12px; color:var(--navy); margin:0; }
.pdp .crumb a { color:var(--navy); }
.pdp .crumb a:hover { color:var(--gold); }
.pdp .crumb .cur { color:var(--teal); font-weight:600; }

.pdp__top {
  max-width:1200px; margin:0 auto;
  display:flex; gap:48px;
  padding:24px 32px 60px;
  flex-wrap:wrap; align-items:flex-start;
}
.pdp__gallery { flex:1.1 1 340px; min-width:320px; }
.pdp__info { flex:1 1 300px; min-width:300px; }

/* ---- galeria ---- */
.pdp .product-gallery { display:flex; gap:16px; align-items:flex-start; }
.pdp .product-gallery__thumbs { width:84px; flex:0 0 84px; }
.pdp .product-gallery__thumb {
  border:2px solid var(--mint); border-radius:14px; overflow:hidden;
  margin:0 0 12px; cursor:pointer; transition:border-color .15s ease;
}
.pdp .product-gallery__thumbs .slick-slide { margin:0 0 12px; }
.pdp .product-gallery__thumb img { width:100%; aspect-ratio:1/1; height:auto; object-fit:cover; display:block; }
.pdp .product-gallery__thumb.slick-current,
.pdp .product-gallery__thumbs .slick-current .product-gallery__thumb { border-color:var(--gold); }
.pdp .product-gallery__main {
  flex:1; min-width:0; border-radius:20px; overflow:hidden; position:relative;
  background:var(--sand);
}
/* imagem principal SEMPRE quadrada */
.pdp .product-gallery__slide img { width:100%; aspect-ratio:1/1; height:auto; object-fit:cover; display:block; }
.pdp .product-gallery__main .slick-prev,
.pdp .product-gallery__main .slick-next {
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.9); box-shadow:0 4px 16px rgba(77,109,120,.2); z-index:3;
}
.pdp .product-gallery__main .slick-prev { left:12px; }
.pdp .product-gallery__main .slick-next { right:12px; }
.pdp .product-gallery__main .slick-prev:before,
.pdp .product-gallery__main .slick-next:before {
  font-family:"FontAwesome","Font Awesome 6 Free"; font-weight:900; color:var(--teal); font-size:15px; opacity:1;
}
.pdp .product-gallery__main .slick-prev:before { content:"\f053"; }
.pdp .product-gallery__main .slick-next:before { content:"\f054"; }

/* ---- info ---- */
.pdp__kicker { margin-bottom:10px; }
.pdp__title {
  font-family:'Cormorant Garamond',serif;
  font-size:34px; line-height:1.15; color:var(--teal); font-weight:600; margin:0 0 12px;
}
.pdp__rating { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.pdp__rating .stars { color:var(--gold); font-size:14px; letter-spacing:2px; display:inline-flex; gap:2px; }
.pdp__reviews-link { font-size:13px; color:var(--navy); }
.pdp__reviews-link:hover { color:var(--gold); }
.pdp__price { font-size:26px; font-weight:700; color:var(--teal); margin-bottom:6px; display:flex; align-items:baseline; gap:12px; }
.pdp__price-was { font-size:16px; font-weight:600; color:var(--navy); text-decoration:line-through; }
.pdp__tax { font-size:12px; color:var(--navy); margin-bottom:18px; }
.pdp__quote-price {
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
  margin:4px 0 22px; padding:18px 20px;
  background:linear-gradient(135deg, rgba(190,212,208,.34), rgba(248,246,240,.82));
  border:1px solid var(--mint); border-radius:16px;
}
.pdp__quote-price-label {
  display:inline-flex; align-items:center; gap:9px;
  color:var(--teal); font-size:20px; line-height:1.2; font-weight:700;
}
.pdp__quote-price-label i { color:var(--gold); font-size:17px; }
.pdp__quote-price-copy { color:var(--navy); font-size:13px; line-height:1.55; }
.pdp__intro { font-size:14px; line-height:1.8; color:var(--teal); opacity:.85; margin:0 0 26px; max-width:460px; }
.pdp__discounts { list-style:none; margin:0 0 18px; padding:0; font-size:13px; color:var(--navy); display:flex; flex-direction:column; gap:4px; }

.pdp .fld {
  padding:12px 16px; border-radius:12px; border:1px solid var(--mint);
  font-size:14px; color:var(--teal); width:100%; background:#fff;
}
.pdp .fld:focus { outline:2px solid var(--gold); border-color:var(--gold); }

.pdp__opt { margin-bottom:20px; }
.pdp__opt-label {
  display:block; font-size:12px; font-weight:700; color:var(--teal);
  margin:0 0 8px; text-transform:uppercase; letter-spacing:.05em;
}
.pdp__pills { display:flex; gap:10px; flex-wrap:wrap; }
.pdp__pill {
  position:relative; display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--mint); border-radius:999px;
  padding:9px 18px; font-size:13px; font-weight:600; color:var(--teal);
  cursor:pointer; transition:.15s ease; text-decoration:none;
}
.pdp__pill input { position:absolute; opacity:0; width:0; height:0; }
.pdp__pill img { width:22px; height:22px; border-radius:50%; object-fit:cover; }
.pdp__pill:hover { border-color:var(--gold); }
.pdp__pill.is-active,
.pdp__pill:has(input:checked) { background:var(--teal); color:var(--pearl); border-color:var(--teal); }
.pdp__pill.is-disabled { opacity:.4; pointer-events:none; }
.pdp__check { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--navy); padding:4px 0; cursor:pointer; }

/* Cor como swatches */
.pdp__swatches { display:flex; gap:12px; flex-wrap:wrap; }
.pdp__swatches .swatch {
  width:30px; height:30px; border-radius:50%;
  box-shadow:0 0 0 1px var(--mint);
  cursor:pointer; position:relative; display:block;
  transition:box-shadow .15s ease, transform .15s ease;
}
.pdp__swatches .swatch input { position:absolute; opacity:0; width:0; height:0; }
.pdp__swatches .swatch__label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.pdp__swatches .swatch--multi {
  background:conic-gradient(#C25B54,#D4AF77,#6B8E5A,#3E6DA3,#D98BA8,#C25B54);
}
.pdp__swatches .swatch:hover { transform:scale(1.08); }
.pdp__swatches .swatch:has(input:checked) {
  box-shadow:0 0 0 2px var(--gold), 0 0 0 4px #fff inset;
}
.pdp__formats { margin-bottom:20px; }

.pdp__buy { display:flex; gap:14px; align-items:center; margin-top:8px; flex-wrap:wrap; }
.pdp__qty {
  display:flex; align-items:center;
  border:1px solid var(--mint); border-radius:999px; overflow:hidden;
}
.pdp__qty .product-qty__btn {
  padding:11px 14px; cursor:pointer; color:var(--teal); font-weight:700; font-size:14px;
  user-select:none; line-height:1;
}
.pdp__qty .product-qty__input {
  width:38px; border:0; background:none; text-align:center;
  font-weight:700; color:var(--teal); font-size:14px; padding:0;
}
.pdp__qty .product-qty__input:focus { outline:0; }
.pdp__addcart { flex:1 1 auto; min-width:180px; }
.pdp__buy--quote { align-items:stretch; }
.pdp__quote-button {
  flex:1 1 auto; min-height:48px; border:1px solid var(--teal);
  background:var(--teal); color:var(--pearl); border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-size:13px; font-weight:700; letter-spacing:.035em;
  transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.pdp__quote-button:hover,
.pdp__quote-button:focus { background:var(--gold); border-color:var(--gold); color:#fff; transform:translateY(-1px); }
.pdp__quote-button:disabled { opacity:.65; transform:none; cursor:wait; }
.pdp__quote-button.is-loading i { animation:quote-send-pulse .85s ease-in-out infinite alternate; }
@keyframes quote-send-pulse { to { transform:translateX(4px); opacity:.55; } }
.pdp__wish {
  width:48px; height:48px; flex:0 0 48px; border-radius:50%;
  border:1px solid var(--mint); background:#fff; color:var(--teal);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.15s ease;
}
.pdp__wish:hover { border-color:var(--gold); color:var(--gold); }
.pdp__wish.is-active { background:var(--gold); border-color:var(--gold); color:#fff; }
.pdp__buynow { width:100%; margin-top:12px; }

/* Pedido de cotação */
.quote-modal .modal-dialog { max-width:620px; padding:12px; }
.quote-modal .modal-content {
  overflow:hidden; border:0; border-radius:24px;
  background:#fff; box-shadow:0 24px 70px rgba(31,66,73,.24);
}
.quote-modal .modal-header {
  align-items:flex-start; padding:27px 30px 22px;
  background:linear-gradient(135deg, var(--teal), #547f82); color:var(--pearl); border:0;
}
.quote-modal .modal-header > div { padding-right:28px; }
.quote-modal__eyebrow {
  display:block; margin-bottom:5px; color:var(--gold);
  font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
}
.quote-modal .modal-title {
  margin:0; color:#fff; font-family:'Cormorant Garamond',serif;
  font-size:30px; line-height:1.05; font-weight:600;
}
.quote-modal .modal-header p { margin:7px 0 0; color:rgba(255,255,255,.8); font-size:13px; }
.quote-modal .btn-close { margin:0; padding:8px; filter:brightness(0) invert(1); opacity:.78; }
.quote-modal .modal-body { padding:26px 30px 18px; }
.quote-modal__fields { display:grid; grid-template-columns:1fr 1fr; gap:17px 14px; }
.quote-modal__field { min-width:0; }
.quote-modal__field--wide { grid-column:1 / -1; }
.quote-modal__field--quantity { max-width:140px; }
.quote-modal__field label {
  display:block; margin:0 0 7px; color:var(--teal);
  font-size:11px; font-weight:800; letter-spacing:.045em; text-transform:uppercase;
}
.quote-modal__field label span { color:var(--gold); }
.quote-modal textarea.fld { min-height:108px; resize:vertical; }
.quote-modal .fld.is-invalid { border-color:#b94747; outline:1px solid #b94747; }
.quote-modal .invalid-feedback { color:#a43b3b; font-size:11px; margin-top:5px; }
.quote-modal__consent {
  display:flex; align-items:flex-start; gap:10px; margin:19px 0 0;
  color:var(--navy); font-size:12px; line-height:1.45; cursor:pointer;
}
.quote-modal__consent input { flex:0 0 auto; margin-top:2px; accent-color:var(--teal); }
.quote-modal .modal-footer { padding:7px 30px 28px; border:0; }
.quote-modal .modal-footer .pdp__quote-button { width:100%; }
.quote-modal__success {
  display:flex; align-items:flex-start; gap:12px; padding:18px;
  color:var(--teal); background:rgba(190,212,208,.32); border:1px solid var(--mint); border-radius:14px;
  font-size:14px; line-height:1.55;
}
.quote-modal__success i { margin-top:3px; color:var(--gold); font-size:18px; }
.quote-modal__honeypot { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }

.pdp__trust {
  list-style:none; margin:32px 0 0; padding:20px 0 0;
  border-top:1px solid var(--mint);
  display:flex; flex-direction:column; gap:10px;
  font-size:13px; color:var(--navy);
}

/* ---- tabs ---- */
.pdp__tabs-wrap { max-width:1200px; margin:0 auto; padding:0 32px 56px; }
.pdp__tabs {
  display:flex; gap:32px; flex-wrap:wrap;
  border-bottom:1px solid var(--mint);
  margin:0 0 24px; padding:0; list-style:none;
}
.pdp__tabs .nav-item { margin:0; }
.pdp__tabs .nav-link {
  border:0 !important; background:none !important;
  padding:0 0 14px; margin:0;
  font-size:14px; color:var(--navy); font-weight:600;
  border-radius:0;
}
.pdp__tabs .nav-link.active {
  color:var(--teal) !important; font-weight:700;
  border-bottom:2px solid var(--gold) !important;
}
.pdp__tabpanes { font-size:14px; line-height:1.9; color:var(--teal); max-width:820px; }
.pdp__tabpanes p { margin:0 0 12px; }
.pdp__tabpanes img { border-radius:12px; }
.pdp__tags { font-size:13px; color:var(--navy); margin-top:14px; }

/* descrição colapsável — "Ver mais" */
.pdp__desc { position:relative; overflow:hidden; max-height:340px; transition:max-height .25s ease; }
.pdp__desc.is-open { max-height:none; }
.pdp__desc--clamped:not(.is-open)::after {
  content:""; position:absolute; left:0; right:0; bottom:0; height:96px;
  background:linear-gradient(to bottom, rgba(248,246,240,0), var(--pearl) 92%);
  pointer-events:none;
}
.pdp__desc-toggle {
  margin:14px 0 0; padding:9px 22px;
  background:transparent; border:1px solid var(--teal); border-radius:999px;
  color:var(--teal); font-size:13px; font-weight:700; cursor:pointer;
  transition:background .15s ease, color .15s ease;
}
.pdp__desc-toggle:hover { background:var(--teal); color:var(--pearl); }
.pdp__desc-toggle::after { content:" \203A"; }
.pdp__desc-toggle.is-open::after { content:" \2039"; }
.pdp__spec { width:100%; border-collapse:collapse; font-size:13px; }
.pdp__spec td { padding:10px 12px; border-bottom:1px solid var(--line); }
.pdp__spec-head td { font-weight:700; color:var(--teal); background:var(--pearl); }

/* ---- relacionados ---- */
.pdp__related-title { max-width:1200px; margin:10px auto 0; padding:0 32px; }
.pdp__related {
  max-width:1200px; margin:0 auto 60px; padding:0 32px; min-width:0;
}
.pdp__related .product-thumb {
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 6px 24px rgba(77,109,120,.08); position:relative;
  display:flex; flex-direction:column;
}
.pdp__related .product-thumb .image { position:relative; }
.pdp__related .product-thumb .image > a { display:block; }
.pdp__related .product-thumb .image img { width:100% !important; aspect-ratio:1/1; height:auto !important; object-fit:cover !important; display:block !important; }
.pdp__related .product-thumb .content,
.pdp__related .product-thumb .caption {
  padding:14px 16px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:6px; flex:1 1 auto;
}
.pdp__related .product-thumb .description > *,
.pdp__related .product-thumb .content > * { margin:0; }
.pdp__related .product-thumb .description h4,
.pdp__related .product-thumb .name {
  font-size:13px; font-weight:600; color:var(--teal); line-height:1.3;
  min-height:2.6em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.pdp__related .product-thumb .description h4 a { color:var(--teal); }
.pdp__related .product-thumb .price { font-size:14px; font-weight:700; color:var(--teal); }
.pdp__related .product-thumb .price .price-new { font-size:14px; font-weight:700; color:var(--teal); }
.pdp__related .product-thumb .rating,
.pdp__related .product-thumb .stars,
.pdp__related .product-thumb .description p,
.pdp__related .product-thumb .price-tax,
.pdp__related .product-thumb .d-list-view,
.pdp__related .product-thumb .button { display:none; }

@media (max-width:900px) {
  .pdp__crumb-wrap { padding:24px 16px 0; }
  .pdp__top { gap:28px; padding:20px 16px 44px; }
  .pdp__gallery, .pdp__info { flex:1 1 100%; }
  .pdp .product-gallery { flex-direction:column-reverse; gap:12px; align-items:center; }
  .pdp .product-gallery__main { width:100%; max-width:460px; }
  .pdp .product-gallery__thumbs { width:100%; max-width:460px; flex:none; overflow:hidden; }
  .pdp .product-gallery__thumbs .slick-list { margin:0 -5px; }
  .pdp .product-gallery__thumbs .slick-slide { padding:0 5px; margin:0; }
  .pdp .product-gallery__thumb { width:auto; margin:0; }
  .pdp .product-gallery__thumb img { width:100%; aspect-ratio:1/1; height:auto; object-fit:cover; }
  .pdp__title { font-size:28px; }
  .pdp__tabs-wrap { padding:0 16px 44px; }
  .pdp__related-title { padding:0 16px; }
  .pdp__related { padding:0 16px; }
}
@media (max-width:560px) {
  .pdp__addcart { order:3; flex:1 1 100%; }
  .pdp__tabs { gap:20px; }
  .quote-modal .modal-dialog { margin:6px; padding:0; }
  .quote-modal .modal-header { padding:23px 20px 19px; }
  .quote-modal .modal-title { font-size:27px; }
  .quote-modal .modal-body { padding:22px 20px 14px; }
  .quote-modal__fields { grid-template-columns:1fr; }
  .quote-modal__field--wide { grid-column:auto; }
  .quote-modal__field--quantity { max-width:none; }
  .quote-modal .modal-footer { padding:7px 20px 22px; }
}

/* ============================================================
   CARRINHO  (checkout/cart.twig + cart_list.twig → .cartpage)
   ============================================================ */
#checkout-cart.cartpage { max-width:none; padding:0; margin:0; }

.cartpage__head { max-width:1200px; margin:0 auto; padding:32px 32px 0; }
.cartpage .crumb { font-size:12px; color:var(--navy); margin:0 0 14px; }
.cartpage .crumb a { color:var(--navy); }
.cartpage .crumb a:hover { color:var(--gold); }
.cartpage .crumb .cur { color:var(--teal); font-weight:600; }
.cartpage__head h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:34px; color:var(--teal); font-weight:600; margin:0 0 8px;
}

/* passos */
.steps { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:6px 0 0; }
.step { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--navy); }
.step.active { font-weight:700; color:var(--teal); }
.step .dot {
  width:22px; height:22px; border-radius:50%;
  border:1px solid var(--mint);
  display:flex; align-items:center; justify-content:center; font-size:11px;
}
.step.active .dot { background:var(--teal); color:var(--pearl); border:0; }
.step.done .dot { background:var(--mint); color:var(--teal); border:0; }
.step-line { flex:0 0 40px; height:1px; background:var(--mint); }

/* corpo: itens + resumo */
.cartpage__body {
  max-width:1200px; margin:0 auto;
  display:flex; gap:36px;
  padding:20px 32px 60px;
  align-items:flex-start; flex-wrap:wrap;
}
.cartpage__items { flex:1.6 1 340px; min-width:320px; display:flex; flex-direction:column; gap:16px; }
.cartpage__summary { flex:1 1 280px; min-width:280px; position:sticky; top:20px; }

.cartpage .panel {
  background:#fff; border-radius:18px;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
  padding:26px; border:0;
}
.cartpage .panel-title { font-size:15px; font-weight:700; color:var(--teal); margin:0 0 18px; }

/* linha de item */
.cart-item {
  background:#fff; border-radius:18px;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
  padding:18px; display:flex; gap:18px; align-items:center; flex-wrap:wrap;
}
.cart-item__thumb { flex:0 0 auto; }
.cart-item__thumb img { width:92px; height:92px; object-fit:cover; border-radius:14px; display:block; background:var(--sand); }
.cart-item__info { flex:1 1 140px; min-width:140px; }
.cart-item__name { font-size:14px; font-weight:700; color:var(--teal); }
.cart-item__name:hover { color:var(--gold); }
.cart-item__meta { font-size:12px; color:var(--navy); margin-top:4px; line-height:1.5; }
.cart-item__warn { display:block; font-size:11px; color:#C25B54; margin-top:4px; }

.cart-item__qtyform { display:flex; align-items:center; gap:8px; }
.cart-item__qty {
  display:flex; align-items:center;
  border:1px solid var(--mint); border-radius:999px; overflow:hidden;
}
.cart-item__qty .qty-dec,
.cart-item__qty .qty-inc {
  padding:8px 12px; cursor:pointer; color:var(--teal);
  font-weight:700; font-size:13px; user-select:none; line-height:1;
}
.cart-item__qty .qty-input {
  width:34px; border:0; background:none; text-align:center;
  font-weight:700; color:var(--teal); font-size:13px; padding:0;
}
.cart-item__qty .qty-input:focus { outline:0; }
.cart-item__update { display:none; }

.cart-item__price {
  width:92px; text-align:right;
  font-size:15px; font-weight:700; color:var(--teal); line-height:1.3;
}
.cart-item__price small { display:block; font-size:11px; font-weight:500; color:var(--navy); }

.cart-item__remove,
.cart-item__remove.btn-danger {
  background:none; border:0; padding:0; box-shadow:none;
  color:var(--navy); cursor:pointer; display:flex; align-items:center;
}
.cart-item__remove:hover,
.cart-item__remove.btn-danger:hover { color:var(--gold); background:none; }

.cart-item--nostock { outline:1px solid rgba(194,91,84,.35); }

/* módulos (cupão / recompensa) — painel sempre aberto */
.cartpage__modules { display:flex; flex-direction:column; gap:12px; }
.cartpage__modules .accordion-item {
  background:#fff; border:0; border-radius:18px; overflow:hidden;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
}
.cartpage__modules .accordion-header { margin:0; }
.cartpage__modules .accordion-button {
  background:#fff !important; box-shadow:none !important;
  padding:18px 22px 4px; font-size:14px; font-weight:700; color:var(--teal);
}
.cartpage__modules .accordion-button::after { display:none; }
.cartpage__modules .accordion-collapse { display:block !important; height:auto !important; visibility:visible !important; }
.cartpage__modules .accordion-body { padding:8px 22px 20px; }
.cartpage__modules .accordion-body .row { margin:0; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.cartpage__modules .col-form-label { display:none; }
.cartpage__modules .accordion-body .col-md-8,
.cartpage__modules .accordion-body [class*="col-"] { flex:1 1 180px; padding:0; max-width:none; width:auto; }
.cartpage__modules .form-control {
  border:1px solid var(--mint); border-radius:999px; padding:11px 16px;
  font-size:13px; color:var(--teal); background:#fff; width:100%;
}
.cartpage__modules .form-control:focus { outline:2px solid var(--gold); border-color:var(--gold); box-shadow:none; }
.cartpage__modules .text-end { text-align:left; margin-top:10px; display:flex; gap:8px; }
.cartpage__modules .btn-primary {
  background:var(--teal); border-color:var(--teal); color:var(--pearl);
  border-radius:999px; font-size:12px; font-weight:700; padding:10px 18px;
}
.cartpage__modules .btn-danger {
  background:transparent; border:1px solid var(--mint); color:var(--navy);
  border-radius:999px; font-size:12px; font-weight:700; padding:10px 18px;
}
.cartpage__modules .btn-danger:hover { border-color:var(--gold); color:var(--gold); }

/* resumo */
.summary-rows { display:flex; flex-direction:column; gap:12px; margin-bottom:16px; }
.summary-row { display:flex; justify-content:space-between; font-size:13px; color:var(--navy); }
.summary-row span:last-child { color:var(--teal); font-weight:600; }
.summary-row--total {
  border-top:1px solid var(--mint); padding-top:16px; margin-top:4px;
}
.summary-row--total span:first-child { font-size:15px; font-weight:700; color:var(--teal); }
.summary-row--total span:last-child { font-size:20px; font-weight:700; color:var(--teal); }
.cartpage__checkout { width:100%; margin:6px 0 12px; }
.cartpage__continue { display:block; text-align:center; font-size:13px; color:var(--navy); }
.cartpage__continue:hover { color:var(--gold); }

/* carrinho vazio */
.cart-empty {
  max-width:520px; margin:70px auto; text-align:center; padding:0 24px;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.cart-empty i { font-size:44px; color:var(--mint); }
.cart-empty h2 { font-family:'Cormorant Garamond',serif; font-size:30px; color:var(--teal); font-weight:600; margin:0; }
.cart-empty p { font-size:14px; color:var(--navy); margin:0; }
.cart-empty .btn { min-width:200px; }

@media (max-width:900px) {
  .cartpage__head { padding:24px 16px 0; }
  .cartpage__body { gap:22px; padding:16px 16px 48px; }
  .cartpage__summary { position:static; flex-basis:100%; }
  .cartpage__head h1 { font-size:28px; }
}
@media (max-width:560px) {
  .cart-item { gap:12px; }
  .cart-item__thumb img { width:72px; height:72px; }
  .cart-item__info { flex-basis:calc(100% - 84px); }
  .cart-item__qtyform { order:3; }
  .cart-item__price { order:4; margin-left:auto; }
  .cart-item__remove { order:5; }
  .steps { gap:8px; font-size:12px; }
  .step-line { flex-basis:16px; }
}

/* ============================================================
   CHECKOUT  (checkout/checkout.twig + fragmentos → .checkoutpage)
   Reskin dos fragmentos nativos do OpenCart, layout 2 colunas.
   ============================================================ */
#checkout-checkout.checkoutpage { max-width:none; padding:0; margin:0; }

.checkoutpage__head { max-width:1100px; margin:0 auto; padding:24px 32px 0; }
.checkoutpage__head h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:32px; color:var(--teal); font-weight:600; margin:10px 0 0;
}

.checkoutpage__body {
  max-width:1100px; margin:0 auto;
  display:flex; gap:36px;
  padding:24px 32px 60px;
  align-items:flex-start; flex-wrap:wrap;
}
.checkoutpage__forms { flex:1.6 1 340px; min-width:320px; display:flex; flex-direction:column; gap:22px; }
.checkoutpage__summary { flex:1 1 280px; min-width:280px; position:sticky; top:20px; }

.checkoutpage .panel {
  background:#fff; border-radius:18px;
  box-shadow:0 6px 24px rgba(77,109,120,.08);
  padding:26px; border:0;
}

/* fieldset/legend -> titulo de painel */
.checkoutpage .panel fieldset { border:0; margin:0; padding:0; min-width:0; }
.checkoutpage .panel legend {
  float:none; width:auto; border:0; padding:0;
  font-size:15px; font-weight:700; color:var(--teal);
  margin:0 0 18px; font-family:'Archivo',sans-serif;
}
.checkoutpage .panel > form > p:first-child { font-size:13px; color:var(--navy); margin:0 0 14px; }

/* inputs / selects / textarea */
.checkoutpage .form-control,
.checkoutpage .form-select,
.checkoutpage textarea.form-control {
  border:1px solid var(--mint); border-radius:12px;
  padding:11px 16px; font-size:14px; color:var(--teal); background:#fff;
  box-shadow:none;
}
.checkoutpage .form-control:focus,
.checkoutpage .form-select:focus {
  outline:2px solid var(--gold); border-color:var(--gold); box-shadow:none;
}
.checkoutpage .form-label,
.checkoutpage label.form-label {
  font-size:12px; font-weight:700; color:var(--teal);
  text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px;
}
.checkoutpage .row { --bs-gutter-x:16px; --bs-gutter-y:0; }
.checkoutpage .col.mb-3,
.checkoutpage [class*="col-"].mb-3 { margin-bottom:14px !important; }
.checkoutpage .invalid-feedback { font-size:12px; color:#C25B54; }

/* radios / checks */
.checkoutpage .form-check { display:flex; align-items:center; gap:8px; padding:4px 0; min-height:auto; }
.checkoutpage .form-check-inline { display:inline-flex; margin-right:18px; }
.checkoutpage .form-check-input { accent-color:var(--teal); margin:0; width:16px; height:16px; }
.checkoutpage .form-check-label { font-size:13px; color:var(--navy); }
.checkoutpage .form-switch .form-check-input { width:38px; height:20px; }

/* seletor de método (envio / pagamento) */
.checkoutpage .input-group {
  border:1px solid var(--mint); border-radius:999px; overflow:hidden;
  display:flex; align-items:stretch;
}
.checkoutpage .input-group .input-group-text {
  background:var(--sand); border:0; color:var(--teal); padding:0 14px; display:flex; align-items:center;
}
.checkoutpage .input-group .form-control {
  border:0 !important; border-radius:0; outline:0 !important; background:#fff;
}
.checkoutpage .input-group .btn {
  border:0; border-radius:0; background:var(--teal); color:var(--pearl);
  font-size:12px; font-weight:700; padding:0 20px; white-space:nowrap;
}
.checkoutpage .input-group .btn:hover { background:var(--teal-dark); }

/* botoes gerais nos fragmentos */
.checkoutpage .btn-primary,
.checkoutpage .input-group .btn-primary {
  background:var(--teal) !important; border-color:var(--teal) !important; color:var(--pearl) !important;
  border-radius:999px; font-size:13px; font-weight:700; padding:11px 22px;
}
.checkoutpage .input-group .btn-primary { border-radius:0; }
.checkoutpage .btn-primary:hover { background:var(--teal-dark) !important; border-color:var(--teal-dark) !important; }
.checkoutpage .btn-primary:disabled { opacity:.55; }
.checkoutpage .btn-light,
.checkoutpage .btn-secondary {
  background:transparent; border:1px solid var(--mint); color:var(--teal);
  border-radius:999px; font-size:13px; font-weight:700; padding:11px 22px;
}

/* resumo do pedido (confirm.twig) */
.checkoutpage__summary .panel-title,
.checkoutpage__summary > .table-responsive + #checkout-payment { }
.checkoutpage__summary .table-responsive { overflow:visible; }
.checkoutpage__summary table {
  width:100%; border-collapse:collapse; margin:0 0 4px; font-size:13px;
}
.checkoutpage__summary table thead { display:none; }
.checkoutpage__summary table td { border:0; padding:10px 0; vertical-align:top; color:var(--teal); }
.checkoutpage__summary tbody tr { border-bottom:1px solid var(--line); }
.checkoutpage__summary tbody td:first-child { font-weight:600; }
.checkoutpage__summary tbody td:last-child { text-align:right; font-weight:700; white-space:nowrap; }
.checkoutpage__summary tbody .list-unstyled { margin:4px 0 0; }
.checkoutpage__summary tbody .list-unstyled small { color:var(--navy); font-size:11.5px; }
.checkoutpage__summary tfoot td { padding:8px 0; border:0; font-size:13px; color:var(--navy); }
.checkoutpage__summary tfoot td:first-child { text-align:left; }
.checkoutpage__summary tfoot td:first-child strong { font-weight:600; }
.checkoutpage__summary tfoot td:last-child { text-align:right; color:var(--teal); font-weight:700; }
.checkoutpage__summary tfoot tr:last-child td { border-top:1px solid var(--mint); padding-top:14px; }
.checkoutpage__summary tfoot tr:last-child td:first-child strong { font-size:15px; font-weight:700; color:var(--teal); }
.checkoutpage__summary tfoot tr:last-child td:last-child { font-size:20px; }
#checkout-payment { margin-top:18px; }
#checkout-payment .text-end,
#checkout-payment > div { text-align:center; }
#checkout-payment .btn,
#checkout-payment button[type="submit"],
#checkout-payment .btn-primary {
  width:100%; border-radius:999px; padding:14px 22px;
  background:var(--teal); border-color:var(--teal); color:var(--pearl);
  font-size:14px; font-weight:700;
}

/* modais de metodos (shipping / payment) */
#modal-shipping .modal-content,
#modal-payment .modal-content { border:0; border-radius:18px; }
#modal-shipping .modal-body,
#modal-payment .modal-body { padding:22px; }
#modal-shipping .form-check,
#modal-payment .form-check { padding:8px 0; }

/* modal de paginas de informacao (termos, politicas... aberto via "Li e concordo") */
#modal-information .modal-content { border:0; border-radius:18px; }
#modal-information .modal-header { border-bottom:1px solid var(--mint); padding:20px 24px; }
#modal-information .modal-title { font-family:'Cormorant Garamond', serif; font-size:22px; color:var(--ink); }
#modal-information .modal-body { padding:24px; color:var(--ink); font-size:14px; line-height:1.7; }
#modal-information .modal-body h3 { font-size:17px; margin:22px 0 8px; color:var(--teal); }
#modal-information .modal-body h3:first-child { margin-top:0; }
#modal-information .modal-body a { color:var(--teal); }

/* rodape minimal no checkout */
body.is-checkout .service-bg,
body.is-checkout footer .cols,
body.is-checkout footer .footblink { display:none; }
body.is-checkout footer { margin-top:40px; padding:30px 32px 0; }
body.is-checkout footer .powerby { border-top:0; }

@media (max-width:900px) {
  .checkoutpage__head { padding:20px 16px 0; }
  .checkoutpage__body { gap:22px; padding:18px 16px 44px; }
  .checkoutpage__summary { position:static; flex-basis:100%; }
  .checkoutpage__head h1 { font-size:26px; }
  .checkoutpage .row { --bs-gutter-x:12px; }
}

/* ============================================================
   BLOGUE — lista de artigos (cms/blog.twig → .blogpage)
   Mesma linguagem visual da página de categoria: faixa, painel
   lateral e grelha de cartões.
   ============================================================ */
#product-category.blogpage { max-width:none; padding:0; margin:0; }

.blogpage__hero {
  background:linear-gradient(120deg,#EFE3D5 0%,#BED4D0 100%);
  padding:40px 32px;
  margin:0 0 30px;
}
.blogpage__hero-inner { max-width:1200px; margin:0 auto; }
.blogpage .crumb { font-size:12px; color:var(--navy); margin-bottom:16px; }
.blogpage .crumb a { color:var(--navy); }
.blogpage .crumb a:hover { color:var(--gold); }
.blogpage .crumb .cur { color:var(--teal); font-weight:600; }
.blogpage__hero h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:38px; color:var(--teal); font-weight:600; margin:0; line-height:1.1;
}
.blogpage__intro { margin-top:10px; max-width:640px; color:var(--teal); font-size:14px; }

.blogpage__body {
  max-width:1200px; margin:0 auto;
  display:flex; gap:36px;
  padding:0 32px 60px;
  align-items:flex-start;
}
.blogpage__side { width:240px; flex:0 0 240px; }
.blogpage__main { flex:1; min-width:0; }

/* o OpenCart embrulha o column_left num <aside id="column-left" class="col-3 d-none d-md-block"> */
.blogpage__side #column-left {
  width:100% !important; max-width:100%; flex:none !important;
  display:block !important; padding:0; margin:0;
}
.blogpage__side .list-group {
  background:#fff; border-radius:18px; box-shadow:var(--card-shadow);
  padding:20px 22px; border:0; display:flex; flex-direction:column; gap:4px;
}
.blogpage__side .list-group-item {
  border:0 !important; background:none !important; padding:8px 0;
  font-size:13px; color:var(--teal); border-radius:0;
}
.blogpage__side .list-group-item:hover { color:var(--gold); }
.blogpage__side .list-group-item.active { color:var(--gold); font-weight:700; }

/* barra de pesquisa + ordenação */
.blogpage__toolbar {
  display:flex; gap:16px; flex-wrap:wrap; align-items:center;
  margin:0 0 26px;
}
.blogpage__search {
  flex:1 1 380px; display:flex; align-items:stretch; min-width:0;
  background:#fff; border:1px solid var(--line); border-radius:999px; overflow:hidden;
}
.blogpage__search:focus-within { border-color:var(--gold); }
.blogpage__search input,
.blogpage__search select {
  border:0 !important; box-shadow:none !important; background:none;
  font-size:13px; padding:11px 16px; color:var(--teal); min-width:0;
  font-family:inherit;
}
.blogpage__search input { flex:1 1 auto; }
.blogpage__search select { flex:0 0 auto; max-width:190px; border-left:1px solid var(--line) !important; }
.blogpage__search button {
  flex:0 0 auto; border:0; background:var(--teal); color:#fff;
  font-size:13px; font-weight:600; padding:0 22px; cursor:pointer;
  transition:background .15s ease;
}
.blogpage__search button:hover { background:var(--gold); }
.blogpage__sort {
  flex:0 0 auto; display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:4px 6px 4px 16px;
}
.blogpage__sort label { font-size:12px; color:var(--navy); white-space:nowrap; margin:0; }
.blogpage__sort select {
  border:0 !important; box-shadow:none !important; background:none;
  font-size:13px; color:var(--teal); padding:7px 10px; max-width:230px; font-family:inherit;
}

/* grelha de cartões */
.blog-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  align-items:stretch;
}
.blog-card {
  display:flex; flex-direction:column; background:#fff;
  border-radius:20px; overflow:hidden; box-shadow:var(--card-shadow);
  transition:transform .18s ease, box-shadow .18s ease;
}
.blog-card:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(77,109,120,.14); }
.blog-card__image { display:block; overflow:hidden; line-height:0; }
.blog-card__image img {
  width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; display:block;
  transition:transform .35s ease;
}
.blog-card:hover .blog-card__image img { transform:scale(1.05); }
.blog-card__body { display:flex; flex-direction:column; gap:10px; padding:20px 22px 22px; flex:1; }
.blog-card__title { margin:0; font-size:17px; line-height:1.35; }
.blog-card__title a {
  font-family:'Archivo',sans-serif; font-weight:700; color:var(--teal);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.blog-card__title a:hover { color:var(--gold); }
.blog-card__meta {
  display:flex; flex-wrap:wrap; gap:4px 14px; margin:0; padding:0; list-style:none;
  font-size:12px; color:var(--navy);
}
.blog-card__meta i { color:var(--gold); margin-right:4px; }
.blog-card__text {
  margin:0; color:var(--navy); font-size:13.5px; line-height:1.65;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.blog-card__more {
  margin-top:auto; align-self:flex-start; font-size:12px; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; color:var(--teal);
  border-bottom:1px solid var(--gold); padding-bottom:2px;
}
.blog-card__more:hover { color:var(--gold); }

/* rodapé da lista */
.blogpage__foot {
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  flex-wrap:wrap; margin-top:34px; font-size:12px; color:var(--navy);
}
.blogpage__foot .pagination { margin:0; }
.blogpage__empty { text-align:center; color:var(--navy); padding:40px 0; }

@media (max-width:1100px) {
  .blog-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
  .blogpage__hero { padding:30px 16px; margin-bottom:22px; }
  .blogpage__hero h1 { font-size:30px; }
  .blogpage__body { padding:0 16px 44px; gap:24px; }
  .blogpage__side { display:none; }
  .blogpage__sort { flex:1 1 100%; justify-content:space-between; }
}
@media (max-width:560px) {
  .blog-grid { grid-template-columns:1fr; }
  .blogpage__search { flex-wrap:wrap; border-radius:18px; }
  .blogpage__search select { max-width:none; flex:1 1 100%; border-left:0 !important; border-top:1px solid var(--line) !important; }
  .blogpage__search button { flex:1 1 100%; padding:11px 0; }
}

/* ----- artigo do blogue (cms/blog_info.twig → .blogpost) ----- */
#cms-blog.blogpost { max-width:none; padding:0; margin:0; }
.blogpost .blogpage__hero-inner { max-width:820px; }
.blogpost__meta {
  display:flex; flex-wrap:wrap; gap:6px 20px; list-style:none; margin:14px 0 0; padding:0;
  font-size:12.5px; color:var(--teal);
}
.blogpost__meta a { color:var(--teal); }
.blogpost__meta a:hover { color:var(--gold); }
.blogpost__meta i { color:var(--gold); margin-right:5px; }

.blogpost__body { max-width:820px; margin:0 auto; padding:0 32px 64px; }
.blogpost__image { border-radius:20px; overflow:hidden; box-shadow:var(--card-shadow); margin-bottom:32px; }
.blogpost__image img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }

.blogpost__text { font-size:15px; line-height:1.8; color:var(--ink); }
.blogpost__text p { margin:0 0 18px; }
.blogpost__text h2,
.blogpost__text h3,
.blogpost__text h4 {
  font-family:'Cormorant Garamond',serif; color:var(--teal);
  margin:34px 0 12px; line-height:1.25; font-weight:600;
}
.blogpost__text h2 { font-size:28px; }
.blogpost__text h3 { font-size:24px; }
.blogpost__text h4 { font-size:20px; }
.blogpost__text ul,
.blogpost__text ol { margin:0 0 18px; padding-left:22px; }
.blogpost__text li { margin-bottom:8px; }
.blogpost__text img { max-width:100%; height:auto; border-radius:14px; margin:10px 0; }
.blogpost__text blockquote {
  margin:26px 0; padding:18px 24px; border-left:3px solid var(--gold);
  background:#fff; border-radius:0 14px 14px 0; color:var(--teal); font-size:16px;
}
.blogpost__text a { color:var(--gold-dark); text-decoration:underline; }

.blogpost__tags { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:36px 0 0; font-size:12px; color:var(--navy); }
.blogpost__tags a {
  background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:6px 14px; font-size:12px; color:var(--teal);
}
.blogpost__tags a:hover { border-color:var(--gold); color:var(--gold); }

.blogpost__comments { margin-top:44px; border-top:1px solid var(--line); padding-top:28px; }

@media (max-width:900px) {
  .blogpost__body { padding:0 16px 48px; }
  .blogpost__image { margin-bottom:24px; }
}

/* Aviso de cookies */
#cookie {
  position:fixed; left:0; bottom:0; width:100%; height:auto;
  z-index:9999; opacity:1; color:var(--ink); background:var(--pearl);
  border-top:1px solid var(--mint); box-shadow:0 -8px 24px rgba(46,63,69,.12);
}
.cookiebar {
  max-width:1200px; margin:0 auto; padding:16px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.cookiebar__text { margin:0; font-size:14px; line-height:1.5; color:var(--ink); flex:1 1 320px; }
.cookiebar__text a { color:var(--teal); text-decoration:underline; }
.cookiebar__actions { display:flex; gap:10px; flex:0 0 auto; }
.cookiebar__btn {
  padding:10px 22px; border-radius:999px; font-size:13px; font-weight:700;
  cursor:pointer; transition:background .15s ease, color .15s ease, border-color .15s ease;
  white-space:nowrap;
}
.cookiebar__btn--ghost { background:transparent; border:1px solid var(--teal); color:var(--teal); }
.cookiebar__btn--ghost:hover { background:var(--teal); color:var(--pearl); }
.cookiebar__btn--gold { background:var(--gold); border:1px solid var(--gold); color:var(--ink); }
.cookiebar__btn--gold:hover { background:var(--teal); border-color:var(--teal); color:var(--pearl); }
@media (max-width:640px) {
  .cookiebar { padding:14px 16px; }
  .cookiebar__actions { width:100%; }
  .cookiebar__btn { flex:1 1 0; text-align:center; }
}

/* Pagina "Sobre Nos": historia, visao/proposito, ecossistema */
.about-story {
  background:#fff; border:1px solid var(--mint); border-radius:18px;
  padding:32px; margin:0 auto 40px; max-width:820px;
}
.about-story p { margin:0 0 16px; line-height:1.7; color:var(--ink); }
.about-story p:last-child { margin-bottom:0; }

.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:0 0 52px; }
.about-card { background:#fff; border:1px solid var(--mint); border-radius:18px; padding:28px; }
.about-card__icon {
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(212,175,119,.15); color:var(--gold); font-size:17px; margin-bottom:16px;
}
.about-card h3 { margin:0 0 10px; font-size:19px; color:var(--ink); font-family:'Cormorant Garamond', serif; }
.about-card p { margin:0; color:var(--teal); line-height:1.6; font-size:14px; }

.eco-title { text-align:center; margin:0 0 8px; font-family:'Cormorant Garamond', serif; font-size:28px; color:var(--ink); }
.eco-sub { text-align:center; color:var(--teal); max-width:620px; margin:0 auto 32px; line-height:1.6; font-size:14px; }
.eco-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:0 0 24px; }
.eco-card {
  display:block; background:#fff; border:1px solid var(--mint); border-radius:16px;
  padding:26px 20px; text-align:center; text-decoration:none;
  transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.eco-card:hover { border-color:var(--gold); transform:translateY(-3px); box-shadow:0 10px 24px rgba(46,63,69,.08); }
.eco-card__icon { font-size:21px; color:var(--gold); margin-bottom:14px; }
.eco-card h4 { margin:0 0 8px; font-size:16px; color:var(--ink); }
.eco-card p { margin:0; font-size:13px; color:var(--teal); line-height:1.5; }

@media (max-width:900px) {
  .about-grid { grid-template-columns:1fr; }
  .eco-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:520px) {
  .eco-grid { grid-template-columns:1fr; }
  .about-story { padding:22px; }
}
