/* ════════════════════════════════════════════
   FD Multimedia WooCommerce Theme — fd-main.css
   ════════════════════════════════════════════ */

/* ── Google Fonts (carregado no functions.php) ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Manrope:wght@200;300;400;500;600;700;800&display=swap');

/* ─────────────────────────────────────────────
   01. TOKENS / VARIÁVEIS
   ───────────────────────────────────────────── */
:root {
  --black:     #131419;
  --white:     #ffffff;
  --g1:        #f5f5f5;
  --g2:        #e8e8e8;
  --g3:        #c8c8c8;
  --g4:        #909090;
  --g5:        #555555;

  --font:      'Inter',   sans-serif;
  --font2:     'Manrope', sans-serif;
  --ease:      cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-expo: cubic-bezier(0.77, 0, 0.175, 1);

  --radius:    0px;           /* sem arredondamento — estilo rigoroso */
  --radius-sm: 0px;

  --header-h: 152px;
  --container: 1400px;
  --gap:       48px;
}

/* ─────────────────────────────────────────────
   02. RESET / BASE
   ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: var(--font);
  background: var(--white);
  color: var(--black);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  line-height: 1.6;
}

img, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }

::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--g1); }
::-webkit-scrollbar-thumb { background: var(--black); }

::selection { background: var(--black); color: var(--white); }

/* ─────────────────────────────────────────────
   03. CONTAINER
   ───────────────────────────────────────────── */
.fd-container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gap);
}

@media (max-width: 768px) {
  :root { --gap: 24px; }
}

/* ─────────────────────────────────────────────
   04. TIPOGRAFIA GLOBAL
   ───────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font2);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--black);
}

h1 { font-size: clamp(40px, 5.5vw, 80px); }
h2 { font-size: clamp(28px, 3.5vw, 52px); }
h3 { font-size: clamp(20px, 2vw, 32px); }
h4 { font-size: clamp(16px, 1.4vw, 22px); }

p { font-size: 15px; font-weight: 400; line-height: 1.75; color: var(--g5); }

.eyebrow {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--g4); display: block; margin-bottom: 20px;
}

/* ─────────────────────────────────────────────
   05. BOTÕES
   ───────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font); font-weight: 600;
  font-size: 13px; letter-spacing: 0.04em;
  padding: 14px 32px;
  border: 1px solid transparent;
  cursor: pointer; text-decoration: none;
  transition: background 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease);
  white-space: nowrap;
}
.btn-black  { background: var(--black); color: var(--white); border-color: var(--black); }
.btn-black:hover { background: transparent; color: var(--black); }

.btn-outline { background: transparent; color: var(--black); border-color: var(--black); }
.btn-outline:hover { background: var(--black); color: var(--white); }

.btn-sm { font-size: 12px; padding: 10px 22px; }
.btn-lg { font-size: 14px; padding: 18px 40px; }

/* ─────────────────────────────────────────────
   06. HEADER
   ───────────────────────────────────────────── */
#site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  display: flex; flex-direction: column;
  background: var(--white);
  border-bottom: 1px solid var(--g2);
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}

/* ── Top bar ── */
.fd-topbar {
  background: var(--black);
  height: 34px;
  display: flex; align-items: center;
}
.fd-topbar-inner {
  display: flex; align-items: center; justify-content: space-between;
}
.fd-topbar-slogan {
  font-size: 12px; color: var(--g3); letter-spacing: 0.02em;
}
.fd-topbar-links {
  display: flex; align-items: center; gap: 24px;
}
.fd-topbar-links a {
  font-size: 12px; color: var(--g3); text-decoration: none;
  transition: color 0.15s;
}
.fd-topbar-links a:hover { color: var(--white); }

/* ── Main header row ── */
.fd-header-main {
  height: 74px; display: flex; align-items: center;
}
.fd-header-main-inner {
  display: flex; align-items: center; gap: 20px; width: 100%;
}

/* Logo */
.site-logo {
  display: flex; align-items: center; flex-shrink: 0;
  text-decoration: none;
}
.site-logo img { height: 34px; width: auto; }

/* Search form */
.fd-search-form {
  flex: 1;
  display: flex; align-items: stretch;
  height: 44px;
  margin: 0 !important;
  border: 1.5px solid var(--g2);
  overflow: hidden;
  transition: border-color 0.2s;
}
.fd-search-form:focus-within { border-color: var(--black); }
.fd-search-input {
  flex: 1; border: none; outline: none;
  padding: 0 16px;
  font-size: 14px; font-family: var(--font); color: var(--black);
  background: var(--g1);
}
.fd-search-input::placeholder { color: var(--g4); }
.fd-search-btn {
  background: var(--black); color: var(--white);
  border: none; padding: 0 18px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; flex-shrink: 0;
  transition: opacity 0.15s;
}
.fd-search-btn:hover { opacity: 0.8; }

/* Header actions */
.fd-header-actions {
  display: flex; align-items: center; gap: 16px; flex-shrink: 0;
}
.fd-header-account {
  display: flex; align-items: center;
  color: var(--black); text-decoration: none;
  transition: opacity 0.15s;
}
.fd-header-account:hover { opacity: 0.6; }

/* Auth trigger */
.fd-auth-trigger {
  font-size: 13px; font-weight: 500; color: var(--black);
  background: none; border: none; padding: 0; cursor: pointer;
  text-decoration: none; white-space: nowrap;
  transition: opacity 0.15s;
}
.fd-auth-trigger:hover { opacity: 0.6; }
.fd-auth-logged { font-weight: 600; }

/* Cart */
.header-cart {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 600; color: var(--black);
  background: none; border: none; padding: 0;
  cursor: pointer;
}
.fd-hc-icon {
  position: relative; display: flex; align-items: center;
}
.cart-count {
  position: absolute; top: -8px; right: -8px;
  width: 16px; height: 16px;
  background: var(--black); color: var(--white);
  font-size: 9px; font-weight: 700;
  border-radius: 50%; display: grid; place-items: center;
}
.fd-hc-total {
  font-size: 13px; font-weight: 700; color: var(--black);
  white-space: nowrap;
}
.fd-hc-total:empty { display: none; }
.fd-hc-total .woocommerce-Price-amount,
.fd-hc-total bdi { font-size: 13px; font-weight: 700; }

/* Hamburger */
.nav-toggle {
  display: none; flex-direction: column; gap: 5px;
  width: 32px; padding: 4px; background: none; border: none; cursor: pointer;
}
.nav-toggle span {
  display: block; width: 100%; height: 1.5px;
  background: var(--black); transition: all 0.3s var(--ease);
}
.nav-toggle.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ── Category bar ── */
.fd-catbar {
  height: 44px;
  border-top: 1px solid var(--g2);
  display: flex; align-items: stretch;
  overflow: visible;
}
.fd-catbar-inner {
  display: flex; align-items: stretch;
  overflow: visible;
  white-space: nowrap; gap: 0;
  position: relative;
}
.fd-catbar-inner::-webkit-scrollbar { display: none; }
.fd-catbar-inner a {
  display: flex; align-items: center;
  padding: 0 16px; height: 44px;
  font-size: 13px; font-weight: 500; color: var(--g5);
  text-decoration: none; white-space: nowrap;
  transition: color 0.15s, background 0.15s;
}
.fd-catbar-inner a:hover { color: var(--black); background: var(--g1); }
.fd-catbar-inner a[aria-current="page"] { color: var(--black); font-weight: 700; }

/* Dropdown "Todas as Categorias" */
.fd-catdrop-wrap {
  position: relative; display: flex; align-items: stretch; flex-shrink: 0;
}
.fd-catdrop-btn {
  display: flex; align-items: center; gap: 8px;
  padding: 0 16px; height: 44px;
  font-size: 13px; font-weight: 700; color: var(--black);
  background: var(--g1); border: none; cursor: pointer;
  white-space: nowrap; border-right: 1px solid var(--g2);
  transition: background 0.15s;
}
.fd-catdrop-btn:hover { background: var(--g2); }
.fd-catdrop-btn[aria-expanded="true"] .fd-catdrop-chevron { transform: rotate(180deg); }
.fd-catdrop-chevron { transition: transform 0.2s var(--ease); flex-shrink: 0; }

.fd-catdrop-panel {
  position: absolute; top: 44px; left: 0;
  background: var(--white);
  border: 1px solid var(--g2);
  box-shadow: 0 8px 24px rgba(0,0,0,.10);
  min-width: 220px;
  z-index: 1100;
  padding: 8px 0;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(6px);
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}
.fd-catdrop-panel[hidden] { display: none; }
.fd-catdrop-panel.fd-is-open {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(0);
}

/* Cada linha de categoria com flyout de produtos */
.fd-catdrop-cat-item { position: relative; }
.fd-catdrop-item {
  display: flex !important; align-items: center; justify-content: space-between;
  padding: 10px 20px !important;
  font-size: 14px !important; font-weight: 500 !important;
  color: var(--g5) !important; height: auto !important;
  text-decoration: none; gap: 12px;
  transition: color 0.15s, background 0.15s;
}
.fd-catdrop-item:hover { color: var(--black) !important; background: var(--g1) !important; }
.fd-catdrop-item svg { flex-shrink: 0; opacity: 0.4; }
.fd-catdrop-cat-item:hover .fd-catdrop-item svg { opacity: 1; }

/* Painel de produtos à direita */
.fd-catdrop-products-panel {
  position: absolute; left: 100%; top: 0;
  background: var(--white);
  border: 1px solid var(--g2);
  box-shadow: 4px 8px 24px rgba(0,0,0,.10);
  min-width: 220px;
  z-index: 1101;
  padding: 8px 0;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateX(6px);
  transition: opacity 0.18s ease, visibility 0.18s ease, transform 0.18s ease;
}
.fd-catdrop-cat-item:hover .fd-catdrop-products-panel {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(0);
}
.fd-catdrop-products-panel a {
  display: block;
  padding: 9px 20px;
  font-size: 13px; font-weight: 400; color: var(--g5);
  text-decoration: none; white-space: nowrap;
  transition: color 0.15s, background 0.15s;
}
.fd-catdrop-products-panel a:hover { color: var(--black); background: var(--g1); }
.fd-catdrop-viewall {
  font-weight: 600 !important; color: var(--black) !important;
  border-top: 1px solid var(--g2); margin-top: 4px; padding-top: 10px !important;
}

/* ── Catbar item dropdowns (produtos) ── */
.fd-catbar-item-wrap {
  position: relative; display: flex; align-items: stretch;
}
.fd-catbar-cat-link {
  display: flex; align-items: center;
  padding: 0 16px; height: 44px;
  font-size: 13px; font-weight: 500; color: var(--g5);
  text-decoration: none; white-space: nowrap;
  transition: color 0.15s, background 0.15s;
}
.fd-catbar-cat-link:hover,
.fd-catbar-item-wrap:hover .fd-catbar-cat-link { color: var(--black); background: var(--g1); }
.fd-catbar-cat-link.fd-is-current { color: var(--black); font-weight: 700; }
.fd-catbar-chevron { flex-shrink: 0; margin-left: 5px; transition: transform 0.2s var(--ease); }
.fd-catbar-item-wrap:hover .fd-catbar-chevron { transform: rotate(180deg); }

