/* =========================================================
   CATRAIO — Tema escuro (rebranding)  v1 (frame)
   Carregado DEPOIS do theme.css. Cores da marca: preto + dourado.
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --bg:#141210;          /* preto quente */
  --surface:#1d1a15;     /* superfícies */
  --surface-2:#272219;   /* cards/hover */
  --line:rgba(245,243,238,.12);
  --text:#f1ede3;        /* branco quente */
  --muted:#b6ae9e;       /* texto secundário */
  --gold:#d99a1e;        /* dourado torrado da marca */
  --gold-2:#eeb43a;      /* hover/realce */
  --gold-deep:#a9760c;   /* base do gradiente / sombras */
  --gold-ink:#1b1407;    /* texto sobre dourado */
  --radius:6px;
}

/* ---------- Base ---------- */
body{
  background:var(--bg)!important;
  color:var(--text);
  font-family:'Inter',-apple-system,Segoe UI,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
#wrapper,#main,.page-content,#content-wrapper,#content,
.page-home,#index #wrapper{ background:transparent!important; }
#wrapper{ box-shadow:none!important; }
a{ color:var(--text); }
a:hover{ color:var(--gold); text-decoration:none; }
.container{ max-width:1280px; }

h1,h2,h3,h4,h5,.h1,.h2,.h3,.h4,.page-heading,.products-section-title,.featured-products .h2{
  font-family:'Oswald','Inter',sans-serif!important;
  letter-spacing:.03em; color:var(--text); text-transform:uppercase; font-weight:600;
}

/* títulos de secção (ex.: "Produtos em destaque") */
.featured-products .products-section-title,
.products-section-title,h2.products-section-title{
  text-align:center; font-size:1.9rem; margin:0 0 2rem; position:relative; padding-bottom:.75rem;
}
.products-section-title::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:64px; height:3px; background:var(--gold);
}

/* ---------- Header ---------- */
#header{ background:var(--bg)!important; box-shadow:none!important; border-bottom:1px solid var(--line); }
#header a{ color:var(--text); }
#header .header-nav{
  background:#0f0d0b!important; border-bottom:1px solid var(--line);
  color:var(--muted); padding:.35rem 0; font-size:.85rem;
}
#header .header-nav a{ color:var(--muted); }
#header .header-nav a:hover{ color:var(--gold); }
#header .header-top{ background:var(--bg)!important; padding:1.1rem 0; }

/* logo claro */
#header .logo{ max-height:78px; width:auto; }
#_desktop_logo,#_mobile_logo img{ filter:none; }

/* ---------- Menu principal ---------- */
.header-top .menu,.header-top #_desktop_top_menu{ background:transparent; }
#_desktop_top_menu .top-menu a.dropdown-item,
.header-top a[data-depth="0"],
#top-menu>li>a,.top-menu>li>a{
  color:var(--text)!important; text-transform:uppercase; font-weight:500;
  font-family:'Oswald',sans-serif; letter-spacing:.04em; font-size:.98rem;
}
#top-menu>li>a:hover,.top-menu a:hover{ color:var(--gold)!important; }
.menu>ul>li>a.current,.top-menu .current>a{ color:var(--gold)!important; }
.top-menu .sub-menu,.header-top .popover{
  background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:var(--radius);
}
.top-menu .sub-menu a{ color:var(--text)!important; }
.top-menu .sub-menu a:hover{ color:var(--gold)!important; background:var(--surface-2); }

/* ---------- Pesquisa ---------- */
#search_widget form,.header-top #search_widget input[type=text]{
  background:var(--surface)!important; border:1px solid var(--line)!important;
  color:var(--text)!important; border-radius:999px;
}
#search_widget input::placeholder{ color:var(--muted); }
#search_widget button,#search_widget .search i{ color:var(--gold)!important; }

/* ---------- Conta / Carrinho (topo) ---------- */
.header .user-info a,.blockcart a,#_desktop_cart a,.header-nav .currency-selector,.header-nav .language-selector{
  color:var(--text);
}
.blockcart.active,.blockcart{ background:transparent!important; }
.blockcart .cart-products-count{
  background:var(--gold); color:#1b1407; font-weight:700; border-radius:999px;
}

