/* =========================================================
   МАШИННАЯ ВЫШИВКА (mashinnaya-vyshivka.php, v73)
   Подключается только на этой странице ($pageHead в inc/header.php).
   Калькулятор использует общие классы калькулятора чертежей (.dr-grid, .dr-seg, .dr-step, .dr-sum…) из style.css,
   здесь — только то, чего там нет. Цвета и шрифты — токены из style.css (:root). JS — assets/vyshivka.js
   ========================================================= */

/* герой: на фото чёрный свитшот и машина справа сверху — квадрат уводим влево вверх, круг вниз вправо */
.svc-visual--emb .svc-shape-sq{left:-2%;top:2%;width:46%;}
.svc-visual--emb .svc-shape-bar{bottom:8%;left:18%;width:70%;--rot:-10deg;}
.svc-visual--emb .svc-shape-circle{right:2%;top:auto;bottom:16%;width:12%;}
.svc-visual--emb .svc-sticker{right:auto;left:2%;bottom:2%;}
@media (prefers-reduced-motion:reduce){
  .svc-visual--emb .svc-shape-bar{transform:rotate(-10deg)!important;}
}

/* ---------- калькулятор: блоки-шаги ---------- */
.emb-block{background:#fff;border:2px solid var(--black);padding:20px 22px 22px;}
.emb-block + .emb-block{margin-top:16px;}
.emb-h{display:flex;align-items:center;gap:12px;font-size:19px;margin:0 0 14px;}
.emb-n{display:inline-grid;place-items:center;width:30px;height:30px;flex:none;background:var(--black);color:var(--yellow);
  font-size:15px;font-weight:600;transform:rotate(-6deg);}
.emb-note{margin:10px 0 0;font-size:13.5px;color:var(--grey);max-width:70ch;}
.emb-lbl{margin:0 0 8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;}

/* вкладки вышивок */
.emb-tabs{display:flex;flex-wrap:wrap;gap:8px;}
.emb-tab{display:flex;border:2px solid var(--black);background:var(--paper);min-width:0;}
.emb-tab.is-active{background:var(--yellow);}
.emb-tab-main{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border:0;background:none;cursor:pointer;
  font:inherit;color:var(--ink);text-align:left;min-width:0;}
.emb-tab-main b{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:14px;}
.emb-tab-main small{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;}
.emb-tab-x{width:34px;border:0;border-left:2px solid var(--black);background:none;font-size:20px;font-weight:700;cursor:pointer;color:var(--ink);}
.emb-tab-x:hover{background:var(--black);color:var(--yellow);}
.emb-tab-main:focus-visible,.emb-tab-x:focus-visible{outline:3px solid var(--black);outline-offset:-5px;}
.emb-add{margin:10px 0 0;padding:9px 14px;border:2px dashed var(--black);background:none;font:700 14px var(--font-body);color:var(--ink);cursor:pointer;}
.emb-add:hover{background:var(--yellow);border-style:solid;}
.emb-add:disabled{cursor:default;color:var(--grey);border-color:var(--line);background:none;}
.emb-add:focus-visible{outline:3px solid var(--black);outline-offset:2px;}

.emb-editor{margin-top:18px;padding-top:18px;border-top:2px solid var(--black);}
.emb-size{display:grid;grid-template-columns:minmax(0,1fr) 176px;gap:20px;align-items:start;}
.emb-wh{display:flex;align-items:flex-end;gap:10px;}
.emb-num{display:flex;flex-direction:column;gap:5px;}
.emb-num .mono{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--grey);}
.emb-num input{width:110px;padding:10px 12px;border:2px solid var(--black);background:#fff;font:700 18px var(--font-body);
  color:var(--ink);border-radius:var(--radius);font-variant-numeric:tabular-nums;}
