/* ============================================
   73Ω · Shared stylesheet for V2 Editorial Green
   Used by: v2-catalog.html · shop.html · produto.html ·
            blog.html · artigo.html
   Brand palette: cream #f4e7c7 · teal #124c58 · ink #2d2c2d
   ============================================ */

:root {
  --paper: #f4e7c7;
  --paper2: #ede0bc;
  --paper-hi: #f8eed0;
  --ink: #2d2c2d;
  --ink-soft: #4a4540;
  --muted: #6a604e;
  --accent: #124c58;
  --accent-soft: #2c6b76;
  --amber: #c08f1a;
  --rule: #8a7e5d;
  --rule-soft: #c7b88a;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'IBM Plex Serif', Georgia, serif;
  background: var(--paper);
  color: var(--ink);
  line-height: 1.6;
  font-size: 15px;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(0,0,0,0.02) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(0,0,0,0.02) 0%, transparent 50%),
    repeating-linear-gradient(135deg, rgba(138,126,93,0.012) 0 2px, transparent 2px 6px);
}
a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--ink); }

.container { max-width: 1160px; margin: 0 auto; padding: 0 24px; }

/* Variant switcher */
.variant-switcher {
  position: fixed;
  top: 10px;
  right: 10px;
  z-index: 200;
  background: var(--paper2);
  border: 1px solid var(--ink);
  padding: 5px 10px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
}
.variant-switcher a { color: var(--ink); margin: 0 4px; text-decoration: none; }
.variant-switcher a.active { color: var(--accent); font-weight: 600; }

/* ============================================
   Masthead
   ============================================ */
header.masthead {
  border-bottom: 4px double var(--ink);
  padding: 22px 0 10px;
}
.masthead-top {
  display: flex;
  justify-content: space-between;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 10px;
  gap: 16px;
  flex-wrap: wrap;
}
.masthead-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px;
  padding: 8px 0 4px;
}
.masthead-title .brand-logo {
  display: block;
  height: clamp(56px, 7vw, 88px);
  width: auto;
}
.masthead-title .edition {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  text-align: right;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.55;
  color: var(--ink-soft);
}
.masthead-title .edition strong {
  color: var(--ink);
  display: block;
  font-size: 14px;
  letter-spacing: 0;
}
.masthead-sub {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  color: var(--ink-soft);
  padding-top: 10px;
  display: flex;
  gap: 28px;
  letter-spacing: 0.05em;
  flex-wrap: wrap;
}
.masthead-sub a { color: var(--ink-soft); text-decoration: none; }
.masthead-sub a:hover { color: var(--accent); }
.masthead-sub .spacer { margin-left: auto; color: var(--muted); }

/* Cart item in the primary nav — icon + count, sits at the end of the
   nav next to "Sobre". No margin-left:auto — stays grouped with the
   other items so the nav reads as one cohesive cluster. */
nav.top ul li.menu-item-cart > a.masthead-cart-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  /* Inherits nav.top a styling: padding 12px 20px, mono uppercase, paper color */
}
nav.top ul li.menu-item-cart .cart-icon {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}
nav.top ul li.menu-item-cart .cart-count {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--amber);
  letter-spacing: 0;
  line-height: 1;
}
/* Hover on the whole link mirrors other nav items but the count stays amber */
nav.top ul li.menu-item-cart > a.masthead-cart-link:hover {
  background: var(--accent);
  color: var(--paper);
}
nav.top ul li.menu-item-cart > a.masthead-cart-link:hover .cart-count {
  color: var(--paper);
}
/* Empty cart: icon dimmed, no count visible */
nav.top ul li.menu-item-cart > a.masthead-cart-link[data-count="0"] .cart-icon {
  opacity: 0.6;
}

/* ============================================
   Nav
   ============================================ */
nav.top {
  background: var(--ink);
  color: var(--paper);
  margin-bottom: 36px;
}
nav.top ul {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 0;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  flex-wrap: wrap;
}
nav.top a {
  display: block;
  padding: 12px 20px;
  color: var(--paper);
  text-decoration: none;
  border-right: 1px solid rgba(244,231,199,0.14);
}
nav.top li:first-child a { border-left: 1px solid rgba(244,231,199,0.14); }
nav.top a:hover { background: var(--accent); color: var(--paper); }
nav.top a.active { background: var(--amber); color: var(--ink); font-weight: 600; }