.fd-catbar-sub-panel {
  position: absolute; top: 44px; left: 0;
  background: var(--white);
  border: 1px solid var(--g2);
  box-shadow: 0 8px 24px rgba(0,0,0,.10);
  min-width: 240px;
  z-index: 1100;
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}
.fd-catbar-item-wrap:hover .fd-catbar-sub-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.fd-catbar-sub-panel a {
  display: block;
  padding: 9px 20px;
  font-size: 13px; font-weight: 400; color: var(--g5);
  text-decoration: none; white-space: nowrap;
  transition: color 0.15s, background 0.15s;
}
.fd-catbar-sub-panel a:hover { color: var(--black); background: var(--g1); }
.fd-catbar-sub-viewall {
  font-weight: 600 !important; color: var(--black) !important;
  border-top: 1px solid var(--g2); margin-top: 4px; padding-top: 10px !important;
}

/* ── Mobile nav drawer ── */
.site-nav {
  display: none; position: fixed;
  top: var(--header-h); left: 0; right: 0; bottom: 0;
  background: var(--white); flex-direction: column;
  align-items: flex-start; gap: 0;
  padding: 24px var(--gap);
  border-top: 1px solid var(--g2);
  z-index: 999; overflow-y: auto;
}
.site-nav.open { display: flex; }
.site-nav a {
  font-size: 18px; font-weight: 600;
  padding: 14px 0; border-bottom: 1px solid var(--g2);
  width: 100%; color: var(--black); text-decoration: none;
}
.site-nav a:hover { color: var(--g4); }

/* ── Mobile ── */
@media (max-width: 900px) {
  :root { --header-h: 112px; }
  .fd-topbar { display: none; }
  .fd-header-main { height: 68px; }
  .fd-search-form { display: none; }
  .fd-header-account { display: none; }
  .nav-toggle { display: flex; }
  .fd-catbar { height: 44px; }
  .fd-catbar-inner a { font-size: 12px; padding: 0 12px; }
}

/* ─────────────────────────────────────────────
   07. HERO — HOME
   ───────────────────────────────────────────── */
.hero {
  min-height: 100vh;
  background: var(--black);
  display: grid; grid-template-columns: 1fr 1fr;
  position: relative; overflow: hidden;
  padding-top: var(--header-h);
}
.hero-left {
  padding: 80px var(--gap) 80px;
  display: flex; flex-direction: column; justify-content: flex-end;
  position: relative; z-index: 2;
}
.hero-eyebrow {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--g4); margin-bottom: 28px;
}
.hero h1 { color: var(--white); margin-bottom: 24px; }
.hero-sub {
  font-size: 16px; font-weight: 300; line-height: 1.7;
  color: var(--g4); max-width: 420px; margin-bottom: 48px;
}
.hero-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.hero-right {
  position: relative; overflow: hidden;
  border-left: 1px solid rgba(255,255,255,0.06);
  background: #0b0b0e;
}
.hero-right img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0.7;
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(19,20,25,0.4) 0%, transparent 60%);
  z-index: 1;
}

@media (max-width: 860px) {
  .hero { grid-template-columns: 1fr; }
  .hero-right { height: 300px; border-left: none; border-top: 1px solid rgba(255,255,255,0.08); }
  .hero-left { padding: 60px var(--gap); }
}

/* ─────────────────────────────────────────────
   08. SECTION — LAYOUT GENÉRICO
   ───────────────────────────────────────────── */
.fd-section {
  padding: 120px 0;
}
.fd-section-sm { padding: 80px 0; }
.fd-section-dark {
  background: var(--black);
}
.fd-section-gray {
  background: var(--g1);
}

.section-head {
  display: flex; align-items: flex-end;
  justify-content: space-between; gap: 40px;
  margin-bottom: 60px;
}
.section-head-right { flex-shrink: 0; }

@media (max-width: 768px) {
  .fd-section { padding: 80px 0; }
  .section-head { flex-direction: column; align-items: flex-start; }
}

/* ─────────────────────────────────────────────
   09. PRODUCT CARD (LOOP / SHOP)
   ───────────────────────────────────────────── */
/* ── CATEGORY GRID (home) ── */
.fd-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 900px)  { .fd-cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .fd-cat-grid { grid-template-columns: 1fr; } }

.fd-cat-card {
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit;
  background: var(--white);
  border: 1px solid var(--g2);
  transition: border-color 0.2s, box-shadow 0.2s;
  overflow: hidden;
}
.fd-cat-card:hover { border-color: var(--black); box-shadow: 0 6px 24px rgba(0,0,0,0.07); }

.fd-cat-thumb {
  aspect-ratio: 4/3; background: var(--g1);
  overflow: hidden; position: relative;
  display: flex; align-items: center; justify-content: center;
}
.fd-cat-thumb img { width:100%; height:100%; object-fit:cover; transition: transform 0.5s; }
.fd-cat-card:hover .fd-cat-thumb img { transform: scale(1.04); }

.fd-cat-initials {
  font-family: var(--font2); font-size: 36px; font-weight: 800;
  color: var(--g3); letter-spacing: -0.03em; user-select: none;
}

.fd-cat-info {
  padding: 16px 18px 18px;
  border-top: 1px solid var(--g2);
  display: flex; flex-direction: column; gap: 4px;
}
.fd-cat-name  { font-family: var(--font2); font-size: 15px; font-weight: 600; color: var(--black); line-height: 1.3; }
.fd-cat-count { font-size: 11px; color: var(--g4); font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }

/* ── PRODUCT GRID ── */
.fd-product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
@media (max-width: 1100px) { .fd-product-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; } }
@media (max-width: 760px)  { .fd-product-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
@media (max-width: 480px)  { .fd-product-grid { grid-template-columns: 1fr; } }

/* ── PRODUCT CARD ── */
.fd-product-card {
  background: var(--white);
  border: 1px solid var(--g2);
  position: relative;
  display: flex;
  flex-direction: column;
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
  cursor: pointer;
  overflow: hidden;
}
.fd-card-overlay-link {
  position: absolute; inset: 0; z-index: 1;
}
.fd-product-card:hover {
  border-color: var(--black);
  box-shadow: 0 6px 24px rgba(0,0,0,0.09);
}

/* Thumb */
.fd-product-thumb {
  position: relative; overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--g1);
}
.fd-product-thumb img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.55s var(--ease-expo);
}
.fd-product-card:hover .fd-product-thumb img { transform: scale(1.04); }

/* Badge */
.fd-badge {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 3px 8px;
  color: var(--white);
}
.fd-badge-sale { background: var(--black); }
.fd-badge-new  { background: var(--g4); }

/* Info block */
.fd-product-info {
  padding: 14px 16px 18px;
  border-top: 1px solid var(--g2);
  display: flex; flex-direction: column; gap: 5px;
  flex: 1;
}

/* Category label — colored accent */
.fd-product-category {
  font-size: 10px; font-weight: 600; letter-spacing: 0.06em;
  color: var(--g4); line-height: 1;
}
.fd-product-category a { color: inherit; text-decoration: none; }

/* Title */
.fd-product-title {
  font-family: var(--font2); font-size: 15px; font-weight: 700;
  letter-spacing: -0.02em; color: var(--black);
  line-height: 1.3; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fd-product-title a { color: inherit; text-decoration: none; }
.fd-product-title a:hover { text-decoration: underline; }

/* Stars */
.fd-product-rating {
  display: flex; align-items: center; gap: 5px; margin: 1px 0;
}
.fd-stars { font-size: 11px; line-height: 1; letter-spacing: 2px; color: var(--g3); }
.fd-star-full, .fd-star-half { color: #f0b429; }
.fd-rating-count { font-size: 11px; color: var(--g4); }

/* Short description */
.fd-product-desc {
  font-size: 12px; color: var(--g4); line-height: 1.55; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* Footer: price + qty */
.fd-product-footer { margin-top: auto; padding-top: 10px; }
.fd-product-price  { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }

/* WooCommerce price override inside cards */
.fd-product-price .woocommerce-Price-amount,
.fd-product-price ins .woocommerce-Price-amount {
  font-family: var(--font2); font-size: 20px; font-weight: 800;
  color: var(--black); text-decoration: none;
}
.fd-product-price del .woocommerce-Price-amount {
  font-size: 13px; font-weight: 400; color: var(--g4);
}
.fd-product-price del { text-decoration: line-through; opacity: .7; }
.fd-product-price ins { text-decoration: none; }

/* Quantidade tag */
.fd-product-qty {
  font-size: 13px; font-weight: 400; color: var(--g4); white-space: nowrap;
}

/* WooCommerce override no loop */
.woocommerce ul.products li.product { padding: 0; margin: 0; }
.woocommerce ul.products { margin: 0 !important; }
.woocommerce-loop-product__link { text-decoration: none; }

/* ─────────────────────────────────────────────
   10. SINGLE PRODUCT PAGE
   ───────────────────────────────────────────── */
.fd-single-wrap {
  padding-bottom: 100px;
}
.fd-single-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

/* Gallery */
.fd-gallery { position: sticky; top: calc(var(--header-h) + 24px); }
.fd-gallery-main {
  aspect-ratio: 1 / 1;
  background: var(--g1);
  overflow: hidden;
  border: 1px solid var(--g2);
  margin-bottom: 12px;
}
.fd-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.fd-gallery-thumbs {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px;
}
.fd-gallery-thumb {
  aspect-ratio: 1 / 1; background: var(--g1);
  border: 1px solid transparent; cursor: pointer;
  overflow: hidden;
  transition: border-color 0.2s;
}
.fd-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fd-gallery-thumb.active,
.fd-gallery-thumb:hover { border-color: var(--black); }

/* Product info panel */
.fd-product-panel {}

.fd-product-panel .fd-product-category { margin-bottom: 10px; }
.fd-product-panel h1 {
  font-size: clamp(26px, 3vw, 42px);
  margin-bottom: 16px; line-height: 1.1;
}

.fd-single-price {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  margin-bottom: 28px;
}
.fd-single-price .fd-price { font-size: 26px; }
.fd-single-price .fd-price-old { font-size: 16px; }
.fd-price-from {
  display: block;
  font-size: 11px; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--g4); margin-bottom: 2px;
}
.fd-single-price .woocommerce-Price-amount { font-size: 26px; font-weight: 700; }
.fd-price-row {
  display: flex; align-items: baseline; gap: 8px;
}
.fd-price-unit {
  font-size: 11px; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--g4);
}

.fd-rating {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 28px;
}
.fd-stars { display: flex; gap: 2px; color: var(--black); font-size: 14px; }
.fd-rating-text { font-size: 12px; color: var(--g4); }

/* Divider */
.fd-divider { height: 1px; background: var(--g2); margin: 28px 0; }

/* Short desc */
.fd-short-desc { font-size: 15px; line-height: 1.75; color: var(--g5); margin-bottom: 28px; }

/* Variações / atributos */
.fd-attributes { margin-bottom: 28px; }
.fd-attr-group { margin-bottom: 20px; }
.fd-attr-label {
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--black); margin-bottom: 10px;
}
.fd-attr-options { display: flex; flex-wrap: wrap; gap: 8px; }
.fd-attr-option {
  padding: 8px 16px;
  border: 1px solid var(--g2); font-size: 13px; font-weight: 500;
  cursor: pointer; color: var(--black);
  transition: all 0.2s var(--ease);
}
.fd-attr-option:hover,
.fd-attr-option.selected { background: var(--black); color: var(--white); border-color: var(--black); }
.fd-attr-option.disabled { opacity: 0.35; cursor: not-allowed; }