/* ---------- Botões ---------- */
.btn-primary,.btn-primary:focus,button.btn-primary,.product-add-to-cart .btn,
.btn.btn-primary{
  background:var(--gold)!important; border-color:var(--gold)!important; color:#1b1407!important;
  text-transform:uppercase; font-weight:700; letter-spacing:.03em; border-radius:var(--radius);
}
.btn-primary:hover{ background:var(--gold-2)!important; border-color:var(--gold-2)!important; }
.btn-secondary,.btn-outline,.btn-tertiary{
  background:transparent!important; border:1px solid var(--gold)!important; color:var(--gold)!important;
  text-transform:uppercase; font-weight:600; border-radius:var(--radius);
}
.btn-secondary:hover{ background:var(--gold)!important; color:#1b1407!important; }

/* ---------- Cartões de produto ---------- */
.product-miniature .thumbnail-container,.product-miniature .card,
.js-product-miniature,.product-miniature{
  background:var(--surface)!important; border:1px solid var(--line)!important;
  border-radius:var(--radius); overflow:hidden; transition:transform .2s,border-color .2s,box-shadow .2s;
}
.product-miniature:hover .thumbnail-container,.product-miniature:hover{
  transform:translateY(-4px); border-color:var(--gold)!important;
  box-shadow:0 10px 30px rgba(0,0,0,.45);
}
.product-miniature img{ background:#fff; }
.product-miniature .product-title a,.product-title a{ color:var(--text)!important; font-weight:600; }
.product-miniature .product-title a:hover{ color:var(--gold)!important; }
.product-price-and-shipping .price,.product-miniature .price,.price{ color:var(--gold)!important; font-weight:700; }
.product-flags .product-flag{ background:var(--gold); color:#1b1407; font-weight:700; }

/* ---------- Caixas / colunas / breadcrumb ---------- */
.card,.block-categories,.block-category,#left-column .block,#search_filters,
.page-content.card,.elementor-widget,.product-list .card{
  background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text);
}
.breadcrumb{ background:transparent!important; }
.breadcrumb a,.breadcrumb li::after{ color:var(--muted)!important; }
.breadcrumb li:last-child span{ color:var(--gold)!important; }

/* corrige fundos amarelos herdados (página/categoria) */
#wrapper,.page-home,#category #wrapper,#category .page-content,
.featured-products,.page-content,.block-category{ background-color:transparent!important; }

/* ---------- Inputs / formulários ---------- */
input,select,textarea,.form-control{
  background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text)!important;
}
input::placeholder,textarea::placeholder{ color:var(--muted)!important; }

/* ---------- Footer ---------- */
.footer-container{ background:#0f0d0b!important; color:var(--muted); border-top:1px solid var(--line); margin-top:0; box-shadow:none; }
.footer-container li a,.footer-container a{ color:var(--muted)!important; }
.footer-container li a:hover{ color:var(--gold)!important; }
.footer-container h3,.footer-container .h3{ color:var(--text)!important; }
.block_newsletter{ background:var(--surface)!important; border:1px solid var(--line); border-radius:var(--radius); }
.block_newsletter p,.block_newsletter h3{ color:var(--text)!important; }
.block_newsletter input[type=email]{ border-radius:999px 0 0 999px; }
.block_newsletter .btn{ background:var(--gold)!important; color:#1b1407!important; border:0; border-radius:0 999px 999px 0; font-weight:700; }
.social-icons a,.block-social a,.footer .social-icons span{ filter:grayscale(1) brightness(1.6); }
.social-icons a:hover{ filter:none; }

/* ---------- Misc ---------- */
.ps-alert-success,.alert{ border-radius:var(--radius); }
::selection{ background:var(--gold); color:#1b1407; }

/* ===================== HERO ===================== */
.ct-hero{
  position:relative; min-height:clamp(420px,60vh,580px);
  background-size:cover; background-position:center; display:flex; align-items:center;
  border-bottom:1px solid var(--line);
}
.ct-hero__veil{ position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(13,11,9,.94) 0%,rgba(13,11,9,.72) 45%,rgba(13,11,9,.30) 100%); }
.ct-hero__inner{ position:relative; z-index:1; padding:3rem 0; max-width:680px; }
.ct-hero__eyebrow{ color:var(--gold); text-transform:uppercase; letter-spacing:.25em; font-size:.8rem; font-weight:600; }
.ct-hero__title{ font-family:'Oswald',sans-serif; font-size:clamp(2.4rem,5vw,4rem); line-height:1.03;
  margin:.6rem 0 1rem; color:#fff; text-transform:uppercase; font-weight:700; }
.ct-hero__sub{ color:var(--muted); font-size:1.1rem; max-width:48ch; margin-bottom:1.6rem; }
.ct-hero__cta{ display:flex; gap:.8rem; flex-wrap:wrap; }
.ct-hero__cta .btn{ padding:.85rem 1.7rem; font-size:1rem; }
.ct-hero__promo{ margin-top:1.5rem; color:var(--text); font-size:.92rem; opacity:.92; }

/* ===================== CATEGORIAS (tiles) ===================== */
.ct-cats{ padding:3.5rem 0 1.5rem; }
.ct-cats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
@media(max-width:992px){ .ct-cats__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .ct-cats__grid{ grid-template-columns:1fr; } }
.ct-cat{
  display:flex; flex-direction:column; gap:.35rem; justify-content:flex-end;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.6rem 1.4rem; min-height:150px; position:relative; overflow:hidden;
  transition:transform .2s,border-color .2s,background .2s;
}
.ct-cat::before{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--gold); transition:width .25s; }
.ct-cat:hover{ transform:translateY(-4px); border-color:var(--gold); background:var(--surface-2); }
.ct-cat:hover::before{ width:100%; }
.ct-cat__name{ font-family:'Oswald',sans-serif; font-size:1.5rem; text-transform:uppercase; color:var(--text); letter-spacing:.03em; }
.ct-cat:hover .ct-cat__name{ color:var(--gold); }
.ct-cat__desc{ color:var(--muted); font-size:.9rem; }
.ct-cat__arrow{ color:var(--gold); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; margin-top:.5rem; }

/* esconder slider promo antigo (o hero substitui) */
.page-home .imageslider,#index .imageslider,.page-home #carousel{ display:none!important; }

/* esconder carousel Bootstrap antigo na home (hero substitui) */
.page-home .carousel,#index .carousel,.page-home .header-banner{ display:none!important; }

/* ================= HEADER HORIZONTAL + OVERLAY NO HERO ================= */
/* Header em linha: logo esquerda | menu centro | pesquisa direita (todas as páginas) */
.header-top .container .ct-header-row{ display:flex; align-items:center; flex-wrap:nowrap; gap:1.5rem; }
#_desktop_logo{ width:auto; max-width:none; flex:0 0 auto; margin:0; padding:0; text-align:left; }
#_desktop_logo h1{ margin:0; line-height:0; }
#header .logo{ max-height:60px; }
.header-top .col-sm-12.position-static{ flex:1 1 auto; min-width:0; display:flex; align-items:center; justify-content:flex-end; gap:1.75rem; }
#_desktop_top_menu{ flex:1 1 auto; }
#_desktop_top_menu .top-menu{ display:flex; justify-content:center; gap:.3rem; margin:0; padding:0; }
#search_widget{ flex:0 0 auto; width:auto; min-width:230px; }

/* Overlay transparente sobre o hero (apenas homepage) */
#index #header{ position:absolute; top:0; left:0; right:0; z-index:100; background:transparent!important; border-bottom:0!important; }
#index #header .header-nav{ background:rgba(0,0,0,.18)!important; border-bottom:1px solid rgba(255,255,255,.14); }
#index #header .header-top{ background:transparent!important; padding:.7rem 0; }
#index #wrapper{ padding-top:0!important; margin-top:0!important; background:transparent!important; box-shadow:none!important; }
#index #wrapper .container{ padding-top:0!important; }
#index .breadcrumb{ display:none!important; }

/* Hero full-bleed e alto */
.ct-hero{ width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
#index .ct-hero{ min-height:92vh; margin-top:0; }
#index .ct-hero__inner{ padding-top:160px; padding-bottom:60px; }
.ct-hero__veil{ background:linear-gradient(180deg,rgba(13,11,9,.78) 0%,rgba(13,11,9,.40) 35%,rgba(13,11,9,.70) 100%); }
.ct-hero__title{ font-size:clamp(2.6rem,6vw,5rem); }

/* ============ FIX header overlap + posição do hero ============ */
/* As colunas .col-md-12/.col-sm-12 têm width:100% e empilham/sobrepõem no flex.
   Forçar largura automática para logo e menu ficarem lado a lado sem colisão. */
.header-top .container .ct-header-row{ flex-wrap:nowrap; gap:2rem; }
.header-top .container .ct-header-row > div{ width:auto!important; max-width:none!important; }
#_desktop_logo{ flex:0 0 auto!important; padding:0 1.5rem 0 0!important; }
.header-top .col-sm-12.position-static{ flex:1 1 auto!important; }
#_desktop_top_menu .top-menu{ flex-wrap:nowrap; white-space:nowrap; }

/* Reservar espaço do header e centrar o texto do hero por baixo dele */
#index .ct-hero{ align-items:center; padding-top:96px; }
#index .ct-hero__inner{ padding-top:0; padding-bottom:0; }
.ct-hero__title{ font-size:clamp(2.3rem,4.6vw,4rem); line-height:1.05; }

/* ============ FIX definitivo: separar logo do menu ============ */
.header-top .container .ct-header-row{ display:flex!important; align-items:center!important; flex-wrap:nowrap!important; }
.header-top #_desktop_logo{ flex:0 0 230px!important; width:230px!important; max-width:230px!important; margin:0!important; padding:0!important; text-align:left!important; }
.header-top .col-sm-12.position-static{ flex:1 1 0%!important; width:auto!important; max-width:none!important; min-width:0!important; padding-left:2rem!important; display:flex!important; align-items:center!important; gap:1.5rem!important; }
#_desktop_top_menu{ flex:1 1 auto!important; }
#_desktop_top_menu .top-menu{ display:flex!important; justify-content:flex-start!important; flex-wrap:nowrap!important; gap:1.25rem!important; margin:0!important; padding:0!important; }
#search_widget{ flex:0 0 auto!important; }

/* ============ HEADER — estrutura própria limpa (substitui hacks anteriores) ============ */
.header-top .ct-header-row{ display:flex!important; align-items:center; flex-wrap:nowrap; gap:2.5rem; width:100%; }
.ct-logo{ flex:0 0 auto!important; width:auto!important; max-width:none!important; min-width:0!important; margin:0!important; padding:0!important; }
.ct-logo h1{ margin:0; line-height:0; }
#header .logo{ max-height:58px; width:auto; }
.ct-header-nav{ flex:1 1 auto; min-width:0; display:flex!important; align-items:center; justify-content:space-between; gap:1.5rem; }
.ct-header-nav #_desktop_top_menu{ flex:1 1 auto; min-width:0; }
.ct-header-nav #_desktop_top_menu .top-menu{ display:flex!important; flex-wrap:nowrap; justify-content:flex-start; gap:1.3rem; margin:0; padding:0; }
.ct-header-nav #search_widget{ flex:0 0 auto; min-width:240px; width:auto; }

/* ============ FIX barra branca + menu a caber todo ============ */
/* Barra branca: área de notificações vazia + garantir topo transparente (home) */
#index #notifications{ display:none!important; }
#index #wrapper,#index #content-wrapper,#index #main,#index #content,#index #wrapper > .container{
  background:transparent!important; padding-top:0!important; margin-top:0!important; }

/* Menu cabe todo: pesquisa mais estreita + menu mais compacto */
.ct-header-nav{ gap:1.25rem!important; }
.ct-header-nav #search_widget{ min-width:190px!important; max-width:240px!important; flex:0 0 auto!important; }
.ct-header-nav #_desktop_top_menu .top-menu{ gap:1rem!important; }
.ct-header-nav #_desktop_top_menu .top-menu>li>a{ font-size:.9rem!important; letter-spacing:.02em!important; padding:.4rem .2rem!important; }
#header .logo{ max-height:54px; }

/* ============ Topo do conteúdo (home): colapsar faixa do breadcrumb ============ */
#index .breadcrumb{ display:none!important; height:0!important; min-height:0!important; margin:0!important; padding:0!important; border:0!important; }

/* ============ Dropdown "Sobre Nós" (Eventos + Contactos) ============ */
.ct-has-sub{ position:relative; }
.ct-has-sub > a::after{ content:" ▾"; font-size:.8em; opacity:.85; }
.ct-submenu{ position:absolute; top:100%; left:0; min-width:190px; list-style:none; margin:.2rem 0 0; padding:.4rem 0;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 12px 30px rgba(0,0,0,.5); opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .18s, transform .18s, visibility .18s; z-index:300; }
.ct-has-sub:hover .ct-submenu{ opacity:1; visibility:visible; transform:translateY(0); }
.ct-submenu li{ display:block; }
.ct-submenu a{ display:block; padding:.55rem 1.1rem; color:var(--text)!important; font-size:.88rem;
  text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
.ct-submenu a:hover{ background:var(--surface-2); color:var(--gold)!important; }

/* Menu mais respirado (já só 5 itens de topo) */
.ct-header-nav #_desktop_top_menu .top-menu{ gap:1.6rem!important; }
.ct-header-nav #_desktop_top_menu .top-menu>li>a{ font-size:.95rem!important; }
.ct-header-nav #search_widget{ min-width:210px!important; max-width:260px!important; }

/* ============ FIX faixa branca: #content tem background:#fff + padding ============ */
#index #content{ background:transparent!important; padding:0!important; margin:0!important; }
#index #main,#index #content-wrapper,#index #wrapper > .container{ background:transparent!important; padding-top:0!important; margin-top:0!important; }
#index .header-banner{ display:none!important; }
/* (geral, todas as páginas) #content branco -> só onde faz sentido manter; na home é transparente */

/* ============ Campo de pesquisa: mais estreito ============ */
.ct-header-nav #search_widget{ min-width:180px!important; max-width:215px!important; }
.ct-header-nav #search_widget input[type=text]{ font-size:.85rem; }

/* ============ Topo: seletores legíveis (língua/moeda/conta/carrinho) ============ */
#header .header-nav, #header .header-nav a, #header .header-nav span, #header .header-nav .expand-more,
.language-selector, .language-selector *, #_desktop_language_selector *, .currency-selector *,
.user-info, .user-info *, #_desktop_cart, #_desktop_cart *{ color:var(--text)!important; }
.header-nav .dropdown-menu{ background:var(--surface)!important; border:1px solid var(--line)!important; }
.header-nav .dropdown-menu a{ color:var(--text)!important; }
.header-nav .dropdown-menu a:hover{ color:var(--gold)!important; background:var(--surface-2)!important; }

/* ============ Carrinho: sem anel amarelo (contagem em texto dourado) ============ */
.blockcart .cart-products-count{ background:transparent!important; color:var(--gold)!important; border:0!important;
  box-shadow:none!important; font-weight:700; padding:0 .1rem!important; min-width:auto!important; height:auto!important;
  line-height:normal!important; position:static!important; }

/* ============ MOBILE ============ */
@media (max-width: 767px){
  /* header normal (sem overlay) no telemóvel */
  #index #header{ position:static!important; background:var(--bg)!important; }

  /* menu mobile no tema escuro */
  #mobile_top_menu_wrapper{ background:var(--surface)!important; border-top:1px solid var(--line); }
  #mobile_top_menu_wrapper a, #mobile_top_menu_wrapper span, #mobile_top_menu_wrapper label,
  #mobile_top_menu_wrapper .top-menu .category a, #mobile_top_menu_wrapper .js-top-menu-bottom *{ color:var(--text)!important; }
  #mobile_top_menu_wrapper .top-menu li{ border-bottom:1px solid var(--line); }
  #mobile_top_menu_wrapper .top-menu a:hover{ color:var(--gold)!important; }
  #mobile_top_menu_wrapper select{ background:var(--surface-2)!important; color:var(--text)!important; border:1px solid var(--line)!important; border-radius:6px; padding:.25rem .4rem; }

  /* hero compacto e enquadrado para telemóvel */
  #index .ct-hero{ min-height:60vh; padding-top:1.5rem; padding-bottom:1rem; }
  #index .ct-hero__inner{ padding:1rem; }
  .ct-hero__eyebrow{ font-size:.72rem; }
  .ct-hero__title{ font-size:1.85rem; line-height:1.08; }
  .ct-hero__sub{ font-size:1rem; }
  .ct-hero__veil{ background:linear-gradient(180deg,rgba(13,11,9,.55) 0%,rgba(13,11,9,.45) 40%,rgba(13,11,9,.85) 100%); }
  .ct-hero__cta{ flex-direction:column; }
  .ct-hero__cta .btn{ width:100%; text-align:center; }
}

/* ============ MOBILE: encostar o hero ao header (sem gap) ============ */
@media (max-width: 767px){
  #index #header{ margin-bottom:0!important; padding-bottom:0!important; border-bottom:0!important; }
  #index #header .header-top{ padding-top:.2rem!important; padding-bottom:.5rem!important; }
  #index .header-nav{ margin-bottom:0!important; }
  #index #wrapper,
  #index #wrapper > .container,
  #index #content-wrapper,
  #index #main,
  #index #content,
  #index .ct-hero{ margin-top:0!important; padding-top:0!important; }
}

/* ============ MOBILE (final): foto do hero como fundo do header+pesquisa ============ */
@media (max-width: 767px){
  /* header sobreposto à foto (igual ao desktop) */
  #index #header{ position:absolute!important; top:0; left:0; right:0; background:transparent!important;
                  margin:0!important; padding:0!important; border:0!important; }
  #index #header .header-nav{ background:rgba(0,0,0,.30)!important; margin-bottom:0!important; }
  #index #header .header-top{ background:transparent!important; }
  /* hero encostado ao topo, com espaço para o header+pesquisa por cima */
  #index .ct-hero{ min-height:82vh!important; margin-top:0!important; padding-top:140px!important; padding-bottom:1.5rem!important; }
  #index .ct-hero__inner{ padding:0 1rem!important; }
}

/* ============ Header fixo + escurece no scroll (home) ============ */
#index #header{ position:fixed!important; top:0; left:0; right:0; z-index:100;
  background:linear-gradient(180deg, rgba(13,11,9,.92) 0%, rgba(13,11,9,.55) 55%, rgba(13,11,9,0) 100%)!important;
  transition:background .25s ease, box-shadow .25s ease, border-color .25s ease; }
#index #header .header-nav{ position:static!important; background:transparent!important; border-bottom:1px solid rgba(255,255,255,.10); }
#index #header .header-top{ background:transparent!important; }
#index #header.ct-stuck{ background:rgba(13,11,9,.97)!important; box-shadow:0 6px 24px rgba(0,0,0,.55); border-bottom:1px solid var(--line); }
#index #header.ct-stuck .header-nav{ border-bottom-color:rgba(255,255,255,.06); }
@media (max-width: 767px){
  #index #header{ position:fixed!important;
    background:linear-gradient(180deg, rgba(13,11,9,.95) 0%, rgba(13,11,9,.55) 60%, rgba(13,11,9,0) 100%)!important; }
  #index #header.ct-stuck{ background:rgba(13,11,9,.98)!important; }
}

/* ============ MOBILE: logo no hero, pesquisa no header ============ */
.ct-hero__logo{ display:none; } /* desktop: logo fica no header */
@media (max-width: 767px){
  /* tirar o logo do header (vai para o hero) */
  #_mobile_logo, .top-logo{ display:none!important; }
  /* logo em destaque no hero, centrado e enquadrado */
  .ct-hero__logo{ display:block; width:210px; max-width:60%; height:auto; margin:0 auto 1.1rem; }
  #index .ct-hero__inner{ text-align:center; }
  #index .ct-hero{ padding-top:150px!important; }
  .ct-hero__cta{ align-items:center; }
  .ct-hero__promo{ justify-content:center; }
}

/* ============ MOBILE: pesquisa na linha do header (centro) ============ */
@media (max-width: 767px){
  .header-nav .hidden-md-up{ display:flex!important; align-items:center; gap:.6rem; width:100%; }
  .header-nav #menu-icon{ float:none!important; margin:0!important; flex:0 0 auto; }
  .header-nav .hidden-md-up #search_widget{ flex:1 1 auto; min-width:0!important; max-width:none!important; margin:0!important; }
  .header-nav .hidden-md-up #search_widget form{ width:100%; }
  .header-nav .hidden-md-up .float-xs-right{ float:none!important; margin:0 0 0 .1rem!important; flex:0 0 auto; }
  /* hero: já não há linha de pesquisa separada -> menos espaço no topo */
  #index .ct-hero{ padding-top:90px!important; }
}

/* ============ MOBILE (correção): repor header normal + pesquisa no menu ============ */
@media (max-width: 767px){
  /* repor o layout normal do header mobile (floats): ☰ à esquerda, ícones à direita */
  .header-nav .hidden-md-up{ display:block!important; }
  .header-nav #menu-icon{ float:left!important; margin:0!important; }
  .header-nav .hidden-md-up .float-xs-right{ float:right!important; margin-left:.4rem!important; }
  .header-nav .hidden-md-up #_mobile_cart,
  .header-nav .hidden-md-up #_mobile_user_info{ float:right!important; }

  /* pesquisa agora vive dentro do dropdown do menu */
  #mobile_top_menu_wrapper #search_widget{ display:block!important; width:100%!important; max-width:none!important;
    margin:0 0 1rem!important; padding:0 1rem!important; }
  #mobile_top_menu_wrapper #search_widget form{ width:100%; }
  #mobile_top_menu_wrapper #search_widget input[type=text]{ width:100%; }

  /* hero: logo em destaque, sem pesquisa por cima */
  #index .ct-hero{ padding-top:88px!important; }
}

