/* Finaler Nexora-Feinschliff: klare Startseite, Leistungsbereiche und stabiler Produktdesigner. */

html { scroll-behavior: smooth; }
[hidden] { display: none !important; }

.nav-menu { gap: clamp(.7rem, 1.4vw, 1.45rem) !important; }
.nav-menu a { white-space: nowrap; }

.hero-copy h1 {
  max-width: 11ch;
  font-size: clamp(3rem, 5.5vw, 5.5rem) !important;
  letter-spacing: -.065em;
  line-height: .96 !important;
}
.hero-copy > p { max-width: 62ch; }

.service-hub {
  background:
    radial-gradient(circle at 8% 8%, rgba(249, 190, 28, .18), transparent 26rem),
    #f8fafc;
}
.service-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
}
.service-card {
  min-height: 31rem;
  padding: clamp(1.4rem, 2.4vw, 2.2rem);
  border: 1px solid #e2e8f0;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 55px rgba(15, 23, 42, .07);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow: hidden;
  position: relative;
}
.service-card::after {
  content: "";
  position: absolute;
  width: 12rem;
  height: 12rem;
  right: -5rem;
  top: -5rem;
  border-radius: 50%;
  background: rgba(15, 23, 42, .04);
}
.service-card-primary {
  color: #fff;
  background: linear-gradient(145deg, #0f172a, #1e293b);
  border-color: #0f172a;
}
.service-card-primary p,
.service-card-primary li,
.service-card-primary small { color: #cbd5e1; }
.service-card-soon { background: linear-gradient(145deg, #fffaf0, #fff); border-color: #fde68a; }
.service-code {
  display: inline-grid;
  place-items: center;
  min-width: 4.4rem;
  height: 2.45rem;
  padding: 0 .75rem;
  margin-bottom: 3rem;
  border-radius: 999px;
  background: #f4bd19;
  color: #101827;
  font-weight: 900;
  font-size: .82rem;
  letter-spacing: .12em;
  position: relative;
  z-index: 1;
}
.service-card small { display: block; margin-bottom: .35rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.service-card h3 { margin: 0; font-size: clamp(1.8rem, 2.5vw, 2.5rem); letter-spacing: -.04em; }
.service-card p { margin: 1.25rem 0; color: #64748b; line-height: 1.7; }
.service-card ul { list-style: none; padding: 0; margin: 0 0 1.7rem; display: grid; gap: .7rem; color: #334155; }
.service-card li { position: relative; padding-left: 1.35rem; }
.service-card li::before { content: "✓"; position: absolute; left: 0; color: #d99a00; font-weight: 900; }
.service-card .btn { margin-top: auto; width: 100%; }

.featured-products { background: #fff; }
.featured-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; }
.featured-product {
  display: block;
  color: #0f172a;
  text-decoration: none;
  border: 1px solid #e2e8f0;
  border-radius: 24px;
  padding: .75rem .75rem 1.35rem;
  background: #fff;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.featured-product:hover { transform: translateY(-5px); box-shadow: 0 22px 45px rgba(15, 23, 42, .11); border-color: #f4bd19; }
.featured-product img { width: 100%; height: 15rem; object-fit: cover; border-radius: 18px; background: #f8fafc; }
.featured-product span { display: inline-block; margin: 1rem .55rem .35rem; color: #b77900; font-weight: 900; font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; }
.featured-product h3 { margin: 0 .55rem .45rem; font-size: 1.15rem; }
.featured-product p { margin: 0 .55rem; color: #64748b; line-height: 1.55; }

.plotter-section { background: #0f172a; color: #fff; }
.plotter-shell { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.plotter-copy h2 { color: #fff; max-width: 13ch; }
.plotter-copy > p:not(.section-kicker) { color: #cbd5e1; line-height: 1.75; max-width: 58ch; }
.plotter-copy .btn { margin-top: 1rem; }
.plotter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.plotter-grid article { min-height: 13.5rem; padding: 1.4rem; border: 1px solid rgba(255,255,255,.13); border-radius: 22px; background: rgba(255,255,255,.06); }
.plotter-grid span { display: inline-block; color: #f4bd19; font-weight: 900; letter-spacing: .1em; font-size: .76rem; }
.plotter-grid h3 { color: #fff; margin: 2.2rem 0 .55rem; font-size: 1.1rem; }
.plotter-grid p { color: #94a3b8; margin: 0; line-height: 1.55; }

.uv-section { background: linear-gradient(135deg, #fff9e8, #fff); }
.uv-shell { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 3rem; align-items: center; }
.uv-shell > div:first-child > p:last-child { color: #64748b; max-width: 60ch; line-height: 1.7; }
.coming-badge { display: inline-block; padding: .55rem .9rem; margin-bottom: 1.2rem; border-radius: 999px; color: #7c4a00; background: #fde68a; font-weight: 900; text-transform: uppercase; letter-spacing: .09em; font-size: .74rem; }
.uv-items { display: grid; gap: .8rem; }
.uv-items article { display: grid; grid-template-columns: 3rem 1fr; column-gap: 1rem; padding: 1.2rem 1.3rem; border: 1px solid #f1dfaf; border-radius: 18px; background: rgba(255,255,255,.85); }
.uv-items b { grid-row: span 2; align-self: center; color: #d99a00; font-size: 1.35rem; }
.uv-items h3, .uv-items p { margin: 0; }
.uv-items p { color: #64748b; margin-top: .2rem; }

.designer-launch { background: #f8fafc; }
.designer-launch-shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .68fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); padding: clamp(2rem, 5vw, 4.7rem); border: 1px solid #e2e8f0; border-radius: 32px; background: #fff; box-shadow: 0 28px 70px rgba(15, 23, 42, .08); }
.designer-launch-shell h2 { max-width: 17ch; }
.designer-launch-shell p { color: #64748b; max-width: 62ch; line-height: 1.7; }
.designer-format-pills { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.4rem 0 1.7rem; }
.designer-format-pills span { padding: .62rem .85rem; border-radius: 999px; background: #f1f5f9; color: #334155; font-weight: 800; font-size: .86rem; }
.designer-launch-visual { position: relative; min-height: 27rem; display: grid; place-items: center; border-radius: 28px; background: radial-gradient(circle, #fff, #edf2f7); overflow: hidden; }
.designer-launch-visual img { width: 88%; height: 88%; object-fit: contain; filter: drop-shadow(0 18px 22px rgba(15, 23, 42, .12)); }
.designer-area-label { position: absolute; top: 29%; left: 50%; transform: translateX(-50%); border: 2px dashed #f59e0b; width: 29%; height: 42%; display: grid; place-items: start center; padding-top: .35rem; color: #b45309; font-size: .72rem; font-weight: 900; }
.designer-launch-visual strong { position: absolute; inset: 45% auto auto 50%; transform: translate(-50%, -50%); color: #64748b; font-size: .8rem; }

/* Die mobile Schnellleiste gehört nur auf kleine Bildschirme. */
.quick-action-bar { display: none !important; }

/* Finaler Produktdesigner */
.product-designer-modal.final-designer {
  position: fixed !important;
  inset: 0 !important;
  z-index: 200000 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1vh 1vw !important;
  background: rgba(15, 23, 42, .65) !important;
}
.product-designer-modal.final-designer.open { display: flex !important; }
.product-designer-modal.final-designer .product-modal-overlay { position: absolute !important; inset: 0 !important; background: transparent !important; }
.product-designer-modal.final-designer .product-modal-panel {
  position: relative !important;
  z-index: 1 !important;
  width: min(1520px, 98vw) !important;
  height: min(940px, 97vh) !important;
  max-height: 97vh !important;
  overflow: hidden !important;
  border-radius: 26px !important;
  background: #f5f7fb !important;
  box-shadow: 0 36px 110px rgba(0,0,0,.38) !important;
}
.finish-app, .finish-app * { box-sizing: border-box; }
.finish-app { height: 100%; display: grid; grid-template-rows: 72px minmax(0, 1fr) 78px; font-family: Inter, system-ui, sans-serif; color: #0f172a; }
.finish-header { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; padding: .8rem 1.35rem; background: #fff; border-bottom: 1px solid #e2e8f0; }
.finish-brand { display: flex; align-items: center; gap: .7rem; font-size: .95rem; font-weight: 950; letter-spacing: .04em; }
.finish-brand img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.finish-brand span { display: block; color: #64748b; font-size: .64rem; letter-spacing: .11em; }
.finish-header-note { color: #64748b; font-size: .86rem; font-weight: 700; }
.finish-close { width: 42px; height: 42px; border: 0; border-radius: 12px; background: #f1f5f9; color: #0f172a; font-size: 1.65rem; cursor: pointer; }
.finish-body { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 1rem; padding: 1rem; overflow: hidden; }
.finish-workspace { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: .8rem; }
.finish-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; padding: .65rem; background: #fff; border: 1px solid #e2e8f0; border-radius: 17px; }
.finish-tabs button { min-height: 45px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; color: #334155; font: inherit; font-weight: 900; cursor: pointer; }
.finish-tabs button.active { color: #9a5a00; border-color: #f4bd19; background: #fff9e6; box-shadow: 0 0 0 3px rgba(244,189,25,.14); }
.finish-tabs button:disabled { opacity: .38; cursor: not-allowed; }
.finish-stage { position: relative; min-height: 0; overflow: auto; border: 1px solid #e2e8f0; border-radius: 24px; background: radial-gradient(circle at 50% 40%, #fff 0, #f8fafc 55%, #e9eef5 100%); padding: 1.5rem; display: flex; align-items: center; justify-content: center; }
.finish-canvas-row { width: 100%; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 1.1rem; }
.finish-canvas { min-width: 0; position: relative; border: 2px solid transparent; border-radius: 20px; padding: .55rem; }
.finish-canvas.active { border-color: #f4bd19; box-shadow: 0 0 0 4px rgba(244,189,25,.13); }
.finish-canvas-title { position: absolute; z-index: 8; left: 1.2rem; top: 1.2rem; padding: .48rem .75rem; border-radius: 999px; background: #fff; box-shadow: 0 8px 20px rgba(15,23,42,.12); color: #9a5a00; font-size: .78rem; font-weight: 950; }
.finish-product { position: relative; width: min(570px, 48vw); height: min(650px, calc(97vh - 275px)); min-height: 360px; }
.finish-stage.dual .finish-product { width: min(355px, 27vw); height: min(470px, calc(97vh - 290px)); min-height: 320px; }
.finish-product > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; filter: drop-shadow(0 20px 25px rgba(15,23,42,.13)); }
.finish-print {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -42%);
  width: min(var(--box-w), 80%) !important;
  height: auto !important;
  max-height: 80%;
  aspect-ratio: var(--box-ratio);
  border: 2px dashed #e6a600;
  background: rgba(255,255,255,.12);
  touch-action: none;
}
.finish-stage.dual .finish-print { width: min(var(--box-dual), 68%) !important; }
.finish-print::before { content: attr(data-width); position: absolute; left: 50%; top: -29px; transform: translateX(-50%); padding: .25rem .55rem; border: 1px solid #f6d46d; border-radius: 999px; background: #fff; color: #9a5a00; font-size: .72rem; font-weight: 950; white-space: nowrap; }
.finish-print::after { content: attr(data-height); position: absolute; right: -35px; top: 50%; transform: translateY(-50%) rotate(90deg); padding: .25rem .55rem; border: 1px solid #f6d46d; border-radius: 999px; background: #fff; color: #9a5a00; font-size: .72rem; font-weight: 950; white-space: nowrap; }
.finish-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: .2rem;
  padding: .65rem;
  border: 0;
  background: transparent;
  color: #748195;
  font: inherit;
  text-align: center;
  cursor: pointer;
}
.finish-empty > span:first-child { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: #fff5cc; color: #7a5700; font-size: 1.15rem; box-shadow: 0 5px 14px rgba(17,17,17,.08); }
.finish-empty strong { color: #475569; font-size: .72rem; }
.finish-empty small { max-width: 18ch; color: #8b96a7; font-size: .57rem; line-height: 1.35; }
.finish-empty:hover { background: rgba(244,189,25,.09); }
.finish-empty.is-loading { cursor: wait; }
.finish-logo { position: absolute; transform: translate(-50%, -50%); z-index: 4; cursor: grab; outline: 2px solid #0b7cff; outline-offset: 2px; touch-action: none; }
.finish-logo img { display: block; width: 100%; height: auto; max-height: 100%; object-fit: contain; pointer-events: none; }
.finish-resize { position: absolute; right: -10px; bottom: -10px; width: 19px; height: 19px; border: 2px solid #fff; border-radius: 50%; background: #0b7cff; cursor: nwse-resize; box-shadow: 0 3px 9px rgba(15,23,42,.28); }
.finish-remove { position: absolute; right: -12px; top: -38px; width: 31px; height: 31px; border: 0; border-radius: 9px; background: #fff; color: #dc2626; font-size: 1.2rem; box-shadow: 0 7px 18px rgba(15,23,42,.18); cursor: pointer; }
.finish-design-text { position: absolute; transform: translate(-50%, -50%); z-index: 3; max-width: 94%; color: #111827; font-weight: 900; line-height: 1.05; text-align: center; white-space: nowrap; cursor: grab; user-select: none; touch-action: none; text-shadow: 0 1px 1px rgba(255,255,255,.35); }
.finish-controls { min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: .8rem; padding-right: .2rem; }
.finish-panel { padding: 1rem; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; }
.finish-panel h3 { margin: 0 0 .85rem; font-size: 1rem; }
.finish-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.finish-panel label { display: grid; gap: .38rem; color: #334155; font-size: .79rem; font-weight: 900; }
.finish-panel label.full { grid-column: 1 / -1; }
.finish-panel select, .finish-panel input[type="text"], .finish-panel input[type="number"] { width: 100%; min-height: 43px; padding: .68rem .75rem; border: 1px solid #cbd5e1; border-radius: 11px; background: #fff; color: #0f172a; font: inherit; }
.finish-panel input[type="range"] { width: 100%; accent-color: #d99a00; }
.finish-upload { display: flex !important; align-items: center; justify-content: center; min-height: 56px; padding: .8rem; margin-top: .75rem; border: 2px dashed #cbd5e1; border-radius: 14px; background: #f8fafc; text-align: center; cursor: pointer; }
.finish-upload input { display: none; }
.finish-swatches { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .55rem; }
.finish-swatches button { width: 30px; height: 30px; border: 2px solid #fff; border-radius: 50%; background: var(--sw); box-shadow: 0 0 0 1px #cbd5e1; cursor: pointer; }
.finish-swatches button.active { box-shadow: 0 0 0 3px #0b7cff; }
.finish-size-note { margin: .75rem 0 0; padding: .72rem .8rem; border-radius: 12px; background: #f0fdf4; color: #166534; font-size: .78rem; font-weight: 800; line-height: 1.45; }
.finish-price-card { display: grid; gap: .55rem; }
.finish-price-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #64748b; font-size: .86rem; }
.finish-price-row.total { padding-top: .7rem; border-top: 1px solid #e2e8f0; color: #0f172a; font-size: 1.1rem; font-weight: 950; }
.finish-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1.35rem; border-top: 1px solid #e2e8f0; background: #fff; }
.finish-footer strong { display: block; font-size: 1.55rem; }
.finish-footer small { color: #64748b; }
.finish-footer-actions { display: flex; gap: .65rem; }
.finish-footer .btn { min-width: 12rem; }

@media (max-width: 1120px) {
  .navbar { padding-inline: 1.1rem !important; }
  .nav-menu { display: none; }
  .nav-menu.open { display: flex; }
  .nav-toggle { display: inline-flex !important; }
  .service-card-grid { grid-template-columns: 1fr; }
  .service-card { min-height: auto; }
  .service-code { margin-bottom: 1.7rem; }
  .featured-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finish-body { grid-template-columns: minmax(0, 1fr) 330px; }
  .finish-product { width: min(500px, 50vw); }
  .finish-stage.dual .finish-product { width: min(290px, 25vw); }
}

@media (max-width: 820px) {
  .plotter-shell, .uv-shell, .designer-launch-shell { grid-template-columns: 1fr; }
  .designer-launch-visual { min-height: 23rem; }
  .product-designer-modal.final-designer { padding: 0 !important; }
  .product-designer-modal.final-designer .product-modal-panel { width: 100vw !important; height: 100vh !important; max-height: 100vh !important; border-radius: 0 !important; }
  .finish-app { grid-template-rows: 64px minmax(0, 1fr) auto; }
  .finish-header { padding: .65rem .85rem; }
  .finish-header-note { display: none; }
  .finish-body { display: flex; flex-direction: column; overflow: auto; padding: .65rem; }
  .finish-workspace { min-height: 620px; flex: 0 0 auto; }
  .finish-tabs { position: sticky; top: 0; z-index: 12; }
  .finish-stage { min-height: 540px; padding: 1rem .45rem; }
  .finish-canvas-row { flex-direction: column; }
  .finish-product, .finish-stage.dual .finish-product { width: min(350px, 88vw); height: 490px; min-height: 490px; }
  .finish-controls { overflow: visible; }
  .finish-footer { position: sticky; bottom: 0; z-index: 30; padding: .7rem .85rem; }
  .finish-footer .btn { min-width: 0; }
  .finish-footer-actions .btn-ghost { display: none; }
}

@media (max-width: 640px) {
  body { padding-bottom: 5.2rem; }
  .quick-action-bar {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .35rem !important;
    position: fixed !important;
    left: .65rem !important;
    right: .65rem !important;
    bottom: .55rem !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: .42rem !important;
    margin: 0 !important;
    transform: none !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 17px !important;
    background: rgba(15, 23, 42, .96) !important;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .28) !important;
    overflow: hidden !important;
    z-index: 9000 !important;
  }
  .quick-action-bar a,
  .quick-action-bar button {
    display: grid !important;
    place-items: center !important;
    min-width: 0 !important;
    min-height: 43px !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: .65rem .3rem !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
    font: 800 .76rem/1 Inter, system-ui, sans-serif !important;
    text-align: center !important;
    text-decoration: none !important;
  }
  .quick-action-bar a:last-child { background: #18c964 !important; color: #072b17 !important; }
  .hero-copy h1 { font-size: clamp(2.65rem, 12vw, 4.1rem) !important; }
  .featured-product-grid, .plotter-grid { grid-template-columns: 1fr; }
  .featured-product img { height: 14rem; }
  .service-card { padding: 1.35rem; border-radius: 22px; }
  .service-card h3 { font-size: 1.8rem; }
  .designer-launch-shell { padding: 1.35rem; border-radius: 22px; }
  .finish-brand { font-size: .82rem; }
  .finish-brand img { width: 38px; height: 38px; }
  .finish-tabs { gap: .35rem; padding: .4rem; }
  .finish-tabs button { padding-inline: .3rem; font-size: .75rem; }
  .finish-workspace { min-height: 560px; }
  .finish-stage { min-height: 475px; }
  .finish-product, .finish-stage.dual .finish-product { width: min(310px, 91vw); height: 430px; min-height: 430px; }
  .finish-print::after { right: -31px; }
  .finish-form-grid { grid-template-columns: 1fr; }
  .finish-panel label.full { grid-column: auto; }
  .finish-footer strong { font-size: 1.18rem; }
  .finish-footer small { font-size: .68rem; }
  .finish-footer .btn { padding: .75rem .85rem; font-size: .8rem; }
}

/* v101: Shirt-King-artiger Ablauf in Nexora-Schwarz/Gold, ohne blaue Akzente. */
:root { --blue: #d79f00 !important; }

.products { background: #f7f7f4 !important; }
.products .section-head { align-items: end; }
.products .section-sub { max-width: 68ch; }
.filters { justify-content: flex-start !important; }
.filter {
  border-color: #d9d9d4 !important;
  border-radius: 10px !important;
  padding: .72rem 1rem !important;
  background: #fff !important;
  color: #292d35 !important;
}
.filter:hover { border-color: #c89a11 !important; }
.filter.active { border-color: #111 !important; background: #111 !important; color: #fff !important; }

.catalog-progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
  margin: 1.3rem 0 1rem;
  padding: .55rem;
  border: 1px solid #deded8;
  border-radius: 18px;
  background: #fff;
}
.catalog-progress span {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 52px;
  padding: .65rem .8rem;
  border-radius: 12px;
  color: #6b7280;
  font-size: .83rem;
  font-weight: 850;
}
.catalog-progress b {
  display: grid;
  place-items: center;
  flex: 0 0 29px;
  width: 29px;
  height: 29px;
  border: 1px solid #d8d8d2;
  border-radius: 50%;
  color: #334155;
  background: #fff;
}
.catalog-progress .active { color: #0f172a; background: #fff7d8; }
.catalog-progress .active b { border-color: #e2ad12; background: #f4bd19; color: #0f172a; }

.product-toolbar {
  margin: 0 0 1.5rem !important;
  border-color: #deded8 !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.product-toolbar input { border-radius: 10px !important; }
.product-toolbar input:focus {
  border-color: #c69300 !important;
  box-shadow: 0 0 0 4px rgba(226, 173, 18, .16) !important;
}

.product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 1.35rem !important; }
.product-card.catalog-product-card,
.product-card.catalog-product-card:nth-child(1),
.product-card.catalog-product-card:nth-child(2) {
  grid-column: auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 1px solid #deded8 !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
.product-card.catalog-product-card::before,
.product-card.catalog-product-card::after { display: none !important; }
.product-card.catalog-product-card:hover {
  transform: translateY(-4px) !important;
  border-color: #c9a33a !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .10) !important;
}
.catalog-product-card .product-visual,
.catalog-product-card .product-visual.has-photo,
.catalog-product-card:nth-child(1) .product-visual,
.catalog-product-card:nth-child(2) .product-visual {
  width: 100% !important;
  height: 275px !important;
  min-height: 0 !important;
  margin: 0 !important;
  grid-row: auto !important;
  border-radius: 0 !important;
  background: #f1f1ee !important;
  box-shadow: none !important;
}
.catalog-product-card .product-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: scale(1.001) !important;
}
.catalog-product-card:hover .product-photo { transform: scale(1.035) !important; }
.product-visual:focus-visible { outline: 3px solid rgba(215, 159, 0, .45) !important; outline-offset: -3px !important; }
.catalog-image-action {
  position: absolute;
  left: 50%;
  bottom: 1rem;
  z-index: 3;
  transform: translateX(-50%);
  min-width: max-content;
  padding: .58rem .8rem;
  border-radius: 999px;
  background: rgba(17, 17, 17, .94);
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
  box-shadow: 0 9px 22px rgba(15,23,42,.22);
}
.format-badge {
  left: .8rem !important;
  top: .8rem !important;
  padding: .65rem .75rem !important;
  border-radius: 10px !important;
  background: #f4bd19 !important;
  color: #0f172a !important;
  font-size: 1rem !important;
  box-shadow: 0 9px 22px rgba(15,23,42,.14) !important;
}
.format-badge small { font-size: .62rem !important; }
.catalog-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.05rem; }
.catalog-card-body .product-meta { margin: 0 0 .65rem !important; }
.catalog-card-body .product-meta .badge {
  border: 1px solid #ead58f !important;
  background: #fff7dc !important;
  color: #7a5700 !important;
}
.catalog-card-body .product-meta > span:last-child { color: #6b7280; font-size: .75rem; font-weight: 800; }
.catalog-card-body h3 { margin: 0 0 .55rem !important; font-size: 1.05rem; line-height: 1.3; }
.catalog-card-body > p {
  display: -webkit-box;
  min-height: 3.9rem;
  margin: 0 0 .9rem !important;
  overflow: hidden;
  color: #6b7280 !important;
  font-size: .86rem !important;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.catalog-color-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: auto; padding-top: .75rem; border-top: 1px solid #ecece8; }
.catalog-color-row > span { color: #64748b; font-size: .74rem; font-weight: 850; }
.catalog-color-dots { display: flex; align-items: center; }
.catalog-color-dots i {
  width: 18px;
  height: 18px;
  margin-left: -3px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--dot);
  box-shadow: 0 0 0 1px #d1d5db;
}
.catalog-product-note { display: block; min-height: 2.1rem; margin-top: .7rem; color: #667085; font-size: .72rem; line-height: 1.4; }
.catalog-card-footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .85rem; }
.catalog-price { display: grid; }
.catalog-price small { color: #6b7280; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.catalog-price strong { color: #0f172a; font-size: 1.22rem; }
.catalog-open {
  min-height: 42px !important;
  padding: .7rem .9rem !important;
  border-color: #f4bd19 !important;
  background: #f4bd19 !important;
  color: #0f172a !important;
}
.catalog-open:hover { border-color: #dca900 !important; background: #dca900 !important; }
.catalog-config-note { margin-top: .7rem; color: #7c8491; font-size: .68rem; line-height: 1.4; }

.customize-pill { background: #111 !important; box-shadow: 0 10px 24px rgba(17,17,17,.22) !important; }
.trust-feature-card span { background: linear-gradient(135deg, #f4bd19, #d79f00) !important; color: #0f172a !important; }
.product-card:hover, .benefit-card:hover, .trust-feature-card:hover, .work-card:hover, .coming-card:hover { border-color: rgba(201, 157, 28, .52) !important; }

.finish-logo { outline-color: #d79f00 !important; }
.finish-resize { background: #d79f00 !important; }
.finish-swatches button.active { box-shadow: 0 0 0 3px #d79f00 !important; }
.finish-flow { display: flex; align-items: center; justify-content: center; gap: .45rem; }
.finish-flow span { display: flex; align-items: center; gap: .35rem; padding: .45rem .65rem; border-radius: 999px; color: #7c8491; font-size: .72rem; font-weight: 850; }
.finish-flow b { display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid #d7dbe1; border-radius: 50%; background: #fff; color: #475569; font-size: .68rem; }
.finish-flow .done { color: #53606f; }
.finish-flow .done b { border-color: #111; background: #111; color: #fff; }
.finish-flow .active { color: #0f172a; background: #fff5cc; }
.finish-flow .active b { border-color: #f4bd19; background: #f4bd19; color: #0f172a; }

@media (max-width: 1100px) {
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .catalog-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .finish-flow { display: none; }
}

@media (max-width: 640px) {
  .catalog-progress { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .catalog-progress span { min-width: 12.5rem; scroll-snap-align: start; }
  .product-toolbar { grid-template-columns: 1fr !important; }
  .product-toolbar label, .product-toolbar span { white-space: normal !important; }
  .product-grid { grid-template-columns: 1fr !important; }
  .catalog-product-card .product-visual,
  .catalog-product-card .product-visual.has-photo,
  .catalog-product-card:nth-child(1) .product-visual,
  .catalog-product-card:nth-child(2) .product-visual { height: 310px !important; }
}

/* Sichtbare Format- und Druckverfahrenswahl. */
.finish-choice-block,
.finish-material-note {
  grid-column: 1 / -1;
}
.finish-choice-block {
  display: grid;
  gap: .45rem;
  padding-top: .15rem;
}
.finish-choice-title {
  color: #334155;
  font-size: .79rem;
  font-weight: 950;
}
.finish-format-picker,
.finish-method-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
}
.finish-format-picker button,
.finish-method-picker button {
  display: grid;
  gap: .16rem;
  min-width: 0;
  min-height: 66px;
  padding: .62rem .7rem;
  border: 1px solid #d7dbe1;
  border-radius: 12px;
  background: #fff;
  color: #526071;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.finish-format-picker button b,
.finish-method-picker button b {
  color: #111;
  font-size: .88rem;
}
.finish-format-picker button span,
.finish-method-picker button span,
.finish-format-picker button small {
  overflow-wrap: anywhere;
  color: #64748b;
  font-size: .67rem;
  line-height: 1.3;
}
.finish-format-picker button.active,
.finish-method-picker button.active {
  border-color: #d9a408;
  background: #fff8dc;
  box-shadow: 0 0 0 3px rgba(244,189,25,.16);
}
.finish-format-picker button.active b,
.finish-method-picker button.active b { color: #7a5700; }
.finish-material-note {
  display: grid;
  gap: .15rem;
  padding: .72rem .8rem;
  border: 1px solid #ead58f;
  border-radius: 12px;
  background: #fffaf0;
}
.finish-material-note b { color: #7a5700; font-size: .8rem; }
.finish-material-note span { color: #667085; font-size: .7rem; }

@media (max-width: 430px) {
  .finish-method-picker { grid-template-columns: 1fr; }
  .finish-method-picker button { min-height: 58px; }
}

/* v105: verständliche Textbearbeitung mit Drehgriff. */
.finish-design-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.2rem;
  padding: .34em .55em;
  transform: translate(-50%, -50%) rotate(var(--text-rotation, 0deg));
  border: 2px dashed #d79f00;
  border-radius: 7px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 6px 18px rgba(17,17,17,.16);
  cursor: move;
  overflow: visible;
}
.finish-design-text::before {
  content: "TEXT";
  position: absolute;
  left: -2px;
  top: -20px;
  padding: 2px 5px;
  border-radius: 5px 5px 0 0;
  background: #d79f00;
  color: #111;
  font: 900 8px/1.5 Inter, system-ui, sans-serif;
  letter-spacing: .08em;
}
.finish-design-text::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -28px;
  width: 1px;
  height: 12px;
  background: #d79f00;
}
.finish-design-text-value { pointer-events: none; }
.finish-text-rotate,
.finish-text-remove {
  position: absolute;
  z-index: 8;
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  font: 900 14px/1 Inter, system-ui, sans-serif;
  box-shadow: 0 4px 12px rgba(17,17,17,.24);
}
.finish-text-rotate {
  left: 50%;
  top: -43px;
  transform: translateX(-50%);
  background: #d79f00;
  color: #111;
  cursor: grab;
  touch-action: none;
}
.finish-text-remove {
  right: -14px;
  top: -14px;
  background: #fff;
  color: #dc2626;
  cursor: pointer;
}
.finish-rotation-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 3.4rem;
  align-items: center;
  gap: .65rem;
}
.finish-rotation-control output {
  display: grid;
  place-items: center;
  min-height: 36px;
  border: 1px solid #d7dbe1;
  border-radius: 9px;
  background: #f8fafc;
  color: #111;
  font-size: .75rem;
  font-weight: 900;
}
.finish-editing-hint {
  margin: .65rem 0 0;
  color: #667085;
  font-size: .69rem;
  line-height: 1.4;
}

/* v107: moderne Motivverwaltung mit echter Druckvorschau. */
.finish-notice {
  padding: .75rem .85rem;
  border: 1px solid #d8bd60;
  border-radius: 13px;
  background: #fff8dc;
  color: #6b4f00;
  font-size: .74rem;
  font-weight: 850;
  line-height: 1.4;
}
.finish-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .75rem;
}
.finish-panel-heading h3 { margin-bottom: .16rem; }
.finish-panel-heading p { margin: 0; color: #7b8491; font-size: .67rem; line-height: 1.4; }
.finish-panel-heading > span { flex: 0 0 auto; padding: .28rem .5rem; border-radius: 999px; background: #111; color: #fff; font-size: .61rem; font-weight: 900; }
.finish-side-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin-bottom: .65rem; }
.finish-side-overview > button {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  min-width: 0;
  min-height: 51px;
  padding: .42rem;
  border: 1px solid #d7dbe1;
  border-radius: 11px;
  background: #fff;
  color: #526071;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.finish-side-overview > button.active { border-color: #d9a408; background: #fff9e8; box-shadow: 0 0 0 2px rgba(244,189,25,.13); }
.finish-side-overview > button > span:last-child { min-width: 0; }
.finish-side-overview b, .finish-side-overview small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finish-side-overview b { color: #111; font-size: .7rem; }
.finish-side-overview small { margin-top: .12rem; color: #7b8491; font-size: .58rem; }
.finish-side-thumb {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  overflow: hidden;
  border: 1px solid #e2e5e9;
  border-radius: 8px;
  background-color: #f8fafc;
  background-image: linear-gradient(45deg,#eef1f4 25%,transparent 25%),linear-gradient(-45deg,#eef1f4 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef1f4 75%),linear-gradient(-45deg,transparent 75%,#eef1f4 75%);
  background-position: 0 0,0 5px,5px -5px,-5px 0;
  background-size: 10px 10px;
  color: #9a7000;
  font-size: 1rem;
}
.finish-side-thumb img { width: 100%; height: 100%; object-fit: contain; }
.finish-upload-manager {
  position: relative;
  min-height: 114px;
  overflow: hidden;
  border: 1.5px dashed #b8c0cb;
  border-radius: 14px;
  background: #f8fafc;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.finish-upload-manager.is-dragging { border-color: #d6a100; background: #fff8dc; box-shadow: 0 0 0 4px rgba(244,189,25,.16); }
.finish-upload-manager > input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.finish-upload-empty, .finish-upload-loading {
  min-height: 114px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .65rem;
  padding: .8rem;
}
.finish-upload-empty strong, .finish-upload-empty small, .finish-upload-loading strong, .finish-upload-loading small { display: block; }
.finish-upload-empty strong, .finish-upload-loading strong { color: #111; font-size: .76rem; }
.finish-upload-empty small, .finish-upload-loading small { margin-top: .12rem; color: #7b8491; font-size: .61rem; line-height: 1.35; }
.finish-upload-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: #fff0b0; color: #6b4f00; font-size: 1.25rem; font-weight: 900; }
.finish-upload-empty .btn { min-height: 38px; padding: .55rem .7rem; font-size: .68rem; }
.finish-drop-hint { grid-column: 1 / -1; color: #8993a1; font-size: .58rem; text-align: center; }
.finish-upload-loading { grid-template-columns: auto 1fr; }
.finish-spinner { width: 27px; height: 27px; border: 3px solid #e4e7eb; border-top-color: #d39c00; border-radius: 50%; animation: finish-spin .75s linear infinite; }
@keyframes finish-spin { to { transform: rotate(360deg); } }
.finish-upload-ready { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; align-items: center; gap: .7rem; min-height: 114px; padding: .65rem; }
.finish-upload-preview { width: 76px; height: 82px; display: grid; place-items: center; overflow: hidden; border: 1px solid #dfe3e7; border-radius: 11px; background-color: #fff; background-image: linear-gradient(45deg,#f0f2f4 25%,transparent 25%),linear-gradient(-45deg,#f0f2f4 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f0f2f4 75%),linear-gradient(-45deg,transparent 75%,#f0f2f4 75%); background-position: 0 0,0 6px,6px -6px,-6px 0; background-size: 12px 12px; }
.finish-upload-preview img { width: 100%; height: 100%; object-fit: contain; }
.finish-file-info { min-width: 0; }
.finish-file-info strong, .finish-file-info span, .finish-file-info em { display: block; }
.finish-file-info strong { overflow: hidden; color: #111; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.finish-file-info span { margin-top: .18rem; color: #7b8491; font-size: .59rem; line-height: 1.35; }
.finish-file-info em { width: fit-content; margin-top: .38rem; padding: .22rem .4rem; border-radius: 999px; background: #eef6ff; color: #175cd3; font-size: .56rem; font-style: normal; font-weight: 900; }
.finish-file-info em.is-good { background: #e9f9ef; color: #087443; }
.finish-file-info em.is-warn { background: #fff0ed; color: #b42318; }
.finish-file-actions { display: grid; gap: .35rem; }
.finish-file-actions button { padding: .34rem .48rem; border: 1px solid #d7dbe1; border-radius: 8px; background: #fff; color: #334155; font: 800 .6rem/1.2 Inter,system-ui,sans-serif; cursor: pointer; }
.finish-file-actions button:last-child { color: #b42318; }
.finish-upload-error { min-height: 114px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .65rem; padding: .8rem; background: #fff5f4; }
.finish-upload-error > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #f04438; color: #fff; font-weight: 950; }
.finish-upload-error strong, .finish-upload-error small { display: block; }
.finish-upload-error strong { color: #912018; font-size: .73rem; }
.finish-upload-error small { margin-top: .15rem; color: #b42318; font-size: .6rem; line-height: 1.35; }
.finish-upload-error .btn { grid-column: 2; justify-self: start; min-height: 34px; padding: .45rem .65rem; font-size: .63rem; }
.finish-image-controls { display: grid; gap: .6rem; margin-top: .7rem; }
.finish-image-controls > label { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.finish-image-controls > label output { justify-self: end; color: #7a5700; font-size: .66rem; }
.finish-image-controls > label input { grid-column: 1 / -1; }
.finish-image-controls > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.finish-image-controls .btn, .finish-text-panel .btn { min-height: 38px; padding: .48rem .55rem; font-size: .64rem; }
.finish-image-controls.is-disabled { opacity: .48; }
.finish-autosave { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .7rem; padding-top: .65rem; border-top: 1px solid #e7e9ec; color: #667085; font-size: .59rem; }
.finish-autosave button { padding: 0; border: 0; background: transparent; color: #8a6300; font: 850 .59rem/1.3 Inter,system-ui,sans-serif; cursor: pointer; }

.cart-item-preview { float: left; width: 64px; margin: 0 .65rem .45rem 0; }
.cart-item-preview img { display: block; width: 64px; height: 64px; object-fit: contain; border: 1px solid #deded8; border-radius: 10px; background: #fff; }
.cart-item-preview figcaption { margin-top: .2rem; color: #7b8491; font-size: .54rem; text-align: center; }

@media (max-width: 430px) {
  .finish-upload-empty { grid-template-columns: auto minmax(0, 1fr); }
  .finish-upload-empty .btn { grid-column: 1 / -1; width: 100%; }
  .finish-upload-ready { grid-template-columns: 64px minmax(0, 1fr); }
  .finish-upload-preview { width: 64px; height: 70px; }
  .finish-file-actions { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finish-side-overview > button { grid-template-columns: 32px minmax(0, 1fr); gap: .4rem; }
  .finish-side-thumb { width: 32px; height: 32px; }
}

/* v105: kompakter, klar gegliederter Anfrage-Warenkorb. */
.cart-drawer { z-index: 12000 !important; }
.cart-panel {
  width: min(540px, 100vw) !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: #f7f7f4 !important;
}
.cart-header {
  min-height: 96px;
  padding: 1.1rem 1.35rem !important;
  border-bottom: 1px solid #e3e3dd !important;
  background: #fff;
}
.cart-header h2 { margin: .1rem 0 0; color: #111; font-size: clamp(1.85rem, 5vw, 2.55rem); line-height: 1; }
.cart-header p { margin: .35rem 0 0; color: #667085; font-size: .78rem; }
.cart-eyebrow { color: #9a7000; font-size: .68rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.cart-header .icon-btn { flex: 0 0 42px; border: 0; background: #f1f2f3; color: #111; }
.cart-scroll {
  min-height: 0;
  padding: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.cart-step-card {
  padding: 1rem;
  margin-bottom: .8rem;
  border: 1px solid #deded8;
  border-radius: 18px;
  background: #fff;
}
.cart-section-title { display: flex; align-items: center; gap: .7rem; margin-bottom: .85rem; }
.cart-section-title > span { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; background: #f4bd19; color: #111; font-size: .78rem; font-weight: 950; }
.cart-section-title h3 { margin: 0; color: #111; font-size: .96rem; }
.cart-section-title p { margin: .12rem 0 0; color: #7b8491; font-size: .7rem; }
.cart-items { padding: 0 !important; overflow: visible !important; display: grid; gap: .65rem; }
.cart-item {
  position: relative;
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) !important;
  gap: .65rem !important;
  padding: .8rem !important;
  border: 1px solid #e3e3de !important;
  border-radius: 14px !important;
  background: #fbfbf9;
}
.cart-item-number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: #111; color: #fff !important; font-size: .72rem !important; font-weight: 950; }
.cart-item-main { min-width: 0; }
.cart-item-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .65rem; }
.cart-item-heading strong { color: #111; font-size: .84rem; line-height: 1.35; }
.cart-item-heading b { flex: 0 0 auto; color: #7a5700; font-size: .78rem; }
.cart-item-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .5rem; }
.cart-item-chips span { padding: .28rem .45rem; border-radius: 7px; background: #f0f1f2; color: #526071 !important; font-size: .64rem !important; font-weight: 800; }
.cart-item p { margin: .55rem 0 .25rem; color: #3f4854; font-size: .72rem; line-height: 1.45; }
.cart-item small { color: #7b8491 !important; font-size: .67rem; }
.cart-item .remove-btn { grid-column: 2; justify-self: start; padding: .25rem 0; border: 0; background: transparent; color: #b42318; font-size: .67rem; font-weight: 850; cursor: pointer; }
.professional-checkout .cart-customer-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 0; }
.professional-checkout .cart-customer-fields label { gap: .3rem; color: #3f4854; font-size: .72rem; }
.professional-checkout .cart-customer-fields label.full { grid-column: 1 / -1; }
.professional-checkout .cart-customer-fields input,
.professional-checkout .cart-customer-fields textarea { min-height: 42px; padding: .65rem .7rem; border-color: #d7dbe1; border-radius: 10px; box-shadow: none; }
.professional-checkout .cart-customer-fields textarea { min-height: 70px; }
.cart-final-check { margin: 0 0 .75rem; padding: 0; border: 1px solid #deded8; border-radius: 14px; background: #fff; overflow: hidden; }
.cart-final-check summary { padding: .85rem 1rem; color: #29313c; font-size: .78rem; font-weight: 900; cursor: pointer; list-style-position: inside; }
.cart-final-check ul { margin: 0; padding: 0 1.2rem 1rem 2.2rem; color: #526071; font-size: .72rem; line-height: 1.55; }
.cart-note-box { margin: 0 0 .75rem; padding: .8rem .9rem; border-color: #ead58f; border-radius: 14px; background: #fff8dc; }
.cart-note-box strong { color: #7a5700; font-size: .78rem; }
.cart-note-box small { color: #667085; font-size: .7rem; }
.cart-action-bar {
  padding: .85rem 1.1rem calc(.85rem + env(safe-area-inset-bottom));
  border-top: 1px solid #deded8;
  background: #fff;
  box-shadow: 0 -12px 32px rgba(17,17,17,.07);
}
.cart-action-bar .cart-total-row { display: flex; align-items: center; justify-content: space-between; padding: 0 0 .65rem; border: 0; }
.cart-action-bar .cart-total-row span { color: #667085; font-size: .75rem; font-weight: 800; }
.cart-action-bar .cart-total-row strong { color: #111; font-size: 1.08rem; }
.cart-action-bar .btn { min-height: 48px; border-color: #f4bd19; background: #f4bd19; color: #111; }
.cart-action-bar > small { display: block; margin-top: .45rem; color: #7b8491; font-size: .66rem; text-align: center; }
.empty-cart { display: grid; justify-items: center; gap: .45rem; padding: 1.4rem .8rem; text-align: center; }
.empty-cart > span { font-size: 1.7rem; }
.empty-cart strong { color: #111; font-size: .9rem; }
.empty-cart p { max-width: 30ch; margin: 0 0 .45rem; color: #667085; font-size: .72rem; line-height: 1.45; }
.empty-cart .btn { min-height: 40px; padding: .55rem .85rem; }

/* v108: vollständiger, validierter Anfrageabschluss. */
.checkout-fields select {
  width: 100%;
  min-height: 42px;
  padding: .65rem .7rem;
  border: 1px solid #d7dbe1;
  border-radius: 10px;
  background: #fff;
  color: #111827;
  font: inherit;
}
.checkout-field > span { color: #3f4854; font-size: .72rem; font-weight: 850; }
.checkout-field b, .checkout-check b { color: #b42318; }
.checkout-field input, .checkout-field textarea, .checkout-field select { transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.checkout-field.has-error input,
.checkout-field.has-error textarea,
.checkout-field.has-error select {
  border-color: #d92d20 !important;
  background: #fff8f7 !important;
  box-shadow: 0 0 0 3px rgba(217,45,32,.12) !important;
}
.field-error { display: block; min-height: .8rem; color: #b42318 !important; font-size: .6rem !important; font-weight: 750; line-height: 1.3; }
.checkout-shipping-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; padding: .75rem; border: 1px solid #e2e3df; border-radius: 13px; background: #f8f8f6; }
.checkout-shipping-fields[hidden] { display: none !important; }
.checkout-consent { display: grid; gap: .65rem; }
.checkout-consent .cart-section-title { margin-bottom: .25rem; }
.checkout-check { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: .6rem; padding: .7rem; border: 1px solid #deded8; border-radius: 12px; background: #fff; color: #3f4854; font-size: .69rem; line-height: 1.45; cursor: pointer; }
.checkout-check input { width: 18px; height: 18px; margin: .08rem 0 0; accent-color: #d6a000; }
.checkout-check a { color: #6f5200; font-weight: 850; }
.checkout-check.has-error { border-color: #d92d20; background: #fff8f7; box-shadow: 0 0 0 3px rgba(217,45,32,.1); }
.checkout-check .field-error { margin-top: .2rem; }
.checkout-message { min-height: 0; margin: .7rem 0 0; padding: 0; border-radius: 11px; font-size: .7rem; font-weight: 800; line-height: 1.45; }
.checkout-message:not(:empty) { padding: .7rem .8rem; }
.checkout-message.error { border: 1px solid #f2b8b3; background: #fff4f2; color: #b42318; }
.checkout-message.info { border: 1px solid #b2d3ff; background: #eff7ff; color: #175cd3; }
.checkout-message.success { border: 1px solid #a9dfbd; background: #ecfdf3; color: #087443; }
.checkout-submit { position: relative; overflow: hidden; }
.checkout-submit.is-loading { padding-left: 3rem; cursor: wait; }
.checkout-submit.is-loading::before { content: ""; position: absolute; left: 1.15rem; top: 50%; width: 18px; height: 18px; margin-top: -9px; border: 2px solid rgba(17,17,17,.25); border-top-color: #111; border-radius: 50%; animation: finish-spin .7s linear infinite; }
.checkout-submit:disabled { opacity: .78; cursor: not-allowed; }
.checkout-success { margin-top: .7rem; padding: .8rem; border: 1px solid #9bd7b1; border-radius: 13px; background: #ecfdf3; color: #075d38; }
.checkout-success strong, .checkout-success span, .checkout-success a { display: block; }
.checkout-success strong { font-size: .75rem; }
.checkout-success span { margin-top: .2rem; font-size: .66rem; line-height: 1.4; }
.checkout-success a { width: fit-content; margin-top: .5rem; color: #075d38; font-size: .67rem; font-weight: 900; }
.coming-grid-single { grid-template-columns: minmax(0, 420px) !important; }

@media (max-width: 560px) {
  .cart-header { min-height: 84px; padding: .85rem 1rem !important; }
  .cart-scroll { padding: .7rem; }
  .cart-step-card { padding: .8rem; border-radius: 15px; }
  .professional-checkout .cart-customer-fields { grid-template-columns: 1fr; }
  .checkout-shipping-fields { grid-template-columns: 1fr; padding: .6rem; }
  .professional-checkout .cart-customer-fields label.full { grid-column: auto; }
  .cart-action-bar { padding-inline: .8rem; }
  .finish-design-text { border-width: 1.5px; }
}

/* Larger, visible resize targets for mouse and touch. */
.finish-logo,.finish-design-text{overflow:visible;user-select:none;-webkit-user-select:none;touch-action:none}
.finish-logo img{user-select:none;-webkit-user-drag:none}
.finish-resize,.finish-text-resize{position:absolute;right:-16px;bottom:-16px;width:32px;height:32px;min-width:32px;min-height:32px;display:grid;place-items:center;padding:0;border:2px solid white;border-radius:50%;background:#a87800;color:#fff;font:700 20px/1 system-ui;box-shadow:0 2px 8px #0004;cursor:nwse-resize;touch-action:none;z-index:15}
.finish-resize-left{left:-16px;right:auto;cursor:nesw-resize}
.finish-resize::before,.finish-text-resize::before{content:"";position:absolute;inset:-6px}
.finish-logo.is-dragging,.finish-design-text.is-dragging{z-index:20}

.finish-film-layer{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;background:transparent;z-index:2;cursor:pointer;outline:1px dashed #8c959d;touch-action:none}.finish-film-layer img{display:block;width:100%;height:auto;pointer-events:none}.finish-layer-tools{display:grid;gap:8px;margin-top:12px}.finish-layer-list{display:grid;gap:6px;max-height:210px;overflow:auto;margin:12px 0}.finish-layer-list button{display:flex;align-items:center;gap:8px;text-align:left;padding:8px;border:1px solid #ddd;border-radius:8px;background:#fff;font:inherit;font-size:12px}.finish-layer-list button.active{border-color:#a87800;background:#fff8df}.finish-layer-list img{width:36px;height:36px;object-fit:contain}.finish-layer-list span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finish-layer-list b{font-size:10px;color:#745400}.finish-ratio-lock{display:flex!important;align-items:center;gap:8px}.finish-ratio-lock input{width:18px!important;height:18px!important;min-height:0!important}.finish-image-controls .finish-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finish-image-controls input[type=number]{font-size:16px;min-width:0}

/* Firmenkleidung: feste Proportionen halten Brust-/Rückenposition am Kleidungsstück. */
.finish-stage .finish-product.finish-business-product{width:min(500px,45vw,calc((97dvh - 300px)*.81818));height:auto!important;min-height:0!important;aspect-ratio:9 / 11}
.finish-stage.dual .finish-product.finish-business-product{width:min(350px,25vw,calc((97dvh - 300px)*.81818))}
@media(max-width:820px){.finish-stage .finish-product.finish-business-product,.finish-stage.dual .finish-product.finish-business-product{width:min(310px,80vw)}}