/* Color swatches */
.fd-swatch {
  width: 28px; height: 28px;
  border: 2px solid transparent;
  cursor: pointer; position: relative;
  transition: border-color 0.2s, transform 0.2s;
}
.fd-swatch:hover,
.fd-swatch.selected { border-color: var(--black); transform: scale(1.1); }

/* Qty + add to cart */
.fd-add-row {
  display: flex; gap: 12px; align-items: center;
  margin-bottom: 24px;
}
.fd-qty {
  display: flex; align-items: center;
  border: 1px solid var(--g2); height: 52px;
}
.fd-qty button {
  width: 48px; height: 100%;
  font-size: 20px; font-weight: 300; color: var(--black);
  border: none; background: none; cursor: pointer;
  transition: background 0.2s;
}
.fd-qty button:hover { background: var(--g1); }
.fd-qty input {
  width: 52px; height: 100%;
  border: none; border-left: 1px solid var(--g2); border-right: 1px solid var(--g2);
  text-align: center; font-size: 14px; font-weight: 600;
  font-family: var(--font2); color: var(--black);
  background: none;
}
.fd-qty input:focus { outline: none; }

.fd-add-to-cart {
  flex: 1;
  height: 52px; padding: 0;
  background: var(--black); color: var(--white);
  border: 1px solid var(--black);
  font-size: 13px; font-weight: 600; letter-spacing: 0.05em;
  cursor: pointer; font-family: var(--font);
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
}
.fd-add-to-cart:hover { background: transparent; color: var(--black); }

/* ── SuperFrete — override plugin CSS variables ── */
#super-frete-shipping-calculator,
.superfrete-calculator-wrapper {
  --superfrete-primary-color: var(--black) !important;
  --superfrete-primary-hover: var(--g4) !important;
  --superfrete-radius-sm: 0px !important;
  --superfrete-radius-lg: 0px !important;
  --superfrete-shadow-sm: none !important;
  --superfrete-bg-color: transparent !important;
  --superfrete-bg-light: var(--g1) !important;
}

/* ── SuperFrete shipping calculator ── */
#super-frete-shipping-calculator {
  margin: 20px 0;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  max-width: none !important;
  width: 100% !important;
}
.superfrete-calculator-wrapper,
.superfrete-input-section { max-width: none !important; width: 100% !important; }
#super-frete-shipping-calculator::before {
  content: 'CALCULAR FRETE';
  display: block;
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--black);
  margin-bottom: 10px;
}
/* reset plugin styles */
#super-frete-shipping-calculator *,
#super-frete-shipping-calculator *::before,
#super-frete-shipping-calculator *::after { box-sizing: border-box; }
.superfrete-calculator-wrapper { font-family: var(--font); }
/* inline input + button */
.superfrete-woocommerce-shipping-calculator { display: flex; gap: 0; align-items: stretch; }
#calc_shipping_postcode_field { flex: 1; margin: 0 !important; padding: 0 !important; }
#calc_shipping_postcode_field .input-text,
.superfrete-woocommerce-shipping-calculator .input-text {
  width: 100%; height: 100%; min-height: 44px;
  border: 1px solid var(--g2) !important; border-radius: 0 !important;
  padding: 0 14px; font-size: 14px; font-family: var(--font);
  color: var(--black); background: var(--white);
  outline: none; box-shadow: none !important;
  transition: border-color 0.2s;
}
#calc_shipping_postcode_field .input-text:focus { border-color: var(--black) !important; }
#superfrete-submit-container {
  display: block !important; /* always visible */
  margin: 0 !important; padding: 0 !important;
}
.superfrete-update-address-button,
.superfrete-woocommerce-shipping-calculator .button {
  height: 100%; min-height: 44px; padding: 0 20px;
  margin: 0 !important;
  background: var(--black) !important; color: var(--white) !important;
  border: 1px solid var(--black) !important; border-radius: 0 !important;
  font-size: 13px; font-weight: 600; font-family: var(--font);
  letter-spacing: 0.04em; cursor: pointer;
  transition: background 0.2s, color 0.2s;
  white-space: nowrap;
}
.superfrete-update-address-button:hover { background: transparent !important; color: var(--black) !important; }
/* status / hint message */
#superfrete-status-message { display: none !important; }
/* results */
#superfrete-results-container { margin-top: 12px; }
.superfrete-results-container {
  border: 1px solid var(--g2) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 12px 16px !important;
}
.superfrete-shipping-methods h3 {
  font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: 0.1em !important; text-transform: uppercase !important;
  color: var(--black) !important; margin-bottom: 8px !important;
}
.superfrete-shipping-method { border-bottom-color: var(--g2) !important; }
.superfrete-shipping-method-name { color: var(--black) !important; font-size: 13px !important; }
.superfrete-shipping-method-price,
.superfrete-shipping-method-price .woocommerce-Price-amount {
  color: var(--black) !important; font-size: 13px !important;
}
/* loading spinner — preto em vez de verde */
.superfrete-processing #super-frete-shipping-calculator::before {
  border-color: var(--black) !important;
  border-top-color: transparent !important;
}
.superfrete-rate-option {
  display: flex; align-items: center; gap: 12px;
  padding: 12px; border: 1px solid var(--g2);
  margin-bottom: 6px; cursor: pointer;
  transition: border-color 0.2s;
}
.superfrete-rate-option:hover { border-color: var(--black); }
.superfrete-rate-option input[type="radio"] { accent-color: var(--black); }
#superfrete-error { font-size: 13px; color: #c00; margin-bottom: 8px; padding: 0 !important; }
#superfrete-error:empty { display: none !important; }

/* Meta */
.fd-product-meta { font-size: 12px; color: var(--g4); }
.fd-product-meta span { color: var(--black); font-weight: 500; }

/* WooCommerce .product_meta — SKU dinâmico por variação */
.fd-product-meta .product_meta { display: flex; flex-direction: column; gap: 4px; }
/* SKU — label preto, valor cinza */
.fd-product-meta .sku_wrapper {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  color: var(--black); display: none;
}
.fd-product-meta .sku_wrapper.fd-sku-visible { display: block; }
.fd-product-meta .sku_wrapper .sku {
  color: var(--g4); font-weight: 400; text-transform: uppercase;
}
/* Categoria — label preto uppercase, valor cinza normal */
.fd-product-meta .posted_in {
  font-size: 12px; color: var(--black);
  font-weight: 700; text-transform: uppercase;
}
.fd-product-meta .posted_in a {
  color: var(--g4); font-weight: 400;
  text-transform: none; text-decoration: none;
}
.fd-product-meta .tagged_as { display: none; }

/* Tabs (descrição, avaliações) */
.fd-tabs { margin-top: 80px; }
.fd-tab-nav {
  display: flex; border-bottom: 1px solid var(--g2); margin-bottom: 40px;
}
.fd-tab-btn {
  padding: 14px 0; margin-right: 36px;
  font-size: 13px; font-weight: 600; letter-spacing: 0.05em;
  color: var(--g4); cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 0.2s, border-color 0.2s;
  background: none; border-top: none; border-left: none; border-right: none;
}
.fd-tab-btn.active { color: var(--black); border-bottom-color: var(--black); }
.fd-tab-panel { display: none; }
.fd-tab-panel.active { display: block; }
.fd-tab-panel p { color: var(--g5); line-height: 1.8; }

@media (max-width: 900px) {
  .fd-single-grid { grid-template-columns: 1fr; gap: 40px; }
  .fd-gallery { position: static; }
}

/* ─────────────────────────────────────────────
   11. SHOP PAGE (ARCHIVE)
   ───────────────────────────────────────────── */
.fd-shop-header {
  padding-top: calc(var(--header-h) + 60px);
  padding-bottom: 60px;
  border-bottom: 1px solid var(--g2);
  margin-bottom: 60px;
}
.fd-shop-header h1 { font-size: clamp(32px, 4vw, 56px); margin-bottom: 12px; }
.fd-shop-header p { font-size: 15px; color: var(--g4); }

/* Filter bar */
.fd-filter-bar {
  display: flex; align-items: center;
  justify-content: space-between; gap: 20px;
  margin-bottom: 40px; padding-bottom: 24px;
  border-bottom: 1px solid var(--g2);
  flex-wrap: wrap;
}
.fd-filter-cats { display: flex; gap: 8px; flex-wrap: wrap; }
.fd-filter-cat {
  padding: 8px 18px;
  border: 1px solid var(--g2);
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.05em; text-transform: uppercase;
  cursor: pointer; color: var(--g5);
  transition: all 0.2s var(--ease);
  background: var(--white);
}
.fd-filter-cat:hover,
.fd-filter-cat.active { background: var(--black); color: var(--white); border-color: var(--black); }

.fd-sort-select {
  font-size: 13px; font-family: var(--font);
  padding: 8px 16px; border: 1px solid var(--g2);
  background: var(--white); color: var(--black); cursor: pointer;
  appearance: none;
}
.fd-results-count { font-size: 13px; color: var(--g4); }

/* ─────────────────────────────────────────────
   12. CART PAGE
   ───────────────────────────────────────────── */
.fd-cart-wrap {
  padding-top: calc(var(--header-h) + 60px);
  padding-bottom: 100px;
}

/* Empty state */
.fd-cart-empty {
  text-align: center;
  padding: 100px 0;
}
.fd-cart-empty-icon { font-size: 48px; margin-bottom: 24px; }
.fd-cart-empty h3   { margin-bottom: 12px; }
.fd-cart-empty p    { color: var(--g5); margin-bottom: 32px; }

/* Header */
.fd-cart-header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 48px;
}
.fd-cart-header h1 { margin: 0; }
.fd-cart-header-count {
  font-size: 14px;
  color: var(--g5);
  font-weight: 500;
}

/* Grid layout */
.fd-cart-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 48px;
  align-items: flex-start;
}

