/* ==========================================================================
   Components — Oficina do Livro Editora
   Navbar · Footer · Buttons · Cards · Carousel · Forms · Badges · FAQ
   ========================================================================== */

/* ══════════════════════════════════════════════════════════════════════════
   NAVBAR
   ══════════════════════════════════════════════════════════════════════════ */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--navbar-h);
  z-index: var(--z-sticky);
  transition: background-color var(--e-base), box-shadow var(--e-base);
}

.navbar--transparent {
  background-color: transparent;
}

.navbar--scrolled {
  background-color: var(--clr-white);
  box-shadow: 0 2px 20px rgba(0,0,0,0.10);
  border-bottom: 3px solid var(--clr-gold);
}

.navbar__container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  gap: var(--sp-8);
}

/* Logo */
.navbar__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  z-index: 2;
}

/* Logo imagem — transparente: inverte para branco sobre hero escuro */
.navbar__logo-img {
  height: 48px !important;   /* !important: anula reset de img do WooCommerce */
  width: auto !important;
  max-width: none !important; /* evita que WooCommerce limite a 100% */
  display: block;
  transition: filter var(--e-base);
}

.navbar--transparent .navbar__logo-img {
  filter: brightness(0) invert(1);
}

.navbar--scrolled .navbar__logo-img,
.navbar:not(.navbar--transparent) .navbar__logo-img {
  filter: none;
}

/* Wordmark (fallback sem logo cadastrado) */
.navbar__logo-wordmark {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  line-height: 1;
  letter-spacing: var(--ls-tight);
  color: var(--clr-white);
  transition: color var(--e-base);
}

.navbar__logo-wordmark span {
  color: var(--clr-gold);
}

.navbar--scrolled .navbar__logo-wordmark,
.navbar:not(.navbar--transparent) .navbar__logo-wordmark {
  color: var(--clr-navy);
}

/* Nav links */
.navbar__nav {
  display: flex;
  align-items: center;
  flex: 1;
  justify-content: center;
}

.navbar__list {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
}

.navbar__link {
  position: relative;
  font-size: var(--fs-sm);
  font-weight: 500;
  padding: var(--sp-2) var(--sp-3);
  color: rgba(255,255,255,0.90);
  border-radius: var(--r-sm);
  transition: color var(--e-fast);
  white-space: nowrap;
}

.navbar__link::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: var(--sp-3);
  right: var(--sp-3);
  height: 2px;
  background-color: var(--clr-gold);
  border-radius: var(--r-full);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--e-base);
}

.navbar__link:hover {
  color: var(--clr-gold-light);
}

.navbar__link:hover::after,
.navbar__link.is-active::after {
  transform: scaleX(1);
}

.navbar__link.is-active {
  color: var(--clr-gold-light);
}

.navbar--scrolled .navbar__link,
.navbar:not(.navbar--transparent) .navbar__link {
  color: var(--clr-navy);
}

.navbar--scrolled .navbar__link:hover,
.navbar--scrolled .navbar__link.is-active,
.navbar:not(.navbar--transparent) .navbar__link:hover,
.navbar:not(.navbar--transparent) .navbar__link.is-active {
  color: var(--clr-navy-dark);
}

/* Dropdown */
.navbar__item {
  position: relative;
}

.navbar__dropdown {
  position: absolute;
  top: calc(100% + var(--sp-3));
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--clr-white);
  border: 1px solid var(--clr-gray-100);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-xl);
  padding: var(--sp-2) 0;
  min-width: 220px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--e-fast), transform var(--e-fast), visibility var(--e-fast);
  transform: translateX(-50%) translateY(8px);
}

/* Ponte transparente que cobre o gap entre o link e o dropdown */
.navbar__dropdown::before {
  content: '';
  position: absolute;
  top: calc(-1 * var(--sp-3) - 1px);
  left: 0;
  right: 0;
  height: calc(var(--sp-3) + 1px);
}

.navbar__item:hover .navbar__dropdown,
.navbar__item:focus-within .navbar__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.navbar__dropdown-link {
  display: block;
  padding: var(--sp-3) var(--sp-5);
  font-size: var(--fs-sm);
  color: var(--clr-gray-700);
  font-weight: 500;
  transition: background-color var(--e-fast), color var(--e-fast);
}

.navbar__dropdown-link:hover {
  background-color: var(--clr-cream);
  color: var(--clr-gold-dark);
}

.navbar__dropdown-link--highlight {
  color: var(--clr-gold-dark);
  font-weight: 600;
  border-top: 1px solid var(--clr-gray-100);
  margin-top: var(--sp-2);
}

/* Navbar actions */
.navbar__actions {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  flex-shrink: 0;
}

/* Hamburger */
.navbar__hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: var(--sp-2);
  border-radius: var(--r-sm);
  cursor: pointer;
  z-index: 2;
}

.navbar__hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--clr-white);
  border-radius: var(--r-full);
  transition: transform var(--e-base), opacity var(--e-base);
}

.navbar--scrolled .navbar__hamburger span,
.navbar:not(.navbar--transparent) .navbar__hamburger span {
  background-color: var(--clr-black);
}

.navbar__hamburger.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.navbar__hamburger.is-open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.navbar__hamburger.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile nav */
@media (max-width: 900px) {
  .navbar__hamburger { display: flex; }

  .navbar__nav {
    position: fixed;
    inset: 0;
    background-color: var(--clr-black);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--sp-6);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--e-base), visibility var(--e-base);
    z-index: 1;
  }

  .navbar__nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .navbar__list {
    flex-direction: column;
    gap: var(--sp-2);
    text-align: center;
  }

  .navbar__link {
    font-size: var(--fs-2xl);
    color: var(--clr-white);
    padding: var(--sp-3) var(--sp-6);
    font-family: var(--ff-heading);
    font-weight: 700;
  }

  .navbar__link::after { display: none; }

  .navbar__link:hover { color: var(--clr-gold); }

  .navbar__dropdown {
    static: relative;
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    background: transparent;
    box-shadow: none;
    border: none;
    padding: 0;
  }

  .navbar__dropdown-link {
    color: var(--clr-gray-300);
    font-size: var(--fs-md);
    text-align: center;
  }

  .navbar__dropdown-link:hover { background: none; color: var(--clr-gold); }

  .navbar__actions .btn { display: none; }
}


/* ══════════════════════════════════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: 0.75em 1.875em;
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  border-radius: var(--r-full);
  border: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background-color var(--e-fast),
    color var(--e-fast),
    border-color var(--e-fast),
    transform var(--e-spring),
    box-shadow var(--e-fast);
  text-decoration: none;
  line-height: 1;
}

.btn:hover  { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

/* Primary — Amarelo */
.btn--gold {
  background-color: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-navy-dark);
  box-shadow: var(--sh-gold);
}
.btn--gold:hover {
  background-color: var(--clr-gold-dark);
  border-color: var(--clr-gold-dark);
  color: var(--clr-white);
  box-shadow: 0 6px 28px rgba(253,198,18,0.50);
}

/* Navy — Azul marinho */
.btn--navy {
  background-color: var(--clr-navy);
  border-color: var(--clr-navy);
  color: var(--clr-white);
  box-shadow: var(--sh-navy);
}
.btn--navy:hover {
  background-color: var(--clr-navy-dark);
  border-color: var(--clr-navy-dark);
  box-shadow: 0 6px 28px rgba(27,58,114,0.45);
}

/* Red — Vermelho (CTA principal) */
.btn--red {
  background-color: var(--clr-red);
  border-color: var(--clr-red);
  color: var(--clr-white);
  box-shadow: 0 4px 20px rgba(227,30,40,0.35);
}
.btn--red:hover {
  background-color: var(--clr-red-dark);
  border-color: var(--clr-red-dark);
  box-shadow: 0 6px 28px rgba(227,30,40,0.50);
}

/* Outline White */
.btn--outline-white {
  background-color: transparent;
  border-color: rgba(255,255,255,0.70);
  color: var(--clr-white);
}
.btn--outline-white:hover {
  background-color: var(--clr-white);
  border-color: var(--clr-white);
  color: var(--clr-black);
}

/* Outline Gold */
.btn--outline-gold {
  background-color: transparent;
  border-color: var(--clr-gold);
  color: var(--clr-gold);
}
.btn--outline-gold:hover {
  background-color: var(--clr-gold);
  color: var(--clr-black);
}

/* Outline Navy */
.btn--outline-navy {
  background-color: transparent;
  border-color: var(--clr-navy);
  color: var(--clr-navy);
}
.btn--outline-navy:hover {
  background-color: var(--clr-navy);
  color: var(--clr-white);
}

/* Dark */
.btn--dark {
  background-color: var(--clr-black);
  border-color: var(--clr-black);
  color: var(--clr-white);
}
.btn--dark:hover {
  background-color: var(--clr-gray-800);
  border-color: var(--clr-gray-800);
}

/* Ghost */
.btn--ghost {
  background-color: transparent;
  border-color: transparent;
  color: var(--clr-gray-700);
}
.btn--ghost:hover { color: var(--clr-gold-dark); }

/* Sizes */
.btn--sm { padding: 0.60em 1.50em; font-size: var(--fs-xs); }
.btn--lg { padding: 0.90em 2.25em; font-size: var(--fs-md); }
.btn--xl { padding: 1.05em 2.75em; font-size: var(--fs-lg); }

/* Icon button */
.btn--icon {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: var(--r-full);
}

/* ══════════════════════════════════════════════════════════════════════════
   BOOK CARD
   ══════════════════════════════════════════════════════════════════════════ */
.book-card {
  display: flex;
  flex-direction: column;
  background-color: var(--clr-white);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-card);
  transition: transform var(--e-base), box-shadow var(--e-base);
  height: 100%;
}

.book-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--sh-xl);
}

.book-card__cover {
  position: relative;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  background-color: var(--clr-gray-100);
}

.book-card__cover img,
.book-card__cover .book-card__cover-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--e-slow);
  display: block;
}

.book-card:hover .book-card__cover img {
  transform: scale(1.05);
}

/* Placeholder cover art for books without images */
.book-cover-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding: var(--sp-6) var(--sp-4);
  position: relative;
}

.book-cover-placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, transparent 60%);
}

.book-cover-placeholder__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--clr-white);
  text-align: center;
  line-height: 1.3;
  position: relative;
  z-index: 1;
}

/* Cover colors per category */
.book-cover--finance     { background: linear-gradient(145deg, #0D2137 0%, #1A4060 50%, #1E5275 100%); }
.book-cover--infantil    { background: linear-gradient(145deg, #1A4D2E 0%, #2D7A4A 50%, #4A9B62 100%); }
.book-cover--gourmet     { background: linear-gradient(145deg, #4A1E0A 0%, #7A3515 50%, #9A4820 100%); }
.book-cover--antologia   { background: linear-gradient(145deg, #2A1545 0%, #4A2570 50%, #6B3D98 100%); }
.book-cover--poetry      { background: linear-gradient(145deg, #3D1020 0%, #6B1E3A 50%, #8B2852 100%); }
.book-cover--default     { background: linear-gradient(145deg, #1A1A2A 0%, #2D2D40 50%, #3A3A50 100%); }

/* Badge */
.book-card__badge {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-3);
  background-color: var(--clr-gold);
  color: var(--clr-black);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: var(--r-full);
  z-index: 1;
}

.book-card__badge--new   { background-color: var(--clr-gold); }
.book-card__badge--hot   { background-color: var(--clr-accent); color: var(--clr-white); }

/* Body */
.book-card__body {
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: var(--sp-1);
}

.book-card__category {
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--clr-gold);
}

.book-card__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--clr-black);
  line-height: var(--lh-snug);
  margin-top: var(--sp-1);
}

.book-card__author {
  font-size: var(--fs-sm);
  color: var(--clr-gray-500);
  margin-top: var(--sp-1);
}

.book-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: var(--sp-4);
  border-top: 1px solid var(--clr-gray-100);
}

.book-card__price {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
}

.book-card__btn {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--clr-gold-dark);
  transition: gap var(--e-fast), color var(--e-fast);
}

.book-card__btn svg {
  width: 14px;
  height: 14px;
  transition: transform var(--e-fast);
}

.book-card:hover .book-card__btn { color: var(--clr-gold); }
.book-card:hover .book-card__btn svg { transform: translateX(4px); }

/* ══════════════════════════════════════════════════════════════════════════
   BLOG CARD
   ══════════════════════════════════════════════════════════════════════════ */
.blog-card {
  display: flex;
  flex-direction: column;
  background-color: var(--clr-white);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-card);
  transition: transform var(--e-base), box-shadow var(--e-base);
  height: 100%;
}

.blog-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--sh-lg);
}

.blog-card__image {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: var(--clr-gray-100);
}

.blog-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--e-slow);
}

.blog-card:hover .blog-card__image img { transform: scale(1.06); }

.blog-card__tag {
  position: absolute;
  bottom: var(--sp-3);
  left: var(--sp-3);
  background-color: var(--clr-gold);
  color: var(--clr-black);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  padding: 3px 12px;
  border-radius: var(--r-full);
}

.blog-card__body {
  padding: var(--sp-6);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.blog-card__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--fs-xs);
  color: var(--clr-gray-400);
  margin-bottom: var(--sp-3);
}

