/* ==========================================================================
   Eterno Pets - CSS Principal, Design System & Responsividade Mobile
   ========================================================================== */

:root {
  --eterno-white: #FFFFFF;
  --eterno-offwhite: #FAF7F2;
  --eterno-sand: #EFE8DE;
  --eterno-sand-dark: #E2D7C9;
  --eterno-sage: #9BAA96;
  --eterno-sage-dark: #82927D;
  --eterno-rose: #C2A19E;
  --eterno-taupe: #685D56;
  --eterno-text: #2B2826;
  --eterno-blue: #A1B0B8;
  --eterno-border: #F0ECE6;
  --font-editorial: 'Fraunces', Georgia, serif;
  --font-ui: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-pill: 9999px;
  --shadow-subtle: 0 4px 20px -2px rgba(43, 40, 38, 0.04);
  --shadow-elevated: 0 10px 30px -4px rgba(43, 40, 38, 0.08);
  --eterno-container-max: 1600px;
  --eterno-container-gutter: clamp(16px, 2.25vw, 40px);
}

/* Reset Preventivo Anti-Overflow */
html, body {
  max-width: 100%;
  overflow-x: hidden;
  position: relative;
}

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

body {
  background-color: var(--eterno-white);
  color: var(--eterno-text);
  font-family: var(--font-ui);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

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

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

.font-editorial {
  font-family: var(--font-editorial);
}

/* Container Responsivo */
.eterno-container {
  width: 100%;
  max-width: var(--eterno-container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--eterno-container-gutter);
  padding-right: var(--eterno-container-gutter);
}

/* ==========================================================================
   Header & Navegação
   ========================================================================== */
.eterno-top-bar {
  background-color: var(--eterno-text);
  color: var(--eterno-offwhite);
  font-size: 11px;
  padding: 8px 12px;
  border-bottom: 1px solid #1E1C1B;
  letter-spacing: 0.02em;
}
.eterno-top-bar-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
}
@media (min-width: 640px) {
  .eterno-top-bar-inner {
    flex-direction: row;
    padding: 0;
  }
}

.eterno-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--eterno-border);
  box-shadow: 0 1px 4px rgba(43, 40, 38, 0.02);
}
.eterno-header-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}
@media (min-width: 768px) {
  .eterno-header-main {
    height: 76px;
  }
}

/* Logotipo */
.eterno-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  flex-shrink: 0;
}
@media (min-width: 640px) {
  .eterno-logo {
    gap: 12px;
  }
}
.eterno-logo-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  background-color: var(--eterno-offwhite);
  border: 1px solid var(--eterno-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--eterno-taupe);
  transition: all 0.3s ease;
  flex-shrink: 0;
}
@media (min-width: 640px) {
  .eterno-logo-icon {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-md);
  }
}
.eterno-logo-icon svg {
  width: 20px;
  height: 20px;
}
@media (min-width: 640px) {
  .eterno-logo-icon svg {
    width: 24px;
    height: 24px;
  }
}
.eterno-logo:hover .eterno-logo-icon {
  background-color: var(--eterno-sage);
  color: var(--eterno-white);
  border-color: var(--eterno-sage);
}
.eterno-logo-text {
  display: flex;
  flex-direction: column;
}
.eterno-logo-title {
  font-size: 19px;
  font-weight: 700;
  line-height: 1;
  color: var(--eterno-text);
  letter-spacing: -0.02em;
}
@media (min-width: 640px) {
  .eterno-logo-title {
    font-size: 24px;
  }
}
.eterno-logo-tagline {
  font-size: 8px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--eterno-taupe);
  font-weight: 600;
  margin-top: 2px;
  display: none;
}
@media (min-width: 640px) {
  .eterno-logo-tagline {
    display: block;
    font-size: 9px;
  }
}

/* Busca Desktop */
.eterno-search-wrapper {
  display: none;
  flex: 1;
  max-width: 520px;
  margin: 0 24px;
}
@media (min-width: 860px) {
  .eterno-search-wrapper {
    display: block;
  }
}
.eterno-search-form {
  position: relative;
  width: 100%;
}
.eterno-search-input {
  width: 100%;
  background-color: var(--eterno-offwhite);
  color: var(--eterno-text);
  font-size: 12px;
  padding: 9px 16px 9px 36px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--eterno-border);
  outline: none;
  transition: all 0.2s ease;
}
.eterno-search-input:focus {
  background-color: var(--eterno-white);
  border-color: var(--eterno-sage);
  box-shadow: 0 0 0 3px rgba(155, 170, 150, 0.15);
}
.eterno-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  color: var(--eterno-taupe);
  pointer-events: none;
}

/* Ações do Header (Mobile First) */
.eterno-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (min-width: 640px) {
  .eterno-header-actions {
    gap: 12px;
  }
}
.eterno-btn-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--eterno-taupe);
  background-color: var(--eterno-offwhite);
  padding: 8px 14px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--eterno-border);
  transition: all 0.2s ease;
}
.eterno-btn-action:hover {
  color: var(--eterno-text);
  background-color: var(--eterno-sand);
}
@media (max-width: 639px) {
  .eterno-btn-action.eterno-account-btn {
    padding: 0;
    width: 36px;
    height: 36px;
    justify-content: center;
  }
}
.eterno-cart-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-pill);
  background-color: var(--eterno-offwhite);
  color: var(--eterno-text);
  border: 1px solid var(--eterno-border);
  transition: all 0.2s ease;
}
@media (min-width: 640px) {
  .eterno-cart-btn {
    width: 40px;
    height: 40px;
  }
}
.eterno-cart-btn:hover {
  color: var(--eterno-sage);
  border-color: var(--eterno-sage);
}
.eterno-cart-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background-color: var(--eterno-sage);
  color: var(--eterno-white);
  font-size: 9px;
  font-weight: 700;
  min-width: 17px;
  height: 17px;
  line-height: 17px;
  padding: 0 4px;
  border-radius: var(--radius-pill);
  text-align: center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
.eterno-menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-pill);
  background-color: var(--eterno-offwhite);
  color: var(--eterno-taupe);
  border: 1px solid var(--eterno-border);
  cursor: pointer;
  outline: none;
}
@media (min-width: 768px) {
  .eterno-menu-toggle {
    display: none;
  }
}

/* Navegação Desktop */
.eterno-nav-container {
  display: none;
  border-top: 1px solid var(--eterno-border);
}
@media (min-width: 768px) {
  .eterno-nav-container {
    display: block;
  }
}
.eterno-nav-desktop,
ul.eterno-nav-desktop {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--eterno-taupe);
  list-style: none;
  margin: 0;
}
.eterno-nav-item,
.eterno-dropdown-wrapper,
li.eterno-nav-item,
li.eterno-dropdown-wrapper {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  display: inline-flex;
  align-items: center;
}
.eterno-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  color: var(--eterno-taupe);
  white-space: nowrap;
}
.eterno-nav-link:hover, .eterno-nav-link.active {
  color: var(--eterno-text);
  background-color: var(--eterno-offwhite);
}
.eterno-nav-link.highlight {
  color: var(--eterno-sage);
  font-weight: 700;
}
.eterno-nav-link.offer {
  color: var(--eterno-rose);
  font-weight: 700;
}

.eterno-catalog-trigger {
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

/* Dropdown Submenus Desktop */
.eterno-dropdown-menu,
ul.eterno-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 4px;
  width: 250px;
  background-color: var(--eterno-white);
  border-radius: var(--radius-md);
  border: 1px solid var(--eterno-border);
  box-shadow: var(--shadow-elevated);
  padding: 8px;
  z-index: 60;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  list-style: none;
}
.eterno-dropdown-wrapper:hover .eterno-dropdown-menu,
li.eterno-dropdown-wrapper:hover .eterno-dropdown-menu,
.eterno-dropdown-wrapper:focus-within .eterno-dropdown-menu,
.eterno-dropdown-wrapper.is-open .eterno-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.eterno-catalog-trigger[aria-expanded="false"] + .eterno-catalog-dropdown {
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
}

.eterno-catalog-trigger[aria-expanded="true"] + .eterno-catalog-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.eterno-catalog-dropdown {
  width: min(720px, calc(100vw - 48px));
  max-height: min(68vh, 560px);
  padding: 14px;
  overflow-y: auto;
}

.eterno-catalog-all-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  margin-bottom: 10px;
  color: var(--eterno-text);
  background: var(--eterno-offwhite);
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 800;
}

.eterno-catalog-all-link:hover,
.eterno-catalog-all-link:focus-visible {
  border-color: var(--eterno-sage);
  color: var(--eterno-sage-dark);
}

.eterno-catalog-tree,
.eterno-catalog-children {
  padding: 0;
  margin: 0;
  list-style: none;
}

.eterno-catalog-tree {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.eterno-catalog-category {
  min-width: 0;
  list-style: none;
}

.eterno-catalog-category.depth-0 {
  padding: 10px;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-sm);
}