/* ============================================
   Section titles
   ============================================ */
.section-title {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 40px;
  letter-spacing: -0.02em;
  margin-bottom: 4px;
  color: var(--ink);
}
.section-title em { font-style: italic; color: var(--accent); }
.section-title.compact { font-size: 28px; }
.section-lede {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--rule);
  padding-bottom: 10px;
  margin-bottom: 28px;
}
.eyebrow {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
}

/* ============================================
   Buttons
   ============================================ */
.btn {
  display: inline-block;
  padding: 12px 22px;
  background: var(--accent);
  color: var(--paper);
  text-decoration: none;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: 2px solid var(--accent);
  font-weight: 600;
  transition: all 0.15s;
  cursor: pointer;
}
.btn:hover { background: transparent; color: var(--accent); }
.btn.outline {
  background: transparent;
  color: var(--ink);
  border-color: var(--ink);
}
.btn.outline:hover { background: var(--ink); color: var(--paper); }
.btn.sm { padding: 8px 14px; font-size: 11px; }

/* ============================================
   Breadcrumb
   ============================================ */
.breadcrumb {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--rule);
}
.breadcrumb a { color: var(--muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--accent); }
.breadcrumb .sep { margin: 0 8px; color: var(--rule); }
.breadcrumb .current { color: var(--ink); }

/* ============================================
   Footer
   ============================================ */
footer {
  border-top: 4px double var(--ink);
  padding: 36px 0 24px;
  font-size: 13px;
  color: var(--ink-soft);
  margin-top: 56px;
}
footer .grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 32px;
  margin-bottom: 28px;
}
footer h5 {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  margin-bottom: 10px;
  letter-spacing: -0.01em;
  color: var(--ink);
}
footer ul { list-style: none; font-family: 'IBM Plex Mono', monospace; font-size: 12px; }
footer li { padding: 2px 0; }
footer li a { color: var(--ink-soft); text-decoration: none; }
footer li a:hover { color: var(--accent); text-decoration: underline; }
footer .brand-foot {
  height: 52px;
  width: auto;
  margin-bottom: 14px;
}
footer .colophon {
  border-top: 1px solid var(--rule);
  padding-top: 14px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  text-transform: uppercase;
  color: var(--muted);
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 840px) {
  footer .grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  /* Masthead stacks centered on mobile */
  .masthead-top {
    justify-content: center;
    text-align: center;
    font-size: 10px;
    letter-spacing: 0.12em;
    gap: 6px 14px;
  }
  .masthead-title {
    flex-direction: column;
    justify-content: center;
    text-align: center;
    gap: 12px;
    padding: 6px 0 4px;
  }
  .masthead-title .edition {
    text-align: center;
    font-size: 11px;
  }
  .masthead-title .brand-logo {
    height: clamp(52px, 14vw, 72px);
  }
  .masthead-sub {
    justify-content: center;
    gap: 14px;
    font-size: 11px;
  }
  .masthead-sub .spacer { margin-left: 0; }
  /* Tighten primary nav so 5 items fit on two rows comfortably */
  nav.top { margin-bottom: 24px; }
  nav.top a {
    padding: 10px 14px;
    font-size: 11px;
    letter-spacing: 0.1em;
  }
}
@media (max-width: 560px) {
  footer .grid { grid-template-columns: 1fr; }
}

/* ============================================
   Propagation board (HF band conditions)
   ============================================ */