.blog-card__meta-sep { opacity: 0.4; }

.blog-card__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-black);
  line-height: var(--lh-snug);
  margin-bottom: var(--sp-3);
  transition: color var(--e-fast);
}

.blog-card:hover .blog-card__title { color: var(--clr-gold-dark); }

.blog-card__excerpt {
  font-size: var(--fs-sm);
  color: var(--clr-gray-500);
  line-height: var(--lh-relaxed);
  flex: 1;
}

.blog-card__read-more {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  margin-top: var(--sp-5);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--clr-gold-dark);
  transition: gap var(--e-fast);
}

.blog-card__read-more svg { width: 14px; height: 14px; }

.blog-card:hover .blog-card__read-more { gap: var(--sp-3); }

/* Blog image placeholders */
.blog-img-1 { background: linear-gradient(135deg, #2D1B30 0%, #5C3660 100%); }
.blog-img-2 { background: linear-gradient(135deg, #1B2E2A 0%, #2D5045 100%); }
.blog-img-3 { background: linear-gradient(135deg, #2E1B1B 0%, #603636 100%); }
.blog-img-4 { background: linear-gradient(135deg, #1B1B2E 0%, #303060 100%); }
.blog-img-5 { background: linear-gradient(135deg, #2E2A1B 0%, #605030 100%); }
.blog-img-6 { background: linear-gradient(135deg, #1B2A2E 0%, #304860 100%); }

/* ══════════════════════════════════════════════════════════════════════════
   TESTIMONIAL CARD
   ══════════════════════════════════════════════════════════════════════════ */
.testimonial-card {
  background-color: var(--clr-white);
  border-radius: var(--r-xl);
  padding: var(--sp-10) var(--sp-8);
  box-shadow: var(--sh-md);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--sp-6);
}

.testimonial-card__quote-mark {
  font-family: var(--ff-heading);
  font-size: 6rem;
  line-height: 0.6;
  color: var(--clr-gold);
  opacity: 0.25;
  user-select: none;
  position: absolute;
  top: var(--sp-6);
  left: var(--sp-6);
}

.testimonial-card__body {
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-style: italic;
  line-height: var(--lh-relaxed);
  color: var(--clr-gray-700);
  flex: 1;
  padding-top: var(--sp-8);
}

.testimonial-card__author {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  padding-top: var(--sp-6);
  border-top: 1px solid var(--clr-gray-100);
}

.testimonial-card__avatar {
  width: 52px;
  height: 52px;
  border-radius: var(--r-full);
  object-fit: cover;
  background: linear-gradient(135deg, var(--clr-gold-subtle), var(--clr-cream));
  flex-shrink: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-gold);
  border: 2px solid var(--clr-gold-border);
}

.testimonial-card__name {
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--clr-black);
}

.testimonial-card__role {
  font-size: var(--fs-xs);
  color: var(--clr-gray-400);
  margin-top: 2px;
}

/* ══════════════════════════════════════════════════════════════════════════
   CAROUSEL
   ══════════════════════════════════════════════════════════════════════════ */
.carousel {
  position: relative;
}

.carousel__track-wrapper {
  overflow: hidden;
  border-radius: var(--r-lg);
}

.carousel__track {
  display: flex;
  gap: var(--sp-6);
  transition: transform var(--e-slow);
  will-change: transform;
}

.carousel__slide {
  flex: 0 0 calc((100% - var(--sp-6) * 3) / 4);
  min-width: 0;
}

.carousel__slide--wide {
  flex: 0 0 calc((100% - var(--sp-6) * 2) / 3);
}

.carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  margin-top: var(--sp-8);
}

.carousel__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--r-full);
  border: 2px solid var(--clr-gold-border);
  background-color: var(--clr-white);
  color: var(--clr-gold);
  cursor: pointer;
  transition: background-color var(--e-fast), color var(--e-fast), border-color var(--e-fast), transform var(--e-spring);
  flex-shrink: 0;
}

.carousel__btn:hover {
  background-color: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-black);
  transform: scale(1.05);
}

.carousel__btn:disabled {
  opacity: 0.35;
  pointer-events: none;
}

.carousel__btn svg { width: 18px; height: 18px; stroke-width: 2; }

/* Dots */
.carousel__dots {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

.carousel__dot {
  width: 8px;
  height: 8px;
  border-radius: var(--r-full);
  background-color: var(--clr-gray-200);
  cursor: pointer;
  transition: background-color var(--e-fast), transform var(--e-spring), width var(--e-spring);
}

.carousel__dot.is-active {
  background-color: var(--clr-gold);
  width: 24px;
}

@media (max-width: 1100px) {
  .carousel__slide { flex: 0 0 calc((100% - var(--sp-6) * 2) / 3); }
}

@media (max-width: 768px) {
  .carousel__slide, .carousel__slide--wide { flex: 0 0 calc((100% - var(--sp-6)) / 2); }
}

@media (max-width: 540px) {
  .carousel__slide, .carousel__slide--wide { flex: 0 0 85%; }
}

/* ══════════════════════════════════════════════════════════════════════════
   STATS BAR
   ══════════════════════════════════════════════════════════════════════════ */
.stats-bar {
  background-color: var(--clr-azul-escuro);
  padding-block: var(--sp-5) var(--sp-5);
  position: relative;
  overflow: hidden;
}

.stats-bar::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(201,168,76,0.10) 0%, transparent 70%);
  pointer-events: none;
}

.stats-bar__grid {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--sp-1);
}

.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-5) var(--sp-10);
  text-align: center;
  position: relative;
}

.stat-item:not(:first-child)::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,0.35), transparent);
}

.stat-item__number {
  font-family: var(--ff-heading);
  font-size: var(--fs-4xl);
  font-weight: 700;
  color: var(--clr-gold);
  line-height: 1;
  letter-spacing: var(--ls-tight);
}

.stat-item__suffix {
  color: var(--clr-gold-light);
  font-size: 0.7em;
}

.stat-item__label {
  font-size: var(--fs-sm);
  color: var(--clr-gray-300);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  font-weight: 500;
}

@media (max-width: 600px) {
  .stats-bar__grid { flex-direction: column; align-items: center; }
  .stat-item:not(:first-child)::before { inset: 0; top: 0; left: 20%; right: 20%; bottom: auto; width: auto; height: 1px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   CATEGORY CARD
   ═════��════════════════════════════════════════════════════════════════════ */
.category-card {
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: var(--r-xl);
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform var(--e-base), box-shadow var(--e-base);
}

.category-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-xl);
}

.category-card__bg {
  position: absolute;
  inset: 0;
  transition: transform var(--e-slow);
}

.category-card:hover .category-card__bg { transform: scale(1.06); }

.category-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.80) 0%, rgba(0,0,0,0.20) 55%, transparent 100%);
  z-index: 1;
}

.category-card__content {
  position: relative;
  z-index: 2;
  padding: var(--sp-6);
}

.category-card__icon {
  font-size: 2.5rem;
  margin-bottom: var(--sp-3);
  display: block;
}

.category-card__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-white);
  line-height: 1.2;
}

.category-card__count {
  font-size: var(--fs-xs);
  color: var(--clr-gold-light);
  margin-top: var(--sp-2);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  font-weight: 600;
}

/* Imagem real da categoria (quando cadastrada no WooCommerce) */
.category-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--e-slow);
}

.category-card:hover .category-card__img { transform: scale(1.06); }

/* Slide de categoria no carousel — largura menor para mostrar vários */
.carousel__slide--cat {
  flex: 0 0 220px;
  max-width: 220px;
}

@media (max-width: 768px) {
  .carousel__slide--cat {
    flex: 0 0 160px;
    max-width: 160px;
  }
}

/* Category background themes */
.category-bg--all        { background: linear-gradient(135deg, #1A1A2A 0%, #2D2D40 100%); }
.category-bg--lancamentos { background: linear-gradient(135deg, #0D2137 0%, #1A4A6B 100%); }
.category-bg--infantil   { background: linear-gradient(135deg, #1A3D20 0%, #2D6B40 100%); }
.category-bg--gourmet    { background: linear-gradient(135deg, #3D1A0A 0%, #6B3515 100%); }
.category-bg--antologia  { background: linear-gradient(135deg, #270D3D 0%, #4E2568 100%); }

/* ══════════════════════════════════════════════════════════════════════════
   AUTHOR CARD
   ═════════════════════════════════════════════════════���════════════════════ */
.author-card {
  background-color: var(--clr-white);
  border-radius: var(--r-xl);
  padding: var(--sp-8) var(--sp-6);
  text-align: center;
  box-shadow: var(--sh-card);
  transition: transform var(--e-base), box-shadow var(--e-base);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-4);
}

.author-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-lg);
}

.author-card__avatar {
  width: 96px;
  height: 96px;
  border-radius: var(--r-full);
  object-fit: cover;
  border: 3px solid var(--clr-gold-border);
  background: linear-gradient(135deg, var(--clr-cream) 0%, var(--clr-gold-subtle) 100%);
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-heading);
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: var(--clr-gold);
}

.author-card__name {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
}

.author-card__genre {
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--clr-gold);
}

.author-card__bio {
  font-size: var(--fs-sm);
  color: var(--clr-gray-500);
  line-height: var(--lh-relaxed);
  max-width: 28ch;
}

.author-card__books-count {
  font-size: var(--fs-xs);
  color: var(--clr-gray-400);
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

/* ══════════════════════════════════════════════════════════════════════════
   FAQ ACCORDION
   ══════════════════════════════════════════════════════════════════════════ */
.faq-list { display: flex; flex-direction: column; gap: var(--sp-3); }

.faq-item {
  border: 1px solid var(--clr-gray-100);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: border-color var(--e-fast), box-shadow var(--e-fast);
  background-color: var(--clr-white);
}

.faq-item.is-open {
  border-color: var(--clr-gold-border);
  box-shadow: var(--sh-sm);
}

.faq-item__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-6) var(--sp-8);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--clr-black);
  transition: color var(--e-fast);
}

.faq-item__trigger:hover { color: var(--clr-gold-dark); }

.faq-item__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-full);
  background-color: var(--clr-cream);
  transition: transform var(--e-base), background-color var(--e-fast);
}

.faq-item__icon svg {
  width: 14px;
  height: 14px;
  stroke: var(--clr-gold-dark);
  transition: transform var(--e-base);
}

.faq-item.is-open .faq-item__icon {
  background-color: var(--clr-gold);
}

.faq-item.is-open .faq-item__icon svg {
  transform: rotate(180deg);
  stroke: var(--clr-black);
}

.faq-item__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.is-open .faq-item__body { max-height: 600px; }

.faq-item__content {
  padding: 0 var(--sp-8) var(--sp-6);
  font-size: var(--fs-base);
  color: var(--clr-gray-600);
  line-height: var(--lh-relaxed);
}

/* ══════════════════════════════════════════════════════════════════════════
   PROCESS TIMELINE
   ══════════════════════════════════════════════════════════════════════════ */
.process-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--sp-8);
  position: relative;
}

.process-steps::before {
  content: '';
  position: absolute;
  top: 36px;
  left: calc(10% + 18px);
  right: calc(10% + 18px);
  height: 2px;
  background: linear-gradient(90deg, var(--clr-gold-border), var(--clr-gold), var(--clr-gold-border));
  z-index: 0;
}

.process-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--sp-4);
  position: relative;
  z-index: 1;
}

.process-step__number {
  width: 72px;
  height: 72px;
  border-radius: var(--r-full);
  background-color: var(--clr-white);
  border: 3px solid var(--clr-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--clr-gold);
  box-shadow: var(--sh-gold);
  flex-shrink: 0;
  transition: background-color var(--e-fast), color var(--e-fast);
}

.process-step:hover .process-step__number {
  background-color: var(--clr-gold);
  color: var(--clr-black);
}

.process-step__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
}

.process-step__description {
  font-size: var(--fs-sm);
  color: var(--clr-gray-500);
  line-height: var(--lh-relaxed);
  max-width: 24ch;
}

@media (max-width: 768px) {
  .process-steps::before { display: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   FORM COMPONENTS
   ══════════════════════════════════════════════════════════════════════════ */
.form-group {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.form-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--clr-gray-700);
  letter-spacing: var(--ls-wide);
}

.form-input,
.form-textarea,
.form-select {
  padding: var(--sp-4) var(--sp-5);
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-md);
  background-color: var(--clr-white);
  color: var(--clr-black);
  font-size: var(--fs-base);
  line-height: 1.4;
  transition: border-color var(--e-fast), box-shadow var(--e-fast);
  width: 100%;
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
  outline: none;
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}

.form-input::placeholder,
.form-textarea::placeholder {
  color: var(--clr-gray-300);
}

.form-textarea {
  resize: vertical;
  min-height: 140px;
}

.form-error {
  font-size: var(--fs-xs);
  color: var(--clr-error);
  display: none;
}

