/*
Theme Name: Bienal Editora
Theme URI: https://www.bienaleditora.com.br/
Author: Roger Bezerra
Description: Tema clássico exclusivo da Bienal Editora (WordPress + WooCommerce). Renderização 100% server-side (WP_Query / wc_get_products), sem page builder, sem plugins de CPT/campos. Layout aprovado "Azul Royal / Sora".
Version: 1.1.0
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 8.2
WC requires at least: 8.0
WC tested up to: 10.9
License: Proprietária — uso exclusivo Bienal Editora
Text Domain: bienal
*/

/* Fontes locais (Sora, subset latin — cobre acentuação do português) */
@font-face{font-family:'Sora';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/sora-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/sora-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/sora-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/sora-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/dm-serif-display-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'DM Serif Text';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/dm-serif-text-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'DM Serif Text';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/dm-serif-text-latin-400-italic.woff2) format('woff2')}

/* ==========================================================================
   1. Design System (tokens do layout aprovado)
   ========================================================================== */
:root {
  /* --- Cores Base --- */
  --bg-primary: #FAFAFA;
  --bg-secondary: #FFFFFF;
  --bg-light: #F4F4F5;
  --bg-dark: #1A1A1A;

  --text-main: #1C1C1C;
  --text-muted: #52525B;
  --text-light: #F9FAFB;
  --text-light-muted: #A1A1AA;

  /* --- Paleta de Azuis (Imagem Fornecida) --- */
  --accent-navy: #001178;     /* Azul Escuro / Navy */
  --accent-royal: #0028B3;    /* Azul Principal / Royal */
  --accent-vibrant: #1883FF;  /* Azul Vibrante */
  --accent-clear: #75C3FF;    /* Azul Claro */
  --accent-baby: #C5DBFF;     /* Azul Bebê */

  /* Mapeamento Semântico */
  --accent: var(--accent-royal);
  --accent-hover: var(--accent-navy);
  --accent-light: var(--accent-baby);
  --border-color: #E4E4E7;

  --font-heading: 'Sora', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Sora', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --container-w: 1280px;
  --section-py: 64px;

  --transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.03);
  --shadow-header: 0 4px 30px rgba(0, 0, 0, 0.04);
}

/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  font-family: var(--font-body);
  background-color: var(--bg-primary);
  color: var(--text-main);
  line-height: 1.6;
  overflow-x: hidden;
  max-width: 100vw;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--transition);
}

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

.container {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 10;
}

.container-narrow {
  max-width: 800px;
  margin: 0 auto;
}

/* Top Bar Header */
.top-bar {
  background-color: var(--accent);
  color: white;
  padding: 8px 0;
  font-size: 0.8rem;
  letter-spacing: 0.5px;
}

.top-bar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.top-bar-address {
  display: flex;
  align-items: center;
  gap: 8px;
  opacity: 0.9;
}

.top-bar-social {
  display: flex;
  gap: 12px;
}

.top-bar-social a {
  color: white;
  opacity: 0.8;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
}

.top-bar-social a:hover {
  opacity: 1;
  transform: scale(1.1);
}

/* Utilities */
.text-center {
  text-align: center;
}

.section {
  padding: var(--section-py) 0;
}

.bg-light {
  background-color: var(--bg-light);
}

/* Tipografia */
h1,
h2,
h3,
h4,
.font-heading {
  font-family: var(--font-heading);
  color: var(--text-main);
  line-height: 1.2;
  font-weight: 600;
}

h1 {
  font-size: clamp(2.5rem, 5vw, 4rem);
  letter-spacing: -0.02em;
}

h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
}

h3 {
  font-size: 1.5rem;
}

p {
  margin-bottom: 1rem;
  color: var(--text-muted);
}

/* Botões */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  border-radius: 4px;
  transition: var(--transition);
  cursor: pointer;
  border: none;
}

.btn-primary {
  background-color: var(--accent);
  color: white;
}

.btn-primary:hover {
  background-color: var(--accent-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(0, 40, 179, 0.2);
}

.btn-secondary {
  background-color: white;
  color: var(--text-main);
  border: 1px solid var(--border-color);
}

.btn-secondary:hover {
  border-color: var(--text-main);
  background-color: var(--bg-primary);
}

.btn-outline-light {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: white;
}

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

.btn-sm {
  padding: 8px 16px;
  font-size: 0.875rem;
}

.link-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent);
  font-weight: 500;
}

.link-action:hover {
  gap: 12px;
}

/* Header Glassmorphism */
.glass-header {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: var(--shadow-header);
  transition: all 0.4s ease;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 90px;
}

.header-logo-img {
  max-height: 48px;
  width: auto;
}

.desktop-nav ul {
  list-style: none;
  display: flex;
  gap: 32px;
}

.desktop-nav a {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-main);
  position: relative;
}

.desktop-nav a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0%;
  height: 2px;
  background-color: var(--accent);
  transition: var(--transition);
}

.desktop-nav a:hover::after {
  width: 100%;
}

.desktop-nav a.active {
  color: var(--accent);
}

.desktop-nav a.active::after {
  width: 100%;
}

.desktop-nav .menu-item-destaque > a {
  background: var(--accent-light);
  color: var(--accent);
  padding: 10px 18px;
  border-radius: 30px;
  font-weight: 600;
}

.desktop-nav .menu-item-destaque > a::after {
  display: none;
}

.desktop-nav .menu-item-destaque > a:hover {
  background: var(--accent);
  color: white;
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0, 40, 179, 0.15);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

.icon-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-main);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: transform 0.2s;
}

.icon-btn:hover {
  color: var(--accent);
  transform: scale(1.05);
}

.cart-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  background: var(--accent);
  color: white;
  font-size: 0.7rem;
  font-weight: 600;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.mobile-menu-btn {
  display: none;
  background: none;
  border: none;
  color: var(--text-main);
  cursor: pointer;
}

/* ==========================================================================
     Hero Section & Carousel
     ========================================================================== */
.hero-section {
  padding-top: 140px;
  padding-bottom: 40px;
  background: var(--bg-primary);
  position: relative;
  overflow: hidden;
  min-height: 85vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.page-title-section {
  padding-top: 140px;
  padding-bottom: 60px;
  background: var(--bg-primary);
  text-align: center;
  border-bottom: 1px solid var(--border-color);
}

.hero-gradient-overlay {
  position: absolute;
  top: -50%;
  right: -20%;
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, rgba(0, 40, 179, 0.04) 0%, rgba(250, 250, 250, 0) 70%);
  z-index: 1;
}

/* Slider Wrap - Feito com CSS Grid para empilhamento nativo sem sumir da tela */
.hero-slider-wrap {
  display: grid;
  grid-template-areas: "slide";
  width: 100%;
  position: relative;
}

.hero-slide {
  grid-area: slide;
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease-in-out, visibility 0.8s;
  z-index: 1;
  pointer-events: none;
}

.hero-slide.active {
  opacity: 1;
  visibility: visible;
  z-index: 2;
  pointer-events: auto;
}

.hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  width: 100%;
}

.badge {
  display: inline-block;
  padding: 6px 14px;
  background: var(--accent-light);
  color: var(--accent);
  font-size: 0.85rem;
  font-weight: 600;
  border-radius: 20px;
  margin-bottom: 24px;
  letter-spacing: 0.5px;
}

.hero-description {
  font-size: 1.125rem;
  margin: 24px 0 40px;
  max-width: 480px;
}

.hero-cta-group {
  display: flex;
  gap: 16px;
}

.hero-image-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  perspective: 1000px;
}

/* Aumento expressivo do mockup e efeito */
.book-mockup {
  position: relative;
  width: 500px;
  transition: var(--transition);
  z-index: 2;
  animation: float 6s ease-in-out infinite;
}

