/* ==========================================================
   VINHO DE TALHA — Design Talha de Frades
   Versão 2.0 — Fix completo
   ========================================================== */

/* ==========================================================
   VARIÁVEIS
   ========================================================== */
:root {
  --color-primary:      #953A37;
  --color-primary-dark: #7a2e2b;
  --color-bg:           #F5F5F5;
  --color-white:        #ffffff;
  --color-beige:        #E8DDD2;
  --color-beige-dark:   #d4c4b5;
  --color-green-gray:   #838C80;
  --color-text:         #121212;
  --color-text-muted:   #5a5a5a;
  --color-border:       #ddd5cc;
}

/* ==========================================================
   RESET GLOBAL
   ========================================================== */
*, *::before, *::after {
  box-sizing: border-box;
}
* {
  font-family: 'Pontano Sans', sans-serif !important;
}
/* Excepção — ícones Material Icons não devem herdar Pontano Sans */
.material-icons,
.material-icons-outlined,
i.material-icons {
  font-family: 'Material Icons' !important;
}
body {
  background-color: var(--color-bg) !important;
  color: var(--color-text) !important;
  margin: 0 !important;
  padding: 0 !important;
}
img { max-width: 100%; height: auto; display: block; }
a { transition: color 0.2s; }

/* Ocultar slider/banner injectado pelo displayTopColumn */
#top_column,
#index #top_column { display: none !important; }

/* ==========================================================
   FIX CRÍTICO — Reset layout PrestaShop na homepage
   Remove containers, cards e paddings do tema que constrangem
   ========================================================== */
#index #wrapper,
#index #content-wrapper,
#index section#main,
#index .page-home,
#index section#content,
#index .full-container {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  float: none !important;
}

/* Fix específico: tema adiciona margin-top:40px ao section#main na home */
#index #content-wrapper > section#main {
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: 100% !important;
}
#index #main .wrap {
  margin: 0 !important;
  float: none !important;
}

#index .card,
#index .card-block {
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}

/* Esconder breadcrumb na home — inclui classe otbreadcrumb do tema PRS01 */
#index .breadcrumb-container,
#index .otbreadcrumb,
#index nav.breadcrumb,
#index .breadcrumb { display: none !important; }

/* ==========================================================
   ESCONDER MÓDULOS INJECTADOS VIA HOOK_HOME
   Slider antigo, newsletter, featured products, etc.
   ========================================================== */
#index .homeslider-container,
#index #homeslider,
#index .bxslider,
#index [id*="homeslider"],
#index [class*="homeslider"],
#index .block_newsletter,
#index [id*="emailsubscription"],
#index [class*="emailsubscription"],
#index .newsletter-block,
#index .homebg,
#index .home-tab,
#index #hometab,
#index .hb-animate-element,
#index .page-home > *:not(.tdf-hero):not(.tdf-section):not(.tdf-blog-grid) {
  display: none !important;
}

/* ==========================================================
   ANNOUNCEMENT BAR
   ========================================================== */
.tdf-announcement,
#header .header-banner {
  background-color: var(--color-primary) !important;
  color: #fff !important;
  text-align: center;
  padding: 9px 20px;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: block !important;
  min-height: auto !important;
  font-family: 'Pontano Sans', sans-serif !important;
}
.tdf-announcement span,
#header .header-banner a { color: #fff !important; text-decoration: none; }

/* ==========================================================
   HEADER
   ========================================================== */
#header {
  background: #fff !important;
  border-bottom: 1px solid var(--color-beige) !important;
  min-height: auto !important;
  box-shadow: 0 1px 6px rgba(0,0,0,0.06);
  position: relative;
  z-index: 100;
}
.main-header,
#header .main-header {
  background: #fff !important;
  padding: 0 !important;
  text-align: left !important;
}
#index .main-header {
  position: relative !important;
}
/* Fix especificidade: tema tem #header .main-header.fixed { background:#000 } */
#header .main-header.fixed,
.main-header .fixed,
.main-header.fixed {
  background: rgba(255,255,255,0.97) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1) !important;
}

/* Nav bar */
#header .header-nav {
  background: #fff !important;
  padding: 0 40px !important;
  float: left;
  width: 100%;
  border-top: 1px solid var(--color-border) !important;
}

/* Links do menu principal — cor escura sobre fundo branco */
#header .top-menu li a[data-depth="0"],
#header .top-menu > li > a,
#top-menu > li > a,
#top-menu li a[data-depth="0"],
.main-header a[data-depth="0"],
.main-header .dropdown-item[data-depth="0"] {
  color: var(--color-text) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 13px 16px !important;
  font-weight: 400 !important;
  transition: color 0.2s !important;
  background: transparent !important;
}

/* Hover — cor primária, sem background laranja/amarelo do tema */
#header .top-menu li:hover a[data-depth="0"],
#header .top-menu li a[data-depth="0"]:hover,
#top-menu li:hover a[data-depth="0"],
#top-menu > li > a:hover,
.main-header a[data-depth="0"]:hover {
  color: var(--color-primary) !important;
  background: transparent !important;
}

#header a { color: var(--color-text) !important; }
#header a:hover { color: var(--color-primary) !important; }
#header .right-nav a,
#header .user-info a,
#header .blockcart a { color: var(--color-text) !important; font-size: 12px !important; }

/* Alinhamento vertical dos ícones no right-nav — desktop */
@media (min-width: 992px) {
  .main-header { display: flex !important; align-items: center !important; justify-content: space-between !important; min-height: 80px !important; padding: 0 40px !important; }
  #header .header-top { float: none !important; flex-shrink: 0 !important; }
  .main-header .position-static { flex: 1 !important; float: none !important; display: flex !important; justify-content: center !important; }
  #header .right-nav { float: none !important; flex-shrink: 0 !important; display: flex !important; align-items: center !important; gap: 4px !important; }
  #header .blockcart { padding: 0 !important; width: auto !important; float: none !important; display: flex !important; align-items: center !important; }
  #header .blockcart .header { display: flex !important; align-items: center !important; }
  .blockcart .header a { display: flex !important; align-items: center !important; justify-content: center !important; }
  #header .wduserheading { display: flex !important; align-items: center !important; }
  .search-widget { display: flex !important; align-items: center !important; }
  .search-widget .wdsearch_button { float: none !important; }
}

/* Mobile — hamburger esquerda, ícones direita agrupados */
@media (max-width: 991px) {
  .main-header { display: block !important; padding: 0 !important; }
  #header .right-nav { display: none !important; }
  #header .header-top { display: none !important; }

  /* Logo mobile centrado */
  #_mobile_logo { display: block !important; text-align: center !important; padding: 6px 0 !important; }
  #_mobile_logo img { max-height: 48px !important; margin: 0 auto !important; }

  /* Menu row: hamburger left, icons right */
  #mobile_menu { overflow: hidden !important; padding: 8px 15px !important; background: #fff !important; border-bottom: 1px solid var(--color-border) !important; }
  #menu-icon, #tdf-menu-icon { float: left !important; display: flex !important; align-items: center !important; padding: 6px 0 !important; }
  #menu-icon i, #tdf-menu-icon i { font-size: 24px !important; color: var(--color-text) !important; }

  /* Ícones direita — agrupados sem espaço excessivo */
  #_mobile_cart { float: right !important; margin-left: 10px !important; }
  #_mobile_user_info { float: right !important; margin-left: 4px !important; }
}
#header .logo,
#_desktop_logo img {
  max-height: 72px !important;
  width: auto !important;
  display: block !important;
}

/* ==========================================================
   LAYOUT HELPERS — secções e containers
   ========================================================== */
.tdf-section {
  width: 100%;
  padding: 80px 0;
  display: block;
}
.tdf-section--white  { background-color: #fff; }
.tdf-section--beige  { background-color: var(--color-beige); }
.tdf-section--light  { background-color: var(--color-bg); }
.tdf-section--fullimg { padding: 0; overflow: hidden; }

/* Container interno — max 1200px centrado */
.tdf-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
  width: 100%;
}

/* Grid 2 colunas */
.tdf-grid { display: grid; align-items: center; }
.tdf-grid--2col { grid-template-columns: 1fr 1fr; gap: 70px; }

/* ==========================================================
   TIPOGRAFIA
   ========================================================== */
.tdf-label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-green-gray);
  margin-bottom: 14px;
  font-weight: 400;
}
.tdf-heading {
  font-size: 30px !important;
  font-weight: 300 !important;
  color: var(--color-text) !important;
  letter-spacing: 0.03em !important;
  line-height: 1.3 !important;
  margin: 0 0 22px !important;
  border: none !important;
  padding: 0 !important;
}
.tdf-heading--center { text-align: center; margin-bottom: 48px !important; }
.tdf-heading--center::after {
  content: '';
  display: block;
  width: 44px;
  height: 2px;
  background: var(--color-primary);
  margin: 14px auto 0;
}
.tdf-col--text p {
  font-size: 16px;
  line-height: 1.85;
  color: var(--color-text-muted);
  margin-bottom: 20px;
}
h1,h2,h3,h4,h5,h6 {
  font-weight: 300 !important;
  letter-spacing: 0.03em;
}

/* ==========================================================
   BOTÕES
   ========================================================== */
.tdf-btn {
  display: inline-block;
  padding: 13px 34px;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-radius: 0 !important;
  cursor: pointer;
  transition: all 0.25s ease;
  margin-top: 18px;
  font-family: 'Pontano Sans', sans-serif !important;
  font-weight: 400 !important;
}
.tdf-btn--primary {
  background-color: var(--color-primary) !important;
  color: #fff !important;
  border: 1px solid var(--color-primary) !important;
}
.tdf-btn--primary:hover {
  background-color: var(--color-primary-dark) !important;
  border-color: var(--color-primary-dark) !important;
  color: #fff !important;
}
.tdf-btn--secondary {
  background-color: transparent !important;
  color: var(--color-primary) !important;
  border: 1px solid var(--color-primary) !important;
}
.tdf-btn--secondary:hover {
  background-color: var(--color-primary) !important;
  color: #fff !important;
}
.tdf-btn--outline {
  background-color: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.75) !important;
}
.tdf-btn--outline:hover {
  background-color: rgba(255,255,255,0.12) !important;
}

/* Botões globais PrestaShop */
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #fff !important;
  border-radius: 0 !important;
}
a { color: var(--color-primary) !important; }
a:hover { color: var(--color-primary-dark) !important; }

/* ==========================================================
   HERO — 1. Full viewport
   ========================================================== */
.tdf-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tdf-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.tdf-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}
.tdf-hero__overlay {
  display: none !important; /* removido — imagem hero sem escurecimento */
}
.tdf-hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 0 40px;
  max-width: 820px;
}
.tdf-hero__tagline {
  font-size: clamp(22px, 3.5vw, 42px) !important;
  color: #fff !important;
  font-weight: 300 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.04em !important;
  margin: 0 0 36px !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.35);
}

/* ==========================================================
   SECÇÃO PROGRAMA PREMIUM — 2. Imagens empilhadas
   ========================================================== */
.tdf-col--images { position: relative; }
.tdf-img-stack {
  display: flex;
  flex-direction: row;
  gap: 14px;
  align-items: flex-start;
}
.tdf-img-stack__item {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.tdf-img-stack__item--bottom { margin-top: 50px; }
.tdf-img-stack__item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* Contacto */
.tdf-contact-row {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 18px 0 6px;
  font-size: 13px;
  color: var(--color-text-muted);
}

/* ==========================================================
   ENOTURISMO — 3. Horário
   ========================================================== */
.tdf-col--image-single img {
  width: 100%;
  height: 520px;
  object-fit: cover;
}
.tdf-schedule {
  background: var(--color-beige);
  padding: 18px 22px;
  margin: 22px 0;
  border-left: 3px solid var(--color-primary);
}
.tdf-schedule strong {
  display: block;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--color-text) !important;
  font-weight: 600 !important;
  margin-bottom: 6px;
}
.tdf-schedule p {
  margin: 3px 0 !important;
  font-size: 14px !important;
  color: var(--color-text-muted) !important;
}

/* ==========================================================
   SÃO CUCUFATE — 5. Imagem full-width
   ========================================================== */