.form-group.has-error .form-input,
.form-group.has-error .form-textarea {
  border-color: var(--clr-error);
}

.form-group.has-error .form-error { display: block; }

.form-success-message {
  display: none;
  background-color: rgba(45,122,79,0.10);
  border: 1px solid var(--clr-success);
  color: var(--clr-success);
  border-radius: var(--r-md);
  padding: var(--sp-4) var(--sp-6);
  font-weight: 600;
  text-align: center;
}

/* Newsletter inline form */
.newsletter-form {
  display: flex;
  gap: var(--sp-3);
  max-width: 480px;
  margin-inline: auto;
}

.newsletter-form .form-input {
  flex: 1;
  border-radius: var(--r-full);
  border-color: var(--clr-gray-200);
}

@media (max-width: 480px) {
  .newsletter-form { flex-direction: column; }
}

/* ══════════════════════════════════════════════════════════════════════════
   HERO SECTION (Homepage)
   ══════════════════════════════════════════════════════════════════════════ */
.hero {
  position: relative;
  min-height: 45dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  inset: 0;
  background: var(--clr-cream);
  z-index: var(--z-below);
}

.hero__bg-texture {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%231B3A72' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  z-index: var(--z-below);
}

.hero__container {
  position: relative;
  z-index: var(--z-base);
  text-align: center;
  padding: 27px;
  max-width: 1100px;
  margin-inline: auto;
}

.hero__kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--clr-gold);
  margin-bottom: var(--sp-6);
  background-color: var(--clr-navy-dark);
  border: 1.5px solid var(--clr-navy-dark);
  border-radius: 999px;
  padding: 0.35em 1.1em;
}

.hero__kicker::before,
.hero__kicker::after {
  display: none;
}

.hero__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-5xl);
  font-weight: 700;
  color: var(--clr-navy-dark);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tighter);
  margin-bottom: var(--sp-6);
}

.hero__title em {
  font-style: italic;
  color: var(--clr-gold-dark);
}

.hero__subtitle {
  font-size: var(--fs-md);
  color: var(--clr-gray-700);
  line-height: var(--lh-relaxed);
  max-width: 82ch;
  margin-inline: auto;
  margin-bottom: var(--sp-6);
}

.hero__subtitle--lead {
  font-size: var(--fs-xl);
  line-height: var(--lh-snug);
  max-width: 48ch;
}

.hero__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  flex-wrap: wrap;
}

.hero__scroll-indicator {
  position: absolute;
  bottom: var(--sp-8);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  color: var(--clr-gray-400);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  animation: scrollBounce 2.4s ease-in-out infinite;
}

.hero__scroll-indicator svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
}

@keyframes scrollBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(8px); }
}

/* ══════════════════════════════════════════════════════════════════════════
   ABOUT TEASER SECTION
   ══════════════════════════════════════════════════════════════════════════ */
.about-teaser {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-16);
  align-items: center;
}

.about-teaser__image {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  aspect-ratio: 4 / 5;
}

.about-teaser__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-teaser__image-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #1A1A2E 0%, #2A2A40 50%, #1A2A2A 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.about-teaser__badge {
  position: absolute;
  bottom: var(--sp-6);
  right: calc(var(--sp-6) * -1);
  background-color: var(--clr-white);
  border-radius: var(--r-lg);
  padding: var(--sp-5) var(--sp-6);
  box-shadow: var(--sh-xl);
  text-align: center;
  min-width: 140px;
}

.about-teaser__badge-number {
  font-family: var(--ff-heading);
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: var(--clr-gold);
  line-height: 1;
}

.about-teaser__badge-label {
  font-size: var(--fs-xs);
  color: var(--clr-gray-500);
  margin-top: var(--sp-1);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}

.about-teaser__content {
  display: flex;
  flex-direction: column;
  gap: var(--sp-6);
}

.about-teaser__body {
  color: var(--clr-gray-600);
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
}

.about-teaser__points {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  margin-top: var(--sp-2);
}

.about-teaser__point {
  display: flex;
  gap: var(--sp-4);
  align-items: flex-start;
}

.about-teaser__point-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--r-lg);
  background-color: var(--clr-gold-subtle);
  border: 1px solid var(--clr-gold-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.25rem;
}

.about-teaser__point-text {
  font-size: var(--fs-sm);
  color: var(--clr-gray-600);
  line-height: var(--lh-relaxed);
}

.about-teaser__point-title {
  font-weight: 700;
  color: var(--clr-black);
  font-size: var(--fs-base);
  margin-bottom: var(--sp-1);
  font-family: var(--ff-heading);
}

.ajeb-timeline {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-3);
  margin-top: var(--sp-2);
}

.ajeb-timeline li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  background: var(--clr-white);
  border: 1px solid var(--clr-gold-border);
  border-radius: var(--r-md);
  padding: var(--sp-3) var(--sp-4);
  color: var(--clr-gray-700);
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
}

.ajeb-timeline span {
  font-weight: 600;
}

.ajeb-timeline strong {
  color: var(--clr-gold-dark);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
}

.ajeb-collage {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top left, rgba(253, 198, 18, 0.18), transparent 34%),
    linear-gradient(145deg, var(--clr-white), var(--clr-off-white));
  border: 1px solid rgba(27, 58, 114, 0.10);
  border-radius: var(--r-xl);
  box-shadow: var(--sh-lg);
  padding: var(--sp-6);
}

.ajeb-collage::before {
  content: '';
  position: absolute;
  inset: auto -20% -28% 28%;
  height: 58%;
  background: rgba(27, 58, 114, 0.08);
  transform: rotate(-8deg);
  pointer-events: none;
}

.ajeb-collage__header {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  margin-bottom: var(--sp-6);
}

.ajeb-collage__header img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  background: var(--clr-white);
  border-radius: var(--r-full);
  padding: var(--sp-2);
  box-shadow: var(--sh-sm);
}

.ajeb-collage__header p {
  margin: 0 0 var(--sp-1);
  color: var(--clr-gray-500);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-wider);
  line-height: var(--lh-snug);
  text-transform: uppercase;
}

.ajeb-collage__header h3 {
  margin: 0;
  color: var(--clr-navy-dark);
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  line-height: var(--lh-tight);
}

.ajeb-collage__covers {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  align-items: end;
  gap: var(--sp-3);
}

.ajeb-cover {
  margin: 0;
  min-width: 0;
}

.ajeb-cover--featured {
  grid-column: span 2;
}

.ajeb-cover img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  border-radius: var(--r-sm);
  box-shadow: var(--sh-md);
  border: 2px solid rgba(255,255,255,0.9);
  background: var(--clr-gray-100);
}

.ajeb-cover figcaption {
  margin-top: var(--sp-2);
  color: var(--clr-gray-600);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  line-height: var(--lh-snug);
  text-align: center;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .about-teaser { grid-template-columns: 1fr; gap: var(--sp-10); }
  .about-teaser__badge { right: var(--sp-6); }
  .about-teaser__image { max-height: 420px; }
  .ajeb-collage__covers { grid-template-columns: repeat(3, 1fr); }
  .ajeb-cover--featured { grid-column: span 1; }
}

@media (max-width: 560px) {
  .ajeb-timeline { grid-template-columns: 1fr; }
  .ajeb-collage { padding: var(--sp-4); }
  .ajeb-collage__header { align-items: flex-start; }
  .ajeb-collage__header img {
    width: 56px;
    height: 56px;
  }
  .ajeb-collage__covers {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   CTA AUTHOR SECTION
   ══════════════════════════════════════════════════════════════════════════ */
.cta-author {
  position: relative;
  padding-block: var(--section-py);
  background-color: var(--clr-azul-escuro);
  text-align: center;
  overflow: hidden;
}

.cta-author::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.cta-author__eyebrow { color: var(--clr-gold); }

.cta-author__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-4xl);
  color: var(--clr-white);
  line-height: var(--lh-snug);
  max-width: 16ch;
  margin-inline: auto;
  margin-top: var(--sp-4);
  letter-spacing: var(--ls-tighter);
}

.cta-author__body {
  color: var(--clr-gray-300);
  font-size: var(--fs-lg);
  max-width: 52ch;
  margin-inline: auto;
  margin-top: var(--sp-6);
  line-height: var(--lh-relaxed);
}

.cta-author__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  margin-top: var(--sp-10);
  flex-wrap: wrap;
}

/* ══════════════════════════════════════════════════════════════════════════
   NEWSLETTER SECTION
   ══════════════════════════════════════════════════════════════════════════ */
.newsletter {
  background-color: var(--clr-cream);
  text-align: center;
  padding-block: var(--sp-20);
}

.newsletter__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-3xl);
  color: var(--clr-black);
  margin-bottom: var(--sp-4);
}

.newsletter__subtitle {
  color: var(--clr-gray-500);
  font-size: var(--fs-md);
  margin-bottom: var(--sp-8);
  max-width: 46ch;
  margin-inline: auto;
}

.newsletter__disclaimer {
  font-size: var(--fs-xs);
  color: var(--clr-gray-400);
  margin-top: var(--sp-4);
}

/* ══════════════════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════════════════ */
.footer {
  background-color: var(--clr-azul-escuro);
  color: var(--clr-gray-300);
  padding-top: var(--sp-20);
  border-top: 2px solid var(--clr-gold);
}

.footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: var(--sp-12);
  padding-bottom: var(--sp-16);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.footer__brand-logo {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-white);
  margin-bottom: var(--sp-4);
  display: inline-block;
}

.footer__brand-logo span { color: var(--clr-gold); }

.footer__tagline {
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
  line-height: var(--lh-relaxed);
  max-width: 34ch;
  margin-bottom: var(--sp-6);
}

.footer__socials {
  display: flex;
  gap: var(--sp-3);
  flex-wrap: wrap;
}

.footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--r-full);
  background-color: rgba(255,255,255,0.07);
  color: var(--clr-gray-300);
  transition: background-color var(--e-fast), color var(--e-fast), transform var(--e-spring);
  border: 1px solid rgba(255,255,255,0.10);
}

.footer__social-link:hover {
  background-color: var(--clr-gold);
  color: var(--clr-black);
  border-color: var(--clr-gold);
  transform: translateY(-2px);
}

.footer__social-link svg { width: 16px; height: 16px; }

.footer__col-title {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--clr-white);
  margin-bottom: var(--sp-5);
}

.footer__links {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.footer__link {
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
  transition: color var(--e-fast), padding-left var(--e-fast);
}

.footer__link:hover {
  color: var(--clr-gold-light);
  padding-left: var(--sp-2);
}

.footer__contact-item {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
  margin-bottom: var(--sp-4);
}

.footer__contact-item svg {
  width: 16px;
  height: 16px;
  stroke: var(--clr-gold);
  flex-shrink: 0;
}

.footer__bottom {
  padding-block: var(--sp-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  flex-wrap: wrap;
}

.footer__copyright {
  font-size: var(--fs-xs);
  color: var(--clr-gray-500);
}

.footer__legal-links {
  display: flex;
  gap: var(--sp-6);
}

.footer__legal-link {
  font-size: var(--fs-xs);
  color: var(--clr-gray-500);
  transition: color var(--e-fast);
}

.footer__legal-link:hover { color: var(--clr-gold-light); }

@media (max-width: 900px) {
  .footer__grid { grid-template-columns: 1fr 1fr; gap: var(--sp-10) var(--sp-8); }
}

@media (max-width: 540px) {
  .footer__grid { grid-template-columns: 1fr; }
  .footer__bottom { flex-direction: column; text-align: center; }
}

/* ══════════════════════════════════════════════════════════════════════════
   CATALOG FILTER BAR
   ══════════════════════════════════════════════════════════════════════════ */
.filter-bar {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  flex-wrap: wrap;
  padding: var(--sp-6) 0;
}

.filter-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-5);
  border-radius: var(--r-full);
  border: 1.5px solid var(--clr-gray-200);
  background-color: var(--clr-white);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--clr-gray-600);
  cursor: pointer;
  transition: border-color var(--e-fast), background-color var(--e-fast), color var(--e-fast), transform var(--e-spring);
}

.filter-pill:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold-dark);
}

.filter-pill.is-active {
  background-color: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-black);
}

.filter-pill .filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding-inline: 4px;
  border-radius: var(--r-full);
  background-color: rgba(0,0,0,0.10);
  font-size: var(--fs-2xs);
  font-weight: 700;
}

.filter-pill.is-active .filter-count {
  background-color: rgba(0,0,0,0.18);
}

/* Search box */
.catalog-search {
  position: relative;
  max-width: 320px;
  margin-left: auto;
}

.catalog-search__input {
  padding-left: var(--sp-10) !important;
  border-radius: var(--r-full) !important;
}

.catalog-search__icon {
  position: absolute;
  left: var(--sp-4);
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  stroke: var(--clr-gray-400);
  pointer-events: none;
}

/* ══════════════════════════════════════════════════════════════════════════
   ARTICLE LAYOUT (Inner blog pages)
   ══════════════════════════════════════════════════════════════════════════ */
