/*
Theme Name: 3D Fácil Theme
Description: Tema personalizado para ecommerce Lacuna Ambientes com Tailwind CSS
Version: 4.1
Author: Castro Afrente Soluções
*/

/* Cores personalizadas do tema Lacuna */
:root {
  --lacuna-brown: #8B7355;
  --lacuna-cream: #F5F2E8;  
  --lacuna-dark: #2D2A26;
  --lacuna-light-brown: #C4B8A0;
  --lacuna-beige: #E8E2D5;
  --lime-400: #a3e635;
  
  /* ALTURA DA LOGO DO FOOTER - EDITÁVEL */
  --lacuna-footer-logo-height: 40px; /* MUDE ESTE VALOR PARA AJUSTAR A ALTURA */
}

/* Classe personalizada para text-lime-400 */
.text-lime-400 {
  color: var(--lime-400) !important;
}

/* Reset e configurações básicas */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  line-height: 1.6;
  color: #2D2A26;
  background-color: #FAFAFA;
}

/* Garantir que links em produtos relacionados funcionem */
.related-products-slider .product-card {
  pointer-events: auto;
}

.related-products-slider .product-card a {
  pointer-events: auto;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  z-index: 10;
  position: relative;
}

.related-products-slider .product-card a:hover {
  color: inherit;
}

/* Animações personalizadas */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease-out;
}

.fade-in-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hover effects personalizados */
.hover-scale {
  transition: transform 0.3s ease;
}

.hover-scale:hover {
  transform: scale(1.05);
}

/* Estilos para botões personalizados */
.btn-lacuna {
  background-color: var(--lacuna-dark);
  color: white;
  padding: 12px 24px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
  display: inline-block;
}

.btn-lacuna:hover {
  background-color: var(--lacuna-brown);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.btn-lacuna-outline {
  background-color: transparent;
  color: var(--lacuna-dark);
  border: 2px solid var(--lacuna-dark);
}

.btn-lacuna-outline:hover {
  background-color: var(--lacuna-dark);
  color: white;
}

/* Customizações específicas do WordPress */
.wp-block-image {
  margin: 0;
}

/* Responsive utilities específicas */
@media (max-width: 768px) {
  .mobile-center {
    text-align: center;
  }
  
  .mobile-full {
    width: 100%;
  }
}

/* Scrollbar personalizada */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
  background: var(--lacuna-brown);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--lacuna-dark);
}

/* Estilos específicos para seções */
.section-padding {
  padding: 80px 0;
}

/* Hero Section específica */
.hero-lacuna {
  background-position: center right;
  background-size: cover;
  /* Fallback gradient se a imagem não carregar */
  background: linear-gradient(135deg, #f5f2e8 0%, #e8e2d5 50%, #c4b8a0 100%);
}

.hero-lacuna h1 {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
  text-shadow: 0 2px 4px rgba(255,255,255,0.3);
}

/* Garantir que a cor lime seja aplicada no span */
.hero-lacuna h1 .text-lime-400,
.hero-lacuna h1 span.text-lime-400,
.espaço-nobre-destaque {
  color: var(--lime-400) !important;
}

.hero-lacuna .badge-lacuna {
  backdrop-filter: blur(10px);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255,255,255,0.1);
}

/* Animações para o hero */
.hero-content {
  animation: fadeInUp 1s ease-out;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Melhorar responsividade do hero */
@media (max-width: 768px) {
  .hero-lacuna h1 {
    font-size: 2.5rem;
    line-height: 1.1;
  }
  
  .hero-lacuna p {
    font-size: 1.125rem;
  }
}

@media (max-width: 768px) {
  .section-padding {
    padding: 60px 0;
  }
}

/* Estilos para slider de produtos mais vendidos */
.best-sellers-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin: 0;
}