/* ── Cart item ── */
.fd-ci-columns {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-bottom: 12px;
  border-bottom: 1.5px solid var(--g2);
  font-size: 11px;
  font-weight: 700;
  color: var(--g4);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.fd-ci-columns > span:first-child { flex: 1; min-width: 0; }
.fd-ci-columns > span:nth-child(2) { min-width: 70px; text-align: right; }
.fd-ci-columns > span:nth-child(3) { min-width: 110px; text-align: center; }
.fd-ci-columns > span:nth-child(4) { min-width: 80px; text-align: right; }
.fd-ci-columns > span:nth-child(5) { width: 32px; flex-shrink: 0; }

.fd-ci-wrap { }
.fd-ci-wrap + .fd-ci-wrap { border-top: 1px solid var(--g2); }

.fd-ci {
  display: flex;
  gap: 20px;
  padding: 24px 0;
  align-items: center;
}
.fd-ci-thumb {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  background: var(--g1);
  border: 1px solid var(--g2);
  overflow: hidden;
}
.fd-ci-thumb a { display: block; width: 100%; height: 100%; }
.fd-ci-img,
.fd-ci-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fd-ci-info {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
}
.fd-ci-text { flex: 1; min-width: 0; }

.fd-ci-svcs {
  padding: 0 0 16px calc(80px + 14px);
}

.fd-ci-name {
  display: block;
  font-family: var(--font2);
  font-size: 15px;
  font-weight: 600;
  color: var(--black);
  text-decoration: none;
  margin-bottom: 4px;
  line-height: 1.3;
}
.fd-ci-name:hover { text-decoration: underline; }
.fd-ci-attrs { font-size: 12px; color: var(--g5); }

.fd-ci-price {
  font-size: 14px;
  color: var(--g5);
  white-space: nowrap;
  min-width: 70px;
  text-align: right;
  flex-shrink: 0;
}

/* Qty control — cart page */
.fd-ci-qty-ctrl {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--g3);
  border-radius: 8px;
  overflow: hidden;
}
.fd-ci-q-btn {
  background: none;
  border: none;
  width: 34px;
  height: 36px;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--black);
  transition: background .15s;
}
.fd-ci-q-btn:hover { background: var(--g1); }
.fd-ci-q-val {
  width: 40px;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--black);
  border: none;
  border-left: 1.5px solid var(--g3);
  border-right: 1.5px solid var(--g3);
  background: none;
  outline: none;
  padding: 0;
  height: 36px;
  -moz-appearance: textfield;
}
.fd-ci-q-val::-webkit-inner-spin-button,
.fd-ci-q-val::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.fd-ci-subtotal {
  font-size: 16px;
  font-weight: 700;
  font-family: var(--font2);
  color: var(--black);
  white-space: nowrap;
  min-width: 80px;
  text-align: right;
}
.fd-ci-remove {
  flex-shrink: 0;
  background: none;
  border: 1px solid var(--g2);
  border-radius: 6px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--g5);
  transition: all .15s;
}
.fd-ci-remove:hover { background: var(--black); border-color: var(--black); color: #fff; }

/* Loading state */
#fd-cart-items-list.is-loading,
#fd-cart-totals-panel.is-loading { opacity: .5; pointer-events: none; transition: opacity .2s; }

/* ── Cart totals ── */
.fd-cart-totals {
  background: var(--g1);
  padding: 36px;
  border-radius: 4px;
  position: sticky;
  top: calc(var(--header-h) + 24px);
}
.fd-cart-totals h3 {
  font-size: 18px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--g2);
}
.fd-totals-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid var(--g2);
  font-size: 14px;
}
.fd-totals-label { color: var(--g5); }
.fd-totals-value { font-weight: 600; color: var(--black); }
.fd-totals-discount { color: #1a7f37; }
.fd-totals-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 20px 0 0;
  font-size: 18px;
  font-weight: 700;
  color: var(--black);
}

/* Coupon */
.fd-coupon-form { margin-top: 20px; }
.fd-coupon-row {
  display: flex;
  gap: 8px;
}
.fd-coupon-input {
  flex: 1;
  padding: 10px 14px;
  border: 1.5px solid var(--g3);
  border-radius: 6px;
  font-family: var(--font);
  font-size: 13px;
  outline: none;
  min-width: 0;
}
.fd-coupon-input:focus { border-color: var(--black); }

.fd-checkout-btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 16px;
  margin-top: 24px;
  background: var(--black);
  color: var(--white);
  font-family: var(--font);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 4px;
  transition: background .2s, color .2s;
}
.fd-checkout-btn:hover { background: transparent; color: var(--black); box-shadow: inset 0 0 0 2px var(--black); }

.fd-cart-continue {
  margin-top: 16px;
  text-align: center;
}
.fd-cart-continue a {
  font-size: 12px;
  color: var(--g5);
  text-decoration: none;
}
.fd-cart-continue a:hover { color: var(--black); }

/* Responsive */
@media (max-width: 960px) {
  .fd-cart-grid { grid-template-columns: 1fr; }
  .fd-cart-totals { position: static; }
}
@media (max-width: 640px) {
  .fd-ci { flex-wrap: wrap; gap: 12px; }
  .fd-ci-columns { display: none; }
  .fd-ci-price { display: none; }
  .fd-ci-subtotal { order: -1; }
  .fd-ci-svcs { padding-left: calc(80px + 14px); }
  .fd-cart-totals { padding: 24px; }
}

/* ─────────────────────────────────────────────
   13. CHECKOUT PAGE
   ───────────────────────────────────────────── */
.fd-checkout-wrap {
  padding-top: calc(var(--header-h) + 60px);
  padding-bottom: 100px;
}
.fd-checkout-grid {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 80px;
  align-items: start;
}

/* Form styles */
.fd-form-section { margin-bottom: 48px; }
.fd-form-section h3 {
  font-size: 18px; margin-bottom: 28px;
  padding-bottom: 16px; border-bottom: 1px solid var(--g2);
}

.fd-field-group { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fd-field-full { grid-column: 1 / -1; }

.fd-field {
  display: flex; flex-direction: column; gap: 6px;
}
.fd-field label {
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--black);
}
.fd-field input,
.fd-field select,
.fd-field textarea {
  width: 100%; padding: 13px 16px;
  border: 1px solid var(--g2); background: var(--white);
  font-size: 14px; font-family: var(--font); color: var(--black);
  transition: border-color 0.2s;
  appearance: none;
}
.fd-field input:focus,
.fd-field select:focus,
.fd-field textarea:focus {
  outline: none; border-color: var(--black);
}
.fd-field textarea { resize: vertical; min-height: 100px; }

/* Order summary */
.fd-order-summary {
  background: var(--g1);
  padding: 40px;
  position: sticky; top: calc(var(--header-h) + 24px);
}
.fd-order-summary h3 { font-size: 18px; margin-bottom: 28px; }
.fd-order-item {
  display: flex; gap: 14px; align-items: center;
  padding: 16px 0; border-bottom: 1px solid var(--g2);
}
.fd-order-item-thumb {
  width: 56px; height: 56px; flex-shrink: 0;
  background: var(--white); border: 1px solid var(--g2); overflow: hidden;
}
.fd-order-item-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fd-order-item-name {
  font-size: 14px; font-weight: 600; color: var(--black); flex: 1;
}
.fd-order-item-qty { font-size: 12px; color: var(--g4); }
.fd-order-item-price { font-size: 15px; font-weight: 700; font-family: var(--font2); }

.fd-place-order {
  display: block; width: 100%;
  padding: 16px; margin-top: 28px;
  background: var(--black); color: var(--white);
  font-size: 14px; font-weight: 700; letter-spacing: 0.06em;
  text-align: center; cursor: pointer;
  border: 1px solid var(--black); font-family: var(--font);
  transition: background 0.3s, color 0.3s;
}
.fd-place-order:hover { background: transparent; color: var(--black); }

@media (max-width: 900px) {
  .fd-checkout-grid { grid-template-columns: 1fr; }
  .fd-order-summary { position: static; }
  .fd-field-group { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────
   14. FOOTER
   ───────────────────────────────────────────── */
#site-footer {
  background: var(--black);
  padding: 80px 0 40px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 60px;
  padding-bottom: 60px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  margin-bottom: 40px;
}
.footer-brand p {
  font-size: 14px; line-height: 1.8; color: var(--g4);
  margin-top: 20px; max-width: 280px;
}
.footer-col h4 {
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--white); margin-bottom: 20px;
}
.footer-col ul { display: flex; flex-direction: column; gap: 10px; }
.footer-col a {
  font-size: 13px; color: var(--g4);
  transition: color 0.2s; text-decoration: none;
}
.footer-col a:hover { color: var(--white); }

.footer-bottom {
  display: flex; justify-content: space-between;
  align-items: center; gap: 20px; flex-wrap: wrap;
}
.footer-copyright { font-size: 12px; color: var(--g5); }
.footer-logo { display: flex; align-items: center; gap: 8px; }
.footer-logo .logo-mark { background: var(--white); color: var(--black); }
.footer-logo .logo-text { color: var(--white); }

@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────
   15. WOOCOMMERCE GLOBAL OVERRIDES
   ───────────────────────────────────────────── */

/* Remove estilos padrão do WooCommerce */
.woocommerce .woocommerce-message,
.woocommerce-page .woocommerce-message {
  background: var(--g1); border-top: 4px solid var(--black);
  font-size: 14px; color: var(--black);
  padding: 16px 20px; display: flex; align-items: center; gap: 16px;
}
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-error {
  background: #fef2f2; border-top: 4px solid #dc2626;
  font-size: 14px; padding: 16px 20px;
}

/* Star ratings */
.woocommerce .star-rating { color: var(--black); }

/* WC price */
.woocommerce .price { font-family: var(--font2); font-weight: 700; }
.woocommerce ins { text-decoration: none; }
.woocommerce del { color: var(--g4); }

/* Sale badge */
.woocommerce span.onsale {
  background: var(--black); color: var(--white);
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 0; min-height: unset;
  line-height: 1; top: 14px; left: 14px;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
  border: none; display: flex; gap: 4px; justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--g2); color: var(--black);
  font-size: 13px; font-weight: 600;
  padding: 10px 16px; width: auto; min-width: 40px;
  text-align: center; transition: all 0.2s;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--black); color: var(--white); border-color: var(--black);
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
  font-size: 12px; color: var(--g4);
  margin-bottom: 24px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--g4); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--black); }

/* ─────────────────────────────────────────────
   16. ANIMAÇÕES DE ENTRADA
   ───────────────────────────────────────────── */
[data-fd-reveal] {
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}
[data-fd-reveal].is-visible {
  opacity: 1; transform: translateY(0);
}

/* ─────────────────────────────────────────────
   17. UTILITÁRIOS
   ───────────────────────────────────────────── */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.mt-8 { margin-top: 8px; }
.mt-16 { margin-top: 16px; }
.mt-24 { margin-top: 24px; }
.mb-40 { margin-bottom: 40px; }
.text-center { text-align: center; }
.flex-center { display: flex; justify-content: center; }

/* ─────────────────────────────────────────────
   18. MY ACCOUNT / DASHBOARD
   ───────────────────────────────────────────── */
.fd-account-wrap {
  padding-top: calc(var(--header-h) + 60px);
  padding-bottom: 100px;
  min-height: 80vh;
}

.fd-account-topbar {
  display: flex; align-items: flex-end;
  justify-content: space-between; gap: 40px;
  margin-bottom: 60px; padding-bottom: 40px;
  border-bottom: 1px solid var(--g2);
}
.fd-account-topbar h1 {
  font-size: clamp(28px, 3.5vw, 48px); margin-top: 8px;
}

.fd-account-grid {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 80px; align-items: start;
}

/* ── Account Sidebar Nav ── */
.fd-account-nav { position: sticky; top: calc(var(--header-h) + 24px); }
.fd-account-nav ul { border: 1px solid var(--g2); }
.fd-account-nav li { border-bottom: 1px solid var(--g2); }
.fd-account-nav li:last-child { border-bottom: none; }

.fd-account-nav li a {
  display: flex; align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  font-size: 13px; font-weight: 500; color: var(--g5);
  transition: all 0.2s var(--ease);
}
.fd-account-nav li a:hover { background: var(--g1); color: var(--black); }
.fd-account-nav li.is-active > a { background: var(--black); color: var(--white); }
.fd-account-nav li.is-active > a svg { stroke: var(--white); opacity: 1; }

.fd-account-nav li a svg { flex-shrink: 0; opacity: 0.3; transition: opacity 0.2s; }
.fd-account-nav li a:hover svg { opacity: 0.7; }

/* ── Account Content ── */
.fd-account-content { min-width: 0; }
.fd-account-content h2 {
  font-size: clamp(20px, 2.5vw, 30px);
  margin-bottom: 32px; padding-bottom: 20px;
  border-bottom: 1px solid var(--g2);
}
.woocommerce-MyAccount-content > p:first-of-type {
  font-size: 15px; color: var(--g5); line-height: 1.8; margin-bottom: 40px;
}