.prop-board {
  border: 3px double var(--ink);
  background: var(--paper-hi);
  padding: 28px 32px;
  margin-bottom: 56px;
  position: relative;
}
.prop-board::before {
  content: 'PROPAGAÇÃO';
  position: absolute;
  top: -10px;
  left: 24px;
  background: var(--paper);
  padding: 0 10px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.25em;
  color: var(--accent);
}
.prop-board-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}
.prop-board-head .section-title { font-size: 30px; }
.prop-board-head .section-lede {
  border: 0; padding: 0; margin: 6px 0 0; color: var(--muted); font-size: 11px;
}
.prop-meta {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
}
.prop-meta time { color: var(--ink); font-weight: 600; }
.prop-stale {
  background: var(--amber);
  color: var(--ink);
  padding: 2px 8px;
  font-weight: 600;
  letter-spacing: 0.15em;
}
.prop-indices {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  color: var(--ink-soft);
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px dashed var(--rule);
}
.prop-idx b {
  color: var(--accent);
  margin-right: 6px;
  letter-spacing: 0.1em;
}
.prop-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'IBM Plex Sans', sans-serif;
}
.prop-table th {
  text-align: left;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 8px 12px;
  border-bottom: 1px solid var(--rule);
}
.prop-table td {
  padding: 14px 12px;
  border-bottom: 1px dashed var(--rule-soft);
  vertical-align: middle;
  font-size: 14px;
  color: var(--ink-soft);
}
.prop-table tbody tr:last-child td { border-bottom: 0; }
.prop-band {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 18px;
  color: var(--ink);
  width: 80px;
}
.prop-note { color: var(--ink-soft); }
.prop-pill {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid var(--accent);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  font-weight: 600;
  text-transform: uppercase;
  min-width: 64px;
  text-align: center;
  background: var(--paper);
}
.prop-pill.good    { color: #1f6b3a; border-color: #1f6b3a; }
.prop-pill.fair    { color: #b07417; border-color: #b07417; }
.prop-pill.poor    { color: var(--accent); border-color: var(--accent); }
.prop-pill.unknown { color: var(--muted); border-color: var(--rule); border-style: dashed; }

@media (max-width: 640px) {
  .prop-board { padding: 22px 18px; }
  .prop-table th:nth-child(4),
  .prop-table td:nth-child(4) { display: none; }
  .prop-table th, .prop-table td { padding: 10px 8px; }
  .prop-band { font-size: 16px; width: 60px; }
  .prop-pill { min-width: 52px; padding: 3px 8px; font-size: 10px; }
}

/* ============================================
   Reusable product card (shop + catalog)
   ============================================ */
.prod-card {
  position: relative;
  padding-top: 22px;
}
.prod-card .badge {
  position: absolute;
  top: -4px;
  right: 0;
  background: var(--accent);
  color: var(--paper);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  padding: 4px 10px;
  font-weight: 600;
  transform: rotate(3deg);
  text-transform: uppercase;
}
.prod-card .badge.amber { background: var(--amber); color: var(--ink); }
.prod-card .figure {
  border: 1px solid var(--ink);
  padding: 18px;
  background: var(--paper2);
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  overflow: hidden;
}
.prod-card .figure svg { width: 82%; height: 82%; }
.prod-card .figure img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.prod-card h3, .prod-card h4 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 22px;
  margin-bottom: 6px;
  line-height: 1.2;
  color: var(--ink);
}
.prod-card h3 em, .prod-card h4 em { font-style: italic; color: var(--accent); }
.prod-card .specs {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  color: var(--ink-soft);
  margin-bottom: 14px;
}
.prod-card .specs span {
  display: block;
  padding: 2px 0;
  border-bottom: 1px dashed var(--rule);
}
.prod-card .price-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.prod-card .price {
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  font-weight: 900;
  color: var(--ink);
}
.prod-card .price small { font-size: 12px; color: var(--muted); font-weight: normal; }
.prod-card a.order {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 2px solid var(--amber);
  padding-bottom: 2px;
}
.prod-card a.order:hover { color: var(--accent); border-color: var(--accent); }

/* ================================================================
 * Pix por Piggly — restyle to V2 editorial green
 * Plugin ships its own front CSS (lime-green pills, gray boxes,
 * sans-serif body); we override class-by-class with !important to
 * fight specificity. Targets only .pix-por-piggly--* and the
 * "Pagar pedido" order-pay surface.
 * ================================================================ */
.pix-por-piggly-logo {
  display: block;
  margin: 0 auto 8px;
  width: 56px;
  height: 56px;
  fill: var(--accent) !important;
}

.pix-por-piggly-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 900 !important;
  font-size: 34px !important;
  line-height: 1.1 !important;
  color: var(--ink) !important;
  text-align: center !important;
  margin: 4px auto 18px !important;
  letter-spacing: -0.01em !important;
}
.pix-por-piggly-title strong {
  color: var(--accent) !important;
  font-style: italic;
  font-weight: 900 !important;
}

