* { box-sizing: border-box; }
:root {
  --color-page: #f3f4f6;
  --color-surface: #ffffff;
  --color-surface-alt: #f8fafc;
  --color-text: #111827;
  --color-muted: #6b7280;
  --color-subtle: #4b5563;
  --color-strong: #374151;
  --color-border: #e5e7eb;
  --color-border-soft: #eef2f7;
  --color-image-bg: #f9fafb;
  --color-placeholder: #9ca3af;
  --color-disabled-bg: #d1d5db;
  --color-category-bg: #eef2ff;
  --color-category-text: #1f2937;
  --color-hero-end: #f0fdfa;
  --color-hero-border: #d1fae5;
  --color-focus: #0b63b6;
  --color-focus-strong: #084f93;
  --color-warning-bg: #fef3c7;
  --color-warning-text: #92400e;
  --color-panel-bg: #edf0f5;
  --color-panel-border: #d8dee8;
  --color-danger: #b91c1c;
  --color-accent-fallback: #f59e0b;
  --color-info-bg: #eff6ff;
  --color-info-border: #bfdbfe;
  --color-info-text: #1e3a8a;
  --color-info-strong: #1d4ed8;
  --color-success: #047857;
  --color-slate: #475569;
  --color-amber: #b45309;
  --color-blue-soft: #dbeafe;
  --color-quiet-border: #dfe3ea;
  --color-quiet-blue: #eaf4ff;
  --color-soft-panel: #eef0f4;
  --color-blue-tint: #eef6ff;
  --color-cloud: #fbfdff;
  --border-translucent: rgba(148,163,184,.55);
  --surface-action-soft: rgba(255,255,255,.12);
  --surface-action-hover: rgba(255,255,255,.2);
  --surface-action-strong: rgba(255,255,255,.14);
  --overlay-page: rgba(15,23,42,.36);
  --shadow-card: 0 12px 24px rgba(15, 23, 42, .08);
  --shadow-header: 0 2px 10px rgba(15,23,42,.18);
  --shadow-card-compact: 0 5px 16px rgba(15,23,42,.12);
  --shadow-overlay: -18px 0 40px rgba(15,23,42,.22);
  --shadow-admin: 0 16px 36px rgba(15,23,42,.12);
  --shadow-action-hover: 0 3px 10px rgba(15,23,42,.14);
}
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--color-page);
  color: var(--color-text);
}
a { color: inherit; text-decoration: none; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.market-shell {
  max-width: 1440px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
}
.market-content { min-width: 0; }
.market-sidebar { display: grid; align-content: start; gap: 10px; }
.side-panel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 6px; overflow: hidden; }
.side-panel h2 { margin: 0; padding: 10px 12px; font-size: 13px; color: var(--color-surface); background: var(--primary); }
.side-panel nav { display: grid; max-height: 520px; overflow: auto; }
.side-panel nav a { display: grid; gap: 2px; padding: 8px 10px; border-bottom: 1px solid var(--color-border-soft); }
.side-panel nav strong { font-size: 12px; line-height: 1.2; }
.side-panel nav span { font-size: 11px; line-height: 1.25; color: var(--color-muted); max-height: 28px; overflow: hidden; }
.side-trust { padding: 8px 10px; gap: 6px; font-size: 12px; font-weight: 800; }
.side-trust div { padding: 7px 0; border-bottom: 1px solid var(--color-border-soft); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
.top-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 28px;
  padding: 0 16px;
  color: var(--color-surface);
  background: var(--primary);
  font-size: 12px;
  font-weight: 700;
}
.language-nav { display: flex; gap: 10px; }
.language-nav a { opacity: .72; }
.language-nav a.active { opacity: 1; text-decoration: underline; }
.theme-demo-switcher { display:flex; align-items:center; gap:6px; min-width:190px; color:inherit; font-size:11px; font-weight:800; }
.theme-demo-switcher span { white-space:nowrap; }
.theme-demo-switcher select { width:100%; min-height:30px; border:1px solid var(--border-translucent); border-radius:6px; padding:5px 8px; background:var(--color-surface); color:var(--color-text); font:inherit; font-size:11px; }
.main-header {
  display: grid;
  grid-template-columns: 150px minmax(260px, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 10px 16px;
}
.logo { font-size: 24px; font-weight: 900; color: var(--primary); letter-spacing: .02em; }
.search input {
  width: 100%;
  min-height: 38px;
  padding: 0 14px;
  border: 2px solid var(--primary);
  border-radius: 6px;
  font-size: 15px;
}
.actions { display: flex; gap: 14px; align-items: center; font-size: 13px; font-weight: 700; }
.category-nav {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 0 16px 8px;
}
.category-nav a {
  white-space: nowrap;
  padding: 6px 10px;
  border-radius: 5px;
  background: var(--color-category-bg);
  color: var(--color-category-text);
  font-size: 13px;
  font-weight: 700;
}
.zone { max-width: none; margin: 0; padding: 10px 0; }
.hero-zone {
  margin-top: 0;
  min-height: 104px;
  display: grid;
  align-items: center;
  padding: 12px 16px;
  background: linear-gradient(135deg, var(--color-surface) 0%, var(--color-hero-end) 100%);
  border: 1px solid var(--color-hero-border);
  border-radius: 6px;
}
.hero-zone > div { max-width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 12px 22px; align-items: center; }
.eyebrow { grid-column: 1 / -1; margin: 0; color: var(--primary); font-weight: 900; text-transform: uppercase; font-size: 11px; }
.hero-zone h1 { margin: 0; font-size: clamp(20px, 2vw, 28px); line-height: 1.08; }
.hero-zone p { margin: 0; font-size: 14px; line-height: 1.4; color: var(--color-subtle); }
.primary-action, .secondary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  border: 0;
  border-radius: 6px;
  background: var(--accent);
  color: var(--color-text);
  font-weight: 900;
  cursor: pointer;
}
.primary-action:disabled,
.primary-action[aria-disabled="true"] {
  background:var(--color-disabled-bg);
  color:var(--color-muted);
  cursor:not-allowed;
  box-shadow:none;
}
.section-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 14px; }
.section-head h2 { margin: 0; font-size: 22px; }
.section-head .results-summary { margin:4px 0 0; color:var(--color-subtle); font-size:12px; font-weight:850; }
.home-task-strip {
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:8px;
  padding:10px;
  border:1px solid var(--color-panel-border);
  border-radius:5px;
  background:var(--color-surface);
}
.home-task-strip a,
.home-task-strip button,
.home-task-strip span {
  min-height:38px;
  display:grid;
  place-items:center;
  padding:6px 8px;
  border:1px solid var(--color-border);
  border-radius:5px;
  background:var(--color-surface-alt);
  color:var(--color-text);
  text-align:center;
  font:inherit;
  font-size:12px;
  font-weight:850;
  line-height:1.25;
}
.home-task-strip button { cursor:pointer; }
.home-task-strip a:hover,
.home-task-strip button:hover { border-color:var(--color-focus); color:var(--color-focus); }
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.category-card {
  display: grid;
  gap: 6px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
}
.category-card span { color: var(--color-muted); font-size: 13px; line-height: 1.4; }
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(156px, 1fr));
  gap: 8px;
}
.catalog-toolbar {
  display:grid;
  grid-template-columns:minmax(170px,220px) minmax(0,1fr);
  gap:8px;
  align-items:start;
  margin:0 0 8px;
  padding:10px;
  border:1px solid var(--color-panel-border);
  border-radius:5px;
  background:var(--color-surface);
}
.catalog-toolbar label,
.catalog-filter-grid label {
  min-width:0;
  display:grid;
  gap:4px;
  color:var(--color-subtle);
  font-size:11px;
  font-weight:850;
}
.catalog-toolbar select,
.catalog-toolbar input {
  width:100%;
  min-height:34px;
  border:1px solid var(--color-panel-border);
  border-radius:4px;
  background:var(--color-surface);
  color:var(--color-text);
  font:inherit;
  font-size:12px;
  padding:0 8px;
}
.catalog-filter-panel {
  min-width:0;
  border:1px solid var(--color-border);
  border-radius:5px;
  background:var(--color-surface-alt);
}
.catalog-filter-panel summary {
  cursor:pointer;
  padding:9px 10px;
  color:var(--color-text);
  font-size:12px;
  font-weight:900;
}
.catalog-filter-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:8px;
  padding:0 10px 10px;
}
.catalog-filter-grid .check-filter {
  grid-template-columns:auto minmax(0,1fr);
  align-content:end;
  align-items:center;
  min-height:34px;
  color:var(--color-text);
}
.catalog-filter-grid .check-filter input { width:auto; min-height:0; }
.catalog-filter-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0 10px 10px;
}
.catalog-filter-actions .secondary-action,
.filter-reset {
  width:auto;
  min-height:32px;
  padding:0 12px;
}
.filter-reset {
  border:1px solid var(--color-panel-border);
  border-radius:4px;
  background:var(--color-surface);
  color:var(--color-focus);
  font-weight:900;
  cursor:pointer;
}
.product-card {
  /* Coloană flexibilă: toate cardurile din rând au aceeași înălțime (grila e
     `align-items: stretch`), iar `.product-actions` e împins jos cu `margin-top:auto`,
     deci butoanele se aliniază pe linie chiar dacă titlurile diferă. */
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 6px;
  overflow: hidden;
}
.product-card:hover { border-color: var(--primary); box-shadow: var(--shadow-card); }
.product-image {
  /* Casetă pătrată, dedusă din lățimea coloanei — nicio înălțime fixă pe breakpoint.
     `grid-template-rows: minmax(0, 1fr)` e esențial: cu rând `auto`, procentele de pe
     imagine devin ciclice (rândul se dimensionează după item, itemul după rând), iar
     browserul le tratează ca `auto` — de aceea imaginea creștea la raportul ei natural
     (375×666 → 204×362 px) și era tăiată de `overflow: hidden`. */
  aspect-ratio: 1;
  width: 100%;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  overflow: hidden;
  background: var(--color-image-bg);
  color: var(--color-placeholder);
  padding: 8px;
  text-align: center;
  font-size: 13px;
}
.product-image img {
  /* Modelul din implementarea originală Marketplace Pro: elementul umple caseta, iar
     poza e centrată în el de `object-fit: contain` + `object-position: center`. Așa
     centrarea nu mai depinde de dimensionarea automată a elementului, deci nicio temă
     nu o poate strica printr-o regulă proprie de lățime sau margine. */
  width: 100%;
  height: 100%;
  margin: auto;
  object-fit: contain;
  object-position: center;
  display: block;
}
.product-copy { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 5px; padding: 8px; }
.product-title { min-height: 38px; font-size: 12px; font-weight: 700; line-height: 1.35; }
.product-categories, .product-code { color: var(--color-muted); font-size: 12px; }
.product-price { color: var(--price); font-size: 17px; font-weight: 900; }
.secondary-action { width: 100%; min-height: 30px; font-size: 12px; }
.trust-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.trust-grid div {
  min-height: 44px;
  display: grid;
  place-items: center;
  text-align: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 8px;
}
.site-footer {
  padding: 28px 24px;
  background: var(--color-text);
  color: var(--color-disabled-bg);
}
.footer-top {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: start;
  gap: 16px 20px;
  max-width: 1180px;
  margin: 0 auto;
}
.footer-brand {
  grid-column: 1;
  justify-self: start;
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
}
.footer-brand strong { color: var(--color-surface); font-size: 15px; letter-spacing: 0.3px; }
.footer-brand span { font-size: 13px; opacity: 0.72; }
.footer-legal {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: flex-start;
  gap: 8px 20px;
}
.footer-legal a { color: var(--color-disabled-bg); font-size: 13px; opacity: 0.85; transition: opacity 0.15s ease, color 0.15s ease; }
.footer-legal a:hover { opacity: 1; color: var(--color-surface); text-decoration: underline; }
.footer-spacer { grid-column: 3; }
.footer-contact { text-align: center; margin-top: 14px; font-size: 12px; opacity: 0.62; }
.footer-copy { text-align: center; margin-top: 8px; font-size: 12px; opacity: 0.5; }
@media (max-width: 720px) {
  .footer-top { grid-template-columns: 1fr; }
  .footer-brand { grid-column: 1; justify-self: center; text-align: center; align-items: center; }
  .footer-legal { grid-column: 1; }
  .footer-spacer { display: none; }
}
.product-page, .legal-page { max-width: 1180px; margin: 0 auto; padding: 24px; }
.back-link { display: inline-flex; margin-bottom: 16px; color: var(--primary); font-weight: 800; }
.product-breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin:0 0 10px;
  color:var(--color-subtle);
  font-size:12px;
  font-weight:800;
}
/* Firul de navigare (F4): listă ordonată, separator în element propriu (aria-hidden,
   neclicabil), toate nivelurile sunt linkuri în afară de produsul curent. */
.product-breadcrumb__list { display:flex; flex-wrap:wrap; gap:4px 6px; align-items:center; min-width:0; max-width:100%; margin:0; padding:0; list-style:none; }
.product-breadcrumb__item { min-width:0; max-width:100%; }
.product-breadcrumb__item a { color:inherit; text-decoration:none; border-radius:3px; }
.product-breadcrumb__item a:hover { color:var(--primary); text-decoration:underline; text-underline-offset:2px; }
.product-breadcrumb__item a:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.product-breadcrumb__sep { color:var(--color-placeholder); user-select:none; pointer-events:none; }
.product-breadcrumb__current { color:var(--color-text); }
@media (max-width:560px) {
  /* Pe mobil categoriile lungi se taie elegant pe un rând (numele complet e în `title`),
     iar numele produsului se poate rupe pe rânduri. */
  .product-breadcrumb__item:not(.product-breadcrumb__current) { max-width:62vw; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .product-breadcrumb__item:not(.product-breadcrumb__current) a { display:inline; }
  .product-breadcrumb__current { flex:1 1 100%; overflow-wrap:anywhere; }
}
.product-detail {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) 1.1fr;
  gap: 28px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 24px;
}
.product-media { min-height: 360px; display: grid; place-items: center; gap: 12px; background: var(--color-image-bg); border-radius: 8px; padding: 12px; }
.product-media > img { max-width: 100%; max-height: 420px; object-fit: contain; }
.product-main-media { width:100%; display:grid; place-items:center; gap:8px; }
.product-main-media img { max-width:100%; max-height:420px; object-fit:contain; }
.zoom-button {
  min-height:32px;
  padding:0 12px;
  border:1px solid var(--color-panel-border);
  border-radius:5px;
  background:var(--color-surface);
  color:var(--color-focus);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.zoom-button:hover { border-color:var(--color-focus); }
.image-zoom-dialog {
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  padding:24px;
  background:var(--overlay-page);
}
.image-zoom-dialog[hidden] { display:none !important; }
.image-zoom-dialog img {
  width:min(92vw, 1100px);
  max-height:88vh;
  object-fit:contain;
  border-radius:8px;
  background:var(--color-surface);
  box-shadow:var(--shadow-overlay);
}
.zoom-close {
  position:absolute;
  top:16px;
  right:16px;
  background:var(--color-surface);
  color:var(--color-focus);
}
.product-gallery { width: 100%; display: grid; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); gap: 8px; }
.product-gallery-thumb { height: 68px; display: grid; place-items: center; border: 1px solid var(--color-border); border-radius: 5px; background: var(--color-surface); overflow: hidden; cursor: pointer; padding: 0; }
.product-gallery-thumb.is-active { border-color: var(--color-focus); box-shadow: inset 0 0 0 1px var(--color-focus); }
.product-gallery-thumb:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.product-gallery img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.image-placeholder { color: var(--color-placeholder); font-weight: 700; }
.product-info h1 { margin: 0 0 12px; font-size: 34px; line-height: 1.12; }
.product-lead { color: var(--color-strong); font-size: 15px; font-weight: 750; line-height: 1.45; max-width: 62ch; }
.price { color: var(--price); font-size: 30px; font-weight: 900; margin: 12px 0; }
.rating-strip {
  display:inline-flex;
  width:max-content;
  max-width:100%;
  padding:4px 8px;
  border-radius:4px;
  background:var(--color-warning-bg);
  color:var(--color-warning-text);
  font-size:12px;
  font-weight:900;
}
.meta-line { color: var(--color-subtle); margin: 6px 0; }
.product-buybox {
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:6px;
  margin:10px 0;
}
.product-buybox div {
  min-width:0;
  display:grid;
  gap:2px;
  padding:8px 9px;
  border:1px solid var(--color-border);
  border-radius:5px;
  background:var(--color-surface-alt);
}
.product-buybox strong { color:var(--color-text); font-size:11px; line-height:1.2; }
.product-buybox span { min-width:0; overflow-wrap:anywhere; color:var(--color-subtle); font-size:12px; font-weight:750; line-height:1.25; }
.product-highlights {
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:6px;
  margin:12px 0;
  padding:0;
  list-style:none;
}
.product-highlights li {
  position:relative;
  min-height:34px;
  padding:8px 9px 8px 24px;
  border:1px solid var(--color-blue-soft);
  border-radius:5px;
  background:var(--color-info-bg);
  color:var(--color-info-text);
  font-size:12px;
  font-weight:850;
  line-height:1.25;
}
.product-highlights li::before {
  content:"";
  position:absolute;
  left:9px;
  top:13px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--color-focus);
}
.trust-mini {
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:6px;
  margin-top:10px;
}
.trust-mini span {
  min-height:28px;
  display:grid;
  place-items:center;
  padding:5px;
  border:1px solid var(--color-border);
  border-radius:5px;
  background:var(--color-surface);
  color:var(--color-strong);
  text-align:center;
  font-size:11px;
  font-weight:850;
  line-height:1.2;
}
.delivery-estimate {
  display:grid;
  gap:5px;
  margin-top:10px;
  padding:10px;
  border:1px solid var(--color-info-border);
  border-radius:5px;
  background:var(--color-info-bg);
  color:var(--color-info-strong);
  font-size:12px;
  line-height:1.35;
}
.delivery-estimate strong { color:var(--color-text); }
.delivery-estimate b { color:var(--color-danger); }
.attributes { display: grid; gap: 8px; margin-top: 20px; }
.attributes div, .legal-data div { display: grid; grid-template-columns: 180px 1fr; gap: 12px; padding: 8px 0; border-top: 1px solid var(--color-border); }
.attributes dt, .legal-data dt { font-weight: 800; }
.attributes dd, .legal-data dd { margin: 0; color: var(--color-subtle); }
.product-content-block { margin-top: 14px; padding: 18px 20px; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface); }
.product-content-block h2 { margin: 0 0 10px; font-size: 20px; line-height: 1.2; }
.product-content-block p { margin: 0; color: var(--color-strong); font-size: 14px; line-height: 1.55; }
.product-facts-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}
.product-facts-grid > div { min-width:0; }
.faq-list { display:grid; gap:8px; }
.faq-list details {
  border-top:1px solid var(--color-border);
  padding:9px 0;
}
.faq-list summary {
  cursor:pointer;
  color:var(--color-text);
  font-size:14px;
  font-weight:900;
  line-height:1.3;
}
.faq-list p { margin-top:7px; }
.product-quality { background:var(--color-cloud); }
.review-summary {
  display:grid;
  grid-template-columns:auto minmax(120px,1fr) minmax(220px,2fr);
  gap:12px;
  align-items:center;
  margin-bottom:12px;
  padding:10px;
  border:1px solid var(--color-border);
  border-radius:5px;
  background:var(--color-surface-alt);
}
.review-summary strong { color:var(--color-danger); font-size:22px; }
.review-summary > span { color:var(--color-strong); font-size:13px; font-weight:900; }
.review-bars { display:grid; gap:4px; }
.review-bars div { display:grid; grid-template-columns:18px minmax(0,1fr) 28px; gap:6px; align-items:center; color:var(--color-subtle); font-size:11px; font-weight:850; }
.review-bars meter { width:100%; height:9px; }
.review-list { display: grid; gap: 10px; }
.review-item { display: grid; gap: 4px; padding: 10px 0; border-top: 1px solid var(--color-border); }
.review-item strong { font-size: 13px; }
.review-item span { color: var(--color-danger); font-size: 12px; font-weight: 900; }
.product-source-block details { padding: 10px 0; border-top: 1px solid var(--color-border); }
.product-source-block summary { cursor: pointer; color: var(--color-text); font-weight: 900; }
.raw-attributes dd { overflow-wrap: anywhere; white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 12px; }
.related-products .related-grid { margin-top:8px; }
.legal-page article { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 8px; padding: 24px; }
.legal-page h1,
.legal-page article { max-width:100%; overflow-wrap:anywhere; word-break:break-word; }
.legal-body { white-space: pre-wrap; color: var(--color-strong); font-size: 15px; line-height: 1.62; }
body[data-layout="brand"] .hero-zone,
body[data-layout="story"] .hero-zone,
body[data-layout="luxury"] .hero-zone { min-height: 180px; }
body[data-layout="catalog"] .product-grid,
body[data-layout="wholesale"] .product-grid,
body[data-layout="quick"] .product-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
body[data-density="compact"] .zone { padding-top: 14px; padding-bottom: 14px; }
body[data-density="spacious"] .zone { padding-top: 38px; padding-bottom: 38px; }