.article-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--sp-16);
  align-items: start;
}

.article-header {
  margin-bottom: var(--sp-10);
}

.article-header__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
  margin-bottom: var(--sp-5);
  flex-wrap: wrap;
}

.article-header__tag {
  display: inline-block;
  background-color: var(--clr-gold-subtle);
  border: 1px solid var(--clr-gold-border);
  color: var(--clr-gold-dark);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  padding: 3px 12px;
  border-radius: var(--r-full);
}

.article-header__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-4xl);
  line-height: var(--lh-tight);
  color: var(--clr-black);
  margin-bottom: var(--sp-6);
}

.article-hero-image {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  border-radius: var(--r-xl);
  margin-bottom: var(--sp-10);
  background: var(--clr-gray-100);
}

.article-body {
  font-size: var(--fs-md);
  color: var(--clr-gray-700);
  line-height: var(--lh-loose);
}

.article-body p { margin-bottom: var(--sp-6); }
.article-body h2 {
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  color: var(--clr-black);
  margin: var(--sp-10) 0 var(--sp-4);
  padding-bottom: var(--sp-3);
  border-bottom: 2px solid var(--clr-gray-100);
}
.article-body h3 { font-size: var(--fs-xl); margin: var(--sp-8) 0 var(--sp-3); }
.article-body ul, .article-body ol { padding-left: var(--sp-6); margin-bottom: var(--sp-6); }
.article-body ul { list-style: disc; }
.article-body ol { list-style: decimal; }
.article-body li { margin-bottom: var(--sp-2); line-height: var(--lh-relaxed); }
.article-body blockquote {
  border-left: 4px solid var(--clr-gold);
  padding: var(--sp-4) var(--sp-6);
  margin: var(--sp-8) 0;
  background-color: var(--clr-cream);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  font-family: var(--ff-heading);
  font-style: italic;
  font-size: var(--fs-lg);
  color: var(--clr-gray-700);
}

.article-sidebar {
  position: sticky;
  top: calc(var(--navbar-h) + var(--sp-6));
  display: flex;
  flex-direction: column;
  gap: var(--sp-6);
}

.sidebar-widget {
  background-color: var(--clr-white);
  border: 1px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-6) var(--sp-7);
}

.sidebar-widget__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--clr-black);
  margin-bottom: var(--sp-5);
  padding-bottom: var(--sp-4);
  border-bottom: 2px solid var(--clr-gold);
}

.sidebar-post {
  display: flex;
  gap: var(--sp-4);
  padding-block: var(--sp-4);
  border-bottom: 1px solid var(--clr-gray-100);
}

.sidebar-post:last-child { border-bottom: none; }

.sidebar-post__image {
  width: 64px;
  height: 64px;
  border-radius: var(--r-md);
  object-fit: cover;
  flex-shrink: 0;
  background: var(--clr-gray-100);
}

.sidebar-post__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--clr-black);
  line-height: var(--lh-snug);
  transition: color var(--e-fast);
}

.sidebar-post:hover .sidebar-post__title { color: var(--clr-gold-dark); }

.sidebar-post__date {
  font-size: var(--fs-xs);
  color: var(--clr-gray-400);
  margin-top: var(--sp-1);
}

@media (max-width: 900px) {
  .article-layout { grid-template-columns: 1fr; }
  .article-sidebar { position: static; }
}

/* ══════════════════════════════════════════════════════════════════════════
   SOCIAL PROOF / TRUST BAR
   ══════════════════════════════════════════════════════════════════════════ */
.trust-bar {
  background-color: var(--clr-cream-dark);
  padding-block: var(--sp-8);
  border-top: 1px solid var(--clr-gray-100);
  border-bottom: 1px solid var(--clr-gray-100);
}

.trust-bar__items {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-10);
  flex-wrap: wrap;
}

.trust-bar__item {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--clr-gray-600);
  font-weight: 500;
}

.trust-bar__item svg {
  width: 22px;
  height: 22px;
  stroke: var(--clr-gold);
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════════════════
   UTILITIES — Padding / Margin / Display
   ══════════════════════════════════════════════════════════════════════════ */
.hidden { display: none !important; }

.book-card[data-category].hidden-filter { display: none !important; }

.no-results-msg {
  grid-column: 1 / -1;
  text-align: center;
  padding: var(--sp-16);
  color: var(--clr-gray-400);
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
}

/* Gold line accent */
.gold-line {
  display: inline-block;
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, var(--clr-gold), var(--clr-gold-light));
  border-radius: var(--r-full);
  vertical-align: middle;
}

/* ══════════════════════════════════════════════════════════════════════════
   NAVBAR SOLID VARIANT (always opaque — for inner pages)
   ══════════════════════════════════════════════════════════════════════════ */
.navbar--solid {
  background-color: var(--clr-white);
  box-shadow: var(--sh-sm);
}
.navbar--solid .navbar__link { color: var(--clr-black); }
.navbar--solid .navbar__logo-wordmark { color: var(--clr-black); }
.navbar--solid .navbar__logo-wordmark span { color: var(--clr-gold); }
.navbar--solid .navbar__hamburger span { background-color: var(--clr-black); }

/* ══════════════════════════════════════════════════════════════════════════
   ARTICLE LEAD + BLOCKQUOTE CLASSES (for blog articles)
   ══════════════════════════════════════════════════════════════════════════ */
.article-lead {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-style: italic;
  line-height: var(--lh-relaxed);
  color: var(--clr-black);
  border-left: 4px solid var(--clr-gold);
  padding-left: var(--sp-6);
  margin-bottom: var(--sp-10);
}

.article-blockquote {
  border-left: 4px solid var(--clr-gold);
  padding: var(--sp-4) var(--sp-6);
  margin: var(--sp-8) 0;
  background-color: var(--clr-cream);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  font-family: var(--ff-heading);
  font-style: italic;
  font-size: var(--fs-lg);
  color: var(--clr-gray-700);
  line-height: var(--lh-relaxed);
}
.article-blockquote cite {
  display: block;
  margin-top: var(--sp-3);
  font-family: var(--ff-body);
  font-style: normal;
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
}

/* ══════════════════════════════════════════════════════════════════════════
   SIDEBAR EXTRAS
   ══════════════════════════════════════════════════════════════════════════ */
.sidebar-widget__eyebrow {
  font-size: var(--fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--ls-widest);
  color: var(--clr-gold);
  margin-bottom: var(--sp-2);
}

.sidebar-widget--cta {
  background-color: var(--clr-black);
  border-color: transparent;
}
.sidebar-widget--cta .sidebar-widget__title {
  border-bottom-color: var(--clr-gold);
  margin-top: var(--sp-2);
}

.sidebar-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sidebar-links li {
  border-bottom: 1px solid var(--clr-gray-100);
}
.sidebar-links li:last-child { border-bottom: none; }
.sidebar-links a {
  display: block;
  padding: var(--sp-3) 0;
  font-size: var(--fs-sm);
  color: var(--clr-gray-600);
  transition: color var(--e-fast), padding-left var(--e-fast);
}
.sidebar-links a:hover {
  color: var(--clr-gold-dark);
  padding-left: var(--sp-2);
}

/* ══════════════════════════════════════════════════════════════════════════
   BLOG CARD FEATURED (hero-size card)
   ══════════════════════════════════════════════════════════════════════════ */
.blog-card--featured {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 0;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-lg);
  background: var(--clr-white);
  border: 1px solid var(--clr-gray-100);
  margin-bottom: var(--sp-4);
}

.blog-card--featured .blog-card__image {
  height: 100%;
  min-height: 320px;
  aspect-ratio: unset;
  border-radius: 0;
}

.blog-card--featured .blog-card__content {
  padding: var(--sp-10) var(--sp-8);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.blog-card--featured .blog-card__title a {
  font-size: var(--fs-2xl);
}

@media (max-width: 768px) {
  .blog-card--featured {
    grid-template-columns: 1fr;
  }
  .blog-card--featured .blog-card__image {
    min-height: 200px;
    height: 200px;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   CONTACT FORM
   ══════════════════════════════════════════════════════════════════════════ */
.contact-form {
  background: var(--clr-white);
  border: 1px solid var(--clr-gray-100);
  border-radius: var(--r-2xl);
  padding: var(--sp-10) var(--sp-10);
  box-shadow: var(--sh-md);
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-5);
}

@media (max-width: 540px) {
  .form-row { grid-template-columns: 1fr; }
  .contact-form { padding: var(--sp-6); }
}

.form-error {
  color: var(--clr-error, #C0392B);
  font-size: var(--fs-xs);
  margin-top: var(--sp-1);
  min-height: 1.2em;
}

.form-success-message {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  text-align: center;
  padding: var(--sp-16);
  color: var(--clr-success, #2D7A4F);
}
.form-success-message svg { stroke: var(--clr-success, #2D7A4F); }
.form-success-message p { font-size: var(--fs-lg); font-family: var(--ff-heading); }

/* ══════════════════════════════════════════════════════════════════════════
   AUTHOR CARD EXTRAS (off-white bg variant)
   ══════════════════════════════════════════════════════════════════════════ */
.section--off-white { background-color: var(--clr-off-white, #FDFBF8); }

/* Ribbon/badge absolute on parent */
.ribbon {
  position: absolute;
  top: 0;
  right: var(--sp-5);
  background-color: var(--clr-accent);
  color: var(--clr-white);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  padding: var(--sp-2) var(--sp-3) var(--sp-4);
  border-radius: 0 0 var(--r-sm) var(--r-sm);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);
}

/* ══════════════════════════════════════════════════════════════════════════
   CARRINHO — ícone na navbar
   ══════════════════════════════════════════════════════════════════════════ */
.navbar__icon-link,
.navbar__cart {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: var(--r-full);
  color: rgba(255,255,255,0.90);
  transition: color var(--e-fast), background-color var(--e-fast);
  flex-shrink: 0;
}

.navbar__icon-link:hover,
.navbar__cart:hover {
  color: var(--clr-gold-light);
  background-color: rgba(255,255,255,0.08);
}

.navbar--scrolled .navbar__icon-link,
.navbar--scrolled .navbar__cart { color: var(--clr-gray-700); }
.navbar--scrolled .navbar__icon-link:hover,
.navbar--scrolled .navbar__cart:hover { color: var(--clr-gold-dark); background-color: var(--clr-cream); }

.navbar__icon-link svg,
.navbar__cart svg { width: 20px; height: 20px; }

.navbar__cart-count {
  position: absolute;
  top: 3px;
  right: 3px;
  min-width: 17px;
  height: 17px;
  padding-inline: 4px;
  border-radius: var(--r-full);
  background-color: var(--clr-accent);
  color: var(--clr-white);
  font-size: 10px;
  font-weight: 700;
  line-height: 17px;
  text-align: center;
  display: none;
  pointer-events: none;
}

.navbar__cart-count.is-visible { display: block; }

/* ══════════════════════════════════════════════════════════════════════════
   BOOK CARD — botão "Adicionar ao Carrinho"
   ══════════════════════════════════════════════════════════════════════════ */
.book-card__btn--cart {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--clr-white);
  background-color: var(--clr-gold);
  border: none;
  border-radius: var(--r-full);
  padding: 0.50em 1.20em;
  cursor: pointer;
  transition: background-color var(--e-fast), transform var(--e-spring);
  line-height: 1;
}

.book-card__btn--cart:hover  { background-color: var(--clr-gold-dark); transform: translateY(-2px); }
.book-card__btn--cart:active { transform: translateY(0); }
.book-card__btn--cart:disabled {
  background-color: var(--clr-success, #2D7A4F);
  cursor: not-allowed;
  transform: none;
}
.book-card__btn--cart svg { width: 13px; height: 13px; }

.book-card__btn--added {
  background-color: var(--clr-success, #2D7A4F) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   CARRINHO — página carrinho.html
   ══════════════════════════════════════════════════════════════════════════ */
.cart-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--sp-10);
  align-items: start;
}

@media (max-width: 900px) {
  .cart-layout { grid-template-columns: 1fr; }
}

/* Cart items list */
.cart-items-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}

.cart-item {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: var(--sp-5);
  align-items: center;
  background-color: var(--clr-white);
  border: 1px solid var(--clr-gray-100);
  border-radius: var(--r-lg);
  padding: var(--sp-5);
  transition: box-shadow var(--e-fast);
}

.cart-item:hover { box-shadow: var(--sh-sm); }

/* Capa miniatura no carrinho */
.cart-item__cover {
  width: 80px;
  height: 120px;
  border-radius: var(--r-md);
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: var(--sp-2);
  overflow: hidden;
}

.cart-item__cover::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.50) 0%, transparent 60%);
}

.cart-item__cover-title {
  position: relative;
  font-family: var(--ff-heading);
  font-size: 9px;
  font-weight: 700;
  color: var(--clr-white);
  line-height: 1.3;
  z-index: 1;
}

/* Reutiliza as cores de capa do catálogo */
.cart-cover--finance   { background: linear-gradient(145deg, #0D2137 0%, #1E5275 100%); }
.cart-cover--infantil  { background: linear-gradient(145deg, #1A4D2E 0%, #4A9B62 100%); }
.cart-cover--gourmet   { background: linear-gradient(145deg, #4A1E0A 0%, #9A4820 100%); }
.cart-cover--antologia { background: linear-gradient(145deg, #2A1545 0%, #6B3D98 100%); }
.cart-cover--poetry    { background: linear-gradient(145deg, #3D1020 0%, #8B2852 100%); }
.cart-cover--default   { background: linear-gradient(145deg, #1A1A2A 0%, #3A3A50 100%); }

/* Item info */
.cart-item__info {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  min-width: 0;
}

.cart-item__category {
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--clr-gold);
}

.cart-item__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--clr-black);
  line-height: var(--lh-snug);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cart-item__author {
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
}

.cart-item__unit-price {
  font-size: var(--fs-sm);
  color: var(--clr-gray-500);
  margin-top: var(--sp-1);
}

/* Controles (qtd + subtotal + remover) */
.cart-item__controls {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--sp-3);
  flex-shrink: 0;
}

.cart-qty {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-full);
  overflow: hidden;
  background: var(--clr-white);
}

.cart-qty__btn {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-gray-600);
  cursor: pointer;
  background: none;
  border: none;
  transition: background-color var(--e-fast), color var(--e-fast);
  line-height: 1;
  user-select: none;
}

.cart-qty__btn:hover {
  background-color: var(--clr-gold-subtle);
  color: var(--clr-gold-dark);
}

.cart-qty__value {
  min-width: 32px;
  text-align: center;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--clr-black);
  border-inline: 1.5px solid var(--clr-gray-200);
  line-height: 32px;
}

.cart-item__subtotal {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
}

.cart-item__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--r-full);
  border: none;
  background: none;
  color: var(--clr-gray-300);
  cursor: pointer;
  transition: color var(--e-fast), background-color var(--e-fast);
}

.cart-item__remove:hover {
  color: #C0392B;
  background-color: rgba(192,57,43,0.08);
}

.cart-item__remove svg { width: 16px; height: 16px; }

@media (max-width: 540px) {
  .cart-item { grid-template-columns: 70px 1fr; }
  .cart-item__controls { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; }
}

/* Resumo do pedido */
.cart-summary {
  background-color: var(--clr-white);
  border: 1px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8);
  position: sticky;
  top: calc(var(--navbar-h) + var(--sp-6));
}

.cart-summary__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
  margin-bottom: var(--sp-6);
  padding-bottom: var(--sp-4);
  border-bottom: 2px solid var(--clr-gold);
}

.cart-summary__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-block: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--clr-gray-600);
  border-bottom: 1px solid var(--clr-gray-100);
}

.cart-summary__row:last-of-type { border-bottom: none; }

.cart-summary__row--total {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-black);
  padding-top: var(--sp-5);
  border-top: 2px solid var(--clr-gray-100);
  margin-top: var(--sp-2);
}

.cart-summary__note {
  font-size: var(--fs-xs);
  color: var(--clr-gray-400);
  line-height: var(--lh-relaxed);
  margin-top: var(--sp-4);
  text-align: center;
}

.cart-checkout-btn {
  width: 100%;
  margin-top: var(--sp-6);
  gap: var(--sp-3);
  font-size: var(--fs-base);
  padding: 1em 1.5em;
}

.cart-checkout-btn .whatsapp-icon {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

/* Estado vazio */
.cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-6);
  padding: var(--sp-20) var(--sp-8);
  text-align: center;
}

.cart-empty__icon {
  width: 96px;
  height: 96px;
  border-radius: var(--r-full);
  background-color: var(--clr-cream);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--clr-gold);
}