.eterno-catalog-category-link {
  display: block;
  padding: 4px 6px;
  overflow-wrap: anywhere;
  color: var(--eterno-taupe);
  border-radius: 8px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
}

.eterno-catalog-category.depth-0 > .eterno-catalog-category-link {
  color: var(--eterno-text);
  font-size: 12px;
  font-weight: 800;
}

.eterno-catalog-category-link:hover,
.eterno-catalog-category-link:focus-visible {
  color: var(--eterno-sage-dark);
  background: var(--eterno-offwhite);
}

.eterno-catalog-children {
  padding: 3px 0 0 8px;
  border-left: 1px solid var(--eterno-border);
}

.eterno-catalog-empty {
  padding: 12px;
  color: var(--eterno-taupe);
  font-size: 11px;
}
.eterno-dropdown-li,
li.eterno-dropdown-li {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}
.eterno-dropdown-item {
  display: block;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  color: var(--eterno-text);
  text-decoration: none;
}
.eterno-dropdown-item:hover {
  background-color: var(--eterno-offwhite);
}
.eterno-dropdown-item-title {
  font-size: 12px;
  font-weight: 700;
}
.eterno-dropdown-item-desc {
  font-size: 10px;
  color: var(--eterno-taupe);
  margin-top: 2px;
}

/* Menu Mobile (Com busca, acordeão e rolagem suave) */
.eterno-mobile-menu {
  display: none;
  background-color: var(--eterno-white);
  border-top: 1px solid var(--eterno-border);
  padding: 16px;
  max-height: calc(100vh - 70px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: 0 10px 25px -5px rgba(43, 40, 38, 0.08);
}
.eterno-mobile-menu.is-open {
  display: block;
}
.eterno-mobile-search {
  margin-bottom: 16px;
}
.eterno-mobile-link {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--eterno-text);
  border-radius: var(--radius-sm);
}
.eterno-mobile-link:hover, .eterno-mobile-link:active {
  background-color: var(--eterno-offwhite);
}
.eterno-mobile-heading {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--eterno-taupe);
  padding: 14px 12px 6px;
  border-top: 1px solid var(--eterno-border);
  margin-top: 8px;
}
.eterno-mobile-sub {
  padding-left: 8px;
}

/* ==========================================================================
   Componentes & Botões (Mobile Adaptative)
   ========================================================================== */
.eterno-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-color: var(--eterno-sage);
  color: var(--eterno-white);
  font-size: 12px;
  font-weight: 700;
  padding: 12px 24px;
  border-radius: var(--radius-pill);
  border: none;
  cursor: pointer;
  box-shadow: var(--shadow-subtle);
  transition: all 0.25s ease;
  text-align: center;
}
@media (min-width: 640px) {
  .eterno-btn-primary {
    padding: 14px 28px;
  }
}
.eterno-btn-primary:hover {
  background-color: var(--eterno-sage-dark);
  color: var(--eterno-white);
}
.eterno-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-color: var(--eterno-white);
  color: var(--eterno-text);
  font-size: 12px;
  font-weight: 600;
  padding: 12px 22px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--eterno-sand-dark);
  cursor: pointer;
  box-shadow: var(--shadow-subtle);
  transition: all 0.25s ease;
  text-align: center;
}
@media (min-width: 640px) {
  .eterno-btn-secondary {
    padding: 14px 26px;
  }
}
.eterno-btn-secondary:hover {
  background-color: var(--eterno-offwhite);
}

/* Hero Section */
.eterno-hero-section {
  background-color: var(--eterno-offwhite);
  border-bottom: 1px solid var(--eterno-border);
  padding: 40px 0 52px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .eterno-hero-section {
    padding: 68px 0 84px;
  }
}
.eterno-hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  align-items: center;
}
@media (min-width: 992px) {
  .eterno-hero-grid {
    grid-template-columns: 1.15fr 0.85fr;
    gap: 48px;
  }
}
.eterno-hero-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 8px;
  width: 100%;
}
@media (min-width: 540px) {
  .eterno-hero-buttons {
    flex-direction: row;
    flex-wrap: wrap;
    width: auto;
  }
}

/* ==========================================================================
   Grids Responsivos de Produtos
   ========================================================================== */
.eterno-featured-section {
  padding: 32px 0;
  background-color: var(--eterno-white);
}

.eterno-featured-panel {
  padding: 20px;
  background-color: var(--eterno-offwhite);
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-subtle);
}

.eterno-featured-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--eterno-sand-dark);
}

@media (min-width: 768px) {
  .eterno-featured-section {
    padding: 40px 0;
  }

  .eterno-featured-panel {
    padding: 28px 32px 32px;
  }

  .eterno-featured-header {
    flex-direction: row;
    align-items: flex-end;
  }
}

.eterno-products-grid,
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/*
 * O clearfix nativo do WooCommerce cria pseudo-elementos que passam a ocupar
 * células quando a lista é transformada em CSS Grid.
 */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  content: none !important;
  display: none !important;
}

/* Neutraliza as larguras e floats do grid clássico do WooCommerce. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 12px 12px 18px !important;
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: var(--eterno-white);
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-subtle);
  overflow: hidden;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  border-color: var(--eterno-sage);
  box-shadow: var(--shadow-elevated);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
  width: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin: 0 0 16px !important;
  border-radius: var(--radius-md);
  background-color: var(--eterno-offwhite);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
  padding: 0 !important;
  margin: 0 0 8px !important;
  color: var(--eterno-text);
  font-family: var(--font-editorial);
  font-size: 17px !important;
  line-height: 1.35;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  margin: auto 0 14px !important;
  color: var(--eterno-sage-dark) !important;
  font-size: 15px !important;
  font-weight: 700;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
  width: 100%;
  min-height: 42px;
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: var(--radius-pill);
}
/* 2 colunas a partir de 400px (smartphones padrão) */
@media (min-width: 400px) {
  .eterno-products-grid,
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
}
/* 3 colunas em tablets */
@media (min-width: 768px) {
  .eterno-products-grid,
  .woocommerce ul.products {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
  }

  .eterno-products-grid--count-1 {
    grid-template-columns: minmax(0, 320px) !important;
    justify-content: center;
  }

  .eterno-products-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 320px)) !important;
    justify-content: center;
  }
}
/* 4 colunas em desktops */
@media (min-width: 1024px) {
  .eterno-products-grid,
  .woocommerce ul.products {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
  }


  .eterno-products-grid--count-1 {
    grid-template-columns: minmax(0, 360px) !important;
    justify-content: center;
  }

  .eterno-products-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 360px)) !important;
    justify-content: center;
  }

  .eterno-products-grid--count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Card de Produto */
.eterno-product-card {
  background-color: var(--eterno-white);
  border-radius: var(--radius-md);
  border: 1px solid var(--eterno-border);
  overflow: hidden;
  box-shadow: var(--shadow-subtle);
  transition: all 0.25s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
}
@media (min-width: 640px) {
  .eterno-product-card {
    border-radius: var(--radius-lg);
  }
}
.eterno-product-card:hover {
  border-color: var(--eterno-sage);
  box-shadow: var(--shadow-elevated);
}
.eterno-product-thumb {
  position: relative;
  background-color: var(--eterno-offwhite);
  aspect-ratio: 1 / 1;
  width: 100%;
  overflow: hidden;
}
.eterno-product-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.eterno-product-thumb > a {
  display: block;
  width: 100%;
  height: 100%;
}
.eterno-product-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  background-color: var(--eterno-rose);
  color: var(--eterno-white);
  font-size: 8px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  text-transform: uppercase;
}
@media (min-width: 640px) {
  .eterno-product-badge {
    top: 12px;
    left: 12px;
    font-size: 9px;
    padding: 4px 10px;
  }
}
.eterno-product-body {
  padding: 12px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  justify-content: space-between;
}
@media (min-width: 640px) {
  .eterno-product-body {
    padding: 18px;
  }
}
.eterno-product-cat {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--eterno-sage);
  letter-spacing: 0.05em;
}
.eterno-product-cat a {
  color: inherit;
  text-decoration: none;
}
.eterno-product-cat a:hover {
  color: var(--eterno-sage-dark);
}
.eterno-product-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--eterno-text);
  margin: 4px 0 8px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (min-width: 640px) {
  .eterno-product-title {
    font-size: 15px;
    margin: 6px 0 10px;
  }
}
.eterno-product-footer {
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--eterno-border);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
}
.eterno-price-current {
  font-size: 14px;
  font-weight: 800;
  color: var(--eterno-text);
  line-height: 1;
}
@media (min-width: 640px) {
  .eterno-price-current {
    font-size: 17px;
  }
}
.eterno-price-old {
  font-size: 10px;
  color: #9CA3AF;
  text-decoration: line-through;
  display: block;
}
.eterno-price-installments {
  font-size: 9px;
  color: var(--eterno-taupe);
  margin-top: 2px;
  display: block;
}
@media (min-width: 640px) {
  .eterno-price-installments {
    font-size: 10px;
  }
}
.eterno-btn-add-cart {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-pill);
  background-color: var(--eterno-offwhite);
  color: var(--eterno-text);
  border: 1px solid var(--eterno-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
@media (min-width: 640px) {
  .eterno-btn-add-cart {
    width: 38px;
    height: 38px;
  }
}
.eterno-btn-add-cart:hover {
  background-color: var(--eterno-sage);
  color: var(--eterno-white);
  border-color: var(--eterno-sage);
}

/* ==========================================================================
   Grids de Benefícios, Processos e Departamentos
   ========================================================================== */
.eterno-benefits-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 480px) {
  .eterno-benefits-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .eterno-benefits-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
}