@media (max-width:1100px) and (min-width:821px) {
  .main-header { grid-template-columns:max-content minmax(130px,1fr) auto auto; gap:10px; }
  .logo { font-size:clamp(13px,1.6vw,20px); }
  .actions { gap:4px; font-size:10px; }
  .actions button { padding:0 5px; }
  .language-nav a { min-width:23px; padding-left:4px; padding-right:4px; }
}

@media (max-width: 820px) {
  .market-shell { grid-template-columns: 1fr; padding: 8px; }
  .market-sidebar { order: 2; }
  .main-header { grid-template-columns: 1fr; }
  .actions { justify-content: space-between; }
  .trust-grid, .site-footer, .product-detail { grid-template-columns: 1fr; }
  .hero-zone > div { grid-template-columns: 1fr; }
  .hero-zone h1 { font-size: 26px; }
}


/* Marketplace dense shell: functional pattern similar to national marketplaces, visually distinct. */
body { background:var(--color-soft-panel); }
.site-header { background:var(--color-focus); color:var(--color-surface); border-bottom:0; box-shadow:var(--shadow-header); }
.top-strip { display:none; }
/* Prima coloană = numele magazinului la lăţime COMPLETĂ (max-content) — NU se comprimă niciodată,
   deci search-ul începe mereu DUPĂ nume, pe acelaşi rând, fără să-l acopere. Search-ul e coloana
   flexibilă (1fr) care umple spaţiul rămas; acţiuni/limbă/teme la lăţime naturală. */
.main-header { max-width:1440px; margin:0 auto; display:grid; grid-template-columns:max-content minmax(150px,1fr) auto auto auto; gap:14px; align-items:center; padding:8px 12px 7px; }
/* font adaptabil: se micșorează pentru nume lungi, dar rămâne pe un rând şi lizibil */
.logo { color:var(--color-surface); font-size:clamp(14px,1.4vw,23px); font-weight:900; letter-spacing:.01em; white-space:nowrap; flex-shrink:0; }
.search { display:grid; grid-template-columns:minmax(0,1fr) 42px; min-width:0; max-width:640px; }
.search input { width:100%; height:36px; min-height:36px; border:0; border-radius:4px 0 0 4px; padding:0 10px; font-size:13px; }
.search button { height:36px; border:0; border-radius:0 4px 4px 0; background:var(--color-accent-fallback); color:var(--color-text); font-size:18px; font-weight:900; cursor:pointer; }
.actions { justify-content:end; gap:6px; font-size:11px; font-weight:800; min-width:0; flex-wrap:nowrap; }
.actions a { min-height:34px; display:inline-flex; align-items:center; padding:0 8px; border-radius:4px; background:var(--surface-action-soft); color:var(--color-surface); }
.nav-row { max-width:1440px; margin:0 auto; min-height:36px; display:grid; grid-template-columns:180px minmax(0,1fr) auto; gap:10px; align-items:center; padding:0 14px 9px; }
.cat-label { min-height:30px; display:flex; align-items:center; justify-content:center; border-radius:4px; background:var(--color-focus-strong); font-size:13px; }
.category-nav { display:flex; gap:6px; overflow:hidden; padding:0; }
.category-nav a { flex:0 0 auto; max-width:155px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:7px 9px; border-radius:4px; background:var(--surface-action-strong); color:var(--color-surface); font-size:12px; font-weight:700; }
.language-nav { display:flex; gap:3px; justify-content:end; min-width:max-content; }
.language-nav a { min-width:25px; text-align:center; padding:5px 5px; border-radius:4px; background:var(--color-focus-strong); color:var(--color-surface); font-size:10px; font-weight:900; opacity:1; }
.language-nav a.active { opacity:1; background:var(--color-surface); color:var(--color-focus); text-decoration:none; }
.theme-demo-switcher { justify-self:end; color:var(--color-surface); }
.theme-demo-switcher select { border-color:var(--color-focus-strong); }
.market-shell { max-width:1440px; margin:0 auto; display:grid; grid-template-columns:230px minmax(0,1fr); gap:10px; padding:10px; }
.market-content { min-width:0; display:grid; gap:10px; align-content:start; }
.market-sidebar { display:grid; gap:10px; align-content:start; }
.side-panel { background:var(--color-surface); border:1px solid var(--color-panel-border); border-radius:5px; overflow:hidden; }
.side-panel h2 { margin:0; padding:9px 11px; font-size:13px; background:var(--color-surface-alt); border-bottom:1px solid var(--color-border); color:var(--color-text); }
.side-panel nav { display:grid; max-height:440px; overflow:auto; }
.side-panel nav a { display:grid; gap:1px; padding:7px 10px; border-bottom:1px solid var(--color-panel-bg); }
.side-panel nav strong { font-size:12px; line-height:1.2; color:var(--color-text); }
.side-panel nav span { font-size:11px; line-height:1.2; color:var(--color-muted); max-height:26px; overflow:hidden; }
.side-trust { padding:8px 10px; font-size:12px; font-weight:800; color:var(--color-strong); }
.side-trust div { padding:6px 0; border-bottom:1px solid var(--color-panel-bg); }
.zone { max-width:none; margin:0; padding:0; }
.hero-zone { min-height:auto; padding:12px 14px; margin:0; background:var(--color-surface); border:1px solid var(--color-panel-border); border-radius:5px; }
.hero-zone > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 14px; align-items:center; }
.eyebrow { grid-column:1 / -1; margin:0; font-size:10px; color:var(--color-focus); }
.hero-zone h1 { margin:0; font-size:22px; line-height:1.1; }
.hero-zone p { margin:0; font-size:13px; line-height:1.35; color:var(--color-subtle); }
.primary-action { min-height:34px; padding:0 13px; border-radius:4px; background:var(--color-accent-fallback); color:var(--color-text); font-size:13px; }
.primary-action:disabled,
.primary-action[aria-disabled="true"] { background:var(--color-disabled-bg); color:var(--color-muted); cursor:not-allowed; }
.product-detail-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(120px,auto); gap:8px; align-items:stretch; }
.product-detail-actions .secondary-action { width:auto; padding:0 13px; background:var(--color-surface); color:var(--color-focus); border:1px solid var(--color-focus); border-radius:4px; font-weight:800; }
/* «Favorite» sta sub «Adauga in cos», pe aceeasi coloana si cu aceeasi latime; inainte
   ramanea singur in coloana din stanga si arata ca un link ratacit. */
.product-detail-actions .secondary-action[data-toggle-favorite] { grid-column:2; width:100%; }
@media (max-width:900px) { .product-detail-actions .secondary-action[data-toggle-favorite] { grid-column:1; } }
.categories-zone { display:none; }
.section-head { margin:0 0 8px; padding:0; }
.section-head h2 { font-size:17px; }
.product-grid { grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); gap:8px; }
.product-card { border-radius:5px; border-color:var(--color-quiet-border); }
.product-card:hover { border-color:var(--color-focus); box-shadow:var(--shadow-card-compact); }
.product-image { aspect-ratio:1; padding:7px; font-size:11px; background:var(--color-surface); }
.product-copy { gap:4px; padding:7px; }
.product-title { min-height:34px; max-height:34px; overflow:hidden; font-size:12px; line-height:1.35; font-weight:700; }
.product-categories { max-height:15px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:10px; color:var(--color-muted); }
.product-code { display:none; }
.product-price { font-size:17px; color:var(--color-danger); }
.secondary-action { min-height:29px; border-radius:4px; font-size:11px; background:var(--color-accent-fallback); color:var(--color-text); }
.trust-grid { grid-template-columns:repeat(4,1fr); gap:8px; }
.trust-grid div { min-height:38px; border-radius:5px; font-size:12px; background:var(--color-surface); }
.site-footer { margin-top:10px; }
@media (max-width:900px) { .main-header { grid-template-columns:1fr; } .nav-row { grid-template-columns:1fr; } .market-shell { grid-template-columns:1fr; } .market-sidebar { order:2; } .actions { justify-content:space-between; } }


/* Fix layout: categories only on left; sticky sidebar/header; product cards fully visible. */
/* HEADER pe FLEXBOX (nu grid): logo la lăţime naturală, search LIPIT după nume (mic gap), împins
   de nume când e mai lung. Acţiunile/limba se duc la dreapta (margin-left:auto). Comutatorul de
   teme, dacă există, trece pe rândul lui (flex-basis:100%) — altfel lăţimea lui umfla coloana. */
.main-header { display:flex; flex-wrap:wrap; align-items:center; gap:12px; max-width:1440px; margin:0 auto; padding:8px 12px 7px; }
.logo { flex:0 0 auto; white-space:nowrap; font-size:clamp(14px,1.4vw,23px); }
.search { flex:1 1 auto; min-width:180px; max-width:560px; }   /* lipit după nume, creşte până la 560 */
.actions { margin-left:auto; }                                 /* împinge acţiuni+limbă la dreapta */
.language-nav { flex:0 0 auto; }
/* Comutator teme pe rândul LUI (flex-basis:100% doar pentru a forţa un rând nou), dar MIC:
   conţinutul aliniat la stânga, dropdown la lăţime naturală (nu întins pe tot rândul). */
.theme-demo-switcher { flex-basis:100%; order:9; justify-content:flex-start; min-width:0; font-size:11px; }
.theme-demo-switcher select { width:auto; max-width:230px; min-width:150px; }
.nav-row, .cat-label, .category-nav { display:none !important; }
.site-header { position:sticky; top:0; z-index:50; }
.market-shell { align-items:start; grid-template-columns:240px minmax(0,1fr); }
/* Bara de categorii ramane vizibila cat derulezi lista lunga de produse. Offset-ul vine
   din inaltimea REALA a antetului (`--header-h`, pusa de storefront.js), nu dintr-o
   valoare fixa care nu se potrivea cand antetul avea doua randuri. */
.market-sidebar { position:sticky; top:calc(var(--header-h, 68px) + 10px); max-height:calc(100vh - var(--header-h, 68px) - 24px); overflow:hidden; }
.side-panel nav { max-height:calc(100vh - var(--header-h, 68px) - 180px); overflow:auto; overscroll-behavior:contain; }
.market-content { overflow:visible; }
.product-grid { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; align-items:stretch; }
.product-card { min-width:0; }
.product-image { padding:10px; }
.product-copy { min-height:132px; }
.product-title { min-height:38px; max-height:38px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.product-categories { min-height:14px; }
.product-price { line-height:1.15; }
.featured-grid { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); }
@media (max-width:900px) {
  .main-header { grid-template-columns:1fr; }
  .market-sidebar { position:static; max-height:none; }
  .side-panel nav { max-height:260px; }
  .product-grid { grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); }
}


/* Category tree: alphabetical, counts, collapsible one-line rows; no hero. */
.hero-zone { display:none !important; }
.market-sidebar { top:calc(var(--header-h, 60px) + 10px); }
.side-panel nav.category-tree { max-height:calc(100vh - var(--header-h, 68px) - 150px); overflow:auto; overscroll-behavior:contain; display:block; }
.category-node { border-bottom:1px solid var(--color-panel-bg); }
.category-row { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:center; min-height:31px; }
.category-toggle { width:22px; height:28px; display:grid; place-items:center; border:0; background:transparent; color:var(--color-subtle); cursor:pointer; font-size:17px; line-height:1; padding:0; }
.category-toggle span { display:block; transform:rotate(0deg); transition:transform .12s ease; }
.category-node.is-open > .category-row .category-toggle span { transform:rotate(90deg); }
.category-toggle-spacer { cursor:default; }
.category-root { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:7px 8px 7px 2px; }
.category-root strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; line-height:1.2; color:var(--color-text); }
.category-root span { min-width:28px; padding:2px 6px; border-radius:999px; background:var(--color-category-bg); color:var(--color-focus-strong); text-align:center; font-size:11px; font-weight:900; }
.side-panel nav .category-root span { color:var(--color-focus-strong); }
.subcategory-list { display:grid; padding:0 0 4px 14px; }
.subcategory-list[hidden] { display:none !important; }
.subcategory-list .category-node { border-bottom:0; }
.subcategory-list .category-row { min-height:28px; }
.subcategory-list .category-root { border-left:2px solid var(--color-border); padding-top:5px; padding-bottom:5px; color:var(--color-subtle); }
.subcategory-list .category-root strong { font-size:11px; font-weight:750; color:var(--color-subtle); }
.featured-zone { margin-top:0; }

.category-tree a.is-active, .category-root.is-active { background:var(--color-quiet-blue); color:var(--color-focus); }
.product-card[hidden] { display:none !important; }


/* Commerce interactions */
.actions button { min-height:32px; display:inline-flex; align-items:center; gap:4px; padding:0 7px; border:0; border-radius:4px; background:var(--surface-action-soft); color:var(--color-surface); font:inherit; font-weight:800; cursor:pointer; white-space:nowrap; }
.actions button:hover { background:var(--surface-action-hover); }
.cart-count { min-width:18px; height:18px; display:inline-grid; place-items:center; padding:0 5px; border-radius:999px; background:var(--color-accent-fallback); color:var(--color-text); font-size:11px; font-weight:900; }
.product-actions { margin-top:auto; display:grid; grid-template-columns:minmax(0,1fr) 32px; gap:6px; align-items:center; }
.favorite-action { min-height:29px; border:1px solid var(--color-panel-border); border-radius:4px; background:var(--color-surface); color:var(--color-focus); font-size:17px; font-weight:900; cursor:pointer; }
.category-empty, .empty-state { padding:14px; border:1px solid var(--color-panel-border); border-radius:5px; background:var(--color-surface); color:var(--color-subtle); font-size:13px; font-weight:800; }
.commerce-overlay { position:fixed; inset:0; z-index:90; background:var(--overlay-page); }
.commerce-panel { position:fixed; top:0; right:0; z-index:100; width:min(430px, 100vw); height:100vh; display:grid; grid-template-rows:auto 1fr; background:var(--color-surface); box-shadow:var(--shadow-overlay); }
.commerce-panel[hidden], .commerce-overlay[hidden] { display:none !important; }
.commerce-head { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--color-border); background:var(--color-focus); color:var(--color-surface); }
.commerce-head h2 { margin:0; font-size:18px; line-height:1.2; }
.icon-button { width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:4px; background:var(--surface-action-strong); color:var(--color-surface); font-size:24px; line-height:1; cursor:pointer; }
.commerce-view { min-height:0; overflow:auto; padding:14px; display:grid; gap:12px; align-content:start; }
.commerce-view[hidden] { display:none !important; }
.cart-lines { display:grid; gap:8px; }
.cart-line, .favorite-line { display:grid; grid-template-columns:54px minmax(0,1fr) auto; gap:9px; align-items:center; padding:8px; border:1px solid var(--color-border); border-radius:5px; background:var(--color-surface); }
.favorite-line { grid-template-columns:54px minmax(0,1fr) minmax(112px, auto); color:var(--color-text); align-items:start; }
.cart-line img, .favorite-line img { width:54px; height:54px; object-fit:contain; background:var(--color-image-bg); border-radius:4px; }
.cart-line strong, .favorite-line strong { min-width:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:12px; line-height:1.25; }
.cart-line span { display:block; margin-top:3px; color:var(--color-danger); font-size:12px; font-weight:900; }
.qty-controls { display:grid; grid-template-columns:26px 24px 26px; align-items:center; gap:2px; }
.qty-controls button { width:26px; height:26px; border:1px solid var(--color-panel-border); background:var(--color-surface-alt); border-radius:4px; cursor:pointer; font-weight:900; }
.qty-controls span { margin:0; text-align:center; color:var(--color-text); }
.cart-total { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); font-weight:900; }
.cart-total strong { color:var(--color-danger); font-size:18px; }
.checkout-form { display:grid; gap:8px; }
/* `input` fara filtru prindea si bifele: o casuta ajungea lata cat randul (487 px masurati
   pe /checkout), iar glifa se desena in mijlocul ei, departe de text. De aceea „Salveaza
   adresa" si „Adresa de facturare este diferita" aratau rupte, iar acordurile nu — acolo
   exista deja o regula proprie pe `input[type="checkbox"]`. */