.cart-empty__icon svg { width: 40px; height: 40px; }

.cart-empty__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--clr-black);
}

.cart-empty__text {
  color: var(--clr-gray-500);
  font-size: var(--fs-md);
  max-width: 36ch;
}

/* ══════════════════════════════════════════════════════════════════════════
   BANNER SLIDER — carrossel de banners full-width
   ══════════════════════════════════════════════════════════════════════════ */
.banner-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #1a1a1a;
  user-select: none;
}

.banner-slider__track {
  display: flex;
  align-items: flex-start;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}

.banner-slider__slide {
  flex: 0 0 100%;
  width: 100%;
  position: relative;
  overflow: hidden;
  line-height: 0;
}

.banner-slider__img,
.banner-slider video.banner-slider__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  transform: translateZ(0);
}

.banner-slider__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0,0,0,0.72) 0%,
    rgba(0,0,0,0.40) 55%,
    rgba(0,0,0,0.10) 100%
  );
}

.banner-slider__content {
  position: relative;
  z-index: 1;
  max-width: 560px;
  padding: var(--sp-12) clamp(var(--sp-8), 6vw, var(--sp-24));
  color: var(--clr-white);
}

.banner-slider__eyebrow {
  display: inline-block;
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-gold-light);
  border: 1px solid var(--clr-gold-border);
  border-radius: var(--r-full);
  padding: 0.25em 0.9em;
  margin-bottom: var(--sp-4);
}

.banner-slider__title {
  font-family: var(--ff-heading);
  font-size: clamp(var(--fs-2xl), 4vw, var(--fs-4xl));
  font-weight: 700;
  line-height: var(--lh-snug);
  color: var(--clr-white);
  margin-bottom: var(--sp-4);
}

.banner-slider__subtitle {
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: rgba(255,255,255,0.82);
  margin-bottom: var(--sp-8);
  max-width: 44ch;
}

/* Setas de navegação */
.banner-slider__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.5);
  background: rgba(0,0,0,0.35);
  color: var(--clr-white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--e-fast), border-color var(--e-fast), transform 0.2s;
  backdrop-filter: blur(4px);
}

.banner-slider__arrow:hover {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  transform: translateY(-50%) scale(1.08);
}

.banner-slider__arrow--prev { left: clamp(var(--sp-4), 3vw, var(--sp-8)); }
.banner-slider__arrow--next { right: clamp(var(--sp-4), 3vw, var(--sp-8)); }

/* Dots */
.banner-slider__dots {
  position: absolute;
  bottom: var(--sp-5);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: var(--sp-2);
  z-index: 10;
}

.banner-slider__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  border: none;
  cursor: pointer;
  transition: background var(--e-fast), transform var(--e-fast), width 0.3s;
  padding: 0;
}

.banner-slider__dot.is-active {
  background: var(--clr-gold);
  width: 24px;
  border-radius: var(--r-full);
}

@media (max-width: 768px) {
  .banner-slider__img {
    width: 140%;
    max-width: none;
    transform: translateX(-20%) translateZ(0);
  }
}

@media (max-width: 480px) {
  .banner-slider__img {
    width: 190%;
    transform: translateX(-28%) translateZ(0);
  }
  .banner-slider__arrow { width: 38px; height: 38px; }
  .banner-slider__arrow svg { width: 16px; height: 16px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — integração com o visual do tema
   Abordagem: seletores "body" para máxima especificidade sem !important excessivo
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Wrapper da loja ─────────────────────────────────────────────────────── */
body.woocommerce #main,
body.woocommerce-page #main {
  background: var(--clr-off-white);
}

/* Título da página da loja */
body.woocommerce h1.page-title,
body.woocommerce-page h1.page-title,
body.woocommerce .woocommerce-products-header__title,
body.woocommerce-page .woocommerce-products-header__title {
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--clr-black);
  margin-bottom: var(--sp-2);
}

/* Barra de ordenação e contagem de resultados */
body.woocommerce .woocommerce-result-count,
body.woocommerce-page .woocommerce-result-count {
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
  margin-bottom: var(--sp-6);
  float: none !important;
  display: block;
}

body.woocommerce .woocommerce-ordering,
body.woocommerce-page .woocommerce-ordering {
  float: right;
  margin-bottom: var(--sp-6);
}

body.woocommerce .woocommerce-ordering select,
body.woocommerce-page .woocommerce-ordering select {
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-md);
  padding: var(--sp-2) var(--sp-4);
  color: var(--clr-gray-700);
  background: var(--clr-white);
  cursor: pointer;
}

/* ── Busca e navegação por categorias da loja ────────────────────────────── */
.shop-tag-search {
  margin-bottom: var(--sp-5);
  max-width: 560px;
}

.shop-tag-search__label {
  display: block;
  margin-bottom: var(--sp-2);
  color: var(--clr-gray-600);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
}

.shop-tag-search__field {
  display: flex;
  align-items: stretch;
  gap: var(--sp-2);
}

.shop-tag-search__input {
  min-width: 0;
  flex: 1;
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-full);
  background: var(--clr-white);
  color: var(--clr-gray-700);
  font-size: var(--fs-sm);
  padding: 0.75em 1.2em;
  transition: border-color var(--e-fast), box-shadow var(--e-fast);
}

.shop-tag-search__input:focus {
  outline: none;
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px var(--clr-gold-subtle);
}

.shop-tag-search__button {
  flex-shrink: 0;
  border-radius: var(--r-full);
  background: var(--clr-gold);
  color: var(--clr-navy-dark);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: var(--ls-wide);
  padding: 0.75em 1.5em;
  text-transform: uppercase;
  transition: background var(--e-fast), transform var(--e-fast);
}

.shop-tag-search__button:hover {
  background: var(--clr-gold-dark);
  color: var(--clr-white);
  transform: translateY(-1px);
}

.shop-tag-search__clear {
  display: inline-block;
  margin-top: var(--sp-2);
  color: var(--clr-gold-dark);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.shop-cat-nav {
  margin-bottom: var(--sp-6);
}

.shop-cat-nav__list {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 2px; /* espaço para o outline do foco */
}

.shop-cat-nav__list::-webkit-scrollbar {
  display: none;
}

.shop-cat-nav__pill {
  flex-shrink: 0;
  display: inline-block;
  padding: 0.40em 1.1em;
  border-radius: var(--r-full);
  border: 1.5px solid var(--clr-gray-200);
  background: transparent;
  color: var(--clr-gray-600);
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color var(--e-fast), background var(--e-fast), color var(--e-fast);
}

.shop-cat-nav__pill:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold-dark);
}

.shop-cat-nav__pill.is-active {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
  font-weight: 700;
}

@media (max-width: 560px) {
  .shop-tag-search__field {
    flex-direction: column;
  }
  .shop-tag-search__button {
    width: 100%;
  }
}

/* ── Grid de produtos — reset total dos floats do WooCommerce ────────────── */
body ul.products {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: var(--sp-4) !important;
  list-style: none !important;
  padding: 0 !important;
  margin: var(--sp-8) 0 0 !important;
  float: none !important;
  clear: both;
}
/* WooCommerce injeta ::before/:after como clearfix — em grid viram itens
   ocupando o slot 1×1. Removemos com content:none para não perturbar o grid. */
body ul.products::before,
body ul.products::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 1200px) { body ul.products { grid-template-columns: repeat(4, 1fr) !important; } }
@media (max-width: 900px)  { body ul.products { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 600px)  { body ul.products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 380px)  { body ul.products { grid-template-columns: 1fr !important; } }

/* ── Card de produto ─────────────────────────────────────────────────────── */
body ul.products li.product {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--clr-white) !important;
  border: none !important;
  border-radius: var(--r-lg);
  overflow: hidden;
  display: flex !important;
  flex-direction: column !important;
  transition: box-shadow var(--e-fast), transform var(--e-fast);
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  position: static !important;
}

body ul.products li.product:hover {
  box-shadow: 0 10px 30px rgba(0,0,0,0.14);
  transform: translateY(-3px);
}

/* ── Imagem: proporção de capa de livro (2:3) ────────────────────────────── */
body ul.products li.product a.woocommerce-LoopProduct-link {
  display: block;
  text-decoration: none;
  flex: 1;
}

body ul.products li.product a img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 2 / 3;
  object-fit: contain !important;
  object-position: center center;
  background: var(--clr-cream);
  transition: opacity var(--e-fast);
}

body ul.products li.product:hover a img {
  opacity: 0.92;
}

/* ── Conteúdo do card ────────────────────────────────────────────────────── */
body ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--ff-heading) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 700 !important;
  color: var(--clr-black) !important;
  padding: var(--sp-2) var(--sp-3) var(--sp-1) !important;
  line-height: var(--lh-snug) !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body ul.products li.product .price {
  font-family: var(--ff-heading) !important;
  font-size: var(--fs-base) !important;
  font-weight: 700 !important;
  color: var(--clr-gold-dark) !important;
  padding: var(--sp-1) var(--sp-3) var(--sp-2) !important;
  display: block !important;
}

body ul.products li.product .price del {
  color: var(--clr-gray-400) !important;
  font-size: var(--fs-xs) !important;
  margin-right: var(--sp-1) !important;
  font-weight: 400 !important;
}