/* ============ MOBILE: logo2 no centro do header ============ */
@media (max-width: 767px){
  #_mobile_logo, .top-logo{
    display:inline-block!important; width:150px; max-width:48vw; height:40px;
    background:url('/themes/classic/assets/img/logo2-light.png') center/contain no-repeat;
    vertical-align:middle; margin:0 auto;
  }
  #_mobile_logo img{ display:none!important; }
  #_mobile_logo a{ display:block; width:100%; height:100%; }
}

/* ============ MOBILE (final): header em flex, tudo alinhado ============ */
@media (max-width: 767px){
  .header-nav .container,
  .header-nav .container > .row{ width:100%; margin:0; }
  .header-nav .hidden-md-up{ display:flex!important; align-items:center; gap:.5rem; width:100%; padding:.2rem 0; }
  .header-nav .hidden-md-up #menu-icon{ float:none!important; margin:0!important; flex:0 0 auto; line-height:0; }
  .header-nav .hidden-md-up #_mobile_logo,
  .header-nav .hidden-md-up .top-logo{ float:none!important; flex:1 1 auto; height:40px; width:auto; margin:0;
    background:url('/themes/classic/assets/img/logo2-light.png') center/contain no-repeat; }
  .header-nav .hidden-md-up #_mobile_logo img{ display:none!important; }
  .header-nav .hidden-md-up #_mobile_cart,
  .header-nav .hidden-md-up #_mobile_user_info,
  .header-nav .hidden-md-up .float-xs-right{ float:none!important; margin:0!important; flex:0 0 auto; }
}

/* ============ MOBILE (final v2): header alinhado + logo menor ============ */
@media (max-width: 767px){
  .header-nav .hidden-md-up{ display:flex!important; flex-wrap:nowrap!important; align-items:center!important; gap:.45rem; width:100%; }
  .header-nav .hidden-md-up > #menu-icon{ flex:0 0 auto!important; float:none!important; margin:0!important; }
  .header-nav .hidden-md-up > #_mobile_logo,
  .header-nav .hidden-md-up > .top-logo{ flex:1 1 0!important; min-width:0!important; width:auto!important; height:32px!important; max-width:none!important; margin:0!important;
    background:url('/themes/classic/assets/img/logo2-light.png') center/contain no-repeat!important; }
  .header-nav .hidden-md-up > #_mobile_logo img{ display:none!important; }
  /* wrapper dos ícones (carrinho + conta) lado a lado */
  .header-nav .hidden-md-up > div:last-child{ flex:0 0 auto!important; display:flex!important; align-items:center!important; gap:.25rem!important; }
  .header-nav .hidden-md-up > div:last-child > div{ float:none!important; margin:0!important; }
}

/* ============ MOBILE: logo mais pequeno + ícones alinhados ============ */
@media (max-width: 767px){
  .header-nav .hidden-md-up > #_mobile_logo,
  .header-nav .hidden-md-up > .top-logo{ height:26px!important; }
  .header-nav .hidden-md-up > #menu-icon .material-icons{ font-size:26px!important; line-height:1!important; vertical-align:middle; }
  .header-nav .hidden-md-up > div:last-child{ align-items:center!important; }
  .header-nav .hidden-md-up > div:last-child .material-icons{ font-size:22px!important; line-height:1!important; vertical-align:middle; }
  .header-nav .hidden-md-up > div:last-child > div{ display:flex!important; align-items:center!important; }
}

/* ============ MOBILE: logo 20px + alinhar ícone de utilizador ============ */
@media (max-width: 767px){
  .header-nav .hidden-md-up > #_mobile_logo,
  .header-nav .hidden-md-up > .top-logo{ height:20px!important; }
  .header-nav .hidden-md-up > div:last-child{ display:flex!important; align-items:center!important; }
  .header-nav .hidden-md-up > div:last-child > div{ display:flex!important; align-items:center!important;
    margin:0!important; padding:0!important; line-height:1!important; height:auto!important; }
  .header-nav .hidden-md-up #_mobile_cart a,
  .header-nav .hidden-md-up #_mobile_user_info a,
  .header-nav .hidden-md-up #_mobile_cart > *,
  .header-nav .hidden-md-up #_mobile_user_info > *{ display:flex!important; align-items:center!important; margin:0!important; padding:0!important; }
  .header-nav .hidden-md-up > div:last-child .material-icons{ font-size:22px!important; line-height:1!important; display:block!important; vertical-align:middle; }
}

/* ============ MOBILE: tamanho do logo fixado via background-size (38px) ============ */
@media (max-width: 767px){
  .header-nav .hidden-md-up > #_mobile_logo,
  .header-nav .hidden-md-up > .top-logo{
    flex:1 1 auto!important; height:38px!important; min-width:0!important; margin:0!important;
    background-image:url('/themes/classic/assets/img/logo2-light.png')!important;
    background-repeat:no-repeat!important;
    background-position:center center!important;
    background-size:auto 38px!important;
  }
}

/* ============ MOBILE: logo a 38px (sobrepõe theme.css:72 #header .top-logo) ============ */
@media (max-width: 767px){
  #header .top-logo,
  #header #_mobile_logo{
    min-height:38px!important; height:38px!important; max-height:38px!important;
    background-image:url('/themes/classic/assets/img/logo2-light.png')!important;
    background-repeat:no-repeat!important;
    background-position:center center!important;
    background-size:auto 38px!important;
  }
}

/* ===================================================================
   AJUSTES v2 — dourado torrado + botões modernos + banner de confiança
   =================================================================== */