.eterno-process-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 540px) {
  .eterno-process-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .eterno-process-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
}

.eterno-departments-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.eterno-department-card {
  display: flex;
  min-width: 0;
  overflow: hidden;
  color: var(--eterno-text);
  background: var(--eterno-white);
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-subtle);
  flex-direction: column;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.eterno-department-card:hover,
.eterno-department-card:focus-visible {
  color: var(--eterno-text);
  border-color: var(--eterno-sage);
  box-shadow: var(--shadow-elevated);
  transform: translateY(-3px);
}

.eterno-department-media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--eterno-offwhite);
}

.eterno-department-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.eterno-department-card:hover .eterno-department-image,
.eterno-department-card:focus-visible .eterno-department-image {
  transform: scale(1.035);
}

.eterno-department-media.is-placeholder {
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, var(--eterno-offwhite), var(--eterno-sand));
}

.eterno-department-placeholder-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  color: var(--eterno-sage-dark);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  box-shadow: var(--shadow-subtle);
}

.eterno-department-card.accent-rose .eterno-department-placeholder-icon {
  color: var(--eterno-rose);
}

.eterno-department-card.accent-blue .eterno-department-placeholder-icon {
  color: var(--eterno-blue);
}

.eterno-department-placeholder-icon svg {
  width: 25px;
  height: 25px;
  stroke-width: 1.7;
}

.eterno-department-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 20px;
}

.eterno-department-content h3 {
  margin: 0 0 6px;
  color: var(--eterno-text);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}

.eterno-department-content p {
  margin: 0;
  color: var(--eterno-taupe);
  font-size: 12px;
  line-height: 1.55;
}

.eterno-department-link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding-top: 14px;
  color: var(--eterno-sage-dark);
  border-top: 1px solid var(--eterno-border);
  font-size: 11px;
  font-weight: 800;
}

.eterno-department-card.accent-rose .eterno-department-link {
  color: var(--eterno-rose);
}

.eterno-department-card.accent-blue .eterno-department-link {
  color: var(--eterno-blue);
}

.eterno-department-link svg {
  width: 15px;
  height: 15px;
  transition: transform 0.2s ease;
}

.eterno-department-card:hover .eterno-department-link svg,
.eterno-department-card:focus-visible .eterno-department-link svg {
  transform: translateX(3px);
}

@media (max-width: 767px) {
  .eterno-department-content {
    padding: 17px;
  }
}
@media (min-width: 768px) {
  .eterno-departments-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
@media (min-width: 1200px) {
  .eterno-departments-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Caixa de Chamada WhatsApp */
.eterno-cta-box {
  background-color: var(--eterno-text);
  border-radius: var(--radius-lg);
  padding: 28px 20px;
  color: var(--eterno-offwhite);
  display: flex;
  flex-direction: column;
  gap: 20px;
  box-shadow: var(--shadow-elevated);
}
@media (min-width: 768px) {
  .eterno-cta-box {
    border-radius: var(--radius-xl);
    padding: 48px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
  }
}
.eterno-cta-box .eterno-btn-primary {
  width: 100%;
}
@media (min-width: 768px) {
  .eterno-cta-box .eterno-btn-primary {
    width: auto;
    flex-shrink: 0;
  }
}

/* ==========================================================================
   Footer Responsivo
   ========================================================================== */
.eterno-footer {
  background-color: var(--eterno-taupe);
  color: rgba(250, 247, 242, 0.85);
  border-top: 1px solid #5C524C;
  margin-top: 56px;
  padding-top: 48px;
  padding-bottom: 32px;
}
@media (min-width: 768px) {
  .eterno-footer {
    margin-top: 80px;
    padding-top: 64px;
    padding-bottom: 48px;
  }
}
.eterno-footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(250, 247, 242, 0.12);
}
@media (min-width: 600px) {
  .eterno-footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .eterno-footer-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
  }
}
.eterno-footer-col h4 {
  color: var(--eterno-white);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 12px;
}
.eterno-footer-col ul {
  list-style: none;
}
.eterno-footer-col li {
  margin-bottom: 8px;
  font-size: 11px;
}
.eterno-footer-col a:hover {
  color: var(--eterno-white);
}

/* ==========================================================================
   WooCommerce Páginas Internas (Produto, Carrinho, Checkout)
   ========================================================================== */
.woocommerce button.button.alt, 
.woocommerce input.button.alt,
.woocommerce a.button.alt,
.woocommerce #respond input#submit.alt {
  background-color: var(--eterno-sage) !important;
  color: var(--eterno-white) !important;
  border-radius: var(--radius-pill) !important;
  padding: 12px 24px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  border: none !important;
  transition: all 0.2s ease !important;
  box-shadow: var(--shadow-subtle) !important;
}
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover {
  background-color: var(--eterno-sage-dark) !important;
}

/* Simulador de frete do Melhor Envio na página do produto.
   O tema cuida somente da apresentação; cálculo, zonas e cotações permanecem
   integralmente sob responsabilidade do WooCommerce e do Melhor Envio. */

/* Aviso informativo de produção artesanal na página do produto. */
.eterno-production-notice {
  display: flex;
  width: 100%;
  gap: 14px;
  margin: 20px 0 18px;
  padding: 16px 18px;
  color: var(--eterno-text);
  background: linear-gradient(135deg, rgba(155, 170, 150, 0.14), rgba(250, 247, 242, 0.96));
  border: 1px solid rgba(155, 170, 150, 0.34);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-subtle);
}

.eterno-production-notice-icon {
  display: inline-flex;
  flex: 0 0 38px;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: var(--eterno-sage-dark);
  background: var(--eterno-white);
  border: 1px solid var(--eterno-border);
  border-radius: 50%;
}

.eterno-production-notice-icon svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.8;
}

.eterno-production-notice-content {
  min-width: 0;
}

.eterno-production-notice-title {
  display: block;
  margin-bottom: 4px;
  font-family: var(--font-editorial);
  font-size: 17px;
  line-height: 1.3;
}

.eterno-production-notice p {
  margin: 0;
  color: var(--eterno-taupe);
  font-size: 12px;
  line-height: 1.55;
}

.eterno-production-notice .eterno-production-notice-time {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 8px;
  color: var(--eterno-text);
}

.eterno-production-notice-time strong {
  color: var(--eterno-sage-dark);
}

.eterno-production-notice small {
  display: block;
  margin-top: 3px;
  color: var(--eterno-taupe);
  font-size: 10px;
  line-height: 1.45;
}

.eterno-production-notice.device-mobile {
  display: none;
}