.pix-por-piggly--description,
.pix-por-piggly--centered {
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--ink-soft) !important;
}
.pix-por-piggly--space { margin: 18px 0 !important; }

.pix-por-piggly--label {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ink-soft) !important;
  font-weight: 600 !important;
  display: block;
  margin-bottom: 8px !important;
}

.pix-por-piggly--data {
  background: var(--paper2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 0 !important;
  padding: 14px 16px !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  color: var(--ink) !important;
  word-break: break-all;
  display: block;
  box-shadow: none !important;
}

/* Buttons (Enviar Comprovante, Copiar Pix, Copiar Valor, Whatsapp) */
.pix-por-piggly--button,
.pix-por-piggly-form button[type="submit"],
.pix-por-piggly-form input[type="submit"] {
  background: var(--accent) !important;
  color: var(--paper) !important;
  border: 2px solid var(--accent) !important;
  border-radius: 0 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 12px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 12px 22px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: all 0.15s !important;
  cursor: pointer;
}
.pix-por-piggly--button:hover {
  background: transparent !important;
  color: var(--accent) !important;
}
/* Whatsapp keeps green vibe but flat editorial */
.pix-por-piggly--button[href*="wa.me"] {
  background: #1a8a4a !important;
  border-color: #1a8a4a !important;
}
.pix-por-piggly--button[href*="wa.me"]:hover {
  background: transparent !important;
  color: #1a8a4a !important;
}

/* QR code — editorial framed figure */
.pix-por-piggly img[src*="data:image"],
.pix-por-piggly canvas,
.pix-por-piggly--qrcode,
img.pix-por-piggly--qrcode {
  border: 1px solid var(--ink) !important;
  background: var(--paper-hi) !important;
  padding: 16px !important;
  border-radius: 0 !important;
  max-width: 280px !important;
  width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 14px auto !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

/* "OU" divider — replace lime pill with editorial dashed rule */
.pix-por-piggly--or,
.pix-por-piggly--divider,
.pix-por-piggly--separator {
  position: relative !important;
  text-align: center !important;
  margin: 32px 0 24px !important;
  height: auto !important;
  background: transparent !important;
  border: 0 !important;
}
.pix-por-piggly--or::before,
.pix-por-piggly--divider::before,
.pix-por-piggly--separator::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  border-top: 1px dashed var(--rule);
  z-index: 0;
}
.pix-por-piggly--or > *,
.pix-por-piggly--divider > *,
.pix-por-piggly--separator > * {
  position: relative;
  z-index: 1;
  background: var(--paper) !important;
  color: var(--muted) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  padding: 0 14px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Receipt form (anexar comprovante) */
.pix-por-piggly-form .pix-por-piggly--field {
  margin-bottom: 16px;
}
.pix-por-piggly-form input[type="text"],
.pix-por-piggly-form input[type="file"],
.pix-por-piggly-form textarea {
  background: var(--paper-hi) !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  padding: 10px 12px !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
  color: var(--ink) !important;
  width: 100% !important;
  box-shadow: none !important;
}

/* Order-pay (Pagar pedido) head — keep the editorial h1 + bullets */
.woocommerce-order ul.order_details,
ul.order_details {
  list-style: disc !important;
  padding-left: 20px !important;
  margin: 14px 0 28px !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-size: 15px !important;
  color: var(--ink-soft) !important;
}
.woocommerce-order ul.order_details li,
ul.order_details li {
  display: list-item !important;
  border: 0 !important;
  padding: 4px 0 !important;
  margin: 0 !important;
  width: auto !important;
  float: none !important;
}
.woocommerce-order ul.order_details strong,
ul.order_details strong {
  color: var(--ink) !important;
  font-weight: 700 !important;
}

/* ================================================================
 * Classic Cart + Checkout — editorial overrides
 * Twenty Twenty-Five base theme leaks a purple accent into WC's
 * .checkout-button / .button styles. Force editorial accent + flat
 * mono buttons on every cart/checkout interactive element.
 * ================================================================ */
.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table {
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  background: var(--paper-hi) !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
}
.woocommerce-cart table.shop_table thead th,
.woocommerce-checkout table.shop_table thead th {
  background: var(--paper2) !important;
  border-bottom: 2px solid var(--ink) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  padding: 12px 14px !important;
}
.woocommerce-cart table.shop_table tbody td,
.woocommerce-checkout table.shop_table tbody td {
  border-bottom: 1px dashed var(--rule) !important;
  padding: 14px !important;
  vertical-align: middle !important;
}
.woocommerce-cart table.shop_table .product-name a {
  color: var(--accent) !important;
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  text-decoration: none !important;
}
.woocommerce-cart table.shop_table .product-thumbnail img {
  width: 64px !important;
  height: 64px !important;
  object-fit: cover !important;
  border: 1px solid var(--rule) !important;
  border-radius: 0 !important;
}
.woocommerce-cart table.shop_table .product-quantity input.qty {
  width: 60px !important;
  height: 36px !important;
  border: 1px solid var(--ink) !important;
  background: var(--paper) !important;
  text-align: center !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 14px !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.woocommerce-cart table.shop_table .product-remove a.remove {
  color: var(--accent) !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  background: transparent !important;
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
}

/* Cart total panel */
.cart_totals h2,
.cart-collaterals h2 {
  font-family: 'Playfair Display', serif !important;
  font-weight: 900 !important;
  font-size: 26px !important;
  color: var(--ink) !important;
  margin-bottom: 14px !important;
  letter-spacing: -0.01em !important;
}
.cart_totals table.shop_table th {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--ink-soft) !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px dashed var(--rule) !important;
  padding: 12px 14px !important;
}
.cart_totals table.shop_table td {
  font-family: 'IBM Plex Sans', sans-serif !important;
  color: var(--ink) !important;
  background: transparent !important;
  border-bottom: 1px dashed var(--rule) !important;
  padding: 12px 14px !important;
}
.cart_totals .order-total td,
.cart_totals .order-total th {
  border-top: 2px solid var(--ink) !important;
  border-bottom: 0 !important;
}
.cart_totals .order-total .amount {
  font-family: 'Playfair Display', serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  color: var(--ink) !important;
}

/* All cart/checkout buttons → editorial accent */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-cart a.button,
.woocommerce-cart button.button,
.woocommerce-checkout button.button,
.woocommerce-checkout a.button,
.cart_totals .checkout-button,
.wc-proceed-to-checkout .checkout-button,
button[name="apply_coupon"],
button[name="update_cart"],
button#place_order {
  background: var(--accent) !important;
  color: var(--paper) !important;
  border: 2px solid var(--accent) !important;
  border-radius: 0 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 12px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 12px 22px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transition: all 0.15s !important;
  text-decoration: none !important;
  cursor: pointer;
  display: inline-block;
  line-height: 1.2 !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.cart_totals .checkout-button:hover,
.wc-proceed-to-checkout .checkout-button:hover,
button[name="apply_coupon"]:hover,
button#place_order:hover {
  background: transparent !important;
  color: var(--accent) !important;
}
/* Disabled state for "Atualizar carrinho" until cart changes */
.woocommerce button[name="update_cart"]:disabled,
.woocommerce button[name="update_cart"][disabled] {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
}

/* Coupon row */
.woocommerce-cart .coupon {
  display: flex !important;
  gap: 8px !important;
  align-items: stretch !important;
}
.woocommerce-cart .coupon input[name="coupon_code"] {
  height: 44px !important;
  border: 1px solid var(--ink) !important;
  background: var(--paper) !important;
  padding: 0 14px !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 13px !important;
  border-radius: 0 !important;
  min-width: 200px;
}

/* Checkout form fields */
.woocommerce form .form-row label {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ink-soft) !important;
  font-weight: 600 !important;
  margin-bottom: 6px !important;
}
.woocommerce form .form-row input[type="text"],
.woocommerce form .form-row input[type="email"],
.woocommerce form .form-row input[type="tel"],
.woocommerce form .form-row input[type="password"],
.woocommerce form .form-row input[type="number"],
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.select2-container .select2-selection--single {
  background: var(--paper) !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  padding: 10px 12px !important;
  height: 42px !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}