/* ---------- Botões modernos (gradiente + sombra) ---------- */
.btn-primary,.btn.btn-primary,button.btn-primary,.product-add-to-cart .btn,.btn-primary:focus{
  background:linear-gradient(135deg, var(--gold-2) 0%, var(--gold) 52%, var(--gold-deep) 100%)!important;
  border:0!important; color:var(--gold-ink)!important;
  text-transform:uppercase; font-weight:700; letter-spacing:.04em; border-radius:10px;
  box-shadow:0 6px 18px rgba(169,118,12,.38), inset 0 1px 0 rgba(255,255,255,.28)!important;
  transition:transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-primary:hover{ transform:translateY(-2px); filter:brightness(1.06);
  box-shadow:0 12px 28px rgba(169,118,12,.52), inset 0 1px 0 rgba(255,255,255,.35)!important; }
.btn-secondary,.btn-tertiary,.btn-outline{
  background:rgba(255,255,255,.04)!important; border:1.5px solid var(--gold)!important; color:var(--gold)!important;
  text-transform:uppercase; font-weight:600; border-radius:10px;
  box-shadow:0 4px 14px rgba(0,0,0,.30); transition:all .18s ease;
}
.btn-secondary:hover,.btn-tertiary:hover{ background:var(--gold)!important; color:var(--gold-ink)!important;
  transform:translateY(-2px); box-shadow:0 10px 24px rgba(169,118,12,.45); }

/* Botões do hero: mais compactos */
.ct-hero__cta .btn{ padding:.72rem 1.6rem!important; font-size:.95rem!important; }

/* ---------- Banner de confiança (entre hero e loja) ---------- */
.ct-trust{ width:100vw; margin-left:calc(50% - 50vw);
  background:linear-gradient(180deg,#1d1812 0%,#16120c 100%);
  border-top:1px solid rgba(217,154,30,.28); border-bottom:1px solid rgba(217,154,30,.28); }
.ct-trust__inner{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1.1rem 2rem; padding:1.15rem 15px; }
.ct-trust__item{ display:flex; align-items:center; gap:.7rem; flex:1 1 210px; min-width:180px; }
.ct-trust__ic{ font-size:1.55rem; line-height:1; }
.ct-trust__txt{ display:flex; flex-direction:column; line-height:1.2; }
.ct-trust__txt strong{ color:var(--text); font-weight:700; font-size:.95rem; }
.ct-trust__txt small{ color:var(--muted); font-size:.78rem; }
.ct-trust__item + .ct-trust__item{ border-left:1px solid var(--line); padding-left:1.5rem; }
@media (max-width:767px){
  .ct-trust__inner{ gap:1rem 1.2rem; }
  .ct-trust__item{ flex:1 1 44%; min-width:0; }
  .ct-trust__item + .ct-trust__item{ border-left:0; padding-left:0; }
}

/* ===================================================================
   AJUSTES v3 — botões planos (cor torrada) + trust bar estilo CALLURIC
   =================================================================== */

/* Botões: voltar ao plano (sem gradiente/sombra pesada), cor torrada */
.btn-primary,.btn.btn-primary,button.btn-primary,.product-add-to-cart .btn,.btn-primary:focus{
  background:var(--gold)!important; background-image:none!important; border:0!important; color:var(--gold-ink)!important;
  box-shadow:none!important; border-radius:8px; text-transform:uppercase; font-weight:700; letter-spacing:.03em;
  transition:background .15s ease;
}
.btn-primary:hover{ background:var(--gold-2)!important; transform:none!important; filter:none!important; box-shadow:none!important; }
.btn-secondary,.btn-tertiary,.btn-outline{
  background:transparent!important; border:1.5px solid var(--gold)!important; color:var(--gold)!important;
  box-shadow:none!important; border-radius:8px; text-transform:uppercase; font-weight:600;
}
.btn-secondary:hover,.btn-tertiary:hover{ background:var(--gold)!important; color:var(--gold-ink)!important; transform:none!important; box-shadow:none!important; }

/* Trust bar: linha única, maiúsculas, separadores verticais (estilo CALLURIC) */
.ct-trust{ width:100vw; margin-left:calc(50% - 50vw);
  background:#15120c; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ct-trust__inner{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:0; padding:.9rem 15px; }
.ct-trust__item{ color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-size:.76rem; font-weight:600;
  padding:.15rem 1.8rem; position:relative; white-space:nowrap; }
.ct-trust__item:not(:last-child)::after{ content:""; position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:1px; height:14px; background:rgba(217,154,30,.5); }
@media (max-width:767px){
  .ct-trust__inner{ gap:.2rem .2rem; padding:.7rem 10px; }
  .ct-trust__item{ font-size:.64rem; padding:.2rem .7rem; letter-spacing:.06em; }
  .ct-trust__item:not(:last-child)::after{ height:10px; }
}

/* ===================================================================
   AJUSTE v4 — trust bar: 1 mensagem, fundo preto, letras brancas
   =================================================================== */
.ct-trust{ width:100vw; margin-left:calc(50% - 50vw); background:#000!important; border:0!important; }
.ct-trust__inner{ display:flex; justify-content:center; align-items:center; padding:.72rem 15px; }
.ct-trust__item{ color:#fff!important; font-family:'Inter',-apple-system,Segoe UI,sans-serif!important;
  text-transform:uppercase; letter-spacing:.2em; font-size:.82rem; font-weight:500; white-space:nowrap; padding:0; }
.ct-trust__item::after{ display:none!important; }
@media (max-width:767px){
  .ct-trust__item{ font-size:.62rem; letter-spacing:.13em; white-space:normal; text-align:center; }
}

/* ===================================================================
   AJUSTE v5 — trust bar centrada + remover borda entre hero e barra
   =================================================================== */
/* remover a linha entre a foto e a barra preta */
.ct-hero, #index .ct-hero{ border-bottom:0!important; box-shadow:none!important; }
.ct-trust{ border-top:0!important; border-bottom:0!important; }

/* centrar mesmo o texto da trust bar */
.ct-trust__inner{ display:flex!important; justify-content:center!important; align-items:center!important;
  text-align:center!important; width:100%; }
.ct-trust__item{ margin:0 auto!important; text-align:center!important; display:inline-block; }

/* ===================================================================
   AJUSTE v6 — trust bar: mais espaço + centragem garantida
   =================================================================== */
.ct-trust__inner{ padding:1.1rem 15px!important; min-height:48px; display:flex!important;
  align-items:center!important; justify-content:center!important; }
.ct-trust__item{ width:100%!important; text-align:center!important; margin:0!important; display:block!important; }

/* ===================================================================
   AJUSTE v7 — trust bar: padding igual cima/baixo, frase centrada
   =================================================================== */
.ct-trust__inner{ display:block!important; min-height:0!important; padding:0.8rem 15px!important;
  text-align:center!important; line-height:1.2; }
.ct-trust__item{ display:inline!important; width:auto!important; margin:0!important; }

/* ===================================================================
   AJUSTE v8 — trust bar: centragem vertical real (line-height:1 + flex)
   =================================================================== */
.ct-trust__inner{ display:flex!important; align-items:center!important; justify-content:center!important;
  padding:0.95rem 15px!important; min-height:0!important; }
.ct-trust__item{ display:block!important; width:100%!important; text-align:center!important;
  line-height:1!important; margin:0!important; padding:0!important; }

/* ===================================================================
   AJUSTE v9 (FINAL) — trust bar com height = line-height (centragem perfeita)
   =================================================================== */
.ct-trust{ width:100vw!important; margin-left:calc(50% - 50vw)!important; background:#000!important; border:0!important; padding:0!important; }
.ct-trust__inner{ display:block!important; max-width:none!important; width:100%!important; margin:0!important; padding:0!important; min-height:0!important; }
.ct-trust__item{ display:block!important; width:100%!important; height:46px!important; line-height:46px!important;
  text-align:center!important; color:#fff!important; text-transform:uppercase; letter-spacing:.2em;
  font-family:'Inter',-apple-system,Segoe UI,sans-serif!important; font-size:.8rem!important; font-weight:500!important;
  margin:0!important; padding:0!important; white-space:nowrap; }
@media (max-width:767px){
  .ct-trust__item{ height:40px!important; line-height:40px!important; font-size:.6rem!important; letter-spacing:.12em; }
}

/* ===================================================================
   GRELHA DE DESTAQUES — 4x2 desktop / 3x4 mobile + cartões dark
   =================================================================== */
.featured-products{ padding:2.5rem 0 1rem; }
.featured-products .products{ display:grid!important; grid-template-columns:repeat(4,1fr)!important; gap:1.3rem!important; margin:0!important; }
.featured-products .products > *{ width:auto!important; max-width:none!important; margin:0!important; padding:0!important; }
/* desktop: 2 linhas de 4 = 8 produtos (esconder 9º-12º) */
.featured-products .products > *:nth-child(n+9){ display:none!important; }
@media (max-width:767px){
  .featured-products .products{ grid-template-columns:repeat(3,1fr)!important; gap:.6rem!important; }
  .featured-products .products > *:nth-child(n+9){ display:block!important; } /* mostrar os 12 (4x3) */
}

/* cartões: área de nome/preço também escura */
.product-miniature .product-description,
.product-miniature .product-description-short,
.featured-products .product-description{ background:var(--surface)!important; border-top:1px solid var(--line); }
.product-miniature .product-title a{ color:var(--text)!important; }
.product-miniature .regular-price{ color:var(--muted)!important; text-decoration:line-through; }
.product-miniature .price,.product-price-and-shipping .price{ color:var(--gold)!important; }
/* badge de desconto na cor da marca */
.product-flag.discount,.product-flag.on-sale,.product-flag.sale{ background:var(--gold)!important; color:var(--gold-ink)!important; }

/* ===================================================================
   GRELHA — corrigir overflow mobile (min-width:0) + 2 colunas no telemóvel
   =================================================================== */
.featured-products .products > *{ min-width:0!important; }
.product-miniature img,.product-miniature .product-thumbnail img{ width:100%!important; height:auto!important; max-width:100%!important; display:block; }
@media (max-width:767px){
  .featured-products .products{ grid-template-columns:repeat(2,1fr)!important; gap:.7rem!important; }
  .featured-products .products > *:nth-child(n+9){ display:block!important; } /* manter os 12 */
}

/* ===================================================================
   Botão "Adicionar ao carrinho" nos cartões de produto
   =================================================================== */
.product-miniature .product-description{ display:flex!important; flex-direction:column; padding:.85rem .85rem 1rem!important; }
.product-miniature .product-price-and-shipping{ margin-bottom:.2rem; }
.ct-card-actions{ margin-top:auto; padding-top:.7rem; }
.ct-add-to-cart,.ct-view-product{
  display:inline-flex!important; align-items:center; justify-content:center; gap:.4rem;
  width:100%; padding:.58rem .6rem!important; font-size:.82rem!important; border-radius:8px; line-height:1.1;
}
.ct-add-to-cart .material-icons{ font-size:18px; }
@media (max-width:767px){
  .ct-add-to-cart,.ct-view-product{ font-size:.72rem!important; padding:.5rem .35rem!important; }
  .ct-add-to-cart .material-icons{ font-size:15px; }
}

/* ===================================================================
   GRELHA DESTAQUES (consolidado) — contida, sem overflow, cartões alinhados
   =================================================================== */
.featured-products{ max-width:1280px; margin-left:auto!important; margin-right:auto!important;
  padding:2.5rem 15px 1.5rem!important; }
.featured-products .products{ display:grid!important; grid-template-columns:repeat(4,1fr)!important;
  gap:1.3rem!important; margin:0!important; padding:0!important; width:100%!important; box-sizing:border-box!important; list-style:none; }
.featured-products .products > *{ min-width:0!important; max-width:none!important; width:auto!important;
  margin:0!important; box-sizing:border-box!important; height:100%; }
.featured-products .products > *:nth-child(n+9){ display:none!important; }
@media (max-width:767px){
  .featured-products .products{ grid-template-columns:repeat(2,1fr)!important; gap:.7rem!important; }
  .featured-products .products > *:nth-child(n+9){ display:block!important; }
}
/* cartão em coluna -> botão encostado ao fundo, alturas iguais */
.product-miniature{ height:100%; display:flex!important; flex-direction:column; }
.product-miniature .thumbnail-container{ display:flex!important; flex-direction:column; height:100%; flex:1 1 auto; }
.product-miniature .product-description{ display:flex!important; flex-direction:column; flex:1 1 auto; }
.product-miniature .ct-card-actions{ margin-top:auto; }

/* ===================================================================
   CARTÃO DE PRODUTO — conteúdo contido e centrado, sem "vista rápida"
   =================================================================== */
/* esconder a faixa branca "Vista rápida" / variantes */
.product-miniature .highlighted-informations,
.product-miniature .quick-view{ display:none!important; }

/* conter tudo à largura do card */
.product-miniature,
.product-miniature .thumbnail-container,
.product-miniature .product-description,
.product-miniature .product-thumbnail{ width:100%!important; min-width:0!important; max-width:none!important; }

/* imagem centrada e à medida do card */
.product-miniature .product-thumbnail{ display:flex!important; justify-content:center; align-items:center; overflow:hidden; }
.product-miniature .product-thumbnail img{ width:100%!important; height:auto!important; display:block; object-fit:cover; }

/* texto centrado */
.product-miniature .product-description{ text-align:center!important; padding:.9rem!important; align-items:center; }
.product-miniature .product-title,
.product-miniature .product-price-and-shipping{ text-align:center!important; width:100%; }

/* botão centrado, mais pequeno (não cola às bordas) */
.ct-card-actions{ display:flex!important; justify-content:center; margin-top:auto; padding-top:.8rem; }
.ct-add-to-cart,.ct-view-product{ width:auto!important; display:inline-flex!important; padding:.5rem 1.3rem!important; }

/* ===================================================================
   CARTÃO — tirar product-flags do fluxo (remove "dobra" no fundo) + respiro botão
   =================================================================== */
.product-miniature .thumbnail-container{ position:relative; }
.product-miniature .product-flags{ position:absolute!important; top:.55rem; left:.55rem; right:auto!important;
  margin:0!important; padding:0!important; display:flex; flex-direction:column; gap:.3rem; z-index:3; }
.product-miniature .product-flag{ position:static!important; top:auto!important; left:auto!important; right:auto!important; margin:0!important; }
/* respiro entre o botão e o limite inferior do card */
.product-miniature .product-description{ padding:.9rem .9rem 1.15rem!important; }
.product-miniature .ct-card-actions{ padding-top:.85rem!important; padding-bottom:0!important; }

/* ===================================================================
   CARTÃO (FINAL) — altura natural (sem dobra) + títulos alinhados
   =================================================================== */
.featured-products .products{ align-items:start!important; }
.featured-products .products > *{ height:auto!important; }
.product-miniature{ height:auto!important; }
.product-miniature .thumbnail-container{ height:auto!important; flex:none!important; }
.product-miniature .product-description{ flex:none!important; padding:.85rem .9rem 1rem!important; }
.product-miniature .product-title{ min-height:2.4em; display:flex!important; align-items:center; justify-content:center; margin:.15rem 0 .35rem!important; line-height:1.2; }
.product-miniature .ct-card-actions{ margin-top:.75rem!important; padding-top:0!important; }

/* ===================================================================
   CARTÃO — remover bordo/sombra interna (a "dobra") — só o cartão exterior tem bordo
   =================================================================== */
.product-miniature{ border:1px solid var(--line)!important; border-radius:var(--radius); overflow:hidden; background:var(--surface)!important; box-shadow:none; }
.product-miniature .thumbnail-container{ border:0!important; background:transparent!important; border-radius:0!important; box-shadow:none!important; margin:0!important; }
.product-miniature .product-description{ border:0!important; }

/* ===================================================================
   HOME — secções finais: sobre, banner CTA, grelha genérica, títulos
   =================================================================== */
.ct-section-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:clamp(1.6rem,3vw,2.4rem);
  letter-spacing:.03em; color:var(--text); margin:0 0 1rem; line-height:1.1; }
.ct-section-title--center{ text-align:center; position:relative; padding-bottom:.8rem; margin:0 auto 2rem; }
.ct-section-title--center::after{ content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:64px; height:3px; background:var(--gold); }
.ct-eyebrow{ display:inline-block; color:var(--gold); text-transform:uppercase; letter-spacing:.22em; font-size:.78rem; font-weight:600; margin-bottom:.6rem; }
.ct-eyebrow--gold{ color:var(--gold); }

/* grelha genérica (.ct-pgrid) — contém o widget e aplica a mesma grelha */
.ct-pgrid{ max-width:1280px; margin:0 auto; padding:2.5rem 15px 1.5rem; }
.ct-pgrid > section,.ct-pgrid .featured-products{ max-width:none!important; width:auto!important; padding:0!important; margin:0!important; }
.ct-pgrid .products{ display:grid!important; grid-template-columns:repeat(4,1fr)!important; gap:1.3rem!important; margin:0!important; padding:0!important; list-style:none; align-items:start; }
.ct-pgrid .products > *{ min-width:0!important; max-width:none!important; width:auto!important; margin:0!important; height:auto!important; }
.ct-pgrid .products > *:nth-child(n+9){ display:none!important; }
@media (max-width:767px){
  .ct-pgrid .products{ grid-template-columns:repeat(2,1fr)!important; gap:.7rem!important; }
  .ct-pgrid .products > *:nth-child(n+9){ display:block!important; }
}

/* SOBRE A EMPRESA */
.ct-about{ background:linear-gradient(180deg,#191712,#15120d); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ct-about__inner{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; padding:3.2rem 15px; }
.ct-about__media img{ width:100%; height:100%; max-height:400px; object-fit:cover; border-radius:10px; display:block; }
.ct-about__text p{ color:var(--muted); line-height:1.75; margin-bottom:1rem; }
.ct-about__text .btn{ margin-top:.6rem; }
@media (max-width:767px){ .ct-about__inner{ grid-template-columns:1fr; gap:1.4rem; padding:2.2rem 15px; } .ct-about__media img{ max-height:230px; } }

/* BANNER FINAL (CTA) */
.ct-cta{ width:100vw; margin-left:calc(50% - 50vw); margin-top:2.5rem;
  background:radial-gradient(130% 150% at 50% 0%, #2a2013 0%, #15120d 55%, #0f0d0b 100%);
  border-top:1px solid rgba(217,154,30,.32); }
.ct-cta__inner{ text-align:center; padding:3.6rem 15px; }
.ct-cta__title{ font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:clamp(1.8rem,4vw,3rem); color:#fff; margin:.2rem 0 .6rem; line-height:1.05; }
.ct-cta__sub{ color:var(--muted); margin-bottom:1.7rem; }
.ct-cta__actions{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }

.ct-hidden-hooks{ display:none; }

/* ===================================================================
   SOBRE A EMPRESA (refinado) — banda full-width, conteúdo padded, foto a preencher
   =================================================================== */
.ct-about{ width:100vw!important; margin-left:calc(50% - 50vw)!important; margin-right:calc(50% - 50vw)!important;
  background:linear-gradient(180deg,#191712,#15120d); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ct-about__inner{ max-width:1200px!important; margin:0 auto!important; display:grid!important;
  grid-template-columns:1fr 1fr; gap:3rem!important; align-items:stretch!important; padding:4rem 24px!important; }
.ct-about__media{ display:flex; }
.ct-about__media img{ width:100%!important; height:100%!important; min-height:340px; max-height:none!important;
  object-fit:cover; border-radius:12px; display:block; }
.ct-about__text{ display:flex; flex-direction:column; justify-content:center; }
.ct-about__text .ct-section-title{ margin-top:.2rem; }
.ct-about__text p{ color:var(--muted); line-height:1.8; margin-bottom:1.1rem; }
.ct-about__text .btn{ margin-top:.8rem; align-self:flex-start; }
@media (max-width:900px){
  .ct-about__inner{ grid-template-columns:1fr!important; gap:1.6rem!important; padding:2.6rem 20px!important; }
  .ct-about__media img{ min-height:220px; max-height:300px!important; }
}

/* ===================================================================
   SOBRE (ajuste fino) — mais padding no topo + centrar conteúdo verticalmente
   =================================================================== */
.ct-about__inner{ padding:4.5rem 28px!important; align-items:center!important; }
.ct-about__media{ align-self:stretch; display:flex; }
.ct-about__media img{ min-height:360px; }
.ct-about__text{ justify-content:center; }
.ct-about__text .ct-eyebrow{ margin-top:0!important; }
@media (max-width:900px){ .ct-about__inner{ padding:2.8rem 20px!important; } .ct-about__media img{ min-height:220px; } }

/* SOBRE — forçar padding simétrico com seletor mais específico */
#index .ct-about > .ct-about__inner{ padding-top:5rem!important; padding-bottom:5rem!important; padding-left:28px!important; padding-right:28px!important; align-items:center!important; }

/* SOBRE — espaçamento vertical na FAIXA (bloco), não no grid interno */
#index .ct-about{ padding-top:4.5rem!important; padding-bottom:4.5rem!important; }
#index .ct-about > .ct-about__inner{ padding-top:0!important; padding-bottom:0!important; align-items:center!important; }
.ct-about__media img{ min-height:300px; }
@media (max-width:900px){ #index .ct-about{ padding-top:2.6rem!important; padding-bottom:2.6rem!important; } }

/* SOBRE — colunas à mesma altura (texto manda), foto preenche sem esticar a faixa */
#index .ct-about > .ct-about__inner{ align-items:stretch!important; }
.ct-about__media img{ min-height:0!important; height:100%!important; }
#index .ct-about{ padding-top:4rem!important; padding-bottom:4rem!important; }

/* SOBRE — usar FLEX em vez de GRID (elimina o espaço-fantasma do grid no fundo) */
#index .ct-about > .ct-about__inner{ display:flex!important; align-items:stretch!important; gap:3rem!important; }
.ct-about__inner > .ct-about__media{ flex:1 1 50%; min-width:0; }
.ct-about__inner > .ct-about__text{ flex:1 1 50%; min-width:0; }
@media (max-width:900px){ #index .ct-about > .ct-about__inner{ flex-direction:column; gap:1.6rem!important; } }

/* CATEGORIAS — espaçamento do topo (descolar da secção acima) */
#index .ct-cats{ padding-top:4rem!important; padding-bottom:3rem!important; }
@media (max-width:900px){ #index .ct-cats{ padding-top:2.6rem!important; padding-bottom:2rem!important; } }

/* CATEGORIAS — vencer a regra #index #wrapper .container{padding-top:0} (mais específico) */
#index #wrapper .ct-cats{ padding-top:4rem!important; padding-bottom:3rem!important; }
@media (max-width:900px){ #index #wrapper .ct-cats{ padding-top:2.6rem!important; padding-bottom:2rem!important; } }

/* ===================================================================
   BANNER FINAL — imagem de fundo (gerada) + escurecido para o texto
   =================================================================== */
.ct-cta{ position:relative; overflow:hidden;
  background:#0f0d0b url('/themes/classic/assets/img/banner-cta.jpg') center/cover no-repeat!important;
  border-top:1px solid rgba(217,154,30,.32); }
.ct-cta::before{ content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(13,11,9,.74) 0%, rgba(13,11,9,.68) 45%, rgba(13,11,9,.82) 100%); }
.ct-cta__inner{ position:relative; z-index:1; }
.ct-cta__title{ text-shadow:0 2px 14px rgba(0,0,0,.65); }
.ct-cta__sub{ text-shadow:0 1px 10px rgba(0,0,0,.6); }
.ct-cta__inner .ct-eyebrow{ text-shadow:0 1px 8px rgba(0,0,0,.6); }

/* ===================================================================
   BANNER FINAL — mais alto + texto centrado (padding na faixa) + sem linha amarela
   =================================================================== */
#index .ct-cta{ padding-top:5.5rem!important; padding-bottom:5.5rem!important; border-top:0!important; }
#index #wrapper .ct-cta__inner{ padding-top:0!important; padding-bottom:0!important; }
@media (max-width:900px){ #index .ct-cta{ padding-top:3rem!important; padding-bottom:3rem!important; } }

/* ===================================================================
   FOOTER — banda escura coesa + ícones sociais tematizados + newsletter
   =================================================================== */
#footer{ background:var(--bg)!important; border-top:1px solid var(--line); padding-top:2.2rem; }

/* ícones sociais (fb/insta) — contorno, cantos, monocromático -> cor no hover */
.block-social{ text-align:center; padding:.4rem 0 1.4rem; }
.block-social .social-icons{ display:inline-flex; gap:.7rem; justify-content:center; padding:0; margin:0; }
.social-icons li{ list-style:none!important; margin:0!important; }
.social-icons li a{ border:1px solid var(--line)!important; border-radius:10px; background-color:var(--surface)!important;
  filter:grayscale(1) brightness(1.5); transition:filter .2s, border-color .2s, transform .2s; }
.social-icons li a:hover{ filter:none; border-color:var(--gold)!important; transform:translateY(-3px); }

/* newsletter — centrada e mais arrumada */
.block_newsletter{ max-width:620px; margin:0 auto 1.6rem; }
.block_newsletter h3,.block_newsletter .h3{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; color:var(--text)!important; }
.block_newsletter .ps-alert-success,.block_newsletter .ps-alert-error{ border-radius:var(--radius); }

/* ===================================================================
   FOOTER — ícones sociais (seletor correto: .block-social li a)
   =================================================================== */
.block-social{ text-align:center!important; padding:.4rem 0 1.4rem!important; }
.block-social ul{ display:inline-flex!important; gap:.7rem!important; padding:0!important; margin:0 auto!important; list-style:none!important; justify-content:center; }
.block-social li{ list-style:none!important; margin:0!important; padding:0!important; }
.block-social li a{ border:1px solid var(--line)!important; border-radius:10px!important; background-color:var(--surface)!important;
  filter:grayscale(1) brightness(1.45); transition:filter .2s, border-color .2s, transform .2s; }
.block-social li a:hover{ filter:none!important; border-color:var(--gold)!important; transform:translateY(-3px); }

/* ===================================================================
   FOOTER — ícones sociais: o glifo está no <li> (background-image);
   o azul é o background-color do <li>. Trocar azul->escuro, manter glifo.
   =================================================================== */
.block-social ul li{ background-color:var(--surface)!important; border:1px solid var(--line)!important;
  border-radius:10px!important; filter:none!important; transition:background-color .2s, border-color .2s, transform .2s; }
.block-social ul li:hover{ background-color:var(--surface-2)!important; border-color:var(--gold)!important; transform:translateY(-3px); }
.block-social ul li a{ background:transparent!important; border:0!important; filter:none!important; }

/* ===================================================================
   FOOTER-TOP — remover o "card" da newsletter; unificar social+newsletter
   num único bloco coeso e centrado (sem caixa a flutuar)
   =================================================================== */
.block_newsletter{ background:transparent!important; border:0!important; box-shadow:none!important;
  max-width:none!important; margin:0!important; padding:.2rem 15px 1.8rem!important; }
.block_newsletter .col-md-8{ float:none!important; margin:0 auto!important; max-width:600px; width:100%; padding:0!important; }
.block_newsletter #block-newsletter-label{ text-align:center!important; font-family:'Oswald',sans-serif;
  text-transform:uppercase; letter-spacing:.02em; font-size:1.18rem; line-height:1.3; color:var(--text)!important; margin-bottom:1.1rem; }
.block_newsletter .input-wrapper{ justify-content:center!important; }
.block_newsletter .col-xs-12{ text-align:center!important; }
.block-social{ padding:1.8rem 0 .2rem!important; }

/* ===================================================================
   FOOTER — juntar o banner ao limite da secção (remover gap)
   =================================================================== */
.page-footer{ margin-top:0!important; padding-top:0!important; }
#footer{ padding-top:0!important; border-top:0!important; margin-top:0!important; }
.block-social{ padding-top:2rem!important; }

/* FOOTER — remover a sombra do classic (#footer box-shadow) que parecia uma linha no topo */
#footer{ box-shadow:none!important; }

/* ===================================================================
   FOOTER — bloco de marca (logo + tagline) no topo das colunas
   =================================================================== */
.ct-footer-brand{ text-align:center; padding:.5rem 0 1.8rem; margin-bottom:2.2rem;
  border-bottom:1px solid var(--line); }
.ct-footer-logo-link{ display:inline-block; }
.ct-footer-logo{ height:56px; width:auto; opacity:.95; transition:opacity .2s; }
.ct-footer-logo-link:hover .ct-footer-logo{ opacity:1; }
.ct-footer-tagline{ color:var(--muted)!important; margin:1rem 0 0; font-size:.95rem; letter-spacing:.02em; }

/* colunas — hover dourado nos links + respiro */
.footer-container .links a,.footer-container .block-contact a{ transition:color .15s; }
.footer-container .links a:hover,.footer-container .block-contact a:hover{ color:var(--gold)!important; }
@media (max-width:767px){ .ct-footer-logo{ height:48px; } .ct-footer-brand{ margin-bottom:1.6rem; } }

/* ===================================================================
   FOOTER — logo PRR (acima do copyright) + copyright melhorado
   =================================================================== */
.ct-footer-prr{ text-align:center; padding-top:1.6rem; margin-top:1.2rem; border-top:1px solid var(--line); }
.ct-footer-prr img{ height:26px; width:auto; max-width:90%; opacity:.85; transition:opacity .2s; }
.ct-footer-prr a:hover img{ opacity:1; }

.ct-copyright{ color:var(--muted)!important; font-size:.86rem; letter-spacing:.03em; padding:1rem 0 .4rem; margin:0; }
.ct-copyright .ct-copyright__brand{ color:var(--text)!important; font-weight:600; }
.ct-copyright .ct-copyright__sep{ margin:0 .5rem; color:var(--gold)!important; }

/* ===================================================================
   PÁGINAS DE CATEGORIA / LISTAGEM — estilo dark (reaproveita a home)
   =================================================================== */
.page-category #wrapper,.page-category #main,#category #wrapper,#category #main{ background:transparent!important; }

/* coluna esquerda: filtros + categorias como painéis surface */
#left-column .block,#search_filters{ background:var(--surface)!important; border:1px solid var(--line)!important;
  border-radius:var(--radius); color:var(--text); padding:1.1rem 1.2rem; }
#search_filters_wrapper{ border:0!important; background:transparent!important; }
#left-column .block .h6,#search_filters .h6,.facet-title{
  font-family:'Oswald',sans-serif!important; text-transform:uppercase; color:var(--text)!important; letter-spacing:.02em; }

/* facets */
.facet{ border-bottom:1px solid var(--line); padding-bottom:.6rem; margin-bottom:.6rem; }
.facet .facet-title{ color:var(--gold)!important; }
.facet .facet-label,.facet .facet-label a,.facet a.js-search-link,.facet .search-link{
  color:var(--muted)!important; transition:color .15s; }
.facet .facet-label a:hover,.facet a.js-search-link:hover,.facet .search-link:hover{ color:var(--gold)!important; }
.facet .magnitude{ color:var(--muted)!important; opacity:.65; }

/* price slider (jQuery UI) */
.ui-slider{ background:var(--surface-2)!important; border:1px solid var(--line)!important; }
.ui-slider .ui-slider-range{ background:var(--gold)!important; }
.ui-slider .ui-slider-handle{ background:var(--gold)!important; border:0!important; border-radius:50%; }

/* filtros ativos / limpar tudo */
.active_filters{ background:var(--surface-2)!important; border:1px solid var(--line)!important; color:var(--text)!important; border-radius:var(--radius); }
.active_filters .filter-block{ background:var(--bg)!important; color:var(--text)!important; border:1px solid var(--line); }
.js-search-filters-clear-all{ background:transparent!important; color:var(--gold)!important; border:1px solid var(--gold)!important; border-radius:999px; }

/* barra de ordenação + contador */
.total-products,.total-products p{ color:var(--muted)!important; }
.products-sort-order .select-title{ background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text)!important; border-radius:var(--radius); }
.products-sort-order .dropdown-menu{ background:var(--surface)!important; border:1px solid var(--line)!important; }
.products-sort-order .dropdown-item{ color:var(--muted)!important; }
.products-sort-order .dropdown-item:hover{ background:var(--surface-2)!important; color:var(--gold)!important; }

/* paginação */
.pagination a,.pagination .disabled span{ background:var(--surface)!important; border:1px solid var(--line)!important;
  color:var(--text)!important; border-radius:var(--radius); }
.pagination .current a,.pagination .current span{ background:var(--gold)!important; color:#1b1407!important; border-color:var(--gold)!important; }
.pagination a:hover{ border-color:var(--gold)!important; color:var(--gold)!important; }

/* categorias na coluna esquerda */
#left-column .block-categories a{ color:var(--muted)!important; }
#left-column .block-categories a:hover{ color:var(--gold)!important; }

/* ===================================================================
   LISTAGEM — grid de produtos (#js-product-list) 3 por linha / 2 mobile
   (sem o limite de 8 da home; mostra todos)
   =================================================================== */
#js-product-list .products{ display:grid!important; grid-template-columns:repeat(3,1fr)!important;
  gap:1.3rem!important; margin:0!important; padding:0!important; list-style:none; align-items:start; }
#js-product-list .products > *{ min-width:0!important; max-width:none!important; width:auto!important; margin:0!important; height:auto!important; }
@media (max-width:1199px){ #js-product-list .products{ grid-template-columns:repeat(2,1fr)!important; gap:.9rem!important; } }
@media (max-width:575px){ #js-product-list .products{ grid-template-columns:repeat(2,1fr)!important; gap:.6rem!important; } }

/* LISTAGEM — paginação: remover fundo branco do contentor */
.pagination,.pagination .page-list,.page-list,#js-product-list-bottom,#js-product-list-bottom .pagination{
  background:transparent!important; border:0!important; box-shadow:none!important; }
.page-list li{ background:transparent!important; }

/* LISTAGEM — paginação: itens quadrados com número centrado */
.pagination .page-list{ display:inline-flex!important; flex-wrap:wrap; gap:.4rem; align-items:center; justify-content:center; padding:0!important; margin:0; }
.pagination .page-list li{ display:inline-flex; margin:0; }
.pagination .page-list li a,.pagination .page-list li span{
  display:inline-flex!important; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 .7rem; line-height:1; box-sizing:border-box; }

/* ===================================================================
   CATEGORIA — cabeçalho (título) + subcategorias em cards (estilo home)
   =================================================================== */
/* esconder a caixa redundante de navegação de categorias (coluna esquerda) */
#left-column .block-categories{ display:none!important; }

/* cabeçalho da categoria (título + descrição) */
.block-category{ background:transparent!important; border:0!important; border-bottom:1px solid var(--line)!important;
  border-radius:0!important; padding:0 0 1.1rem!important; margin:0 0 1.4rem!important; min-height:0!important; }
.block-category-inner{ min-height:0!important; }
.block-category h1.h1,.block-category .h1{ font-family:'Oswald',sans-serif!important; text-transform:uppercase;
  font-size:2rem; color:var(--text)!important; margin:0 0 .5rem; }
#category-description{ color:var(--muted)!important; max-width:70ch; }
.category-cover{ margin-top:1rem; }
.category-cover img{ border-radius:var(--radius); }

/* título genérico das outras listagens (novidades, pesquisa, etc.) */
#js-product-list-header.h2{ font-family:'Oswald',sans-serif!important; text-transform:uppercase; color:var(--text)!important;
  font-size:2rem; margin:0 0 1.4rem; padding-bottom:.6rem; border-bottom:1px solid var(--line); }

/* subcategorias em cards */
#subcategories{ background:transparent!important; border:0!important; padding:0!important; margin:0 0 1.8rem!important; }
#subcategories .subcategory-heading{ font-family:'Oswald',sans-serif!important; text-transform:uppercase;
  color:var(--text)!important; font-size:1.1rem; letter-spacing:.02em; margin:0 0 1rem; }
#subcategories .subcategories-list{ display:grid!important; grid-template-columns:repeat(3,1fr); gap:1rem;
  list-style:none; padding:0; margin:0; }
#subcategories .subcategories-list li{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.3rem 1.4rem; min-height:84px; display:flex; flex-direction:column; justify-content:center;
  transition:border-color .2s, transform .2s; text-align:left; position:relative; overflow:hidden; }
#subcategories .subcategories-list li::before{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--gold); transition:width .25s; }
#subcategories .subcategories-list li:hover{ border-color:var(--gold); transform:translateY(-3px); }
#subcategories .subcategories-list li:hover::before{ width:100%; }
#subcategories .subcategory-image{ display:none!important; }
#subcategories h5{ margin:0; }
#subcategories .subcategory-name{ font-family:'Oswald',sans-serif!important; text-transform:uppercase;
  color:var(--text)!important; font-weight:600; }
#subcategories .subcategory-name:hover{ color:var(--gold)!important; }
#subcategories .cat_desc{ color:var(--muted)!important; font-size:.88rem; margin-top:.3rem; }
@media (max-width:900px){ #subcategories .subcategories-list{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ #subcategories .subcategories-list{ grid-template-columns:1fr; } }

/* ===================================================================
   PÁGINA DE PRODUTO — estilo dark
   =================================================================== */
#product #content-wrapper,#product #main,.product-container,.product-information{ background:transparent!important; }

/* galeria de imagens */
.product-cover{ background:transparent!important; }
.product-cover img,.js-qv-product-images img,.product-images img{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); }
.images-container{ background:transparent!important; }
.product-images li .thumb,.js-qv-product-images li img{ border:1px solid var(--line)!important; border-radius:var(--radius); }
.product-images li .thumb.selected,.product-images li .thumb:hover{ border-color:var(--gold)!important; }
.scroll-box-arrows i{ color:var(--text)!important; }

/* referência / disponibilidade */
.product-reference,.product-reference label{ color:var(--muted)!important; }
.product-reference span{ color:var(--text)!important; }
.product-availability{ color:var(--text)!important; }

/* "buy box" — agrupar preço + quantidade + add-to-cart */
.product-actions .product-prices,.product-actions{ background:transparent; }
.product-information .product-actions{ background:var(--surface)!important; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem!important; }

/* preço */
.product-prices{ background:transparent!important; }
.product-price,.current-price,.current-price-value{ color:var(--gold)!important; font-weight:700; }
.product-price.h5,.current-price-value{ font-size:1.9rem!important; }
.regular-price{ color:var(--muted)!important; text-decoration:line-through; font-weight:400; }
.discount-percentage,.product-flag.discount,.product-discount .discount{ background:var(--gold)!important; color:#1b1407!important; border-radius:4px; padding:.12rem .45rem; font-weight:700; }
.tax-shipping-delivery-label{ color:var(--muted)!important; font-size:.8rem; }

/* quantidade (touchspin) */
#quantity_wanted{ background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text)!important; }
.bootstrap-touchspin .input-group-btn-vertical .btn,.btn-touchspin{ background:var(--surface-2)!important; border:1px solid var(--line)!important; color:var(--text)!important; }
.btn-touchspin:hover{ background:var(--gold)!important; color:#1b1407!important; border-color:var(--gold)!important; }
.product-quantity .control-label{ color:var(--text)!important; }

/* add to cart */
.product-add-to-cart .add-to-cart{ font-size:1rem; padding:.9rem 1.7rem; }

/* variantes */
.product-variants .control-label,.product-variants label{ color:var(--text)!important; }
.product-variants select,.product-variants .form-control,.product-variants .input-container .radio-label{
  background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text)!important; }

/* tabs / descrição */
.tabs{ background:transparent!important; border:0!important; box-shadow:none!important; padding:0!important; margin-top:2rem; }
.tabs .nav-tabs{ border-bottom:1px solid var(--line)!important; }
.tabs .nav-tabs .nav-link{ color:var(--muted)!important; background:transparent!important; border:0!important;
  border-bottom:2px solid transparent!important; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; }
.tabs .nav-tabs .nav-link.active{ color:var(--gold)!important; border-bottom-color:var(--gold)!important; }
.tab-content{ color:var(--text); padding-top:1.3rem; }
.product-description,.product-description *,.tab-pane,.tab-pane *{ color:var(--text)!important; }

/* tabela de características */
.data-sheet dt,.data-sheet dd,.product-features dt,.product-features dd{
  background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text)!important; }
.data-sheet dt.name{ color:var(--muted)!important; }

/* partilha social */
.social-sharing li,.social-sharing a{ filter:grayscale(1) brightness(1.4); transition:filter .2s; }
.social-sharing a:hover,.social-sharing li:hover{ filter:none; }

/* ===================================================================
   PRODUTO — correções: textos legíveis + ficha informativa elegante
   =================================================================== */
/* textos/labels que ficavam escuros */
#product .control-label,#product span.control-label,
#product .tax-shipping-delivery-label,
#product .product-reference label,#product label.label,
#product .product-quantity .control-label,
#product .social-sharing > p,#product .social-sharing-title{ color:#d3ccbd!important; }
#product .tax-shipping-delivery-label{ font-size:.82rem; }

/* ficha informativa (data-sheet) — tabela limpa em vez de caixas soltas */
.product-features .data-sheet{ display:grid!important; grid-template-columns:minmax(120px,32%) 1fr; gap:0!important;
  border:1px solid var(--line)!important; border-radius:var(--radius); overflow:hidden; margin:1rem 0 0!important; }
.data-sheet dt,.data-sheet dd{ margin:0!important; padding:.72rem 1rem!important; border:0!important;
  border-bottom:1px solid var(--line)!important; box-sizing:border-box; font-weight:400; }
.data-sheet dt.name{ background:var(--surface)!important; color:var(--muted)!important; font-weight:600!important;
  border-right:1px solid var(--line)!important; text-transform:none; }
.data-sheet dd.value{ background:transparent!important; color:var(--text)!important; }
.data-sheet dt:nth-last-of-type(1),.data-sheet dd:nth-last-of-type(1){ border-bottom:0!important; }

/* logo Untappd (descrição curta) — tamanho contido */
#product .product-description img{ max-height:46px; width:auto; background:transparent!important; border:0!important; }

/* PRODUTO — "Partilhar" é texto direto do .social-sharing (herda cor escura) */
#product .social-sharing{ color:#d3ccbd!important; }

/* ===================================================================
   CARRINHO — estilo dark
   =================================================================== */
.cart-grid,.cart-container{ background:transparent!important; }
.cart-items{ list-style:none; padding:0; margin:0; }
.cart-item{ background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:var(--radius); margin-bottom:.8rem; padding:1rem!important; }
.cart-grid-body .card,.cart-grid-right .card,.cart-summary{ background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text); }
.product-line-grid-left img{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); }
.product-line-info{ color:var(--text)!important; }
.product-line-info.product-title a,.cart-item .label a{ color:var(--text)!important; font-weight:600; }
.product-line-info.product-title a:hover{ color:var(--gold)!important; }
.product-line-grid .product-price,.cart-item .price,.product-line-grid-right .price{ color:var(--gold)!important; font-weight:700; }
.cart-line-product-actions a,.remove-from-cart{ color:var(--muted)!important; }
.cart-line-product-actions a:hover,.remove-from-cart:hover{ color:var(--gold)!important; }

/* sumário do carrinho */
.cart-summary-line{ border-bottom:1px solid var(--line); }
.cart-summary-line .label,.cart-summary-line .value{ color:var(--text)!important; }
.cart-total .label,.cart-total .value,.cart-summary-line.cart-total *{ color:var(--gold)!important; font-weight:700; font-size:1.08rem; }
.cart-detailed-totals,.cart-detailed-actions,.cart-summary .card-block{ background:transparent!important; }
.cart-summary-subtotals-container,.cart-summary-totals{ border-color:var(--line)!important; }

/* voucher / promo */
.block-promo .promo-code{ background:var(--surface-2)!important; border:1px solid var(--line)!important; }
.block-promo input[type=text]{ background:var(--bg)!important; border:1px solid var(--line)!important; color:var(--text)!important; }
.promo-code-button,.block-promo .collapse-button{ color:var(--gold)!important; }
.cart-detailed-actions .btn,.checkout .btn{ width:100%; }

/* ===================================================================
   CHECKOUT — estilo dark
   =================================================================== */
#checkout #content-wrapper,#checkout #main,.page-order #main{ background:transparent!important; }
.checkout-step,.checkout-step.card{ background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:var(--radius)!important; margin-bottom:.9rem; }
.checkout-step.-current,.checkout-step.-current.card{ border-color:var(--gold)!important; }
.checkout-step .step-title,.checkout-step .h3.step-title{ color:var(--text)!important; font-family:'Oswald',sans-serif!important; text-transform:uppercase; }
.checkout-step .step-number{ background:var(--gold)!important; color:#1b1407!important; }
.checkout-step .step-edit,.checkout-step .done{ color:var(--gold)!important; }
.checkout-step .content,.checkout-step .content *{ color:var(--text); }
#checkout .cart-summary,.page-order .cart-summary{ background:var(--surface)!important; border:1px solid var(--line)!important; }
.order-confirmation-table,.order-items{ background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text); }
/* login/registo no checkout */
.identity a,#checkout .nav-tabs .nav-link{ color:var(--muted)!important; }
.identity a:hover{ color:var(--gold)!important; }

/* ===================================================================
   LEGIBILIDADE — eliminar texto escuro em fundo escuro (carrinho + checkout)
   =================================================================== */
/* classes do classic tipicamente escuras */
.text-muted{ color:var(--muted)!important; }
.form-control-label,.col-form-label,.control-label,#checkout label,.cart-grid label{ color:#d3ccbd!important; }

/* CARRINHO — links secundários (ex.: "Continuar a comprar") */
.cart-grid a:not(.btn),.cart-detailed-actions a:not(.btn){ color:var(--muted)!important; }
.cart-grid a:not(.btn):hover{ color:var(--gold)!important; }
/* nome do produto na linha (a seguir, para vencer a regra acima) */
.cart-grid .product-line-info a.label,.cart-grid .product-line-info .label{ color:var(--text)!important; font-weight:600; }
.cart-grid .product-line-info a.label:hover{ color:var(--gold)!important; }

/* CHECKOUT — forçar conteúdo legível */
#checkout .checkout-step,.page-order #content,#order-confirmation{ color:var(--text); }
#checkout .checkout-step .content,#checkout .checkout-step .content *{ color:var(--text)!important; }
#checkout .checkout-step .content a:not(.btn),#checkout a:not(.btn){ color:#d3ccbd!important; }
#checkout .checkout-step .content a:not(.btn):hover,#checkout a:not(.btn):hover{ color:var(--gold)!important; }
/* repor cores especiais depois do "nuclear" */
#checkout .btn-primary,#checkout .btn-primary *{ color:#1b1407!important; }
#checkout .price,#checkout .cart-total,#checkout .cart-total *,#checkout .current-price,
#checkout .current-price-value,.page-order .price,.page-order .cart-total *{ color:var(--gold)!important; }

/* CHECKOUT — opções de envio (tinham fundo branco do classic) */
#checkout .delivery-options-list,.delivery-options{ background:transparent!important; }
#checkout .delivery-options-list .delivery-option,.delivery-options .delivery-option,.row.delivery-option{
  background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:var(--radius)!important; margin-bottom:.6rem; }
#checkout .delivery-options-list .delivery-option.selected,.row.delivery-option:hover{ border-color:var(--gold)!important; }
#checkout .delivery-option,.row.delivery-option,.delivery-option *,.delivery-option .carrier-name,
.delivery-option .carrier-delay,.delivery-option .carrier-price{ color:var(--text)!important; }
.delivery-option .carrier-price{ color:var(--gold)!important; font-weight:700; }

/* ===================================================================
   AUTENTICAÇÃO / LOGIN / REGISTO — dark
   =================================================================== */
.page-authentication #content,#authentication #content,#password #content{ background:transparent!important; }
#authentication .login-form,.page-authentication .register-form,#authentication .card,
.page-authentication .card,#password .card,.register-form{ background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text)!important; border-radius:var(--radius); }
#authentication .no-account a,.forgot-password a,.lost_password a,.login-form a,.register-form a,
.page-authentication a:not(.btn){ color:var(--gold)!important; }
.page-authentication a:not(.btn):hover{ color:var(--gold-2)!important; }
.page-authentication .h3,.page-authentication h1,#authentication h1,#authentication .h1{ color:var(--text)!important; }

/* ===================================================================
   CMS — conteúdo legível em fundo escuro
   =================================================================== */
.page-cms,.page-content.page-cms{ background:transparent!important; }
/* legibilidade só por defeito (SEM !important) — páginas com design próprio (Sobre Nós) mantêm as suas cores */
#cms #content.page-cms{ color:var(--text); }
.page-cms img{ max-width:100%; height:auto; }
/* páginas CMS simples (legais) — forçar legível, EXCETO as de design próprio (4 Sobre Nós, 6 Eventos) */
body#cms:not(.cms-id-4):not(.cms-id-6) .page-cms p,
body#cms:not(.cms-id-4):not(.cms-id-6) .page-cms li,
body#cms:not(.cms-id-4):not(.cms-id-6) .page-cms td,
body#cms:not(.cms-id-4):not(.cms-id-6) .page-cms h1,
body#cms:not(.cms-id-4):not(.cms-id-6) .page-cms h2,
body#cms:not(.cms-id-4):not(.cms-id-6) .page-cms h3{ color:var(--text)!important; }

/* CMS landing com design próprio (Sobre Nós = cms-id-4): sem breadcrumb/título default + full-width */
.cms-id-4 .breadcrumb,.cms-id-4 .page-header{ display:none!important; }
.cms-id-4 #content.page-cms,.cms-id-4 #main,.cms-id-4 #content-wrapper{ padding:0!important; margin:0!important; max-width:none!important; width:100%!important; }
.cms-id-4 #wrapper > .container,.cms-id-4 #wrapper{ max-width:none!important; padding-left:0!important; padding-right:0!important; }

/* ===================================================================
   CONTA (dashboard, moradas, histórico, identidade) — dark
   =================================================================== */
#my-account .links .link-item,.page-my-account .link-item{ background:var(--surface)!important;
  border:1px solid var(--line)!important; color:var(--text)!important; border-radius:var(--radius); transition:border-color .2s,transform .2s; }
#my-account .links .link-item:hover{ border-color:var(--gold)!important; transform:translateY(-3px); }
#my-account .links a,.page-my-account a:not(.btn),.account-link{ color:var(--text)!important; }
#my-account .links a i,.link-item i{ color:var(--gold)!important; }
.address,#addresses .address{ background:var(--surface)!important; border:1px solid var(--line)!important; color:var(--text)!important; border-radius:var(--radius); }
.address .address-footer a{ color:var(--gold)!important; }
/* tabelas (histórico, devoluções, etc.) */
.page-customer-account #content,#history #content,#order-slip #content{ background:transparent!important; color:var(--text); }
table.std,.table,.table-labeled{ color:var(--text)!important; background:transparent!important; }
.table td,.table th,table.std td,table.std th{ border-color:var(--line)!important; color:var(--text)!important; }
.table thead th,table.std thead th{ background:var(--surface-2)!important; color:var(--text)!important; }
.table tbody tr,table.std tbody tr{ background:var(--surface)!important; }

/* AUTENTICAÇÃO — corrigir: um só card com padding (sem caixa dentro de caixa) */
.page-authentication #content.card,#authentication #content.card,#password #content.card,#content.page-content.card{
  background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:var(--radius); padding:2rem 2.2rem!important; }