.checkout-form input:not([type="checkbox"]):not([type="radio"]),
.checkout-form textarea { width:100%; border:1px solid var(--color-panel-border); border-radius:4px; padding:9px 10px; font:inherit; font-size:13px; }
.checkout-form textarea { min-height:82px; resize:vertical; }
.commerce-status { min-height:20px; color:var(--color-focus); font-size:13px; font-weight:900; }
@media (max-width:900px) { .actions { display:grid; grid-template-columns:repeat(3,1fr); } .actions button { justify-content:center; } .commerce-panel { width:100vw; } }

.load-more { min-height:38px; margin:12px auto 0; padding:0 18px; display:flex; align-items:center; justify-content:center; border:1px solid var(--color-panel-border); border-radius:5px; background:var(--color-surface); color:var(--color-focus); font-weight:900; cursor:pointer; }
.load-more[hidden] { display:none !important; }

.hp-field { position:absolute; left:-10000px; width:1px; height:1px; opacity:0; pointer-events:none; }


/* Commercial checkout: VAT, shipping, payment, PF/PJ. */
.product-price .vat-note, .price .vat-note { display:block; margin-top:2px; color:var(--color-muted); font-size:10px; font-weight:800; line-height:1.2; }
.cart-summary { display:grid; gap:6px; padding:10px 0; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.cart-summary > div { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12px; color:var(--color-subtle); }
.cart-summary strong { color:var(--color-text); font-size:13px; }
.cart-summary .cart-total { padding-top:8px; margin-top:4px; border-top:1px solid var(--color-border); border-bottom:0; color:var(--color-text); }
.cart-summary .cart-total strong { color:var(--color-danger); font-size:18px; }
.choice-group { display:grid; gap:7px; margin:0; padding:9px 10px; border:1px solid var(--color-panel-border); border-radius:4px; background:var(--color-surface-alt); }
.choice-group legend { padding:0 4px; color:var(--color-strong); font-size:12px; font-weight:900; }
.choice-group label { display:flex; align-items:center; gap:8px; color:var(--color-text); font-size:13px; font-weight:800; }
.choice-group input { width:auto; }
.company-fields { display:grid; gap:8px; }
.company-fields[hidden] { display:none !important; }
.checkout-form select { width:100%; border:1px solid var(--color-panel-border); border-radius:4px; padding:9px 10px; background:var(--color-surface); font:inherit; font-size:13px; }
/* ── Checkout in 3 pasi: indicator, insigna, toast ───────────────────────── */
.checkout-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:0 0 10px; padding:0; list-style:none; }
.checkout-steps li { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px; align-items:center; padding:6px 8px; border:1px solid var(--color-border); border-radius:4px; background:var(--color-surface-alt); color:var(--color-muted); font-size:11px; font-weight:800; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.checkout-steps li span { width:18px; height:18px; display:grid; place-items:center; border-radius:999px; background:var(--color-border); color:var(--color-strong); font-size:11px; }
.checkout-steps li.is-active { border-color:var(--primary); background:var(--color-surface); color:var(--color-text); }
.checkout-steps li.is-active span { background:var(--primary); color:var(--color-surface); }
.checkout-steps li.is-done span { background:var(--color-success); color:var(--color-surface); }
.checkout-pane[hidden] { display:none !important; }
/* `.checkout-check` e pastrata doar ca alias pentru marcajul mai vechi: aceleasi reguli
   ca `.consent-row`, ca sa nu existe doua feluri de bifa in magazin. */
.checkout-check { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:start; font-size:12px; font-weight:800; cursor:pointer; }
.billing-fields { display:grid; gap:8px; }
/* `display` de pe clasa bate regula `[hidden]` din stylesheet-ul browserului:
   fara garda, blocul de facturare ramane vizibil si apare a doua oara selectul de tara
   (aceeasi capcana e deja rezolvata mai sus pentru `.company-fields`). */
.billing-fields[hidden] { display:none !important; }
.cart-count[hidden] { display:none !important; }
/* Notificarea scurta: SUS, centrata, ca sa fie vazuta fara sa cauti (utilizatorul nu
   observa varianta din colt, jos-dreapta). Acelasi element pentru cos, favorite, cont
   si checkout — un singur fel de notificare in tot magazinul. */
.commerce-toast { pointer-events:none; position:fixed; top:14px; left:50%; transform:translateX(-50%) translateY(-6px); z-index:120; display:flex; align-items:center; gap:10px; max-width:min(420px,calc(100vw - 28px)); padding:11px 14px; border:1px solid var(--color-border); border-radius:8px; background:var(--color-surface); color:var(--color-text); box-shadow:var(--shadow-card); font-size:13px; font-weight:800; opacity:0; transition:opacity .18s ease, transform .18s ease; }
.commerce-toast.is-visible { opacity:1; transform:translateX(-50%) translateY(0); }
.commerce-toast__icon { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; flex:0 0 auto; border-radius:50%; background:var(--color-success-bg, #dcfce7); color:var(--color-success, #15803d); font-size:13px; font-weight:900; }
.commerce-toast--error { border-color:var(--color-danger); }
.commerce-toast--error .commerce-toast__icon { background:#fee2e2; color:var(--color-danger); }
.commerce-toast[hidden] { display:none !important; }
.commerce-toast button { pointer-events:auto; border:0; background:transparent; color:var(--primary); font:inherit; font-weight:900; text-decoration:underline; cursor:pointer; padding:0; }
@media (max-width:700px) {
  .checkout-steps li { grid-template-columns:auto; justify-items:center; text-align:center; font-size:10px; }
  .commerce-toast { top:8px; left:8px; right:8px; transform:none; max-width:none; }
  .commerce-toast.is-visible { transform:none; }
}

/* ── Banner de consimtamant cookies ──────────────────────────────────────── */
/* z-index 80: sub `.commerce-overlay` (90) si `.commerce-panel` (100) — altfel bannerul,
   fiind lipit de marginea de jos pe toata latimea, acoperea butoanele din panoul de cos/cont. */
.cookie-consent { position:fixed; left:0; right:0; bottom:0; z-index:80; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px 16px; border-top:1px solid var(--color-border); background:var(--color-surface); box-shadow:var(--shadow-card); }
.cookie-consent[hidden] { display:none !important; }
.cookie-consent__text { display:grid; gap:2px; min-width:0; font-size:12px; line-height:1.4; }
.cookie-consent__text strong { font-size:13px; }
.cookie-consent__text span { color:var(--color-subtle); }
.cookie-consent__text a { color:var(--color-focus); font-weight:800; text-decoration:underline; }
.cookie-consent__actions { display:flex; gap:8px; }
.cookie-consent__actions button { width:auto; min-width:120px; }
@media (max-width:700px) {
  .cookie-consent { grid-template-columns:minmax(0,1fr); }
  .cookie-consent__actions button { flex:1 1 0; min-width:0; }
}

.checkout-note { margin:0; padding:8px 10px; border:1px solid var(--color-info-border); border-radius:4px; background:var(--color-info-bg); color:var(--color-info-strong); font-size:12px; font-weight:800; line-height:1.35; }


/* Address book si starea stocului. */
.address-book { display:grid; gap:8px; margin:0; padding:9px 10px; border:1px solid var(--color-panel-border); border-radius:4px; background:var(--color-surface-alt); }
.address-book[hidden] { display:none !important; }   /* aceeasi garda: `display` bate `[hidden]` */
.address-book legend { padding:0 4px; color:var(--color-strong); font-size:12px; font-weight:900; }
.address-book select, .address-book input { width:100%; border:1px solid var(--color-panel-border); border-radius:4px; padding:8px 9px; background:var(--color-surface); font:inherit; font-size:13px; }
.stock-note { min-height:16px; color:var(--color-muted); font-size:10px; font-weight:850; line-height:1.25; }
.stock-note.is-stocked { color:var(--color-success); }
.stock-note.is-missing { color:var(--color-amber); }


/* Customer account area: separate from EVA-Contab system/admin users. */
.actions .account-entry { min-width:0; background:var(--color-surface); color:var(--color-focus); justify-content:center; }
.actions .account-entry:hover { background:var(--color-blue-tint); }
.account-auth-header { display:grid; gap:4px; padding:10px 12px; border:1px solid var(--color-info-border); border-radius:5px; background:var(--color-info-bg); color:var(--color-text); }
.account-auth-header strong { font-size:15px; line-height:1.25; }
.account-auth-header span { color:var(--color-slate); font-size:12px; font-weight:800; line-height:1.35; }
.account-toolbar { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:7px; }
.account-toolbar[hidden] { display:none !important; }
.account-section { display:grid; gap:9px; }
.account-section[hidden] { display:none !important; }
.account-card, .account-order { display:grid; gap:5px; padding:10px; border:1px solid var(--color-border); border-radius:5px; background:var(--color-surface); color:var(--color-text); font-size:12px; }
.account-card strong, .account-order strong { font-size:13px; }
.account-card span, .account-order span { color:var(--color-subtle); font-weight:800; }
.account-list { display:grid; gap:8px; }
@media (max-width:900px) { .actions .account-entry { min-width:0; } .account-toolbar { grid-template-columns:1fr; } }

.admin-entry-page { min-height:100vh; display:grid; place-items:center; background:var(--color-page); color:var(--color-text); }
.admin-entry { width:min(520px, calc(100vw - 28px)); display:grid; gap:14px; padding:22px; border:1px solid var(--color-panel-border); border-radius:6px; background:var(--color-surface); box-shadow:var(--shadow-admin); }
.admin-entry h1 { margin:0; font-size:24px; line-height:1.2; }
.admin-entry p { margin:0; color:var(--color-subtle); font-size:14px; font-weight:750; line-height:1.45; }
.admin-entry-actions { display:flex; flex-wrap:wrap; gap:10px; }
.admin-entry-actions a { text-decoration:none; }

/* Final mobile storefront rules: one real column, compact category rail, full product visibility. */
@media (max-width: 700px) {
  body { background:var(--color-soft-panel); overflow-x:hidden; }
  .site-header { position:sticky; top:0; }
  .main-header {
    grid-template-columns:1fr;
    gap:7px;
    padding:10px 12px 9px;
  }
  .logo { font-size:24px; line-height:1; }
  .search { max-width:none; width:100%; grid-template-columns:minmax(0,1fr) 42px; }
  .search input { height:37px; min-height:37px; font-size:13px; }
  .actions {
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr) minmax(0,.9fr);
    gap:6px;
    font-size:11px;
  }
  .actions button {
    min-width:0;
    width:100%;
    justify-content:center;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    padding:0 6px;
  }
  .language-nav { justify-content:start; gap:5px; overflow-x:auto; padding-bottom:1px; }
  .language-nav a { min-width:30px; font-size:11px; padding:6px 7px; }
  .theme-demo-switcher { width:100%; min-width:0; justify-self:stretch; color:inherit; }
  .theme-demo-switcher select { min-width:0; }

  .market-shell {
    width:100%;
    max-width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) !important;
    gap:8px;
    padding:8px;
  }
  .market-sidebar {
    position:static !important;
    order:-1;
    width:100%;
    max-height:none;
    overflow:visible;
    display:grid;
    gap:8px;
  }
  .side-panel { width:100%; }
  .side-panel h2 { padding:8px 10px; font-size:13px; }
  .side-panel nav.category-tree {
    max-height:188px;
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:0;
    overflow:auto;
  }
  .category-node { min-width:0; border-bottom:1px solid var(--color-panel-bg); }
  .category-row { display:block; min-height:32px; }
  .category-toggle, .category-toggle-spacer { display:none; }
  .category-root {
    width:100%;
    padding:8px 10px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
  }
  .category-root strong { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .category-root span { min-width:34px; padding:2px 6px; font-size:10px; }
  .subcategory-list { display:none !important; }
  .side-trust { display:none; }

  .market-content { width:100%; min-width:0; display:grid; gap:8px; }
  .home-task-strip {
    grid-template-columns:1fr;
    gap:6px;
    padding:8px;
  }
  .catalog-toolbar {
    grid-template-columns:1fr;
    padding:8px;
  }
  .catalog-filter-grid { grid-template-columns:1fr; padding:0 8px 8px; }
  .catalog-filter-actions { padding:0 8px 8px; }
  .section-head { margin-bottom:7px; }
  .section-head h2 { font-size:17px; line-height:1.2; }
  .product-grid,
  .featured-grid {
    width:100%;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:8px;
  }
  .product-card {
    min-width:0;
    border-radius:5px;
  }
  .product-image {
    padding:7px;
  }
  .product-image img {
    width:100%;
    height:100%;
    margin:auto;
    object-fit:contain;
    object-position:center;
    display:block;
  }
  .product-copy { min-height:142px; padding:7px; gap:4px; }
  .product-title {
    min-height:48px;
    max-height:48px;
    font-size:11px;
    line-height:1.32;
    -webkit-line-clamp:3;
  }
  .product-categories { font-size:10px; min-height:13px; }
  .product-price { font-size:15px; line-height:1.1; }
  .product-price .vat-note { font-size:9px; }
  .stock-note { font-size:9px; min-height:24px; }
  .product-actions { grid-template-columns:minmax(0,1fr) 31px; gap:5px; }
  .secondary-action { min-height:31px; font-size:10px; padding:0 5px; }
  .favorite-action { min-height:31px; }
  .load-more { width:100%; margin-top:8px; }

  .product-page, .legal-page { max-width:100%; padding:14px 12px; }
  .back-link { margin-bottom:12px; font-size:14px; }
  .product-detail {
    grid-template-columns:1fr;
    gap:14px;
    padding:12px;
    border-radius:6px;
  }
  .product-media { min-height:260px; border-radius:6px; padding:10px; gap:10px; }
  .product-media > img,
  .product-main-media img {
    width:100%;
    height:auto;
    max-height:300px;
    object-fit:contain;
  }
  .image-zoom-dialog { padding:14px; }
  .image-zoom-dialog img { width:94vw; max-height:82vh; }
  .product-gallery { grid-template-columns:repeat(5, minmax(0, 1fr)); gap:6px; }
  .product-gallery-thumb { height:54px; }
  .product-info h1 {
    font-size:24px;
    line-height:1.12;
    margin-bottom:10px;
    overflow-wrap:anywhere;
  }
  .product-info p { font-size:13px; line-height:1.45; }
  .price { font-size:24px; }
  .product-buybox,
  .product-highlights,
  .trust-mini,
  .review-summary,
  .product-facts-grid {
    grid-template-columns:1fr;
  }
  .product-detail-actions { grid-template-columns:1fr; }
  .product-highlights li { min-height:0; }
  .rating-strip { width:100%; justify-content:center; }
  .product-content-block { margin-top:10px; padding:13px 12px; border-radius:6px; }
  .product-content-block h2 { font-size:18px; }
  .product-content-block p { font-size:13px; line-height:1.5; }
  .product-source-block summary { font-size:13px; line-height:1.35; }
  .raw-attributes dd { font-size:10.5px; }
  .legal-body { font-size:13px; line-height:1.55; }
  .attributes { margin-top:8px; }
  .attributes div, .legal-data div { grid-template-columns:1fr; gap:4px; min-width:0; }
  .attributes dt,
  .attributes dd,
  .legal-data dt,
  .legal-data dd,
  .product-content-block,
  .product-content-block details,
  .product-content-block summary {
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .attributes dd,
  .legal-data dd { overflow:hidden; }
  .attributes a,
  .legal-data a { overflow-wrap:anywhere; word-break:break-all; }
  .product-source-block { overflow:hidden; }
}

@media (max-width: 380px) {
  .product-grid, .featured-grid { gap:7px; }
  .product-title { font-size:10.5px; }
  .secondary-action { font-size:9.5px; }
}

/* Camp de parola cu buton „arată/ascunde" (aceleași margini ca inputurile din formular). */
.password-field { position:relative; display:block; }
.password-field .field__input, .password-field input { width:100%; padding-right:34px; }
.password-toggle { position:absolute; top:50%; right:4px; transform:translateY(-50%); display:grid; place-items:center; width:26px; height:26px; padding:0; border:0; border-radius:4px; background:transparent; color:var(--color-muted); cursor:pointer; font-size:13px; line-height:1; }
.password-toggle:hover { background:var(--color-surface-alt); color:var(--color-text); }

/* ── Sortare + Filtre produse pe aceeași linie și aceeași înălțime ─────────
   Eticheta „Sortare" era un grid pe două rânduri (53 px) lângă un `<details>`
   de 37 px, deci cele două controale nu se aliniau. Acum ambele sunt un singur
   rând de 37 px, aliniat la partea de sus a barei. */
.catalog-toolbar { align-items:start; }
.catalog-toolbar .catalog-sort {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:37px;
  box-sizing:border-box;
}
.catalog-toolbar .catalog-sort > span { white-space:nowrap; flex:0 0 auto; }
.catalog-toolbar .catalog-sort select {
  flex:1 1 auto;
  width:auto;
  min-width:0;
  min-height:35px;
  height:35px;
}
/* sumarul filtrelor rămâne `list-item` (păstrează triunghiul de deschidere);
   avea deja 35 px + 2 px bordurile `<details>` = 37 px. */
.catalog-filter-panel > summary { min-height:35px; box-sizing:border-box; }
@media (max-width:600px) {
  /* și pe mobil rămân pe aceeași linie: sortarea la stânga, filtrele la dreapta */
  .catalog-toolbar { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:6px; }
  .catalog-toolbar .catalog-sort { gap:5px; }
  .catalog-toolbar .catalog-sort > span { font-size:10px; }
  .catalog-filter-panel > summary { padding:9px 8px; font-size:11px; }
  .catalog-filter-panel[open] { grid-column:1 / -1; }
}

/* ── Pagini întregi de autentificare (/login, /register, /forgot, /reset) ──
   Un singur card centrat, cu aceleași clase de formular ca restul magazinului
   (`checkout-form`, `primary-action`, `password-field`). */
.auth-page {
  max-width:1180px;
  margin:0 auto;
  padding:24px;
  display:grid;
  justify-items:center;
  align-content:start;
}
.auth-card {
  width:100%;
  max-width:440px;
  display:grid;
  gap:12px;
  padding:20px;
  border:1px solid var(--color-border);
  border-radius:8px;
  background:var(--color-surface);
}
.auth-title { margin:0; font-size:20px; line-height:1.25; color:var(--color-strong); }
.auth-intro { margin:0; color:var(--color-subtle); font-size:13px; line-height:1.5; }
.auth-card .auth-field { display:grid; gap:4px; color:var(--color-subtle); font-size:11px; font-weight:850; }
.auth-card .auth-field > span { color:var(--color-subtle); }
.auth-row { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; }
.auth-hint { font-style:normal; font-size:11px; font-weight:700; color:var(--color-muted); }
.auth-error { font-style:normal; font-size:11px; font-weight:900; color:var(--color-focus); }
.auth-error:empty { display:none; }
.auth-card input.is-invalid,
.auth-card select.is-invalid { border-color:var(--color-focus); }
.auth-card .commerce-status.is-ok { color:var(--color-strong); }
.auth-links { display:grid; gap:6px; justify-items:start; font-size:12px; font-weight:800; }
.auth-links a { color:var(--color-focus); text-decoration:underline; }
.auth-card .choice-group label { font-size:11px; font-weight:800; }
@media (max-width:600px) {
  .auth-page { padding:14px 12px; }
  .auth-card { padding:14px; max-width:100%; }
  .auth-title { font-size:17px; }
  .auth-row { grid-template-columns:1fr; }
}

/* Butonul „Autentificare / Cont" din header e acum un link către /login cât timp
   nu există sesiune; păstrează exact aspectul butonului de dinainte. */
.actions a.account-entry {
  min-height:32px;
  min-width:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:0 7px;
  border:0;
  border-radius:4px;
  background:var(--color-surface);
  color:var(--color-focus);
  font:inherit;
  font-weight:800;
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
}
.actions a.account-entry:hover { background:var(--color-blue-tint); }

/* Panoul de cont pentru un vizitator: doar trimiterea către paginile de auth. */
.account-guest { display:grid; gap:8px; }
.account-guest[hidden] { display:none !important; }   /* `display` pe clasa bate `[hidden]` */
.account-guest .primary-action,
.account-guest .secondary-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.account-subhead { font-size:12px; font-weight:900; color:var(--color-strong); }
.checkout-login-hint { margin:0 0 2px; }
.checkout-login-hint a { color:var(--color-focus); font-weight:900; text-decoration:underline; }

/* ── Header: două butoane de cont pentru vizitator, două pentru clientul logat ──
   `.actions a.account-entry` are `display:inline-flex`, care bate `[hidden]` din
   stylesheet-ul browserului — de aceea garda explicită (aceeași capcană ca la
   blocurile ascunse din checkout). */
.actions [data-header-auth][hidden] { display:none !important; }
@media (max-width:900px) {
  /* 4 controale pe un singur rând, indiferent dacă ești logat sau nu */
  .actions { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); grid-template-columns:none; }
  .actions a.account-entry,
  .actions button { justify-content:center; min-width:0; overflow:hidden; text-overflow:ellipsis; }
}
@media (max-width:600px) {
  .actions { gap:3px; }
  .actions a.account-entry,
  .actions button { padding:0 4px; }
}

/* ── Paginile de auth: footer lipit de baza ferestrei, card centrat ─────────
   Conținutul e scurt, așa că fără asta footer-ul rămânea la jumătatea ecranului. */
body.page-auth { min-height:100vh; display:flex; flex-direction:column; }
body.page-auth > .site-header { flex:0 0 auto; }
body.page-auth .auth-page {
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 24px;
}
body.page-auth > .site-footer { flex:0 0 auto; margin-top:auto; }
@media (max-width:600px), (max-height:760px) {
  /* ecran scund: cardul începe sub header, fără să fie tăiat */
  body.page-auth .auth-page { align-items:flex-start; padding:16px 12px 24px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   FAZA UX — paginile /checkout, /checkout/confirmare/<nr>, /account,
   /account/comenzi/<nr> + panoul de coș redus la pasul 1.
   Aceiași tokeni ca restul site-ului; fără librării noi.
   ══════════════════════════════════════════════════════════════════════════ */

/* — schelet de pagină, cu footer lipit de bază (ca la paginile de auth) — */
body.page-shop { min-height:100vh; display:flex; flex-direction:column; }
body.page-shop > .site-header { flex:0 0 auto; }
body.page-shop > .site-footer { flex:0 0 auto; margin-top:auto; }
.shop-page {
  flex:1 1 auto;
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:24px;
  display:grid;
  gap:14px;
  align-content:start;
}
.shop-head { display:grid; gap:4px; }
.shop-title { margin:0; font-size:22px; line-height:1.2; color:var(--color-strong); }
.shop-lead { margin:0; color:var(--color-subtle); font-size:13px; line-height:1.5; }
.shop-card {
  display:grid;
  gap:12px;
  padding:18px;
  border:1px solid var(--color-border);
  border-radius:8px;
  background:var(--color-surface);
}
.shop-grid { display:grid; gap:14px; align-items:start; }
.shop-grid--checkout { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); }
.shop-grid--account { grid-template-columns:220px minmax(0,1fr); }
.shop-fieldset { display:grid; gap:8px; margin:0; padding:12px; border:1px solid var(--color-border); border-radius:6px; }
.shop-fieldset legend { padding:0 6px; font-size:11px; font-weight:900; color:var(--color-subtle); }
.shop-row { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; }
.shop-field { display:grid; gap:4px; font-size:11px; font-weight:850; color:var(--color-subtle); }
.shop-field > span { color:var(--color-subtle); }
.shop-field input[readonly] { background:var(--color-surface-alt); color:var(--color-muted); }

/* — butoane: dimensiuni normale, distanțate, cu micro-animații — */
.shop-actions,
.panel-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:4px;
}
.shop-actions .primary-action,
.shop-actions .secondary-action,
.panel-actions .primary-action,
.panel-actions .secondary-action {
  width:auto;
  min-width:150px;
  min-height:38px;
  padding:0 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-size:13px;
  border-radius:5px;
  transition:transform .12s ease, box-shadow .12s ease, background-color .12s ease, opacity .12s ease;
}
.shop-actions .primary-action:hover,
.panel-actions .primary-action:hover { transform:translateY(-1px); box-shadow:var(--shadow-action-hover); }
.shop-actions .primary-action:active,
.panel-actions .primary-action:active { transform:translateY(0); box-shadow:none; }
.shop-actions .secondary-action:hover,
.panel-actions .secondary-action:hover { background:var(--color-blue-tint); color:var(--color-focus); }
.primary-action.is-loading,
.secondary-action.is-loading { opacity:.7; cursor:progress; }
@media (prefers-reduced-motion: reduce) {
  .shop-actions .primary-action,
  .shop-actions .secondary-action,
  .panel-actions .primary-action,
  .panel-actions .secondary-action { transition:none; }
}

/* — sumar (coș / checkout / comandă) — */
.summary-rows { display:grid; gap:6px; margin:0; font-size:13px; }
.summary-rows > div { display:flex; justify-content:space-between; gap:12px; }
.summary-rows dt { color:var(--color-subtle); font-weight:800; }
.summary-rows dd { margin:0; font-weight:900; color:var(--color-text); }
.summary-rows .summary-total { padding-top:6px; border-top:1px solid var(--color-border); font-size:15px; }
.summary-lines { display:grid; gap:8px; }
.summary-line {
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
  font-size:12px;
}
.summary-line__name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.summary-line__qty { color:var(--color-subtle); font-weight:800; }
.summary-line__total { font-weight:900; }
.line-thumb {
  width:44px; height:44px;
  object-fit:contain;
  border:1px solid var(--color-border);
  border-radius:4px;
  background:var(--color-surface);
}
.line-thumb--empty { display:block; background:var(--color-surface-alt); }

/* — carduri de adresă — */
.address-card-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(290px,1fr)); gap:10px; }
.address-card {
  display:grid;
  gap:6px;
  padding:12px;
  border:1px solid var(--color-border);
  border-radius:6px;
  background:var(--color-surface);
  font-size:12px;
  transition:border-color .12s ease, box-shadow .12s ease;
}
.address-card:hover { border-color:var(--color-focus); }
.address-card.is-selected { border-color:var(--color-focus); box-shadow:0 0 0 2px var(--color-blue-tint); }
.address-card__badge {
  justify-self:start;
  padding:2px 8px;
  border-radius:999px;
  background:var(--color-blue-tint);
  color:var(--color-focus);
  font-size:10px;
  font-weight:900;
}
.address-card__actions { display:flex; flex-wrap:wrap; gap:6px; }
.address-card__actions .secondary-action { width:auto; min-height:28px; padding:0 10px; font-size:11px; }

/* — pagina de cont: meniu intern — */
.account-menu { display:grid; gap:4px; align-content:start; }
.account-menu__item {
  display:block;
  width:100%;
  padding:10px 12px;
  border:1px solid transparent;
  border-radius:6px;
  background:var(--color-surface);
  color:var(--color-text);
  font:inherit;
  font-size:13px;
  font-weight:800;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .12s ease, color .12s ease, border-color .12s ease;
}
.account-menu__item:hover { background:var(--color-blue-tint); color:var(--color-focus); }
.account-menu__item.is-active { background:var(--color-blue-tint); color:var(--color-focus); border-color:var(--color-focus); }
.account-menu__item--logout { color:var(--color-subtle); }
.account-content { min-width:0; display:grid; gap:12px; }
/* `.shop-card` are `display:grid`, care bate `[hidden]` din foaia de stil a browserului:
   fara garda, TOATE sectiunile contului se randau una sub alta, iar meniul parea inert.
   Acelasi lucru la formularul de adresa (`.checkout-form` are tot `display:grid`): ramanea
   deschis dupa salvare, desi JS-ul ii pusese `hidden`. */
.account-pane[hidden], .shop-card[hidden], .checkout-form[hidden], .address-form[hidden],
.checkout-note[hidden], .password-toggle[hidden] { display:none !important; }
.account-pane h2 { margin:0; font-size:17px; color:var(--color-strong); }
.account-pane h3 { margin:10px 0 0; font-size:13px; color:var(--color-strong); }
.account-danger { padding-top:10px; border-top:1px solid var(--color-border); display:grid; gap:8px; justify-items:start; }

/* — comenzi: card în listă + detaliu — */
.order-card-list { display:grid; gap:10px; }
.order-summary-card {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) auto auto auto auto;
  gap:10px;
  align-items:center;
  padding:12px;
  border:1px solid var(--color-border);
  border-radius:6px;
  background:var(--color-surface);
  font-size:12px;
  transition:border-color .12s ease, transform .12s ease;
}
.order-summary-card:hover { border-color:var(--color-focus); transform:translateY(-1px); }
.order-summary-card time { display:block; color:var(--color-subtle); font-weight:800; }
.order-summary-card .secondary-action { width:auto; min-height:30px; padding:0 12px; text-decoration:none; display:inline-flex; align-items:center; }
.order-status {
  justify-self:start;
  padding:3px 10px;
  border-radius:999px;
  background:var(--color-surface-alt);
  color:var(--color-subtle);
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.order-status[data-status="placed"],
.order-status[data-status="new"] { background:var(--color-blue-tint); color:var(--color-focus); }
.order-status[data-status="confirmed"],
.order-status[data-status="processing"] { background:#fff4e0; color:#9a5b00; }
.order-status[data-status="shipped"] { background:#e8f1ff; color:#1c4f9c; }
.order-status[data-status="delivered"] { background:#e6f6ec; color:#186a3b; }
.order-status[data-status="cancelled"],
.order-status[data-status="refunded"],
.order-status[data-status="returned"] { background:#fdeaea; color:#a12020; }

.order-card { gap:14px; }
.order-head { display:flex; flex-wrap:wrap; gap:18px; align-items:flex-start; }
.order-label { display:block; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:var(--color-muted); }
.order-number { font-size:16px; color:var(--color-strong); }
.order-lines { display:grid; gap:8px; }
.order-line {
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto auto;
  gap:10px;
  align-items:center;
  padding:8px 0;
  border-top:1px solid var(--color-border);
  font-size:12px;
}
.order-lines--table .order-line { grid-template-columns:52px minmax(0,1fr) auto auto auto auto; }
.order-line__main { min-width:0; display:grid; gap:2px; }
.order-line__main strong { font-size:13px; }
.order-line__main a { color:var(--color-focus); }
.order-line__main span { color:var(--color-subtle); font-weight:800; }
.order-line__qty { color:var(--color-subtle); font-weight:800; white-space:nowrap; }
.order-line__total { font-weight:900; white-space:nowrap; }
.order-meta { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); gap:12px; font-size:12px; }
.order-meta address { font-style:normal; color:var(--color-text); }
.order-history-list { display:grid; gap:6px; margin:0; padding:0; list-style:none; font-size:12px; }
.order-history-list li { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.order-history-list time { color:var(--color-subtle); font-weight:800; }
.order-next h2 { margin:0 0 4px; font-size:14px; color:var(--color-strong); }

/* — indicatorul de pași, varianta de pagină — */
.checkout-steps--page { justify-content:flex-start; margin:0 0 4px; }

/* — panoul de coș: linii cu poză, butoane distanțate — */
.cart-line {
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto auto;
  gap:10px;
  align-items:center;
}
.cart-line img,
.cart-line__noimage {
  width:52px; height:52px;
  object-fit:contain;
  border:1px solid var(--color-border);
  border-radius:4px;
  background:var(--color-surface);
}
.cart-line__main { min-width:0; display:grid; gap:2px; }
.cart-line__main a { color:var(--color-text); }
.cart-line__main a:hover { color:var(--color-focus); }
.cart-line__warning { color:var(--color-focus); font-weight:900; }
.cart-line__remove { margin-left:2px; }

@media (max-width:900px) {
  .shop-grid--checkout,
  .shop-grid--account { grid-template-columns:1fr; }
  .account-menu { grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); overflow-x:auto; }
  .account-menu__item { text-align:center; white-space:nowrap; font-size:11px; padding:8px 6px; }
}
@media (max-width:600px) {
  .shop-page { padding:14px 12px; }
  .shop-card { padding:14px; }
  .shop-title { font-size:18px; }
  .shop-row { grid-template-columns:1fr; }
  .shop-actions .primary-action,
  .shop-actions .secondary-action,
  .panel-actions .primary-action,
  .panel-actions .secondary-action { width:100%; min-width:0; }
  .order-summary-card { grid-template-columns:1fr auto; row-gap:6px; }
  .order-line,
  .order-lines--table .order-line { grid-template-columns:44px minmax(0,1fr) auto; row-gap:4px; }
  .line-thumb { width:40px; height:40px; }
}

/* „Specificații tehnice" pe pagina de produs: același tabel cheie–valoare ca
   `.attributes`, cu rânduri alternate ca să se citească ușor pe liste lungi. */
.spec-table div:nth-child(even) { background:var(--color-surface-alt); }
.spec-table dt { color:var(--color-subtle); }
.spec-table dd { color:var(--color-text); font-weight:800; }
@media (max-width:600px) {
  .spec-table div { padding:6px 8px; }
}

/* P1.3 — selector de cantitate pe pagina de produs. */
.qty-field { display:flex; align-items:center; gap:6px; font-size:11px; font-weight:850; color:var(--color-subtle); }
.qty-field input {
  width:64px;
  min-height:34px;
  padding:0 6px;
  border:1px solid var(--color-panel-border);
  border-radius:4px;
  background:var(--color-surface);
  color:var(--color-text);
  font:inherit;
  font-size:13px;
  text-align:center;
}

/* P1.4 — starea „se lucreaza" pe orice buton care declanseaza o mutatie. */
button.is-loading,
.primary-action.is-loading,
.secondary-action.is-loading { opacity:.65; cursor:progress; }

/* P1.6 — favoritele din panou au buton propriu de stergere. */
/* Marcajul favoritelor e acum identic cu al liniilor de cos (poza | text | actiuni),
   deci regulile vechi, facute pentru un `<a>` care continea poza si numele, nu mai au
   obiect si stricau grila. */
.favorite-line strong { min-width:0; overflow:hidden; }
[data-toggle-favorite].is-active { background:var(--color-blue-tint); color:var(--color-focus); border-color:var(--color-focus); }

/* P1.12 — mesaj de eroare in locul metodelor de livrare/plata, cand nu vin de la server. */
.checkout-note.is-error { color:var(--color-focus); font-weight:900; margin:4px 0 0; }

/* P1.4 — cat timp o mutatie de cos e in zbor, lista nu mai primeste click-uri. */
.cart-lines.is-busy { opacity:.6; pointer-events:none; }

/* Butonul „×" de pe linia de coș moștenea stilul `.icon-button` din antetul albastru
   al panoului: alb pe alb, deci invizibil pe cardul liniei. Îi dăm contrast propriu. */
.cart-line__remove {
  width: 30px;
  height: 30px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  background: var(--color-surface);
  color: var(--color-subtle);
  font-size: 16px;
  line-height: 1;
  transition: background-color .12s ease, color .12s ease, border-color .12s ease;
}
.cart-line__remove:hover {
  background: var(--color-blue-tint);
  border-color: var(--color-focus);
  color: var(--color-focus);
}

/* Blocul „Acorduri" de pe /checkout: bifa în stânga, textul aliniat cu ea, linkul inline. */
.consents { display:grid; gap:8px; }
.consent-row {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  font-size:12px;
  font-weight:800;
  color:var(--color-text);
  cursor:pointer;
}
.consent-row input[type="checkbox"],
.checkout-check input[type="checkbox"],
.choice-group label input[type="checkbox"] {
  width:16px; height:16px;
  min-width:16px; max-width:16px;
  margin:1px 0 0;
  padding:0;
  flex:0 0 auto;
  accent-color:var(--color-focus);
}
.consent-row > span, .checkout-check > span { line-height:1.45; }
.consent-row a, .checkout-check a { color:var(--color-focus); text-decoration:underline; white-space:nowrap; }
/* Aceeasi bifa si in „Creeaza cont" (`fieldset.choice-group`), ca sa arate la fel peste tot. */
.choice-group label { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:start; cursor:pointer; }
.choice-group label > span { line-height:1.45; }

/* Confirmarea comenzii: mesajul cu e-mailul și oferta de cont pentru vizitator. */
.order-email-note { margin:0; font-size:13px; font-weight:800; color:var(--color-strong); }
.order-signup {
  display:grid;
  gap:8px;
  justify-items:start;
  padding:14px;
  border:1px solid var(--color-focus);
  border-radius:8px;
  background:var(--color-blue-tint);
}
.order-signup h2 { margin:0; font-size:15px; color:var(--color-strong); }
.order-signup .primary-action { width:auto; min-width:180px; text-decoration:none; }

/* Câmp obligatoriu marcat vizibil + sugestia de corectare a adresei de e-mail. */
.shop-field .req { color:var(--color-focus); font-weight:900; }
.field-suggestion { display:block; }
.link-button {
  padding:0; border:0; background:none;
  color:var(--color-focus); font:inherit; font-size:11px; font-weight:900;
  text-decoration:underline; cursor:pointer;
}
.order-signup--created { border-color:#186a3b; background:#e6f6ec; }

/* Câmp obligatoriu marcat vizibil + sugestia de corectare a adresei de e-mail. */
.shop-field .req { color:var(--color-focus); font-weight:900; }
.field-suggestion { display:block; }
.link-button {
  padding:0; border:0; background:none;
  color:var(--color-focus); font:inherit; font-size:11px; font-weight:900;
  text-decoration:underline; cursor:pointer;
}
.order-signup--created { border-color:#186a3b; background:#e6f6ec; }

/* Grila în timpul reîncărcării: rămâne pe loc, doar se estompează scurt.
   Fără salt în sus și fără reîncărcarea paginii — filtrele schimbă doar grila. */
[data-product-grid].is-loading {
  opacity: .55;
  transition: opacity .12s ease;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-product-grid].is-loading { transition: none; }
}

/* ── Contul: toate secțiunile pe aceeași pagină, meniul doar navighează ──────────
   Utilizatorului îi place să vadă tot conținutul dintr-o privire; meniul din stânga
   derulează la secțiune și își marchează singur starea activă în timp ce derulezi. */
.shop-grid--account .account-content { display:grid; gap:14px; align-content:start; }
.shop-grid--account .account-menu { position:sticky; top:calc(var(--header-h, 64px) + 10px); }
.account-menu__item.is-active { border-color:var(--color-focus); background:var(--color-blue-tint); color:var(--color-focus); font-weight:900; }
/* `display:block` de pe clasa bate `[hidden]`: fara garda, intrarea „Firmele mele" se
   vedea in meniu chiar si cand sectiunea lipseste (ruta inca nelivrata de backend). */
.account-menu__item[hidden] { display:none !important; }
.account-pane { scroll-margin-top:calc(var(--header-h, 64px) + 16px); }

/* Card de adresă / firmă: câmpuri separate, etichetă deasupra valorii. */
.address-card__head { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.address-card__badge--muted { background:var(--color-surface-alt); color:var(--color-subtle); }
.data-grid { display:grid; gap:4px; }
.data-row { display:grid; grid-template-columns:minmax(96px, 38%) minmax(0,1fr); gap:8px; align-items:baseline; font-size:12px; }
.data-row__label { color:var(--color-subtle); font-weight:800; }
.data-row__value { color:var(--color-text); font-weight:800; overflow-wrap:anywhere; }
@media (max-width:600px) {
  .shop-grid--account .account-menu { position:static; }
  .data-row { grid-template-columns:1fr; gap:0; }
}

/* Panoul de favorite: aceleași linii ca la coș, cu acțiuni clare pe fiecare produs. */
.panel-count { margin:0 0 4px; color:var(--color-subtle); font-size:12px; font-weight:800; }
.favorite-line__actions { display:grid; gap:6px; justify-items:stretch; align-content:center; }
.favorite-line__actions .secondary-action { width:100%; min-height:30px; padding:0 10px; font-size:11px; white-space:nowrap; }
/* butonul de eliminare din favorite e un buton normal, nu iconita patrata din cos */
.favorite-line__actions .cart-line__remove { width:100%; height:auto; font-size:11px; }
.favorite-line__stock { color:var(--color-success, #15803d); font-size:11px; font-weight:800; }
.empty-state--action { display:grid; gap:10px; justify-items:center; text-align:center; }
.empty-state--action .primary-action { width:auto; padding:0 16px; }


/* Acțiune distructivă (ștergerea contului): buton discret, cu contur roșu și lățime
   naturală, aliniat la dreapta — nu un buton portocaliu identic cu „Salvează datele". */
.danger-action {
  justify-self:end;
  width:auto;
  min-height:34px;
  padding:0 14px;
  border:1px solid var(--color-danger);
  border-radius:5px;
  background:var(--color-surface);
  color:var(--color-danger);
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.danger-action:hover { background:var(--color-danger); color:#fff; }
.account-danger { justify-items:stretch; }
.account-danger h3 { justify-self:start; }

/* Dialogul de confirmare din pagină (înlocuiește `window.confirm`, pe care browserul îl
   poate bloca după primul dialog — și atunci butonul pare că nu face nimic). */
.confirm-dialog { position:fixed; inset:0; z-index:130; display:grid; place-items:center; padding:16px; background:rgba(15,23,42,.45); }
.confirm-dialog[hidden] { display:none !important; }
.confirm-dialog__box { display:grid; gap:10px; width:min(420px,100%); padding:18px; border:1px solid var(--color-border); border-radius:8px; background:var(--color-surface); box-shadow:var(--shadow-card); }
.confirm-dialog__box h2 { margin:0; font-size:16px; color:var(--color-strong); }
.confirm-dialog__box p { margin:0; font-size:13px; line-height:1.45; color:var(--color-text); }
.confirm-dialog__actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.confirm-dialog__actions .secondary-action, .confirm-dialog__actions .danger-action { width:auto; min-width:120px; }
body.has-modal { overflow:hidden; }

/* Selectorul de firmă salvată de pe /checkout, deasupra câmpurilor de firmă. */
.company-picker { margin:0 0 8px; }
.company-picker[hidden] { display:none !important; }
.company-picker select { width:100%; border:1px solid var(--color-panel-border); border-radius:4px; padding:9px 10px; font:inherit; font-size:13px; background:var(--color-surface); }

/* Descriere / Fișă tehnică: două taburi deasupra aceluiași bloc de conținut. */
.product-tabs__bar { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 12px; }
.product-tabs__tab {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:38px;
  padding:0 14px;
  border:1px solid var(--color-border);
  border-radius:5px;
  background:var(--color-surface-alt, var(--color-surface));
  color:var(--color-subtle);
  font:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.product-tabs__tab:hover { color:var(--color-focus); border-color:var(--color-focus); }
.product-tabs__tab.is-active {
  border-color:var(--color-focus);
  background:color-mix(in srgb, var(--color-focus) 12%, var(--color-surface));
  color:var(--color-focus);
}
.product-tabs__tab:focus-visible { outline:2px solid var(--color-focus); outline-offset:2px; }
.product-tabs__icon { flex:0 0 auto; }
.product-tabs__panel { animation:datasheet-in .2s ease; }
.product-tabs__panel[hidden] { display:none !important; }
.product-datasheet[hidden] { display:none !important; }
.product-datasheet { animation:datasheet-in .22s ease; }
.product-datasheet .secondary-action { width:auto; justify-self:start; }
@keyframes datasheet-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { .product-datasheet { animation:none; } }

/* Inima de pe card: stinsă (♡) implicit, aprinsă (♥) când produsul e în favorite,
   cu un „pop" scurt la aprindere. Starea vine din lista de favorite a contului sau,
   pentru vizitator, din localStorage — deci se păstrează la reîncărcarea paginii. */
.favorite-action { transition:color .15s ease, border-color .15s ease, background .15s ease; }
.favorite-action.is-active,
.secondary-action[data-toggle-favorite].is-active {
  border-color:var(--color-danger);
  background:color-mix(in srgb, var(--color-danger) 8%, var(--color-surface));
  color:var(--color-danger);
}
.favorite-action.is-popping { animation:favorite-pop .28s ease; }
@keyframes favorite-pop { 0% { transform:scale(1); } 45% { transform:scale(1.28); } 100% { transform:scale(1); } }
@media (prefers-reduced-motion: reduce) { .favorite-action.is-popping { animation:none; } }

/* Descrierea produsului vine ca HTML sanitizat din import: paragrafe, titluri, liste. */
.product-description-body > *:first-child { margin-top:0; }
.product-description-body > *:last-child { margin-bottom:0; }
.product-description-body h2 { font-size:16px; }
.product-description-body h3 { font-size:14px; }
.product-description-body p, .product-description-body li { font-size:13px; line-height:1.55; }
.product-description-body ul, .product-description-body ol { margin:8px 0; padding-left:20px; }
.product-lead p { margin:0 0 6px; }
.product-lead > *:last-child { margin-bottom:0; }

/* Starea plății: aceleași pastile ca statusul comenzii, cu accent pe „plătit". */
.order-payment-note { margin:0; padding:9px 11px; border:1px solid var(--color-border); border-radius:5px; font-size:13px; font-weight:800; }
.order-payment-note[data-status="paid"] { border-color:var(--color-success, #15803d); color:var(--color-success, #15803d); background:#f0fdf4; }
.order-payment-note[data-status="failed"] { border-color:var(--color-danger); color:var(--color-danger); background:#fef2f2; }
.order-status[data-status="paid"] { color:var(--color-success, #15803d); }
.order-status[data-status="failed"] { color:var(--color-danger); }
.order-payment { display:grid; gap:12px; }

/* Starea plății în detaliul comenzii (F4). Bloc propriu, pe toată lățimea cardului:
   înainte fraza lungă stătea într-o pastilă `.order-status` cu `white-space:nowrap`,
   într-o coloană de 200 px din `.order-meta`, și ieșea din card. Acum textul se încadrează
   normal, blocul are aceeași margine ca restul cardului, iar tonul depinde de caz:
   avertisment doar la cardul neplătit, neutru la ramburs/transfer, verde la plătit. */
.order-paystate {
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:0;
  display:grid;
  gap:8px;
  justify-items:start;
  padding:10px 12px;
  border:1px solid var(--color-border);
  border-radius:6px;
  background:var(--color-surface-alt, #f6f7f9);
  color:var(--color-text);
  font-size:13px;
}
.order-paystate[hidden], .order-paystate [hidden] { display:none !important; }
.order-paystate__text {
  margin:0;
  max-width:100%;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.45;
  font-weight:800;
}
.order-paystate[data-kind="pending"],
.order-paystate[data-kind="failed"] { border-color:#e8b95a; background:#fff8e8; color:#7a4b00; }
.order-paystate[data-kind="failed"] { border-color:var(--color-danger, #b42318); background:#fef2f2; color:var(--color-danger, #b42318); }
.order-paystate[data-kind="paid"] { border-color:var(--color-success, #15803d); background:#f0fdf4; color:var(--color-success, #15803d); }
.order-paystate .order-paystate__pay { width:auto; max-width:100%; min-height:38px; padding:0 16px; text-decoration:none; }
@media (max-width:560px) { .order-paystate .order-paystate__pay { width:100%; } }
/* Pagina de reluare a plății folosește încă pastila în antet: aceeași frază lungă
   trebuie să se poată rupe pe rânduri, altfel iese din card pe mobil. */
/* `.primary-action` / `.secondary-action` au `display:inline-flex`, care bate `[hidden]`
   din foaia browserului: „Plătește acum" (și „Solicită retur") apăreau mereu, deși JS-ul
   le lăsa `hidden` — la ramburs butonul de plată se vedea pe confirmare. Garda de mai jos
   face ca `hidden` să însemne din nou ascuns pentru toate butoanele. */
.primary-action[hidden], .secondary-action[hidden] { display:none !important; }
.order-status[data-order-payment-status] { white-space:normal; max-width:100%; overflow-wrap:anywhere; border-radius:8px; }

/* ═══════════════════════════════════════════════════════════════════════════
   BARA DE NAVIGARE — stil distinct pentru fiecare temă (F3)
   ───────────────────────────────────────────────────────────────────────────
   De ce aici și nu în seasonal.css / event.css: acele fișiere sunt scrise
   integral în `@layer seasonal` / `@layer event`, iar regulile din generic.css
   sunt NElayerizate. În cascadă, declarațiile din afara oricărui layer bat
   orice layer, indiferent de ordinea fișierelor sau de specificitate — de aceea
   antetul arăta identic (albastru marketplace) pe toate cele 9 teme, deși
   seasonal.css/event.css aveau deja reguli pentru el. Blocul de mai jos e
   NElayerizat, deci se aplică efectiv.

   Structura: un singur set de reguli comune care citește variabile `--nav-*`,
   plus câte un bloc de variabile per temă. Marcajul din shared/header.html NU
   se schimbă: aceleași elemente, aceeași ordine (logo, căutare, cont/login,
   Favorite, Coș, limbi, selectorul de teme). Antetul rămâne sticky, iar
   `--header-h` (pus de storefront.js) ține mai departe offsetul barei laterale.
   ═══════════════════════════════════════════════════════════════════════════ */

body[data-theme] .site-header {
  background: var(--nav-bg, var(--color-focus));
  color: var(--nav-text, var(--color-surface));
  border-bottom: var(--nav-border, 0);
  box-shadow: var(--nav-shadow, var(--shadow-header));
}
body[data-theme] .main-header {
  padding: var(--nav-pad, 8px 12px 7px);
  gap: var(--nav-gap, 14px);
}
body[data-theme] .logo {
  color: var(--nav-logo-color, var(--color-surface));
  font-family: var(--nav-logo-font, inherit);
  font-size: var(--nav-logo-size, clamp(14px,1.4vw,23px));
  font-weight: var(--nav-logo-weight, 900);
  letter-spacing: var(--nav-logo-spacing, .01em);
  text-transform: var(--nav-logo-transform, none);
}
body[data-theme] .search { max-width: var(--nav-search-max, 640px); }
body[data-theme] .search input {
  box-sizing: border-box;
  height: var(--nav-ctl-h, 36px);
  min-height: var(--nav-ctl-h, 36px);
  border: var(--nav-field-border, 0);
  border-right: 0;
  border-radius: var(--nav-radius, 4px) 0 0 var(--nav-radius, 4px);
  background: var(--nav-field-bg, #fff);
  color: var(--nav-field-text, var(--color-text));
}
body[data-theme] .search button {
  box-sizing: border-box;
  height: var(--nav-ctl-h, 36px);
  border: var(--nav-field-border, 0);
  border-left: 0;
  border-radius: 0 var(--nav-radius, 4px) var(--nav-radius, 4px) 0;
  background: var(--nav-searchbtn-bg, var(--color-accent-fallback));
  color: var(--nav-searchbtn-text, var(--color-text));
}
body[data-theme] .actions {
  gap: var(--nav-actions-gap, 6px);
  font-size: var(--nav-actions-size, 11px);
  font-weight: var(--nav-actions-weight, 800);
  letter-spacing: var(--nav-actions-spacing, 0);
  text-transform: var(--nav-actions-transform, none);
}
body[data-theme] .actions button,
body[data-theme] .actions a.account-entry {
  box-sizing: border-box;
  /* `<button>` primeste `text-transform:none` din stylesheet-ul browserului, care bate
     mostenirea de pe `.actions` — de aceea il repetam explicit, altfel „Favorite"/„Cos"
     ramaneau cu litera mica pe temele cu majuscule (Toamna, Gala, Black Friday). */
  text-transform: var(--nav-actions-transform, none);
  letter-spacing: var(--nav-actions-spacing, 0);
  font-size: var(--nav-actions-size, 11px);
  font-weight: var(--nav-actions-weight, 800);
  min-height: var(--nav-btn-h, 32px);
  padding: 0 var(--nav-btn-pad, 8px);
  border: var(--nav-btn-border, 0);
  border-radius: var(--nav-btn-radius, var(--nav-radius, 4px));
  background: var(--nav-btn-bg, var(--surface-action-soft));
  color: var(--nav-btn-text, var(--color-surface));
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
body[data-theme] .actions button:hover,
body[data-theme] .actions a.account-entry:hover {
  background: var(--nav-btn-hover-bg, var(--surface-action-hover));
  color: var(--nav-btn-hover-text, var(--nav-btn-text, var(--color-surface)));
  border-color: var(--nav-btn-hover-bg, transparent);
}
body[data-theme] .actions button:focus-visible,
body[data-theme] .actions a.account-entry:focus-visible,
body[data-theme] .language-nav a:focus-visible,
body[data-theme] .search input:focus-visible,
body[data-theme] .theme-demo-switcher select:focus-visible {
  outline: 2px solid var(--nav-focus-ring, var(--nav-searchbtn-bg, #f59e0b));
  outline-offset: 2px;
}
body[data-theme] .cart-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 5px; margin-left: 4px;
  border-radius: 999px;
  background: var(--nav-badge-bg, var(--color-accent-fallback));
  color: var(--nav-badge-text, #1f2937);
  font-size: 10px; font-weight: 900; line-height: 1;
}
body[data-theme] .language-nav { gap: var(--nav-lang-gap, 3px); }
body[data-theme] .language-nav a {
  box-sizing: border-box;
  border: var(--nav-btn-border, 0);
  border-radius: var(--nav-btn-radius, var(--nav-radius, 4px));
  background: var(--nav-lang-bg, var(--color-focus-strong));
  color: var(--nav-lang-text, var(--color-surface));
}
body[data-theme] .language-nav a.active {
  background: var(--nav-lang-active-bg, var(--color-surface));
  color: var(--nav-lang-active-text, var(--color-focus));
}
body[data-theme] .theme-demo-switcher { color: var(--nav-text, var(--color-surface)); }
body[data-theme] .theme-demo-switcher select {
  border: 1px solid var(--nav-select-border, var(--color-focus-strong));
  border-radius: var(--nav-btn-radius, var(--nav-radius, 4px));
  background: var(--nav-select-bg, var(--color-surface));
  color: var(--nav-select-text, var(--color-text));
}

/* Pe mobil densitatea revine la valorile compacte comune: temele rămân
   distincte prin culoare, formă și tipografie, dar nimic nu iese din ecran. */
@media (max-width: 700px) {
  body[data-theme] .main-header { padding: 10px 12px 9px; gap: 7px; }
  body[data-theme] .search { max-width: none; }
  body[data-theme] .search input,
  body[data-theme] .search button { height: 37px; min-height: 37px; }
  body[data-theme] .logo { font-size: var(--nav-logo-size-mobile, 23px); }
  body[data-theme] .actions { font-size: var(--nav-actions-size-mobile, 11px); letter-spacing: 0; }
  body[data-theme] .actions button,
  body[data-theme] .actions a.account-entry { padding: 0 6px; font-size: var(--nav-actions-size-mobile, 11px); letter-spacing: 0; }
}
@media (max-width: 600px) {
  body[data-theme] .actions button,
  body[data-theme] .actions a.account-entry { padding: 0 4px; }
}

/* ── 1. Marketplace Pro — bară densă, corporate, colțuri drepte de 4px ── */
body[data-theme="marketplace_pro"] {
  --nav-bg: linear-gradient(180deg, #0b63b6, #084f93);
  --nav-text: #ffffff;
  --nav-shadow: 0 2px 10px rgba(15,23,42,.28);
  --nav-pad: 8px 12px 7px; --nav-gap: 14px;
  --nav-radius: 4px; --nav-ctl-h: 36px; --nav-btn-h: 32px;
  --nav-search-max: 640px;
  --nav-logo-color: #ffffff; --nav-logo-size: clamp(15px,1.5vw,24px);
  --nav-field-bg: #ffffff; --nav-field-text: #111827;
  --nav-searchbtn-bg: #f59e0b; --nav-searchbtn-text: #1f2937;
  --nav-btn-bg: rgba(255,255,255,.12); --nav-btn-text: #ffffff;
  --nav-btn-hover-bg: rgba(255,255,255,.26); --nav-btn-hover-text: #ffffff;
  --nav-lang-bg: #084f93; --nav-lang-text: #ffffff;
  --nav-lang-active-bg: #ffffff; --nav-lang-active-text: #0b63b6;
  --nav-badge-bg: #f59e0b; --nav-badge-text: #1f2937;
  --nav-select-bg: #ffffff; --nav-select-text: #111827; --nav-select-border: #084f93;
}

/* ── 2. Primăvară — Grădina de Porțelan: bară albă, aerisită, totul oval ── */
body[data-theme="season_spring_porcelain_garden"] {
  --nav-bg: linear-gradient(180deg, #fffdf8, #f2f7f0);
  --nav-text: #1f2a24;
  --nav-border: 1px solid #d8e1d7;
  --nav-shadow: 0 8px 22px rgba(31,42,36,.07);
  --nav-pad: 16px 22px 14px; --nav-gap: 18px;
  --nav-radius: 999px; --nav-btn-radius: 999px; --nav-btn-pad: 14px;
  --nav-ctl-h: 40px; --nav-btn-h: 36px;
  --nav-search-max: 460px;
  --nav-logo-color: #2f6b4f; --nav-logo-font: "Noto Serif Display","Noto Serif",Georgia,serif;
  --nav-logo-size: clamp(20px,2vw,30px); --nav-logo-spacing: 0;
  --nav-field-bg: #ffffff; --nav-field-border: 1px solid #cfdcd0; --nav-field-text: #1f2a24;
  --nav-searchbtn-bg: #2f6b4f; --nav-searchbtn-text: #ffffff;
  --nav-btn-bg: #ffffff; --nav-btn-text: #2f6b4f; --nav-btn-border: 1px solid #cfdcd0;
  --nav-btn-hover-bg: #2f6b4f; --nav-btn-hover-text: #ffffff;
  --nav-lang-bg: #ffffff; --nav-lang-text: #2f6b4f;
  --nav-lang-active-bg: #2f6b4f; --nav-lang-active-text: #ffffff;
  --nav-badge-bg: #b84f68; --nav-badge-text: #ffffff;
  --nav-select-bg: #ffffff; --nav-select-text: #1f2a24; --nav-select-border: #cfdcd0;
  --nav-focus-ring: #2f6b4f;
}

/* ── 3. Vară — Riviera Albastră: bandă gradient azur→teal, muchie galbenă ── */
body[data-theme="season_summer_azure_riviera"] {
  --nav-bg: linear-gradient(90deg, #075985 0%, #0e7490 100%);
  --nav-text: #ffffff;
  --nav-border: 3px solid #e6a817;
  --nav-shadow: 0 10px 26px rgba(7,89,133,.22);
  --nav-pad: 12px 20px 11px; --nav-gap: 16px;
  --nav-radius: 6px; --nav-ctl-h: 38px; --nav-btn-h: 34px;
  --nav-search-max: 560px;
  --nav-logo-color: #ffffff; --nav-logo-font: "Noto Serif Display","Noto Serif",Georgia,serif;
  --nav-logo-size: clamp(18px,1.8vw,28px); --nav-logo-spacing: .04em;
  --nav-field-bg: #ffffff; --nav-field-text: #102a3a;
  --nav-searchbtn-bg: #e6a817; --nav-searchbtn-text: #102a3a;
  --nav-btn-bg: rgba(0,0,0,.22); --nav-btn-text: #ffffff;
  --nav-btn-border: 1px solid rgba(255,255,255,.40);
  --nav-btn-hover-bg: #ffffff; --nav-btn-hover-text: #075985;
  --nav-actions-spacing: .03em;
  --nav-lang-bg: rgba(0,0,0,.22); --nav-lang-text: #ffffff;
  --nav-lang-active-bg: #e6a817; --nav-lang-active-text: #102a3a;
  --nav-badge-bg: #e6a817; --nav-badge-text: #102a3a;
  --nav-select-bg: #ffffff; --nav-select-text: #102a3a; --nav-select-border: rgba(255,255,255,.55);
}

/* ── 4. Toamnă — Atelier de Lut: hârtie caldă, muchii drepte, majuscule mici ── */
body[data-theme="season_autumn_clay_atelier"] {
  --nav-bg: linear-gradient(180deg, #fff9ef, #f6e9d6);
  --nav-text: #2b211d;
  --nav-border: 3px solid #8b3f27;
  --nav-shadow: 0 6px 18px rgba(52,33,27,.10);
  --nav-pad: 13px 20px 12px; --nav-gap: 16px;
  --nav-radius: 3px; --nav-ctl-h: 38px; --nav-btn-h: 34px;
  --nav-search-max: 400px;
  --nav-logo-color: #8b3f27; --nav-logo-font: "Noto Serif Display","Noto Serif",Georgia,serif;
  --nav-logo-size: clamp(19px,1.9vw,29px); --nav-logo-spacing: .02em;
  --nav-field-bg: #fffdf9; --nav-field-border: 1px solid #cbb298; --nav-field-text: #2b211d;
  --nav-searchbtn-bg: #8b3f27; --nav-searchbtn-text: #fff8ee;
  --nav-btn-bg: transparent; --nav-btn-text: #6b2f1d; --nav-btn-border: 1px solid #c6a98d;
  --nav-btn-hover-bg: #8b3f27; --nav-btn-hover-text: #fff8ee;
  --nav-actions-transform: uppercase; --nav-actions-spacing: .06em; --nav-actions-size: 10px;
  --nav-lang-bg: transparent; --nav-lang-text: #6b2f1d;
  --nav-lang-active-bg: #8b3f27; --nav-lang-active-text: #fff8ee;
  --nav-badge-bg: #5a6040; --nav-badge-text: #ffffff;
  --nav-select-bg: #fffdf9; --nav-select-text: #2b211d; --nav-select-border: #c6a98d;
  --nav-focus-ring: #8b3f27;
}

/* ── 5. Iarnă — Nocturnă de Cristal: bară joasă, întunecată, fir auriu ── */
body[data-theme="season_winter_crystal_nocturne"] {
  --nav-bg: linear-gradient(180deg, #101827, #0a111e);
  --nav-text: #f7fafc;
  --nav-border: 1px solid #b89a5e;
  --nav-shadow: 0 12px 30px rgba(2,6,23,.45);
  --nav-pad: 9px 20px 8px; --nav-gap: 14px;
  --nav-radius: 2px; --nav-ctl-h: 34px; --nav-btn-h: 30px;
  --nav-search-max: 520px;
  --nav-logo-color: #e8d5a8; --nav-logo-font: "Noto Serif Display","Noto Serif",Georgia,serif;
  --nav-logo-size: clamp(16px,1.6vw,25px); --nav-logo-spacing: .12em; --nav-logo-transform: uppercase;
  --nav-field-bg: #f5f8fa; --nav-field-border: 1px solid #47536a; --nav-field-text: #111827;
  --nav-searchbtn-bg: #b89a5e; --nav-searchbtn-text: #101827;
  --nav-btn-bg: rgba(245,248,250,.07); --nav-btn-text: #f2f6fa;
  --nav-btn-border: 1px solid rgba(184,154,94,.45);
  --nav-btn-hover-bg: #b89a5e; --nav-btn-hover-text: #101827;
  --nav-actions-spacing: .05em;
  --nav-lang-bg: rgba(245,248,250,.06); --nav-lang-text: #f2f6fa;
  --nav-lang-active-bg: #b89a5e; --nav-lang-active-text: #101827;
  --nav-badge-bg: #b89a5e; --nav-badge-text: #101827;
  --nav-select-bg: #182338; --nav-select-text: #f2f6fa; --nav-select-border: #47536a;
}

/* ── 6. Anul Nou — Gala de la Miezul Nopții: bară înaltă, pastile șampanie ── */
body[data-theme="event_new_year_midnight_gala"] {
  --nav-bg: linear-gradient(180deg, #070b18, #11182b);
  --nav-text: #f8fafc;
  --nav-border: 1px solid rgba(215,190,138,.55);
  --nav-shadow: 0 14px 34px rgba(4,7,18,.55);
  --nav-pad: 18px 22px 16px; --nav-gap: 18px;
  --nav-radius: 999px; --nav-btn-radius: 999px; --nav-btn-pad: 14px;
  --nav-ctl-h: 40px; --nav-btn-h: 36px;
  --nav-search-max: 420px;
  --nav-logo-color: #d7be8a; --nav-logo-font: "Noto Serif Display","Noto Serif",Georgia,serif;
  --nav-logo-size: clamp(18px,1.8vw,29px); --nav-logo-spacing: .16em; --nav-logo-transform: uppercase;
  --nav-field-bg: #f7f8fb; --nav-field-border: 1px solid rgba(215,190,138,.45); --nav-field-text: #111827;
  --nav-searchbtn-bg: #d7be8a; --nav-searchbtn-text: #111827;
  --nav-btn-bg: transparent; --nav-btn-text: #f4e7cd;
  --nav-btn-border: 1px solid rgba(215,190,138,.6);
  --nav-btn-hover-bg: #d7be8a; --nav-btn-hover-text: #111827;
  --nav-actions-transform: uppercase; --nav-actions-spacing: .08em; --nav-actions-size: 10px;
  --nav-lang-bg: transparent; --nav-lang-text: #f4e7cd;
  --nav-lang-active-bg: #d7be8a; --nav-lang-active-text: #111827;
  --nav-badge-bg: #5b49c0; --nav-badge-text: #ffffff;
  --nav-select-bg: #11182b; --nav-select-text: #f4e7cd; --nav-select-border: rgba(215,190,138,.5);
}

/* ── 7. Crăciun — Poveste de Iarnă: verde adânc, aur, colțuri blânde 8px ── */
body[data-theme="event_christmas_winter_story"] {
  --nav-bg: linear-gradient(180deg, #123b2d, #0d2c22);
  --nav-text: #fffdf8;
  --nav-border: 3px solid #c19745;
  --nav-shadow: 0 10px 26px rgba(18,59,45,.30);
  --nav-pad: 14px 20px 13px; --nav-gap: 16px;
  --nav-radius: 8px; --nav-ctl-h: 38px; --nav-btn-h: 34px; --nav-btn-pad: 10px;
  --nav-search-max: 480px;
  --nav-logo-color: #e8c887; --nav-logo-font: "Noto Serif Display","Noto Serif",Georgia,serif;
  --nav-logo-size: clamp(19px,1.9vw,29px); --nav-logo-spacing: .01em;
  --nav-field-bg: #fffdf8; --nav-field-border: 1px solid #c19745; --nav-field-text: #2a211d;
  --nav-searchbtn-bg: #c19745; --nav-searchbtn-text: #22180f;
  --nav-btn-bg: rgba(255,253,248,.10); --nav-btn-text: #fffdf8;
  --nav-btn-border: 1px solid rgba(193,151,69,.55);
  --nav-btn-hover-bg: #c19745; --nav-btn-hover-text: #22180f;
  --nav-lang-bg: rgba(255,253,248,.08); --nav-lang-text: #fffdf8;
  --nav-lang-active-bg: #c19745; --nav-lang-active-text: #22180f;
  --nav-badge-bg: #7a2330; --nav-badge-text: #ffffff;
  --nav-select-bg: #fffdf8; --nav-select-text: #2a211d; --nav-select-border: #c19745;
}

/* ── 8. Paște — Atelier Pastel: bară foarte deschisă, butoane ovale, lavandă ── */
body[data-theme="event_easter_pastel_atelier"] {
  --nav-bg: linear-gradient(180deg, #ffffff, #fff8f1);
  --nav-text: #29352f;
  --nav-border: 1px solid #e6ded3;
  --nav-shadow: 0 6px 18px rgba(41,53,47,.06);
  --nav-pad: 15px 22px 13px; --nav-gap: 18px;
  --nav-radius: 999px; --nav-btn-radius: 999px; --nav-btn-pad: 14px;
  --nav-ctl-h: 38px; --nav-btn-h: 34px;
  --nav-search-max: 440px;
  --nav-logo-color: #315849; --nav-logo-font: "Noto Sans Display","Noto Sans",sans-serif;
  --nav-logo-size: clamp(19px,1.9vw,28px); --nav-logo-spacing: -.01em;
  --nav-field-bg: #ffffff; --nav-field-border: 1px solid #ddd7ce; --nav-field-text: #29352f;
  --nav-searchbtn-bg: #315849; --nav-searchbtn-text: #ffffff;
  --nav-btn-bg: #f4f1fa; --nav-btn-text: #315849; --nav-btn-border: 1px solid #ddd7ce;
  --nav-btn-hover-bg: #315849; --nav-btn-hover-text: #ffffff;
  --nav-lang-bg: #f4f1fa; --nav-lang-text: #315849;
  --nav-lang-active-bg: #315849; --nav-lang-active-text: #ffffff;
  --nav-badge-bg: #b0472f; --nav-badge-text: #ffffff;
  --nav-select-bg: #ffffff; --nav-select-text: #29352f; --nav-select-border: #ddd7ce;
  --nav-focus-ring: #315849;
}

/* ── 9. Black Friday — Impact: bară compactă, negru/galben, zero rotunjiri ── */
body[data-theme="event_black_friday_impact"] {
  --nav-bg: #080808;
  --nav-text: #ffffff;
  --nav-border: 4px solid #ffd400;
  --nav-shadow: 0 8px 20px rgba(0,0,0,.6);
  --nav-pad: 7px 16px 6px; --nav-gap: 10px;
  --nav-radius: 0; --nav-btn-radius: 0; --nav-ctl-h: 34px; --nav-btn-h: 30px;
  --nav-search-max: 700px;
  --nav-logo-color: #ffd400; --nav-logo-font: "Noto Sans Display","Noto Sans",sans-serif;
  --nav-logo-weight: 950; --nav-logo-size: clamp(17px,1.8vw,27px);
  --nav-logo-spacing: -.02em; --nav-logo-transform: uppercase;
  --nav-field-bg: #ffffff; --nav-field-border: 2px solid #ffd400; --nav-field-text: #080808;
  --nav-searchbtn-bg: #ffd400; --nav-searchbtn-text: #080808;
  --nav-btn-bg: #1c1c1c; --nav-btn-text: #ffffff; --nav-btn-border: 1px solid #3a3a3a;
  --nav-btn-hover-bg: #ffd400; --nav-btn-hover-text: #080808;
  --nav-actions-transform: uppercase; --nav-actions-spacing: .05em;
  --nav-actions-size: 10px; --nav-actions-weight: 900;
  --nav-lang-bg: #1c1c1c; --nav-lang-text: #ffffff;
  --nav-lang-active-bg: #ffd400; --nav-lang-active-text: #080808;
  --nav-badge-bg: #b8f400; --nav-badge-text: #080808;
  --nav-select-bg: #1c1c1c; --nav-select-text: #ffffff; --nav-select-border: #ffd400;
}

/* ── 10. Halloween — Noaptea Dovlecilor: violet de noapte, pastile portocalii ── */
body[data-theme="event_halloween_pumpkin_night"] {
  --nav-bg: linear-gradient(180deg, #241733, #1b1226);
  --nav-text: #f6ecdf;
  --nav-border: 2px solid #e8741c;
  --nav-shadow: 0 10px 26px rgba(27,18,38,.45);
  --nav-pad: 14px 20px 13px; --nav-gap: 16px;
  --nav-radius: 16px; --nav-btn-radius: 999px; --nav-btn-pad: 12px;
  --nav-ctl-h: 38px; --nav-btn-h: 34px;
  --nav-search-max: 460px;
  --nav-logo-color: #f29a4a; --nav-logo-font: "Noto Serif Display","Noto Serif",Georgia,serif;
  --nav-logo-size: clamp(19px,1.9vw,29px); --nav-logo-spacing: .01em;
  --nav-field-bg: #fffaf3; --nav-field-border: 1px solid #e8741c; --nav-field-text: #231a2e;
  --nav-searchbtn-bg: #e8741c; --nav-searchbtn-text: #1a1206;
  --nav-btn-bg: rgba(246,236,223,.08); --nav-btn-text: #f6ecdf;
  --nav-btn-border: 1px solid rgba(232,116,28,.55);
  --nav-btn-hover-bg: #e8741c; --nav-btn-hover-text: #1a1206;
  --nav-lang-bg: rgba(246,236,223,.08); --nav-lang-text: #f6ecdf;
  --nav-lang-active-bg: #e8741c; --nav-lang-active-text: #1a1206;
  --nav-badge-bg: #f2c14e; --nav-badge-text: #1b1226;
  --nav-select-bg: #1b1226; --nav-select-text: #f6ecdf; --nav-select-border: rgba(232,116,28,.55);
  --nav-focus-ring: #f2c14e;
}

/* ── 11. Back to School — Caietul Nou: hârtie albă, linie galbenă, colțuri de 6px ── */
body[data-theme="event_back_to_school_notebook"] {
  --nav-bg: #ffffff;
  --nav-text: #1d2742;
  --nav-border: 3px solid #f6c83b;
  --nav-shadow: 0 6px 16px rgba(29,39,66,.08);
  --nav-pad: 12px 20px 11px; --nav-gap: 14px;
  --nav-radius: 6px; --nav-btn-radius: 6px; --nav-btn-pad: 12px;
  --nav-ctl-h: 38px; --nav-btn-h: 34px;
  --nav-search-max: 520px;
  --nav-logo-color: #2549a8; --nav-logo-font: "Noto Sans Display","Noto Sans",sans-serif;
  --nav-logo-weight: 900; --nav-logo-size: clamp(18px,1.8vw,27px); --nav-logo-spacing: -.01em;
  --nav-field-bg: #f7f6f1; --nav-field-border: 1px solid #d8dde8; --nav-field-text: #1d2742;
  --nav-searchbtn-bg: #2549a8; --nav-searchbtn-text: #ffffff;
  --nav-btn-bg: #f7f6f1; --nav-btn-text: #1d2742; --nav-btn-border: 1px solid #d8dde8;
  --nav-btn-hover-bg: #f6c83b; --nav-btn-hover-text: #1d2742;
  --nav-lang-bg: #f7f6f1; --nav-lang-text: #1d2742;
  --nav-lang-active-bg: #2549a8; --nav-lang-active-text: #ffffff;
  --nav-badge-bg: #d9473b; --nav-badge-text: #ffffff;
  --nav-select-bg: #ffffff; --nav-select-text: #1d2742; --nav-select-border: #d8dde8;
  --nav-focus-ring: #2549a8;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BANNERUL HERO — proporții, imagine și buton principal (F3)
   ───────────────────────────────────────────────────────────────────────────
   Tot NElayerizat, din același motiv ca blocul de navigare de mai sus.
   Ce rezolvă:
   · după scoaterea numelui și a descrierii temei, hero-ul rămânea un bloc de
     550–750 px cu un titlu uriaș și un buton minuscul — acum înălțimea e
     ~300–360 px pe desktop și ~190–220 px de imagine pe mobil, echilibrat;
   · fotografiile de produs se așezau ca un dreptunghi alb brut peste fundal —
     acum stau într-o ramă rotunjită, cu `object-fit:contain` și
     `object-position:center`, deci nu se taie și nu se întind (produsele sunt
     fotografiate pe fundal alb: `cover` le-ar reteza marginile farfuriilor);
   · butonul „Toate produsele" e acum buton principal real: min 48 px înălțime
     și 220 px lățime pe desktop, 44 px și lățime completă pe mobil.
   ═══════════════════════════════════════════════════════════════════════════ */

body[data-theme] .seasonal-hero,
body[data-theme] .event-hero {
  min-height: 320px;
  align-items: center;
  gap: clamp(20px, 3vw, 40px);
  padding: clamp(22px, 3.2vw, 40px);
  border-radius: var(--hero-radius, 20px);
}
body[data-theme] .seasonal-hero-copy,
body[data-theme] .event-hero-copy {
  display: grid;
  justify-items: start;
  align-content: center;
  gap: 18px;
  min-width: 0;
}
body[data-theme] .seasonal-hero h2,
body[data-theme] .event-hero h2 {
  margin: 0;
  max-width: 14ch;
  font-size: clamp(32px, 4.4vw, 60px);
  line-height: .98;
}
/* Butonul principal: ținta de atingere recomandată, nu o pastilă de 34 px. */
body[data-theme] .seasonal-cta,
body[data-theme] .event-cta {
  box-sizing: border-box;
  width: auto;
  min-width: 220px;
  min-height: 48px;
  margin: 0;
  padding: 0 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: var(--hero-cta-radius, 999px);
  background: var(--hero-cta-bg, var(--season-primary, var(--event-primary, var(--color-focus))));
  color: var(--hero-cta-text, #ffffff);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .01em;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
  transition: filter .15s ease, transform .1s ease, box-shadow .15s ease;
}
body[data-theme] .seasonal-cta:hover,
body[data-theme] .event-cta:hover { filter: brightness(.93); box-shadow: 0 12px 28px rgba(15,23,42,.24); }
body[data-theme] .seasonal-cta:active,
body[data-theme] .event-cta:active { transform: translateY(1px); box-shadow: 0 6px 16px rgba(15,23,42,.2); }
body[data-theme] .seasonal-cta:focus-visible,
body[data-theme] .event-cta:focus-visible { outline: 3px solid var(--hero-cta-bg, #0b63b6); outline-offset: 3px; }
/* Eventuale butoane secundare lângă cel principal: aceeași înălțime, spațiu clar. */
body[data-theme] .seasonal-hero-copy .secondary-action,
body[data-theme] .event-hero-copy .secondary-action {
  box-sizing: border-box;
  min-height: 48px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  border-radius: var(--hero-cta-radius, 999px);
}

/* Media: ramă rotunjită, imagine centrată, fără tăiere și fără întindere. */
body[data-theme] .seasonal-hero-media,
body[data-theme] .event-hero-media {
  position: relative;
  min-height: 0;
  height: clamp(240px, 26vw, 300px);
  display: grid;
  place-items: center;
}
body[data-theme] .seasonal-hero-media img,
body[data-theme] .event-hero-media img {
  object-fit: contain;
  object-position: center center;
  image-rendering: auto;
}
body[data-theme] .hero-main-product,
body[data-theme] .event-product-1 {
  width: auto;
  max-width: min(76%, 360px);
  height: 100%;
  max-height: clamp(220px, 24vw, 280px);
  padding: 10px;
  border-radius: var(--hero-media-radius, 18px);
  background: var(--hero-media-surface, rgba(255,255,255,.94));
  box-shadow: 0 18px 34px rgba(15, 23, 42, .18);
}
body[data-theme] .hero-side-product,
body[data-theme] .event-product-2,
body[data-theme] .event-product-3,
body[data-theme] .event-product-4 {
  position: absolute;
  width: 30%;
  min-width: 92px;
  max-width: 132px;
  height: auto;
  max-height: 132px;
  padding: 8px;
  border-radius: var(--hero-media-radius, 18px);
  background: var(--hero-media-surface, rgba(255,255,255,.94));
  box-shadow: 0 12px 24px rgba(15, 23, 42, .16);
}
body[data-theme] .hero-side-one { left: 0; top: 2%; }
body[data-theme] .hero-side-two { right: 0; bottom: 2%; }

@media (max-width: 700px) {
  body[data-theme] .seasonal-hero,
  body[data-theme] .event-hero {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 18px 16px 20px;
  }
  body[data-theme] .seasonal-hero h2,
  body[data-theme] .event-hero h2 { font-size: clamp(30px, 9vw, 42px); max-width: none; }
  body[data-theme] .seasonal-hero-copy,
  body[data-theme] .event-hero-copy { justify-items: stretch; gap: 14px; }
  body[data-theme] .seasonal-cta,
  body[data-theme] .event-cta { width: 100%; min-width: 0; min-height: 44px; font-size: 15px; }
  body[data-theme] .seasonal-hero-media,
  body[data-theme] .event-hero-media { height: clamp(180px, 52vw, 220px); }
  body[data-theme] .hero-main-product,
  body[data-theme] .event-product-1 { max-width: 62%; max-height: 100%; }
  body[data-theme] .hero-side-product,
  body[data-theme] .event-product-2,
  body[data-theme] .event-product-3,
  body[data-theme] .event-product-4 { width: 26%; min-width: 74px; max-width: 96px; max-height: 96px; }
}

/* Butonul principal, pe fiecare temă (contrast ≥ 4.5:1 pe fundalul hero-ului) */
body[data-theme="season_spring_porcelain_garden"] { --hero-cta-bg:#2f6b4f; --hero-cta-text:#ffffff; --hero-cta-radius:999px; --hero-radius:28px; --hero-media-radius:22px; }
body[data-theme="season_summer_azure_riviera"]    { --hero-cta-bg:#e6a817; --hero-cta-text:#102a3a; --hero-cta-radius:8px;   --hero-radius:0;    --hero-media-radius:10px; }
body[data-theme="season_autumn_clay_atelier"]     { --hero-cta-bg:#8b3f27; --hero-cta-text:#fff8ee; --hero-cta-radius:4px;   --hero-radius:12px; --hero-media-radius:6px; }
body[data-theme="season_winter_crystal_nocturne"] { --hero-cta-bg:#b89a5e; --hero-cta-text:#101827; --hero-cta-radius:2px;   --hero-radius:8px;  --hero-media-radius:4px; --hero-media-surface:#f5f8fa; }
body[data-theme="event_new_year_midnight_gala"]   { --hero-cta-bg:#d7be8a; --hero-cta-text:#111827; --hero-cta-radius:999px; --hero-radius:18px; --hero-media-radius:999px; }
body[data-theme="event_christmas_winter_story"]   { --hero-cta-bg:#c19745; --hero-cta-text:#22180f; --hero-cta-radius:10px;  --hero-radius:16px; --hero-media-radius:12px; }
body[data-theme="event_easter_pastel_atelier"]    { --hero-cta-bg:#315849; --hero-cta-text:#ffffff; --hero-cta-radius:999px; --hero-radius:24px; --hero-media-radius:999px; }
body[data-theme="event_black_friday_impact"]      { --hero-cta-bg:#ffd400; --hero-cta-text:#080808; --hero-cta-radius:0;     --hero-radius:0;    --hero-media-radius:0; }
body[data-theme="event_halloween_pumpkin_night"]  { --hero-cta-bg:#e8741c; --hero-cta-text:#1a1206; --hero-cta-radius:999px; --hero-radius:18px; --hero-media-radius:999px; }
body[data-theme="event_back_to_school_notebook"]  { --hero-cta-bg:#2549a8; --hero-cta-text:#ffffff; --hero-cta-radius:6px;   --hero-radius:6px;  --hero-media-radius:6px; }

/* Gala: hero-ul era pe o singură coloană centrată, deci stiva titlu+imagini
   ajungea la ~550 px. Îl aducem la aceleași proporții ca restul temelor;
   identitatea rămâne în tipografia aurie și în pastilele din antet. */
body[data-theme="event_new_year_midnight_gala"] .event-hero {
  grid-template-columns: minmax(0, .9fr) minmax(300px, 1.1fr);
  text-align: left;
}
body[data-theme="event_new_year_midnight_gala"] .event-hero-media { min-height: 0; }
@media (max-width: 700px) {
  body[data-theme="event_new_year_midnight_gala"] .event-hero { grid-template-columns: 1fr; }
}

/* Strat subtil de contrast pentru textul hero de pe fundalurile cu gradient:
   pe Vară și Black Friday gradientul are o zonă galbenă, iar la lățimi
   intermediare titlul alb se poate apropia de ea. Umbra e discretă (nu se vede
   ca efect), dar ține raportul de contrast peste 4.5:1 în orice punct. */
body[data-theme] .seasonal-hero h2,
body[data-theme] .event-hero h2,
body[data-theme] .seasonal-hero-copy p,
body[data-theme] .event-hero-copy p { text-shadow: var(--hero-copy-shadow, none); }
body[data-theme="season_summer_azure_riviera"]    { --hero-copy-shadow: 0 1px 3px rgba(8,38,56,.55); }
body[data-theme="season_winter_crystal_nocturne"] { --hero-copy-shadow: 0 1px 3px rgba(2,6,23,.55); }
body[data-theme="event_new_year_midnight_gala"]   { --hero-copy-shadow: 0 1px 3px rgba(2,6,23,.55); }
body[data-theme="event_black_friday_impact"]      { --hero-copy-shadow: 0 1px 3px rgba(0,0,0,.75); }
body[data-theme="event_halloween_pumpkin_night"]  { --hero-copy-shadow: 0 1px 3px rgba(17,11,25,.6); }

/* Temele cu majuscule au eticheta cea mai lungă („AUTENTIFICARE") lipită de
   marginile butonului la 390 px — un punct mai jos o lasă să respire. */
body[data-theme="season_autumn_clay_atelier"],
body[data-theme="event_new_year_midnight_gala"],
body[data-theme="event_black_friday_impact"] { --nav-actions-size-mobile: 10px; }

/* ═══════════════════════════════════════════════════════════════════════════
   FIȘA PRODUSULUI — rândul Cantitate · Adaugă în coș · Favorite (F4)
   ───────────────────────────────────────────────────────────────────────────
   Un singur rând, aceeași înălțime (46 px) pentru câmp și butoane, centrate vertical.
   „Adaugă în coș" ia tot spațiul rămas. Container query pe rând (nu pe viewport): dacă
   coloana din dreapta e prea îngustă ca să încapă toate trei, Cantitate + Favorite rămân
   sus, iar „Adaugă în coș" coboară dedesubt, pe toată lățimea — fără scroll orizontal. */
.product-detail .product-detail-actions {
  container-type:inline-size;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.product-detail .product-detail-actions > .qty-field {
  order:1;
  flex:0 0 auto;
  box-sizing:border-box;
  height:46px;
  gap:8px;
  font-size:12px;
}
.product-detail .product-detail-actions > .qty-field input { box-sizing:border-box; height:46px; min-height:46px; width:68px; font-size:15px; font-weight:800; }
.product-detail .product-detail-actions > [data-add-cart] {
  order:2;
  flex:1 1 160px;
  box-sizing:border-box;
  min-width:0;
  height:46px;
  min-height:46px;
  padding:0 18px;
  font-size:15px;
  font-weight:900;
}
.product-detail .product-detail-actions > [data-toggle-favorite] {
  order:3;
  flex:0 0 auto;
  box-sizing:border-box;
  width:auto;
  height:46px;
  min-height:46px;
  padding:0 14px;
  gap:6px;
  grid-column:auto;
  white-space:nowrap;
}
.fav-heart { display:inline-block; font-size:18px; line-height:1; }
.fav-heart::before { content:"\2661"; }
[data-toggle-favorite].is-active .fav-heart::before { content:"\2665"; }
[data-toggle-favorite].is-popping .fav-heart { animation:favorite-pop .28s ease; }
@media (prefers-reduced-motion: reduce) { [data-toggle-favorite].is-popping .fav-heart { animation:none; } }
@container (max-width: 440px) {
  .product-detail .product-detail-actions > [data-toggle-favorite] { order:2; margin-left:auto; }
  .product-detail .product-detail-actions > [data-add-cart] { order:3; flex:1 1 100%; }
}


/* ═══ Flux card v2 — ecranul de așteptare a plății (F4) ═══════════════════════ */
.payment-wait { display:grid; gap:8px; padding:14px 16px; border:1px solid var(--color-focus); border-radius:8px; background:color-mix(in srgb, var(--color-focus) 6%, var(--color-surface)); min-width:0; }
.payment-wait[hidden], .payment-wait [hidden] { display:none !important; }
.payment-wait__title { margin:0; font-size:17px; line-height:1.3; color:var(--color-strong); overflow-wrap:anywhere; }
.payment-wait__text { margin:0; font-size:13px; line-height:1.5; color:var(--color-text); }
.payment-wait__blocked { margin:0; padding:8px 10px; border-radius:5px; background:#fff8e8; border:1px solid #e8b95a; color:#7a4b00; font-size:13px; font-weight:800; }
.payment-wait__status { display:flex; align-items:center; gap:8px; margin:0; font-size:13px; font-weight:800; color:var(--color-focus); }
.payment-wait__spinner { width:14px; height:14px; flex:0 0 14px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:payment-spin .8s linear infinite; }
.payment-wait.is-stopped .payment-wait__spinner { display:none; }
.payment-wait.is-stopped .payment-wait__status { color:var(--color-text); }
@keyframes payment-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .payment-wait__spinner { animation:none; } }
.order-payment .shop-actions .primary-action, .order-card > .shop-actions .primary-action { min-width:180px; }
@media (max-width:560px) { .order-payment .shop-actions > * { width:100%; } }
.order-payment [data-payment-note]:empty { display:none; }
.order-status[data-status="pending_payment"] { background:#fff4e0; color:#9a5b00; }
/* Etichete de status derivate de server pentru cardul plătit (B7): „Confirmată",
   „Plată confirmată", „Comandă confirmată" — verzi, ca o stare bună, nu portocalii. */
.order-status[data-status="confirmed"],
.order-status[data-status="payment_confirmed"],
.order-status[data-status="order_confirmed"] { background:color-mix(in srgb, var(--color-success, #15803d) 12%, var(--color-surface, #fff)); color:var(--color-success, #186a3b); }

/* ═══ Livrare / urmărire colet — Sameday (F4) ═══════════════════════════════ */
.order-shipment { display:grid; gap:10px; min-width:0; padding:12px 14px; border:1px solid var(--color-border); border-radius:6px; background:var(--color-surface-alt, #f6f7f9); }
.order-shipment[hidden] { display:none !important; }
.order-shipment h2 { margin:0; font-size:15px; color:var(--color-strong); }
.order-shipment h3 { margin:4px 0 0; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--color-muted); }
.order-shipment__pending { margin:0; font-size:13px; color:var(--color-subtle); font-weight:700; }
.order-shipment__facts { display:flex; flex-wrap:wrap; gap:10px 24px; margin:0; font-size:13px; }
.order-shipment__facts > div { min-width:0; }
.order-shipment__facts dt { font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:var(--color-muted); }
.order-shipment__facts dd { margin:2px 0 0; display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-weight:800; color:var(--color-text); }
.order-shipment__awb { font:800 14px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing:.03em; padding:4px 8px; border-radius:4px; background:var(--color-surface, #fff); border:1px solid var(--color-border); user-select:all; overflow-wrap:anywhere; }
.order-shipment .order-shipment__copy { width:auto; min-height:30px; padding:0 10px; font-size:12px; }
.order-shipment .order-shipment__track { justify-self:start; width:auto; min-height:40px; padding:0 18px; text-decoration:none; }
.order-shipment__status, .order-summary-card__ship .order-shipment__status { display:inline-block; padding:2px 9px; border-radius:999px; background:var(--color-blue-tint, #eef4ff); color:var(--color-focus); font-size:11px; font-weight:900; }
.order-shipment__status[data-tone="ok"] { background:color-mix(in srgb, var(--color-success, #15803d) 12%, var(--color-surface, #fff)); color:var(--color-success, #15803d); }
.order-shipment__status[data-tone="bad"] { background:#fdeaea; color:var(--color-danger, #a12020); }
.order-shipment__timeline { list-style:none; margin:0; padding:0 0 0 14px; border-left:2px solid var(--color-border); display:grid; gap:8px; font-size:12px; }
.order-shipment__event { position:relative; display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; min-width:0; }
.order-shipment__event::before { content:""; position:absolute; left:-20px; top:4px; width:10px; height:10px; border-radius:50%; background:var(--color-border); border:2px solid var(--color-surface, #fff); }
.order-shipment__event.is-latest::before { background:var(--color-focus); }
.order-shipment__event.is-latest span { font-weight:900; color:var(--color-strong); }
.order-shipment__event time { color:var(--color-subtle); font-weight:800; white-space:nowrap; }
.order-shipment__event span { overflow-wrap:anywhere; }
.order-shipment__event[data-tone="ok"]::before { background:var(--color-success, #15803d); }
.order-shipment__event[data-tone="ok"] span { color:var(--color-success, #15803d); font-weight:900; }
.order-shipment__event[data-tone="bad"]::before { background:var(--color-danger, #a12020); }
.order-shipment__event[data-tone="bad"] span { color:var(--color-danger, #a12020); font-weight:900; }
.order-summary-card__ship { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px 12px; align-items:center; padding-top:8px; border-top:1px dashed var(--color-border); font-size:12px; font-weight:800; color:var(--color-text); min-width:0; }
.order-summary-card__ship code { font:800 12px ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap:anywhere; }
.order-summary-card__ship.is-pending { color:var(--color-subtle); font-weight:700; }
@media (max-width:560px) { .order-shipment .order-shipment__track { width:100%; justify-self:stretch; } }

/* ═══ Timeout / eșec plată card — card roșu pe toată lățimea (F4) ═══════════ */
.payment-failed { box-sizing:border-box; width:100%; max-width:100%; min-width:0; display:grid; gap:10px; padding:16px 18px; border:2px solid var(--color-danger, #b42318); border-radius:8px; background:#fef2f2; color:#7f1d1d; }
.payment-failed[hidden] { display:none !important; }
.payment-failed__title { margin:0; font-size:19px; line-height:1.25; color:var(--color-danger, #b42318); overflow-wrap:anywhere; }
.payment-failed__text { margin:0; font-size:14px; line-height:1.5; font-weight:700; color:#7f1d1d; }
.payment-failed .shop-actions { margin-top:2px; }
@media (max-width:560px) { .payment-failed .shop-actions > * { width:100%; } }

/* ═══ Cronometrul plății cu cardul — banner sus, bine vizibil (F4) ══════════ */
.pay-timer { --pt:var(--color-focus, #1d4ed8); box-sizing:border-box; width:100%; min-width:0; display:grid; gap:8px; justify-items:center; text-align:center; padding:16px 18px; border:2px solid var(--pt); border-radius:10px; background:color-mix(in srgb, var(--pt) 7%, var(--color-surface, #fff)); }
.pay-timer[hidden] { display:none !important; }
.pay-timer__text { margin:0; font-size:15px; line-height:1.4; font-weight:800; color:var(--color-strong, #111); overflow-wrap:anywhere; }
.pay-timer__clock { font:900 44px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing:.04em; color:var(--pt); font-variant-numeric:tabular-nums; }
.pay-timer__bar { width:100%; height:10px; border-radius:999px; background:color-mix(in srgb, var(--pt) 16%, var(--color-surface, #fff)); overflow:hidden; }
.pay-timer__bar > span { display:block; height:100%; width:100%; border-radius:inherit; background:var(--pt); transition:width 1s linear, background-color .3s ease; }
.pay-timer[data-level="warn"] { --pt:#d97706; }
.pay-timer[data-level="danger"] { --pt:var(--color-danger, #b42318); }
.pay-timer[data-level="danger"] .pay-timer__clock { animation:pay-timer-pulse 1s ease-in-out infinite; }
@keyframes pay-timer-pulse { 50% { opacity:.55; } }
@media (prefers-reduced-motion: reduce) { .pay-timer__bar > span { transition:none; } .pay-timer[data-level="danger"] .pay-timer__clock { animation:none; } }
@media (max-width:560px) { .pay-timer__clock { font-size:38px; } .pay-timer__text { font-size:14px; } }

/* ═══ Telefon cu prefix de țară (phone.js, F4) ══════════════════════════════ */
.phone-intl { position:relative; display:flex; align-items:stretch; gap:6px; width:100%; min-width:0; }
.phone-intl .phone-intl__number { flex:1 1 auto; min-width:0; width:auto; }
.phone-intl__button, .phone-intl__select { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 10px; border:1px solid var(--color-panel-border, var(--color-border)); border-radius:6px; background:var(--color-surface, #fff); color:var(--color-text); font:inherit; font-size:14px; font-weight:800; cursor:pointer; white-space:nowrap; }
.phone-intl__select { max-width:9.5em; padding-right:4px; }
.phone-intl__button::after { content:""; width:0; height:0; margin-left:2px; border:4px solid transparent; border-top-color:currentColor; transform:translateY(2px); }
.phone-intl__button:focus-visible, .phone-intl__select:focus-visible { outline:2px solid var(--color-focus); outline-offset:2px; }
.phone-intl__flag { font-size:18px; line-height:1; }
.phone-intl__pop { position:absolute; z-index:60; top:calc(100% + 4px); left:0; width:min(320px, 100%); max-width:calc(100vw - 32px); padding:6px; border:1px solid var(--color-border); border-radius:8px; background:var(--color-surface, #fff); box-shadow:0 12px 28px rgba(15,23,42,.18); }
.phone-intl__pop[hidden] { display:none !important; }
.phone-intl__search { box-sizing:border-box; width:100%; min-height:36px; padding:0 10px; border:1px solid var(--color-border); border-radius:6px; font:inherit; font-size:14px; }
.phone-intl__list { list-style:none; margin:6px 0 0; padding:0; max-height:240px; overflow:auto; }
.phone-intl__option { display:grid; grid-template-columns:24px 1fr auto; gap:8px; align-items:center; padding:7px 8px; border-radius:5px; font-size:14px; cursor:pointer; color:var(--color-text); }
.phone-intl__option.is-active, .phone-intl__option:hover { background:var(--color-blue-tint, #eef4ff); }
.phone-intl__option[aria-selected="true"] .phone-intl__name { font-weight:900; }
.phone-intl__dial { color:var(--color-subtle); font-weight:800; font-variant-numeric:tabular-nums; }
.phone-intl__error { display:block; margin-top:4px; font-size:12px; font-style:normal; font-weight:700; color:var(--color-danger, #b42318); }
.phone-intl__error:empty { display:none; }
.phone-intl .phone-intl__number[aria-invalid="true"] { border-color:var(--color-danger, #b42318); }

/* Comandă adăugată în contul existent (fără autologin) — F4 */
.order-account-existing { display:grid; gap:10px; padding:14px 16px; border:1px solid var(--color-focus); border-radius:8px; background:color-mix(in srgb, var(--color-focus) 7%, var(--color-surface, #fff)); min-width:0; }
.order-account-existing[hidden] { display:none !important; }
.order-account-existing p { margin:0; font-size:14px; line-height:1.5; font-weight:800; color:var(--color-strong); overflow-wrap:anywhere; }
@media (max-width:560px) { .order-account-existing .shop-actions > * { width:100%; } }

/* ── Reducere progresivă pe coș (F4, 22.09) ─────────────────────────────────
   Bara apare DOAR când /api/cart întoarce `promotion` (campanie activă pe server).
   Culorile vin din tokeni, deci urmează tema. */
.promo-bar { position:relative; display:grid; gap:8px; padding:12px 14px; border:1px solid var(--color-focus); border-radius:8px; background:color-mix(in srgb, var(--color-focus) 7%, var(--color-surface)); color:var(--color-text); }
.promo-bar[hidden] { display:none !important; }
.promo-bar--drawer { margin:0 0 12px; }
.promo-bar__text { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; font-size:13px; line-height:1.35; }
.promo-bar__text strong { font-weight:800; }
.promo-bar__text span { color:var(--color-subtle); font-weight:700; }
.promo-bar__track { position:relative; height:8px; margin:14px 10px 18px; border-radius:999px; background:color-mix(in srgb, var(--color-focus) 16%, var(--color-surface)); }
.promo-bar__fill { position:absolute; inset:0; border-radius:inherit; background:var(--color-focus); transform-origin:0 50%; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.promo-bar__step { position:absolute; top:50%; width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:50%; background:var(--color-surface); border:2px solid color-mix(in srgb, var(--color-focus) 45%, var(--color-surface)); transition:background .3s, border-color .3s, transform .3s; }
.promo-bar__step.is-reached { background:var(--color-focus); border-color:var(--color-focus); transform:scale(1.15); }
.promo-bar__step i { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); font-style:normal; font-size:11px; font-weight:900; white-space:nowrap; color:var(--color-text); }
.promo-bar__step b { position:absolute; top:16px; left:50%; transform:translateX(-50%); font-size:10px; font-weight:700; color:var(--color-subtle); white-space:nowrap; }
.promo-bar--sticky { position:fixed; z-index:85; right:16px; bottom:16px; width:min(380px, calc(100vw - 32px)); box-shadow:var(--shadow-card); }
.cart-discount span, .cart-discount strong { color:var(--color-success, #15803d); font-weight:800; }
.cart-line__promo-note { display:block; font-size:11px; color:var(--color-subtle); }
.summary-discount dt, .summary-discount dd { color:var(--color-success, #15803d); font-weight:800; }
body.has-modal .promo-bar--sticky, body:has(.commerce-panel:not([hidden])) .promo-bar--sticky { display:none; }
@media (max-width:900px) {
  .promo-bar--sticky { left:0; right:0; bottom:0; width:auto; border-radius:0; border-width:1px 0 0; }
  body.has-promo-bar { padding-bottom:96px; }
}
/* Scânteia la atingerea unei trepte (scurtă; deloc la mișcare redusă). */
@media (prefers-reduced-motion: no-preference) {
  .promo-bar.is-celebrating::before, .promo-bar.is-celebrating::after { content:""; position:absolute; top:50%; left:50%; width:8px; height:8px; margin:-4px; border-radius:50%; pointer-events:none;
    box-shadow: 0 -34px 0 0 var(--color-focus), 30px -18px 0 0 var(--accent, #f59e0b), 34px 10px 0 0 var(--color-focus), 14px 30px 0 0 var(--accent, #f59e0b), -16px 30px 0 0 var(--color-focus), -34px 8px 0 0 var(--accent, #f59e0b), -28px -22px 0 0 var(--color-focus);
    animation: promo-spark .9s ease-out forwards; }
  .promo-bar.is-celebrating::after { rotate:25deg; animation-delay:.08s; }
  .promo-bar.is-celebrating { animation: promo-pulse .9s ease-out; }
}
@keyframes promo-spark { 0% { opacity:1; transform:scale(.2); } 100% { opacity:0; transform:scale(1.6); } }
@keyframes promo-pulse { 0% { box-shadow:0 0 0 0 color-mix(in srgb, var(--color-focus) 50%, transparent); } 100% { box-shadow:0 0 0 18px transparent; } }

/* ── Checkout: opțiuni de livrare v2 + alegerea lockerului (F4) ───────────── */
.delivery-option { display: inline-grid; gap: 2px; }
.delivery-option__meta { font-size: 12px; color: var(--color-subtle); font-weight: 700; }
.locker-picker { display: grid; gap: 10px; }
.locker-picker__search input { width: 100%; }
.locker-list { list-style: none; margin: 0; padding: 0; max-height: 280px; overflow: auto; display: grid; gap: 6px; border: 1px solid var(--color-border); border-radius: 6px; }
.locker-list__item { margin: 0; }
.locker-list__pick { width: 100%; display: grid; gap: 2px; text-align: left; padding: 8px 10px; border: 0; border-bottom: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text); font: inherit; cursor: pointer; }
.locker-list__pick:hover, .locker-list__pick:focus-visible { background: var(--color-blue-tint); }
.locker-list__pick span { font-size: 12px; color: var(--color-subtle); }
.locker-list__empty { padding: 10px; font-size: 13px; color: var(--color-subtle); }
.locker-picker__chosen { display: grid; gap: 4px; padding: 10px; border: 1px solid var(--color-focus); border-radius: 6px; background: color-mix(in srgb, var(--color-focus) 6%, var(--color-surface)); }
.locker-picker__chosen span { font-size: 12px; color: var(--color-subtle); }
.locker-picker__chosen .secondary-action { justify-self: start; width: auto; padding: 0 12px; }
.summary-delivery dd { font-weight: 700; }

.consent-row[hidden], .shop-fieldset[hidden], .choice-group[hidden] { display: none !important; }
/* `.primary-action` are `display` pe clasă, care bate `[hidden]`: butonul de trimitere
   al checkout-ului e ascuns până la bifarea termenilor (shop.js → refreshSubmitState). */
.shop-actions [data-checkout-submit][hidden] { display:none !important; }

/* Saltul nativ la #products (link cu ancora) se opreste sub antetul lipit. */
#products { scroll-margin-top:var(--header-h, 68px); }

/* ── Oferte legate de temă + reduceri clasice (card, PDP, coș, checkout, banner) ──
   O singură componentă: `.offer-badge` (colțul imaginii / lângă preț / pe linia de coș),
   `.price-old` (prețul de dinainte, tăiat) și `.price-new` (prețul plătit). Culorile vin
   din tokenii temei: marketplace_pro → `--price`; temele de sezon/eveniment → `--s-primary`
   cu `--s-on-primary` (perechea cu contrast garantat de temă). */
:root { --offer-bg: var(--price, var(--color-danger)); --offer-ink: #fff; }
body:is([data-theme^="season_"], [data-theme^="event_"]) {
  --offer-bg: var(--s-primary, var(--event-primary, var(--primary, var(--color-danger))));
  --offer-ink: var(--s-on-primary, var(--event-text-dark, #fff));
}
.offer-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--offer-bg);
  color: var(--offer-ink);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-shadow: 0 2px 6px rgba(15, 23, 42, .16);
}
.product-card .product-image { position: relative; }
.product-card .product-image .offer-badge {
  position: absolute;
  z-index: 2;
  top: 8px;
  left: 8px;
  max-width: calc(100% - 16px);
  pointer-events: none;
}
.offer-badge--pdp { margin: 4px 0 -4px; font-size: 13px; padding: 4px 10px; }
.offer-badge--sm { font-size: 10px; padding: 2px 7px; box-shadow: none; }
.price-old {
  color: var(--color-muted);
  font-size: .72em;
  font-weight: 700;
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
}
.price-new { color: var(--price); font-weight: 900; }
.product-price.is-discounted, .price.is-discounted { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; }
.product-price.is-discounted .vat-note, .price.is-discounted .vat-note { flex-basis: 100%; }
/* Coș / favorite: `.cart-line span` e bloc roșu — badge-ul și prețul vechi își păstrează forma. */
.cart-line .offer-badge { display: inline-flex; margin-top: 3px; color: var(--offer-ink); font-size: 10px; font-weight: 800; }
.cart-line .cart-line__price .price-old { font-size: 11px; margin-right: 2px; }
/* Sumarul de checkout: badge sub nume, prețul vechi al liniei deasupra totalului. */
.summary-line__name .offer-badge { display: flex; margin-top: 3px; }
.summary-line__total .price-old { display: block; font-size: 10px; text-align: right; }
/* Bannerul „Oferte active" din zona de produse — discret, în culorile temei. */
.offer-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  padding: 8px 12px;
  border: 1px solid color-mix(in srgb, var(--offer-bg) 35%, transparent);
  border-radius: max(var(--s-radius, 6px), 4px);
  background: color-mix(in srgb, var(--offer-bg) 8%, var(--color-surface, #fff));
  color: var(--color-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}
.offer-banner[hidden] { display: none; }
.offer-banner__dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--offer-bg); }
.offer-banner__text { min-width: 0; }