@media (max-width: 767px) {
  .eterno-production-notice {
    gap: 12px;
    margin-top: 18px;
    padding: 15px;
    border-radius: var(--radius-sm);
  }

  .eterno-production-notice.device-desktop {
    display: none;
  }

  .eterno-production-notice.device-mobile {
    display: flex;
  }
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto {
  clear: both;
  width: 100%;
  margin: 24px 0 18px;
  padding: 18px;
  overflow: hidden;
  color: var(--eterno-text);
  background: var(--eterno-offwhite);
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-subtle);
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .calculatorRow,
body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .row,
body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .col-75 {
  width: 100%;
  margin: 0;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .col-75 {
  float: none;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .col-75 > p {
  margin: 0 0 10px;
  padding: 0;
  color: var(--eterno-text);
  font-family: var(--font-editorial);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto input.iptCep[type="text"] {
  display: block;
  width: 100%;
  min-height: 46px;
  margin: 0;
  padding: 11px 14px;
  color: var(--eterno-text);
  background: var(--eterno-white);
  border: 1px solid var(--eterno-sand-dark);
  border-radius: var(--radius-sm);
  font-family: var(--font-ui);
  font-size: 14px;
  line-height: 1.4;
  box-shadow: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto input.iptCep[type="text"]:focus {
  border-color: var(--eterno-sage);
  outline: none;
  box-shadow: 0 0 0 3px rgba(155, 170, 150, 0.18);
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto input.iptCep[type="text"]:disabled {
  cursor: wait;
  opacity: 0.65;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto #calcular-frete-loader {
  min-height: 54px;
  padding: 12px 0 0;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto #calcular-frete-loader img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete {
  width: 100%;
  margin-top: 14px;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete table,
body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete tbody {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete tbody {
  display: grid;
  gap: 8px;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete tr {
  display: block;
  margin: 0;
  padding: 0;
  background: var(--eterno-white);
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-sm);
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete td {
  display: block;
  width: 100%;
  padding: 10px 12px;
  color: var(--eterno-text);
  border: 0;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.55;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto #destiny-shipping-mehor-envio {
  display: block;
  margin-top: 12px;
  color: var(--eterno-taupe);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .observation-shipping-free {
  display: block;
  margin-top: 8px;
  color: var(--eterno-sage-dark);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

@media (max-width: 767px) {
  body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto {
    margin-top: 20px;
    padding: 16px;
    border-radius: var(--radius-sm);
  }

  body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .col-75 > p {
    font-size: 17px;
  }

  body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete td {
    font-size: 11px;
  }
}

/* Página do Produto Único */
body.single-product .eterno-wc-container {
  padding-top: clamp(24px, 3vw, 44px);
}

body.single-product.woocommerce div.product {
  max-width: 1320px;
  margin-right: auto;
  margin-left: auto;
}

body.single-product.woocommerce div.product div.images {
  width: 42%;
  margin-bottom: clamp(36px, 5vw, 72px);
}

/* A fotografia permanece livre: sem card, moldura ou fundo concorrente. */
body.single-product .woocommerce-product-gallery,
body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image a,
body.single-product .woocommerce-product-gallery__image img {
  border: 0;
  background: transparent;
  box-shadow: none;
}

body.single-product.woocommerce div.product div.summary {
  width: 54%;
  margin-bottom: clamp(36px, 5vw, 72px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.single-product.woocommerce div.product div.summary h1.product_title {
  margin: 0 0 12px;
  color: var(--eterno-text);
  font-family: var(--font-editorial);
  font-size: clamp(28px, 2.2vw, 36px);
  line-height: 1.12;
}

body.single-product.woocommerce div.product div.summary p.price,
body.single-product.woocommerce div.product div.summary span.price {
  margin: 0 0 16px;
  color: var(--eterno-sage-dark);
  font-family: var(--font-editorial);
  font-size: clamp(24px, 2vw, 32px);
  font-weight: 700;
  line-height: 1.2;
}

body.single-product .woocommerce-product-details__short-description {
  margin-bottom: 22px;
  color: var(--eterno-taupe);
  font-size: 14px;
  line-height: 1.7;
}

body.single-product .woocommerce-product-details__short-description p:last-child {
  margin-bottom: 0;
}

body.single-product.woocommerce div.product form.cart:not(.variations_form),
body.single-product.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
  display: flex;
  align-items: stretch;
  gap: 12px;
  width: 100%;
  margin: 0 0 18px;
  padding: 18px 0;
  border-top: 1px solid var(--eterno-border);
  border-bottom: 1px solid var(--eterno-border);
}

body.single-product.woocommerce div.product form.cart .quantity {
  flex: 0 0 76px;
  margin: 0 !important;
}

body.single-product.woocommerce div.product form.cart .qty {
  width: 76px;
  height: 54px;
  padding: 0 10px;
  border: 1px solid var(--eterno-sand-dark);
  border-radius: var(--radius-sm);
  color: var(--eterno-text);
  background: var(--eterno-white);
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}

body.single-product.woocommerce div.product form.cart .single_add_to_cart_button {
  flex: 1;
  min-height: 54px;
  margin: 0;
  padding: 14px 22px !important;
  font-size: 14px !important;
  box-shadow: none !important;
}

body.single-product.woocommerce div.product form.cart .variations {
  margin-bottom: 16px;
}

body.single-product.woocommerce div.product form.cart .variations th,
body.single-product.woocommerce div.product form.cart .variations td {
  padding: 6px 0;
  border: 0;
}

body.single-product.woocommerce div.product form.cart .variations select {
  min-height: 46px;
  border: 1px solid var(--eterno-sand-dark);
  border-radius: var(--radius-sm);
  background: var(--eterno-white);
}

body.single-product.woocommerce div.product .product_meta {
  display: none;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto {
  margin: 18px 0 14px;
  padding: 18px 0;
  border-width: 1px 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto .col-75 > p {
  font-size: 16px;
}

body.single-product .eterno-production-notice {
  margin: 14px 0 0;
  padding: 16px 18px;
  border: 1px solid rgba(155, 170, 150, 0.34);
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(155, 170, 150, 0.14), rgba(250, 247, 242, 0.96));
  box-shadow: var(--shadow-subtle);
}

body.single-product .woocommerce-tabs.wc-tabs-wrapper {
  clear: both;
  margin-top: clamp(20px, 4vw, 52px);
  padding-top: 0;
}

body.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin: 0 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
}

body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

body.single-product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.single-product .woocommerce-tabs ul.tabs li a {
  padding: 10px 0 !important;
  color: var(--eterno-taupe) !important;
  font-size: 13px;
  font-weight: 700 !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active {
  border-bottom-color: var(--eterno-sage) !important;
  background: transparent !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--eterno-sage-dark) !important;
}

body.single-product .woocommerce-tabs .panel {
  margin: 0 !important;
  padding: 12px 0 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.single-product .woocommerce-tabs .panel > h2:first-child {
  margin-top: 0;
  font-family: var(--font-editorial);
  font-size: clamp(24px, 2vw, 32px);
}

body.single-product .woocommerce-tabs .panel img {
  max-width: min(100%, 560px);
  height: auto;
}

body.single-product .related.products {
  clear: both;
  margin-top: clamp(44px, 6vw, 84px);
}

body.single-product .related.products > h2 {
  margin-bottom: 24px;
  color: var(--eterno-text);
  font-family: var(--font-editorial);
  font-size: clamp(27px, 2.4vw, 38px);
}

body.single-product .related.products ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

body.single-product .related.products ul.products::before,
body.single-product .related.products ul.products::after {
  display: none;
}

body.single-product .related.products ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

body.single-product .related.products ul.products:has(> li.product:only-child) {
  grid-template-columns: minmax(260px, 360px);
  justify-content: center;
}

body.single-product .related.products ul.products:has(> li.product:first-child:nth-last-child(2)) {
  grid-template-columns: repeat(2, minmax(260px, 360px));
  justify-content: center;
}

@media (max-width: 1100px) {
  body.single-product.woocommerce div.product div.images {
    width: 42%;
  }

  body.single-product.woocommerce div.product div.summary {
    width: 54%;
    padding: 0;
  }

  body.single-product .related.products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.single-product.woocommerce div.product div.images,
  body.single-product.woocommerce div.product div.summary {
    float: none !important;
    width: 100% !important;
    margin-bottom: 24px !important;
  }

  body.single-product.woocommerce div.product div.summary {
    padding: 0;
    border-radius: 0;
  }

  body.single-product.woocommerce div.product div.summary h1.product_title {
    font-size: 27px !important;
  }

  body.single-product.woocommerce div.product form.cart:not(.variations_form),
  body.single-product.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  body.single-product.woocommerce div.product form.cart .button {
    flex: 1;
    min-width: 160px;
  }

  body.single-product .woocommerce-tabs ul.tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 0 !important;
    border: 0 !important;
  }

  body.single-product .woocommerce-tabs ul.tabs li {
    padding: 0 !important;
    font-size: 12px !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
  }

  body.single-product .woocommerce-tabs .panel {
    padding: 12px 0 0 !important;
    border-radius: 0;
  }

  body.single-product .related.products ul.products {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* Carrinho Responsivo (Sem rolagem horizontal da tabela) */
@media (max-width: 767px) {
  .woocommerce-page table.cart {
    display: block !important;
    width: 100% !important;
    border: none !important;
  }
  .woocommerce-page table.cart thead {
    display: none !important;
  }
  .woocommerce-page table.cart tbody {
    display: block !important;
    width: 100% !important;
  }
  .woocommerce-page table.cart tr.cart_item {
    display: block !important;
    position: relative !important;
    padding: 14px 12px 14px 84px !important;
    border: 1px solid var(--eterno-border) !important;
    border-radius: var(--radius-md) !important;
    margin-bottom: 12px !important;
    background: #FFFFFF !important;
  }
  .woocommerce-page table.cart tr.cart_item td.product-thumbnail {
    display: block !important;
    position: absolute !important;
    top: 14px !important;
    left: 12px !important;
    width: 60px !important;
    padding: 0 !important;
    border: none !important;
  }
  .woocommerce-page table.cart tr.cart_item td.product-thumbnail img {
    width: 60px !important;
    height: 60px !important;
    border-radius: var(--radius-sm) !important;
    object-fit: cover !important;
  }
  .woocommerce-page table.cart tr.cart_item td.product-name {
    display: block !important;
    padding: 0 20px 4px 0 !important;
    border: none !important;
    font-size: 13px !important;
    font-weight: 700 !important;
  }
  .woocommerce-page table.cart tr.cart_item td.product-price,
  .woocommerce-page table.cart tr.cart_item td.product-quantity,
  .woocommerce-page table.cart tr.cart_item td.product-subtotal {
    display: inline-block !important;
    padding: 4px 10px 4px 0 !important;
    border: none !important;
    font-size: 12px !important;
  }
  .woocommerce-page table.cart tr.cart_item td.product-remove {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    display: block !important;
    padding: 0 !important;
    border: none !important;
  }
  .woocommerce-page table.cart td.actions {
    display: block !important;
    padding: 12px 0 !important;
    border: none !important;
  }
  .woocommerce-page table.cart td.actions .coupon {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
    margin-bottom: 12px !important;
  }
  .woocommerce-page table.cart td.actions .coupon input.input-text {
    width: 100% !important;
    height: 40px !important;
    font-size: 14px !important;
  }
  .woocommerce-page table.cart td.actions .coupon button.button,
  .woocommerce-page table.cart td.actions > button.button {
    width: 100% !important;
    height: 40px !important;
  }
  .cart-collaterals .cart_totals {
    width: 100% !important;
    float: none !important;
    border-radius: var(--radius-md) !important;
    padding: 16px !important;
    background-color: var(--eterno-offwhite) !important;
    border: 1px solid var(--eterno-border) !important;
  }
  .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
    width: 100% !important;
    text-align: center !important;
  }
}

/* Checkout Responsivo */
@media (max-width: 991px) {
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review,
  .woocommerce-checkout form.checkout #order_review_heading {
    width: 100% !important;
    float: none !important;
  }
  .woocommerce-checkout form.checkout #order_review {
    margin-top: 28px !important;
    padding: 20px !important;
    background: var(--eterno-offwhite) !important;
    border-radius: var(--radius-lg) !important;
    border: 1px solid var(--eterno-border) !important;
  }
  .woocommerce-checkout .woocommerce-input-wrapper {
    width: 100% !important;
  }
  .woocommerce-checkout input[type="text"],
  .woocommerce-checkout input[type="tel"],
  .woocommerce-checkout input[type="email"],
  .woocommerce-checkout select {
    font-size: 16px !important; /* Evita zoom automático no Safari iOS */
    height: 44px !important;
    border-radius: var(--radius-sm) !important;
    padding: 8px 12px !important;
  }
  .woocommerce-checkout #payment ul.payment_methods li {
    font-size: 12px !important;
  }
}

/* Ajustes Finos de Catálogo & Notices no Mobile */
@media (max-width: 767px) {
  .woocommerce-result-count,
  .woocommerce-ordering {
    float: none !important;
    display: block !important;
    width: 100% !important;
    margin-bottom: 12px !important;
    text-align: left !important;
  }
  .woocommerce-ordering select {
    width: 100% !important;
    height: 42px !important;
    border-radius: var(--radius-sm) !important;
    border: 1px solid var(--eterno-border) !important;
    background-color: var(--eterno-offwhite) !important;
    font-size: 13px !important;
    padding: 0 12px !important;
  }
  .woocommerce .woocommerce-pagination ul {
    display: flex !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    border: none !important;
    margin: 20px 0 !important;
  }
  .woocommerce .woocommerce-pagination ul li {
    border: none !important;
    margin: 0 !important;
  }
  .woocommerce .woocommerce-pagination ul li a,
  .woocommerce .woocommerce-pagination ul li span {
    padding: 8px 14px !important;
    border-radius: var(--radius-sm) !important;
    border: 1px solid var(--eterno-border) !important;
    font-size: 12px !important;
  }
  .woocommerce .woocommerce-pagination ul li span.current {
    background-color: var(--eterno-sage) !important;
    color: var(--eterno-white) !important;
    border-color: var(--eterno-sage) !important;
  }
}

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  border-radius: var(--radius-md) !important;
  padding: 14px 18px 14px 44px !important;
  font-size: 13px !important;
  margin-bottom: 20px !important;
  border-left: 4px solid var(--eterno-sage) !important;
  background-color: var(--eterno-offwhite) !important;
  color: var(--eterno-text) !important;
}
.woocommerce-error {
  border-left-color: var(--eterno-rose) !important;
}

/* Link de título de cabeçalho mobile */
.eterno-mobile-heading-link {
  color: inherit;
  text-decoration: none;
  display: block;
}

/* Links de Subcategorias no Menu Mobile */
.eterno-mobile-sub-link {
  display: flex !important;
  align-items: center;
  min-height: 38px;
  padding: 6px 12px 6px 22px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: var(--eterno-taupe) !important;
  border-radius: var(--radius-sm);
  text-decoration: none;
}
.eterno-mobile-sub-link:hover, 
.eterno-mobile-sub-link:active {
  color: var(--eterno-text) !important;
  background-color: var(--eterno-offwhite) !important;
}
.eterno-mobile-group {
  border-bottom: 1px solid var(--eterno-border);
  padding-bottom: 4px;
  margin-bottom: 4px;
}
.eterno-mobile-group:last-child {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
}

.eterno-mobile-catalog-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.eterno-mobile-catalog-toggle svg {
  transition: transform 0.2s ease;
}

.eterno-mobile-catalog-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.eterno-mobile-catalog-panel {
  padding: 4px 0 8px;
}

.eterno-mobile-catalog-panel[hidden] {
  display: none;
}

.eterno-mobile-catalog-all,
.eterno-mobile-catalog-link {
  display: block;
  min-height: 38px;
  padding: 9px 12px;
  color: var(--eterno-taupe);
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
}

.eterno-mobile-catalog-all {
  margin: 2px 0 5px;
  color: var(--eterno-text);
  background: var(--eterno-offwhite);
  font-weight: 800;
}

.eterno-mobile-catalog-link.depth-0 {
  padding-left: 14px;
  color: var(--eterno-text);
  font-weight: 700;
}

.eterno-mobile-catalog-link.depth-1 {
  padding-left: 28px;
}

.eterno-mobile-catalog-link.depth-2 {
  padding-left: 42px;
}

.eterno-mobile-catalog-link.depth-3,
.eterno-mobile-catalog-link.depth-4 {
  padding-left: 54px;
}

.eterno-mobile-catalog-all:hover,
.eterno-mobile-catalog-all:focus-visible,
.eterno-mobile-catalog-link:hover,
.eterno-mobile-catalog-link:focus-visible {
  color: var(--eterno-sage-dark);
  background: var(--eterno-offwhite);
}

/* ==========================================================================
   Banners da Home (Estilos Visuais de Apresentação no Tema)
   ========================================================================== */
.eterno-banner-section {
  padding: 16px 0 28px;
  background-color: transparent;
}

.eterno-banner-slider-container {
  width: 100%;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-elevated);
  border: 1px solid var(--eterno-border);
  background-color: var(--eterno-white);
  position: relative;
}
@media (min-width: 768px) {
  .eterno-banner-slider-container {
    border-radius: var(--radius-xl);
  }
}

.eterno-banner-slide {
  flex: 0 0 100%;
  width: 100%;
  position: relative;
  scroll-snap-align: start;
}

.eterno-banner-picture {
  display: block;
  width: 100%;
}

.eterno-banner-img {
  width: 100%;
  height: auto;
  display: block;
}

.eterno-banner-full-link {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10;
  display: block;
}

.eterno-banner-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  display: flex;
  padding: 24px 20px;
  background: linear-gradient(90deg, rgba(43, 40, 38, 0.45) 0%, rgba(43, 40, 38, 0.1) 60%, transparent 100%);
  pointer-events: none;
}
.eterno-banner-overlay.no-text-overlay {
  background: transparent !important;
}

.eterno-banner-content {
  pointer-events: auto;
  max-width: 540px;
}

.eterno-banner-overlay.pos-v-top {
  align-items: flex-start;
  padding-top: 32px;
}
.eterno-banner-overlay.pos-v-center {
  align-items: center;
}
.eterno-banner-overlay.pos-v-bottom {
  align-items: flex-end;
  padding-bottom: 32px;
}

.eterno-banner-overlay.pos-h-left {
  justify-content: flex-start;
  text-align: left;
}
.eterno-banner-overlay.pos-h-center {
  justify-content: center;
  text-align: center;
}
.eterno-banner-overlay.pos-h-right {
  justify-content: flex-end;
  text-align: right;
}

@media (min-width: 768px) {
  .eterno-banner-overlay {
    padding: 40px 48px;
  }
  .eterno-banner-overlay.pos-v-bottom {
    padding-bottom: 44px;
  }
}

.eterno-banner-title {
  font-size: clamp(22px, 3.8vw, 42px);
  font-weight: 700;
  line-height: 1.15;
  color: #FFFFFF;
  margin: 0 0 10px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.35);
}

.eterno-banner-desc {
  font-size: clamp(12px, 1.3vw, 15px);
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.6;
  margin: 0 0 18px;
  text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

.eterno-banner-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
@media (max-width: 500px) {
  .eterno-banner-actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .eterno-banner-actions .eterno-btn-primary,
  .eterno-banner-actions .eterno-btn-secondary {
    width: 100%;
  }
}

/* Link no fluxo normal para banners de Arte Pronta */
.eterno-banner-graphic-link {
  display: block;
  width: 100%;
  height: auto;
  text-decoration: none;
  line-height: 0;
}

/* ==========================================================================
   Timer Regressivo (apresentação visual dos dados fornecidos pelo Core)
   ========================================================================== */
.eterno-countdown-section {
  padding: 0 0 28px;
  background-color: transparent;
}

.eterno-countdown-section[hidden] {
  display: none !important;
}

.eterno-countdown-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  padding: 24px;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-lg);
  background-color: var(--eterno-offwhite);
  box-shadow: var(--shadow-subtle);
}

.eterno-countdown-copy {
  min-width: 0;
}

.eterno-countdown-title {
  margin: 0;
  color: var(--eterno-text);
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.15;
}

.eterno-countdown-description {
  max-width: 620px;
  margin: 8px 0 0;
  color: var(--eterno-taupe);
  font-size: 13px;
  line-height: 1.6;
}

.eterno-countdown-action {
  width: fit-content;
  margin-top: 16px;
}

.eterno-countdown-clock {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  gap: 6px;
  align-items: center;
  min-width: 0;
}

.eterno-countdown-unit {
  min-width: 0;
  padding: 12px 6px;
  text-align: center;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-md);
  background-color: var(--eterno-white);
}

.eterno-countdown-unit strong {
  display: block;
  color: var(--eterno-text);
  font-family: var(--font-editorial);
  font-size: clamp(22px, 5vw, 34px);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.eterno-countdown-unit span {
  display: block;
  margin-top: 7px;
  color: var(--eterno-taupe);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.eterno-countdown-separator {
  color: var(--eterno-sage-dark);
  font-family: var(--font-editorial);
  font-size: 26px;
  font-weight: 700;
}

.eterno-countdown-section.device-mobile {
  display: none;
}

@media (min-width: 900px) {
  .eterno-countdown-card {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 0.85fr);
    padding: 28px 32px;
  }
}

@media (max-width: 767px) {
  .eterno-countdown-section.device-desktop {
    display: none;
  }

  .eterno-countdown-section.device-mobile {
    display: block;
  }

  .eterno-countdown-card {
    gap: 18px;
    padding: 20px 14px;
    border-radius: var(--radius-md);
  }

  .eterno-countdown-action {
    width: 100%;
  }

  .eterno-countdown-clock {
    gap: 3px;
  }

  .eterno-countdown-unit {
    padding: 10px 3px;
    border-radius: var(--radius-sm);
  }

  .eterno-countdown-unit span {
    font-size: 8px;
    letter-spacing: 0.02em;
  }

  .eterno-countdown-separator {
    font-size: 20px;
  }
}

/* ==========================================================================
   Popup Promocional (apresentação visual dos dados fornecidos pelo Core)
   ========================================================================== */
body.eterno-popup-open {
  overflow: hidden;
}

.eterno-popup[hidden] {
  display: none !important;
}

.eterno-popup {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: 20px;
}

.eterno-popup-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(43, 40, 38, 0.62);
  cursor: default;
  opacity: 0;
  transition: opacity 0.22s ease;
}

.eterno-popup-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 760px);
  max-height: min(88vh, 720px);
  overflow: auto;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-xl);
  background: var(--eterno-white);
  box-shadow: 0 24px 80px rgba(43, 40, 38, 0.28);
  opacity: 0;
  transform: translateY(18px) scale(0.98);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.eterno-popup.is-open .eterno-popup-backdrop,
.eterno-popup.is-open .eterno-popup-dialog {
  opacity: 1;
}

.eterno-popup.is-open .eterno-popup-dialog {
  transform: translateY(0) scale(1);
}

.eterno-popup-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--eterno-border);
  border-radius: 50%;
  background: var(--eterno-white);
  color: var(--eterno-text);
  box-shadow: var(--shadow-subtle);
  cursor: pointer;
}