.products-slider-container {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.products-slider-wrapper {
  display: flex;
  transition: transform 0.3s ease;
  gap: 1.5rem;
  width: 100%;
}

.product-slide {
  flex: 0 0 auto;
  width: 100%;
  max-width: 300px;
}

.product-card {
  background: white;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: box-shadow 0.3s ease;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  position: relative;
  pointer-events: auto;
}

.product-card:hover {
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

/* Garantir que todos os links dentro do card funcionem */
.product-card a {
  pointer-events: auto !important;
  z-index: 5;
  position: relative;
  text-decoration: none;
  color: inherit;
}

.product-card a:hover {
  text-decoration: none;
}

.product-card .group-hover\:opacity-100 {
  pointer-events: auto;
}

.product-card button {
  pointer-events: auto;
  z-index: 10;
}

/* Garantir que botões de carrinho sempre apareçam */
.single_add_to_cart_button,
.add_to_cart_button,
button[name="add-to-cart"],
.cart form,
.woocommerce-cart-form,
.cart-contents,
.mini-cart,
.widget_shopping_cart,
.cart-icon {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Ocultar apenas preços, não o carrinho */
body.hide-prices .price,
body.hide-prices .woocommerce-price-amount,
body.hide-prices .amount,
body.hide-prices .price-range,
body.hide-prices .cart-subtotal .amount,
body.hide-prices .order-total .amount {
  display: none !important;
}

/* Manter carrinho visível mas ocultar totais */
body.hide-prices .cart-subtotal,
body.hide-prices .order-total,
body.hide-prices .cart-total {
  display: block !important;
}

body.hide-prices .cart-subtotal .amount,
body.hide-prices .order-total .amount,
body.hide-prices .cart-total .amount {
  display: none !important;
}

/* Remover validação HTML5 que pode estar bloqueando */
input[type="number"]:invalid {
  box-shadow: none !important;
  border-color: #d1d5db !important;
}

.qty-input {
  -moz-appearance: textfield; /* Remove setas no Firefox */
  appearance: textfield; /* Propriedade padrão */
}

.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none; /* Remove setas no Chrome/Safari */
  margin: 0;
}

.product-image-link {
  display: block;
  width: 100%;
  margin-bottom: 1rem;
}

.product-image {
  width: 100%;
  height: 12rem;
  object-fit: cover;
  border-radius: 0.75rem;
}

.product-title {
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 0.5rem;
  text-align: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  line-height: 1.4;
}

.product-price {
  font-size: 1.125rem;
  font-weight: 700;
  color: #374151;
  margin-bottom: 0.75rem;
}

.btn-product {
  background-color: #111827;
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
  transition: all 0.3s ease;
  font-family: 'Montserrat', sans-serif;
}

.btn-product:hover {
  background-color: #374151;
  color: white;
  text-decoration: none;
}

.slider-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding: 0 -2rem;
  pointer-events: none;
}

.slider-btn {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: white;
  border: 1px solid #e5e7eb;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.5rem;
  font-weight: 700;
  color: #374151;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
  pointer-events: auto;
}

.slider-btn:hover {
  background-color: #111827;
  color: white;
  transform: scale(1.05);
}

.slider-prev {
  left: -1.5rem;
}

.slider-next {
  right: -1.5rem;
}

/* Responsividade do slider */
@media (min-width: 640px) {
  .product-slide {
    width: calc(50% - 0.75rem);
    max-width: calc(50% - 0.75rem);
  }
}

@media (min-width: 1024px) {
  .product-slide {
    width: calc(25% - 1.125rem);
    max-width: calc(25% - 1.125rem);
  }
}

/* Estilos específicos para o slider de mais vendidos */
.best-sellers-container {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.best-sellers-swiper {
  padding: 0 3rem;
  overflow: hidden;
}

.best-sellers-swiper .swiper-slide {
  height: auto;
  display: flex;
  align-items: stretch;
}

.product-card-container {
  background: white;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  width: 100%;
}

.product-card-container:hover {
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
  transform: translateY(-2px);
}

.product-link {
  display: block;
  width: 100%;
  margin-bottom: 1rem;
}

.product-thumb {
  width: 100%;
  height: 12rem;
  aspect-ratio: 1 / 1;  /* força o formato quadrado */
  object-fit: contain;  /* mostra a imagem inteira sem cortar */
  background-color: #ffffff; /* cor de fundo opcional para o espaço vazio */
  border-radius: 0.75rem;
}

.product-info {
  text-align: left;
  width: 100%;
}

.product-info-card {
  text-align: center;
  width: 100%;
}

.product-name {
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 0.5rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  line-height: 1.4;
}

.product-price {
  font-size: 1.125rem;
  font-weight: 700;
  color: #374151;
  margin-bottom: 0.75rem;
  display: block;
}

.btn-view-product {
  background-color: #111827;
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
  transition: all 0.3s ease;
  font-family: 'Montserrat', sans-serif;
  display: inline-block;
}

.btn-view-product:hover {
  background-color: #374151;
  color: white;
  text-decoration: none;
  transform: translateY(-1px);
}

/* Navegação personalizada para o slider de mais vendidos */
.best-sellers-next,
.best-sellers-prev {
  width: 2.5rem !important;
  height: 2.5rem !important;
  margin-top: -1.25rem !important;
  background: white !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 50% !important;
  color: #374151 !important;
  font-weight: 700 !important;
  font-size: 1.2rem !important;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1) !important;
  transition: all 0.3s ease !important;
}

.best-sellers-next:hover,
.best-sellers-prev:hover {
  background: #111827 !important;
  color: white !important;
  transform: scale(1.05) !important;
}

.best-sellers-next {
  right: 0.5rem !important;
}

.best-sellers-prev {
  left: 0.5rem !important;
}

.best-sellers-next::after,
.best-sellers-prev::after {
  font-size: 1rem !important;
  font-weight: 700 !important;
}

/* Garantir que não haja overflow horizontal */
.best-sellers-container,
.best-sellers-swiper {
  max-width: 100%;
  overflow-x: hidden;
}

.section-padding .max-w-7xl {
  overflow: hidden;
}

/* Estilos dinâmicos para botões baseados no customizador */
.btn-view-product {
  padding: 12px 24px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  text-align: center !important;
  transition: all 0.3s ease !important;
  border: none !important;
  display: inline-block !important;
}

.btn-view-product:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2) !important;
}