.woocommerce form .form-row.woocommerce-invalid input {
  border-color: var(--accent) !important;
}
.woocommerce-checkout #payment {
  background: var(--paper-hi) !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px dashed var(--rule) !important;
}
.woocommerce-checkout #payment div.payment_box {
  background: var(--paper2) !important;
  border-radius: 0 !important;
}
.woocommerce-checkout h3 {
  font-family: 'Playfair Display', serif !important;
  font-size: 24px !important;
  font-weight: 900 !important;
  color: var(--ink) !important;
  margin-bottom: 14px !important;
}

/* WC notice banners (info/message/error) — replace bright blue/green
 * with editorial palette: paper-hi bg + accent rule + ink text.
 * Covers BOTH classic (.woocommerce-message) and block-based notices
 * (.wc-block-components-notice-banner) since add-to-cart on product
 * pages uses the block notice variant in newer WC versions. */
.woocommerce-info,
.woocommerce-message,
.woocommerce-noreviews,
.woocommerce-error,
ul.woocommerce-message,
ul.woocommerce-error,
ul.woocommerce-info,
.woocommerce-NoticeGroup .woocommerce-info,
.woocommerce-NoticeGroup .woocommerce-message,
.woocommerce-NoticeGroup .woocommerce-error,
.wc-block-components-notice-banner,
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-warning,
.wc-block-components-notice-banner.is-error {
  background: var(--paper-hi) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-left: 4px solid var(--accent) !important;
  border-radius: 0 !important;
  padding: 14px 18px !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  list-style: none !important;
  box-shadow: none !important;
  margin-bottom: 18px !important;
}
.woocommerce-message {
  border-left-color: var(--accent) !important;
}
.woocommerce-error {
  border-left-color: #b3261e !important;
  color: var(--ink) !important;
}
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-noreviews::before {
  display: none !important; /* drop the dashicon icon */
}
.woocommerce-info a,
.woocommerce-message a,
.woocommerce-error a {
  color: var(--accent) !important;
  text-decoration: underline !important;
  font-weight: 600;
}
.woocommerce-info strong,
.woocommerce-message strong {
  color: var(--ink) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  margin-right: 4px;
}
/* "Clique aqui para digitar seu cupom" toggler row */
.woocommerce-form-coupon-toggle .woocommerce-info {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Block notice (.wc-block-components-notice-banner) ships its own
 * left border + icon background — kill them so our paper-hi/accent
 * stripe shows through cleanly. */
.wc-block-components-notice-banner svg,
.wc-block-components-notice-banner__content svg {
  fill: var(--accent) !important;
  color: var(--accent) !important;
}
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-success {
  border-left: 4px solid var(--accent) !important;
  background: var(--paper-hi) !important;
}
.wc-block-components-notice-banner.is-error {
  border-left: 4px solid #b3261e !important;
  background: var(--paper-hi) !important;
}
.wc-block-components-notice-banner__content {
  color: var(--ink) !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
}
/* Disable rounded corners + outline-style ring some block themes ship */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner > * {
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* "Ver carrinho" button inside the success notice — keep our accent flat */
.wc-block-components-notice-banner a.button,
.wc-block-components-notice-banner .wc-forward,
.woocommerce-message a.button,
.woocommerce-message .wc-forward {
  background: var(--accent) !important;
  color: var(--paper) !important;
  border: 2px solid var(--accent) !important;
  border-radius: 0 !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 8px 16px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.wc-block-components-notice-banner a.button:hover,
.woocommerce-message a.button:hover {
  background: transparent !important;
  color: var(--accent) !important;
}