.page-authentication .login-form,.page-authentication .register-form,#authentication .login-form,#authentication .register-form{
  background:transparent!important; border:0!important; padding:0!important; }
@media (max-width:600px){ .page-authentication #content.card,#authentication #content.card{ padding:1.4rem!important; } }

/* FAIXA BRANCA — garantir canvas escuro (html/body) em todas as páginas */
html{ background:var(--bg)!important; }
body{ background-color:var(--bg)!important; }
/* Sobre Nós (cms-id-4): colapsar o gap do breadcrumb entre header e conteúdo */
.cms-id-4 #wrapper > .container{ padding-top:0!important; padding-bottom:0!important; }
.cms-id-4 #content-wrapper,.cms-id-4 #main{ padding-top:0!important; margin-top:0!important; }

/* Sobre Nós (cms-id-4): eliminar padding do #wrapper (gaps em cima/baixo) */
.cms-id-4 #wrapper{ padding-top:0!important; padding-bottom:0!important; margin:0!important; }

/* Sobre Nós — eliminar gap inferior (entre conteúdo e footer) */
#cms.cms-id-4 #wrapper,#cms.cms-id-4 #content,#cms.cms-id-4 #main,#cms.cms-id-4 #content-wrapper{
  padding-bottom:0!important; margin-bottom:0!important; }