/* ── Dashboard Stats ── */
.fd-dashboard-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 2px; margin-bottom: 60px;
}
.fd-stat-card { background: var(--g1); padding: 36px; text-align: center; }
.fd-stat-num {
  font-family: var(--font2); font-size: 44px; font-weight: 800;
  letter-spacing: -0.04em; color: var(--black); line-height: 1; margin-bottom: 10px;
}
.fd-stat-label {
  font-size: 10px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--g4);
}

/* ── Dashboard section ── */
.fd-dashboard-section { margin-top: 48px; }
.fd-dashboard-section h3 {
  font-size: 18px; margin-bottom: 24px;
  padding-bottom: 16px; border-bottom: 1px solid var(--g2);
}

/* ── Orders Table ── */
.fd-orders-table,
.woocommerce-orders-table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }

.fd-orders-table thead th,
.woocommerce-orders-table thead th {
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--g4); padding: 0 0 16px;
  border-bottom: 1px solid var(--g2); text-align: left;
}
.fd-orders-table tbody td,
.woocommerce-orders-table tbody td {
  padding: 20px 0; border-bottom: 1px solid var(--g2);
  font-size: 14px; vertical-align: middle;
}
.fd-orders-table tbody tr:last-child td,
.woocommerce-orders-table tbody tr:last-child td { border-bottom: none; }

/* Order status badges */
.fd-order-status,
.woocommerce-orders-table__cell-order-status mark {
  display: inline-flex; padding: 4px 10px;
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  background: none; box-shadow: none;
}
.fd-status-completed,
mark.order-status.completed   { background: #f0faf4 !important; color: #16a34a !important; }
.fd-status-processing,
mark.order-status.processing  { background: #eff6ff !important; color: #2563eb !important; }
.fd-status-pending,
mark.order-status.pending     { background: var(--g1) !important; color: var(--g5) !important; }
.fd-status-cancelled,
mark.order-status.cancelled   { background: #fef2f2 !important; color: #dc2626 !important; }
.fd-status-on-hold,
mark.order-status.on-hold     { background: #fffbeb !important; color: #d97706 !important; }
.fd-status-refunded,
mark.order-status.refunded    { background: #f5f3ff !important; color: #7c3aed !important; }

/* Order detail view */
.woocommerce-order-details,
.woocommerce-customer-details { margin-bottom: 48px; }
.woocommerce-order-details h2,
.woocommerce-customer-details h2 {
  font-size: 20px; margin-bottom: 24px;
  padding-bottom: 16px; border-bottom: 1px solid var(--g2);
}
.woocommerce-table--order-details { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
  padding: 14px 0; border-bottom: 1px solid var(--g2);
  font-size: 14px; text-align: left;
}
.woocommerce-table--order-details tfoot th,
.woocommerce-table--order-details tfoot td { font-weight: 700; color: var(--black); }

/* ── Account Forms ── */
.woocommerce-EditAccountForm .form-row,
.woocommerce-address-fields .form-row,
.login .form-row { margin-bottom: 20px; }

.woocommerce-EditAccountForm label,
.woocommerce-address-fields label,
.login label {
  display: block; font-size: 11px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--black); margin-bottom: 8px;
}

.woocommerce-EditAccountForm input[type="text"],
.woocommerce-EditAccountForm input[type="email"],
.woocommerce-EditAccountForm input[type="password"],
.woocommerce-EditAccountForm input[type="tel"],
.woocommerce-EditAccountForm select,
.woocommerce-address-fields input,
.woocommerce-address-fields select,
.login input[type="text"],
.login input[type="password"],
.login input[type="email"] {
  width: 100%; padding: 13px 16px;
  border: 1px solid var(--g2); background: var(--white);
  font-size: 14px; font-family: var(--font); color: var(--black);
  transition: border-color 0.2s; appearance: none;
}

.woocommerce-EditAccountForm input:focus,
.woocommerce-address-fields input:focus,
.woocommerce-address-fields select:focus,
.login input:focus { outline: none; border-color: var(--black); }

.woocommerce-EditAccountForm button[type="submit"],
.woocommerce-EditAccountForm .woocommerce-Button,
.woocommerce-address-fields button[type="submit"],
.woocommerce-address-fields .woocommerce-Button,
.woocommerce-account .button,
.login .button {
  display: inline-flex; align-items: center;
  background: var(--black); color: var(--white);
  border: 1px solid var(--black);
  padding: 14px 32px; font-size: 13px; font-weight: 600;
  letter-spacing: 0.04em; cursor: pointer; font-family: var(--font);
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
}
.woocommerce-EditAccountForm button[type="submit"]:hover,
.woocommerce-EditAccountForm .woocommerce-Button:hover,
.woocommerce-address-fields button[type="submit"]:hover,
.woocommerce-account .button:hover,
.login .button:hover { background: transparent; color: var(--black); }

/* Address sections */
.woocommerce-Addresses {
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
}
.woocommerce-Address {
  border: 1px solid var(--g2); padding: 32px;
}
.woocommerce-Address-title {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--g2);
}
.woocommerce-Address-title h3 { font-size: 16px; font-weight: 700; }
.woocommerce-Address-title .edit { font-size: 12px; color: var(--g4); }
.woocommerce-Address address { font-style: normal; font-size: 14px; line-height: 1.8; color: var(--g5); }

/* Fieldset (Edit Account password section) */
.woocommerce-EditAccountForm fieldset {
  border: 1px solid var(--g2); padding: 24px; margin-top: 32px; margin-bottom: 32px;
}
.woocommerce-EditAccountForm fieldset legend {
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; padding: 0 10px;
}

/* Responsive */
@media (max-width: 900px) {
  .fd-account-grid { grid-template-columns: 1fr; gap: 40px; }
  .fd-account-nav { position: static; }
  .fd-account-nav ul { display: flex; flex-wrap: wrap; border: none; gap: 8px; }
  .fd-account-nav li { border: 1px solid var(--g2); border-bottom: 1px solid var(--g2); }
  .fd-account-nav li a { padding: 10px 16px; font-size: 12px; }
  .fd-dashboard-stats { grid-template-columns: 1fr 1fr; }
  .woocommerce-Addresses { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .fd-dashboard-stats { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────
   19. LOGIN PAGE (My Account — não logado)
   ───────────────────────────────────────────── */
.fd-login-wrap {
  padding-top: calc(var(--header-h) + 80px);
  padding-bottom: 100px;
}
.fd-login-header { text-align: center; margin-bottom: 60px; }
.fd-login-header h1 { font-size: clamp(28px, 3vw, 44px); margin-top: 8px; }

.fd-login-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 2px; max-width: 960px; margin: 0 auto;
}
.fd-login-col { background: var(--g1); padding: 52px; }
.fd-login-col h2 {
  font-size: 24px; margin-bottom: 36px;
  padding-bottom: 20px; border-bottom: 1px solid var(--g2);
}
.fd-login-col .form-row { margin-bottom: 20px; }

.fd-login-col label {
  display: block; font-size: 11px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--black); margin-bottom: 8px;
}
.fd-login-col input[type="text"],
.fd-login-col input[type="password"],
.fd-login-col input[type="email"] {
  width: 100%; padding: 13px 16px;
  border: 1px solid var(--g2); background: var(--white);
  font-size: 14px; font-family: var(--font); color: var(--black);
  transition: border-color 0.2s;
}
.fd-login-col input:focus { outline: none; border-color: var(--black); }
.fd-login-col .button {
  display: inline-flex; align-items: center;
  background: var(--black); color: var(--white);
  border: 1px solid var(--black);
  padding: 14px 32px; font-size: 13px; font-weight: 600;
  letter-spacing: 0.04em; cursor: pointer; font-family: var(--font);
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
  margin-top: 8px;
}
.fd-login-col .button:hover { background: transparent; color: var(--black); }
.fd-login-col .lost_password { font-size: 12px; color: var(--g4); margin-top: 16px; display: block; }
.fd-login-col .woocommerce-privacy-policy-text { font-size: 12px; color: var(--g4); margin-top: 16px; }
.fd-login-col .woocommerce-privacy-policy-text a { color: var(--g5); text-decoration: underline; }

@media (max-width: 768px) {
  .fd-login-grid { grid-template-columns: 1fr; }
  .fd-login-col { padding: 36px 24px; }
}

/* ─────────────────────────────────────────────
   20. THANK YOU / ORDER CONFIRMATION
   ───────────────────────────────────────────── */
.fd-thankyou-wrap {
  padding-top: calc(var(--header-h) + 80px);
  padding-bottom: 100px;
}
.fd-thankyou-hero {
  text-align: center; max-width: 560px; margin: 0 auto 80px;
}
.fd-thankyou-icon {
  width: 72px; height: 72px; background: var(--black);
  display: grid; place-items: center;
  margin: 0 auto 32px; color: var(--white); font-size: 30px;
}
.fd-thankyou-hero h1 { font-size: clamp(28px, 3.5vw, 48px); margin-bottom: 16px; }
.fd-thankyou-hero p { font-size: 16px; color: var(--g5); line-height: 1.8; }

/* WC order overview list */
.woocommerce-order-overview {
  list-style: none; display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 2px; margin: 0 0 60px; padding: 0;
}
.woocommerce-order-overview li {
  background: var(--g1); padding: 28px;
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--g4);
}
.woocommerce-order-overview li strong {
  display: block; font-family: var(--font2);
  font-size: 18px; font-weight: 700; letter-spacing: -0.01em;
  color: var(--black); margin-top: 8px; text-transform: none;
}
.woocommerce-order-details h2.woocommerce-order-details__title {
  font-size: 20px; margin-bottom: 24px;
  padding-bottom: 16px; border-bottom: 1px solid var(--g2);
}

.fd-thankyou-actions {
  display: flex; gap: 16px; justify-content: center;
  flex-wrap: wrap; margin-top: 60px;
}

/* ─────────────────────────────────────────────
   21. CATEGORY ARCHIVE — Banner Hero
   ───────────────────────────────────────────── */
.fd-cat-hero {
  min-height: 380px; background: var(--black);
  display: flex; align-items: flex-end;
  padding-top: var(--header-h); position: relative; overflow: hidden;
}
.fd-cat-hero-inner {
  padding: 60px var(--gap); position: relative; z-index: 2;
  width: 100%; max-width: var(--container); margin: 0 auto;
}
.fd-cat-hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0.2;
}
.fd-cat-hero h1 { color: var(--white); font-size: clamp(32px, 5vw, 72px); margin-bottom: 12px; }
.fd-cat-hero p { color: var(--g4); font-size: 15px; max-width: 560px; }
.fd-cat-count {
  display: inline-block; font-size: 11px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--g5); margin-bottom: 16px;
}

@media (max-width: 768px) { .fd-cat-hero { min-height: 260px; } }

/* ─────────────────────────────────────────────
   22. WC NOTICES & ALERTS
   ───────────────────────────────────────────── */
.woocommerce-info,
.woocommerce-message {
  background: var(--g1); border-left: 4px solid var(--black);
  padding: 16px 20px; font-size: 14px; color: var(--black);
  display: flex; align-items: center; gap: 16px; margin-bottom: 24px;
}
.woocommerce-error {
  background: #fef2f2; border-left: 4px solid #dc2626;
  padding: 16px 20px; font-size: 14px; color: #991b1b; margin-bottom: 24px;
}
.woocommerce-error li,
.woocommerce-message li,
.woocommerce-info li { margin: 0; padding: 0; }

/* ─────────────────────────────────────────────
   23. WC VARIATION FORM & QTY
   ───────────────────────────────────────────── */
.woocommerce .quantity,
.fd-wc-qty { display: inline-flex; align-items: center; border: 1px solid var(--g2); height: 52px; }
.woocommerce .quantity .qty {
  width: 52px; height: 100%;
  border: none; border-left: 1px solid var(--g2); border-right: 1px solid var(--g2);
  text-align: center; font-size: 14px; font-weight: 600;
  font-family: var(--font2); color: var(--black); background: none;
  -moz-appearance: textfield;
}
.woocommerce .quantity .qty::-webkit-inner-spin-button,
.woocommerce .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Add to cart button — oculto na coluna de variações (sticky bottom é o único ponto de compra) */
.woocommerce .single_add_to_cart_button,
.woocommerce form.cart .quantity { display: none !important; }

/* Variation selects */
.woocommerce .variations select {
  width: 100%; padding: 12px 40px 12px 16px; border: 1px solid var(--g2);
  background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23131419' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;
  font-size: 14px; font-family: var(--font);
  color: var(--black); cursor: pointer; appearance: none;
  transition: border-color 0.2s;
}
.woocommerce .variations select:focus { outline: none; border-color: var(--black); }
/* Variations table → stacked layout (label acima, opções abaixo) */
.woocommerce .variations_form .variations {
  display: block;
  margin-bottom: 8px;
  width: 100%;
}
.woocommerce .variations_form .variations tbody { display: flex; flex-direction: column; gap: 20px; }
.woocommerce .variations_form .variations tr   { display: flex; flex-direction: column; gap: 8px; }
.woocommerce .variations_form .variations td,
.woocommerce .variations_form .variations th  { display: block; padding: 0; }
.woocommerce .variations_form .variations .label label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--black); display: block;
  text-align: left;
}
/* Dropdown de formato */
.woocommerce .variations select {
  display: block; width: 100%;
}
.woocommerce .woocommerce-variation-price { margin-bottom: 24px; }
.woocommerce form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* ── Variation buttons (Cor / Acabamento) ── */
.fd-var-select-hidden { display: none !important; }