/* ── Botão "Adicionar ao carrinho" e "Ver carrinho" ──────────────────────── */
body ul.products li.product .button,
body ul.products li.product a.button,
body ul.products li.product .add_to_cart_button,
body ul.products li.product .added_to_cart {
  display: block !important;
  width: calc(100% - 2 * var(--sp-3)) !important;
  margin: auto var(--sp-3) var(--sp-3) !important;
  padding: 0.55em 0.75em !important;
  background-color: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  font-family: var(--ff-body) !important;
  font-size: var(--fs-xs) !important;
  font-weight: 700 !important;
  letter-spacing: var(--ls-wide) !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: var(--r-full) !important;
  cursor: pointer !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: background-color var(--e-fast) !important;
  box-sizing: border-box !important;
}

/* Estado: item já no carrinho → "Ver carrinho" */
body ul.products li.product .added_to_cart {
  background-color: var(--clr-black) !important;
}

/* Remove o ícone de seta que o WooCommerce injeta via ::after no added_to_cart */
body ul.products li.product .added_to_cart::before,
body ul.products li.product .added_to_cart::after {
  display: none !important;
  content: none !important;
}

body ul.products li.product .button:hover,
body ul.products li.product a.button:hover,
body ul.products li.product .add_to_cart_button:hover,
body ul.products li.product .added_to_cart:hover {
  background-color: var(--clr-gold-dark) !important;
  color: var(--clr-white) !important;
  transform: none !important;
}

body ul.products li.product .added_to_cart:hover {
  background-color: var(--clr-gray-400) !important;
}

/* ── Página de produto — espaço abaixo da navbar fixa ───────────────────── */
.woo-single-product {
  padding-top: calc(var(--navbar-h) + var(--sp-10));
}

/* ── Shell geral WooCommerce (loja, carrinho, checkout, minha conta) ─────── */
.woo-main {
  padding-top: calc(var(--navbar-h) + var(--sp-10));
  padding-bottom: var(--sp-16);
  min-height: 60vh;
}

/* ── Página de produto individual ─────────────────────────────────────────── */
.woocommerce div.product {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 760px);
  gap: clamp(var(--sp-8), 5vw, var(--sp-16));
  align-items: start;
  justify-content: center;
  margin-top: var(--sp-8);
}

.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .summary {
  float: none !important;
  clear: none !important;
  max-width: none;
}

.woocommerce div.product .woocommerce-product-gallery {
  position: sticky;
  top: 100px;
  /* O JS do WooCommerce (flexslider) define width inline baseado nas miniaturas.
     Forçamos a galeria a preencher a coluna do grid. */
  width: 100% !important;
}

.woocommerce div.product .summary {
  width: 100% !important;
  min-width: 0;
}

.woocommerce div.product .woocommerce-product-gallery .flex-viewport,
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  width: 100% !important;
}

.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  width: 100% !important;
}

.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img {
  width: 100%;
  height: auto;
  border-radius: var(--r-lg);
  box-shadow: 0 4px 20px rgba(0,0,0,0.10);
}

.woocommerce div.product .product_title {
  font-family: var(--ff-heading);
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: var(--clr-black);
  line-height: var(--lh-snug);
  margin-bottom: var(--sp-4);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--clr-gold-dark);
  margin-bottom: var(--sp-5);
  display: block;
}

.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--clr-gray-600);
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  margin-bottom: var(--sp-6);
}

.woocommerce div.product .woocommerce-product-details__short-description p {
  max-width: 100%;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
  background-color: var(--clr-gold);
  color: var(--clr-white);
  font-family: var(--ff-body);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  border-radius: var(--r-full);
  border: none;
  padding: 0.85em 2.5em;
  font-size: var(--fs-md);
  cursor: pointer;
  transition: background-color var(--e-fast);
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background-color: var(--clr-gold-dark);
}

@media (max-width: 768px) {
  .woocommerce div.product {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .woocommerce div.product .woocommerce-product-gallery {
    position: static;
    max-width: 360px;
    margin-inline: auto;
  }
}

/* ── Botões gerais WooCommerce ────────────────────────────────────────────── */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  background-color: var(--clr-gold);
  color: var(--clr-white);
  font-family: var(--ff-body);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  border-radius: var(--r-full);
  border: none;
  padding: 0.80em 2em;
  font-size: var(--fs-md);
  cursor: pointer;
  transition: background-color var(--e-fast);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background-color: var(--clr-gold-dark);
  color: var(--clr-white);
}

/* ── Controle de quantidade no grid de produtos ───────────────────────────── */
.oficina-qty-ctrl {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-1);
  width: calc(100% - 2 * var(--sp-3));
  margin: auto var(--sp-3) var(--sp-3);
  background-color: var(--clr-gold);
  border-radius: var(--r-full);
  padding: 0.40em var(--sp-2);
  box-sizing: border-box;
  transition: opacity var(--e-fast);
}

.oficina-qty-ctrl.is-loading {
  opacity: 0.55;
  pointer-events: none;
}

.oficina-qty-btn {
  background: transparent;
  border: none;
  color: var(--clr-white);
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background-color var(--e-fast);
}

.oficina-qty-btn:hover {
  background-color: rgba(255, 255, 255, 0.25);
}

.oficina-qty-val {
  color: var(--clr-white);
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  font-weight: 700;
  min-width: 1.6em;
  text-align: center;
}

/* ── Botão "Limpar carrinho" ──────────────────────────────────────────────── */
.oficina-btn-limpar-carrinho {
  background-color: transparent !important;
  color: var(--clr-gray-400) !important;
  border: 1px solid var(--clr-gray-200) !important;
  font-size: var(--fs-xs) !important;
  padding: 0.60em 1.4em !important;
  border-radius: var(--r-full) !important;
  font-weight: 600 !important;
  letter-spacing: var(--ls-wide) !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: border-color var(--e-fast), color var(--e-fast) !important;
  cursor: pointer !important;
}

.oficina-btn-limpar-carrinho:hover {
  border-color: #e53e3e !important;
  color: #e53e3e !important;
  background-color: transparent !important;
}

/* ── Breadcrumb ───────────────────────────────────────────────────────────── */
.woocommerce .woocommerce-breadcrumb {
  font-size: var(--fs-sm);
  color: var(--clr-gray-400);
  margin-bottom: var(--sp-6);
}

.woocommerce .woocommerce-breadcrumb a {
  color: var(--clr-gold-dark);
  text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover { text-decoration: underline; }

/* ── Mensagens de notificação ─────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--clr-gold) !important;
  font-size: var(--fs-sm);
}

.woocommerce-message .button,
.woocommerce-info .button {
  background-color: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  border-radius: var(--r-full) !important;
}

/* ── Formulários (checkout / minha conta) ────────────────────────────────── */
.woocommerce form .form-row label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--clr-gray-700);
  margin-bottom: var(--sp-1);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-md);
  padding: var(--sp-3) var(--sp-4);
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  color: var(--clr-black);
  transition: border-color var(--e-fast);
  width: 100%;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  outline: none;
  border-color: var(--clr-gold);
}

/* ── Tabela do carrinho ───────────────────────────────────────────────────── */
.woocommerce table.cart td,
.woocommerce table.cart th {
  vertical-align: middle;
  font-size: var(--fs-sm);
}

.woocommerce table.cart .product-name a {
  font-family: var(--ff-heading);
  font-weight: 700;
  color: var(--clr-black);
}

.woocommerce table.cart .product-name a:hover { color: var(--clr-gold-dark); }

/* ── Totais do carrinho ───────────────────────────────────────────────────── */
.woocommerce .cart-collaterals .cart_totals h2 {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  border-bottom: 2px solid var(--clr-gold);
  padding-bottom: var(--sp-3);
  margin-bottom: var(--sp-5);
}

/* ── Paginação ────────────────────────────────────────────────────────────── */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  font-size: var(--fs-sm);
  color: var(--clr-gray-600);
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background-color: var(--clr-gold);
  color: var(--clr-white) !important;
  border-color: var(--clr-gold);
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — CARRINHO
   ══════════════════════════════════════════════════════════════════════════ */

/* Tabela completa do carrinho */
.woocommerce-cart table.cart {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}

.woocommerce-cart table.cart thead th {
  background: var(--clr-cream);
  font-family: var(--ff-body);
  font-weight: 700;
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
  color: var(--clr-gray-600);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 2px solid var(--clr-gray-200);
}

.woocommerce-cart table.cart td {
  padding: var(--sp-4);
  border-bottom: 1px solid var(--clr-gray-100);
  vertical-align: middle;
}

/* Coluna da imagem do produto */
.woocommerce-cart table.cart td.product-thumbnail {
  width: 80px;
}

.woocommerce-cart table.cart td.product-thumbnail img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: var(--r-md);
  border: 1px solid var(--clr-gray-100);
}

/* Nome do produto */
.woocommerce-cart table.cart td.product-name a {
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--clr-black);
  text-decoration: none;
}

.woocommerce-cart table.cart td.product-name a:hover {
  color: var(--clr-gold-dark);
}

/* Botão remover item */
.woocommerce-cart table.cart td.product-remove a.remove {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--clr-gray-100);
  color: var(--clr-gray-500) !important;
  border-radius: 50%;
  font-size: 1.1rem;
  line-height: 1;
  text-decoration: none;
  transition: background var(--e-fast), color var(--e-fast);
}

.woocommerce-cart table.cart td.product-remove a.remove:hover {
  background: #fee2e2;
  color: #dc2626 !important;
}

/* Campo de quantidade */
.woocommerce-cart table.cart .quantity input {
  width: 64px;
  padding: var(--sp-2) var(--sp-3);
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-md);
  font-size: var(--fs-sm);
  text-align: center;
}

/* Botão "Atualizar carrinho" */
.woocommerce-cart table.cart td.actions .button[name="update_cart"] {
  background: transparent;
  color: var(--clr-gray-600);
  border: 1.5px solid var(--clr-gray-300);
  border-radius: var(--r-full);
  padding: 0.55em 1.4em;
  font-size: var(--fs-sm);
  font-weight: 600;
  cursor: pointer;
  transition: border-color var(--e-fast), color var(--e-fast);
}

.woocommerce-cart table.cart td.actions .button[name="update_cart"]:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold-dark);
  background: transparent;
}

/* Cupom de desconto */
.woocommerce-cart table.cart td.actions #coupon_code {
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-full);
  padding: 0.55em 1.2em;
  font-size: var(--fs-sm);
  margin-right: var(--sp-2);
}

.woocommerce-cart table.cart td.actions .button[name="apply_coupon"] {
  border-radius: var(--r-full);
  padding: 0.55em 1.4em;
  font-size: var(--fs-sm);
}

/* ── Colaterais / Totais do carrinho ─────────────────────────────────────── */
.woocommerce .cart-collaterals {
  margin-top: var(--sp-10);
}

.woocommerce .cart_totals {
  max-width: 480px;
  margin-left: auto;
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8);
  box-shadow: 0 2px 16px rgba(0,0,0,0.05);
}

.woocommerce .cart_totals h2 {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-black);
  border-bottom: 2px solid var(--clr-gold);
  padding-bottom: var(--sp-3);
  margin-bottom: var(--sp-5);
}

.woocommerce .cart_totals table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--sp-6);
}

.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--clr-gray-100);
  font-size: var(--fs-sm);
}

.woocommerce .cart_totals table th {
  font-weight: 600;
  color: var(--clr-gray-600);
  width: 40%;
}

.woocommerce .cart_totals table tr.order-total th,
.woocommerce .cart_totals table tr.order-total td {
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
  border-bottom: none;
  padding-top: var(--sp-4);
}

.woocommerce .cart_totals table tr.order-total .amount {
  color: var(--clr-gold-dark);
}

/* Botão "Finalizar compra" */
.woocommerce .wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  background-color: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  font-family: var(--ff-body) !important;
  font-weight: 700 !important;
  font-size: var(--fs-md) !important;
  letter-spacing: var(--ls-wide) !important;
  text-transform: uppercase !important;
  border-radius: var(--r-full) !important;
  padding: 0.9em 2em !important;
  text-align: center !important;
  text-decoration: none !important;
  border: none !important;
  transition: background-color var(--e-fast) !important;
  cursor: pointer !important;
}

.woocommerce .wc-proceed-to-checkout .checkout-button:hover {
  background-color: var(--clr-gold-dark) !important;
}

/* Carrinho vazio */
.woocommerce-cart .woocommerce-info {
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8) var(--sp-6);
  font-size: var(--fs-md);
  color: var(--clr-gray-600);
  text-align: center;
}

.woocommerce-cart .return-to-shop .button {
  background-color: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  border-radius: var(--r-full) !important;
  padding: 0.75em 2em !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  display: inline-block !important;
  margin-top: var(--sp-4) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — CHECKOUT
   ══════════════════════════════════════════════════════════════════════════ */

/* Remove floats legados do WooCommerce */
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review,
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
}

/* Layout 2 colunas via grid no próprio form.checkout */
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: 1fr 420px;
  column-gap: var(--sp-10);
  align-items: start;
}

/* Coluna esquerda: dados do comprador */
.woocommerce-checkout form.checkout #customer_details {
  grid-column: 1;
  grid-row: 1 / 3;
}