.tdf-fullimg__wrap {
  position: relative;
  width: 100%;
  height: 420px;
  overflow: hidden;
}
.tdf-fullimg__wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
}
.tdf-fullimg__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  display: flex;
  align-items: center;
  justify-content: center;
}
.tdf-fullimg__overlay h2 {
  color: #fff !important;
  font-size: clamp(24px, 3.5vw, 44px) !important;
  font-weight: 300 !important;
  letter-spacing: 0.08em !important;
  text-align: center;
  text-shadow: 0 2px 12px rgba(0,0,0,0.4);
  padding: 0 40px;
}

/* ==========================================================
   BLOG — 6. Grelha 4 artigos
   ========================================================== */
.tdf-blog-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.tdf-blog-card {
  background: #fff;
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: box-shadow 0.2s, transform 0.2s;
  display: flex;
  flex-direction: column;
}
.tdf-blog-card:hover {
  box-shadow: 0 6px 24px rgba(149,58,55,0.12);
  transform: translateY(-3px);
}
.tdf-blog-card__img {
  height: 200px;
  overflow: hidden;
}
.tdf-blog-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.tdf-blog-card:hover .tdf-blog-card__img img { transform: scale(1.05); }
.tdf-blog-card__body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.tdf-blog-card__body h3 {
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: var(--color-text) !important;
  margin: 0 0 14px !important;
  letter-spacing: 0.02em !important;
}
.tdf-link {
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--color-primary) !important;
  text-decoration: none !important;
  font-weight: 400;
}
.tdf-link:hover { color: var(--color-primary-dark) !important; }

/* Blog — variante 2 colunas (página Blog CMS) */
.tdf-blog-grid--2col {
  grid-template-columns: repeat(2, 1fr) !important;
}
.tdf-blog-grid--2col .tdf-blog-card__img { height: 280px; }

/* Blog card — meta (categoria + data) */
.tdf-blog-card__meta {
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  color: var(--color-text-muted) !important;
  margin: 0 0 10px !important;
  text-transform: uppercase !important;
}
.tdf-blog-card__cat {
  color: var(--color-primary) !important;
  font-weight: 400;
}

/* Blog card — excerpt */
.tdf-blog-card__excerpt {
  font-size: 13px !important;
  color: var(--color-text-muted) !important;
  line-height: 1.75 !important;
  margin: 0 0 16px !important;
}

/* Blog card — remover sublinhado pois o <a> envolve o card inteiro */
a.tdf-blog-card { text-decoration: none !important; color: inherit !important; }
a.tdf-blog-card:hover { color: inherit !important; }

@media (max-width: 768px) {
  .tdf-blog-grid--2col { grid-template-columns: 1fr !important; }
}

/* ==========================================================
   FOOTER
   ========================================================== */