/* CMS — remover o fundo cinza (#f5f5f5) e o padding-top do container (faixa branca) */
#cms #wrapper > .container,#cms .page-content.page-cms{ background-color:transparent!important; padding-top:0!important; }

/* Eventos (cms-id-6) — mesmo tratamento de landing custom da Sobre Nós */
.cms-id-6 .breadcrumb,.cms-id-6 .page-header{ display:none!important; }
.cms-id-6 #content.page-cms,.cms-id-6 #main,.cms-id-6 #content-wrapper{ padding:0!important; margin:0!important; max-width:none!important; width:100%!important; }
.cms-id-6 #wrapper{ padding:0!important; margin:0!important; }
#cms.cms-id-6 #wrapper,#cms.cms-id-6 #content,#cms.cms-id-6 #main,#cms.cms-id-6 #content-wrapper{ padding-bottom:0!important; margin-bottom:0!important; }

/* Eventos (cms-id-6) — faltava libertar o .container (estava boxed) */
.cms-id-6 #wrapper > .container{ max-width:none!important; padding-left:0!important; padding-right:0!important; }

/* ===================================================================
   CONTACTOS — estilo dark
   =================================================================== */
#contact #content-wrapper,#contact #main,#contact #left-column{ background:transparent!important; }
/* bloco de informação (lado esquerdo) */
.contact-rich{ background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:var(--radius);
  color:var(--text)!important; padding:1.4rem 1.5rem; }