/* Coluna direita: título + resumo do pedido */
.woocommerce-checkout form.checkout #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-black);
  border-bottom: 2px solid var(--clr-gold);
  padding-bottom: var(--sp-3);
  margin-bottom: 0;
  align-self: end;
}

.woocommerce-checkout form.checkout #order_review {
  grid-column: 2;
  grid-row: 2;
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8);
  box-shadow: 0 2px 16px rgba(0,0,0,0.05);
  margin-top: var(--sp-4);
}

/* Campos lado a lado dentro do col2-set */
.woocommerce-checkout .col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-6);
}

/* Título de seção do formulário de endereço */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
  border-bottom: 2px solid var(--clr-gold);
  padding-bottom: var(--sp-3);
  margin-bottom: var(--sp-5);
}

/* Tabela de revisão do pedido */
.woocommerce-checkout table.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
  margin-bottom: var(--sp-4);
}

.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--clr-gray-100);
}

.woocommerce-checkout table.shop_table tfoot tr:last-child th,
.woocommerce-checkout table.shop_table tfoot tr:last-child td {
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
  border-bottom: none;
  padding-top: var(--sp-4);
}

.woocommerce-checkout table.shop_table tfoot .amount {
  color: var(--clr-gold-dark);
}

/* Seção de métodos de pagamento */
.woocommerce-checkout #payment {
  background: var(--clr-cream);
  border-radius: var(--r-lg);
  padding: var(--sp-6);
  margin-top: var(--sp-4);
}

.woocommerce-checkout #payment ul.payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--sp-4);
}

.woocommerce-checkout #payment ul.payment_methods li {
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--clr-gray-200);
}

.woocommerce-checkout #payment ul.payment_methods li:last-child {
  border-bottom: none;
}

.woocommerce-checkout #payment ul.payment_methods li label {
  font-weight: 600;
  font-size: var(--fs-sm);
  color: var(--clr-gray-700);
  cursor: pointer;
}

.woocommerce-checkout #payment div.payment_box {
  background: var(--clr-white);
  border-radius: var(--r-md);
  padding: var(--sp-4);
  margin-top: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--clr-gray-600);
}

/* Botão "Realizar pedido" */
#place_order {
  display: block;
  width: 100%;
  background-color: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  font-family: var(--ff-body) !important;
  font-weight: 700 !important;
  font-size: var(--fs-md) !important;
  letter-spacing: var(--ls-wide) !important;
  text-transform: uppercase !important;
  border-radius: var(--r-full) !important;
  padding: 0.9em 2em !important;
  border: none !important;
  cursor: pointer !important;
  transition: background-color var(--e-fast) !important;
  margin-top: var(--sp-6) !important;
}

#place_order:hover {
  background-color: var(--clr-gold-dark) !important;
}

@media (max-width: 900px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
  }

  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review {
    grid-column: 1;
    grid-row: auto;
  }

  .woocommerce-checkout .col2-set {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — PRODUTO INDIVIDUAL (melhorias adicionais)
   ══════════════════════════════════════════════════════════════════════════ */

/* Breadcrumb do produto */
.woocommerce .woocommerce-breadcrumb {
  background: var(--clr-cream);
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-md);
  margin-bottom: var(--sp-6);
  font-size: var(--fs-xs);
  color: var(--clr-gray-500);
}

/* Estrelas de avaliação */
.woocommerce .star-rating {
  color: var(--clr-gold);
  margin-bottom: var(--sp-4);
}

/* Meta do produto (SKU, categori) */
.woocommerce div.product .product_meta {
  font-size: var(--fs-xs);
  color: var(--clr-gray-500);
  border-top: 1px solid var(--clr-gray-100);
  margin-top: var(--sp-6);
  padding-top: var(--sp-4);
}

.woocommerce div.product .product_meta span {
  display: block;
  margin-bottom: var(--sp-1);
}

.woocommerce div.product .product_meta a {
  color: var(--clr-gold-dark);
}

/* Campo de quantidade no produto */
.woocommerce div.product form.cart .quantity {
  display: inline-flex;
  align-items: center;
  margin-right: var(--sp-4);
}

.woocommerce div.product form.cart .quantity input {
  width: 72px;
  padding: 0.7em 0.8em;
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-md);
  font-size: var(--fs-sm);
  text-align: center;
}

.woocommerce div.product form.cart {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--sp-4);
  margin-top: var(--sp-6);
}

/* Abas do produto (descrição, avaliações) */
.woocommerce div.product .woocommerce-tabs {
  margin-top: var(--sp-12);
  grid-column: 1 / -1;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: var(--sp-2);
  border-bottom: 2px solid var(--clr-gray-200);
  padding: 0;
  margin: 0 0 var(--sp-6);
  list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: var(--sp-3) var(--sp-5);
  font-weight: 600;
  font-size: var(--fs-sm);
  color: var(--clr-gray-500);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color var(--e-fast), border-color var(--e-fast);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--clr-gold-dark);
  border-bottom-color: var(--clr-gold);
}

.woocommerce div.product .woocommerce-tabs .panel {
  font-size: var(--fs-md);
  color: var(--clr-gray-700);
  line-height: var(--lh-relaxed);
  max-width: 72ch;
}

/* Produtos relacionados */
.woocommerce div.product .related.products {
  grid-column: 1 / -1;
  margin-top: var(--sp-12);
}

.woocommerce div.product .related.products > h2 {
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--clr-black);
  margin-bottom: var(--sp-6);
  border-bottom: 2px solid var(--clr-gold);
  padding-bottom: var(--sp-3);
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — MINHA CONTA
   ══════════════════════════════════════════════════════════════════════════ */

/* Layout 2 colunas: nav lateral | conteúdo */
.woocommerce-MyAccount-wrapper {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: var(--sp-10);
  align-items: start;
}

/* Navegação lateral da conta */
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-sm);
}

.woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--clr-gray-100);
}

.woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: none;
}

.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: var(--sp-4) var(--sp-5);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--clr-gray-700);
  text-decoration: none;
  transition: background-color var(--e-fast), color var(--e-fast);
}

.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.wc-forward a {
  background-color: var(--clr-gold-subtle);
  color: var(--clr-gold-dark);
}

/* Indicador de item ativo */
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard a,
.woocommerce-MyAccount-navigation ul li a[href*="orders"],
.woocommerce-MyAccount-navigation ul li a[href*="address"],
.woocommerce-MyAccount-navigation ul li a[href*="edit-account"] {
  font-weight: 500;
}

/* Conteúdo da conta */
.woocommerce-MyAccount-content {
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8);
  box-shadow: var(--sh-sm);
}

.woocommerce-MyAccount-content h2 {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-black);
  border-bottom: 2px solid var(--clr-gold);
  padding-bottom: var(--sp-3);
  margin-bottom: var(--sp-6);
}

/* Tabela de pedidos na conta */
.woocommerce-orders-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}

.woocommerce-orders-table th {
  font-weight: 700;
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
  color: var(--clr-gray-500);
  padding: var(--sp-3) var(--sp-4);
  background: var(--clr-cream);
  border-bottom: 2px solid var(--clr-gray-200);
  text-align: left;
}

.woocommerce-orders-table td {
  padding: var(--sp-4);
  border-bottom: 1px solid var(--clr-gray-100);
  vertical-align: middle;
}

.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button {
  font-size: var(--fs-xs) !important;
  padding: 0.45em 1.2em !important;
}

/* Status do pedido */
.woocommerce-order-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: var(--r-full);
  font-size: var(--fs-2xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
}

.woocommerce-order-status.status-completed  { background: #d1fae5; color: #065f46; }
.woocommerce-order-status.status-processing { background: #dbeafe; color: #1e40af; }
.woocommerce-order-status.status-on-hold    { background: #fef3c7; color: #92400e; }
.woocommerce-order-status.status-pending    { background: var(--clr-cream); color: var(--clr-gray-600); }
.woocommerce-order-status.status-cancelled  { background: #fee2e2; color: #991b1b; }
.woocommerce-order-status.status-refunded   { background: #f3e8ff; color: #6b21a8; }

@media (max-width: 700px) {
  .woocommerce-MyAccount-wrapper {
    grid-template-columns: 1fr;
  }

  .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    border-radius: var(--r-lg);
  }

  .woocommerce-MyAccount-navigation ul li {
    border-bottom: none;
    border-right: 1px solid var(--clr-gray-100);
  }

  .woocommerce-MyAccount-navigation ul li a {
    padding: var(--sp-3) var(--sp-4);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — PEDIDO CONFIRMADO (Thank You Page)
   ══════════════════════════════════════════════════════════════════════════ */

.woocommerce-order {
  max-width: 720px;
  margin: 0 auto;
}

/* Caixa de confirmação */
.woocommerce-order .woocommerce-order-overview {
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8);
  box-shadow: var(--sh-sm);
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-6);
  margin: var(--sp-8) 0;
}

.woocommerce-order .woocommerce-order-overview li {
  font-size: var(--fs-sm);
  color: var(--clr-gray-600);
}

.woocommerce-order .woocommerce-order-overview li strong {
  display: block;
  font-family: var(--ff-heading);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--clr-black);
  margin-top: var(--sp-1);
}

/* Mensagem de confirmação */
.woocommerce-order .woocommerce-thankyou-order-received {
  font-family: var(--ff-heading);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--clr-success);
  margin-bottom: var(--sp-4);
}

/* Detalhes do pedido */
.woocommerce-order-details,
.woocommerce-customer-details {
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8);
  box-shadow: var(--sh-sm);
  margin-bottom: var(--sp-8);
}

.woocommerce-order-details h2,
.woocommerce-customer-details h2 {
  font-family: var(--ff-heading);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--clr-black);
  border-bottom: 2px solid var(--clr-gold);
  padding-bottom: var(--sp-3);
  margin-bottom: var(--sp-5);
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — EMPTY STATE (loja sem produtos)
   ══════════════════════════════════════════════════════════════════════════ */

.wc-empty-state {
  text-align: center;
  padding: var(--sp-16) var(--sp-8);
  color: var(--clr-gray-500);
  font-size: var(--fs-md);
}

.wc-empty-state a {
  color: var(--clr-gold-dark);
  font-weight: 600;
  text-decoration: none;
}

.wc-empty-state a:hover {
  text-decoration: underline;
}

/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE — FORMULÁRIO DE LOGIN / REGISTRO (Minha Conta não logado)
   ══════════════════════════════════════════════════════════════════════════ */

/* Centraliza e limita a largura do formulário de login */
.woocommerce-form-login,
.woocommerce-form-register {
  max-width: 480px;
  margin: 0 auto;
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-xl);
  padding: var(--sp-8);
  box-shadow: var(--sh-sm);
}

.woocommerce-form-login h2,
.woocommerce-form-register h2 {
  font-family: var(--ff-heading);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--clr-black);
  margin-bottom: var(--sp-6);
}

/* Campos do formulário */
.woocommerce-form-login .form-row,
.woocommerce-form-register .form-row {
  margin-bottom: var(--sp-4);
}

.woocommerce-form-login label,
.woocommerce-form-register label {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--clr-gray-700);
  margin-bottom: var(--sp-2);
}

.woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="password"],
.woocommerce-form-login input[type="email"],
.woocommerce-form-register input[type="text"],
.woocommerce-form-register input[type="password"],
.woocommerce-form-register input[type="email"] {
  width: 100%;
  padding: 0.75em 1em;
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-md);
  font-size: var(--fs-md);
  font-family: var(--ff-body);
  color: var(--clr-black);
  transition: border-color var(--e-fast);
  box-sizing: border-box;
}

.woocommerce-form-login input:focus,
.woocommerce-form-register input:focus {
  outline: none;
  border-color: var(--clr-gold);
}

/* Botão de submit */
.woocommerce-form-login .woocommerce-button,
.woocommerce-form-register .woocommerce-button {
  width: 100%;
  background: var(--clr-gold);
  color: var(--clr-white);
  border: none;
  border-radius: var(--r-full);
  padding: 0.85em 2em;
  font-family: var(--ff-body);
  font-size: var(--fs-md);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color var(--e-fast);
  margin-top: var(--sp-2);
}

.woocommerce-form-login .woocommerce-button:hover,
.woocommerce-form-register .woocommerce-button:hover {
  background: var(--clr-gold-dark);
}

/* Link "Esqueceu a senha" */
.woocommerce-LostPassword a,
.woocommerce-form-login .lost_password a {
  font-size: var(--fs-sm);
  color: var(--clr-gold-dark);
  text-decoration: none;
}

.woocommerce-LostPassword a:hover,
.woocommerce-form-login .lost_password a:hover {
  text-decoration: underline;
}

/* Wrapper dos dois formulários lado a lado (WC exibe login + register) */
.woocommerce-account .woocommerce > .col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-8);
  max-width: 1000px;
  margin: 0 auto;
}

.woocommerce-account .woocommerce > .col2-set .woocommerce-form-login,
.woocommerce-account .woocommerce > .col2-set .woocommerce-form-register {
  max-width: none;
  margin: 0;
}