.tdf-footer-tagline {
  background-color: var(--color-primary);
  text-align: center;
  padding: 28px 20px;
  font-size: clamp(14px, 2vw, 19px);
  font-weight: 300;
  letter-spacing: 0.05em;
  font-style: italic;
}
.tdf-footer-tagline p { margin: 0; color: #fff !important; }

.tdf-footer {
  background-color: #1a1614 !important;
  color: #c8bdb8 !important;
  padding: 0 !important;
}
.tdf-footer__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 60px;
}
.tdf-footer__title {
  color: #fff !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  margin-bottom: 22px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid rgba(255,255,255,0.12) !important;
}
.tdf-footer__addr,
.tdf-footer__contact { font-size: 13px; line-height: 1.9; color: #a09590 !important; }
.tdf-footer a,
.tdf-footer__contact a,
.tdf-footer__links a {
  color: #a09590 !important;
  text-decoration: none !important;
  font-size: 13px;
  transition: color 0.2s;
}
.tdf-footer a:hover,
.tdf-footer__contact a:hover,
.tdf-footer__links a:hover { color: #fff !important; }
.tdf-footer__links { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.tdf-footer__links li { margin-bottom: 10px; }
.tdf-footer__social { display: flex; gap: 14px; margin-top: 20px; }
.tdf-social-link { color: #a09590 !important; transition: color 0.2s; display: flex; align-items: center; }
.tdf-social-link:hover { color: #fff !important; }
.tdf-social-link svg { display: block; }
.tdf-footer__newsletter-text { font-size: 13px; line-height: 1.8; color: #a09590 !important; margin-bottom: 16px; }
.tdf-newsletter-form { display: flex; flex-direction: column; gap: 10px; }
.tdf-newsletter-input {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  color: #fff !important;
  padding: 10px 14px;
  font-size: 13px;
  outline: none;
  width: 100%;
}
.tdf-newsletter-input::placeholder { color: rgba(255,255,255,0.4); }
.tdf-newsletter-input:focus { border-color: var(--color-primary) !important; box-shadow: none !important; }
.tdf-newsletter-btn { width: 100%; }
.tdf-footer__eu { background-color: rgba(0,0,0,0.3); border-top: 1px solid rgba(255,255,255,0.08); }
.tdf-footer__eu-inner {
  max-width: 1200px; margin: 0 auto; padding: 28px 60px;
  display: flex; align-items: center; gap: 40px; flex-wrap: wrap;
}
.tdf-footer__eu-logo { max-height: 56px; width: auto; opacity: 0.8; }
.tdf-footer__eu-docs { display: flex; flex-direction: column; gap: 6px; }
.tdf-footer__eu-link { font-size: 12px; color: rgba(255,255,255,0.5) !important; letter-spacing: 0.05em; text-decoration: underline !important; }
.tdf-footer__eu-link:hover { color: #fff !important; }
.tdf-footer__bottom { background-color: #110e0d; border-top: 1px solid rgba(255,255,255,0.05); }
.tdf-footer__bottom-inner {
  max-width: 1200px; margin: 0 auto; padding: 15px 60px;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 10px; font-size: 11px;
  color: rgba(255,255,255,0.3) !important; letter-spacing: 0.05em;
}
.tdf-footer__bottom-links { display: flex; gap: 20px; }
.tdf-footer__bottom a { color: rgba(255,255,255,0.3) !important; font-size: 11px; }
.tdf-footer__bottom a:hover { color: rgba(255,255,255,0.65) !important; }

/* Esconder footer antigo do PrestaShop */
.footer-container,
.bottom-footer,
.footer-top { display: none !important; }

/* Esconder módulos PS injectados no footer que quebram o layout */
.tdf-footer .block-contact,
.tdf-footer .linklist,
.tdf-footer .ps-shown-by-js,
.tdf-footer #block_myaccount_infos { display: none !important; }

/* ==========================================================
   BREADCRUMB — esconder na home
   ========================================================== */
#index .breadcrumb { display: none !important; }

/* ==========================================================
   CARDS DE PRODUTO (páginas internas)
   ========================================================== */
.thumbnail-container {
  background: #fff !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  overflow: hidden;
  transition: box-shadow 0.25s !important;
}
.product-miniature:hover .thumbnail-container { box-shadow: 0 4px 24px rgba(0,0,0,0.10) !important; }
.wdproduct-image { overflow: hidden; }
.wdproduct-img1 { width: 100%; height: 220px; object-fit: contain; background: #fafafa; transition: transform 0.4s ease !important; padding: 10px; }
.product-miniature:hover .wdproduct-img1 { transform: scale(1.04) !important; }
.wdproduct-desc { padding: 12px 14px !important; border-top: 1px solid var(--color-border) !important; }
.product-title a { font-size: 12.5px !important; letter-spacing: 0.05em !important; text-transform: uppercase !important; color: var(--color-text) !important; font-weight: 500 !important; line-height: 1.3 !important; }
.product-title a:hover { color: var(--color-primary) !important; }
.product-price-and-shipping .price { font-size: 14.5px !important; font-weight: 600 !important; color: var(--color-primary) !important; }
@media (min-width: 1200px) {
  .wdproduct-img1 { height: 240px; }
}
@media (max-width: 768px) {
  .wdproduct-img1 { height: 180px; }
}
.wdproducthover { background: rgba(149,58,55,0.90) !important; }

/* ==========================================================
   CARD DE PRODUTO — DOM real (classic miniature, SEM overlay wd*)
   Estrutura: .product-miniature > .thumbnail-container >
     a.product-thumbnail > img  +  .product-description  +  .product-flags
   ========================================================== */

/* Centrar a imagem dentro do card */
.product-miniature .product-thumbnail {
  display: block !important;
  text-align: center !important;
}
.product-miniature .product-thumbnail img {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Card INTEIRO clicável — link esticado cobre todo o thumbnail-container */
.product-miniature .thumbnail-container { position: relative !important; }
.product-miniature .product-thumbnail::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 1;
}
/* Flags (Novo / Em promoção) visíveis mas não bloqueiam o clique */
.product-miniature .product-flags { z-index: 2 !important; pointer-events: none !important; }
/* Título/preço por baixo do link esticado — clicar em qualquer parte navega para o produto */
.product-miniature .product-description { position: relative; z-index: 0; }

/* Grelha — layout float nativo do Bootstrap (calcula altura via clearfix).
   NÃO usar flex aqui: quebrava a altura e a secção de baixo sobrepunha-se
   aos produtos do centro, roubando os cliques. */
#js-product-list { position: relative; z-index: 1; }
#js-product-list .products.product-thumbs::after {
  content: ""; display: table; clear: both;
}
#js-product-list-bottom { position: relative; z-index: 0; clear: both; }

/* Mobile: card e imagem centrados */
@media (max-width: 767px) {
  #js-product-list .products.product-thumbs > .product-miniature {
    float: none !important;
    max-width: 360px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ==========================================================
   CATEGORIA — hero banner
   ========================================================== */
.tdf-cat-hero { position: relative; margin-bottom: 50px; }
.tdf-cat-hero--noimg { background: var(--color-beige); padding: 60px 60px; }
.tdf-cat-hero__img { position: relative; height: 340px; overflow: hidden; }
.tdf-cat-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.tdf-cat-hero__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.35); }
.tdf-cat-hero__content { padding: 30px 60px; background: var(--color-beige); }
.tdf-cat-hero__content--over { position: absolute; bottom: 0; left: 0; right: 0; background: transparent; padding: 30px 60px; }
.tdf-cat-hero__title { font-size: clamp(26px, 4vw, 42px) !important; font-weight: 300 !important; letter-spacing: 0.06em !important; text-transform: uppercase !important; margin: 0 0 10px !important; }
.tdf-cat-hero__content--over .tdf-cat-hero__title { color: #fff !important; }
.tdf-cat-hero__content:not(.tdf-cat-hero__content--over) .tdf-cat-hero__title { color: var(--color-text) !important; }
.tdf-cat-hero__desc { font-size: 15px; line-height: 1.8; max-width: 600px; }
.tdf-cat-hero__content--over .tdf-cat-hero__desc { color: rgba(255,255,255,0.85); }
.wd-innerpagetitle { font-size: 13px !important; letter-spacing: 0.15em !important; text-transform: uppercase !important; color: var(--color-text-muted) !important; font-weight: 400 !important; margin: 0 0 30px !important; border-bottom: none !important; }

/* ==========================================================
   PÁGINA SOBRE NÓS
   ========================================================== */

/* Reset layout CMS igual à homepage */
#cms #wrapper, #cms #content-wrapper, #cms section#main { max-width:100%!important; width:100%!important; padding:0!important; margin:0!important; }
#cms #content-wrapper > section#main { margin:0!important; padding:0!important; }
#cms .otbreadcrumb, #cms nav.breadcrumb, #cms .breadcrumb { display:none!important; }
#cms #left-column, #cms #right-column { display:none!important; }
#cms #content-wrapper { width:100%!important; float:none!important; }

/* Imagem topo full-width — sem esticar, proporção natural */
.tdf-sobre-topimg { width:100%; overflow:hidden; }
.tdf-sobre-topimg img { width:100%; height:auto; display:block; }

/* Banner de artigo de blog — altura controlada */
.tdf-blog-hero { width:100%; overflow:hidden; max-height:480px; }
.tdf-blog-hero img { width:100%; height:480px; object-fit:cover; object-position:center; display:block; }

/* Texto destaque */
.tdf-sobre-destaque { font-size:17px!important; line-height:1.85!important; color:var(--color-text)!important; margin-bottom:20px!important; }

/* Lista numerada */
.tdf-sobre-lista { padding-left:0!important; margin:16px 0 28px!important; counter-reset:item; list-style:none!important; }
.tdf-sobre-lista li { counter-increment:item; font-size:14px!important; line-height:1.85!important; color:var(--color-text-muted)!important; padding:12px 0 12px 36px!important; border-bottom:1px solid var(--color-border)!important; position:relative!important; }
.tdf-sobre-lista li:first-child { border-top:1px solid var(--color-border)!important; }
.tdf-sobre-lista li::before { content:counter(item); position:absolute; left:0; top:12px; font-size:18px; font-weight:300; color:var(--color-primary); line-height:1.6; }

/* CTA section */
.tdf-sobre-cta { background:var(--color-primary)!important; padding:80px 40px!important; }
.tdf-sobre-cta__title { font-size:clamp(22px,4vw,38px)!important; font-weight:300!important; letter-spacing:0.08em!important; text-transform:uppercase!important; color:#fff!important; margin:0 0 32px!important; }
.tdf-sobre-cta .tdf-btn--outline { border-color:rgba(255,255,255,0.7)!important; color:#fff!important; }
.tdf-sobre-cta .tdf-btn--outline:hover { background:#fff!important; color:var(--color-primary)!important; }

/* Label do hero Enoturismo — maior que o label padrão de secção */
.tdf-hero .tdf-label {
  font-size: 13px !important;
  letter-spacing: 0.16em !important;
}

@media (max-width:768px) {
  .tdf-sobre-cta { padding:50px 20px!important; }
}

/* ==========================================================
   ENOTURISMO — categoria ID 11
   ========================================================== */

/* Reset layout categoria igual homepage
   CRÍTICO: o layout-both-columns.tpl usa div.container entre #wrapper e #content-wrapper
   na homepage usa full-container (sem max-width) — nas outras páginas usa .container (max-width ~1200px)
   Precisamos de quebrar esse container para ter o hero full-width */
#category #wrapper,
#category section#wrapper > .container,
#category #content-wrapper,
#category section#main {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
#category #content-wrapper > section#main { margin:0!important; padding:0!important; }
#category .otbreadcrumb, #category nav.breadcrumb, #category .breadcrumb { display:none!important; }
#category #left-column, #category #right-column { display:none!important; }
#category #content-wrapper { width:100%!important; float:none!important; }

/* Enoturismo categoria ID 11 — esconder listagem de produtos abaixo do conteúdo custom */
body.category-id-11 section#products { display:none!important; }

/* Hero content alinhado à esquerda */
.tdf-hero__content--left { align-items:flex-start!important; text-align:left!important; padding-left:8%!important; }

/* Schedule do programa */
.tdf-eno-schedule { margin:28px 0; border-top:1px solid var(--color-border); }
.tdf-eno-slot { display:flex; gap:20px; padding:16px 0; border-bottom:1px solid var(--color-border); align-items:flex-start; }
.tdf-eno-slot__time { font-size:13px; font-weight:400; color:var(--color-primary); letter-spacing:0.05em; min-width:48px; padding-top:2px; }
.tdf-eno-slot__body strong { display:block; font-size:13px; letter-spacing:0.06em; text-transform:uppercase; color:var(--color-text); margin-bottom:4px; }
.tdf-eno-slot__body p { font-size:13px!important; color:var(--color-text-muted)!important; line-height:1.7!important; margin:0!important; }

/* Preço */
.tdf-eno-price { display:flex; align-items:baseline; gap:10px; margin:24px 0 28px; }
.tdf-eno-price__val { font-size:32px; font-weight:300; color:var(--color-primary); letter-spacing:0.04em; }
.tdf-eno-price__label { font-size:13px; color:var(--color-text-muted); }

/* Formulário de reserva */
.tdf-reserva-form { display:flex; flex-direction:column; gap:20px; }
.tdf-reserva-form__row { display:flex; flex-direction:column; gap:6px; }
.tdf-reserva-form__row label { font-size:13px; font-weight:600; color:var(--color-text); text-transform:uppercase; letter-spacing:0.06em; }
.tdf-reserva-form__row input,
.tdf-reserva-form__row textarea { width:100%; padding:12px 16px; border:1px solid #d0c9be; border-radius:4px; font-size:15px; font-family:inherit; background:#fff; color:var(--color-text); outline:none; transition:border-color .2s; }
.tdf-reserva-form__row input:focus,
.tdf-reserva-form__row textarea:focus { border-color:var(--color-primary); }
.tdf-reserva-form__row--half { flex-direction:row; gap:20px; }
.tdf-reserva-form__row--half > div { flex:1; display:flex; flex-direction:column; gap:6px; }
@media(max-width:600px){ .tdf-reserva-form__row--half { flex-direction:column; } }

/* Cards de programas */
.tdf-eno-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; }
.tdf-eno-card { background:#fff; overflow:hidden; }
.tdf-eno-card__img { aspect-ratio:4/3; overflow:hidden; }
.tdf-eno-card__img img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s ease; }
.tdf-eno-card:hover .tdf-eno-card__img img { transform:scale(1.04); }
.tdf-eno-card__body { padding:24px; border:1px solid var(--color-border); border-top:none; }
.tdf-eno-card__body h3 { font-size:14px!important; letter-spacing:0.1em!important; text-transform:uppercase!important; color:var(--color-text)!important; font-weight:400!important; margin:0 0 10px!important; }
.tdf-eno-card__body p { font-size:13px!important; color:var(--color-text-muted)!important; line-height:1.7!important; margin:0 0 20px!important; }

/* Produtos reserva online */
.tdf-eno-products { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }

@media (max-width:768px) {
  .tdf-hero__content--left { padding-left:5%!important; }
  .tdf-eno-cards { grid-template-columns:1fr; }
  .tdf-eno-products { grid-template-columns:1fr 1fr; }
}

/* ==========================================================
   GO TO TOP
   ========================================================== */
#goToTop { background-color: var(--color-primary) !important; color: #fff !important; }
#goToTop:hover { background-color: var(--color-primary-dark) !important; }

/* ==========================================================
   CMS PAGES — estilo Talha de Frades
   ========================================================== */

/* Remove sidebar, hide breadcrumb */
#cms .otbreadcrumb,
#cms nav.breadcrumb,
#cms .breadcrumb { display: none !important; }
#cms #left-column,
#cms #right-column { display: none !important; }
/* CRÍTICO: quebrar o div.container do layout-both-columns.tpl */
#cms section#wrapper > .container,
#cms #content-wrapper,
#cms #wrapper {
  max-width: 100% !important;
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
#cms section#main { margin: 0 !important; padding: 0 !important; }

/* Hero title banner */
.tdf-cms-hero {
  background: var(--color-beige);
  padding: 80px 40px;
  text-align: center;
  border-bottom: 1px solid var(--color-border);
}
.tdf-cms-hero__title {
  font-size: clamp(28px, 5vw, 52px) !important;
  font-weight: 300 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--color-text) !important;
  margin: 0 !important;
}

/* Prose content container */
.tdf-cms-body {
  padding: 80px 40px;
  background: #fff;
}
.tdf-cms-body__inner {
  max-width: 820px;
  margin: 0 auto;
}

/* Typography inside CMS content */
.tdf-cms-body__inner h1,
.tdf-cms-body__inner h2 {
  font-size: clamp(20px, 3vw, 30px) !important;
  font-weight: 300 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--color-text) !important;
  margin: 50px 0 18px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--color-border) !important;
}
.tdf-cms-body__inner h1:first-child,
.tdf-cms-body__inner h2:first-child { margin-top: 0 !important; }
.tdf-cms-body__inner h3 {
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--color-primary) !important;
  margin: 36px 0 10px !important;
}
.tdf-cms-body__inner p {
  font-size: 15px !important;
  line-height: 1.95 !important;
  color: var(--color-text-muted) !important;
  margin-bottom: 22px !important;
}
.tdf-cms-body__inner strong { color: var(--color-text) !important; font-weight: 600 !important; }
.tdf-cms-body__inner em { font-style: italic !important; }
.tdf-cms-body__inner a { color: var(--color-primary) !important; text-decoration: underline !important; }
.tdf-cms-body__inner a:hover { color: var(--color-primary-dark) !important; }
.tdf-cms-body__inner img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 40px 0 !important;
}
.tdf-cms-body__inner ul,
.tdf-cms-body__inner ol {
  padding-left: 24px !important;
  margin-bottom: 24px !important;
}
.tdf-cms-body__inner li {
  font-size: 15px !important;
  line-height: 1.9 !important;
  color: var(--color-text-muted) !important;
  margin-bottom: 8px !important;
}
.tdf-cms-body__inner blockquote {
  border-left: 3px solid var(--color-primary) !important;
  margin: 36px 0 !important;
  padding: 16px 28px !important;
  background: var(--color-beige) !important;
  font-style: italic !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: var(--color-text) !important;
}
.tdf-cms-body__inner hr {
  border: none !important;
  border-top: 1px solid var(--color-border) !important;
  margin: 48px 0 !important;
}
.tdf-cms-body__inner table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 14px !important;
  margin-bottom: 30px !important;
}
.tdf-cms-body__inner th {
  background: var(--color-beige) !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 12px !important;
  padding: 12px 16px !important;
  text-align: left !important;
  border-bottom: 2px solid var(--color-border) !important;
}
.tdf-cms-body__inner td {
  padding: 12px 16px !important;
  border-bottom: 1px solid var(--color-border) !important;
  color: var(--color-text-muted) !important;
  line-height: 1.6 !important;
}

@media (max-width: 768px) {
  .tdf-cms-hero { padding: 50px 20px; }
  .tdf-cms-body { padding: 50px 20px; }
}

/* ==========================================================
   EQUIPA — CMS ID 23
   ========================================================== */

.tdf-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 40px;
  align-items: start;
}
.tdf-team-member__img {
  overflow: hidden;
  background: var(--color-bg);
}
.tdf-team-member__img img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.4s ease;
}
.tdf-team-member:hover .tdf-team-member__img img {
  transform: scale(1.03);
}
.tdf-team-member__body {
  padding: 16px 0 0;
}
.tdf-team-member__body h3 {
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  color: var(--color-text) !important;
  margin: 0 0 4px !important;
  text-transform: none !important;
}
.tdf-team-member__body p {
  font-size: 12px !important;
  color: var(--color-text-muted) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  .tdf-team-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
@media (max-width: 480px) {
  .tdf-team-grid { grid-template-columns: 1fr; }
}

/* ==========================================================
   ONDE COMPRAR — CMS ID 21
   ========================================================== */

/* Embaixadores — 2 cards lado a lado */
.tdf-oc-ambassadors {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
.tdf-oc-ambassador {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  padding: 32px;
  border: 1px solid var(--color-border);
  background: var(--color-bg);
}
.tdf-oc-ambassador__logo {
  flex-shrink: 0;
  width: 100px;
}
.tdf-oc-ambassador__logo img {
  width: 100px;
  height: 100px;
  object-fit: contain;
  display: block;
}
.tdf-oc-ambassador__body h3 {
  font-size: 14px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  color: var(--color-text) !important;
  margin: 0 0 12px !important;
}
.tdf-oc-ambassador__body p {
  font-size: 13px !important;
  line-height: 1.75 !important;
  color: var(--color-text-muted) !important;
  margin: 0 0 6px !important;
}
.tdf-oc-addr { font-size: 12px !important; color: var(--color-text-muted) !important; }
.tdf-oc-link {
  font-size: 12px !important;
  color: var(--color-primary) !important;
  letter-spacing: 0.04em !important;
}

/* Região — título separador */
.tdf-oc-region {
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--color-primary) !important;
  font-weight: 400 !important;
  margin: 48px 0 24px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--color-border) !important;
}

/* Grelha de locais — 3 colunas */
.tdf-oc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px 40px;
}
.tdf-oc-location strong {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 6px;
}
.tdf-oc-location p {
  font-size: 12px !important;
  color: var(--color-text-muted) !important;
  line-height: 1.6 !important;
  margin: 0 0 2px !important;
}
.tdf-oc-city {
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--color-primary) !important;
  font-weight: 400 !important;
  margin-bottom: 4px !important;
}
.tdf-oc-location a {
  font-size: 12px !important;
  color: var(--color-primary) !important;
  text-decoration: none !important;
}
.tdf-oc-location a:hover { text-decoration: underline !important; }

@media (max-width: 768px) {
  .tdf-oc-ambassadors { grid-template-columns: 1fr; }
  .tdf-oc-ambassador { flex-direction: column; }
  .tdf-oc-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .tdf-oc-grid { grid-template-columns: 1fr; }
}

/* ==========================================================
   RECONHECIMENTOS — CMS ID 20
   ========================================================== */

/* Grelha 2×2 — 4 prémios principais */
.tdf-rec-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.tdf-rec-card { background: #fff; border: 1px solid var(--color-border); overflow: hidden; }
.tdf-rec-card__img {
  background: var(--color-bg);
  padding: 32px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 260px;
}
.tdf-rec-card__img img {
  max-height: 220px;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto !important;
}
.tdf-rec-card__body { padding: 24px; border-top: 1px solid var(--color-border); }
.tdf-rec-card__body h3 {
  font-size: 14px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--color-text) !important;
  font-weight: 400 !important;
  margin: 8px 0 8px !important;
}
.tdf-rec-card__body p {
  font-size: 13px !important;
  color: var(--color-text-muted) !important;
  margin: 0 !important;
  line-height: 1.6 !important;
}

/* Grelha 3×2 — fotos processo de vinificação */
.tdf-rec-process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.tdf-rec-process-grid img {
  width: 100% !important;
  height: 140px !important;
  object-fit: cover !important;
  display: block !important;
}

/* Citação final */
.tdf-rec-quote {
  font-size: clamp(18px, 2.5vw, 26px) !important;
  font-weight: 300 !important;
  color: #fff !important;
  line-height: 1.6 !important;
  font-style: italic !important;
  letter-spacing: 0.02em !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  .tdf-rec-cards { grid-template-columns: 1fr; }
  .tdf-rec-process-grid { grid-template-columns: repeat(2, 1fr); }
  .tdf-rec-process-grid img { height: 110px !important; }
}

/* ==========================================================
   WINE CLUB — CMS ID 19
   ========================================================== */

/* Hero vermelho */
.tdf-wc-hero {
  background: var(--color-primary);
  padding: 80px 40px;
  text-align: center;
}
.tdf-wc-hero__title {
  font-size: clamp(32px, 5vw, 60px) !important;
  font-weight: 300 !important;
  color: #fff !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  line-height: 1.2 !important;
  margin: 0 0 24px !important;
}
.tdf-wc-hero__sub {
  font-size: 15px !important;
  color: rgba(255,255,255,0.85) !important;
  max-width: 600px !important;
  margin: 0 auto 48px !important;
  line-height: 1.8 !important;
}
.tdf-wc-hero__img {
  max-width: 560px;
  margin: 0 auto;
}
.tdf-wc-hero__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* Preço + texto intro */
.tdf-wc-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  margin-bottom: 60px;
}
.tdf-wc-intro__text p {
  font-size: 15px !important;
  line-height: 1.9 !important;
  color: var(--color-text-muted) !important;
}
.tdf-wc-intro__price {
  text-align: center;
  border: 1px solid var(--color-border);
  padding: 40px 32px;
}
.tdf-wc-price__val {
  display: block;
  font-size: 52px !important;
  font-weight: 300 !important;
  color: var(--color-primary) !important;
  letter-spacing: 0.04em !important;
  line-height: 1.1 !important;
}
.tdf-wc-price__year {
  display: block;
  font-size: 13px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--color-text-muted) !important;
  margin: 6px 0 16px !important;
}
.tdf-wc-intro__price p {
  font-size: 12px !important;
  color: var(--color-text-muted) !important;
  margin-bottom: 24px !important;
  line-height: 1.6 !important;
}
.tdf-wc-price__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  align-items: center;
  margin-bottom: 12px;
}
.tdf-wc-price__btns .tdf-btn { margin: 0; }
@media (max-width: 480px) {
  .tdf-wc-price__btns { flex-direction: column; align-items: stretch; }
}