.eterno-popup-close:hover,
.eterno-popup-close:focus-visible {
  border-color: var(--eterno-sage);
  color: var(--eterno-sage-dark);
}

.eterno-popup-media {
  min-height: 240px;
  background: var(--eterno-offwhite);
}

.eterno-popup-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 240px;
  max-height: 340px;
  object-fit: cover;
}

.eterno-popup-content {
  padding: 34px;
}

.eterno-popup-eyebrow {
  display: block;
  margin-bottom: 9px;
  color: var(--eterno-sage-dark);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.eterno-popup-title {
  margin: 0;
  color: var(--eterno-text);
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.12;
}

.eterno-popup-description {
  margin: 12px 0 0;
  color: var(--eterno-taupe);
  font-size: 14px;
  line-height: 1.65;
}

.eterno-popup-coupon {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 20px;
  padding: 13px 16px;
  border: 1px dashed var(--eterno-sage-dark);
  border-radius: var(--radius-md);
  background: var(--eterno-offwhite);
  color: var(--eterno-text);
  cursor: pointer;
}

.eterno-popup-coupon span {
  color: var(--eterno-taupe);
  font-size: 11px;
  font-weight: 700;
}

.eterno-popup-coupon strong {
  margin-left: auto;
  font-size: 14px;
  letter-spacing: 0.08em;
}

.eterno-popup-action {
  width: 100%;
  margin-top: 20px;
}

.eterno-popup.device-mobile {
  display: none;
}

@media (min-width: 768px) {
  .eterno-popup-dialog.has-image {
    display: grid;
    grid-template-columns: minmax(270px, 0.85fr) minmax(0, 1.15fr);
    width: min(100%, 860px);
  }

  .eterno-popup-dialog.has-image .eterno-popup-media img {
    min-height: 100%;
    max-height: none;
  }

  .eterno-popup-dialog.has-image .eterno-popup-content {
    align-self: center;
  }
}

@media (max-width: 767px) {
  .eterno-popup {
    align-items: end;
    padding: 12px;
  }

  .eterno-popup.device-desktop {
    display: none;
  }

  .eterno-popup.device-mobile {
    display: grid;
  }

  .eterno-popup-dialog {
    max-height: 90vh;
    border-radius: var(--radius-lg);
  }

  .eterno-popup-media,
  .eterno-popup-media img {
    min-height: 180px;
    max-height: 230px;
  }

  .eterno-popup-content {
    padding: 26px 22px 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .eterno-popup-backdrop,
  .eterno-popup-dialog {
    transition: none;
  }
}

/* Top Bar - Classes Semânticas de Dispositivo e Link */
.eterno-seasonal-campaign {
  padding: 14px 0 0;
  background: var(--eterno-white);
}

.eterno-seasonal-campaign-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-md);
  background: var(--eterno-offwhite);
  box-shadow: var(--shadow-subtle);
}