@media (max-width: 700px) {
  .woocommerce-account .woocommerce > .col2-set {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   WOOCOMMERCE — Carrinho, checkout e conta (polimento de layout)
   ========================================================================== */

.woocommerce-cart .section--off-white,
.woocommerce-checkout .section--off-white,
.woocommerce-account .section--off-white {
  background:
    linear-gradient(180deg, var(--clr-off-white) 0%, var(--clr-cream) 100%);
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
  width: 100%;
}

.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-account .woocommerce-notices-wrapper {
  margin-bottom: var(--sp-6);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: var(--clr-white) !important;
  border: 1.5px solid var(--clr-gray-100) !important;
  border-top: 4px solid var(--clr-gold) !important;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-xs);
  color: var(--clr-gray-700);
  line-height: var(--lh-normal);
  padding: var(--sp-4) var(--sp-5) var(--sp-4) var(--sp-8) !important;
}

.woocommerce-error {
  border-top-color: var(--clr-error) !important;
}

.woocommerce table.shop_table {
  overflow: hidden;
  border: 1.5px solid var(--clr-gray-100) !important;
  border-radius: var(--r-xl) !important;
  background: var(--clr-white);
  box-shadow: var(--sh-sm);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: var(--clr-gray-100) !important;
}

.woocommerce table.shop_table td .amount,
.woocommerce table.shop_table th .amount {
  font-weight: 700;
  color: var(--clr-navy);
}

.woocommerce-cart table.cart {
  border-collapse: separate;
  border-spacing: 0;
}

.woocommerce-cart table.cart thead th {
  background: var(--clr-navy);
  color: var(--clr-white);
  border-bottom: 0;
}

.woocommerce-cart table.cart td.product-name a {
  line-height: var(--lh-snug);
}

.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal {
  white-space: nowrap;
}

.woocommerce-cart table.cart td.actions {
  padding: var(--sp-5);
  background: var(--clr-off-white);
}

.woocommerce-cart table.cart td.actions .coupon {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  flex-wrap: wrap;
}

.woocommerce-cart table.cart td.actions #coupon_code {
  min-height: 44px;
  min-width: min(260px, 100%);
  margin-right: 0;
}

.woocommerce-cart table.cart td.actions .button {
  min-height: 44px;
}

.woocommerce-cart table.cart td.actions .button[name="update_cart"],
.woocommerce-cart table.cart td.actions .oficina-btn-limpar-carrinho {
  float: right;
  margin-left: var(--sp-3);
}

.woocommerce .cart-collaterals {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
  gap: var(--sp-8);
  align-items: start;
}

.woocommerce .cart-collaterals::before,
.woocommerce .cart-collaterals::after {
  display: none;
}

.woocommerce .cart_totals {
  grid-column: 2;
  width: 100% !important;
  max-width: none;
  margin-left: 0;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-md);
}

.woocommerce .cart_totals .shop_table {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
}

.woocommerce .wc-proceed-to-checkout {
  padding-bottom: 0;
}

.woocommerce .wc-proceed-to-checkout .checkout-button,
#place_order {
  color: var(--clr-navy-dark) !important;
  box-shadow: var(--sh-gold);
}

.woocommerce .wc-proceed-to-checkout .checkout-button:hover,
#place_order:hover {
  color: var(--clr-white) !important;
  transform: translateY(-1px);
}

.woocommerce-checkout form.checkout {
  grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
  gap: var(--sp-8);
  max-width: 1120px;
  margin: 0 auto;
}

.woocommerce-checkout form.checkout #customer_details,
.woocommerce-checkout form.checkout #order_review {
  border-radius: var(--r-lg);
}

.woocommerce-checkout form.checkout #customer_details {
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  box-shadow: var(--sh-sm);
  padding: var(--sp-8);
}

.woocommerce-checkout form.checkout #order_review_heading {
  background: var(--clr-white);
  border: 1.5px solid var(--clr-gray-100);
  border-bottom: 0;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  box-shadow: var(--sh-sm);
  padding: var(--sp-6) var(--sp-6) var(--sp-4);
}

.woocommerce-checkout form.checkout #order_review {
  position: sticky;
  top: calc(var(--navbar-h) + var(--sp-6));
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  box-shadow: var(--sh-sm);
  padding: var(--sp-6);
}

.woocommerce-checkout .col2-set {
  display: block;
}

.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after {
  display: none;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--sp-5);
  row-gap: var(--sp-4);
}

.woocommerce-checkout form .form-row,
.woocommerce-checkout form .form-row-first,
.woocommerce-checkout form .form-row-last,
.woocommerce-checkout form .form-row-wide {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-checkout #billing_company_field,
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #billing_address_1_field,
.woocommerce-checkout #billing_address_2_field,
.woocommerce-checkout #billing_email_field,
.woocommerce-checkout #order_comments_field,
.woocommerce-checkout .woocommerce-additional-fields {
  grid-column: 1 / -1;
}

.woocommerce-checkout .woocommerce-additional-fields {
  margin-top: var(--sp-8);
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
  color: var(--clr-navy);
}

.woocommerce-checkout .form-row {
  margin-bottom: var(--sp-4);
}

.woocommerce form .form-row label {
  display: block;
}

.woocommerce form .form-row .required {
  color: var(--clr-red);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  min-height: 46px;
  background-color: var(--clr-white);
}

.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row textarea,
.woocommerce-checkout form .form-row select {
  display: block;
  width: 100% !important;
}

.woocommerce .select2-container .select2-selection--single {
  border: 1.5px solid var(--clr-gray-200);
  border-radius: var(--r-md);
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--clr-black);
  line-height: 44px;
  padding-left: var(--sp-4);
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 44px;
  right: var(--sp-2);
}

.woocommerce-checkout table.shop_table {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none;
}

.woocommerce-checkout table.shop_table thead th {
  color: var(--clr-gray-500);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}

.woocommerce-checkout #payment {
  background: var(--clr-off-white);
  border: 1px solid var(--clr-gray-100);
  padding: var(--sp-4);
}

.woocommerce-checkout #payment ul.payment_methods li {
  background: var(--clr-white);
  border: 1px solid var(--clr-gray-100);
  border-radius: var(--r-md);
  margin-bottom: var(--sp-3);
  padding: var(--sp-4);
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"],
.woocommerce-checkout #payment ul.payment_methods li input[type="checkbox"] {
  margin-right: var(--sp-2);
}

.woocommerce-checkout #payment ul.payment_methods li:last-child {
  margin-bottom: 0;
}

.woocommerce-checkout #payment div.payment_box {
  border: 1px solid var(--clr-gray-100);
  margin-left: 0;
  width: 100%;
}

.woocommerce-checkout .woocommerce-privacy-policy-text {
  margin: var(--sp-4) 0;
}

.woocommerce-checkout .woocommerce-privacy-policy-text p {
  max-width: none;
  color: var(--clr-gray-600);
  font-size: var(--fs-xs);
  line-height: var(--lh-relaxed);
}

.woocommerce-MyAccount-wrapper {
  grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
  gap: var(--sp-8);
}

.woocommerce-MyAccount-navigation {
  position: sticky;
  top: calc(var(--navbar-h) + var(--sp-6));
}

.woocommerce-MyAccount-navigation ul {
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
}

.woocommerce-MyAccount-navigation ul li a {
  position: relative;
  padding: var(--sp-4) var(--sp-5) var(--sp-4) var(--sp-6);
  line-height: var(--lh-snug);
}

.woocommerce-MyAccount-navigation ul li a::before {
  content: '';
  position: absolute;
  left: var(--sp-3);
  top: 50%;
  width: 4px;
  height: 4px;
  background: currentColor;
  border-radius: var(--r-full);
  opacity: 0.35;
  transform: translateY(-50%);
}

.woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--clr-navy);
  color: var(--clr-white);
}

.woocommerce-MyAccount-navigation ul li.is-active a::before {
  background: var(--clr-gold);
  opacity: 1;
}

.woocommerce-MyAccount-content {
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
}

.woocommerce-MyAccount-content > p:first-child {
  margin-bottom: var(--sp-5);
}

.woocommerce-MyAccount-content a:not(.button) {
  color: var(--clr-gold-dark);
  font-weight: 600;
}

.woocommerce-MyAccount-content a:not(.button):hover {
  color: var(--clr-navy);
}

.woocommerce-MyAccount-content form,
.woocommerce-MyAccount-content address,
.woocommerce-Address,
.woocommerce-order-details,
.woocommerce-customer-details {
  border-radius: var(--r-lg);
}

.woocommerce-MyAccount-content fieldset {
  border: 1.5px solid var(--clr-gray-100);
  border-radius: var(--r-lg);
  margin: var(--sp-6) 0;
  padding: var(--sp-6);
}

.woocommerce-MyAccount-content legend {
  color: var(--clr-navy);
  font-family: var(--ff-heading);
  font-weight: 700;
  padding: 0 var(--sp-2);
}

.woocommerce-orders-table,
.woocommerce-MyAccount-content table.shop_table {
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

.woocommerce-orders-table th,
.woocommerce-MyAccount-content table.shop_table th {
  background: var(--clr-navy);
  color: var(--clr-white);
}

.woocommerce-form-login,
.woocommerce-form-register {
  border-radius: var(--r-lg);
  box-shadow: var(--sh-md);
}

.woocommerce-account .woocommerce > h2 {
  max-width: 1000px;
  margin: 0 auto var(--sp-5);
  color: var(--clr-navy);
}

@media (max-width: 980px) {
  .woocommerce .cart-collaterals,
  .woocommerce-checkout form.checkout,
  .woocommerce-MyAccount-wrapper {
    grid-template-columns: 1fr;
  }

  .woocommerce .cart_totals,
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review {
    grid-column: 1;
  }

  .woocommerce-checkout form.checkout #order_review {
    position: static;
  }

  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    grid-template-columns: 1fr;
  }

  .woocommerce-MyAccount-navigation {
    position: static;
  }
}

@media (max-width: 782px) {
  .woocommerce-cart table.cart {
    border: 0 !important;
    box-shadow: none;
    background: transparent;
  }

  .woocommerce-cart table.cart thead {
    display: none;
  }

  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart tbody,
  .woocommerce-cart table.cart tr,
  .woocommerce-cart table.cart td {
    display: block;
    width: 100% !important;
  }

  .woocommerce-cart table.cart tr.cart_item {
    position: relative;
    margin-bottom: var(--sp-4);
    padding: var(--sp-5);
    background: var(--clr-white);
    border: 1.5px solid var(--clr-gray-100);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
  }

  .woocommerce-cart table.cart td {
    border-bottom: 0 !important;
    padding: var(--sp-2) 0;
    text-align: left !important;
  }

  .woocommerce-cart table.cart td.product-remove {
    position: absolute;
    top: var(--sp-4);
    right: var(--sp-4);
    width: auto !important;
    padding: 0;
  }

  .woocommerce-cart table.cart td.product-thumbnail {
    padding-right: var(--sp-10);
  }

  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 86px;
    height: 116px;
  }

  .woocommerce-cart table.cart td.product-price::before,
  .woocommerce-cart table.cart td.product-quantity::before,
  .woocommerce-cart table.cart td.product-subtotal::before {
    display: block;
    margin-bottom: var(--sp-1);
    color: var(--clr-gray-500);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: var(--ls-wide);
    text-transform: uppercase;
  }

  .woocommerce-cart table.cart td.product-price::before {
    content: 'Pre\00e7o';
  }

  .woocommerce-cart table.cart td.product-quantity::before {
    content: 'Quantidade';
  }

  .woocommerce-cart table.cart td.product-subtotal::before {
    content: 'Subtotal';
  }

  .woocommerce-cart table.cart td.actions {
    margin-top: var(--sp-5);
    border: 1.5px solid var(--clr-gray-100) !important;
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
  }

  .woocommerce-cart table.cart td.actions .coupon,
  .woocommerce-cart table.cart td.actions #coupon_code,
  .woocommerce-cart table.cart td.actions .button {
    width: 100%;
  }

  .woocommerce-cart table.cart td.actions .button[name="update_cart"],
  .woocommerce-cart table.cart td.actions .oficina-btn-limpar-carrinho {
    float: none;
    margin: var(--sp-3) 0 0;
  }

  .woocommerce .cart_totals {
    padding: var(--sp-6);
  }

  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-MyAccount-content,
  .woocommerce-form-login,
  .woocommerce-form-register {
    padding: var(--sp-6);
  }

  .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .woocommerce-MyAccount-navigation ul li {
    border-right: 1px solid var(--clr-gray-100);
  }
}

@media (max-width: 520px) {
  .woocommerce-cart table.cart tr.cart_item,
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review,
  .woocommerce-MyAccount-content,
  .woocommerce-form-login,
  .woocommerce-form-register {
    padding: var(--sp-5);
  }

  .woocommerce-checkout form.checkout #order_review_heading {
    padding: var(--sp-5) var(--sp-5) var(--sp-3);
  }

  .woocommerce-MyAccount-navigation ul {
    grid-template-columns: 1fr;
  }

  .woocommerce-MyAccount-navigation ul li {
    border-right: 0;
  }
}