/* Packs de vinhos */
.tdf-wc-packs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 16px;
}
.tdf-wc-pack {
  border: 1px solid var(--color-border);
  overflow: hidden;
  text-align: center;
}
.tdf-wc-pack__img {
  background: var(--color-bg);
  padding: 32px 24px;
}
.tdf-wc-pack__img img {
  width: 100%;
  height: auto;
  max-height: 220px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
.tdf-wc-pack__body {
  padding: 24px;
  border-top: 1px solid var(--color-border);
}
.tdf-wc-pack__body h3 {
  font-size: 12px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--color-text) !important;
  font-weight: 400 !important;
  margin: 0 0 10px !important;
}
.tdf-wc-pack__body p {
  font-size: 13px !important;
  color: var(--color-text-muted) !important;
  line-height: 1.7 !important;
  margin: 0 0 20px !important;
}

/* Benefícios */
.tdf-wc-benefits {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-top: 48px;
  text-align: center;
}
.tdf-wc-benefit {
  padding: 32px 20px;
  background: #fff;
  border: 1px solid var(--color-border);
}
.tdf-wc-benefit .material-icons {
  font-size: 36px !important;
  color: var(--color-primary) !important;
  margin-bottom: 16px !important;
  display: block !important;
}
.tdf-wc-benefit h4 {
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--color-text) !important;
  font-weight: 400 !important;
  margin: 0 0 10px !important;
}
.tdf-wc-benefit p {
  font-size: 13px !important;
  color: var(--color-text-muted) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

/* Como Funciona — 3 passos */
.tdf-wc-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 48px;
  text-align: center;
}
.tdf-wc-step__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--color-primary);
  border-radius: 50%;
  font-size: 18px;
  font-weight: 300;
  color: var(--color-primary);
  margin: 0 auto 20px;
}
.tdf-wc-step h4 {
  font-size: 13px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--color-text) !important;
  font-weight: 400 !important;
  margin: 0 0 12px !important;
}
.tdf-wc-step p {
  font-size: 14px !important;
  color: var(--color-text-muted) !important;
  line-height: 1.8 !important;
  margin: 0 !important;
}

/* Vídeo embed limpo */
.tdf-wc-video-outer {
  max-width: 860px;
  margin: 0 auto;
}
.tdf-wc-video-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  background: #000;
  cursor: pointer;
  overflow: hidden;
}
.tdf-wc-video-thumb {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s ease, opacity 0.3s ease;
}
.tdf-wc-video-wrap:hover .tdf-wc-video-thumb {
  transform: scale(1.03);
  opacity: 0.85;
}
.tdf-wc-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  width: 80px;
  height: 80px;
  z-index: 2;
  transition: transform 0.2s ease;
}
.tdf-wc-play:hover { transform: translate(-50%, -50%) scale(1.1); }
.tdf-wc-play svg { width: 80px; height: 80px; display: block; }
.tdf-wc-video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 768px) {
  .tdf-wc-hero { padding: 60px 20px 0; }
  .tdf-wc-intro { grid-template-columns: 1fr; gap: 30px; }
  .tdf-wc-packs { grid-template-columns: 1fr; }
  .tdf-wc-benefits { grid-template-columns: repeat(2, 1fr); }
  .tdf-wc-steps { grid-template-columns: 1fr; gap: 30px; }
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width: 1024px) {
  .tdf-blog-grid { grid-template-columns: repeat(2, 1fr); }
  .tdf-footer__inner { grid-template-columns: repeat(2, 1fr); }
  .tdf-inner { padding: 0 30px; }
}
/* ==========================================================
   MOBILE MENU — fix ícone hamburger e navegação mobile
   ========================================================== */

/* Ícone hamburger — escuro no fundo branco */
#menu-icon i, #tdf-menu-icon i { color: var(--color-text) !important; }
#menu-icon:hover i, #menu-icon:active i,
#tdf-menu-icon:hover i, #tdf-menu-icon:active i { color: var(--color-primary) !important; }

/* Links do menu mobile */
#mobile_top_menu_wrapper a,
#_mobile_top_menu a,
.js-top-menu.mobile a {
  color: var(--color-text) !important;
  font-size: 13px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
#mobile_top_menu_wrapper a:hover,
#_mobile_top_menu a:hover {
  color: var(--color-primary) !important;
}

/* Ícones de utilizador/carrinho no mobile */
#_mobile_cart a, #_mobile_user_info a {
  color: var(--color-text) !important;
}

/* ==========================================================
   ÍCONES DO HEADER — sprites brancos → visíveis no fundo branco
   ========================================================== */

/* Lupa (pesquisa) — só sprite, sem filhos com texto */
.search-widget .wdsearch_button {
  filter: brightness(0) !important;
  float: none !important;
  position: relative !important;
  top: -8px !important;
}
.search-widget .wdsearch_button:hover,
.search-widget.active .wdsearch_button {
  filter: brightness(0) opacity(0.5) !important;
}
#search_widget {
  display: flex !important;
  align-items: center !important;
}

/* Utilizador / conta — só sprite, sem filhos com texto */
#header .wduserheading {
  filter: brightness(0) !important;
}
#header .wduserheading:hover,
#header .wduserheading.active {
  filter: brightness(0) opacity(0.5) !important;
}

/* Carrinho — substituir sprite branco por ícone Material Icons escuro */
#header .blockcart .header > a::after {
  background: none !important;
  content: "\e8cc" !important;
  font-family: "Material Icons" !important;
  font-size: 22px !important;
  color: var(--color-text) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 50px !important;
  width: 50px !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  float: none !important;
}
#header .blockcart .header > a:hover::after,
#header .blockcart .header > a.active::after {
  background: none !important;
  color: var(--color-primary) !important;
}

/* Badge de contagem do carrinho */
.blockcart span.cart-products-count {
  background: var(--color-primary) !important;
  color: #fff !important;
  z-index: 2 !important;
}


@media (max-width: 768px) {
  .tdf-hero { height: 75vh; min-height: 450px; }
  .tdf-section { padding: 50px 0; }
  .tdf-inner { padding: 0 20px; }
  .tdf-grid--2col { grid-template-columns: 1fr; gap: 30px; }
  .tdf-col--image-single img { height: 260px; }
  .tdf-img-stack { height: auto; grid-template-columns: 1fr; }
  .tdf-img-stack__item { height: 220px; }
  .tdf-img-stack__item--bottom { margin-top: 0; }
  .tdf-fullimg__wrap { height: 260px; }
  .tdf-blog-grid { grid-template-columns: 1fr; }
  .tdf-footer__inner { grid-template-columns: 1fr; padding: 40px 20px; }
  .tdf-footer__eu-inner { flex-direction: column; padding: 24px 20px; align-items: flex-start; }
  .tdf-footer__bottom-inner { flex-direction: column; text-align: center; padding: 14px 20px; }
  .tdf-footer__bottom-links { flex-wrap: wrap; justify-content: center; }
  .tdf-cat-hero__img { height: 220px; }
  #header .header-nav { padding: 0 15px !important; }
  .main-header { padding: 0 15px !important; }
}

/* ── Menu "Mais" — dropdown CSS hover (bypass theme JS) ───────────── */
.tdf-mais-wrap { position: relative; }
.tdf-mais-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  min-width: 180px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  border-top: 2px solid var(--color-primary);
  z-index: 9999;
  padding: 8px 0;
  list-style: none;
  margin: 0;
}
.tdf-mais-wrap:hover .tdf-mais-dropdown { display: block; }
.tdf-mais-dropdown li { margin: 0; }
.tdf-mais-dropdown li a {
  display: block;
  padding: 10px 20px;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-dark);
  text-decoration: none;
  white-space: nowrap;
}
.tdf-mais-dropdown li a:hover { color: var(--color-primary); }

/* Esconde qualquer item dinâmico do PS admin que possa surgir */
#top-menu > li:not(#tdf-menu-rec):not(#tdf-menu-wc):not(#tdf-menu-eno):not(#tdf-menu-loja):not(#tdf-menu-mais) { display: none !important; }

/* Mobile: "Mais" dropdown via JS toggle */
@media (max-width: 991px) {
  .tdf-mais-wrap { position: static; }
  .tdf-mais-dropdown { position: static; box-shadow: none; border-top: none; background: rgba(0,0,0,0.04); padding: 4px 0 4px 16px; }
  .tdf-mais-dropdown.tdf-mais-open { display: block; }
}