.emb-num input:focus{outline:3px solid var(--yellow);outline-offset:0;}
.emb-x{font-family:var(--font-display);font-weight:900;font-size:22px;padding-bottom:10px;}
.emb-fit{margin:12px 0 0;padding:10px 12px;background:var(--paper);border:2px solid var(--line);font-size:14px;max-width:70ch;}
.emb-fit.is-warn{border-color:var(--black);background:#fff7cf;}
.emb-opts{display:grid;gap:8px;margin-top:14px;}

/* чекбоксы-карточки (опции вышивки и «Дополнительно») */
.emb-check{position:relative;display:flex;cursor:pointer;}
.emb-check input{position:absolute;opacity:0;width:1px;height:1px;}
.emb-check > span{flex:1;display:block;padding:10px 12px 10px 40px;border:2px solid var(--line);background:#fff;position:relative;transition:border-color .15s ease;}
.emb-check > span::before{content:"";position:absolute;left:12px;top:13px;width:16px;height:16px;border:2px solid var(--black);background:#fff;}
.emb-check b{display:block;font-size:14.5px;}
.emb-check small{display:block;font-size:12.5px;color:var(--grey);margin-top:1px;}
.emb-check:hover > span{border-color:var(--black);}
.emb-check input:checked + span{border-color:var(--black);}
.emb-check input:checked + span::before{background:var(--yellow);transform:rotate(-8deg);}
.emb-check input:checked + span::after{content:"";position:absolute;left:17px;top:15px;width:5px;height:10px;border:solid var(--black);border-width:0 2.5px 2.5px 0;transform:rotate(40deg);}
.emb-check input:focus-visible + span{outline:3px solid var(--black);outline-offset:2px;}

/* превью в масштабе */
.emb-prev{margin:0;background:var(--paper);border:2px solid var(--black);padding:10px 10px 8px;}
.emb-prev svg{display:block;width:100%;height:auto;}
.emb-prev-tee{fill:var(--black);stroke:var(--black);stroke-width:.4;stroke-linejoin:round;}
.emb-prev-field{fill:none;stroke:var(--paper);stroke-width:.45;stroke-dasharray:1.2 .9;transition:all .25s ease;}
.emb-prev-field.is-warn{stroke:var(--red);}
.emb-prev-art{fill:var(--yellow);}
.emb-prev-bar{fill:var(--red);}
.emb-prev figcaption{margin-top:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;text-align:center;}

/* поля вышивки — плитки с прямоугольником в масштабе (35 см = 100 %) */
.emb-or{margin-top:20px;}
.emb-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;background:var(--black);border:2px solid var(--black);}
.emb-field{position:relative;display:flex;cursor:pointer;}
.emb-field input{position:absolute;opacity:0;width:1px;height:1px;}
.emb-field-in{flex:1;display:flex;flex-direction:column;gap:2px;padding:10px 10px 10px;background:#fff;transition:background .15s ease;min-width:0;}
.emb-field-pic{display:flex;align-items:flex-end;justify-content:flex-start;height:46px;margin-bottom:6px;}
.emb-field-pic i{display:block;width:calc(var(--w) / 35 * 46px);height:calc(var(--h) / 35 * 46px);border:2px solid var(--black);background:var(--paper);}
.emb-field-pic i.is-big{width:46px;height:46px;border-style:dashed;}
.emb-field b{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;}
.emb-field-price{font-family:var(--font-display);font-weight:900;font-size:17px;font-variant-numeric:tabular-nums;}
.emb-field small{font-size:12px;color:var(--grey);line-height:1.3;}
.emb-field:hover .emb-field-in{background:var(--paper);}
.emb-field input:checked + .emb-field-in{background:var(--yellow);}
.emb-field input:checked + .emb-field-in small{color:var(--ink);}
.emb-field input:checked + .emb-field-in .emb-field-pic i{background:var(--black);}
.emb-field input:focus-visible + .emb-field-in{outline:3px solid var(--black);outline-offset:-6px;}
.emb-field.is-auto .emb-field-in::after{content:"подобрано";position:absolute;right:6px;top:6px;background:var(--black);color:var(--yellow);
  font:600 12px var(--font-mono);text-transform:uppercase;padding:2px 5px;transform:rotate(-4deg);}
.emb-field--custom .emb-field-in{background:var(--paper);}
.emb-field--custom .emb-field-price{font-size:14px;}

/* тираж и программа */
.emb-qty-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-bottom:18px;}
.emb-qty-row .dr-step input{font-size:18px;}
.emb-tiers{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px;background:var(--black);border:2px solid var(--black);}
.emb-tiers li{background:#fff;padding:6px 10px;font-size:12px;font-weight:600;text-transform:uppercase;display:flex;flex-direction:column;}
.emb-tiers li b{font-size:13px;}
.emb-tiers li.is-on{background:var(--black);color:var(--yellow);}
.emb-progs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--black);border:2px solid var(--black);}
.emb-prog{position:relative;display:flex;cursor:pointer;}
.emb-prog input{position:absolute;opacity:0;width:1px;height:1px;}
.emb-prog > span{flex:1;display:flex;flex-direction:column;gap:3px;padding:12px 14px 14px;background:#fff;}
.emb-prog b{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:15px;line-height:1.1;}
.emb-prog em{font-style:normal;font-family:var(--font-mono);font-weight:600;font-size:14px;font-variant-numeric:tabular-nums;}
.emb-prog small{font-size:12.5px;color:var(--grey);}
.emb-prog:hover > span{background:var(--paper);}
.emb-prog input:checked + span{background:var(--yellow);}
.emb-prog input:checked + span small{color:var(--ink);}
.emb-prog input:focus-visible + span{outline:3px solid var(--black);outline-offset:-6px;}
.emb-extras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}

/* итог */
.emb-lines{list-style:none;margin:0;padding:0;font-size:13.5px;}
.emb-lines li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);}
.emb-lines li span{min-width:0;}
.emb-lines li b{white-space:nowrap;font-variant-numeric:tabular-nums;}
.emb-lines li.is-head{font-family:var(--font-mono);font-size:12px;font-weight:600;text-transform:uppercase;border-bottom:2px solid var(--black);padding-top:0;}
.emb-lines li.is-disc b{background:var(--yellow);padding:0 4px;}
.emb-lines li.is-min{color:var(--grey);}
.emb-sum .dr-sum-total b{font-variant-numeric:tabular-nums;}
.emb-per{margin:6px 0 0;font-size:12px;font-weight:600;text-align:right;text-transform:uppercase;}
.emb-per:empty{display:none;}
.emb-copy{width:100%;margin:0 0 6px;}
.emb-copied{margin:0 0 10px;font-size:12px;font-weight:600;text-transform:uppercase;text-align:center;}
.emb-order{margin-top:14px;padding-top:14px;border-top:2px solid var(--black);}
.emb-order input[type="file"]{padding:8px;font-size:13px;font-weight:500;}
.emb-file-note{display:block;margin-top:4px;font-size:12px;color:var(--grey);}
.emb-ta{position:fixed;left:-9999px;top:0;}