/* ===== PAGINAÇÃO PERSONALIZADA ===== */
.pagination-link {
  transition: all 0.2s ease-in-out !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}

.pagination-link:hover {
  text-decoration: none !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.pagination-link:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(71, 71, 71, 0.3) !important;
}

/* Página atual */
.pagination-current {
  background: linear-gradient(135deg, #080808, #1b1b1b) !important;
  border-color: #080808 !important;
  box-shadow: 0 2px 4px rgba(22, 22, 22, 0.3) !important;
}

/* Botões anterior/próximo */
.pagination-link i {
  font-size: 0.875rem !important;
}

/* Select para jump to page */
.form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important;
  background-position: right 0.5rem center !important;
  background-repeat: no-repeat !important;
  background-size: 1.5em 1.5em !important;
  padding-right: 2.5rem !important;
}

/* Responsividade da paginação */
@media (max-width: 640px) {
  .pagination-link {
    padding: 0.5rem 0.75rem !important;
    font-size: 0.875rem !important;
  }
  
  /* Esconder alguns links em telas pequenas */
  .pagination-link:not(.pagination-current):not([class*="prev"]):not([class*="next"]) {
    display: none !important;
  }
  
  .pagination-link:nth-child(-n+3),
  .pagination-link:nth-last-child(-n+3) {
    display: inline-flex !important;
  }
}

/* Animações suaves */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.pagination-link {
  animation: fadeInUp 0.3s ease-out !important;
}

/* Melhorar espaçamento entre elementos da paginação */
.pagination-link + .pagination-link {
  margin-left: 0.25rem !important;
}

/* Estilo para quando há muitas páginas */
.pagination-link[class*="dots"] {
  cursor: default !important;
  color: #9ca3af !important;
}

.pagination-link[class*="dots"]:hover {
  background-color: #f9fafb !important;
  color: #9ca3af !important;
}