/* ── Saudação cliente logado no top banner ───────────────────────────── */
.tdf-customer-greeting { opacity: 0.95; }
.tdf-customer-greeting strong { font-weight: 600; }
.tdf-customer-email { opacity: 0.8; font-size: 0.9em; }
@media (max-width: 767px) {
  .tdf-announcement { font-size: 12px; line-height: 1.4; padding: 6px 8px; }
  .tdf-announcement > span { display: block; }
  .tdf-sep { display: none !important; }
  .tdf-customer-greeting { margin-top: 2px; }
  .tdf-customer-email { display: block; margin-left: 0; opacity: 0.75; font-size: 11px; }
}

/* ═══════════════════════════════════════════════════════════
   CARRINHO — dropdown click-toggle + botão remover visível
   ═══════════════════════════════════════════════════════════ */

/* Desativa o hover nativo */
.blockcart:hover .cart_block {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translate(0px, 20px) !important;
  -webkit-transform: translate(0px, 20px) !important;
  -moz-transform: translate(0px, 20px) !important;
  pointer-events: none !important;
}

/* Abre por classe (controlada por JS) */
.blockcart.tdf-cart-open .cart_block {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(0px, 0px) !important;
  -webkit-transform: translate(0px, 0px) !important;
  -moz-transform: translate(0px, 0px) !important;
  pointer-events: auto !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  border-radius: 6px;
  z-index: 999;
}

/* Ícone do carrinho: cursor pointer para indicar clicável */
#_desktop_cart .blockcart .header a,
#_desktop_cart .blockcart .header > i { cursor: pointer !important; }

/* Botão remover mais visível */
.cart_block .products .remove_link {
  position: absolute !important;
  right: 6px !important;
  top: 6px !important;
  margin: 0 !important;
  background: rgba(149, 58, 55, 0.08);
  border-radius: 50%;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.cart_block .products .remove_link:hover {
  background: var(--color-primary);
}
.cart_block .products .remove_link:hover i {
  color: #fff !important;
}
.cart_block .products .remove_link i {
  font-size: 18px !important;
  color: var(--color-primary);
}

/* Cartão de produto no carrinho com espaço extra para o X */
.cart_block .products {
  padding-right: 32px !important;
  position: relative !important;
}

/* Mobile — carrinho em bottom-sheet responsivo */
@media (max-width: 767px) {
  #mobile_top_menu_wrapper .blockcart.tdf-cart-open .cart_block,
  .blockcart.tdf-cart-open .cart_block {
    position: fixed !important;
    top: auto !important;
    right: 10px !important;
    left: 10px !important;
    bottom: 10px !important;
    width: auto !important;
    max-width: 420px;
    margin: 0 auto;
    max-height: 70vh;
    overflow-y: auto;
  }
}

/* ═══════════════════════════════════════════════════════════
   PREMIUM GRUPOS (produto 104) — esconder tabela "descontos"
   ═══════════════════════════════════════════════════════════ */
body.product-id-104 #quantityDiscount,
body.product-id-104 .product-discounts,
body.product-id-104 .product-quantity-discount,
body.product-id-104 table.table-product-discounts {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════
   MOBILE HEADER v2 — flexbox, limpo, responsivo
   ═══════════════════════════════════════════════════════════ */

/* Desligar regras antigas do mobile_menu (mantém compatibilidade com JS) */
#mobile_menu, .top-logo { display: none !important; }

.tdf-mobile-header {
  display: none;
  width: 100%;
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  position: relative;
  z-index: 50;
}
@media (max-width: 991px) {
  .tdf-mobile-header { display: block; }
  #_desktop_logo, #_desktop_top_menu { display: none !important; }
}

.tdf-mobile-header__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  gap: 8px;
}

.tdf-mobile-header .tdf-mobile-btn {
  background: none;
  border: none;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--color-text);
  transition: color 0.15s;
  min-width: 40px;
  min-height: 40px;
}
.tdf-mobile-header .tdf-mobile-btn:hover,
.tdf-mobile-header .tdf-mobile-btn:active,
.tdf-mobile-header .tdf-mobile-btn:focus { color: var(--color-primary); outline: none; }
.tdf-mobile-header .tdf-mobile-btn i { font-size: 24px; }

.tdf-mobile-logo {
  flex: 1;
  display: flex;
  justify-content: center;
  max-width: 160px;
  margin: 0 8px;
}
.tdf-mobile-logo img { max-height: 42px; width: auto; display: block; }

.tdf-mobile-actions {
  display: flex;
  align-items: center;
  gap: 2px;
}
.tdf-mobile-slot {
  display: flex;
  align-items: center;
}
/* Ícones de utilizador/carrinho dentro dos slots */
.tdf-mobile-slot a {
  padding: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text) !important;
  min-width: 40px;
  min-height: 40px;
  position: relative;
}
.tdf-mobile-slot a:hover { color: var(--color-primary) !important; }
.tdf-mobile-slot .material-icons { font-size: 22px; }
/* Esconder texto "Carrinho" / "Conta" nos ícones mobile */
.tdf-mobile-slot .hidden-sm-down,
.tdf-mobile-slot span.desc,
.tdf-mobile-slot .title,
.tdf-mobile-slot span:not(.cart-products-count):not(.material-icons) { display: none !important; }

/* Badge do carrinho (contagem) */
#_mobile_cart .cart-products-count {
  position: absolute !important;
  top: 2px !important;
  right: 2px !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  border-radius: 50% !important;
  width: 18px !important;
  height: 18px !important;
  font-size: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  line-height: 1 !important;
}

/* Painel de pesquisa expansível */
.tdf-mobile-search {
  padding: 10px 12px;
  background: #fafafa;
  border-bottom: 1px solid var(--color-border);
}
.tdf-mobile-search__form {
  display: flex;
  gap: 6px;
  align-items: stretch;
}
.tdf-mobile-search__form input {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 15px;
  outline: none;
}
.tdf-mobile-search__form input:focus { border-color: var(--color-primary); }
.tdf-mobile-search__form button {
  background: var(--color-primary);
  color: #fff;
  border: none;
  padding: 0 16px;
  border-radius: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tdf-mobile-search__form button i { font-size: 20px; }

/* Ocultar a barra de pesquisa desktop em mobile */
@media (max-width: 991px) {
  .right-nav,
  #search_widget { display: none !important; }
  #_desktop_cart, #_desktop_user_info { display: none !important; }
}

/* Mobile menu wrapper — quando aberto fica bem posicionado */
@media (max-width: 991px) {
  #mobile_top_menu_wrapper {
    position: relative !important;
    z-index: 999 !important;
    background: #fff !important;
    margin: 0 !important;
    padding: 12px 16px !important;
    border-bottom: 1px solid var(--color-border) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
  }
  #mobile_top_menu_wrapper .js-top-menu {
    padding: 0 !important;
  }
  #mobile_top_menu_wrapper ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  #mobile_top_menu_wrapper li {
    border-bottom: 1px solid #eee;
    padding: 0 !important;
  }
  #mobile_top_menu_wrapper li a {
    display: block !important;
    padding: 14px 4px !important;
    color: var(--color-text) !important;
    font-size: 14px !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
  }
  #mobile_top_menu_wrapper li a:hover { color: var(--color-primary) !important; }
  /* Sub-menu Mais */
  #mobile_top_menu_wrapper .tdf-mais-dropdown {
    display: none;
    background: #f7f3ee;
    padding: 4px 0 4px 16px !important;
  }
  #mobile_top_menu_wrapper .tdf-mais-dropdown.tdf-mais-open { display: block !important; }
  #mobile_top_menu_wrapper .tdf-mais-dropdown li { border: none; }
  #mobile_top_menu_wrapper .tdf-mais-dropdown a { text-transform: none !important; font-size: 13px !important; padding: 10px 4px !important; }
}

/* Override final: menu mobile como overlay fixo acima de tudo */
@media (max-width: 991px) {
  #mobile_top_menu_wrapper {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    max-height: 100vh !important;
    z-index: 999999 !important;
    background: #fff !important;
    padding: 60px 20px 20px !important;
    overflow-y: auto !important;
    box-shadow: none !important;
  }
  /* Botão X no topo direito para fechar */
  #mobile_top_menu_wrapper::before {
    content: "✕";
    position: absolute;
    top: 16px;
    right: 20px;
    font-size: 28px;
    color: var(--color-text);
    cursor: pointer;
    font-weight: 300;
    z-index: 10;
    padding: 6px 12px;
  }
  /* Logo no topo do menu aberto */
  #mobile_top_menu_wrapper::after {
    content: "";
    position: absolute;
    top: 18px;
    left: 20px;
    width: 100px;
    height: 36px;
    background-image: url('/Store/img/logo.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
  }
}

/* AGE GATE foi movido para inline em templates/_partials/header.tpl */

/* ==========================================================
   ESCONDER ps_searchbar (lupa do desktop — sem funcionalidade)
   ========================================================== */
#search_widget,
.right-nav .wdsearch_button,
.right-nav .wdsearchtoggle,
.ps-searchbar { display: none !important; }

/* ==========================================================
   HOMEPAGE — listas e CTAs do Programa Premium
   ========================================================== */
.tdf-bullets {
  list-style: none;
  padding: 0;
  margin: 18px 0 22px;
}
.tdf-bullets li {
  position: relative;
  padding: 4px 0 4px 22px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--color-text);
}
.tdf-bullets li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 14px;
  width: 6px;
  height: 6px;
  background: var(--color-primary);
  border-radius: 50%;
}
.tdf-cta-text {
  margin: 18px 0 22px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--color-text);
}
.tdf-cta-text strong { color: var(--color-primary); }

/* ==========================================================
   PROGRAMA PREMIUM — destaque visual reforçado
   ========================================================== */
.tdf-section--premium .tdf-label {
  display: inline-block !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--color-primary) !important;
  letter-spacing: 0.26em !important;
  margin-bottom: 24px !important;
  padding-bottom: 10px !important;
  border-bottom: 2px solid var(--color-primary) !important;
}
.tdf-section--premium .tdf-heading {
  font-size: 42px !important;
  font-weight: 500 !important;
  color: var(--color-text) !important;
  line-height: 1.25 !important;
  margin-bottom: 28px !important;
}
.tdf-section--premium .tdf-col--text > p {
  font-size: 18px !important;
  line-height: 1.8 !important;
  color: var(--color-text) !important;
  margin-bottom: 24px !important;
}
.tdf-section--premium .tdf-bullets {
  list-style: none;
  padding: 22px 26px 22px 30px;
  margin: 26px 0;
  background: rgba(255, 255, 255, 0.6);
  border-left: 4px solid var(--color-primary);
}
.tdf-section--premium .tdf-bullets li {
  position: relative;
  padding: 9px 0 9px 32px;
  font-size: 17px;
  line-height: 1.6;
  color: var(--color-text);
  font-weight: 400;
}
.tdf-section--premium .tdf-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  width: 20px;
  height: 20px;
  background: var(--color-primary);
  border-radius: 50%;
}
.tdf-section--premium .tdf-bullets li::after {
  content: "✓";
  position: absolute;
  left: 4px;
  top: 11px;
  font-size: 13px;
  color: #fff;
  font-weight: 700;
  line-height: 1;
  width: 12px;
  text-align: center;
}
.tdf-section--premium .tdf-contact-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 26px 0 !important;
  padding: 22px 26px !important;
  background: #fff !important;
  border: 1.5px solid var(--color-primary) !important;
  font-size: 16px !important;
  color: var(--color-text) !important;
  font-weight: 500 !important;
}
.tdf-section--premium .tdf-contact-row span {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tdf-section--premium .tdf-contact-row i.material-icons {
  font-size: 20px;
  color: var(--color-primary);
}
.tdf-section--premium .tdf-contact-row a {
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 600;
}
.tdf-section--premium .tdf-contact-row a:hover { text-decoration: underline; }
.tdf-section--premium .tdf-cta-text {
  margin: 26px 0 24px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text);
}
.tdf-section--premium .tdf-cta-text strong {
  color: var(--color-primary);
  font-size: 18px;
  font-weight: 700;
  display: inline-block;
  margin-bottom: 4px;
}

@media (max-width: 768px) {
  .tdf-section--premium .tdf-heading { font-size: 28px !important; }
  .tdf-section--premium .tdf-col--text > p { font-size: 16px !important; }
  .tdf-section--premium .tdf-bullets { padding: 18px 20px 18px 24px; }
  .tdf-section--premium .tdf-bullets li { font-size: 15px; padding-left: 28px; }
  .tdf-section--premium .tdf-contact-row { padding: 18px 20px !important; font-size: 15px !important; }
}