.fd-var-btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

.fd-var-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  color: var(--black);
  background: transparent;
  border: 1px solid var(--g2);
  cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
  white-space: nowrap;
}
.fd-var-btn:hover {
  border-color: var(--black);
}
.fd-var-btn.is-active {
  border-width: 2px;
  border-color: var(--black);
  font-weight: 600;
}
.fd-var-btn.is-unavailable {
  opacity: .35;
  cursor: not-allowed;
  pointer-events: none;
}

/* Shake de alerta quando o usuário tenta adicionar sem selecionar atributo */
@keyframes fd-var-shake {
  0%, 100% { transform: translateX(0); }
  20%       { transform: translateX(-6px); }
  40%       { transform: translateX(6px); }
  60%       { transform: translateX(-4px); }
  80%       { transform: translateX(4px); }
}
.fd-var-required-shake {
  animation: fd-var-shake .45s ease;
  outline: 2px solid var(--accent, #e63946);
  outline-offset: 4px;
  border-radius: 6px;
}

/* ─────────────────────────────────────────────
   24. SEARCH RESULTS PAGE
   ───────────────────────────────────────────── */
.fd-search-wrap {
  padding-top: calc(var(--header-h) + 60px);
  padding-bottom: 100px;
}
.fd-search-header {
  margin-bottom: 60px; padding-bottom: 40px; border-bottom: 1px solid var(--g2);
}
.fd-search-header .fd-search-form {
  display: flex; gap: 0; max-width: 560px; margin-top: 24px;
}
.fd-search-header .fd-search-form input {
  flex: 1; padding: 14px 20px; border: 1px solid var(--g2); border-right: none;
  font-size: 14px; font-family: var(--font); color: var(--black);
}
.fd-search-header .fd-search-form input:focus { outline: none; border-color: var(--black); }
.fd-search-header .fd-search-form button {
  padding: 14px 24px; background: var(--black); color: var(--white);
  border: 1px solid var(--black);
  font-size: 13px; font-weight: 600; cursor: pointer;
  font-family: var(--font); transition: background 0.3s, color 0.3s;
}
.fd-search-header .fd-search-form button:hover { background: transparent; color: var(--black); }

/* ─────────────────────────────────────────────
   25. SHOP SIDEBAR (widgets)
   ───────────────────────────────────────────── */
.fd-shop-with-sidebar {
  display: grid; grid-template-columns: 260px 1fr;
  gap: 60px; align-items: start;
}
.fd-sidebar { position: sticky; top: calc(var(--header-h) + 24px); }
.fd-widget { margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--g2); }
.fd-widget:last-child { border-bottom: none; }
.fd-widget-title {
  font-size: 12px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--black); margin-bottom: 20px;
}
.fd-widget ul { display: flex; flex-direction: column; gap: 10px; }
.fd-widget ul li a { font-size: 13px; color: var(--g5); transition: color 0.2s; }
.fd-widget ul li a:hover { color: var(--black); }

@media (max-width: 900px) {
  .fd-shop-with-sidebar { grid-template-columns: 1fr; }
  .fd-sidebar { position: static; order: -1; }
}

/* ─────────────────────────────────────────────
   26. TABELA DE PREÇOS POR QUANTIDADE
   ───────────────────────────────────────────── */
.fd-price-table-wrap {
  margin: 32px 0 24px;
}
.fd-price-table-title {
  font-size: 13px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; margin-bottom: 12px; color: var(--black);
}
.fd-price-table {
  width: 100%; border-collapse: collapse;
  font-size: 13px;
}
.fd-price-table thead th {
  text-align: left; padding: 10px 14px;
  border-bottom: 2px solid var(--black);
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--g4);
}
.fd-price-table tbody tr {
  border-bottom: 1px solid var(--g1);
  transition: background 0.15s;
  cursor: pointer;
}
.fd-price-table tbody tr:hover { background: var(--g1); }
.fd-price-table tbody tr.is-selected { background: var(--g2); }
.fd-price-table tbody tr.is-selected td:first-child { box-shadow: inset 3px 0 0 var(--black); }
.fd-price-table tbody tr.is-selected .fd-pt-radio-label { font-weight: 700; }
.fd-price-table tbody tr.is-selected .fd-pt-total strong { color: var(--black); }
.fd-price-table td { padding: 12px 14px; vertical-align: middle; }
.fd-pt-radio-label {
  display: flex; align-items: center; gap: 10px;
  cursor: pointer; font-weight: 500;
}
.fd-pt-radio-label input[type="radio"] {
  accent-color: var(--black);
  width: 16px; height: 16px; cursor: pointer; flex-shrink: 0;
}
.fd-pt-unit { color: var(--g4); font-size: 12px; }
.fd-pt-total strong { font-size: 15px; font-weight: 700; }
.fd-discount-badge {
  display: inline-block;
  background: #d4edda; color: #1a7a36;
  font-size: 11px; font-weight: 700;
  padding: 2px 7px; border-radius: 20px;
  letter-spacing: 0.02em; white-space: nowrap;
}

/* ─────────────────────────────────────────────
   27. SERVIÇOS ADICIONAIS
   ───────────────────────────────────────────── */
.fd-service-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 20px 0 4px;
}
.fd-service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px 16px 16px;
  background: var(--sc-bg, var(--g1));
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.18s;
  user-select: none;
}
.fd-service-card:hover       { border-color: var(--sc-accent, var(--g3)); }
.fd-service-card.is-selected { border-color: var(--sc-accent, var(--black)); }
.fd-sc-badge {
  position: absolute;
  top: -11px;
  left: 14px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  color: #000;
  line-height: 1.5;
}
.fd-sc-title { font-size: 14px; font-weight: 700; color: var(--black); line-height: 1.3; }
.fd-sc-desc  { font-size: 12px; color: var(--g5); line-height: 1.5; margin: 0; }
.fd-sc-price { margin-top: 6px; font-size: 15px; font-weight: 700; color: var(--black); }

/* ─────────────────────────────────────────────
   29. GABARITOS
   ───────────────────────────────────────────── */
.fd-gabaritos-wrap  { margin: 24px 0 8px; }
.fd-gabaritos-grid  { display: flex; flex-wrap: wrap; gap: 20px; }
.fd-gab-card {
  display: flex; flex-direction: column;
  align-items: center; gap: 8px;
  text-decoration: none; color: var(--black);
  transition: transform 0.15s, opacity 0.15s;
}
.fd-gab-card:hover  { transform: translateY(-2px); opacity: 0.8; }
.fd-gab-icon { width: 64px; height: 64px; display: flex; }
.fd-gab-icon img {
  width: 64px; height: 64px; display: block; object-fit: contain;
  filter: brightness(0);
  transition: filter 0.2s;
}
.fd-gab-card:hover .fd-gab-icon img { filter: none; }
.fd-gab-label { font-size: 11px; font-weight: 500; color: var(--g5); text-align: center; }

/* ─────────────────────────────────────────────
   28. TABELA DE ESPECIFICAÇÕES DO PRODUTO
   ───────────────────────────────────────────── */
.fd-spec-table-wrap { margin: 24px 0 8px; }
.fd-spec-title {
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--black); margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--black);
}
.fd-spec-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.fd-spec-table tr { border-bottom: 1px solid var(--g2); }
.fd-spec-table th {
  text-align: left; font-weight: 600;
  padding: 10px 16px 10px 0;
  width: 40%; color: var(--black);
  vertical-align: top;
}
.fd-spec-table td {
  padding: 10px 0;
  color: var(--g5);
  vertical-align: top;
}

/* ─────────────────────────────────────────────
   VARIATION — oculta preço da variação e botão Limpar
   (o preço é gerido pelo nosso bloco .fd-single-price)
   ───────────────────────────────────────────── */
.woocommerce-variation-price,
.woocommerce-variation-availability,
.reset_variations { display: none !important; }

/* ─────────────────────────────────────────────
   STICKY CART BAR
   ───────────────────────────────────────────── */
.fd-sticky-cart {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 999;
  background: #fff;
  border-top: 1px solid var(--g2);
  box-shadow: 0 -4px 24px rgba(0,0,0,.10);
  transform: translateY(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}
.fd-sticky-cart.is-visible { transform: translateY(0); }

.fd-sticky-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 12px 0;
  flex-wrap: nowrap;
}

/* Info */
.fd-sticky-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 0;
  min-width: 0;
}
.fd-sticky-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--black);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fd-sticky-attrs {
  font-size: 11px;
  color: var(--g5);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Preço */
.fd-sticky-price {
  display: flex;
  align-items: baseline;
  gap: 5px;
  white-space: nowrap;
  flex-shrink: 0;
}
.fd-sticky-from {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--g5);
}
.fd-sticky-amount {
  font-size: 18px;
  font-weight: 800;
  color: var(--black);
}
.fd-sticky-unit {
  font-size: 10px;
  text-transform: uppercase;
  color: var(--g5);
}

/* Qty */
.fd-sticky-qty {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--g2);
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.fd-qty-btn {
  background: none;
  border: none;
  width: 36px;
  height: 40px;
  font-size: 18px;
  cursor: pointer;
  color: var(--black);
  transition: background .15s;
}
.fd-qty-btn:hover { background: var(--g1); }
.fd-sticky-qty-input {
  width: 44px;
  height: 40px;
  border: none;
  border-left: 1.5px solid var(--g2);
  border-right: 1.5px solid var(--g2);
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--black);
  -moz-appearance: textfield;
}
.fd-sticky-qty-input::-webkit-outer-spin-button,
.fd-sticky-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* Botões sticky — base compartilhada */
.fd-sticky-add,
.fd-sticky-buy {
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  padding: 0 20px;
  height: 46px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: opacity .15s, transform .15s;
}
.fd-sticky-add:hover,
.fd-sticky-buy:hover { opacity: .88; transform: translateY(-1px); }
.fd-sticky-add:active,
.fd-sticky-buy:active { transform: translateY(0); }