/* ---------- поля в масштабе (прайс) ---------- */
.emb-scale{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:2px;background:var(--black);border:2px solid var(--black);}
.emb-scale-card{background:#fff;padding:16px 12px 14px;display:flex;flex-direction:column;gap:4px;}
.emb-scale-pic{height:96px;display:flex;align-items:flex-end;margin-bottom:8px;}
.emb-scale-pic i{display:block;width:calc(var(--w) / 35 * 96px);height:calc(var(--h) / 35 * 96px);max-width:100%;background:var(--black);}
.emb-scale-card h3{font-size:12px;font-weight:600;letter-spacing:.03em;font-variant-numeric:tabular-nums;}
.emb-scale-price{font-family:var(--font-display);font-weight:900;font-size:22px;line-height:1.05;font-variant-numeric:tabular-nums;}
.emb-scale-card p{margin:2px 0 0;font-size:12.5px;color:var(--grey);line-height:1.35;}
.emb-scale-card.is-hit{background:var(--yellow);}
.emb-scale-card.is-hit .emb-scale-pic i{background:var(--red);}
.emb-scale-card.is-hit p{color:var(--ink);}

.emb-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--black);border:2px solid var(--black);margin-top:28px;}
.emb-rule{background:#fff;padding:20px 20px 18px;}
.emb-rule h3{font-size:17px;margin-bottom:10px;}
.emb-rule ul{list-style:none;margin:0;padding:0;}
.emb-rule li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px;}
.emb-rule li b{white-space:nowrap;font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums;}
.emb-rule p{margin:10px 0 0;font-size:13px;color:var(--grey);}
.emb-examples{margin-top:28px;}
.emb-examples td b{font-family:var(--font-display);font-weight:900;font-variant-numeric:tabular-nums;}