/* ==========================================================
   SCROLL REVEAL — animações ao entrar no viewport
   ========================================================== */
.tdf-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.tdf-reveal.is-visible {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1);
}
.tdf-reveal--left  { transform: translateX(-50px); }
.tdf-reveal--right { transform: translateX(50px); }
.tdf-reveal--scale { transform: scale(0.94); }
.tdf-reveal--d1 { transition-delay: 0.10s; }
.tdf-reveal--d2 { transition-delay: 0.20s; }
.tdf-reveal--d3 { transition-delay: 0.30s; }
.tdf-reveal--d4 { transition-delay: 0.40s; }
.tdf-reveal--d5 { transition-delay: 0.50s; }

@media (prefers-reduced-motion: reduce) {
  .tdf-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ==========================================================
   ENOTURISMO — Programa Premium detalhado
   ========================================================== */
.tdf-eno-program-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 0.05em;
  margin: 32px 0 18px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--color-primary);
  display: inline-block;
}
.tdf-eno-slot__list {
  list-style: none;
  padding: 8px 0 0 0;
  margin: 8px 0 0;
}
.tdf-eno-slot__list li {
  position: relative;
  padding: 4px 0 4px 20px;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--color-text);
}
.tdf-eno-slot__list li::before {
  content: "•";
  position: absolute;
  left: 4px;
  top: 4px;
  color: var(--color-primary);
  font-weight: 700;
  font-size: 16px;
}
.tdf-eno-slot__note {
  font-style: italic;
  font-size: 13.5px !important;
  color: var(--color-text-muted) !important;
  margin-top: 6px !important;
}

/* Pricing card */
.tdf-eno-pricing {
  margin: 32px 0 28px;
  padding: 24px 26px;
  background: #fff;
  border: 2px solid var(--color-primary);
  border-radius: 0;
  box-shadow: 0 6px 18px rgba(149, 58, 55, 0.08);
}
.tdf-eno-pricing__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 16px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.tdf-eno-pricing__list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
}
.tdf-eno-pricing__list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px dashed var(--color-border);
  font-size: 15px;
  color: var(--color-text);
  gap: 12px;
}
.tdf-eno-pricing__list li:last-child { border-bottom: none; }
.tdf-eno-pricing__label {
  font-weight: 500;
  color: var(--color-text-muted);
}
.tdf-eno-pricing__value {
  font-weight: 500;
  text-align: right;
  color: var(--color-text);
}
.tdf-eno-pricing__value strong {
  color: var(--color-primary);
  font-size: 16px;
}
.tdf-eno-pricing__note {
  font-size: 13.5px !important;
  color: var(--color-text-muted) !important;
  margin: 12px 0 0 !important;
  font-style: italic;
  line-height: 1.5;
}

.tdf-eno-cta {
  margin: 24px 0 22px !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
  color: var(--color-primary) !important;
  text-align: center;
  padding: 14px 18px;
  background: rgba(149, 58, 55, 0.06);
  border-left: 4px solid var(--color-primary);
}
.tdf-eno-cta strong { font-weight: 700 !important; }

@media (max-width: 768px) {
  .tdf-eno-program-title { font-size: 19px; }
  .tdf-eno-pricing { padding: 20px 18px; }
  .tdf-eno-pricing__list li { flex-direction: column; align-items: flex-start; gap: 4px; padding: 12px 0; }
  .tdf-eno-pricing__value { text-align: left; }
  .tdf-eno-cta { font-size: 15px !important; padding: 12px 14px; }
}

/* ==========================================================
   ENOTURISMO — Hero centrado destacado
   ========================================================== */
.tdf-eno-hero .tdf-hero__content--center {
  align-items: center !important;
  text-align: center !important;
  padding: 0 6% !important;
  max-width: 1100px;
  margin: 0 auto;
}
.tdf-eno-hero__title {
  font-family: 'Pontano Sans', sans-serif !important;
  font-size: clamp(28px, 4.2vw, 56px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #fff !important;
  letter-spacing: 0.02em !important;
  text-align: center !important;
  margin: 0 auto !important;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.55), 0 2px 6px rgba(0, 0, 0, 0.4);
  padding: 28px 36px;
  border-top: 1.5px solid rgba(255, 255, 255, 0.6);
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.6);
  display: inline-block;
  max-width: 900px;
}

/* ==========================================================
   ENOTURISMO — Secção "Tradição Ancestral" reforçada
   ========================================================== */
.tdf-section--ancestral .tdf-heading {
  font-size: 32px !important;
  font-weight: 700 !important;
  color: var(--color-primary) !important;
  letter-spacing: 0.01em !important;
  line-height: 1.25 !important;
  margin-bottom: 28px !important;
}
.tdf-section--ancestral .tdf-col--text > p {
  font-size: 17px !important;
  line-height: 1.8 !important;
  color: var(--color-text) !important;   /* preto puro em vez de cinza */
  font-weight: 400 !important;
  margin-bottom: 22px !important;
}
.tdf-section--ancestral .tdf-btn--primary {
  margin-top: 14px;
}

@media (max-width: 768px) {
  .tdf-eno-hero__title { padding: 18px 22px; font-size: clamp(22px, 6vw, 32px) !important; }
  .tdf-section--ancestral .tdf-heading { font-size: 24px !important; }
  .tdf-section--ancestral .tdf-col--text > p { font-size: 16px !important; line-height: 1.7 !important; }
}

/* ==========================================================
   WINE CLUB — vídeo self-hosted + ajustes
   ========================================================== */
.tdf-wc-video-outer {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 16px;
}
.tdf-wc-video {
  width: 100%;
  display: block;
  background: #000;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.3);
  border-radius: 4px;
}
@supports not (aspect-ratio: 16 / 9) {
  .tdf-wc-video { height: 405px; max-height: 56vw; }
}

.tdf-wc-price__pre {
  display: block;
  font-size: 13px;
  color: var(--color-text-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 6px;
  font-weight: 500;
}
.tdf-wc-price__note {
  display: block;
  font-size: 11.5px;
  color: var(--color-text-muted);
  margin-top: 12px;
  line-height: 1.5;
  font-style: italic;
}

@media (max-width: 768px) {
  .tdf-wc-video-outer { max-width: 100%; padding: 0 12px; }
}

/* ==========================================================
   WINE CLUB — reforço de títulos e contraste de texto
   ========================================================== */
/* Hero */
.tdf-wc-hero__title {
  font-weight: 800 !important;
  letter-spacing: 0.01em !important;
  color: #fff !important;
}
.tdf-wc-hero__sub {
  color: rgba(255, 255, 255, 0.95) !important;
  font-weight: 500 !important;
}

/* Intro — labels e título */
.tdf-wc-intro .tdf-label {
  color: var(--color-primary) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.22em !important;
}
.tdf-wc-intro .tdf-heading {
  font-weight: 700 !important;
  color: var(--color-text) !important;
  font-size: 34px !important;
  letter-spacing: 0.01em !important;
  line-height: 1.25 !important;
}
.tdf-wc-intro__text p {
  color: var(--color-text) !important;
  font-size: 16.5px !important;
  line-height: 1.75 !important;
  font-weight: 400 !important;
}
.tdf-wc-intro__text p strong {
  color: var(--color-primary);
  font-weight: 700;
}

/* Packs */
.tdf-wc-pack h3 {
  font-weight: 800 !important;
  color: var(--color-primary) !important;
  letter-spacing: 0.12em !important;
}
.tdf-wc-pack p {
  color: var(--color-text) !important;
  font-weight: 500 !important;
}

/* Benefícios */
.tdf-wc-benefits h2.tdf-heading--center,
.tdf-wc-steps + .tdf-inner h2.tdf-heading--center {
  font-weight: 700 !important;
  color: var(--color-text) !important;
}
.tdf-section--beige h2.tdf-heading--center,
.tdf-section--white h2.tdf-heading--center {
  font-weight: 700 !important;
}
.tdf-wc-benefit h4 {
  font-weight: 700 !important;
  color: var(--color-primary) !important;
  font-size: 17px !important;
  margin-bottom: 10px !important;
}
.tdf-wc-benefit p {
  color: var(--color-text) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  font-weight: 400 !important;
}
.tdf-wc-benefit p strong {
  color: var(--color-primary);
  font-weight: 700;
}

/* Como Funciona */
.tdf-wc-step h4 {
  font-weight: 700 !important;
  color: var(--color-text) !important;
  font-size: 17px !important;
  margin: 12px 0 8px !important;
}
.tdf-wc-step p {
  color: var(--color-text) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  font-weight: 400 !important;
}
.tdf-wc-step p strong {
  color: var(--color-primary);
  font-weight: 700;
}
.tdf-wc-step__num {
  font-weight: 800 !important;
}

/* Preço */
.tdf-wc-price__val {
  font-weight: 800 !important;
}

/* ==========================================================
   FIX — remover gap residual no fim das páginas CMS
   (footer vazio do PrestaShop entre o nosso conteúdo e o site footer)
   ========================================================== */
.cms-id-4 .page-footer,
.cms-id-19 .page-footer,
.cms-id-20 .page-footer,
.cms-id-37 .page-footer {
  display: none !important;
}
.cms-id-4 #main,
.cms-id-19 #main,
.cms-id-20 #main,
.cms-id-37 #main {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* ==========================================================
   WINE CLUB PRODUTO — página id 37 (estilo loja)
   ========================================================== */
.cms-id-37 .tdf-grid--2col {
  align-items: flex-start !important;
  gap: 56px !important;
}

/* Galeria — imagem principal + thumbs */
.tdf-wcprod-gallery__main {
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 460px;
}
.tdf-wcprod-gallery__main img {
  max-width: 100%;
  max-height: 420px;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: opacity 0.3s;
}
.tdf-wcprod-gallery__thumbs {
  display: flex;
  gap: 10px;
  margin-top: 14px;
}
.tdf-wcprod-thumb {
  flex: 1;
  border: 1.5px solid var(--color-border);
  background: #fff;
  padding: 8px;
  cursor: pointer;
  transition: border-color 0.2s, transform 0.2s;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tdf-wcprod-thumb img { max-height: 70px; width: auto; object-fit: contain; }
.tdf-wcprod-thumb:hover { border-color: var(--color-primary); }
.tdf-wcprod-thumb.is-active { border-color: var(--color-primary); border-width: 2px; }

/* Detalhes */
.tdf-wcprod-title {
  font-size: 34px !important;
  font-weight: 700 !important;
  color: var(--color-text) !important;
  letter-spacing: 0.01em !important;
  line-height: 1.2 !important;
  margin: 0 0 18px !important;
}
.tdf-wcprod-price {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 22px;
  flex-wrap: wrap;
}
.tdf-wcprod-price__sale {
  font-size: 32px;
  font-weight: 800;
  color: var(--color-primary);
}
.tdf-wcprod-price__old {
  font-size: 18px;
  color: var(--color-text-muted);
  text-decoration: line-through;
}
.tdf-wcprod-price__year {
  font-size: 14px;
  color: var(--color-text-muted);
  letter-spacing: 0.05em;
}
.tdf-wcprod-desc {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--color-text) !important;
  margin: 0 0 28px !important;
}
.tdf-wcprod-desc strong { color: var(--color-primary); font-weight: 700; }

/* Pack picker */
.tdf-wcprod-packs {
  margin: 0 0 24px;
}
.tdf-wcprod-packs__label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text-muted);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.tdf-wcprod-packs__row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tdf-wcprod-pack {
  flex: 1;
  min-width: 100px;
  padding: 14px 10px;
  background: #fff;
  border: 1.5px solid var(--color-border);
  color: var(--color-text);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.2s;
}
.tdf-wcprod-pack:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.tdf-wcprod-pack.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* Bullets */
.tdf-wcprod-bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
}
.tdf-wcprod-bullets li {
  position: relative;
  padding: 7px 0 7px 28px;
  font-size: 15px;
  color: var(--color-text);
  line-height: 1.55;
}
.tdf-wcprod-bullets li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 7px;
  width: 20px;
  height: 20px;
  background: var(--color-primary);
  color: #fff;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  line-height: 20px;
}

.tdf-btn--block {
  display: block !important;
  width: 100%;
  text-align: center;
  padding: 18px 24px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
}