.block-contact .block-contact-title,.contact-rich .h4,.contact-rich h4{ color:var(--text)!important; }
.contact-rich .data,.contact-rich .data *{ color:var(--text)!important; }
.contact-rich .data a{ color:var(--gold)!important; }
.contact-rich .icon i,.contact-rich .icon .material-icons{ color:var(--gold)!important; }
/* formulário */
.contact-form label,#contact label,#contact .form-control-label{ color:#d3ccbd!important; }
.contact-form .form-control,#contact textarea,#contact input,#contact select{ background:var(--surface-2)!important; border:1px solid var(--line)!important; color:var(--text)!important; }
#contact .help-block,#contact .form-control-comment{ color:var(--muted)!important; }

/* ===================================================================
   CONTACTOS — correções: form sem fundo branco + coluna de info a respirar
   =================================================================== */
/* form: remover fundo branco do classic, herdar o card escuro */
.contact-form{ background:transparent!important; color:var(--text)!important; padding:0!important; }
.contact-form h3,.contact-form .h3{ color:var(--text)!important; }
#contact .form-fields,#contact .form-group{ color:var(--text); }

/* coluna de informação: cada item respira mais */
#contact .contact-rich{ background:transparent!important; border:0!important; padding:0!important; margin-bottom:1.2rem; }
#contact #left-column .block,#contact .contact-rich .block{ background:var(--surface)!important; border:1px solid var(--line)!important;
  border-radius:var(--radius); padding:1.15rem 1.3rem!important; margin-bottom:.9rem!important; overflow:hidden; }