/* ---------- куда вышить ---------- */
.emb-where{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--black);border:2px solid var(--black);}
.emb-where-card{background:#fff;padding:20px 20px 18px;display:flex;flex-direction:column;gap:6px;}
.emb-where-n{align-self:flex-start;background:var(--black);color:var(--yellow);font-size:12px;font-weight:600;padding:3px 7px;transform:rotate(-4deg);}
.emb-where-card h3{font-size:18px;margin-top:4px;}
.emb-where-card p{margin:0;font-size:14px;color:var(--grey);}
.emb-where-size{margin-top:auto;padding-top:8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;}

/* ---------- программа (чёрная секция на базе .dr-gost) ---------- */
.emb-prog-cards{display:grid;gap:2px;background:#2c2b26;border:2px solid #2c2b26;position:relative;}
.emb-prog-card{background:var(--black);padding:20px 20px 18px 64px;position:relative;display:flex;flex-direction:column;gap:6px;}
.emb-prog-card::before{content:"";position:absolute;left:22px;top:24px;width:22px;height:22px;background:var(--yellow);transform:rotate(-6deg);}
.emb-prog-card b{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:17px;color:var(--paper);}
.emb-prog-card span{font-size:14px;color:var(--grey-soft);max-width:52ch;}

/* ---------- макет ---------- */
.emb-maket{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--black);border:2px solid var(--black);}
.emb-maket-card{background:#fff;padding:22px 22px 20px;}
.emb-maket-card h3{font-size:18px;margin-bottom:10px;}
.emb-maket-card ul{list-style:none;margin:0;padding:0;}
.emb-maket-card li{position:relative;padding:6px 0 6px 22px;font-size:14.5px;}
.emb-maket-card li::before{content:"";position:absolute;left:0;top:12px;width:10px;height:10px;background:var(--black);transform:rotate(-8deg);}
.emb-maket-card.is-good li::before{background:var(--yellow);outline:2px solid var(--black);}
.emb-maket-card.is-dark{background:var(--black);color:var(--paper);}
.emb-maket-card.is-dark h3{color:var(--yellow);}
.emb-maket-card.is-dark li{color:#cfcabb;}
.emb-maket-card.is-dark li::before{background:var(--yellow);}

/* ---------- адаптив ---------- */
@media (max-width:1100px){
  .emb-scale{grid-template-columns:repeat(5,minmax(0,1fr));}
  .emb-extras{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:900px){
  .emb-fields{grid-template-columns:repeat(3,minmax(0,1fr));}
  .emb-rules,.emb-maket{grid-template-columns:1fr;}
  .emb-where{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px){
  .emb-block{padding:16px 14px 18px;}
  .emb-h{font-size:17px;}
  .emb-size{grid-template-columns:minmax(0,1fr) 112px;gap:12px;}
  .emb-num input{width:84px;font-size:16px;padding:9px 10px;}
  .emb-fields{grid-template-columns:repeat(2,minmax(0,1fr));}
  .emb-progs{grid-template-columns:1fr;}
  .emb-extras{grid-template-columns:1fr;}
  .emb-scale{grid-template-columns:repeat(3,minmax(0,1fr));}
  .emb-scale-pic{height:64px;}
  .emb-scale-pic i{width:calc(var(--w) / 35 * 64px);height:calc(var(--h) / 35 * 64px);}
  .emb-scale-price{font-size:18px;}
  .emb-scale-card{padding:12px 10px;}
  .emb-where{grid-template-columns:1fr;}
  .emb-prog-card{padding:18px 16px 16px 54px;}
  .emb-prog-card::before{left:16px;}
}
@media (max-width:420px){
  .emb-size{grid-template-columns:1fr;}
  .emb-prev{max-width:180px;}
}
@media (prefers-reduced-motion:reduce){
  .emb-prev-field{transition:none;}
}