.hero-book-img {
  width: 100%;
  display: block;
  filter: drop-shadow(0 30px 45px rgba(0, 0, 0, 0.25));
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Animação extra ao entrar no slide */
.hero-slide.active .scale-up .hero-book-img {
  animation: scaleUpBook 1s ease-out forwards;
}

.decor-circle {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  z-index: 0;
}

.circle-1 {
  width: 350px;
  height: 350px;
  background: rgba(0, 40, 179, 0.1);
  top: 50%;
  left: 20%;
  transform: translateY(-50%);
}

.circle-2 {
  width: 250px;
  height: 250px;
  background: rgba(212, 175, 55, 0.1);
  bottom: -10%;
  right: 10%;
}

/* Slider Controls */
.slider-controls {
  position: relative;
  margin-top: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  z-index: 10;
  padding-bottom: 40px;
}

.slider-arrow {
  background: white;
  border: 1px solid var(--border-color);
  color: var(--text-main);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}

.slider-arrow:hover {
  background: var(--accent);
  color: white;
  border-color: var(--accent);
  transform: scale(1.1);
}

.slider-dots {
  display: flex;
  gap: 12px;
}

.slider-dots .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--border-color);
  border: none;
  cursor: pointer;
  transition: var(--transition);
  padding: 0;
}

.slider-dots .dot.active {
  background: var(--accent);
  transform: scale(1.3);
}

@keyframes float {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-20px);
  }

  100% {
    transform: translateY(0px);
  }
}

@keyframes scaleUpBook {
  0% {
    opacity: 0;
    transform: scale(0.85) translateY(40px);
  }

  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}


/* ==========================================================================
     Carrossel de Livros (Obras Publicadas)
     ========================================================================== */
.carousel-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 48px;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 16px;
}

.carousel-nav {
  display: flex;
  gap: 12px;
}

.carousel-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  background: white;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}

.carousel-btn:hover {
  background: var(--accent);
  color: white;
  border-color: var(--accent);
  transform: scale(1.05);
}

.books-carousel-track {
  display: flex;
  gap: 40px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: 40px;
}

.books-carousel-track::-webkit-scrollbar {
  display: none;
}

.book-card {
  flex: 0 0 320px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  text-align: center;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  padding: 16px;
  background-color: white;
  transition: var(--transition);
}

.book-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
}

/* Altura aumentada para apresentar capas maiores */
.book-cover {
  position: relative;
  overflow: hidden;
  margin-bottom: 24px;
  transition: var(--transition);
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 500px;
}

.book-cover img {
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  filter: drop-shadow(0 15px 25px rgba(0, 0, 0, 0.15));
}

/* Internal Pages Navigation */
.internal-actions {
  margin-top: 50px;
  padding-top: 30px;
  border-top: 1px solid var(--border-color);
  display: flex;
  gap: 16px;
  justify-content: center;
  align-items: center;
}

.btn-icon-text {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
}

/* Efeito Hover Aprimorado -> Capa levanta com glow de cor */
.book-card:hover .book-cover img {
  transform: translateY(-12px) scale(1.06);
  filter: drop-shadow(0 30px 40px rgba(0, 40, 179, 0.25));
}

.book-overlay {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  width: 85%;
  opacity: 0;
  transition: var(--transition);
  z-index: 10;
}

.book-card:hover .book-overlay {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.book-overlay .btn {
  width: 100%;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.book-category {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--accent);
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
}

.book-title {
  font-size: 1.35rem;
  margin: 0 0 6px 0;
  font-weight: 600;
}

.book-author {
  font-size: 0.95rem;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.book-price {
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--text-main);
}

/* Premium Dark Sections / Parallax */
.premium-dark-section {
  background-color: var(--bg-primary);
  padding: 100px 0;
  position: relative;
}

.premium-parallax-section {
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  color: white;
}

.premium-parallax-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(30, 30, 36, 0.92) 0%, rgba(0, 17, 120, 0.85) 100%);
  z-index: 1;
}

.premium-parallax-section .container {
  position: relative;
  z-index: 2;
}

.light-text {
  color: white;
}

.light-text-muted {
  color: rgba(255, 255, 255, 0.75);
}

/* ==========================================================================
     Opinião de quem já leu (Testimonials)
     ========================================================================== */
.opinions-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 16px;
}

.opinions-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

.opinions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
}

.opinion-item {
  display: flex;
  gap: 20px;
  text-align: left;
}

.opinion-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  filter: grayscale(100%);
  flex-shrink: 0;
  box-shadow: var(--shadow-sm);
}

.opinion-content h4 {
  color: #0076a3;
  font-family: var(--font-heading);
  margin-bottom: 8px;
  font-size: 1.15rem;
  font-weight: 700;
  display: block;
}

.opinion-content p {
  font-family: var(--font-body);
  font-style: normal;
  color: var(--text-main);
  line-height: 1.5;
  font-size: 1.05rem;
}

.opinion-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 48px;
}

.opinion-dots .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e0e0e0;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: var(--transition);
}

.opinion-dots .dot.active {
  background: #333;
}

/* ==========================================================================
     Newsletter Section (Inline Minimalista)
     ========================================================================== */
.newsletter-section {
  background-color: var(--bg-secondary);
  padding: 48px 0;
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}

.newsletter-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.newsletter-text {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
}

.newsletter-text h3 {
  color: var(--text-main);
  font-size: 1.25rem;
  font-family: var(--font-body);
  margin: 0;
  white-space: nowrap;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.newsletter-text p {
  color: var(--text-muted);
  font-size: 1rem;
  margin: 0;
}

.newsletter-form {
  display: flex;
  gap: 8px;
  flex: 0 0 500px;
  background: white;
  padding: 6px;
  border-radius: 40px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-sm);
}

.newsletter-form input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  padding: 0 20px;
  color: var(--text-main);
  font-size: 1rem;
  outline: none;
}

.newsletter-form input::placeholder {
  color: #a1a1aa;
}

.newsletter-form button {
  flex-shrink: 0;
  border-radius: 30px;
  padding: 12px 28px;
  font-weight: 500;
}

.section-lead {
  font-size: 1.25rem;
  line-height: 1.8;
  margin-bottom: 24px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Elementos de Páginas Internas */
.content-block {
  padding: 40px 0;
  font-size: 1.125rem;
}

/* Blog Cards (Design Editorial Moderno) */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 48px 32px;
}

.blog-carousel-track {
  display: flex;
  gap: 32px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 10px 4px 30px 4px;
  margin: -10px -4px 0 -4px;
}

.blog-carousel-track::-webkit-scrollbar {
  display: none;
}

.blog-carousel-track .blog-card {
  flex: 0 0 calc((100% - 64px) / 3);
  scroll-snap-align: start;
}

@media (max-width: 1024px) {
  .blog-carousel-track .blog-card {
    flex: 0 0 calc((100% - 32px) / 2);
  }
}

@media (max-width: 768px) {
  .blog-carousel-track .blog-card {
    flex: 0 0 85%;
  }
}


.blog-card {
  background: white;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.blog-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 40, 179, 0.08);
}

.blog-img-link {
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
  margin-bottom: 0;
}

.blog-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  filter: brightness(0.95);
}

.blog-card:hover .blog-img {
  transform: scale(1.08);
  filter: brightness(1);
}

.blog-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.blog-meta {
  background: var(--accent-light);
  color: var(--accent);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 16px;
  align-self: flex-start;
}

.blog-title {
  font-size: 1.45rem;
  margin-bottom: 14px;
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.35;
}

.blog-title a:hover {
  color: var(--accent);
}