.eterno-seasonal-campaign.accent-sage .eterno-seasonal-campaign-card {
  background: linear-gradient(135deg, rgba(155, 170, 150, 0.17), var(--eterno-offwhite));
  border-color: rgba(155, 170, 150, 0.34);
}

.eterno-seasonal-campaign.accent-rose .eterno-seasonal-campaign-card {
  background: linear-gradient(135deg, rgba(194, 161, 158, 0.18), var(--eterno-offwhite));
  border-color: rgba(194, 161, 158, 0.36);
}

.eterno-seasonal-campaign.accent-sand .eterno-seasonal-campaign-card {
  background: linear-gradient(135deg, var(--eterno-sand), var(--eterno-offwhite));
  border-color: var(--eterno-sand-dark);
}

.eterno-seasonal-campaign-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: var(--eterno-sage-dark);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
}

.accent-rose .eterno-seasonal-campaign-icon {
  color: var(--eterno-rose);
}

.accent-sand .eterno-seasonal-campaign-icon {
  color: var(--eterno-taupe);
}

.eterno-seasonal-campaign-icon svg {
  width: 19px;
  height: 19px;
  stroke-width: 1.8;
}

.eterno-seasonal-campaign-copy {
  min-width: 0;
}

.eterno-seasonal-campaign-eyebrow {
  display: block;
  margin-bottom: 2px;
  color: var(--eterno-sage-dark);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
}

.accent-rose .eterno-seasonal-campaign-eyebrow {
  color: var(--eterno-rose);
}

.accent-sand .eterno-seasonal-campaign-eyebrow {
  color: var(--eterno-taupe);
}

.eterno-seasonal-campaign-title {
  display: block;
  color: var(--eterno-text);
  font-size: 17px;
  line-height: 1.25;
}

.eterno-seasonal-campaign-copy p {
  margin: 3px 0 0;
  color: var(--eterno-taupe);
  font-size: 11px;
  line-height: 1.5;
}