/* Adicionar ao carrinho — outline */
.fd-sticky-add {
  background: transparent;
  color: var(--black);
  border: 2px solid var(--black);
}

/* Comprar — sólido preto */
.fd-sticky-buy {
  background: var(--black);
  color: #fff;
  border: 2px solid var(--black);
}

/* Sticky — ajustes de preço total e prefixo de qtd */
.fd-sticky-total-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--g5);
  display: block;
}
.fd-sticky-amount {
  font-size: 20px;
  font-weight: 800;
  color: var(--black);
  display: block;
}
.fd-sticky-qty-prefix {
  color: var(--black);
  font-weight: 800;
}

/* Sticky — corrige overflow e garante visibilidade dos botões */
.fd-sticky-cart { overflow: hidden; }
.fd-sticky-inner {
  gap: 16px;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
}
.fd-sticky-inner::-webkit-scrollbar { display: none; }
.fd-sticky-info  { flex: 1 1 180px; min-width: 120px; }
.fd-sticky-price { flex-shrink: 0; min-width: 90px; }
.fd-sticky-qty   { flex-shrink: 0; }
.fd-sticky-add   { flex-shrink: 0; min-width: 160px; }
.fd-sticky-buy   { flex-shrink: 0; min-width: 110px; }

/* ── Side Cart Drawer ──────────────────────────────────────────── */
.fd-side-cart {
  position: fixed;
  inset: 0;
  z-index: 10000;
  pointer-events: none;
}
.fd-side-cart.is-open { pointer-events: all; }

/* Overlay */
.fd-sc-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  opacity: 0;
  transition: opacity .3s ease;
}
.fd-side-cart.is-open .fd-sc-overlay { opacity: 1; }

/* Painel */
.fd-sc-drawer {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(420px, 94vw);
  background: #fff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
  box-shadow: -4px 0 40px rgba(0,0,0,.12);
}
.fd-side-cart.is-open .fd-sc-drawer { transform: translateX(0); }

/* Loading overlay */
.fd-sc-drawer.is-loading::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.6);
  z-index: 2;
}

/* Inner — container flex vertical */
.fd-sc-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

/* Header */
.fd-sc-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--g2);
  flex-shrink: 0;
}
.fd-sc-title {
  font-size: 18px;
  font-weight: 700;
  margin: 0;
  color: var(--black);
}
.fd-sc-count {
  font-size: 13px;
  color: var(--g5);
  flex: 1;
}
.fd-sc-close {
  background: none;
  border: none;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  color: var(--g5);
  padding: 4px 6px;
  border-radius: 6px;
  transition: color .15s, background .15s;
}
.fd-sc-close:hover { color: var(--black); background: var(--g1); }

/* Área de items (scroll) */
.fd-sc-items {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Estado vazio */
.fd-sc-empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 48px 24px;
  text-align: center;
  color: var(--g5);
}
.fd-sc-shop-link {
  display: inline-block;
  background: var(--black);
  color: #fff;
  padding: 12px 28px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
}

/* Item individual */
.fd-sc-item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 0 0;
}
.fd-sc-item:first-child { padding-top: 0; }
/* Separador: entre svc-row e próximo produto, ou entre dois produtos sem svc-row */
.fd-sc-svc-row + .fd-sc-item,
.fd-sc-item + .fd-sc-item {
  border-top: 1px solid var(--g2);
  padding-top: 16px;
}

.fd-sc-item-thumb {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--g1);
}
.fd-sc-thumb-img,
.fd-sc-item-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.fd-sc-item-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.fd-sc-item-top {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.fd-sc-item-name {
  flex: 1;
  font-size: 13px;
  font-weight: 600;
  color: var(--black);
  line-height: 1.35;
}
.fd-sc-item-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--black);
  white-space: nowrap;
}
.fd-sc-item-attrs {
  font-size: 12px;
  color: var(--g5);
}
.fd-sc-item-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 8px;
}
.fd-sc-remove {
  display: flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  color: var(--g5);
  font-size: 12px;
  cursor: pointer;
  padding: 0;
  transition: color .15s;
}
.fd-sc-remove:hover { color: #c00; }

/* Controle de quantidade */
.fd-sc-qty-ctrl {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--g3);
  border-radius: 8px;
  overflow: hidden;
}
.fd-sc-q-btn {
  background: none;
  border: none;
  width: 30px;
  height: 30px;
  font-size: 16px;
  cursor: pointer;
  color: var(--black);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.fd-sc-q-btn:hover { background: var(--g1); }

/* Serviços adicionais — checkboxes inline no side cart */
.fd-sc-svc-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  padding-bottom: 16px;
}
.fd-sc-svc-chk {
  flex: 1;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px;
  border-radius: 8px;
  background: transparent;
  border: 1.5px solid var(--g3);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
  user-select: none;
}
.fd-sc-svc-chk:hover { border-color: var(--g5); }
.fd-sc-svc-chk.is-checked {
  background: var(--black);
  border-color: var(--black);
}
.fd-sc-svc-chk input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 2px;
  width: 14px;
  height: 14px;
  accent-color: #fff;
  cursor: pointer;
}
.fd-sc-svc-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.fd-sc-svc-name {
  font-size: 11px; font-weight: 700;
  color: var(--black);
  line-height: 1.3;
  transition: color .15s;
}
.fd-sc-svc-desc {
  font-size: 10px;
  color: var(--g5);
  line-height: 1.35;
  transition: color .15s;
}
.fd-sc-svc-price {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 700;
  color: var(--black);
  white-space: nowrap;
  align-self: flex-end;
  transition: color .15s;
}
/* Estado marcado: tudo fica branco */
.fd-sc-svc-chk.is-checked .fd-sc-svc-name,
.fd-sc-svc-chk.is-checked .fd-sc-svc-desc,
.fd-sc-svc-chk.is-checked .fd-sc-svc-price,
.fd-sc-svc-chk.is-checked .woocommerce-Price-amount { color: #fff; }
.fd-sc-svc-price .woocommerce-Price-amount { font-size: inherit; font-weight: inherit; }

.fd-sc-q-val {
  width: 36px;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  color: var(--black);
  border: none;
  border-left: 1.5px solid var(--g3);
  border-right: 1.5px solid var(--g3);
  background: none;
  outline: none;
  padding: 0;
  height: 30px;
  line-height: 30px;
  -moz-appearance: textfield;
}
.fd-sc-q-val::-webkit-inner-spin-button,
.fd-sc-q-val::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* Footer */
.fd-sc-footer {
  border-top: 1px solid var(--g2);
  padding: 20px 24px 28px;
  flex-shrink: 0;
}
.fd-sc-subtotal-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 4px;
}
.fd-sc-subtotal-label {
  font-size: 15px;
  font-weight: 700;
  color: var(--black);
}
.fd-sc-subtotal-val {
  font-size: 22px;
  font-weight: 800;
  color: var(--black);
}
.fd-sc-note {
  font-size: 12px;
  color: var(--g5);
  margin: 4px 0 16px;
}
.fd-sc-btns {
  display: flex;
  gap: 10px;
}
.fd-sc-view-cart,
.fd-sc-checkout {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 13px 16px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  transition: opacity .15s;
}
.fd-sc-view-cart {
  border: 2px solid var(--black);
  color: var(--black);
  background: transparent;
}
.fd-sc-checkout {
  background: var(--black);
  color: #fff;
  border: 2px solid var(--black);
}
.fd-sc-view-cart:hover,
.fd-sc-checkout:hover { opacity: .82; }


/* ═══════════════════════════════════════════════════════════════
   CHECKOUT FLOW — PÁGINA ARQUIVOS
   ═══════════════════════════════════════════════════════════════ */

/* ── Steps bar ── */
.fd-steps-bar {
  background: #fff;
  border-bottom: 1px solid var(--g2);
  padding: 18px 0;
  margin-bottom: 0;
}
.fd-steps-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  max-width: 340px;
  margin: 0 auto;
}
.fd-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.fd-step-circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid var(--g3);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--g4);
  background: #fff;
  transition: all .2s;
}
.fd-step.is-active .fd-step-circle {
  background: var(--black);
  border-color: var(--black);
  color: #fff;
}
.fd-step.is-done .fd-step-circle {
  background: var(--black);
  border-color: var(--black);
  color: #fff;
}
.fd-step-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--g4);
}
.fd-step.is-active .fd-step-label { color: var(--black); }
.fd-step-line {
  flex: 1;
  height: 2px;
  background: var(--g2);
  margin: 0 8px;
  margin-bottom: 20px;
  min-width: 40px;
}

/* ── PDF Banner ── */
.fd-pdf-banner {
  display: flex;
  align-items: center;
  gap: 24px;
  background: var(--g1);
  border: 1px solid var(--g2);
  border-radius: 10px;
  padding: 14px 20px;
  margin-bottom: 28px;
}
.fd-pdf-banner-lead {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}
.fd-pdf-icon { flex-shrink: 0; }
.fd-pdf-features {
  display: flex;
  gap: 20px;
  font-size: 13px;
  color: var(--g5);
  flex-wrap: wrap;
}
.fd-pdf-features span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.fd-pdf-features svg { color: #1ea35b; flex-shrink: 0; }
.fd-pdf-how-btn {
  margin-left: auto;
  background: var(--black);
  color: #fff;
  border-radius: 8px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .15s;
}
.fd-pdf-how-btn:hover { opacity: .82; color: #fff; }

/* ── Checkout container + grid ── */
.fd-checkout-container {
  padding-top: 32px;
  padding-bottom: 60px;
}
.fd-checkout-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 28px;
  align-items: start;
}
@media (max-width: 900px) {
  .fd-checkout-grid { grid-template-columns: 1fr; }
}

/* ── Artwork cards ── */
.fd-artwork-list { display: flex; flex-direction: column; gap: 0; }

.fd-artwork-card {
  background: #fff;
  border: 1px solid var(--g2);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
}
.fd-artwork-card-num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--g4);
  padding: 10px 20px 0;
}
.fd-artwork-card-body {
  display: grid;
  grid-template-columns: 90px 1fr auto;
  gap: 20px;
  padding: 12px 20px 20px;
  align-items: start;
}
@media (max-width: 640px) {
  .fd-artwork-card-body { grid-template-columns: 1fr; }
}
.fd-artwork-card-thumb img {
  width: 90px;
  height: 90px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--g2);
  display: block;
}
.fd-artwork-card-name {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 4px;
  line-height: 1.3;
}
.fd-artwork-card-sku {
  font-size: 12px;
  color: var(--g4);
  margin-bottom: 4px;
}
.fd-artwork-card-attrs {
  font-size: 13px;
  color: var(--g5);
  margin-bottom: 8px;
}
.fd-artwork-card-meta {
  display: flex;
  gap: 16px;
  font-size: 13px;
  color: var(--g5);
}
.fd-artwork-card-meta strong { color: var(--black); }