.blog-excerpt {
  font-size: 1.05rem;
  color: var(--text-muted);
  margin-bottom: 16px;
  flex-grow: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Footer */
.footer {
  background: var(--bg-dark);
  color: var(--text-light);
  padding: 80px 0 40px;
  position: relative;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1.5fr 1.5fr;
  gap: 64px;
  margin-bottom: 64px;
}

.footer-desc {
  color: var(--text-light-muted);
  font-size: 0.95rem;
  margin-top: 20px;
}

.footer-heading {
  font-family: var(--font-body);
  font-size: 1rem;
  color: white;
  margin-bottom: 24px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.footer-links ul {
  list-style: none;
}

.footer-links li {
  margin-bottom: 12px;
}

.footer-links a {
  color: var(--text-light-muted);
  font-size: 0.95rem;
}

.footer-links a:hover {
  color: white;
  padding-left: 4px;
}

.footer-trust {
  background: white;
  border-radius: 60px;
  padding: 15px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 40px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.trust-title {
  color: #666;
  font-size: 0.85rem;
  font-family: var(--font-body);
  display: block;
  margin-bottom: 8px;
  font-weight: 500;
  text-align: center;
}

.payment-methods {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.payment-icons img {
  height: 35px;
  object-fit: contain;
}

.security-seal {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.security-seal img {
  height: 45px;
  object-fit: contain;
}

@media (max-width: 768px) {
  .footer-trust {
    flex-direction: column;
    gap: 24px;
    border-radius: 24px;
    padding: 24px;
  }
}

.footer-bottom {
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 32px;
  color: var(--text-light-muted);
  font-size: 0.875rem;
}

/* Observer Animations */
.fade-up-element {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

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

/* Menu Lateral Mobile */
.mobile-nav-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 1999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}

.mobile-nav-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

.mobile-sidebar {
  position: fixed;
  top: 0;
  right: -300px;
  width: 280px;
  height: 100vh;
  background: var(--bg-secondary);
  border-left: 1px solid var(--border-color);
  box-shadow: -5px 0 25px rgba(0, 0, 0, 0.1);
  z-index: 2000;
  padding: 40px 24px;
  transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.mobile-sidebar.active {
  right: 0;
}

.close-menu-btn {
  align-self: flex-end;
  background: none;
  border: none;
  font-size: 2.5rem;
  font-weight: 300;
  color: var(--text-main);
  cursor: pointer;
  margin-bottom: 32px;
  line-height: 1;
}

.mobile-sidebar .mobile-logo {
  max-height: 48px;
  margin-bottom: 32px;
  display: block;
  align-self: flex-start;
}

.mobile-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

.mobile-menu li {
  margin-bottom: 16px;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 16px;
}

.mobile-menu li:last-child {
  border-bottom: none;
}

.mobile-menu a {
  font-family: var(--font-body);
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--text-main);
  display: block;
  width: 100%;
}

.mobile-menu a:hover,
.mobile-menu a.active {
  color: var(--accent);
}

.mobile-menu .menu-item-destaque > a {
  background: var(--accent-light);
  color: var(--accent);
  padding: 12px 16px;
  border-radius: 8px;
  font-weight: 600;
  margin-top: 8px;
  text-align: center;
  border: 1px solid rgba(0, 40, 179, 0.1);
}

/* ==========================================================================
     Novos Elementos de UI (Cookies, Back to Top, Social Share)
     ========================================================================== */

/* Voltar ao Topo */
.back-to-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 50px;
  height: 50px;
  background-color: var(--accent);
  color: white;
  border: none;
  border-radius: 50%;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  z-index: 999;
}

.back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
}

.back-to-top:hover {
  background-color: var(--bg-dark);
  transform: translateY(-3px);
}

/* Cookie Banner */
.cookie-banner {
  position: fixed;
  bottom: -100%;
  left: 0;
  width: 100%;
  background: var(--bg-dark);
  color: var(--text-light);
  z-index: 10000;
  transition: bottom 0.5s ease-out;
  box-shadow: 0 -5px 15px rgba(0, 0, 0, 0.1);
}

.cookie-banner.visible {
  bottom: 0;
}

.cookie-content {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}

.cookie-content p {
  margin: 0;
  font-size: 0.95rem;
  color: var(--text-light-muted);
}

@media (max-width: 768px) {
  .cookie-content {
    flex-direction: column;
    text-align: center;
  }
}

/* Social Share Flutuante */
.social-share-sticky {
  position: fixed;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: white;
  border-radius: 0 8px 8px 0;
  box-shadow: 4px 0 15px rgba(0, 0, 0, 0.06);
  display: flex;
  flex-direction: column;
  z-index: 998;
  border: 1px solid var(--border-color);
}

.share-btn {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-muted);
  transition: var(--transition);
}

.share-btn:last-child {
  border-bottom: none;
}

.share-btn:hover {
  background: var(--bg-light);
  width: 56px;
}

.share-btn svg {
  width: 22px;
  height: 22px;
}

.share-btn.whatsapp:hover {
  color: #25D366;
}

.share-btn.facebook:hover {
  color: #1877F2;
}

.share-btn.twitter:hover {
  color: #1DA1F2;
}

/* Responsividade */
@media (max-width: 992px) {
  .desktop-nav {
    display: none;
  }

  .mobile-menu-btn {
    display: block;
  }

  .hero-inner {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 40px;
  }

  .hero-cta-group {
    justify-content: center;
    flex-wrap: wrap;
  }

  .badge {
    margin: 0 auto 24px;
  }

  .hero-description {
    margin: 24px auto 40px;
  }

  .book-card {
    flex: 0 0 280px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .newsletter-inner {
    flex-direction: column;
    text-align: center;
    gap: 24px;
  }

  .newsletter-text {
    flex-direction: column;
    gap: 8px;
  }

  .newsletter-form {
    width: 100%;
    flex: 1;
    flex-direction: column;
    border: none;
    padding: 0;
    box-shadow: none;
    background: transparent;
  }

  .newsletter-form input {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 16px;
    background: white;
  }

  .newsletter-form button {
    border-radius: 8px;
    padding: 16px;
  }

  .social-share-sticky {
    display: flex;
    flex-direction: row;
    top: auto;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: none;
    border-radius: 0;
    justify-content: space-around;
    background: white;
    z-index: 999;
  }

  .back-to-top {
    bottom: 80px;
  }

  /* Evita o social share embaixo */
}

@media (max-width: 576px) {
  .header-logo-img {
    max-height: 46px !important;
  }

  .mobile-logo {
    max-height: 60px !important;
  }

  :root {
    --section-py: 48px;
  }

  section {
    padding: 48px 0;
  }

  .book-card {
    flex: 0 0 85vw;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .top-bar {
    display: none;
  }

  /* Ocultar Top Bar no celular por causa do endereço longo */
  .hero-title {
    font-size: 2.5rem;
  }

  .hero-cta-group {
    flex-direction: column;
    width: 100%;
  }

  .hero-cta-group .btn {
    width: 100%;
  }

  h2 {
    font-size: 2rem;
  }

  .book-mockup {
    width: 280px;
    margin: 0 auto;
  }

  .premium-dark-section {
    padding: 80px 0;
  }

  .book-cover {
    height: 380px;
  }
}

/* ==========================================================================
     Galeria de Fotos Premium e Legendas no Post (Gutenberg WP)
     ========================================================================== */
.post-body .wp-block-image {
  margin: 2.5rem 0;
  text-align: center;
}

.post-body .wp-block-image img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
  display: inline-block;
}

.post-body .wp-block-image img:hover {
  transform: translateY(-5px) scale(1.01);
  box-shadow: 0 20px 40px rgba(0, 40, 179, 0.12);
}

.post-body figcaption {
  font-size: 0.85rem;
  color: #71717A;
  margin-top: 12px;
  text-align: center;
  font-style: italic;
  line-height: 1.5;
  padding: 2px 0 2px 12px;
  border-left: 2px solid #0028B3;
  display: inline-block;
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
}

/* Bloco de Galeria (.wp-block-gallery) */
.post-body .wp-block-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin: 3rem 0;
  padding: 0;
  list-style: none;
}

/* Forçar colunas se configurado via classes do WP */
.post-body .wp-block-gallery.columns-2 { grid-template-columns: repeat(2, 1fr); }
.post-body .wp-block-gallery.columns-3 { grid-template-columns: repeat(3, 1fr); }
.post-body .wp-block-gallery.columns-4 { grid-template-columns: repeat(4, 1fr); }

.post-body .wp-block-gallery figure.wp-block-image {
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  background: #F8FAFC;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  border: 1px solid #E2E8F0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
}

.post-body .wp-block-gallery figure.wp-block-image:hover {
  transform: translateY(-6px);
  box-shadow: 0 15px 30px rgba(0, 40, 179, 0.1);
  border-color: rgba(0, 40, 179, 0.2);
}

.post-body .wp-block-gallery figure.wp-block-image img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.post-body .wp-block-gallery figure.wp-block-image:hover img {
  transform: scale(1.04);
}

.post-body .wp-block-gallery figure.wp-block-image figcaption {
  padding: 14px 16px;
  margin: 0;
  background: white;
  border-left: none;
  font-size: 0.8rem;
  color: #475569;
  text-align: left;
  display: block;
  border-top: 1px solid #F1F5F9;
  font-style: normal;
  font-weight: 500;
  max-width: 100%;
}

/* Responsividade Mobile para Galeria */
@media (max-width: 768px) {
  .post-body .wp-block-gallery,
  .post-body .wp-block-gallery.columns-2,
  .post-body .wp-block-gallery.columns-3,
  .post-body .wp-block-gallery.columns-4 {
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 2rem 0;
  }

  .post-body .wp-block-gallery figure.wp-block-image img {
    height: 220px;
  }

  .post-body .wp-block-image {
    margin: 1.8rem 0;
  }

  .post-body figcaption {
    font-size: 0.8rem;
    max-width: 100%;
  }
}

/* ==========================================================================
     Visualizador de Fotos Premium (Lightbox)
     ========================================================================== */
.post-body img {
  cursor: pointer;
}

.premium-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.95); /* Fundo escuro azulado elegante (Slate 900) */
  backdrop-filter: blur(12px);
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.premium-lightbox.active {
  opacity: 1;
  visibility: visible;
}

.lightbox-content {
  position: relative;
  max-width: 90%;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.lightbox-image {
  max-width: 100%;
  max-height: 70vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  transform: scale(0.95);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.premium-lightbox.active .lightbox-image {
  transform: scale(1);
}

.lightbox-caption {
  color: #F1F5F9;
  margin-top: 20px;
  font-size: 0.95rem;
  text-align: center;
  font-style: italic;
  max-width: 700px;
  line-height: 1.5;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  border-left: 2px solid #0028B3;
  padding-left: 12px;
  display: inline-block;
}

.lightbox-close {
  position: absolute;
  top: 30px;
  right: 30px;
  background: none;
  border: none;
  color: white;
  font-size: 40px;
  cursor: pointer;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease, opacity 0.2s ease;
  opacity: 0.8;
  z-index: 100000;
}

.lightbox-close:hover {
  transform: scale(1.1) rotate(90deg);
  opacity: 1;
}

.lightbox-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: white;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
  z-index: 100000;
}

.lightbox-arrow:hover {
  background: #0028B3;
  border-color: #0028B3;
  transform: translateY(-50%) scale(1.1);
}

.lightbox-arrow.prev {
  left: 40px;
}

.lightbox-arrow.next {
  right: 40px;
}

/* Responsividade Lightbox */
@media (max-width: 992px) {
  .lightbox-arrow {
    width: 48px;
    height: 48px;
  }
  .lightbox-arrow.prev {
    left: 20px;
  }
  .lightbox-arrow.next {
    right: 20px;
  }
}

@media (max-width: 768px) {
  .lightbox-arrow {
    width: 44px;
    height: 44px;
    background: rgba(15, 23, 42, 0.6);
  }
  .lightbox-arrow.prev {
    left: 10px;
  }
  .lightbox-arrow.next {
    right: 10px;
  }
  .lightbox-close {
    top: 20px;
    right: 20px;
  }
  .lightbox-image {
    max-height: 60vh;
  }
  .lightbox-caption {
    font-size: 0.85rem;
    max-width: 90%;
    margin-top: 15px;
  }
}
/* ==========================================================================
   2. Camada WordPress (classes que o layout estático não tinha)
   ========================================================================== */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff;clip:auto!important;clip-path:none;color:var(--accent);display:block;height:auto;left:8px;padding:12px 20px;top:8px;width:auto;z-index:100001;border-radius:4px;box-shadow:var(--shadow-header)}
:focus-visible{outline:2px solid var(--accent-vibrant);outline-offset:2px}
.alignleft{float:left;margin:0 1.5em 1em 0}
.alignright{float:right;margin:0 0 1em 1.5em}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.wp-caption{max-width:100%}
.wp-caption-text{font-size:.85rem;color:#71717A;text-align:center;font-style:italic;margin-top:8px}
.sticky,.bypostauthor,.gallery-caption{}
body.admin-bar .glass-header{top:32px}
@media (max-width:782px){body.admin-bar .glass-header{top:46px}}
.desktop-nav li,.mobile-menu li{position:relative}
.desktop-nav .sub-menu{display:none}

/* Busca (overlay) */
.search-overlay{display:flex;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:1100;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
.search-overlay.active{opacity:1;visibility:visible}
.close-search-btn{position:absolute;top:30px;right:30px;background:none;border:none;color:#fff;font-size:40px;cursor:pointer;line-height:1}
.search-overlay .search-form{width:80%;max-width:600px;display:flex;gap:10px}
.search-overlay input[type=search]{flex:1;padding:15px;border:none;border-radius:4px;font-size:18px;outline:none;font-family:inherit}
.search-overlay .btn{padding:15px 30px}

/* Badge do carrinho: some quando vazio (layout aprovado mostra "0" — mantido via .is-empty opcional) */
.cart-badge{transition:transform .3s}
.cart-badge.bump{transform:scale(1.5)}

/* Títulos de página internos */
.page-title-section.page-title-compact{border-bottom:none;margin-top:0;padding:60px 0 20px}
.page-title-section h1{font-size:2.5rem;margin-bottom:16px}
.page-title-section .page-lead{font-size:1.1rem;color:var(--text-muted);margin-bottom:20px}
.panel{background:#fff;padding:40px;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.04)}
.panel-title{font-size:1.8rem;color:#18181B;margin-bottom:24px;border-left:4px solid var(--accent);padding-left:15px}
.section-inner{padding:40px 0;min-height:50vh}
.entry-content{font-size:1.05rem;line-height:1.8;color:#3F3F46}
.entry-content p{color:inherit;margin-bottom:20px}
.entry-content h2,.entry-content h3{margin:35px 0 16px}
.entry-content h2{font-size:1.6rem}.entry-content h3{font-size:1.35rem}
.entry-content ul,.entry-content ol{margin:0 0 20px 1.4em}
.entry-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.entry-content blockquote{border-left:4px solid var(--accent);padding:8px 0 8px 20px;margin:24px 0;font-style:italic;color:var(--text-muted)}
.entry-content table{width:100%;border-collapse:collapse;margin-bottom:20px}
.entry-content td,.entry-content th{border:1px solid var(--border-color);padding:8px 12px}

/* Paginação nativa (paginate_links / woocommerce_pagination) */
.pagination-wrap{display:flex;justify-content:center;margin-top:40px}
.pagination-wrap ul,.woocommerce-pagination ul.page-numbers{list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:0;margin:0;border:0}
.pagination-wrap li,.woocommerce-pagination ul.page-numbers li{border:0;margin:0}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px;border:1px solid var(--border-color);border-radius:4px;background:#fff;font-size:.9rem;font-weight:500;color:var(--text-main)}
a.page-numbers:hover{border-color:var(--accent);color:var(--accent)}
.page-numbers.current{background:var(--accent);border-color:var(--accent);color:#fff}
.page-numbers.dots{border:0;background:none}

/* Formulários (contato, busca, newsletter) */
.form-stack{display:flex;flex-direction:column;gap:20px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:.85rem;font-weight:600;color:var(--text-muted)}
.form-control,.form-group input,.form-group textarea,.form-group select{padding:10px 14px;border:1px solid var(--border-color);border-radius:4px;font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s;background:#fff;color:var(--text-main)}
.form-group input:focus,.form-group textarea:focus,.form-control:focus{border-color:var(--accent)}
.form-group textarea{resize:vertical;min-height:130px}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-alert{padding:12px 20px;border-radius:4px;margin-bottom:20px;font-size:.9rem;font-weight:500;text-align:center}
.form-alert.is-success{background:#DEF7EC;color:#03543F}
.form-alert.is-error{background:#FDE8E8;color:#9B1C1C}
.btn[disabled],.btn.loading{opacity:.7;pointer-events:none}
.newsletter-feedback{font-size:.85rem;margin:8px 0 0;text-align:right}

/* Contato */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px}
.contact-info-panel{display:flex;flex-direction:column;gap:30px}
.info-item{display:flex;gap:15px;align-items:flex-start}
.info-icon{color:var(--accent);background:rgba(0,40,179,.08);padding:10px;border-radius:50%;display:flex}
.info-text h4{font-weight:600;color:#18181B;margin-bottom:4px;font-size:1rem}
.info-text p{font-size:.95rem;color:var(--text-muted);line-height:1.5;margin:0}

/* Ações internas */
.internal-actions.align-left{justify-content:flex-start;flex-wrap:wrap}

/* Card de livro: link envolvendo a capa + botões WooCommerce */
.book-cover > a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.book-title a{color:inherit}
.book-title a:hover{color:var(--accent)}
.book-price del{color:#A1A1AA;font-weight:400;font-size:.95rem;margin-right:6px}
.book-price ins{text-decoration:none}
.book-overlay .added_to_cart{display:none}
.btn.added{background:#10B981}
.btn.added:hover{background:#0e9f6e}
.book-badge-out{position:absolute;top:10px;left:10px;z-index:5;background:#18181B;color:#fff;font-size:.7rem;font-weight:600;padding:4px 10px;border-radius:20px;letter-spacing:.5px;text-transform:uppercase}
.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:30px;margin-bottom:40px}
.books-grid .book-card{margin:0}
.books-grid .book-cover{height:380px}
.books-grid.books-grid-sm{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.books-grid.books-grid-sm .book-cover{height:320px}
.books-grid.books-grid-sm .book-title{font-size:1.15rem}
.empty-state{text-align:center;background:#fff;padding:60px 20px;border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,.03)}
.empty-state svg{margin:0 auto 16px}
.empty-state h3{color:#27272A;margin-bottom:8px}

/* Barra de filtros do catálogo */
.catalog-filter-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px 20px;margin-bottom:30px;background:#fff;padding:12px 20px;border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,.03)}
.categories-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.categories-filter .filter-label{font-weight:600;font-size:.875rem;color:var(--text-muted);margin-right:8px}
.categories-filter .btn{border-radius:20px;padding:6px 16px;font-size:.8rem;font-weight:500}
.catalog-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.catalog-search{display:flex;gap:8px;max-width:350px;width:100%}
.catalog-search input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;outline:none;font-family:inherit}
.catalog-search input:focus{border-color:var(--accent)}
.woocommerce-ordering{margin:0}
.woocommerce-ordering select{padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;font-family:inherit;background:#fff;color:var(--text-main)}
.woocommerce-result-count{font-size:.85rem;color:var(--text-muted);margin:0 0 20px}

/* Página do livro */
.product-detail-section{min-height:75vh}
.product-detail-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:50px;align-items:start;margin-bottom:50px}
.product-gallery{display:flex;flex-direction:column;align-items:center;gap:16px}
.product-gallery .book-mockup{max-width:380px;width:100%;animation:none}
.product-gallery .main-cover{width:100%;height:auto;border-radius:6px;filter:drop-shadow(0 20px 30px rgba(0,0,0,.15))}
.gallery-thumbs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.gallery-thumbs button{border:2px solid transparent;border-radius:6px;padding:2px;background:#fff;cursor:pointer;width:64px;height:64px;overflow:hidden}
.gallery-thumbs button.is-active,.gallery-thumbs button:hover{border-color:var(--accent)}
.gallery-thumbs img{width:100%;height:100%;object-fit:cover}
.product-info-column{display:flex;flex-direction:column;gap:20px}
.product-info-column h1{font-size:2.2rem;line-height:1.2;color:#18181B;margin-bottom:8px}
.product-subtitle{font-size:1rem;color:var(--text-muted);margin:0 0 4px}
.product-author{font-size:1.1rem;color:#71717A;font-weight:500;margin:0}
.price-box{background:#F0F6FF;padding:15px 20px;border-radius:6px;display:inline-block;align-self:flex-start}
.price-box .price-label{font-size:.85rem;color:#71717A;display:block;margin-bottom:4px;font-weight:600}
.price-box .price{font-size:1.8rem;font-weight:700;color:var(--accent);margin:0}
.price-box .price del{font-size:1.1rem;color:#A1A1AA;font-weight:500}
.price-box .price ins{text-decoration:none}
.product-excerpt{font-size:.95rem;line-height:1.6;color:var(--text-muted)}
.product-excerpt p{color:inherit}
.product-buy form.cart{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;margin:0}
.product-buy .quantity input{width:76px;height:100%;min-height:50px;padding:0 10px;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;text-align:center;font-family:inherit}
.product-buy .single_add_to_cart_button{padding:14px 40px;font-size:1.05rem;font-weight:600;min-width:240px;box-shadow:0 4px 12px rgba(0,40,179,.15)}
.product-buy .stock{font-size:.9rem;font-weight:600;margin-bottom:10px}
.product-buy .stock.out-of-stock{color:#9B1C1C}
.product-buy .stock.in-stock{color:#03543F}
.product-share{margin-top:5px;padding-top:15px;border-top:1px dashed var(--border-color)}
.product-share .share-label{font-size:.85rem;font-weight:600;color:#71717A;display:block;margin-bottom:10px}
.share-row{display:flex;gap:8px;align-items:center}
.share-circle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#FAF9F9;color:#52525B;border:1px solid var(--border-color);cursor:pointer;transition:var(--transition)}
.share-circle.wa:hover{color:#25D366;border-color:#25D366;background:#F4FBF7}
.share-circle.fb:hover{color:#1877F2;border-color:#1877F2;background:#F0F6FF}
.share-circle.x:hover{color:#000;border-color:#000;background:#F4F4F5}
.share-circle.copy:hover,.share-circle.copied{color:var(--accent);border-color:var(--accent);background:#F0F6FF}
.copy-feedback{font-size:.8rem;color:var(--accent);font-weight:600;opacity:0;transition:opacity .3s;margin-left:5px}
.copy-feedback.show{opacity:1}
.product-quick-meta{border-top:1px solid var(--border-color);padding-top:20px;display:flex;flex-direction:column;gap:8px;font-size:.85rem;color:#71717A}
.product-description-panel{margin-bottom:40px}
.product-long-description{font-size:1.05rem;line-height:1.8;color:#3F3F46;text-align:justify}
.product-long-description p{color:inherit}
.tech-sheet{width:100%;border-collapse:collapse;font-size:.95rem}
.tech-sheet th,.tech-sheet td{padding:12px 16px;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top}
.tech-sheet th{width:38%;color:#71717A;font-weight:600;background:#FAFAFA}
.tech-sheet tr:last-child th,.tech-sheet tr:last-child td{border-bottom:0}
.related-products-section{margin-top:60px}
.flipbook-card{display:flex;gap:20px;align-items:center;background:#F0F6FF;border:1px solid var(--accent-light);border-radius:8px;padding:20px;margin:24px 0}
.flipbook-card img{width:90px;border-radius:4px;box-shadow:var(--shadow-sm)}
.flipbook-card h4{margin:0 0 6px;font-size:1.05rem}
.flipbook-card p{margin:0 0 10px;font-size:.9rem}

/* Blog / Post */
.blog-search-bar{display:flex;justify-content:flex-end;margin-bottom:40px}
.blog-search-bar form{display:flex;gap:8px;max-width:350px;width:100%;background:#fff;padding:6px;border-radius:4px;box-shadow:0 4px 10px rgba(0,0,0,.02)}
.blog-search-bar input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;outline:none;font-family:inherit}
.blog-grid .blog-img-link{aspect-ratio:16/10}
.post-header-section{padding:120px 0 40px;background:linear-gradient(180deg,rgba(0,40,179,.05) 0%,#fff 100%)}
.post-header-section h1{font-size:2.8rem;line-height:1.25;margin-bottom:24px;color:#18181B}
.post-meta{color:#71717A;font-size:.9rem;font-weight:500}
.post-content-section{background:#fff;padding-bottom:80px}
.post-featured-image-wrapper{margin-bottom:50px}
.post-featured-image-wrapper .frame{border-radius:8px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.post-featured-image-wrapper img{width:100%;height:auto;max-height:500px;object-fit:cover}
.post-image-caption{font-size:.85rem;color:#71717A;margin:10px auto 0;text-align:center;font-style:italic;border-left:2px solid var(--accent);padding-left:10px;width:fit-content}
.post-body{font-size:1.15rem;line-height:1.8;color:#27272A;text-align:justify}
.post-body p{color:inherit;margin-bottom:1.4em}
.post-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.post-body h2,.post-body h3{margin:1.8em 0 .6em;text-align:left}
.post-body h2{font-size:1.7rem}.post-body h3{font-size:1.35rem}
.post-body ul,.post-body ol{margin:0 0 1.4em 1.4em}
.post-body iframe,.post-body video{max-width:100%}
.post-body .wp-block-embed__wrapper{position:relative}
.post-actions{margin-top:60px;padding-top:30px;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}
.share-inline{display:flex;align-items:center;gap:12px}
.share-inline .label{font-size:.875rem;font-weight:600;color:#71717A}
.share-inline a{transition:transform .2s}
.share-inline a:hover{transform:scale(1.1)}
.post-tags{margin-top:30px;display:flex;flex-wrap:wrap;gap:8px}
.post-tags a{font-size:.8rem;background:var(--bg-light);padding:4px 12px;border-radius:20px;color:var(--text-muted)}
.post-tags a:hover{background:var(--accent-light);color:var(--accent)}
.related-section{padding:60px 0;border-top:1px solid var(--border-color)}
.search-group-title{font-size:1.5rem;margin:0 0 24px;border-left:4px solid var(--accent);padding-left:15px}

/* Depoimentos: avatar por iniciais quando não houver foto */
.opinion-avatar.is-initials{display:flex;align-items:center;justify-content:center;background:var(--accent-light);color:var(--accent);font-weight:700;font-size:1.4rem;filter:none}
.opinion-page{display:none}
.opinion-page.active{display:grid}
.opinion-dots .dot{display:inline-block}

/* ==========================================================================
   3. WooCommerce (carrinho, checkout, minha conta, avisos)
   ========================================================================== */
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-notice{list-style:none;padding:14px 20px;margin:0 0 24px;border-radius:6px;background:#F0F6FF;border-left:4px solid var(--accent);font-size:.95rem;color:var(--text-main);display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.woocommerce-error{background:#FDE8E8;border-left-color:#9B1C1C;color:#9B1C1C;flex-direction:column;align-items:flex-start}
.woocommerce-message .button,.woocommerce-info .button{order:2}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.wc-block-components-button:not(.is-link){display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-family:var(--font-body);font-size:.95rem;font-weight:500;border-radius:4px;border:none;cursor:pointer;background:var(--accent);color:#fff;transition:var(--transition);line-height:1.2}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--accent-hover);color:#fff}
.woocommerce a.button.alt,.woocommerce button.button.alt{background:var(--accent)}
.woocommerce button.button:disabled,.woocommerce button.button.disabled{opacity:.6;cursor:not-allowed}
.woocommerce-page .entry-content{font-size:1rem;line-height:1.6}
.woocommerce table.shop_table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;border:1px solid var(--border-color);margin-bottom:24px}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{padding:14px 16px;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:middle}
.woocommerce table.shop_table th{background:#FAFAFA;font-size:.85rem;color:var(--text-muted);font-weight:600}
.woocommerce table.shop_table img{width:64px;height:auto;border-radius:4px}
.woocommerce a.remove{color:#9B1C1C!important;font-size:1.4rem;font-weight:700;text-decoration:none}
.woocommerce .quantity .qty{width:70px;padding:8px;border:1px solid var(--border-color);border-radius:4px;text-align:center;font-family:inherit}
.woocommerce form .form-row{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.woocommerce form .form-row label{font-size:.85rem;font-weight:600;color:var(--text-muted)}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce-input-wrapper input,.select2-container .select2-selection--single{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:4px;font-size:.95rem;font-family:inherit;background:#fff;min-height:44px}
.woocommerce .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.woocommerce .cart-collaterals .cart_totals{max-width:480px;margin-left:auto;background:#fff;padding:24px;border-radius:8px;border:1px solid var(--border-color)}
.woocommerce .coupon{display:flex;gap:8px;flex-wrap:wrap}
.woocommerce .coupon input{padding:10px 14px;border:1px solid var(--border-color);border-radius:4px}
.woocommerce #payment{background:#FAFAFA;border-radius:8px;padding:20px;border:1px solid var(--border-color)}
.woocommerce #payment ul.payment_methods{list-style:none;padding:0;margin:0 0 16px}
.woocommerce #payment ul.payment_methods li{padding:10px 0;border-bottom:1px solid var(--border-color)}
.woocommerce-MyAccount-navigation ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:4px}
.woocommerce-MyAccount-navigation a{display:block;padding:10px 14px;border-radius:4px}
.woocommerce-MyAccount-navigation .is-active a,.woocommerce-MyAccount-navigation a:hover{background:var(--accent-light);color:var(--accent)}
.woocommerce-account .woocommerce{display:grid;grid-template-columns:220px 1fr;gap:40px}
.woocommerce-account:not(.logged-in) .woocommerce{display:block}
.wc-page-wrap{max-width:1100px}
@media (max-width:768px){
  .woocommerce .col2-set,.woocommerce-account .woocommerce{grid-template-columns:1fr}
  .woocommerce table.shop_table_responsive thead{display:none}
  .woocommerce table.shop_table_responsive tr{display:block;border-bottom:1px solid var(--border-color)}
  .woocommerce table.shop_table_responsive td{display:flex;justify-content:space-between;border:0}
  .woocommerce table.shop_table_responsive td::before{content:attr(data-title);font-weight:600;color:var(--text-muted)}
  .catalog-filter-bar{padding:16px}
  .catalog-search{max-width:none}
  .panel{padding:24px}
  .post-header-section h1{font-size:2rem}
  .product-info-column h1{font-size:1.8rem}
  .books-grid .book-cover{height:340px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .fade-up-element{opacity:1;transform:none}
}
a.book-mockup{display:block}
.hero-book-img{height:auto}

/* Menu mobile fora da tela sem gerar largura extra e fora da ordem de tabulação quando fechado */
.mobile-sidebar{right:0;transform:translateX(110%);visibility:hidden;transition:transform .4s cubic-bezier(0.16,1,0.3,1),visibility .4s}
.mobile-sidebar.active{right:0;transform:none;visibility:visible}

/* ==========================================================================
   4. MODELO 2026 (layout aprovado em 25/10/2026 — desktop + mobile)
   Sobrescreve os blocos anteriores; tokens no :root abaixo.
   ========================================================================== */
:root{
  --font-heading:'DM Serif Display',Georgia,'Times New Roman',serif;
  --font-serif:'DM Serif Text',Georgia,'Times New Roman',serif;
  --container-w:1200px;
  --ink:#121826;
  --card-border:#E8EBF2;
  --card-shadow:0 6px 24px rgba(16,24,64,.06);
  --accent-soft:#EAF0FF;
  --navy-grad:linear-gradient(100deg,#0B1F5E 0%,#14328F 55%,#1B3FA8 100%);
}
body{background:#F7F8FB;color:var(--ink)}
h1,h2,.font-heading,.section-title{font-family:var(--font-heading);font-weight:400;letter-spacing:-.01em;color:var(--ink)}
h3,h4{font-family:var(--font-serif);font-weight:400}
.btn{border-radius:6px;font-weight:600;font-size:.95rem;gap:8px}
.btn svg{flex-shrink:0}
.btn-primary{background:linear-gradient(180deg,#1238C9,#0028B3)}
.btn-secondary{background:#fff;border:1px solid var(--card-border);box-shadow:0 2px 6px rgba(0,0,0,.04)}
.link-action{font-size:.85rem;font-weight:600;gap:6px}

/* ---------- Barra superior ---------- */
.top-bar{background:linear-gradient(90deg,#0A2BB8,#1036CC);padding:7px 0;font-size:.74rem}
.top-bar-address .addr-short{display:none}
.top-bar-social{align-items:center;gap:14px}
.top-bar-social a{opacity:.9}
.top-bar-phone{display:inline-flex!important;gap:6px;margin-left:8px;white-space:nowrap}

/* ---------- Header ---------- */
.glass-header{background:rgba(255,255,255,.96);box-shadow:0 1px 0 rgba(16,24,64,.06)}
.header-inner{height:76px;gap:24px}
.header-logo-img{max-height:44px}
.desktop-nav ul{gap:26px}
.desktop-nav a{font-size:.85rem;font-weight:500}
.desktop-nav a.active{color:var(--accent)}
.header-actions{gap:14px}
.header-search{display:flex;align-items:center;gap:8px;background:#F3F5FA;border:1px solid var(--card-border);border-radius:30px;padding:0 14px;height:38px;width:220px;color:#8A93A6;transition:border-color .2s,box-shadow .2s}
.header-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,40,179,.08);background:#fff}
.header-search input{border:0;background:transparent;outline:none;font:inherit;font-size:.8rem;width:100%;color:var(--ink)}
.header-actions .search-btn{display:none}
.cart-badge{top:-7px;right:-9px;width:17px;height:17px;font-size:.65rem;border:2px solid #fff;box-sizing:content-box}

/* ---------- Hero ---------- */
.hero-v2{position:relative;padding:0;min-height:0;display:block;background:#fff;overflow:hidden;color:#C7D2EA}
.hero-v2 .hero-slide{position:relative;align-items:stretch;min-height:440px}
.hero-v2 .hero-bg{position:absolute;inset:0 0 0 30%;background-size:cover;background-position:center;opacity:.9}
.hero-v2 .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 18%,rgba(255,255,255,.35) 45%,rgba(255,255,255,0) 70%),linear-gradient(0deg,rgba(255,255,255,.55),rgba(255,255,255,0) 40%)}
.hero-v2 .hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr 1fr .55fr;gap:24px;align-items:center;padding-top:44px;padding-bottom:96px}
.hero-v2 .badge{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;border-radius:6px;margin-bottom:18px;background:var(--accent-soft);color:var(--accent)}
.hero-v2 .hero-title{font-size:clamp(2.4rem,4.4vw,3.75rem);line-height:1.02;margin:0}
.hero-v2 .hero-description{font-size:1.02rem;line-height:1.6;color:#3F4656;margin:20px 0 28px;max-width:470px}
.hero-v2 .hero-cta-group .btn{padding:13px 26px}
.hero-v2 .hero-image-wrapper{position:relative;display:flex;justify-content:center;align-items:flex-end;min-height:340px;perspective:none}
.hero-v2 .book-mockup{width:min(330px,100%);animation:none;z-index:2}
.hero-v2 .hero-book-img{filter:drop-shadow(0 28px 30px rgba(10,20,50,.35))}
.hero-v2 .hero-pedestal{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);width:120%;height:70px;border-radius:50%;background:radial-gradient(ellipse at center,#efe9e1 0%,#e2dbd1 55%,rgba(226,219,209,0) 72%);z-index:1}
.hero-v2 .circle-1{width:300px;height:300px;top:40%;left:50%;transform:translate(-50%,-50%);filter:blur(70px)}
.hero-v2 .hero-phrase{align-self:start;margin-top:60px;font-family:var(--font-serif);text-transform:uppercase;letter-spacing:.28em;font-size:.82rem;line-height:2.1;color:#2A3350}
.hero-v2 .hero-phrase::after{content:"";display:block;width:34px;height:2px;background:var(--accent);margin-top:14px;opacity:.6}
.hero-controls-wrap{position:absolute;left:0;right:0;bottom:44px;z-index:5;pointer-events:none}
.hero-v2 .slider-controls{justify-content:flex-start;gap:14px;margin:0;padding:0;pointer-events:auto;width:fit-content}
.hero-v2 .slider-arrow{width:34px;height:34px;box-shadow:0 3px 10px rgba(0,0,0,.08);border-color:var(--card-border)}
.slider-counter{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;font-weight:700;color:#9AA3B5}
.slider-counter .current{color:var(--accent)}
.slider-counter .bar{display:inline-block;width:46px;height:2px;background:#E1E5EE;position:relative;overflow:hidden;border-radius:2px}
.slider-counter .bar-fill{position:absolute;inset:0 auto 0 0;width:33%;background:var(--accent);transition:width .5s}
.hero-v2 .slider-dots{display:none}
.hero-curve{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:46px;color:#F7F8FB;z-index:4}

/* ---------- Cabeçalho das seções ---------- */
.home-section{padding:44px 0 22px}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
.section-head .section-title{font-size:clamp(1.6rem,2.4vw,2.05rem);margin:0;position:relative;padding-bottom:12px}
.section-head .section-title::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:3px;border-radius:2px;background:var(--accent)}
.section-head-actions{display:flex;align-items:center;gap:18px}
.section-head .lbl-mobile{display:none}
.section-head .carousel-btn,.carousel-nav .carousel-btn{width:36px;height:36px}

/* ---------- Carrossel genérico ---------- */
.carousel-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 16px;scrollbar-width:none}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track>*{scroll-snap-align:start}
.carousel-dots{display:none;justify-content:center;gap:8px;margin-top:6px}
.carousel-dots .dot{width:7px;height:7px;border-radius:50%;border:0;padding:0;background:#D5DAE5;cursor:pointer;transition:width .3s,background .3s}
.carousel-dots .dot.active{background:var(--accent);width:18px;border-radius:5px}

/* ---------- Card de livro ---------- */
.book-card{flex:0 0 calc((100% - 60px)/4);text-align:left;border:1px solid var(--card-border);border-radius:10px;padding:16px;background:#fff;box-shadow:var(--card-shadow);display:flex;flex-direction:column}
.book-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(16,24,64,.10)}
.book-card .book-cover{height:200px;margin:0 0 14px;display:flex;align-items:center;justify-content:center;position:relative;background:transparent}
.book-card .book-cover img{max-height:100%;width:auto;max-width:92%;object-fit:contain;filter:drop-shadow(0 12px 16px rgba(10,20,50,.22))}
.book-card:hover .book-cover img{transform:translateY(-4px);filter:drop-shadow(0 18px 22px rgba(0,40,179,.22))}
.book-card .book-category{font-size:.62rem;letter-spacing:.14em;margin-bottom:6px;display:inline-block;background:var(--accent-soft);padding:2px 8px;border-radius:4px;align-self:flex-start}
.book-card .book-title{font-family:var(--font-serif);font-size:1.05rem;line-height:1.25;margin:0 0 4px}
.book-card .book-author{font-size:.78rem;color:#8A93A6;margin:0 0 10px}
.book-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}
.book-card .book-price{font-family:var(--font-body);font-size:1rem;font-weight:700;margin:0;color:var(--ink)}
.book-cart-btn{width:38px;height:38px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);flex-shrink:0;transition:background .2s,color .2s,transform .2s}
.book-cart-btn:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}
.book-cart-btn.loading{opacity:.6;pointer-events:none}
.book-cart-btn.added{background:#10B981;color:#fff}
.book-card .added_to_cart{display:none}
.book-overlay{display:none}
.books-grid .book-card{flex:none}
.books-grid .book-card .book-cover{height:230px}

/* ---------- Faixa "Preservando Memórias" ---------- */
.memorias-band{background:var(--navy-grad);color:#fff;position:relative;overflow:hidden;margin-top:26px}
.memorias-band::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 85% 40%,rgba(255,255,255,.10),transparent 55%)}
.memorias-inner{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:32px;min-height:230px;position:relative}
.memorias-text{padding:36px 0}
.memorias-text .section-title{color:#fff;font-size:clamp(1.7rem,2.6vw,2.2rem);margin:0 0 12px}
.memorias-text p{color:rgba(255,255,255,.82);max-width:520px;font-size:.95rem;line-height:1.65;margin-bottom:22px}
.memorias-text .btn-outline-light{border-color:rgba(255,255,255,.55);padding:10px 18px}
.memorias-art{align-self:stretch;display:flex;align-items:flex-end;justify-content:flex-end}
.memorias-img{max-height:240px;width:auto;object-fit:contain}
.book-stack{display:flex;flex-direction:column;align-items:flex-end;padding:22px 0 0;transform:perspective(900px) rotateY(-14deg);transform-origin:right}
.stack-book{display:block;font-family:var(--font-serif);text-transform:uppercase;letter-spacing:.18em;font-size:1rem;color:#E7ECFA;padding:11px 26px;border-radius:4px 2px 2px 4px;background:linear-gradient(180deg,#4867B9,#2E4C9C 60%,#243F86);box-shadow:inset 0 2px 0 rgba(255,255,255,.18),inset 0 -3px 0 rgba(0,0,0,.25),0 8px 14px rgba(0,0,0,.25);margin-top:-2px;text-align:left}
.stack-book-1{width:250px;background:linear-gradient(180deg,#B9C3D6,#97A3BC 60%,#7F8BA6);color:#24324F;transform:translateX(-14px)}
.stack-book-2{width:280px;transform:translateX(4px)}
.stack-book-3{width:265px;background:linear-gradient(180deg,#3A5AAE,#27448F 60%,#1E3779);transform:translateX(-8px)}
.stack-book-4{width:290px;background:linear-gradient(180deg,#2B4A9E,#1E3A86 60%,#172E6E)}

/* ---------- Depoimentos ---------- */
.opinion-card{flex:0 0 calc((100% - 40px)/3);display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--card-border);border-radius:10px;padding:20px;box-shadow:var(--card-shadow);margin:0}
.opinion-card .opinion-avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;filter:grayscale(100%);flex-shrink:0}
.opinion-card .opinion-avatar.is-initials{display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-family:var(--font-heading);font-size:1.5rem;filter:none}
.opinion-card blockquote{font-family:var(--font-serif);font-size:.95rem;line-height:1.5;color:#2A3142;margin:0 0 10px}
.opinion-card figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.opinion-name{font-weight:700;font-size:.82rem;color:var(--accent)}
.opinion-stars{font-size:.85rem;letter-spacing:1px;color:#D7DBE3}
.opinion-stars .on{color:#F5B301}
.opinion-meta{flex-basis:100%;font-size:.75rem;color:#8A93A6}
.opinions-grid-page{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}
.opinions-grid-page .opinion-card{flex:none}
.admin-hint{border:2px dashed #C5D3F6;background:#F4F7FF;color:#33416B;border-radius:10px;padding:16px 20px;font-size:.9rem}
.admin-hint a{color:var(--accent);font-weight:700}

/* ---------- Blog (card horizontal da home) ---------- */
.blog-card--h{flex:0 0 calc((100% - 40px)/3);flex-direction:row;border-radius:10px;border:1px solid var(--card-border);box-shadow:var(--card-shadow);min-height:150px}
.blog-card--h:hover{transform:translateY(-3px)}
.blog-card--h .blog-img-link{flex:0 0 40%;aspect-ratio:auto}
.blog-card--h .blog-img{height:100%;filter:none}
.blog-card--h .blog-content{padding:14px 16px}
.blog-card--h .blog-meta{font-size:.62rem;padding:3px 9px;margin-bottom:8px;border-radius:5px}
.blog-card--h .blog-title{font-family:var(--font-serif);font-weight:400;font-size:1.02rem;line-height:1.28;margin-bottom:6px}
.blog-card--h .blog-excerpt{font-size:.78rem;line-height:1.5;-webkit-line-clamp:3;margin-bottom:8px}
.read-more{font-size:.78rem}

/* ---------- Newsletter ---------- */
.newsletter-section{background:transparent;border:0;padding:30px 0 50px}
.newsletter-section .newsletter-inner{background:#fff;border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--card-shadow);padding:22px 26px;gap:22px}
.newsletter-icon{width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.newsletter-text h3{font-size:.85rem;letter-spacing:.16em;color:var(--accent)}
.newsletter-text p{font-size:.88rem}
.newsletter-form{flex:0 0 440px}

/* ---------- Páginas internas: títulos serifados ---------- */
.page-title-section h1{font-size:clamp(2.1rem,4vw,3rem)}
.panel-title{font-family:var(--font-heading);font-weight:400}

/* ---------- Responsivo ---------- */
@media (max-width:1180px){
  .header-search{width:170px}
  .desktop-nav ul{gap:18px}
}
@media (max-width:1080px){
  .header-search{display:none}
  .header-actions .search-btn{display:flex}
  .hero-v2 .hero-inner{grid-template-columns:1.1fr 1fr}
  .hero-v2 .hero-phrase{display:none}
  .book-card{flex-basis:calc((100% - 40px)/3)}
  .blog-card--h,.opinion-card{flex-basis:calc((100% - 20px)/2)}
}
@media (max-width:992px){
  .top-bar{display:block}
  .header-inner{height:64px}
  .hero-v2 .hero-slide{min-height:0}
  .hero-v2 .hero-inner{grid-template-columns:1fr;text-align:left;gap:6px;padding-top:24px;padding-bottom:70px}
  .hero-v2 .hero-bg{inset:auto 0 0 0;height:300px}
  .hero-v2 .hero-bg::after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.2) 35%,rgba(255,255,255,0) 60%)}
  .hero-v2 .badge{margin:0 0 14px}
  .hero-v2 .hero-description{margin:14px 0 20px}
  .hero-v2 .hero-cta-group{justify-content:flex-start;flex-wrap:nowrap}
  .hero-v2 .hero-cta-group .btn{padding:12px 18px;flex:1;white-space:nowrap}
  .hero-v2 .hero-image-wrapper{min-height:260px;margin-top:18px}
  .hero-v2 .book-mockup{width:220px}
  .hero-controls-wrap{bottom:30px}
  .hero-v2 .slider-controls{margin:0 auto}
  .slider-counter{display:none}
  .hero-v2 .slider-dots{display:flex}
  .memorias-inner{grid-template-columns:1fr;gap:0;min-height:0}
  .memorias-art{display:none}
  .section-head .lbl-desktop{display:none}
  .section-head .lbl-mobile{display:inline}
  .section-head .carousel-nav{display:none}
  .carousel.has-pages .carousel-dots{display:flex}
  .newsletter-section .newsletter-inner{flex-direction:row;flex-wrap:wrap;text-align:left}
  .newsletter-form{flex:1 1 100%}
}
@media (max-width:640px){
  .top-bar{padding:6px 0;font-size:.7rem}
  .top-bar-address .addr-full{display:none}
  .top-bar-address .addr-short{display:inline}
  .top-bar-social a:not(.top-bar-phone){display:none!important}
  .container{padding:0 18px}
  .header-logo-img{max-height:38px!important}
  .hero-v2 .hero-title{font-size:2.15rem}
  .hero-v2 .hero-description{font-size:.88rem}
  .home-section{padding:30px 0 12px}
  .section-head .section-title{font-size:1.5rem}
  .book-card{flex-basis:calc((100% - 12px)/2);padding:10px}
  .carousel-track{gap:12px}
  .book-card .book-cover{height:150px}
  .book-card .book-title{font-size:.92rem}
  .book-cart-btn{width:32px;height:32px}
  .opinion-card,.blog-card--h{flex-basis:100%}
  .blog-card--h .blog-img-link{flex-basis:38%}
  .newsletter-section{padding:20px 0 30px}
  .newsletter-icon{width:44px;height:44px}
  .newsletter-form{flex-direction:column}
}
/* Ajustes finos do modelo 2026 */
html,body{overflow-x:hidden;overflow-x:clip}
.hero-v2 .hero-bg{opacity:.75}
.hero-v2 .hero-bg::after{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.94) 20%,rgba(255,255,255,.55) 45%,rgba(255,255,255,.25) 70%,rgba(255,255,255,.35) 100%),linear-gradient(0deg,rgba(255,255,255,.6),rgba(255,255,255,0) 45%)}
.hero-v2 .book-mockup{width:min(410px,100%)}
.hero-v2 .hero-image-wrapper{min-height:380px}
.memorias-band{margin-top:30px;padding:0}
@media (max-width:992px){
  .memorias-text{padding:34px 0 38px}
  .hero-v2 .book-mockup{width:250px}
  .hero-v2 .hero-image-wrapper{min-height:280px}
}
@media (max-width:640px){
  .header-actions .account-btn{display:none}
  .header-actions{gap:16px}
}
.entry-content a.btn,.post-body a.btn{text-decoration:none}
.entry-content a.btn-primary,.post-body a.btn-primary{color:#fff}
.entry-content a.btn-secondary{color:var(--text-main)}