.tdf-wcprod-contact {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--color-border);
  font-size: 14px;
  color: var(--color-text-muted);
}
.tdf-wcprod-contact p { margin: 4px 0; }
.tdf-wcprod-contact a { color: var(--color-primary); text-decoration: none; }
.tdf-wcprod-contact a:hover { text-decoration: underline; }

@media (max-width: 768px) {
  .cms-id-37 .tdf-grid--2col { gap: 32px !important; }
  .tdf-wcprod-gallery__main { min-height: 320px; padding: 20px; }
  .tdf-wcprod-gallery__main img { max-height: 280px; }
  .tdf-wcprod-title { font-size: 26px !important; }
  .tdf-wcprod-price__sale { font-size: 26px; }
  .tdf-wcprod-pack { font-size: 13px; padding: 12px 8px; }
}

/* Wine Club produto — link "Ver detalhes" abaixo do CTA */
.tdf-wcprod-viewlink {
  display: block;
  text-align: center;
  margin-top: 12px;
  font-size: 14px;
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}
.tdf-wcprod-viewlink:hover { color: var(--color-primary-dark); text-decoration: underline; }

/* ==========================================================
   FIX REFORÇADO — eliminar QUALQUER gap cinza no fim de
   páginas CMS personalizadas (footer/wrapper/content vazios)
   ========================================================== */
.cms-id-4 .page-footer,  .cms-id-19 .page-footer, .cms-id-20 .page-footer,
.cms-id-21 .page-footer, .cms-id-22 .page-footer, .cms-id-23 .page-footer,
.cms-id-25 .page-footer, .cms-id-26 .page-footer, .cms-id-27 .page-footer,
.cms-id-28 .page-footer, .cms-id-30 .page-footer, .cms-id-31 .page-footer,
.cms-id-32 .page-footer, .cms-id-33 .page-footer, .cms-id-37 .page-footer,
.cms-id-4 .page-header,  .cms-id-19 .page-header, .cms-id-20 .page-header,
.cms-id-21 .page-header, .cms-id-22 .page-header, .cms-id-23 .page-header,
.cms-id-25 .page-header, .cms-id-26 .page-header, .cms-id-27 .page-header,
.cms-id-28 .page-header, .cms-id-30 .page-header, .cms-id-31 .page-header,
.cms-id-32 .page-header, .cms-id-33 .page-header, .cms-id-37 .page-header { display: none !important; }

.cms-id-4 #wrapper,  .cms-id-4 #content-wrapper,  .cms-id-4 #main,  .cms-id-4 #content,  .cms-id-4 .full-container,
.cms-id-19 #wrapper, .cms-id-19 #content-wrapper, .cms-id-19 #main, .cms-id-19 #content, .cms-id-19 .full-container,
.cms-id-20 #wrapper, .cms-id-20 #content-wrapper, .cms-id-20 #main, .cms-id-20 #content, .cms-id-20 .full-container,
.cms-id-21 #wrapper, .cms-id-21 #content-wrapper, .cms-id-21 #main, .cms-id-21 #content, .cms-id-21 .full-container,
.cms-id-22 #wrapper, .cms-id-22 #content-wrapper, .cms-id-22 #main, .cms-id-22 #content, .cms-id-22 .full-container,
.cms-id-23 #wrapper, .cms-id-23 #content-wrapper, .cms-id-23 #main, .cms-id-23 #content, .cms-id-23 .full-container,
.cms-id-25 #wrapper, .cms-id-25 #content-wrapper, .cms-id-25 #main, .cms-id-25 #content, .cms-id-25 .full-container,
.cms-id-26 #wrapper, .cms-id-26 #content-wrapper, .cms-id-26 #main, .cms-id-26 #content, .cms-id-26 .full-container,
.cms-id-27 #wrapper, .cms-id-27 #content-wrapper, .cms-id-27 #main, .cms-id-27 #content, .cms-id-27 .full-container,
.cms-id-28 #wrapper, .cms-id-28 #content-wrapper, .cms-id-28 #main, .cms-id-28 #content, .cms-id-28 .full-container,
.cms-id-30 #wrapper, .cms-id-30 #content-wrapper, .cms-id-30 #main, .cms-id-30 #content, .cms-id-30 .full-container,
.cms-id-31 #wrapper, .cms-id-31 #content-wrapper, .cms-id-31 #main, .cms-id-31 #content, .cms-id-31 .full-container,
.cms-id-32 #wrapper, .cms-id-32 #content-wrapper, .cms-id-32 #main, .cms-id-32 #content, .cms-id-32 .full-container,
.cms-id-33 #wrapper, .cms-id-33 #content-wrapper, .cms-id-33 #main, .cms-id-33 #content, .cms-id-33 .full-container,
.cms-id-37 #wrapper, .cms-id-37 #content-wrapper, .cms-id-37 #main, .cms-id-37 #content, .cms-id-37 .full-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* ==========================================================
   RECONHECIMENTOS — Hero banner reduzido + intro destacada
   ========================================================== */
.tdf-rec-hero {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  height: clamp(380px, 55vh, 580px) !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
}
.tdf-rec-hero__bg {
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.tdf-rec-hero__bg img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 50% !important;
  display: block !important;
  max-width: none !important;
  max-height: none !important;
}
.tdf-rec-hero__overlay {
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.7) 100%) !important;
  z-index: 2 !important;
}
.tdf-rec-hero__content {
  position: relative !important;
  z-index: 3 !important;
  text-align: center !important;
  max-width: 880px !important;
  padding: 0 32px !important;
  width: 100%;
}
.tdf-rec-hero__title {
  font-size: clamp(40px, 6vw, 72px) !important;
  font-weight: 800 !important;
  color: #fff !important;
  letter-spacing: 0.03em !important;
  line-height: 1.1 !important;
  margin: 0 0 22px !important;
  text-shadow: 0 4px 22px rgba(0,0,0,0.7), 0 2px 6px rgba(0,0,0,0.5);
}
.tdf-rec-hero__sub {
  font-size: clamp(15px, 1.7vw, 19px) !important;
  color: #fff !important;
  line-height: 1.7 !important;
  margin: 0 auto !important;
  max-width: 760px;
  font-weight: 500 !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.65), 0 1px 3px rgba(0,0,0,0.5);
}

.tdf-rec-intro {
  font-size: 17px !important;
  line-height: 1.85 !important;
  color: var(--color-text) !important;
  text-align: center;
  margin: 0 auto !important;
  font-weight: 400 !important;
}
.tdf-rec-intro strong {
  color: var(--color-primary);
  font-weight: 700;
}

@media (max-width: 768px) {
  .tdf-rec-hero { height: clamp(220px, 35vh, 320px); }
  .tdf-rec-hero__title { font-size: clamp(28px, 7vw, 38px) !important; }
  .tdf-rec-hero__sub { font-size: 14px !important; }
  .tdf-rec-intro { font-size: 15px !important; }
}

/* ==========================================================
   RECONHECIMENTOS — cards como links + imagem Público fit
   ========================================================== */
a.tdf-rec-card,
a.tdf-eno-card {
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
a.tdf-rec-card:hover,
a.tdf-eno-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}
a.tdf-rec-card:hover h3,
a.tdf-eno-card:hover h3 { color: var(--color-primary); }

/* Imagem do Público — inteira, horizontal, sem corte */
.cms-id-20 .tdf-rec-publico-img {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.cms-id-20 .tdf-rec-publico-img img {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  display: block !important;
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

/* ==========================================================
   LOJA (categoria 18) — Hero + Sub-nav + Bottom feature
   ========================================================== */
.tdf-loja-hero {
  position: relative;
  width: 100%;
  height: clamp(320px, 45vh, 480px);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tdf-loja-hero__bg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  z-index: 1;
}
.tdf-loja-hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
}
.tdf-loja-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.45), rgba(0,0,0,0.65));
  z-index: 2;
}
.tdf-loja-hero__content {
  position: relative; z-index: 3;
  text-align: center;
  max-width: 880px;
  padding: 0 32px;
}
.tdf-loja-hero__pre {
  display: block;
  font-size: clamp(13px, 1.3vw, 16px);
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 14px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.tdf-loja-hero__title {
  font-size: clamp(36px, 5vw, 60px) !important;
  font-weight: 800 !important;
  color: #fff !important;
  line-height: 1.15 !important;
  margin: 0 0 18px !important;
  text-shadow: 0 4px 22px rgba(0,0,0,0.65);
}
.tdf-loja-hero__sub {
  font-size: clamp(15px, 1.6vw, 18px);
  color: #fff;
  line-height: 1.6;
  margin: 0 auto;
  max-width: 700px;
  font-weight: 500;
  text-shadow: 0 2px 8px rgba(0,0,0,0.55);
}

/* Sub-nav */
.tdf-loja-subnav {
  background: var(--color-bg);
  padding: 36px 0 24px;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 30px;
}
.tdf-loja-subnav__title {
  font-size: clamp(28px, 3.5vw, 40px) !important;
  font-weight: 700 !important;
  color: var(--color-text) !important;
  text-align: center;
  margin: 0 0 18px !important;
}
.tdf-loja-subnav__links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 14px;
}
.tdf-loja-subnav__links a {
  color: var(--color-text-muted);
  text-decoration: none;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: color 0.2s;
}
.tdf-loja-subnav__links a:hover { color: var(--color-primary); }
.tdf-loja-subnav__sep { color: var(--color-text-muted); opacity: 0.5; }

/* Bottom feature — texto destaque */
.tdf-loja-feature {
  padding: 60px 0 30px;
  background: #fff;
  text-align: center;
}
.tdf-loja-feature__title {
  font-size: clamp(28px, 3.5vw, 40px) !important;
  font-weight: 700 !important;
  color: var(--color-primary) !important;
  margin: 0 0 24px !important;
}
.tdf-loja-feature__lead {
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: var(--color-text) !important;
  max-width: 760px;
  margin: 0 auto 18px !important;
}
.tdf-loja-feature__lead strong { color: var(--color-primary); font-weight: 700; }

/* Bottom packs grid */
.tdf-loja-packs {
  padding: 30px 0 70px;
  background: #fff;
}
.tdf-loja-packs__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  max-width: 1100px;
  margin: 0 auto;
}
.tdf-loja-pack {
  display: block;
  text-decoration: none !important;
  color: inherit !important;
  background: #fafafa;
  transition: transform 0.25s, box-shadow 0.25s;
}
.tdf-loja-pack:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.12);
}
.tdf-loja-pack__img {
  background: #fff;
  padding: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 240px;
}
.tdf-loja-pack__img img {
  max-width: 100%;
  max-height: 220px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.tdf-loja-pack__body {
  padding: 18px 18px 22px;
  text-align: center;
}
.tdf-loja-pack__body h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-primary);
}

@media (max-width: 768px) {
  .tdf-loja-hero { height: clamp(240px, 38vh, 340px); }
  .tdf-loja-hero__title { font-size: clamp(26px, 6vw, 36px) !important; }
  .tdf-loja-subnav__links { font-size: 12px; gap: 8px; }
  .tdf-loja-packs__grid { grid-template-columns: 1fr; gap: 20px; padding: 0 16px; }
}

/* ==========================================================
   BRANCOS (cat 27) e TINTOS (cat 28) — hero com tonalidade própria
   ========================================================== */
.tdf-cat-hero--brancos .tdf-loja-hero__overlay {
  background: linear-gradient(180deg, rgba(60, 50, 30, 0.35) 0%, rgba(149, 58, 55, 0.55) 100%) !important;
}
.tdf-cat-hero--brancos .tdf-loja-hero__pre {
  color: #f5e6c8 !important;
  letter-spacing: 0.22em !important;
}

.tdf-cat-hero--tintos .tdf-loja-hero__overlay {
  background: linear-gradient(180deg, rgba(149, 58, 55, 0.45) 0%, rgba(40, 15, 15, 0.75) 100%) !important;
}
.tdf-cat-hero--tintos .tdf-loja-hero__pre {
  color: #ffd0c0 !important;
  letter-spacing: 0.22em !important;
}

/* Sub-nav nas categorias filhas (back link com cor primária) */
.tdf-loja-subnav__links a[href*="18-loja"],
.tdf-loja-subnav__links a[href$="18-loja"] {
  color: var(--color-primary) !important;
  font-weight: 700;
}

/* ==========================================================
   NEWSLETTER — honeypot anti-bot
   Campo invisível para humanos, mas bots preenchem.
   ========================================================== */
