/*
Theme Name: Plast3D
Author: Aditum d.o.o.
Description: Blok tema za spletno trgovino tiskarske farme — "tehnična risba" estetika: blueprint mreža, kotirne črte, mono številke, signalna oranžna na papirnato beli podlagi. WooCommerce-ready.
Version: 1.0.0
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: plast3d
Tags: block-theme, e-commerce, one-column, custom-colors, editor-style
*/

/* ============================================================
   PLAST3D · "PRECIZNO" — production block theme CSS
   Adapted from designs/design-1-precision (review-fixed prototype).
   Selectors target block markup (.wp-block-*, .wc-block-*) plus
   theme classes prefixed p3d-.
   ============================================================ */

/* ---------- token bridge: theme.json presets → short vars ---------- */
:root {
  --paper: var(--wp--preset--color--base, #F5F4EF);
  --paper-2: var(--wp--preset--color--base-2, #FDFDFA);
  --card: var(--wp--preset--color--card, #FFFFFF);
  --ink: var(--wp--preset--color--contrast, #15181D);
  --ink-2: var(--wp--preset--color--contrast-2, #484E58);
  --ink-3: var(--wp--preset--color--contrast-3, #5C636E);
  --line: var(--wp--preset--color--line, #C9CBC4);
  --line-soft: var(--wp--preset--color--line-soft, #DFE0DA);
  --line-strong: var(--wp--preset--color--line-strong, #80858E);
  --blue: var(--wp--preset--color--blue, #2B4C9B);
  --acc: var(--wp--preset--color--accent, #E8490F);
  --acc-text: var(--wp--preset--color--accent-text, #B33A00);
  --acc-fill: var(--wp--preset--color--accent-fill, #BC3D03);
  --ok: var(--wp--preset--color--ok, #1E7A3C);
  --warn: var(--wp--preset--color--warn, #A66A00);
  --grid: var(--wp--custom--grid-minor, rgba(43, 76, 155, .09));
  --grid-major: var(--wp--custom--grid-major, rgba(43, 76, 155, .16));
  --blue-soft: var(--wp--custom--blue-soft, rgba(43, 76, 155, .10));
  --acc-soft: var(--wp--custom--accent-soft, rgba(232, 73, 15, .09));
  --mono: var(--wp--preset--font-family--mono, Consolas, monospace);
  --grot: var(--wp--preset--font-family--grot, "Segoe UI", Arial, sans-serif);
  --radius: var(--wp--custom--radius, 2px);
  --shadow-card: var(--wp--custom--shadow-card, 6px 6px 0 rgba(43, 76, 155, .10));
  --maxw: 1200px;
}

/* ---------- base sheet ---------- */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
body {
  /* blueprint grid: major 120 px + minor 24 px */
  background-image:
    linear-gradient(var(--grid-major) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-major) 1px, transparent 1px),
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--acc-fill); color: #fff; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--acc);
  outline-offset: 2px;
  border-radius: 1px;
}
img, svg { max-width: 100%; height: auto; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- utilities ---------- */
.p3d-wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
@media (max-width: 640px) { .p3d-wrap { padding: 0 16px; } }
.p3d-mono { font-family: var(--mono); }

/* neutralise core flow-layout blockGap margins inside theme flex/grid
   containers and cards — they manage their own spacing */
.p3d-sec-tag > *, .p3d-hero-grid > *, .p3d-quote-grid > *, .p3d-lib-grid > *,
.p3d-kont-grid > *, .p3d-mats > *, .p3d-b2b-grid > *, .p3d-nav-in > *,
.p3d-logo > *, .p3d-tblock > *, .p3d-foot-bar-in > *, .p3d-b2b-cta > *,
.p3d-mat-eng > *, .p3d-ctas > * {
  margin-block-start: 0 !important;
}
.p3d-mat-card > * + *, .p3d-b2b-card > * + *, .p3d-tb > * + *,
.p3d-panel-body > * + *, .p3d-kont-card > * + *, .p3d-post-card > * + *,
.p3d-faq > * + *, .p3d-dropzone > * + * {
  margin-block-start: 0 !important;
}
/* section heading rhythm (prototype: h2 + 14px) */
.p3d-wrap > h2.wp-block-heading { margin-bottom: 14px; }

/* crosshair registration marks */
.p3d-xhair { position: relative; }
.p3d-xhair::before, .p3d-xhair::after {
  content: "";
  position: absolute;
  width: 15px; height: 15px;
  pointer-events: none;
  background:
    linear-gradient(var(--blue), var(--blue)) center/1px 15px no-repeat,
    linear-gradient(var(--blue), var(--blue)) center/15px 1px no-repeat;
  opacity: .55;
  z-index: 1;
}
.p3d-xhair::before { top: -8px; left: -8px; }
.p3d-xhair::after { bottom: -8px; right: -8px; }

/* "kmalu" chip — honest placeholder for unlaunched subpages */
.p3d-soonchip {
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .1em;
  border: 1px solid currentColor;
  padding: 1px 6px;
  margin-left: 10px;
  vertical-align: 2px;
  white-space: nowrap;
}

/* ---------- buttons (core blocks + Woo components + classic Woo) ---------- */
.wp-block-button__link,
.wc-block-components-button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: .85rem;
  font-weight: 400;
  letter-spacing: .04em;
  padding: 13px 22px;
  border: 1px solid var(--acc-fill);
  background: var(--acc-fill);
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  border-radius: var(--radius);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.wp-block-button__link:hover,
.wc-block-components-button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 0 rgba(21, 24, 29, .14);
}
/* ghost / outline variant */
.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--ink);
}
.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
/* disabled/"kmalu" pseudo-buttons rendered as spans */
.p3d-btn-disabled {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: .85rem;
  letter-spacing: .04em;
  padding: 13px 22px;
  border: 1px solid var(--ink);
  color: var(--ink);
  background: transparent;
  border-radius: var(--radius);
  opacity: .55;
  cursor: default;
}

/* ---------- section scaffolding ---------- */
.p3d-section {
  border-top: 1px solid var(--line);
  padding: 88px 0;
  margin-block-start: 0 !important;
}
@media (max-width: 640px) { .p3d-section { padding: 60px 0; } }
.p3d-section--paper2 { background: var(--paper-2); }
.p3d-sec-tag {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 34px;
  flex-wrap: wrap;
}
.p3d-sec-tag > * { margin: 0; }
.p3d-no {
  font-family: var(--mono);
  font-size: .78rem;
  color: var(--acc-text);
  border: 1px solid currentColor;
  padding: 2px 8px;
  letter-spacing: .08em;
}
.p3d-lbl {
  font-family: var(--mono);
  font-size: .78rem;
  letter-spacing: .14em;
  color: var(--ink-3);
  text-transform: uppercase;
}
.p3d-rule { flex: 1; min-width: 60px; height: 1px; background: var(--line); align-self: center; }
h1, h2, h3 { text-wrap: balance; }
.p3d-lead { color: var(--ink-2); max-width: 62ch; }
.p3d-lead--gap { margin-bottom: 34px; }

/* dimension annotation */
.p3d-dim {
  display: inline-flex;
  align-items: center;
  font-family: var(--mono);
  font-size: .68rem;
  color: var(--blue);
  white-space: nowrap;
}
.p3d-dim::before, .p3d-dim::after { content: ""; height: 1px; width: 22px; background: var(--blue); }
.p3d-dim::before { margin-right: 6px; }
.p3d-dim::after { margin-left: 6px; }

/* ============ HEADER / NAV ============ */
header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 50;
}
.p3d-nav {
  background: rgba(245, 244, 239, .92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.p3d-nav-in {
  display: flex;
  align-items: center;
  gap: 22px;
  min-height: 64px;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 6px 24px;
  flex-wrap: nowrap;
}
@media (max-width: 640px) { .p3d-nav-in { padding: 6px 16px; gap: 12px; } }
.p3d-logo { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; }
.p3d-logo > * { margin: 0; }
.p3d-logo svg { display: block; flex: none; }
.p3d-tld {
  font-family: var(--mono);
  font-size: .62rem;
  color: var(--acc-text);
  border: 1px solid currentColor;
  padding: 1px 5px;
  letter-spacing: .1em;
  white-space: nowrap;
}
.p3d-nav .wp-block-navigation { margin-left: auto; }
.p3d-nav .wp-block-navigation .wp-block-navigation-item__content {
  font-family: var(--mono);
  font-size: .8rem;
  color: var(--ink-2);
  text-decoration: none;
  padding: 8px 12px;
  border-radius: var(--radius);
  transition: color .12s, background .12s;
}
.p3d-nav .wp-block-navigation .wp-block-navigation-item__content:hover {
  color: var(--ink);
  background: var(--blue-soft);
}
.p3d-nav .wp-block-navigation .p3d-nav-cta .wp-block-navigation-item__content {
  color: var(--acc-text);
  font-weight: 600;
}
.p3d-nav .wp-block-navigation__responsive-container-open,
.p3d-nav .wp-block-navigation__responsive-container-close {
  color: var(--ink);
}
.p3d-nav .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--paper-2);
}
/* mini-cart chip */
.p3d-nav .wc-block-mini-cart { margin-left: 0; }
.p3d-nav .wc-block-mini-cart__button {
  border: 1px solid var(--line-strong);
  padding: 8px 12px;
  border-radius: var(--radius);
  font-family: var(--mono);
  font-size: .8rem;
  color: var(--ink);
  transition: border-color .12s, background .12s;
}
.p3d-nav .wc-block-mini-cart__button:hover {
  border-color: var(--ink);
  background: var(--card);
  opacity: 1;
}
.p3d-nav .wc-block-mini-cart__badge {
  background: var(--acc-fill);
  color: #fff;
  border: none;
}

/* ============ HERO ============ */
.p3d-hero { border-top: none; padding: 72px 0 84px; }
.p3d-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 56px;
  align-items: center;
}
@media (max-width: 920px) { .p3d-hero-grid { grid-template-columns: 1fr; gap: 44px; } }
.p3d-hero-grid > * { margin: 0; }
.p3d-eyebrow {
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .16em;
  color: var(--ink-3);
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  flex-wrap: wrap;
}
.p3d-dotlive {
  display: inline-block;
  width: 7px; height: 7px;
  background: var(--ok);
  border-radius: 50%;
  animation: p3d-pulse 2s ease-in-out infinite;
}
@keyframes p3d-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.p3d-hero h1 { margin-bottom: 22px; }
.p3d-acc { color: var(--acc); }
.p3d-arrow { color: var(--acc); font-weight: 400; }
.p3d-hero .p3d-lead { font-size: 1.06rem; margin-bottom: 32px; }
.p3d-ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 36px; }
.p3d-hero-specs {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  border: 1px solid var(--line);
  background: var(--card);
}
.p3d-sp { flex: 1; min-width: 130px; padding: 14px 18px; border-right: 1px solid var(--line-soft); margin: 0; }
.p3d-sp:last-child { border-right: none; }
.p3d-sp .p3d-k {
  font-family: var(--mono);
  font-size: .64rem;
  letter-spacing: .12em;
  color: var(--ink-3);
  text-transform: uppercase;
  display: block;
  margin-bottom: 3px;
}
.p3d-sp .p3d-v { font-family: var(--mono); font-size: 1rem; font-weight: 600; }
.p3d-hero-fig { position: relative; margin: 0; }
.p3d-hero-fig .p3d-figcap {
  margin-top: 12px;
  font-family: var(--mono);
  font-size: .68rem;
  color: var(--ink-3);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.p3d-printer-svg .part { animation: p3d-partglow 3.6s ease-in-out infinite; }
@keyframes p3d-partglow { 0%, 100% { opacity: .85; } 50% { opacity: 1; } }
.p3d-printer-svg .head { animation: p3d-headmove 5s ease-in-out infinite; }
@keyframes p3d-headmove { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(26px); } }

/* ============ QUOTE / UPLOAD TEASER ============ */
.p3d-quote-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 44px;
  align-items: start;
}
@media (max-width: 920px) { .p3d-quote-grid { grid-template-columns: 1fr; } }
.p3d-quote-grid > * { margin: 0; }
.p3d-dropzone {
  border: 1.5px dashed var(--blue);
  background: var(--card);
  padding: 44px 30px;
  text-align: center;
  border-radius: var(--radius);
}
.p3d-dropzone > * { margin: 0; }
.p3d-dropzone .p3d-dz-ico { margin-bottom: 14px; }
.p3d-dropzone h3 { font-size: 1.15rem; letter-spacing: -.01em; margin-bottom: 6px; }
.p3d-dropzone p { font-size: .9rem; color: var(--ink-2); }
.p3d-fmt { display: flex; gap: 8px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }
.p3d-fmt span {
  font-family: var(--mono);
  font-size: .68rem;
  border: 1px solid var(--line);
  padding: 3px 8px;
  color: var(--ink-2);
  background: var(--paper);
  letter-spacing: .06em;
}
.p3d-dz-note { margin-top: 12px; font-family: var(--mono); font-size: .68rem; color: var(--ink-3); }
.p3d-dz-cta { margin-top: 20px; justify-content: center; }
.p3d-steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin: 26px 0 0;
  padding: 0;
}
@media (max-width: 560px) { .p3d-steps { grid-template-columns: 1fr; } }
.p3d-steps li { background: var(--card); padding: 18px 16px; margin: 0; }
.p3d-steps .p3d-n { font-family: var(--mono); font-size: .72rem; color: var(--acc-text); display: block; margin-bottom: 6px; }
.p3d-steps b { display: block; font-size: .94rem; margin-bottom: 3px; }
.p3d-steps small { color: var(--ink-2); font-size: .8rem; line-height: 1.4; display: block; }
/* framed panel card (drawing sheet offset shadow) */
.p3d-panel {
  border: 1px solid var(--ink);
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.p3d-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 14px 20px;
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.p3d-panel-head > * { margin: 0; }
.p3d-panel-body { padding: 22px 20px; }
.p3d-panel-body > * { margin: 0 0 14px; }
.p3d-panel-body > *:last-child { margin-bottom: 0; }
.p3d-panel-foot {
  border-top: 1px solid var(--line);
  padding: 14px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.p3d-panel-foot > * { margin: 0; }
.p3d-tol { font-family: var(--mono); font-size: .7rem; color: var(--blue); }

/* ============ MATERIALS ============ */
.p3d-mats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (max-width: 860px) { .p3d-mats { grid-template-columns: 1fr; } }
.p3d-mat-card {
  border: 1px solid var(--line);
  background: var(--card);
  padding: 22px 22px 18px;
  margin: 0;
}
.p3d-mat-card:hover { border-color: var(--ink); }
.p3d-mat-card > * { margin: 0; }
.p3d-mat-card h3 {
  font-size: 1.25rem;
  letter-spacing: -.01em;
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.p3d-mat-price {
  font-family: var(--mono);
  font-size: .78rem;
  font-weight: 400;
  color: var(--acc-text);
  margin-left: auto;
  white-space: nowrap;
}
.p3d-mat-use { color: var(--ink-2); font-size: .88rem; margin: 6px 0 14px; }
/* spec table (wp:table with className p3d-spec-t) */
.p3d-spec-t { margin: 0 0 14px; }
.p3d-spec-t table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--mono);
  font-size: .72rem;
  border: none;
}
.p3d-spec-t td {
  border: none;
  border-top: 1px solid var(--line-soft);
  padding: 5px 0;
  color: var(--ink-2);
}
.p3d-spec-t td:last-child { text-align: right; color: var(--ink); font-weight: 600; }
.p3d-dots { display: flex; gap: 7px; flex-wrap: wrap; align-items: center; }
.p3d-dots .p3d-lb {
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .1em;
  color: var(--ink-3);
  text-transform: uppercase;
  margin-right: 4px;
}
.p3d-dot {
  display: inline-block;
  width: 16px; height: 16px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, .25);
  box-shadow: inset -2px -2px 3px rgba(0, 0, 0, .12);
}
.p3d-mat-eng {
  border: 1px solid var(--blue);
  background: var(--blue-soft);
  padding: 18px 22px;
  margin-top: 20px;
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
}
.p3d-mat-eng > * { margin: 0; }
.p3d-mat-eng p { font-size: .9rem; color: var(--ink-2); max-width: 56ch; }
.p3d-mat-eng b { color: var(--ink); }

/* ============ CATALOG (static preview cards + Woo product grids) ============ */
.p3d-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 960px) { .p3d-cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .p3d-cat-grid { grid-template-columns: 1fr; } }
.p3d-prod {
  border: 1px solid var(--line);
  background: var(--card);
  display: flex;
  flex-direction: column;
  margin: 0;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.p3d-prod:hover { transform: translateY(-3px); box-shadow: 0 8px 0 var(--blue-soft); border-color: var(--ink); }
.p3d-prod .p3d-fig {
  background: var(--paper-2);
  border-bottom: 1px solid var(--line);
  padding: 18px;
  position: relative;
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 16px 16px;
}
.p3d-prod .p3d-dimlab { position: absolute; top: 8px; left: 12px; font-family: var(--mono); font-size: .6rem; color: var(--blue); }
.p3d-prod .p3d-info { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.p3d-prod .p3d-info > * { margin: 0; }
.p3d-prod h3 { font-size: 1.02rem; letter-spacing: -.01em; }
.p3d-prod .p3d-desc { font-size: .82rem; color: var(--ink-2); flex: 1; }
.p3d-prod .p3d-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: .72rem;
  color: var(--ink-3);
}
.p3d-prod .p3d-buy { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; gap: 10px; flex-wrap: wrap; }
.p3d-prod .p3d-price-c { font-family: var(--mono); font-size: 1.15rem; font-weight: 700; }
.p3d-prod .p3d-buy .wp-block-button__link { padding: 8px 13px; font-size: .74rem; }
.p3d-cat-cta { margin-top: 26px; text-align: center; }

/* --- WooCommerce product grids: blockified product-collection --- */
li.wc-block-product {
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: var(--radius);
  display: flex;
  flex-direction: column;
  padding: 0 0 18px !important;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
li.wc-block-product:hover { transform: translateY(-3px); box-shadow: 0 8px 0 var(--blue-soft); border-color: var(--ink); }
li.wc-block-product .wc-block-components-product-image {
  background: var(--paper-2);
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 16px 16px;
  border-bottom: 1px solid var(--line);
  padding: 14px;
  margin: 0 0 14px !important;
}
li.wc-block-product .wp-block-post-title {
  font-family: var(--mono);
  font-size: 1rem;
  letter-spacing: -.01em;
  padding: 0 18px;
  margin: 0 0 4px;
}
li.wc-block-product .wp-block-post-title a { text-decoration: none; }
li.wc-block-product .wp-block-post-title a:hover { color: var(--acc-text); }
li.wc-block-product .wc-block-components-product-price,
li.wc-block-product .wp-block-woocommerce-product-price {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 1.05rem;
  padding: 8px 18px 0;
  margin: auto 0 8px;
  border-top: 1px dashed var(--line);
}
li.wc-block-product .wp-block-woocommerce-product-button { padding: 0 18px; margin: 0; }
li.wc-block-product .wc-block-components-product-button__button { padding: 8px 13px; font-size: .74rem; }
li.wc-block-product .wc-block-components-product-sale-badge {
  background: var(--acc-fill);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .08em;
}
/* --- classic loop (legacy templates, related products) --- */
.woocommerce ul.products li.product {
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: var(--radius);
  padding: 0 0 18px;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-3px); box-shadow: 0 8px 0 var(--blue-soft); border-color: var(--ink); }
.woocommerce ul.products li.product a img {
  background: var(--paper-2);
  border-bottom: 1px solid var(--line);
  margin-bottom: 14px;
  padding: 14px;
  box-sizing: border-box;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--mono);
  font-size: 1rem;
  letter-spacing: -.01em;
  padding: 0 18px;
}
.woocommerce ul.products li.product .price {
  font-family: var(--mono);
  font-weight: 700;
  color: var(--ink);
  padding: 8px 18px 0;
  margin: 0 18px;
  border-top: 1px dashed var(--line);
  display: block;
}
.woocommerce ul.products li.product .button { margin: 8px 18px 0; padding: 8px 13px; font-size: .74rem; }
.woocommerce span.onsale {
  background: var(--acc-fill);
  color: #fff;
  border-radius: var(--radius);
  font-family: var(--mono);
  letter-spacing: .08em;
  min-height: auto;
  line-height: 1.9;
  padding: 2px 10px;
}

/* archive toolbar */
.wp-block-woocommerce-product-results-count,
.woocommerce-result-count { font-family: var(--mono); font-size: .72rem; color: var(--ink-3); text-transform: uppercase; letter-spacing: .08em; }
.wp-block-woocommerce-catalog-sorting select,
.woocommerce-ordering select {
  font-family: var(--mono);
  font-size: .8rem;
  border: 1px solid var(--line-strong);
  background: var(--paper-2);
  color: var(--ink);
  padding: 7px 10px;
  border-radius: var(--radius);
}
.wc-block-breadcrumbs, .woocommerce-breadcrumb {
  font-family: var(--mono) !important;
  font-size: .7rem !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-3) !important;
}

/* ============ LIBRARY TEASER ============ */
.p3d-lib-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 48px;
  align-items: center;
}
@media (max-width: 920px) { .p3d-lib-grid { grid-template-columns: 1fr; } }
.p3d-lib-grid > * { margin: 0; }
.p3d-lib-list {
  list-style: none;
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin: 0;
  padding: 0;
}
.p3d-lib-list li {
  background: var(--card);
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 10px 14px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: .78rem;
  margin: 0;
}
.p3d-lib-list .p3d-fn { font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.p3d-lib-list .p3d-fs2 { color: var(--ink-3); margin-left: auto; white-space: nowrap; }
.p3d-lib-list .p3d-vrf {
  color: var(--ok);
  font-size: .66rem;
  border: 1px solid currentColor;
  padding: 1px 6px;
  letter-spacing: .08em;
  white-space: nowrap;
}
.p3d-lib-list .p3d-remote {
  font-size: .66rem;
  color: var(--acc-text);
  border: 1px solid currentColor;
  padding: 1px 6px;
  white-space: nowrap;
  letter-spacing: .06em;
}

/* ============ B2B ============ */
.p3d-b2b-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 8px; }
@media (max-width: 860px) { .p3d-b2b-grid { grid-template-columns: 1fr; } }
.p3d-b2b-card { border: 1px solid var(--line); background: var(--card); padding: 22px; margin: 0; }
.p3d-b2b-card > * { margin: 0 0 8px; }
.p3d-b2b-card > *:last-child { margin-bottom: 0; }
.p3d-b2b-card h3 { font-size: 1.05rem; display: flex; align-items: center; gap: 10px; }
.p3d-b2b-card h3 svg { color: var(--acc); flex: none; }
.p3d-b2b-card p { font-size: .88rem; color: var(--ink-2); }
.p3d-disc-t { margin: 12px 0 0; }
.p3d-disc-t table { width: 100%; border-collapse: collapse; font-family: var(--mono); font-size: .78rem; border: none; }
.p3d-disc-t th {
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-3);
  text-align: left;
  padding: 6px 0;
  border: none;
  border-bottom: 1px solid var(--line);
  font-weight: 600;
  background: none;
}
.p3d-disc-t td { padding: 7px 0; border: none; border-bottom: 1px solid var(--line-soft); }
.p3d-disc-t td:last-child, .p3d-disc-t th:last-child { text-align: right; }
.p3d-disc-t .p3d-save { color: var(--acc-text); font-weight: 700; }
.p3d-finenote { font-family: var(--mono); font-size: .66rem; color: var(--ink-3); margin-top: 10px; }
.p3d-code.wp-block-code {
  background: var(--ink);
  color: #D8DCE2;
  font-family: var(--mono);
  font-size: .72rem;
  line-height: 1.7;
  padding: 16px 18px;
  overflow-x: auto;
  margin-top: 12px;
  border: none;
  border-radius: var(--radius);
}
.p3d-b2b-cta { margin-top: 26px; display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.p3d-b2b-cta > * { margin: 0; }
.p3d-note-sm { font-family: var(--mono); font-size: .7rem; color: var(--ink-3); }

/* ============ TRUST ============ */
.p3d-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
@media (max-width: 860px) { .p3d-trust-grid { grid-template-columns: 1fr; } }
.p3d-tr-card { background: var(--card); padding: 26px 24px; margin: 0; }
.p3d-tr-card > * { margin: 0 0 8px; }
.p3d-tr-card .p3d-n { font-family: var(--mono); font-size: .7rem; color: var(--acc-text); display: block; margin-bottom: 12px; }
.p3d-tr-card h3 { font-size: 1.08rem; }
.p3d-tr-card p { font-size: .88rem; color: var(--ink-2); }
.p3d-tr-card .p3d-spec { font-family: var(--mono); font-size: .7rem; color: var(--blue); margin-top: 14px; display: block; }
.p3d-ref-slot {
  border: 1.5px dashed var(--blue);
  background: var(--blue-soft);
  margin-top: 20px;
  padding: 18px 22px;
  font-family: var(--mono);
  font-size: .72rem;
  line-height: 1.8;
  color: var(--blue);
  letter-spacing: .04em;
}

/* ============ SHIPPING / PAYMENT / FAQ ============ */
.p3d-ship-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin: 6px 0 36px;
}
@media (max-width: 860px) { .p3d-ship-strip { grid-template-columns: 1fr; } }
.p3d-ship { background: var(--card); padding: 20px 22px; margin: 0; }
.p3d-ship > * { margin: 0; }
.p3d-ship .p3d-k {
  font-family: var(--mono);
  font-size: .64rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--acc-text);
  display: block;
  margin-bottom: 8px;
}
.p3d-ship p { font-size: .88rem; color: var(--ink-2); }
.p3d-faq { border: 1px solid var(--line); background: var(--card); }
.p3d-faq .wp-block-details { border-bottom: 1px solid var(--line-soft); margin: 0; padding: 0; }
.p3d-faq .wp-block-details:last-child { border-bottom: none; }
.p3d-faq summary {
  cursor: pointer;
  padding: 15px 20px;
  font-family: var(--mono);
  font-size: .9rem;
  font-weight: 600;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.p3d-faq summary::-webkit-details-marker { display: none; }
.p3d-faq summary::after { content: "+"; color: var(--acc-text); font-weight: 400; flex: none; }
.p3d-faq .wp-block-details[open] > summary::after { content: "\2212"; }
.p3d-faq .wp-block-details > p { padding: 0 20px 18px; margin: 0; font-size: .9rem; color: var(--ink-2); max-width: 75ch; }

/* ============ CONTACT ============ */
.p3d-kont-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 44px;
  align-items: start;
}
@media (max-width: 920px) { .p3d-kont-grid { grid-template-columns: 1fr; } }
.p3d-kont-grid > * { margin: 0; }
.p3d-kont-direct { font-family: var(--mono); font-size: .88rem; line-height: 2.1; margin-top: 18px; }
.p3d-kont-direct a { color: var(--ink); text-decoration-color: var(--acc); }
.p3d-kont-direct a:hover { color: var(--acc-text); }
.p3d-kont-card { padding: 24px 22px; }
.p3d-kont-card > * { margin: 0 0 12px; }
.p3d-kont-card > *:last-child { margin-bottom: 0; }
.p3d-checklist { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 9px; }
.p3d-checklist li {
  margin: 0;
  padding-left: 24px;
  position: relative;
  font-size: .9rem;
  color: var(--ink-2);
}
.p3d-checklist li::before {
  content: "";
  position: absolute;
  left: 0; top: .32em;
  width: 11px; height: 11px;
  border: 1.5px solid var(--acc);
}
.p3d-open {
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .06em;
  color: var(--blue);
  border: 1px dashed var(--blue);
  background: var(--blue-soft);
  padding: 2px 7px;
  white-space: nowrap;
}

/* ============ FOOTER — title block ============ */
footer.wp-block-template-part { display: block; }
.p3d-footer { border-top: 2px solid var(--ink); background: var(--paper-2); }
.p3d-tblock {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  border-left: 1px solid var(--line);
  border-right: 1px solid var(--line);
  max-width: var(--maxw);
  margin: 0 auto;
}
@media (max-width: 860px) { .p3d-tblock { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .p3d-tblock { grid-template-columns: 1fr; } }
.p3d-tb { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 20px 22px; margin: 0; min-width: 0; }
.p3d-tb:last-child { border-right: none; }
@media (max-width: 860px) { .p3d-tb { border-right: 1px solid var(--line); } }
.p3d-tb > * { margin: 0 0 8px; }
.p3d-tb > *:last-child { margin-bottom: 0; }
.p3d-tb .p3d-k {
  font-family: var(--mono);
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: block;
  margin-bottom: 8px;
}
.p3d-tb ul { list-style: none; display: grid; gap: 6px; margin: 0; padding: 0; }
.p3d-tb ul li { margin: 0; }
.p3d-tb a { text-decoration: none; font-size: .85rem; color: var(--ink-2); }
.p3d-tb a:hover { color: var(--acc-text); }
.p3d-tb p { font-size: .85rem; color: var(--ink-2); }
.p3d-tb p.p3d-mono { font-size: .78rem; }
.p3d-foot-bar { border-top: 1px solid var(--line); }
.p3d-foot-bar-in {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.p3d-foot-bar-in p {
  margin: 0;
  font-family: var(--mono);
  font-size: .66rem;
  letter-spacing: .08em;
  color: var(--ink-3);
  text-transform: uppercase;
}

/* ============ GENERIC PAGE / BLOG / 404 ============ */
.p3d-page { padding: 56px 0 88px; }
.p3d-page .wp-block-post-title { margin-bottom: 24px; }
.p3d-post-list { display: grid; gap: 20px; }
.p3d-post-card { border: 1px solid var(--line); background: var(--card); padding: 22px; }
.p3d-post-card > * { margin: 0 0 8px; }
.p3d-post-card .wp-block-post-date { font-family: var(--mono); font-size: .7rem; color: var(--ink-3); text-transform: uppercase; letter-spacing: .1em; }
.p3d-404-code {
  font-family: var(--mono);
  font-size: clamp(4rem, 12vw, 8rem);
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1;
  color: var(--acc);
  margin: 0 0 10px;
}
.wp-block-search .wp-block-search__input {
  font-family: var(--mono);
  font-size: .92rem;
  border: 1px solid var(--line-strong);
  background: var(--paper-2);
  border-radius: var(--radius);
  padding: 11px 12px;
}
.wp-block-search .wp-block-search__button {
  font-family: var(--mono);
  font-size: .85rem;
  background: var(--acc-fill);
  border: 1px solid var(--acc-fill);
  color: #fff;
  border-radius: var(--radius);
  cursor: pointer;
}
.wp-block-search .wp-block-search__button:hover { background: var(--ink); border-color: var(--ink); }

/* ============ WOOCOMMERCE — single product (legacy template) ============ */
.woocommerce .product_title {
  font-family: var(--mono);
  letter-spacing: -.02em;
  font-size: clamp(1.4rem, 2.6vw, 2rem);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--ink);
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del { color: var(--ink-3); font-weight: 400; }
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins { text-decoration: none; color: var(--acc-text); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ink-2); }
.woocommerce div.product form.cart {
  border-top: 1px dashed var(--line);
  padding-top: 18px;
  margin-top: 8px;
}
.woocommerce div.product form.cart .button { font-size: .85rem; }
.woocommerce .quantity .qty {
  font-family: var(--mono);
  border: 1px solid var(--line-strong);
  background: var(--paper-2);
  border-radius: var(--radius);
  padding: 10px 6px;
  height: auto;
}
.woocommerce div.product .product_meta {
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-3);
  border-top: 1px solid var(--line-soft);
  padding-top: 12px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0;
  margin: 0 0 -1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--radius) var(--radius) 0 0;
  margin: 0 4px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--mono);
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--card); border-bottom-color: var(--card); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); }
.woocommerce div.product .woocommerce-tabs .panel {
  border: 1px solid var(--line);
  background: var(--card);
  padding: 22px;
  margin-bottom: 32px;
}
.woocommerce div.product div.images img { border: 1px solid var(--line); background: var(--card); }
.woocommerce div.product section.related > h2,
.woocommerce div.product section.upsells > h2 { font-size: 1.3rem; }