#contact .contact-rich .block .data{ line-height:1.55; padding-top:.15rem; }
#contact .contact-rich .block .icon{ width:3rem; }
#contact .contact-rich .block .icon i{ color:var(--gold)!important; }

/* ===================================================================
   404 / PÁGINA NÃO ENCONTRADA — dark
   =================================================================== */
#pagenotfound .page-not-found,.page-not-found{ background:var(--surface)!important; color:var(--text)!important;
  border:1px solid var(--line)!important; border-radius:var(--radius); padding:2rem 2.2rem!important; margin:2.5rem auto!important; }
.page-not-found h4,.page-not-found h1{ color:var(--text)!important; }
.page-not-found .search-widget input{ background:var(--surface-2)!important; border:1px solid var(--line)!important; color:var(--text)!important; }

/* ===================================================================
   CONTA — retoques (identidade em card + links de conta)
   =================================================================== */
#identity #customer-form,#identity .js-customer-form{ background:var(--surface)!important; border:1px solid var(--line)!important;
  border-radius:var(--radius); padding:1.8rem 2rem!important; max-width:760px; }
.account-link{ color:var(--muted)!important; }
.account-link:hover{ color:var(--gold)!important; }
.account-link i,#my-account .link-item i,.links .link-item i{ color:var(--gold)!important; }
/* tiles do dashboard — garantir legibilidade do texto */
#my-account .links .link-item,#my-account .link-item{ color:var(--text)!important; }
#my-account .links .link-item:hover{ color:var(--gold)!important; }
/* moradas: rodapé de ações */
.addresses-footer a,.address-footer a{ color:var(--gold)!important; }

/* ===================================================================
   CONTA — corrigir fundos brancos + texto escuro do classic
   =================================================================== */
/* sub-páginas (identidade, histórico, moradas, encomendas): #content era branco + texto cinza */
.page-customer-account #content{ background:transparent!important; color:var(--text)!important; }
.page-customer-account #content,.page-customer-account #content p,.page-customer-account #content td,
.page-customer-account #content th,.page-customer-account #content li,.page-customer-account #content span,
.page-customer-account #content strong,.page-customer-account #content h1,.page-customer-account #content h2,
.page-customer-account #content h3,.page-customer-account #content h4,.page-customer-account #content label,
.page-customer-account #content dt,.page-customer-account #content dd{ color:var(--text)!important; }
.page-customer-account #content a:not(.btn){ color:var(--gold)!important; }

/* dashboard: tiles eram brancos (regra de alta especificidade do classic) */
.page-my-account #content .links a span.link-item{ background:var(--surface)!important; color:var(--text)!important;
  border:1px solid var(--line)!important; border-radius:var(--radius); transition:border-color .2s, transform .2s; }
.page-my-account #content .links a:hover span.link-item{ border-color:var(--gold)!important; transform:translateY(-3px); color:var(--gold)!important; }

/* CONTA — painéis GDPR (módulo psgdpr) tinham fundo claro */
.psgdprinfo17{ background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:var(--radius)!important;
  color:var(--text)!important; padding:1.6rem 1.8rem!important; }
.psgdprinfo17 *{ color:var(--text)!important; }
.psgdprinfo17 a:not(.btn){ color:var(--gold)!important; }
.psgdprinfo17 .btn-primary,.psgdprinfo17 .btn-primary *{ color:#1b1407!important; }

/* ===================================================================
   REVISÃO FINAL — flags de produto (NOVO PRODUTO era azul) + marcas
   =================================================================== */
.product-flag:not(.discount):not(.on-sale){ background:var(--surface-2)!important; color:var(--gold)!important;
  border:1px solid var(--gold); font-weight:700; }
.product-flag.discount,.product-flag.on-sale{ background:var(--gold)!important; color:#1b1407!important; border:0; }
/* marcas/fabricantes — caixas eram brancas */
#manufacturer .brand,.brand,.brands .brand,.brand-infos{ background:var(--surface)!important; border:1px solid var(--line)!important;
  color:var(--text)!important; border-radius:var(--radius); }
#manufacturer .brand a,.brand a,.brand-infos a{ color:var(--text)!important; }
#manufacturer .brand a:hover,.brand a:hover{ color:var(--gold)!important; }
.brand .brand-img img,.brand img{ background:#fff; border-radius:var(--radius); }

/* ===================================================================
   BANNER DE COOKIES (mdn_cookie / vanilla-cookieconsent) — tema dark+dourado
   =================================================================== */
#cc--main{
  --cc-bg:#1d1a15;
  --cc-text:#f1ede3;
  --cc-btn-primary-bg:#d99a1e; --cc-btn-primary-text:#1b1407;
  --cc-btn-primary-hover-bg:#eeb43a; --cc-btn-primary-hover-text:#1b1407;
  --cc-btn-secondary-bg:#272219; --cc-btn-secondary-text:#f1ede3;
  --cc-btn-secondary-hover-bg:#332d20; --cc-btn-secondary-hover-text:#f4c400;
  --cc-cookie-category-block-bg:#141210; --cc-cookie-category-block-bg-hover:#272219;
  --cc-toggle-bg-on:#d99a1e; --cc-toggle-bg-off:#5a5346; --cc-toggle-knob-bg:#f1ede3;
  --cc-section-border:rgba(245,243,238,.12); --cc-cookie-table-border:rgba(245,243,238,.12);
  --cc-overlay-bg:#000;
}
#cc--main .cc-link,#cc--main a{ color:#d99a1e!important; }
/* botão flutuante de reabrir definições */
.mdn-cookie-button{ border:1px solid var(--line)!important; }

/* ===================================================================
   MOBILE — tabelas do conteúdo CMS (Sobre Nós/Eventos) empilham
   =================================================================== */
@media (max-width:767px){
  .page-cms table,.page-cms tbody,.page-cms tr,.page-cms td{ display:block!important; width:100%!important; box-sizing:border-box; }
  .page-cms td{ border-right:0!important; border-bottom:1px solid #2a2520; }
  .page-cms tr:last-child td:last-child{ border-bottom:0!important; }
}

/* ===================================================================
   HEADER MOBILE (logado) — user-info: 1 ícone de conta limpo
   (sem "Fechar sessão", sem nome, sem ícone duplicado)
   =================================================================== */
@media (max-width:767px){
  #header .logout{ display:none!important; }
  #header .user-info span,
  #header #_desktop_user_info span,
  #header #_mobile_user_info span,
  #header #_desktop_user_info .hidden-sm-down,
  #header #_mobile_user_info .hidden-sm-down{ display:none!important; }
  /* zona direita do header mobile bem alinhada */
  .header-nav .hidden-md-up.mobile .float-xs-right{ display:inline-flex!important; align-items:center; vertical-align:middle; margin-left:.5rem!important; }
  #header #_mobile_user_info,#header #_mobile_cart{ display:inline-flex!important; align-items:center; }
  #header #_mobile_user_info .material-icons,#header #_mobile_cart .material-icons{ vertical-align:middle; }
}

/* ===================================================================
   FIX header fixo nas páginas internas: o classic põe .header-nav
   position:fixed (overlay) → conteúdo fica por baixo. Tornar estático
   (na home, #index já trata o overlay sobre o hero).
   =================================================================== */
body:not(#index) #header .header-nav{ position:static!important; height:auto!important; width:auto!important; margin-bottom:0!important; }

/* MOBILE — esconder a linha desktop (logo+menu) no header; só a barra compacta + dropdown */
@media (max-width:767px){
  #header .header-top .container .ct-header-row{ display:none!important; }
}

/* MOBILE — header compacto: tirar o padding extra da .header-top (só barra + dropdown) */
@media (max-width:767px){
  #header .header-top{ padding-top:0!important; padding-bottom:0!important; }
  #header .header-top > .container{ padding-top:0!important; padding-bottom:0!important; }
}