/* ===== INFORMAÇÕES DA PAGINAÇÃO ===== */
.pagination-info {
  background: linear-gradient(135deg, #f3f4f6, #e5e7eb) !important;
  border: 1px solid #d1d5db !important;
  border-radius: 0.75rem !important;
  padding: 0.75rem 1rem !important;
  font-size: 0.875rem !important;
  color: #374151 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}

.pagination-info .font-medium {
  color: #1f2937 !important;
  font-weight: 600 !important;
}

/* ===== SCROLL TO TOP NO MOBILE ===== */
@media (max-width: 768px) {
  .pagination-container {
    position: relative !important;
  }
  
  .pagination-container::after {
    content: '' !important;
    position: absolute !important;
    bottom: -2rem !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 2px !important;
    height: 2rem !important;
    background: linear-gradient(to bottom, #141414, transparent) !important;
  }
}

/* ===== CORREÇÕES DE CLICABILIDADE ===== */

/* Hero Banner Buttons */
.hero-button {
  position: relative !important;
  z-index: 20 !important;
  pointer-events: auto !important;
  display: inline-block !important;
  text-decoration: none !important;
  cursor: pointer !important;
  background-color: #f59e0b !important;
  color: #ffffff !important;
  border: 2px solid #f59e0b !important;
  padding: 12px 24px !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1) !important;
}

.hero-button:hover {
  background-color: #d97706 !important;
  border-color: #d97706 !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15) !important;
  text-decoration: none !important;
}

.hero-button:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

/* Hero Swiper Container */
.hero-swiper {
  z-index: 1 !important;
}

.hero-swiper .swiper-slide {
  z-index: 1 !important;
}

.hero-swiper .swiper-slide > div:last-child {
  z-index: 10 !important;
  pointer-events: auto !important;
}

/* Swiper Navigation Buttons */
.hero-swiper .swiper-button-next,
.hero-swiper .swiper-button-prev {
  z-index: 15 !important;
  pointer-events: auto !important;
}

.hero-swiper .swiper-pagination {
  z-index: 15 !important;
  pointer-events: auto !important;
}

/* Blog Posts Links */
.fade-in article {
  position: relative !important;
  z-index: 1 !important;
  pointer-events: auto !important;
}

.fade-in article a {
  position: relative !important;
  z-index: 2 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  text-decoration: none !important;
}

.fade-in article a:hover {
  text-decoration: none !important;
}

.fade-in article h3 a {
  display: block !important;
  color: inherit !important;
}

.fade-in article h3 a:hover {
  color: #d97706 !important;
}

/* Garantir que toda a área do article seja clicável */
.fade-in article {
  cursor: pointer !important;
}

.fade-in article:hover {
  transform: translateY(-2px) !important;
  transition: transform 0.3s ease !important;
}

/* Click handler para articles inteiros */
.fade-in article[data-href] {
  cursor: pointer !important;
}

/* Categories Links */
.hover-scale a {
  pointer-events: auto !important;
  z-index: 2 !important;
  position: relative !important;
}

/* Realidade Aumentada Links */
section a[href*="catalogo-ra"] {
  pointer-events: auto !important;
  z-index: 2 !important;
  position: relative !important;
}

/* ===== ESTILOS DO BLOG ===== */

/* Blog posts grid animations */
.blog-page article,
.archive-page article,
.single-post article {
  transition: all 0.3s ease !important;
}

.blog-page article:hover,
.archive-page article:hover {
  transform: translateY(-4px) !important;
}

/* Prose styling for blog content */
.prose {
  max-width: none !important;
}

.prose h1,
.prose h2,
.prose h3,
.prose h4,
.prose h5,
.prose h6 {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  margin-top: 2rem !important;
  margin-bottom: 1rem !important;
}

.prose h1 {
  font-size: 2.25rem !important;
  color: #111827 !important;
}

.prose h2 {
  font-size: 1.875rem !important;
  color: #111827 !important;
  border-bottom: 2px solid #f59e0b !important;
  padding-bottom: 0.5rem !important;
}

.prose h3 {
  font-size: 1.5rem !important;
  color: #374151 !important;
}

.prose p {
  font-family: 'Montserrat', sans-serif !important;
  line-height: 1.75 !important;
  margin-bottom: 1.5rem !important;
  color: #4b5563 !important;
}

.prose a {
  color: #f59e0b !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  transition: color 0.2s ease !important;
}

.prose a:hover {
  color: #d97706 !important;
  text-decoration: underline !important;
}

.prose blockquote {
  background: linear-gradient(135deg, #fef3c7, #fde68a) !important;
  border-left: 4px solid #f59e0b !important;
  margin: 2rem 0 !important;
  padding: 1.5rem !important;
  border-radius: 0.5rem !important;
  font-style: normal !important;
  position: relative !important;
}

.prose blockquote::before {
  content: '"' !important;
  font-size: 4rem !important;
  color: #f59e0b !important;
  position: absolute !important;
  top: -0.5rem !important;
  left: 1rem !important;
  opacity: 0.3 !important;
}

.prose img {
  border-radius: 0.75rem !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1) !important;
  margin: 2rem auto !important;
}

.prose ul,
.prose ol {
  margin: 1.5rem 0 !important;
  padding-left: 1.5rem !important;
}

.prose li {
  margin-bottom: 0.5rem !important;
  font-family: 'Montserrat', sans-serif !important;
  line-height: 1.6 !important;
}

.prose code {
  background: #f3f4f6 !important;
  color: #d97706 !important;
  padding: 0.25rem 0.5rem !important;
  border-radius: 0.375rem !important;
  font-size: 0.875rem !important;
}

.prose pre {
  background: #1f2937 !important;
  color: #f9fafb !important;
  padding: 1.5rem !important;
  border-radius: 0.75rem !important;
  overflow-x: auto !important;
  margin: 2rem 0 !important;
}

.prose pre code {
  background: transparent !important;
  color: inherit !important;
  padding: 0 !important;
}

/* Blog sidebar styling */
.archive-page aside ul li a,
.blog-page aside ul li a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0.5rem 0 !important;
  color: #6b7280 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
  font-family: 'Montserrat', sans-serif !important;
}

.archive-page aside ul li a:hover,
.blog-page aside ul li a:hover {
  color: #f59e0b !important;
}

/* Comments styling */
.comment {
  border-left: 3px solid #f59e0b !important;
}

.comment .comment {
  margin-left: 2rem !important;
  border-left-color: #d97706 !important;
}

.comment-form input,
.comment-form textarea {
  font-family: 'Montserrat', sans-serif !important;
}

/* Archive page filters */
.archive-page select {
  font-family: 'Montserrat', sans-serif !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important;
  background-position: right 0.5rem center !important;
  background-repeat: no-repeat !important;
  background-size: 1.5em 1.5em !important;
  padding-right: 2.5rem !important;
}

/* Newsletter section */
.newsletter-section {
  background: linear-gradient(135deg, #f59e0b, #d97706) !important;
}

.newsletter-section input {
  font-family: 'Montserrat', sans-serif !important;
}

/* Line clamp utilities */
.line-clamp-2 {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.line-clamp-3 {
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Blog post meta */
.blog-post-meta {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.875rem !important;
  color: #6b7280 !important;
}

.blog-post-meta i {
  color: #f59e0b !important;
}

/* Responsive adjustments for blog */
@media (max-width: 768px) {
  .blog-page .grid-cols-1.md\\:grid-cols-2 {
    grid-template-columns: 1fr !important;
  }
  
  .archive-page .grid-cols-1.md\\:grid-cols-2 {
    grid-template-columns: 1fr !important;
  }
  
  .single-post .lg\\:grid-cols-4 {
    grid-template-columns: 1fr !important;
  }
  
  .single-post aside {
    order: -1 !important;
  }
  
  .prose h1 {
    font-size: 1.875rem !important;
  }
  
  .prose h2 {
    font-size: 1.5rem !important;
  }
}

/* Blog animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.blog-page article,
.archive-page article {
  animation: fadeInUp 0.6s ease-out !important;
}

.blog-page article:nth-child(1) { animation-delay: 0.1s !important; }
.blog-page article:nth-child(2) { animation-delay: 0.2s !important; }
.blog-page article:nth-child(3) { animation-delay: 0.3s !important; }
.blog-page article:nth-child(4) { animation-delay: 0.4s !important; }

/* Social share buttons */
.social-share a {
  transition: all 0.3s ease !important;
}

.social-share a:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

/* ===== SISTEMA DUAL: E-COMMERCE + ORÇAMENTOS ===== */

/* Quote Mode Styles */
.quote-mode-active .woocommerce-price-amount,
.quote-mode-active .price,
.quote-mode-active .woocommerce-Price-amount,
.quote-mode-active span.price,
.quote-mode-active .price span,
.quote-mode-active .product-price {
  display: none !important;
}

.quote-mode-text {
  font-style: italic !important;
  color: #6b7280 !important;
  font-weight: 500 !important;
  font-family: 'Montserrat', sans-serif !important;
}

.quote-mode-button {
  background: linear-gradient(135deg, #10b981, #059669) !important;
  color: white !important;
  border: none !important;
  transition: all 0.3s ease !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important;
}

.quote-mode-button:hover {
  background: linear-gradient(135deg, #059669, #047857) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3) !important;
}

/* Quote Form Container */
.quote-form-container {
  background: linear-gradient(135deg, #fef7ff, #f3e8ff) !important;
  border: 2px solid #e9d5ff !important;
  border-radius: 16px !important;
  padding: 2rem !important;
  margin: 2rem 0 !important;
  box-shadow: 0 10px 25px rgba(139, 92, 246, 0.1) !important;
  position: relative !important;
  overflow: hidden !important;
}

.quote-form-container::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  background: linear-gradient(90deg, #8b5cf6, #a855f7, #c084fc) !important;
}

.quote-form-container h3 {
  color: #581c87 !important;
  margin-bottom: 0.5rem !important;
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  font-family: 'Montserrat', sans-serif !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

.quote-form-container h3::before {
  content: "📋" !important;
  font-size: 1.5rem !important;
}

.quote-form-container p {
  color: #7c3aed !important;
  margin-bottom: 2rem !important;
  font-size: 1.1rem !important;
  line-height: 1.6 !important;
  font-family: 'Montserrat', sans-serif !important;
}

/* Quote Form Styling */
.quote-request-form .form-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.quote-request-form .form-group {
  display: flex !important;
  flex-direction: column !important;
}

.quote-request-form .form-group.full-width {
  grid-column: 1 / -1 !important;
}

.quote-request-form label {
  font-weight: 600 !important;
  margin-bottom: 0.75rem !important;
  color: #581c87 !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.95rem !important;
}

.quote-request-form .form-control {
  width: 100% !important;
  padding: 1rem 1.25rem !important;
  border: 2px solid #e9d5ff !important;
  border-radius: 12px !important;
  font-size: 1rem !important;
  font-family: 'Montserrat', sans-serif !important;
  transition: all 0.3s ease !important;
  background: white !important;
  box-shadow: 0 2px 4px rgba(139, 92, 246, 0.05) !important;
}

.quote-request-form .form-control:focus {
  outline: none !important;
  border-color: #8b5cf6 !important;
  box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.1) !important;
  transform: translateY(-1px) !important;
}

.quote-request-form .form-control::placeholder {
  color: #a1a1aa !important;
  font-style: italic !important;
}

/* Quote Submit Button - Layout específico apenas */
.quote-submit-btn {
  /* Layout e espaçamento específicos - cores gerenciadas pelo customizer */
  padding: 1.25rem 2.5rem !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  margin-top: 1.5rem !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.75rem !important;
}

.quote-submit-btn:disabled {
  opacity: 0.6 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Quote Messages */
.quote-message {
  padding: 1.25rem !important;
  border-radius: 12px !important;
  margin-bottom: 1.5rem !important;
  border: 2px solid !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 500 !important;
}

.quote-message-success {
  background: linear-gradient(135deg, #ecfdf5, #d1fae5) !important;
  border-color: #10b981 !important;
  color: #065f46 !important;
}

.quote-message-error {
  background: linear-gradient(135deg, #fef2f2, #fecaca) !important;
  border-color: #ef4444 !important;
  color: #991b1b !important;
}

.quote-message-content {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  font-size: 1rem !important;
}

.quote-message-content i {
  font-size: 1.25rem !important;
}

/* Cart Mode Indicators */
.cart-mode-indicator {
  background: linear-gradient(135deg, #eff6ff, #dbeafe) !important;
  border: 2px solid #3b82f6 !important;
  border-radius: 12px !important;
  padding: 1.5rem !important;
  margin-bottom: 2rem !important;
  font-family: 'Montserrat', sans-serif !important;
}

.cart-mode-indicator h4 {
  color: #1e40af !important;
  margin: 0 0 0.5rem 0 !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

.cart-mode-indicator p {
  color: #1e40af !important;
  margin: 0 !important;
  line-height: 1.6 !important;
}

/* Responsive Design */
@media (max-width: 768px) {
  .quote-request-form .form-row {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  
  .quote-form-container {
    padding: 1.5rem !important;
    margin: 1rem 0 !important;
  }
  
  .quote-form-container h3 {
    font-size: 1.5rem !important;
  }
  
  .quote-submit-btn {
    padding: 1rem 2rem !important;
    font-size: 1rem !important;
  }
}

/* E-commerce Mode Enhancements */
.ecommerce-mode-active .woocommerce-Price-amount {
  font-weight: 700 !important;
  color: #059669 !important;
  font-family: 'Montserrat', sans-serif !important;
}

.ecommerce-mode-active .single_add_to_cart_button,
.ecommerce-mode-active .add_to_cart_button {
  background: linear-gradient(135deg, #f59e0b, #d97706) !important;
  color: white !important;
  border: none !important;
  transition: all 0.3s ease !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important;
}

.ecommerce-mode-active .single_add_to_cart_button:hover,
.ecommerce-mode-active .add_to_cart_button:hover {
  background: linear-gradient(135deg, #d97706, #b45309) !important;
  transform: translateY(-1px) !important;
}

/* Mode Toggle Animations */
.mode-transition {
  transition: all 0.5s ease !important;
}

.mode-switch-animation {
  animation: modeSwitch 0.8s ease-in-out !important;
}

@keyframes modeSwitch {
  0% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1); }
}

/* Success States */
.quote-success-animation {
  animation: successPulse 1.5s ease-in-out !important;
}

@keyframes successPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

/* Loading States */
.quote-loading .quote-submit-btn {
  position: relative !important;
}

.quote-loading .quote-submit-btn::after {
  content: '' !important;
  position: absolute !important;
  width: 20px !important;
  height: 20px !important;
  border: 2px solid transparent !important;
  border-top: 2px solid white !important;
  border-radius: 50% !important;
  animation: spin 1s linear infinite !important;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Mini Cart Styles - Global para todas as páginas - PRIORIDADE MÁXIMA */
.lacuna-mini-cart-wrapper {
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
}

.woocommerce-mini-cart {
  min-height: 200px !important;
}

.mini-cart-item {
  opacity: 1 !important;
  animation: none !important;
}

/* Mini Cart Overlay - Força global */
#mini-cart {
  position: fixed !important;
  right: 0 !important;
  top: 0 !important;
  height: 100% !important;
  width: 384px !important;
  background-color: white !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
  z-index: 50 !important;
  display: flex !important;
  flex-direction: column !important;
  /* Removendo transform para não conflitar com JavaScript */
  transition: transform 0.3s ease-in-out !important;
}

#mini-cart-overlay {
  position: fixed !important;
  inset: 0 !important;
  background-color: rgba(0, 0, 0, 0.5) !important;
  z-index: 40 !important;
}

/* Evitar conflitos de CSS que podem fazer o conteúdo desaparecer */
.widget_shopping_cart_content > * {
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
}

/* Footer - Gerenciado pelo customizer para consistência global */

/* Estilo do botão de remover melhorado */
.mini-cart-item .remove_from_cart_button {
  transition: all 0.2s ease;
  border-radius: 50%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  text-decoration: none !important;
}

.mini-cart-item .remove_from_cart_button:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

/* ===================================
   ÍCONES DE REMOÇÃO - UNIFICADOS
   =================================== */

/* Força estilo consistente para TODOS os ícones de remoção no carrinho */
.remove_from_cart_button,
.mini-cart-item .remove_from_cart_button,
.woocommerce .cart_item .remove,
.cart_item .remove,
a.remove,
button.remove,
.product-remove a,
.product-remove button {
  color: var(--lacuna-brown) !important;
  border: 1px solid var(--lacuna-brown) !important;
  background-color: transparent !important;
  transition: all 0.3s ease !important;
  border-radius: 50% !important;
  width: 32px !important;
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  font-size: 14px !important;
}

/* Hover state unificado */
.remove_from_cart_button:hover,
.mini-cart-item .remove_from_cart_button:hover,
.woocommerce .cart_item .remove:hover,
.cart_item .remove:hover,
a.remove:hover,
button.remove:hover,
.product-remove a:hover,
.product-remove button:hover {
  color: white !important;
  background-color: var(--lacuna-brown) !important;
  border-color: var(--lacuna-brown) !important;
  transform: scale(1.1) !important;
  box-shadow: 0 4px 12px rgba(139, 115, 85, 0.3) !important;
}

/* Força cor do ícone dentro do botão */
.remove_from_cart_button i,
.mini-cart-item .remove_from_cart_button i,
.woocommerce .cart_item .remove i,
.cart_item .remove i,
a.remove i,
button.remove i,
.product-remove a i,
.product-remove button i {
  color: inherit !important;
  font-size: 12px !important;
}

/* Loader do mini-cart */
#mini-cart-loader {
  backdrop-filter: blur(2px);
}

/* Animação para item sendo removido */
.mini-cart-item.removing {
  transform: translateX(100%);
  opacity: 0;
  transition: all 0.3s ease;
}

/* ===================================
   CARRINHO - CONSISTÊNCIA TOTAL
   =================================== */

/* Força aplicação das cores do tema em TODOS os carrinhos */
.lacuna-mini-cart-wrapper,
.woocommerce-mini-cart,
.widget_shopping_cart,
.cart-sidebar,
.mini-cart-overlay,
#mini-cart {
  font-family: var(--lacuna-primary-font, 'Inter', sans-serif) !important;
}

/* Títulos do carrinho */
.lacuna-mini-cart-wrapper h3,
.woocommerce-mini-cart h3,
.widget_shopping_cart h3 {
  color: var(--lacuna-dark) !important;
  font-family: var(--lacuna-heading-font, 'Inter', sans-serif) !important;
}

/* Preços no carrinho */
.lacuna-mini-cart-wrapper .price,
.lacuna-mini-cart-wrapper .amount,
.woocommerce-mini-cart .price,
.woocommerce-mini-cart .amount,
.widget_shopping_cart .price,
.widget_shopping_cart .amount {
  color: var(--lacuna-brown) !important;
  font-weight: 600 !important;
}

/* Botões do carrinho (finalizar compra, etc) */
.lacuna-mini-cart-wrapper .button,
.lacuna-mini-cart-wrapper .btn,
.woocommerce-mini-cart .button,
.woocommerce-mini-cart .btn,
.widget_shopping_cart .button,
.widget_shopping_cart .btn,
.checkout-button,
.wc-proceed-to-checkout {
  background-color: var(--lacuna-brown) !important;
  border-color: var(--lacuna-brown) !important;
  color: white !important;
  border-radius: var(--lacuna-button-radius, 8px) !important;
  font-family: var(--lacuna-primary-font, 'Inter', sans-serif) !important;
  transition: all 0.3s ease !important;
}

.lacuna-mini-cart-wrapper .button:hover,
.lacuna-mini-cart-wrapper .btn:hover,
.woocommerce-mini-cart .button:hover,
.woocommerce-mini-cart .btn:hover,
.widget_shopping_cart .button:hover,
.widget_shopping_cart .btn:hover,
.checkout-button:hover,
.wc-proceed-to-checkout:hover {
  background-color: var(--lacuna-light-brown) !important;
  border-color: var(--lacuna-light-brown) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 8px rgba(139, 115, 85, 0.3) !important;
}

/* Notificações toast */
.notification-toast {
  animation: slideInRight 0.3s ease;
}

@keyframes slideInRight {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

/* Melhorar responsividade do mini-cart */
@media (max-width: 768px) {
  #mini-cart {
    width: 100% !important;
    max-width: 400px;
  }
}

/* Estilos da seção de Realidade Aumentada */
.ar-main-card {
  min-height: 280px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: all 0.3s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.ar-main-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.ar-category-card {
  min-height: 140px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: all 0.3s ease;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.ar-category-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.ar-overlay {
  transition: all 0.3s ease;
}

/* Responsividade melhorada */
@media (max-width: 1024px) {
  .ar-main-card {
    min-height: 240px;
  }
  
  .ar-category-card {
    min-height: 120px;
  }
}

@media (max-width: 768px) {
  .ar-main-card {
    min-height: 200px;
  }
  
  .ar-category-card {
    min-height: 100px;
  }
}

@media (max-width: 640px) {
  .ar-main-card {
    min-height: 180px;
  }
  
  .ar-category-card {
    min-height: 90px;
  }
}

/* Estilos adicionais para melhorar a aparência */
.ar-main-card .relative.z-10 {
  backdrop-filter: blur(1px);
}

.ar-category-card h4 {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.ar-category-card p {
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

/* Animação suave para os ícones */
.ar-main-card i {
  transition: transform 0.3s ease;
}

.ar-main-card:hover i {
  transform: scale(1.1);
}

/* Classes específicas para texto branco na seção AR - sobrescreve regras globais */
.ar-main-title {
  color: white !important;
}

.ar-title {
  color: white !important;
}

/* ========================================
   FOOTER LOGO - CONTROLE DE ALTURA
   ======================================== */

/* Logo do Footer - Altura Controlada */
footer img,
.site-footer img,
.footer-logo {
  height: var(--lacuna-footer-logo-height) !important;
  width: auto !important;
  max-height: var(--lacuna-footer-logo-height) !important;
  object-fit: contain !important;
}

/* COMO AJUSTAR A ALTURA DA LOGO:
   1. Vá para o início deste arquivo (linha ~15)
   2. Encontre: --lacuna-footer-logo-height: 60px;
   3. Mude o valor (ex: 80px, 100px, 40px)
   4. Salve o arquivo
   
   EXEMPLOS:
   - Logo pequena: --lacuna-footer-logo-height: 40px;
   - Logo média: --lacuna-footer-logo-height: 60px;  (padrão)
   - Logo grande: --lacuna-footer-logo-height: 100px;
*/