.eterno-seasonal-campaign-badge {
  padding: 7px 11px;
  color: var(--eterno-taupe);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(104, 93, 86, 0.12);
  border-radius: var(--radius-pill);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.eterno-seasonal-campaign-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 9px 15px;
  color: var(--eterno-white);
  background: var(--eterno-sage);
  border-radius: var(--radius-pill);
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.accent-rose .eterno-seasonal-campaign-link {
  background: var(--eterno-rose);
}

.accent-sand .eterno-seasonal-campaign-link {
  color: var(--eterno-white);
  background: var(--eterno-taupe);
}

.eterno-seasonal-campaign-link:hover,
.eterno-seasonal-campaign-link:focus-visible {
  color: var(--eterno-white);
  filter: brightness(0.92);
  transform: translateY(-1px);
}

.eterno-seasonal-campaign-link svg {
  width: 14px;
  height: 14px;
}

.eterno-seasonal-campaign.device-mobile {
  display: none;
}

@media (max-width: 767px) {
  .eterno-seasonal-campaign {
    padding-top: 10px;
  }

  .eterno-seasonal-campaign.device-desktop {
    display: none;
  }

  .eterno-seasonal-campaign.device-mobile {
    display: block;
  }

  .eterno-seasonal-campaign-card {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 11px 12px;
    padding: 14px;
    border-radius: var(--radius-sm);
  }

  .eterno-seasonal-campaign-icon {
    width: 38px;
    height: 38px;
  }

  .eterno-seasonal-campaign-title {
    font-size: 15px;
  }

  .eterno-seasonal-campaign-badge,
  .eterno-seasonal-campaign-link {
    grid-column: 2;
    justify-self: start;
  }

  .eterno-seasonal-campaign-link {
    width: 100%;
  }
}

.eterno-top-bar-link {
  text-decoration: underline;
  margin-left: 6px;
  color: var(--eterno-offwhite);
  font-weight: 700;
  transition: color 0.2s ease;
}
.eterno-top-bar-link:hover {
  color: var(--eterno-white);
}

.eterno-top-bar-text.show-desktop {
  display: inline;
}
.eterno-top-bar-text.hide-desktop {
  display: none;
}
.eterno-top-bar-text.show-mobile {
  display: none;
}
.eterno-top-bar-text.hide-mobile {
  display: inline;
}

@media (max-width: 767px) {
  .eterno-top-bar-text.show-desktop {
    display: none !important;
  }
  .eterno-top-bar-text.hide-desktop {
    display: inline !important;
  }
  .eterno-top-bar-text.show-mobile {
    display: inline !important;
  }
  .eterno-top-bar-text.hide-mobile {
    display: none !important;
  }
}

/* Estrutura das paginas internas e fluxo de compra */
.eterno-content-frame {
  width: 100%;
  max-width: 800px;
  margin-right: auto;
  margin-left: auto;
}

.eterno-cart-frame {
  max-width: 1240px;
}

.eterno-checkout-frame {
  max-width: 1280px;
}

body.woocommerce-checkout .eterno-page-shell {
  padding-top: clamp(28px, 4vw, 52px);
  padding-bottom: clamp(56px, 7vw, 92px);
}

body.woocommerce-checkout .entry-header {
  margin-bottom: clamp(22px, 3vw, 34px) !important;
}

body.woocommerce-checkout .entry-title {
  font-size: clamp(30px, 3vw, 42px) !important;
}

body.woocommerce-checkout .entry-content {
  font-size: 14px !important;
  line-height: 1.6 !important;
}

/* Checkout em blocos: formulario amplo e resumo legivel no desktop. */
body.woocommerce-checkout .wp-block-woocommerce-checkout {
  margin: 0;
}

body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout {
  align-items: start;
  gap: clamp(28px, 4vw, 56px);
}

body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
  margin: 0;
}

body.woocommerce-checkout .wc-block-components-checkout-step {
  margin: 0 0 18px !important;
  padding: clamp(20px, 2.4vw, 28px) !important;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-md);
  background: var(--eterno-white);
}

body.woocommerce-checkout .wc-block-components-checkout-step__heading {
  margin-bottom: 18px !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-title {
  color: var(--eterno-text);
  font-family: var(--font-editorial);
  font-weight: 700;
}

body.woocommerce-checkout .wc-block-components-checkout-step__description {
  color: var(--eterno-taupe);
  font-size: 12px;
  line-height: 1.5;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input {
  min-height: 50px;
  border-color: var(--eterno-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--eterno-white) !important;
}

body.woocommerce-checkout .wc-block-checkout__use-address-for-billing {
  margin: 6px 0 0;
  padding: 14px 16px;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-sm);
  background: var(--eterno-offwhite);
}

body.woocommerce-checkout .wc-block-checkout__use-address-for-billing label {
  color: var(--eterno-text);
  font-size: 13px;
  font-weight: 600;
}

body.woocommerce-checkout .wc-block-checkout__sidebar {
  padding: clamp(20px, 2.4vw, 28px) !important;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-lg);
  background: var(--eterno-offwhite);
  box-shadow: var(--shadow-subtle);
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary {
  padding: 0 !important;
  border: 0 !important;
  background: transparent;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item {
  padding: 16px 0 !important;
  border-bottom: 1px solid var(--eterno-border);
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image {
  width: 76px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
  width: 64px !important;
  height: 64px !important;
  border-radius: var(--radius-sm);
  object-fit: cover;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description {
  min-width: 0;
  padding-left: 10px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
  color: var(--eterno-text) !important;
  font-family: var(--font-editorial);
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

/* A descricao comercial completa pertence a pagina do produto, nao ao resumo. */
body.woocommerce-checkout .wc-block-components-product-metadata__description {
  display: none !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
  padding: 16px 0 !important;
  border-color: var(--eterno-border) !important;
}

body.woocommerce-checkout .eterno-checkout-payment-shortcut {
  margin-top: 10px;
}

body.woocommerce-checkout .eterno-checkout-payment-shortcut[hidden] {
  display: none !important;
}

body.woocommerce-checkout .eterno-checkout-payment-shortcut__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  padding: 10px 18px;
  border: 0;
  border-radius: var(--radius-pill);
  color: var(--eterno-white);
  background: var(--eterno-sage);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

body.woocommerce-checkout .eterno-checkout-payment-shortcut__button:hover,
body.woocommerce-checkout .eterno-checkout-payment-shortcut__button:focus-visible {
  background: var(--eterno-sage-dark);
  transform: translateY(-1px);
}

body.woocommerce-checkout .eterno-checkout-shipping-slot {
  margin-top: 10px;
  padding-top: 20px;
  border-top: 1px solid var(--eterno-border);
}

body.woocommerce-checkout .eterno-checkout-shipping-slot[hidden] {
  display: none !important;
}

body.woocommerce-checkout .eterno-checkout-shipping-title {
  margin: 0 0 14px;
  color: var(--eterno-text);
  font-family: var(--font-editorial);
  font-size: 18px;
  font-weight: 700;
}

body.woocommerce-checkout .eterno-checkout-shipping-rates {
  display: grid;
  gap: 8px;
}

body.woocommerce-checkout .eterno-checkout-shipping-rate {
  position: relative;
  width: 100%;
  min-height: 46px;
  padding: 11px 12px 11px 34px;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-sm);
  color: var(--eterno-text);
  background: var(--eterno-white);
  font: inherit;
  font-size: 11px;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
}

body.woocommerce-checkout .eterno-checkout-shipping-rate::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 12px;
  width: 12px;
  height: 12px;
  border: 1px solid var(--eterno-taupe);
  border-radius: 50%;
  transform: translateY(-50%);
}

body.woocommerce-checkout .eterno-checkout-shipping-rate.is-selected {
  border-color: var(--eterno-sage);
  box-shadow: inset 3px 0 0 var(--eterno-sage);
}

body.woocommerce-checkout .eterno-checkout-shipping-rate.is-selected::before {
  border: 4px solid var(--eterno-sage);
  background: var(--eterno-white);
}

body.woocommerce-checkout .eterno-checkout-shipping-toggle {
  display: none;
}

body.woocommerce-checkout .eterno-checkout-shipping-slot .eterno-checkout-shipping-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  margin-top: 12px;
  padding: 8px 14px;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-pill);
  color: var(--eterno-text);
  background: var(--eterno-white);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

body.woocommerce-checkout .eterno-checkout-shipping-slot .eterno-checkout-shipping-toggle:hover,
body.woocommerce-checkout .eterno-checkout-shipping-slot .eterno-checkout-shipping-toggle:focus-visible {
  border-color: var(--eterno-sage);
  color: var(--eterno-sage-dark);
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  min-height: 54px;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  background: var(--eterno-sage) !important;
  color: var(--eterno-white) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
  background: var(--eterno-sage-dark) !important;
  transform: translateY(-1px);
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option {
  border-color: var(--eterno-border) !important;
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  background: var(--eterno-offwhite) !important;
  box-shadow: inset 3px 0 0 var(--eterno-sage);
}

@media (min-width: 1000px) {
  body.woocommerce-checkout .wc-block-checkout__main .eterno-checkout-shipping-source {
    display: none !important;
  }

  body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.7fr) minmax(380px, 0.8fr);
  }

  body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout > .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout > .wc-block-checkout__sidebar {
    width: auto !important;
  }

  body.woocommerce-checkout .wc-block-checkout__sidebar {
    position: sticky;
    top: 150px;
  }
}

@media (max-width: 999px) {
  body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout {
    display: block !important;
  }

  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout__sidebar {
    width: 100% !important;
  }

  body.woocommerce-checkout .wc-block-checkout__sidebar {
    margin-top: 28px;
  }
}

@media (max-width: 767px) {
  body.woocommerce-checkout .eterno-page-shell {
    padding-top: 24px;
  }

  body.woocommerce-checkout .wc-block-components-checkout-step,
  body.woocommerce-checkout .wc-block-checkout__sidebar {
    padding: 18px !important;
    border-radius: var(--radius-md);
  }

  body.woocommerce-checkout .wc-block-components-order-summary-item__image {
    width: 66px !important;
  }

  body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
    width: 56px !important;
    height: 56px !important;
  }
}