/* ── Upload / later buttons ── */
.fd-artwork-card-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 160px;
}
.fd-artwork-btns {
  display: flex;
  flex-direction: row;
  gap: 8px;
}
.fd-aw-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 20px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
  transition: background .15s, border-color .15s, opacity .15s;
  border: 2px solid var(--g2);
  background: #fff;
  color: var(--black);
  width: 100%;
}
.fd-aw-btn input[type="file"] { display: none; }
.fd-aw-btn-upload {
  border-color: var(--black);
  background: var(--black);
  color: #fff;
}
.fd-aw-btn-upload:hover { opacity: .85; }
.fd-aw-btn-later { border-color: var(--g2); }
.fd-aw-btn-later:hover { border-color: var(--g4); }

/* ── Uploaded / later state ── */
.fd-artwork-done {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px;
  border-radius: 10px;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
}
.fd-artwork-done.is-file {
  background: #f0faf5;
  border: 2px solid #1ea35b;
  color: #1ea35b;
}
.fd-artwork-done.is-later {
  background: var(--g1);
  border: 2px solid var(--g3);
  color: var(--g5);
}
.fd-aw-filename {
  font-size: 11px;
  word-break: break-all;
  color: inherit;
}
.fd-aw-change {
  font-size: 12px;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  color: inherit;
  margin-top: 2px;
}
.fd-aw-change input[type="file"] { display: none; }
.fd-artwork-card.is-uploading .fd-artwork-card-actions { opacity: .5; pointer-events: none; }

/* ── Sidebar ── */
.fd-checkout-sidebar { position: sticky; top: calc(var(--header-h, 70px) + 20px); }

.fd-artwork-summary {
  background: #fff;
  border: 1px solid var(--g2);
  border-radius: 12px;
  padding: 24px;
}
.fd-artwork-summary h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 18px;
}

/* reuse existing fd-totals-* rules */

.fd-advance-btn {
  display: block;
  width: 100%;
  background: var(--black);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
  margin-top: 20px;
  transition: opacity .15s;
  text-decoration: none;
}
.fd-advance-btn:hover { opacity: .85; color: #fff; }

.fd-checkout-flow .fd-cart-continue {
  display: block;
  text-align: center;
  margin-top: 12px;
  font-size: 13px;
  color: var(--g4);
  text-decoration: none;
}
.fd-checkout-flow .fd-cart-continue:hover { color: var(--black); }


/* ═══════════════════════════════════════════════════════════════
   CHECKOUT FLOW — PÁGINA FRETE
   ═══════════════════════════════════════════════════════════════ */

/* ── Seções ── */
.fd-shipping-main { display: flex; flex-direction: column; gap: 24px; }

.fd-shipping-section {
  background: #fff;
  border: 1px solid var(--g2);
  border-radius: 12px;
  padding: 24px;
}
.fd-shipping-section-title {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--g2);
}

/* ── Endereço salvo ── */
.fd-address-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--g2);
  border-radius: 10px;
  background: var(--g1);
}
.fd-address-card-icon { color: var(--g4); flex-shrink: 0; margin-top: 2px; }
.fd-address-card-body { flex: 1; }
.fd-address-line { font-size: 14px; color: var(--g5); line-height: 1.6; }
.fd-address-main { font-weight: 600; color: var(--black); }
.fd-address-edit-btn {
  background: none;
  border: 1px solid var(--g3);
  border-radius: 7px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  color: var(--black);
  transition: border-color .15s, background .15s;
}
.fd-address-edit-btn:hover { border-color: var(--black); background: var(--g1); }

/* ── Sem endereço ── */
.fd-address-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 20px;
  text-align: center;
  color: var(--g5);
  font-size: 14px;
  border: 1px dashed var(--g3);
  border-radius: 10px;
  margin-bottom: 20px;
}
.fd-address-empty svg { color: var(--g3); margin-bottom: 4px; }
.fd-address-empty p { margin: 0; font-weight: 600; color: var(--black); }
.fd-address-empty-sub { font-size: 13px; color: var(--g4); }

/* ── Visitante ── */
.fd-address-guest-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--g5);
  background: var(--g1);
  border: 1px solid var(--g2);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 16px;
}
.fd-address-guest-btns {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
}
.fd-btn-outline {
  padding: 9px 18px;
  border: 2px solid var(--black);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  color: var(--black);
  transition: background .15s, color .15s;
}
.fd-btn-outline:hover { background: var(--black); color: #fff; }

/* ── Formulário de endereço ── */
.fd-address-form-wrap { margin-top: 16px; }
.fd-address-form { display: flex; flex-direction: column; gap: 14px; }
.fd-address-form-row { display: flex; gap: 14px; }
.fd-address-form-row--2 > .fd-field { flex: 1; }

.fd-field { display: flex; flex-direction: column; gap: 5px; flex: 1; }
.fd-field label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .03em;
  color: var(--g5);
  display: flex;
  align-items: center;
  gap: 8px;
}
.fd-field input,
.fd-field select {
  height: 44px;
  padding: 0 14px;
  border: 1.5px solid var(--g2);
  border-radius: 8px;
  font-size: 14px;
  font-family: var(--font);
  background: #fff;
  color: var(--black);
  outline: none;
  transition: border-color .15s;
  width: 100%;
  box-sizing: border-box;
}
.fd-field input:focus,
.fd-field select:focus { border-color: var(--black); }
.fd-field input::placeholder { color: var(--g3); }

.fd-cep-link {
  font-size: 11px;
  font-weight: 500;
  color: var(--g4);
  text-decoration: underline;
  margin-left: auto;
}
.fd-address-form-actions { padding-top: 4px; }
.fd-btn-save-address {
  background: var(--black);
  color: #fff;
  border: none;
  border-radius: 9px;
  padding: 12px 28px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .15s;
}
.fd-btn-save-address:hover { opacity: .85; }
.fd-btn-save-address:disabled { opacity: .5; cursor: default; }

/* ── Métodos de envio ── */
.fd-shipping-methods { display: flex; flex-direction: column; gap: 10px; }

.fd-shipping-method {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 2px solid var(--g2);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  position: relative;
}
.fd-shipping-method:hover { border-color: var(--g4); }
.fd-shipping-method.is-selected {
  border-color: var(--black);
  background: var(--g1);
}
.fd-shipping-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
/* Custom radio indicator */
.fd-shipping-method::before {
  content: '';
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--g3);
  flex-shrink: 0;
  transition: border-color .15s, background .15s;
  box-sizing: border-box;
}
.fd-shipping-method.is-selected::before {
  border-color: var(--black);
  background: radial-gradient(circle, var(--black) 5px, transparent 6px);
}
.fd-shipping-method-icon { color: var(--g4); flex-shrink: 0; }
.fd-shipping-method.is-selected .fd-shipping-method-icon { color: var(--black); }

.fd-shipping-method-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.fd-shipping-method-label { font-size: 14px; font-weight: 600; color: var(--black); }
.fd-shipping-method-desc { font-size: 12px; color: var(--g4); }
.fd-shipping-method-price {
  font-size: 15px;
  font-weight: 700;
  color: var(--black);
  white-space: nowrap;
}

/* ── Badge Grátis ── */
.fd-free-badge {
  display: inline-block;
  background: #d1fae5;
  color: #065f46;
  font-size: 12px;
  font-weight: 700;
  border-radius: 5px;
  padding: 2px 8px;
}

/* ── Sem métodos disponíveis ── */
.fd-shipping-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 28px;
  text-align: center;
  color: var(--g4);
  border: 1px dashed var(--g3);
  border-radius: 10px;
}
.fd-shipping-empty svg { margin-bottom: 4px; }
.fd-shipping-empty p { margin: 0; font-size: 14px; }
.fd-shipping-empty-sub { font-size: 13px; color: var(--g3); }

@media (max-width: 640px) {
  .fd-address-form-row { flex-direction: column; }
}

/* ─────────────────────────────────────────────
   AUTH MODAL
   ───────────────────────────────────────────── */
.fd-modal {
  position: fixed; inset: 0; z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.fd-modal.fd-modal-open {
  opacity: 1; visibility: visible; pointer-events: auto;
}
.fd-modal-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.5);
  backdrop-filter: blur(2px);
}
.fd-modal-box {
  position: relative; z-index: 1;
  background: var(--white);
  width: 100%; max-width: 420px;
  padding: 40px 36px 36px;
  box-shadow: 0 24px 64px rgba(0,0,0,.18);
  transform: translateY(12px);
  transition: transform 0.25s ease;
}
.fd-modal.fd-modal-open .fd-modal-box { transform: translateY(0); }

.fd-modal-close {
  position: absolute; top: 16px; right: 16px;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  color: var(--g4); background: none; border: none; cursor: pointer;
  transition: color 0.15s;
}
.fd-modal-close:hover { color: var(--black); }

/* Tabs */
.fd-modal-tabs {
  display: flex; gap: 0; margin-bottom: 28px;
  border-bottom: 1px solid var(--g2);
}
.fd-modal-tab {
  flex: 1; padding: 10px 0;
  font-size: 14px; font-weight: 600; color: var(--g4);
  background: none; border: none; border-bottom: 2px solid transparent;
  cursor: pointer; margin-bottom: -1px;
  transition: color 0.15s, border-color 0.15s;
}
.fd-modal-tab.active { color: var(--black); border-bottom-color: var(--black); }

/* Panes */
.fd-modal-pane { display: none; }
.fd-modal-pane.active { display: block; }

.fd-modal-title { font-size: 22px; font-weight: 700; margin-bottom: 6px; }
.fd-modal-sub { font-size: 13px; color: var(--g4); margin-bottom: 24px; }

/* Form fields */
.fd-auth-field {
  position: relative; margin-bottom: 12px;
}
.fd-auth-field input {
  width: 100%; height: 48px;
  padding: 0 16px;
  border: 1.5px solid var(--g2); background: var(--g1);
  font-size: 14px; font-family: var(--font); color: var(--black);
  outline: none; transition: border-color 0.2s;
}
.fd-auth-field input:focus { border-color: var(--black); background: var(--white); }
.fd-auth-field input::placeholder { color: var(--g4); }
.fd-auth-field-pw input { padding-right: 44px; }
.fd-pw-toggle {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer; color: var(--g4);
  display: flex; align-items: center; padding: 4px;
  transition: color 0.15s;
}
.fd-pw-toggle:hover { color: var(--black); }

/* Error */
.fd-auth-error {
  font-size: 12px; color: #c0392b;
  margin-bottom: 12px; min-height: 0;
}
.fd-auth-error:empty { display: none; }

/* Submit */
.fd-auth-submit {
  width: 100%; height: 48px; margin-top: 4px;
  background: var(--black); color: var(--white);
  border: none; font-size: 14px; font-weight: 600;
  font-family: var(--font); cursor: pointer; letter-spacing: 0.02em;
  transition: opacity 0.2s;
}
.fd-auth-submit:hover { opacity: 0.8; }
.fd-auth-submit:disabled { opacity: 0.5; cursor: not-allowed; }

/* Divider */
.fd-auth-divider {
  display: flex; align-items: center; gap: 12px;
  margin: 20px 0; font-size: 12px; color: var(--g4);
}
.fd-auth-divider::before,
.fd-auth-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--g2);
}

/* Social */
.fd-social-btns { display: flex; gap: 10px; }
.fd-social-btn {
  flex: 1; height: 44px;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  border: 1.5px solid var(--g2); background: var(--white);
  font-size: 13px; font-weight: 500; color: var(--black);
  text-decoration: none; transition: border-color 0.15s, background 0.15s;
}
.fd-social-btn:hover { border-color: var(--g4); background: var(--g1); }