.tdf-hp-field {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ==========================================================
   ANNOUNCEMENT BAR — marquee a rolar para a esquerda
   ========================================================== */
.tdf-announcement {
  overflow: hidden;
  padding: 8px 0 !important;
}
.tdf-marquee {
  width: 100%;
  overflow: hidden;
  position: relative;
}
.tdf-marquee__track {
  display: flex;
  width: max-content;
  animation: tdf-marquee 40s linear infinite;
  will-change: transform;
}
.tdf-marquee__item {
  white-space: nowrap;
  padding-right: 3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.tdf-marquee:hover .tdf-marquee__track {
  animation-play-state: paused;
}
@keyframes tdf-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.tdf-customer-greeting-wrap {
  display: none; /* opcional — esconde para limpar visual; pode ativar se quiseres */
}

/* ==========================================================
   HERO — slideshow com fade
   ========================================================== */
.tdf-hero--slideshow { position: relative; overflow: hidden; }
.tdf-hero__slides {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 1;
}
.tdf-hero__slide {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  opacity: 0;
  transition: opacity 1.2s ease-in-out;
  z-index: 1;
}
.tdf-hero__slide.is-active {
  opacity: 1;
  z-index: 2;
}
.tdf-hero__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.tdf-hero__dots {
  position: absolute;
  bottom: 24px;
  left: 0; right: 0;
  z-index: 5;
  display: flex;
  justify-content: center;
  gap: 10px;
}
.tdf-hero__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.3s, transform 0.2s;
}
.tdf-hero__dot:hover { background: rgba(255, 255, 255, 0.85); transform: scale(1.2); }
.tdf-hero__dot.is-active {
  background: #fff;
  width: 28px;
  border-radius: 5px;
}

/* ==========================================================
   PROGRAMA PREMIUM — imagem única grande à direita
   ========================================================== */
.tdf-col--single-image {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.tdf-premium-image {
  max-width: 100%;
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}
@media (min-width: 992px) {
  .tdf-section--premium .tdf-col--single-image { padding: 0; }
  .tdf-premium-image { max-width: 100%; width: 100%; }
}
@media (min-width: 1280px) {
  .tdf-premium-image { max-width: 100%; }
}
/* Container mais largo nesta secção para texto e imagem terem ambos espaço */
.tdf-section--premium .tdf-inner {
  max-width: 1560px !important;
  padding-left: 60px !important;
  padding-right: 30px !important; /* menos padding à direita = imagem mais perto da borda */
  overflow: visible !important;
}
.tdf-section--premium .tdf-grid--2col {
  grid-template-columns: 1fr 2fr !important; /* imagem domina o dobro do texto */
  align-items: center !important;
  gap: 90px !important;
}
/* Empurra a imagem para a direita, alarga ainda mais para fora do container */
.tdf-section--premium .tdf-col--single-image {
  margin-right: -40px !important;
}
.tdf-section--premium .tdf-premium-image {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
}
@media (max-width: 768px) {
  .tdf-premium-image { max-width: 100%; }
  .tdf-section--premium .tdf-grid--2col { grid-template-columns: 1fr !important; }
  .tdf-section--premium .tdf-col--single-image { margin-right: 0 !important; }
  .tdf-section--premium .tdf-inner { padding-left: 20px !important; padding-right: 20px !important; }
}

/* ==========================================================
   CITAÇÃO INTRO — fundo diferente do Programa Premium (bege)
   Texto serif clássico em Cormorant Garamond, maior e mais legível
   ========================================================== */
.tdf-quote-intro {
  position: relative;
  padding: 110px 24px;
  text-align: center;
  overflow: hidden;
  /* Fundo branco-creme com vinheta vermelha sutil — distinto do bege da secção seguinte */
  background:
    radial-gradient(ellipse at 50% 50%, rgba(149, 58, 55, 0.05) 0%, transparent 65%),
    #fdfaf6;
  border-top: 1px solid rgba(149, 58, 55, 0.08);
  border-bottom: 1px solid rgba(149, 58, 55, 0.08);
}
.tdf-quote-intro::before,
.tdf-quote-intro::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  height: 1px;
  width: 70%;
  max-width: 600px;
  background: linear-gradient(90deg, transparent 0%, rgba(149, 58, 55, 0.3) 50%, transparent 100%);
}
.tdf-quote-intro::before { top: 28px; }
.tdf-quote-intro::after  { bottom: 28px; }

.tdf-quote-intro__inner {
  position: relative;
  z-index: 5;
  text-align: center;
}

/* Texto principal — Cormorant Garamond, italic, MAIOR */
.tdf-quote-intro__text {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(32px, 4.2vw, 54px);
  line-height: 1.35;
  color: var(--color-primary);
  font-style: italic;
  font-weight: 700;
  max-width: 1100px;
  margin: 0 auto 40px;
  letter-spacing: 0;
  position: relative;
}
/* Aspas em vermelho dentro do texto */
.tdf-quote-intro__text::before {
  content: '“';
  color: var(--color-primary);
  font-weight: 600;
  margin-right: 6px;
}
.tdf-quote-intro__text::after {
  content: '”';
  color: var(--color-primary);
  font-weight: 600;
  margin-left: 6px;
}

/* Cacho de uvas decorativo no fundo */
.tdf-quote-intro__grape {
  width: 32px;
  height: 40px;
  margin: 0 auto;
  color: var(--color-primary);
  display: block;
  opacity: 0.85;
}

/* Decorações de fundo — talha à direita */
.tdf-quote-intro__talha {
  position: absolute;
  right: 4%;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(140px, 18vw, 240px);
  height: auto;
  color: var(--color-primary);
  opacity: 0.18;
  pointer-events: none;
  z-index: 1;
}

/* Decoração vinhedo à esquerda */
.tdf-quote-intro__vineyard {
  position: absolute;
  left: 3%;
  bottom: 8%;
  width: clamp(140px, 18vw, 230px);
  height: auto;
  color: var(--color-primary);
  opacity: 0.14;
  pointer-events: none;
  z-index: 1;
}

@media (max-width: 768px) {
  .tdf-quote-intro { padding: 70px 20px; }
  .tdf-quote-intro__text { font-size: 28px; line-height: 1.4; margin-bottom: 28px; font-weight: 700; }
  .tdf-quote-intro::before,
  .tdf-quote-intro::after { width: 80%; }
  .tdf-quote-intro__vineyard { display: none; }
}

/* ==========================================================
   ANNOUNCE BAR — abaixo do hero (substitui o do topo)
   Texto rola continuamente "tipo cobra" — esquerda → direita loop
   ========================================================== */
.tdf-announce-bar {
  background: var(--color-primary);
  color: #fff;
  padding: 14px 0;
  overflow: hidden;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.06em;
  position: relative;
  z-index: 5;
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.tdf-announce-bar .tdf-marquee {
  width: 100%;
  overflow: hidden;
}
.tdf-announce-bar .tdf-marquee__track {
  display: flex;
  width: max-content;
  animation: tdf-marquee-loop 35s linear infinite;
  will-change: transform;
}
.tdf-announce-bar .tdf-marquee__item {
  white-space: nowrap;
  padding-right: 4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}
.tdf-announce-bar:hover .tdf-marquee__track {
  animation-play-state: paused;
}
@keyframes tdf-marquee-loop {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-33.333%); }
}

/* Customer bar (não-homepage, só para clientes logados) */
.tdf-customer-bar {
  background: var(--color-beige);
  color: var(--color-text);
  padding: 8px 16px;
  text-align: right;
  font-size: 13px;
}

@media (max-width: 768px) {
  .tdf-announce-bar { padding: 10px 0; font-size: 13px; }
  .tdf-announce-bar .tdf-marquee__item { padding-right: 2.5rem; }
}

/* ==========================================================
   ENOTURISMO — Programa Premium imagem única grande
   ========================================================== */
.tdf-eno-premium-image-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
.tdf-eno-premium-image {
  width: 100%;
  height: auto;
  max-height: 720px;
  object-fit: cover;
  border-radius: 4px;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.18);
}
@media (min-width: 992px) {
  .tdf-section--premium .tdf-grid--2col {
    grid-template-columns: 1fr 2fr !important;
    gap: 90px !important;
  }
}

/* ==========================================================
   WINE CLUB — Hero com vídeo integrado
   ========================================================== */
.tdf-wc-hero--with-video {
  padding: 70px 24px 80px;
  text-align: center;
}
.tdf-wc-hero--with-video .tdf-inner {
  max-width: 980px;
  margin: 0 auto;
}
.tdf-wc-hero--with-video .tdf-wc-hero__title {
  margin-bottom: 16px !important;
}
.tdf-wc-hero--with-video .tdf-wc-hero__sub {
  margin-bottom: 38px !important;
}
.tdf-wc-hero--with-video .tdf-wc-video-outer {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
}
.tdf-wc-hero--with-video .tdf-wc-video {
  width: 100%;
  display: block;
  background: #000;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
  border-radius: 4px;
  border: 2px solid rgba(255, 255, 255, 0.12);
}
@supports not (aspect-ratio: 16 / 9) {
  .tdf-wc-hero--with-video .tdf-wc-video { height: 425px; max-height: 56vw; }
}

@media (max-width: 768px) {
  .tdf-wc-hero--with-video { padding: 50px 18px 60px; }
  .tdf-wc-hero--with-video .tdf-wc-hero__sub { margin-bottom: 28px !important; }
}

/* ==========================================================
   MOBILE — Reordenação de secções 2-col
   - Premium (homepage + enoturismo) e Press (reconhecimentos):
       texto → imagem → botão
   - Ancestral (enoturismo): imagem → título → texto → botão
   IMPORTANTE: gap:0 no flex para os textos manterem espaçamento natural;
   só a imagem e o botão recebem margin-top explícito.
   ========================================================== */
@media (max-width: 768px) {
  /* PREMIUM e PRESS — botão sai depois da imagem */
  .tdf-section--premium .tdf-grid--2col,
  .tdf-section--press   .tdf-grid--2col {
    display: flex !important;
    flex-direction: column;
    gap: 0 !important;
  }
  .tdf-section--premium .tdf-col--text,
  .tdf-section--press   .tdf-col--text {
    display: contents;
  }
  .tdf-section--premium .tdf-col--single-image,
  .tdf-section--press   .tdf-rec-publico-img {
    order: 50;
    margin-top: 28px;
  }
  .tdf-section--premium .tdf-col--text > .tdf-btn,
  .tdf-section--press   .tdf-col--text > .tdf-btn {
    order: 100;
    align-self: flex-start;
    margin-top: 24px;
  }

  /* ANCESTRAL — imagem vai para cima do título */
  .tdf-section--ancestral .tdf-grid--2col {
    display: flex !important;
    flex-direction: column;
    gap: 0 !important;
  }
  .tdf-section--ancestral .tdf-col--text {
    display: contents;
  }
  .tdf-section--ancestral .tdf-col--image-single {
    order: -1;
    margin-bottom: 28px;
  }
  .tdf-section--ancestral .tdf-col--text > .tdf-btn {
    order: 100;
    align-self: flex-start;
    margin-top: 24px;
  }
}

/* ==========================================================
   MOBILE — Termos e Condições (cms-id 3) e
            Entrega/Devoluções (cms-id 1)
   Garante que o conteúdo aparece em mobile (full-width + padding)
   ========================================================== */
.cms-id-1 #wrapper,  .cms-id-1 #content-wrapper,  .cms-id-1 #main,  .cms-id-1 #content,  .cms-id-1 .full-container,
.cms-id-3 #wrapper,  .cms-id-3 #content-wrapper,  .cms-id-3 #main,  .cms-id-3 #content,  .cms-id-3 .full-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  max-width: 100% !important;
  width: 100% !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}
.cms-id-1 .page-header,
.cms-id-3 .page-header { display: none !important; }

.cms-id-1 #left-column, .cms-id-1 #right-column,
.cms-id-3 #left-column, .cms-id-3 #right-column { display: none !important; }

@media (max-width: 768px) {
  .cms-id-1 .tdf-section,
  .cms-id-3 .tdf-section {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    padding: 40px 0 !important;
  }
  .cms-id-1 .tdf-inner,
  .cms-id-3 .tdf-inner {
    padding: 0 20px !important;
    max-width: 100% !important;
  }
}