body.woocommerce-cart .eterno-page-shell {
  padding-top: clamp(28px, 4vw, 58px);
  padding-bottom: clamp(56px, 7vw, 96px);
}

body.woocommerce-cart .entry-header {
  margin-bottom: clamp(22px, 3vw, 36px) !important;
}

body.woocommerce-cart .entry-title {
  font-size: clamp(30px, 3vw, 42px) !important;
}

body.woocommerce-cart .entry-content {
  font-size: 14px !important;
  line-height: 1.6 !important;
}

/* Carrinho em blocos (WooCommerce atual) */
body.woocommerce-cart .wp-block-woocommerce-cart {
  margin: 0;
}

body.woocommerce-cart .wc-block-components-sidebar-layout {
  align-items: start;
  gap: clamp(28px, 4vw, 56px);
}

body.woocommerce-cart .wc-block-components-main,
body.woocommerce-cart .wc-block-components-sidebar {
  margin: 0;
}

body.woocommerce-cart .wc-block-cart-items {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

body.woocommerce-cart .wc-block-cart-items th {
  padding: 0 16px 6px !important;
  border: 0 !important;
  color: var(--eterno-taupe);
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row td {
  padding: 26px 16px !important;
  border: 0 !important;
  border-top: 0 !important;
  background: transparent;
  vertical-align: middle !important;
}

/* Uma unica divisoria por produto evita linhas curtas sob imagem ou preco. */
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row {
  box-shadow: inset 0 -1px 0 var(--eterno-border);
}

body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row:first-child td {
  padding-top: 20px !important;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row:last-child td {
  padding-bottom: 24px !important;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row td:first-child {
  border-left: 0 !important;
  border-radius: 0;
}

body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row td:last-child {
  border-right: 0 !important;
  border-radius: 0;
}

body.woocommerce-cart .wc-block-cart-item__total {
  align-self: center;
  min-width: 110px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper,
body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-cart-item__image {
  width: 154px !important;
}

body.woocommerce-cart .wc-block-cart-item__image img {
  width: 132px !important;
  height: 132px !important;
  border-radius: var(--radius-sm);
  object-fit: cover;
}

body.woocommerce-cart .wc-block-components-product-name {
  color: var(--eterno-text) !important;
  font-family: var(--font-editorial);
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-cart .wc-block-components-product-details {
  margin-top: 8px;
  color: var(--eterno-taupe);
  font-size: 12px;
}

body.woocommerce-cart .wc-block-components-quantity-selector {
  min-height: 38px;
  border-color: var(--eterno-border) !important;
  border-radius: var(--radius-pill) !important;
  background: var(--eterno-offwhite);
}

body.woocommerce-cart .wc-block-cart-item__remove-link {
  color: var(--eterno-taupe) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
  color: var(--eterno-rose) !important;
}

body.woocommerce-cart .wc-block-cart__sidebar {
  padding: clamp(20px, 2.4vw, 30px) !important;
  border: 1px solid var(--eterno-border);
  border-radius: var(--radius-lg);
  background: var(--eterno-offwhite);
  box-shadow: var(--shadow-subtle);
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper {
  padding: 18px 0 !important;
  border-color: var(--eterno-border) !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-title,
body.woocommerce-cart .wc-block-cart__sidebar h2 {
  font-family: var(--font-editorial);
  color: var(--eterno-text);
}

/* Calculador compacto: antes da consulta mostra o formulario; depois, CEP e menor frete. */
body.woocommerce-cart .woo-better-info-block {
  margin-bottom: 4px;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

body.woocommerce-cart .woo-better-current-postcode-block {
  min-height: 48px;
}

body.woocommerce-cart .woo-better-content-block {
  max-width: 100%;
}

body.woocommerce-cart .eterno-cart-shipping-details {
  width: 100% !important;
  max-width: none !important;
  margin: 18px 0 0 !important;
}

body.woocommerce-cart .eterno-cart-shipping-details .woo-better-current-postcode-block {
  margin-top: 0;
}

body.woocommerce-cart .eterno-cart-shipping-details .woo-better-toggle-button {
  display: none !important;
}

body.woocommerce-cart .eterno-cart-shipping-details .woo-better-content-block {
  display: block !important;
  height: auto !important;
  padding: 14px !important;
  border-top: 0 !important;
}

body.woocommerce-cart .eterno-cart-shipping-details .woo-better-cart-name,
body.woocommerce-cart .eterno-cart-shipping-details .woo-better-cart-quantity,
body.woocommerce-cart .eterno-cart-shipping-details .woo-better-separator,
body.woocommerce-cart .eterno-cart-shipping-details .woo-better-update-section {
  display: none !important;
}

body.woocommerce-cart .eterno-cart-shipping-details .woo-better-shipping-methods {
  margin-top: 0 !important;
}

body.woocommerce-cart .eterno-cart-shipping-details .woo-better-shipping-methods > p {
  margin-bottom: 6px !important;
  color: var(--eterno-taupe);
  font-size: 11px !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

body.woocommerce-cart .eterno-cart-shipping-details .eterno-cheapest-shipping-rate {
  color: var(--eterno-text);
  font-size: 12px !important;
  line-height: 1.45;
}

body.woocommerce-cart .wc-block-cart__submit-container {
  padding-top: 18px;
}

body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-components-button:not(.is-link) {
  min-height: 52px;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  background: var(--eterno-sage) !important;
  color: var(--eterno-white) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-components-button:not(.is-link):hover {
  background: var(--eterno-sage-dark) !important;
  transform: translateY(-1px);
}

@media (min-width: 1000px) {
  body.woocommerce-cart .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.65fr) minmax(360px, 0.75fr);
  }

  body.woocommerce-cart .wc-block-components-sidebar-layout > .wc-block-components-main,
  body.woocommerce-cart .wc-block-components-sidebar-layout > .wc-block-components-sidebar {
    width: auto !important;
  }

  body.woocommerce-cart .wc-block-cart__sidebar {
    position: sticky;
    top: 150px;
  }
}

@media (max-width: 999px) {
  body.woocommerce-cart .wc-block-components-sidebar-layout {
    display: block !important;
  }

  body.woocommerce-cart .wc-block-components-main,
  body.woocommerce-cart .wc-block-components-sidebar {
    width: 100% !important;
  }

  body.woocommerce-cart .wc-block-cart__sidebar {
    margin-top: 28px;
  }
}

@media (max-width: 767px) {
  body.woocommerce-cart .eterno-page-shell {
    padding-top: 24px;
  }

  body.woocommerce-cart .wc-block-cart-items {
    border-spacing: 0 12px !important;
  }

  body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row {
    display: grid !important;
    grid-template-columns: 96px minmax(0, 1fr);
    position: relative;
    border: 1px solid var(--eterno-border) !important;
    border-radius: var(--radius-md);
    background: var(--eterno-white);
    overflow: hidden;
    box-shadow: none;
  }

  body.woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row td {
    display: block !important;
    width: auto !important;
    padding: 14px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent;
  }

  body.woocommerce-cart .wc-block-cart-item__image {
    grid-row: 1 / span 2;
    padding-right: 0 !important;
  }

  body.woocommerce-cart .wc-block-cart-item__image img {
    width: 82px !important;
    height: 96px !important;
  }

  body.woocommerce-cart .wc-block-cart-item__product {
    padding-bottom: 4px !important;
  }

  body.woocommerce-cart .wc-block-cart-item__total {
    grid-column: 2;
    padding-top: 4px !important;
    text-align: left !important;
  }

  body.woocommerce-cart .wc-block-components-product-name {
    padding-right: 24px;
    font-size: 15px !important;
  }

  body.woocommerce-cart .wc-block-cart__sidebar {
    padding: 18px !important;
    border-radius: var(--radius-md);
  }

  body.woocommerce-cart .eterno-cart-shipping-details {
    margin-top: 14px !important;
  }
}