/* ============ WOOCOMMERCE — cart & checkout blocks ============ */
.wc-block-components-form .wc-block-components-text-input input[type="text"],
.wc-block-components-form .wc-block-components-text-input input[type="email"],
.wc-block-components-form .wc-block-components-text-input input[type="tel"],
.wc-block-components-form .wc-block-components-text-input input[type="number"],
.wc-block-components-form .wc-block-components-text-input input[type="url"],
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-textarea,
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  font-family: var(--mono);
  border-color: var(--line-strong);
  background: var(--paper-2);
  border-radius: var(--radius);
  color: var(--ink);
}
.wc-block-components-checkout-step__title,
.wc-block-components-title,
.wc-block-cart__totals-title {
  font-family: var(--mono);
  letter-spacing: -.01em;
}
.wc-block-components-formatted-money-amount,
.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-order-summary-item__total-price,
.wc-block-cart-item__prices {
  font-family: var(--mono);
  font-weight: 600;
}
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block {
  border-color: var(--line-soft);
}
.is-large.wc-block-cart .wc-block-cart__totals-container,
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
table.wc-block-cart-items,
table.wc-block-cart-items th,
table.wc-block-cart-items td { border-color: var(--line-soft); }
.wc-block-cart-items__header {
  font-family: var(--mono);
  font-size: .64rem !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.wc-block-components-product-name { font-family: var(--mono); font-weight: 600; color: var(--ink); text-decoration: none; }
.wc-block-components-product-metadata__description { color: var(--ink-2); }
.wc-block-components-checkout-return-to-cart-button { font-family: var(--mono); font-size: .8rem; }
.wc-block-components-checkout-place-order-button { width: 100%; justify-content: center; }
/* store notices / messages */
.wc-block-components-notice-banner.is-info { border-color: var(--blue); }
.wc-block-components-notice-banner.is-success { border-color: var(--ok); }
.wc-block-components-notice-banner.is-error { border-color: var(--acc-fill); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top-color: var(--acc-fill);
  background: var(--card);
  font-family: var(--mono);
  font-size: .85rem;
}
.woocommerce-message::before { color: var(--ok); }
.woocommerce-info::before { color: var(--blue); }
/* coupon + generic woo forms */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  font-family: var(--mono);
  border: 1px solid var(--line-strong);
  background: var(--paper-2);
  border-radius: var(--radius);
  padding: 10px 12px;
}
.woocommerce form .form-row label { font-family: var(--mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }

/* price amounts anywhere */
.woocommerce-Price-amount.amount { font-family: var(--mono); }

/* ============ misc core blocks ============ */
.wp-block-table.p3d-spec-t figcaption,
.wp-block-table.p3d-disc-t figcaption { font-family: var(--mono); font-size: .66rem; color: var(--ink-3); }
hr.wp-block-separator { border-color: var(--line); opacity: 1; }
.wp-block-quote { border-left: 2px solid var(--acc); font-style: normal; }

/* --- language switcher (Polylang) --- */
.p3d-langswitch{display:flex;gap:.15rem;align-items:center;margin-left:.75rem}
.p3d-langswitch .p3d-lang{font-family:var(--wp--preset--font-family--mono,monospace);font-size:.72rem;letter-spacing:.06em;padding:.25rem .45rem;border:1px solid transparent;text-decoration:none;color:inherit}
.p3d-langswitch .p3d-lang:hover{border-color:currentColor}
.p3d-langswitch .p3d-lang.is-current{border-color:var(--wp--preset--color--ink,#15181D);font-weight:700}

/* ============ QUOTE UPLOADER — live spletni izračun (#natisni-po-meri) ============ */
/* [hidden] must beat display:flex/grid on state containers */
#natisni-po-meri [hidden] { display: none !important; }

.p3d-visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* dropzone interactivity */
.p3d-dropzone { cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.p3d-dropzone:hover, .p3d-dropzone:focus-visible { border-color: var(--acc); }
.p3d-dropzone.is-drag { border-color: var(--acc); background: var(--acc-soft); }
.p3d-dz-file {
  margin-top: 12px !important;
  font-size: .74rem;
  color: var(--ink);
  font-weight: 600;
  overflow-wrap: anywhere;
}

/* panel: empty state */
.p3d-q-empty-t { width: 100%; border-collapse: collapse; font-family: var(--mono); font-size: .78rem; }
.p3d-q-empty-t td { padding: 6px 0; border-bottom: 1px solid var(--line-soft); color: var(--ink-2); }
.p3d-q-empty-t td:last-child { text-align: right; font-weight: 600; color: var(--ink); }
.p3d-q-empty-t tr:last-child td { border-bottom: none; }
.p3d-q-hint { font-family: var(--mono); font-size: .7rem; color: var(--ink-3); line-height: 1.7; }

/* panel: loading state */
.p3d-q-loadline { font-family: var(--mono); font-size: .88rem; font-weight: 600; }
.p3d-q-spin {
  display: inline-block;
  width: 13px; height: 13px;
  border: 2px solid var(--line);
  border-top-color: var(--acc);
  border-radius: 50%;
  margin-right: 9px;
  vertical-align: -2px;
  animation: p3d-spin .8s linear infinite;
}
@keyframes p3d-spin { to { transform: rotate(360deg); } }

/* panel: error state */
.p3d-q-errbox {
  border: 1px solid var(--acc-fill);
  background: var(--acc-soft);
  padding: 16px 18px;
  font-size: .88rem;
  color: var(--ink);
}
.p3d-q-errbox p { margin: 0 0 10px; }
.p3d-q-errbox a { color: var(--acc-text); font-weight: 600; text-decoration-color: var(--acc); }
.p3d-q-errbox a:hover { color: var(--ink); }

/* panel: result state */
.p3d-q-geo {
  font-size: .7rem;
  letter-spacing: .06em;
  color: var(--blue);
  border: 1px dashed var(--blue);
  background: var(--blue-soft);
  padding: 8px 10px;
  overflow-wrap: anywhere;
}
.p3d-q-repaired { font-family: var(--mono); font-size: .68rem; color: var(--warn); }
.p3d-q-mats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 440px) { .p3d-q-mats { grid-template-columns: 1fr; } }
.p3d-q-mat {
  display: block;
  border: 1px solid var(--line);
  background: var(--paper-2);
  padding: 12px 14px;
  cursor: pointer;
  transition: border-color .12s ease, background .12s ease;
}
.p3d-q-mat:hover { border-color: var(--ink); }
.p3d-q-mat:has(input:focus-visible) { outline: 2px solid var(--acc); outline-offset: 2px; }
.p3d-q-mat.is-sel {
  border-color: var(--acc-fill);
  box-shadow: inset 0 0 0 1px var(--acc-fill);
  background: var(--card);
}
.p3d-q-mat-name {
  font-family: var(--mono);
  font-size: .78rem;
  letter-spacing: .08em;
  font-weight: 600;
  color: var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}
.p3d-q-mat-chip { font-size: .56rem; letter-spacing: .08em; color: var(--ink-3); font-weight: 400; white-space: nowrap; }
.p3d-q-mat.is-sel .p3d-q-mat-chip { color: var(--acc-text); }
.p3d-q-mat-price { font-family: var(--mono); font-size: 1.2rem; font-weight: 700; letter-spacing: -.02em; display: block; margin-top: 5px; }
.p3d-q-mat-meta { font-family: var(--mono); font-size: .68rem; color: var(--ink-3); display: block; margin-top: 2px; }
.p3d-q-note { font-family: var(--mono); font-size: .68rem; color: var(--ink-3); line-height: 1.7; }
.p3d-q-adderr { font-family: var(--mono); font-size: .72rem; color: var(--acc-text); border: 1px solid var(--acc-fill); background: var(--acc-soft); padding: 8px 10px; }

/* panel foot: selected total + CTA */
.p3d-q-total { font-size: 1.3rem; font-weight: 700; letter-spacing: -.02em; }
#p3d-q-add[disabled] { opacity: .55; cursor: default; transform: none; box-shadow: none; }
