/* ПринтЭРА — дизайн-система сайта
   Шрифты: Unbounded (заголовки), Golos Text (интерфейс), JetBrains Mono (цифры)
   Палитра: CMYK — маджента как цвет действия, циан как вторичный.
   Нейтрали с холодным уклоном: сталь, а не бумага. */

:root{
  --paper:#FFFFFF;
  --mist:#F4F6F8;
  --mist-2:#E9EDF1;
  --ink:#0E1216;
  --ink-2:#2E3844;
  --muted:#69747F;
  --line:#DDE3E8;
  --line-2:#C4CDD5;

  --accent:#C4005F;
  --accent-hi:#A30450;
  --accent-soft:#FCE8F1;
  --cyan:#00688A;
  --cyan-soft:#E2F0F5;

  --stock:#147A46;
  --stock-soft:#E3F4EA;
  --order:#9C5A00;
  --order-soft:#FBEEDA;

  --panel:#0E1216;      /* инвертированная панель: шапка, склад, калькулятор, подвал */
  --panel-fg:#FFFFFF;
  --panel-muted:#93A0AD;
  --on-accent:#FFFFFF;   /* текст на акцентной заливке */

  --r:3px;
  --shadow:0 1px 2px rgba(14,18,22,.05), 0 12px 28px -22px rgba(14,18,22,.5);
  --shadow-lg:0 2px 4px rgba(14,18,22,.06), 0 24px 48px -28px rgba(14,18,22,.45);

  --f-display:"Unbounded","Golos Text",Impact,sans-serif;
  --f-body:"Golos Text",-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",monospace;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0C0F13;
    --mist:#141920;
    --mist-2:#1C222B;
    --ink:#E9EDF2;
    --ink-2:#B4BEC9;
    --muted:#8794A1;
    --line:#242C36;
    --line-2:#36404C;

    --panel:#05070A;
    --panel-fg:#E9EDF2;
    --panel-muted:#7E8B99;
    --on-accent:#12060D;

    --accent:#FF4D9D;
    --accent-hi:#FF7AB4;
    --accent-soft:#2B0A1B;
    --cyan:#45B8DC;
    --cyan-soft:#08222C;

    --stock:#4ECB8C;
    --stock-soft:#0C2A1B;
    --order:#E3A44C;
    --order-soft:#2A1D08;

    --shadow:0 1px 2px rgba(0,0,0,.5), 0 14px 30px -24px rgba(0,0,0,1);
    --shadow-lg:0 2px 6px rgba(0,0,0,.6), 0 28px 56px -30px rgba(0,0,0,1);
  }
}
:root[data-theme="dark"]{
  --paper:#0C0F13;
  --mist:#141920;
  --mist-2:#1C222B;
  --ink:#E9EDF2;
  --ink-2:#B4BEC9;
  --muted:#8794A1;
  --line:#242C36;
  --line-2:#36404C;
  --panel:#05070A;
  --panel-fg:#E9EDF2;
  --panel-muted:#7E8B99;
  --on-accent:#12060D;
  --accent:#FF4D9D;
  --accent-hi:#FF7AB4;
  --accent-soft:#2B0A1B;
  --cyan:#45B8DC;
  --cyan-soft:#08222C;
  --stock:#4ECB8C;
  --stock-soft:#0C2A1B;
  --order:#E3A44C;
  --order-soft:#2A1D08;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 14px 30px -24px rgba(0,0,0,1);
  --shadow-lg:0 2px 6px rgba(0,0,0,.6), 0 28px 56px -30px rgba(0,0,0,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--f-body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}

.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.stack{display:flex;flex-direction:column}

/* ============ типографика ============ */
h1,h2,h3{margin:0;text-wrap:balance}
.h-display{
  font-family:var(--f-display);font-weight:700;
  font-size:clamp(30px,4.6vw,52px);line-height:1.06;letter-spacing:-.02em;
}
.h-sec{
  font-family:var(--f-display);font-weight:600;
  font-size:clamp(22px,2.8vw,32px);line-height:1.14;letter-spacing:-.015em;
}
.h-sub{font-family:var(--f-body);font-weight:600;font-size:19px;line-height:1.3}
.eyebrow{
  font-family:var(--f-mono);font-size:11px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
}
.lede{font-size:18px;line-height:1.55;color:var(--ink-2)}
.small{font-size:14px;color:var(--muted)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.rub{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ============ шапка ============ */
.topbar{
  background:var(--panel);color:var(--panel-fg);
  font-size:13px;
}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;min-height:38px;padding-top:6px;padding-bottom:6px}
.topbar a{opacity:.85}
.topbar a:hover{opacity:1;text-decoration:underline}
.topbar .spacer{flex:1}
.topbar .dot{width:6px;height:6px;border-radius:50%;background:#3FD98A;display:inline-block;margin-right:7px;vertical-align:middle}

header.site{
  position:sticky;top:0;z-index:60;background:var(--paper);
  border-bottom:1px solid var(--line);
}
.hdr{display:flex;align-items:center;gap:14px;min-height:68px}
.logo{display:flex;align-items:baseline;gap:9px;flex:none}
.logo b{font-family:var(--f-display);font-weight:700;font-size:21px;letter-spacing:-.03em}
.logo > span{font-family:var(--f-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.logo .m{color:var(--accent)}
.logo .mark{width:27px;height:27px;flex:none;color:var(--ink)}
footer.site .logo .mark{color:var(--panel-fg)}


nav.main{display:flex;gap:2px;flex:1;flex-wrap:wrap}
nav.main > a, nav.main > .has-mega > button, nav.main > .has-mega > summary{
  display:block;padding:9px 10px;border-radius:var(--r);
  font-size:14.5px;font-weight:500;background:none;border:0;
  white-space:nowrap;
}
@media(max-width:1360px){.logo > span{display:none}}
nav.main a:hover, nav.main button:hover{background:var(--mist-2)}
nav.main a.on{color:var(--accent);font-weight:600}
nav.main .chev{font-size:10px;color:var(--muted);margin-left:5px}

.has-mega{position:relative}
.mega{
  position:absolute;top:calc(100% + 10px);left:-12px;z-index:70;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-lg);padding:24px;
  display:none;grid-template-columns:1fr 1fr;gap:32px;width:min(720px,90vw);
}
.has-mega[data-open="1"] .mega{display:grid}
.has-mega[open] > .mega{display:grid}
.has-mega > summary{cursor:pointer;list-style:none}
.has-mega > summary::-webkit-details-marker{display:none}
.printer-menu > summary{cursor:pointer;padding:7px 9px;font-size:15px}
.printer-menu[open]{background:var(--mist);border-radius:var(--r)}
.printer-menu > ul{padding:0 0 8px 16px}
.printer-menu > ul a{font-size:14px}
.header-secondary{border-top:1px solid var(--line);background:var(--mist)}
.header-secondary nav{display:flex;gap:24px;min-height:34px;align-items:center;font-size:13px;color:var(--muted)}
.header-secondary a:hover{color:var(--accent)}
.printer-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 18px;font-size:14px;font-weight:600}
.printer-filter[hidden]{display:none}
.printer-filter select{max-width:100%;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r);font:inherit;background:var(--paper);color:var(--ink)}
.printer-groups{display:grid;gap:14px}
.printer-group{border:1px solid var(--line);border-radius:var(--r)}
.printer-group > summary{cursor:pointer;padding:20px;font-size:20px;font-weight:600}
.printer-group > summary span{float:right;font-size:13px;font-weight:400;color:var(--muted);padding-top:5px}
.printer-group[open] > summary{border-bottom:1px solid var(--line);background:var(--mist)}
.printer-group-body{padding:20px}
.printer-group-body > a{margin-bottom:20px}
.mega h4{
  margin:0 0 12px;font-family:var(--f-mono);font-size:10.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.mega ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}
.mega li a{display:block;padding:7px 9px;border-radius:var(--r);font-size:15px;line-height:1.3}
.mega li a:hover{background:var(--accent-soft);color:var(--accent)}
.mega li a small{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.mega li a:hover small{color:var(--accent)}

.hdr-actions{display:flex;gap:8px;align-items:center;flex:none}
@media(max-width:620px){.hdr-actions .btn-ghost{display:none}}

.burger{display:none;background:none;border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;font-size:14px}

@media(max-width:1100px){
  nav.main{display:none;order:5;width:100%;flex-direction:column;padding-bottom:14px}
  nav.main.open{display:flex}
  nav.main > a, nav.main > .has-mega > button{width:100%;text-align:left;font-size:16px;padding:11px 12px}
  .mega{position:static;display:grid;box-shadow:none;border:0;padding:4px 0 10px 12px;width:auto;grid-template-columns:1fr;gap:18px}
  .has-mega .mega{display:none}
  .has-mega[data-open="1"] .mega{display:grid}
  .has-mega[open] > .mega{display:grid}
  nav.main > .has-mega > summary{padding:11px 12px;font-size:16px}
  .burger{display:block}
  .hdr{flex-wrap:wrap;min-height:60px}
}

/* ============ кнопки ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 20px;border-radius:var(--r);border:1px solid transparent;
  font-weight:600;font-size:15px;line-height:1.2;text-align:center;
  transition:background .14s ease,border-color .14s ease,color .14s ease;
}
.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn-primary:hover{background:var(--accent-hi);border-color:var(--accent-hi)}
.btn-ghost{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);background:var(--mist)}
.btn-solid{background:var(--panel);color:var(--panel-fg);border-color:var(--panel)}
.btn-solid:hover{opacity:.88}
.btn-sm{padding:8px 13px;font-size:13.5px}
.btn-block{width:100%}

/* ============ бейджи ============ */
.badge{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--f-mono);font-size:10.5px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;
  padding:4px 8px;border-radius:2px;white-space:nowrap;
}
.b-stock{background:var(--stock-soft);color:var(--stock)}
.b-order{background:var(--order-soft);color:var(--order)}
.b-hit{background:var(--accent-soft);color:var(--accent)}
.b-new{background:var(--cyan-soft);color:var(--cyan)}
.badge .pip{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}

/* ============ карточка товара ============ */
.grid{display:grid;gap:16px}
.g-2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.g-3{grid-template-columns:repeat(auto-fill,minmax(258px,1fr))}
.g-4{grid-template-columns:repeat(auto-fill,minmax(215px,1fr))}

.pcard{
  display:flex;flex-direction:column;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;position:relative;transition:border-color .14s ease,box-shadow .14s ease;
}
.pcard:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
.pcard::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line-2);
}
.pcard.is-stock::before{background:var(--stock)}
.pcard.is-order::before{background:var(--order)}

.pcard-fig{
  aspect-ratio:4/3;background:var(--mist);display:flex;align-items:center;justify-content:center;
  border-bottom:1px solid var(--line);position:relative;overflow:hidden;
}
.pcard-fig svg{width:60%;height:60%;opacity:.55}
.pcard-fig img{width:100%;height:100%;object-fit:cover}
.pcard-badges{position:absolute;top:9px;left:9px;display:flex;gap:5px;flex-wrap:wrap;max-width:calc(100% - 18px)}
.pcard-body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.pcard-cat{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pcard-name{font-weight:600;font-size:15.5px;line-height:1.28}
.pcard-name a:hover{color:var(--accent)}
.pcard-desc{font-size:13.5px;color:var(--muted);line-height:1.45;margin-top:-2px}
.pcard-foot{margin-top:auto;padding-top:10px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.pcard-price{font-family:var(--f-mono);font-weight:700;font-size:19px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pcard-old{font-family:var(--f-mono);font-size:13px;color:var(--muted);text-decoration:line-through;display:block;font-weight:400}
.pcard-avail{font-size:12.5px;font-weight:600}
.pcard-avail.s{color:var(--stock)}
.pcard-avail.o{color:var(--order)}

/* ============ секции ============ */
section, [id]{scroll-margin-top:84px}
section.blk{padding:64px 0}
section.blk.tight{padding:44px 0}
.blk-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.blk-head p{margin:8px 0 0;color:var(--ink-2);max-width:60ch}
.tinted{background:var(--mist)}
.hr{border:0;border-top:1px solid var(--line);margin:0}

/* ============ hero ============ */
.hero{padding:52px 0 56px;border-bottom:1px solid var(--line)}
.hero-grid{display:grid;gap:40px;align-items:center}
@media(min-width:960px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:56px}}
.hero h1{margin:16px 0 18px}
.hero .hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.hero-note{margin-top:18px;font-size:13.5px;color:var(--muted)}

.warehouse{
  border:1px solid var(--line);border-radius:var(--r);background:var(--mist);
  overflow:hidden;box-shadow:var(--shadow);
}
.wh-top{
  display:flex;align-items:center;gap:10px;padding:13px 18px;
  background:var(--panel);color:var(--panel-fg);
}
.wh-top .t{font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700}
.wh-top .live{margin-left:auto;display:flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:11px;opacity:.8}
.wh-top .live i{width:7px;height:7px;border-radius:50%;background:#3FD98A;display:block}
.wh-row{
  display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;
  padding:13px 18px;border-bottom:1px solid var(--line);
}
.wh-row:last-child{border-bottom:0}
.wh-row .n{font-weight:600;font-size:14.5px;line-height:1.3}
.wh-row .n small{display:block;color:var(--muted);font-weight:400;font-size:12.5px;margin-top:1px}
.wh-row .q{font-family:var(--f-mono);font-weight:700;font-size:16px;color:var(--stock);font-variant-numeric:tabular-nums;text-align:right}
.wh-row .q small{display:block;font-size:10.5px;font-weight:400;color:var(--muted);letter-spacing:.06em}
.wh-foot{padding:14px 18px;background:var(--mist-2);font-size:13.5px;color:var(--ink-2)}

/* ============ полоса фактов ============ */
.facts{border-bottom:1px solid var(--line);background:var(--mist)}
.facts-grid{display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.fact{padding:20px 22px;border-right:1px solid var(--line)}
.fact:last-child{border-right:0}
.fact b{display:block;font-family:var(--f-display);font-weight:600;font-size:17px;letter-spacing:-.02em;margin-bottom:3px}
.fact span{font-size:13.5px;color:var(--muted);line-height:1.4;display:block}
@media(max-width:700px){.fact{border-right:0;border-bottom:1px solid var(--line)}.fact:last-child{border-bottom:0}}

/* ============ плитки задач ============ */
.tasks{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.task{
  display:flex;flex-direction:column;gap:10px;padding:22px 22px 20px;
  border:1px solid var(--line);border-radius:var(--r);background:var(--paper);
  transition:border-color .14s ease,transform .14s ease,box-shadow .14s ease;
}
.task:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}
.task .ico{width:34px;height:34px;color:var(--accent)}
.task h3{font-family:var(--f-body);font-weight:600;font-size:17.5px;line-height:1.25}
.task p{margin:0;font-size:14px;color:var(--muted);line-height:1.45}
.task .go{
  margin-top:auto;padding-top:12px;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700;
}

/* ============ комплекты ============ */
.kit{
  border:1px solid var(--line);border-radius:var(--r);background:var(--paper);
  display:flex;flex-direction:column;overflow:hidden;
}
.kit-top{padding:20px 22px 16px;border-bottom:1px solid var(--line);background:var(--mist)}
.kit-top .who{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700}
.kit-top h3{margin:8px 0 6px;font-family:var(--f-display);font-weight:600;font-size:21px;letter-spacing:-.02em}
.kit-top p{margin:0;font-size:14px;color:var(--muted)}
.kit-list{list-style:none;margin:0;padding:16px 22px;display:flex;flex-direction:column;gap:9px;flex:1}
.kit-list li{display:flex;gap:10px;font-size:14.5px;line-height:1.4;align-items:baseline}
.kit-list li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none;transform:translateY(-2px)}
.kit-list li span{margin-left:auto;font-family:var(--f-mono);font-size:13px;color:var(--muted);white-space:nowrap}
.kit-foot{padding:18px 22px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.kit-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.kit-price b{font-family:var(--f-mono);font-weight:700;font-size:25px;letter-spacing:-.03em}
.kit-price s{font-family:var(--f-mono);font-size:14px;color:var(--muted)}
.kit-pay{font-size:13px;color:var(--muted)}
.kit-pay b{color:var(--stock);font-family:var(--f-mono)}

/* ============ калькулятор ============ */
.calc{
  display:grid;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);
}
@media(min-width:880px){.calc{grid-template-columns:1.15fr .85fr}}
.calc-in{padding:28px 30px;display:flex;flex-direction:column;gap:20px}
.calc-out{padding:28px 30px;background:var(--panel);color:var(--panel-fg);display:flex;flex-direction:column;gap:18px}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:7px}
.field .hint{font-weight:400;color:var(--muted);font-size:12.5px}
.field input[type=range]{width:100%;accent-color:var(--accent)}
.field .val{font-family:var(--f-mono);font-weight:700;font-size:17px;color:var(--accent)}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{
  padding:9px 14px;border:1px solid var(--line-2);background:var(--paper);
  border-radius:var(--r);font-size:14px;font-weight:500;
}
.seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.calc-line{display:flex;justify-content:space-between;gap:14px;font-size:14.5px;padding-bottom:12px;border-bottom:1px solid color-mix(in srgb, var(--panel-fg) 16%, transparent)}
.calc-line b{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.calc-big{margin-top:auto}
.calc-big .lbl{font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;opacity:.7}
.calc-big .num{font-family:var(--f-display);font-weight:700;font-size:44px;line-height:1;letter-spacing:-.03em;margin-top:8px}
.calc-big .num span{font-size:20px;font-weight:500;margin-left:6px;letter-spacing:0}

/* ============ фильтры каталога ============ */
.cat-layout{display:grid;gap:28px;align-items:start}
@media(min-width:980px){.cat-layout{grid-template-columns:250px 1fr}}
.filters{
  border:1px solid var(--line);border-radius:var(--r);background:var(--paper);
  position:sticky;top:88px;
  /* Панель приклеена к шапке, и когда фильтров больше, чем высота экрана, нижние
     было не достать: колесо над панелью листало товары. Своя прокрутка с contain
     держит жест внутри фильтра, по оси X оставляем hidden — иначе поедут скругления. */
  max-height:calc(100vh - 108px);overflow:hidden auto;overscroll-behavior:contain;
}
.f-group{padding:16px 18px;border-bottom:1px solid var(--line)}
.f-group:last-child{border-bottom:0}
.f-group h4{
  margin:0 0 11px;font-family:var(--f-mono);font-size:10.5px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--muted);
}
.f-opt{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:14.5px;cursor:pointer}
.f-opt input{accent-color:var(--accent);width:15px;height:15px;flex:none}
.f-opt .cnt{margin-left:auto;font-family:var(--f-mono);font-size:11.5px;color:var(--muted)}
.cat-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.cat-bar .found{font-size:14px;color:var(--muted)}
.cat-bar select,.searchbox input{
  padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r);
  background:var(--paper);color:var(--ink);font:inherit;font-size:14px;
}
.searchbox{flex:1;min-width:200px;display:flex}
.searchbox input{width:100%}
.empty{padding:48px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:var(--r)}

/* ============ таблица характеристик ============ */
.specs{width:100%;border-collapse:collapse;font-size:14.5px}
.specs td{padding:10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.specs td:first-child{color:var(--muted);width:47%;padding-right:16px}
.specs td:last-child{font-weight:500;font-variant-numeric:tabular-nums}
.specs tr:last-child td{border-bottom:0}

/* Блок условий под галереей: у товара с цветами правая колонка длинная, и
   раньше «Доставка, запуск, обучение» уезжала под обе колонки, оставляя дыру
   под фотографией. Здесь он её занимает, поэтому набран чуть плотнее. */
.p-under-gal{margin-top:26px}
.p-under-gal .h-sec{font-size:19px}
.p-under-gal .specs{font-size:13.5px}
.p-under-gal .specs td{padding:8px 0}

/* Шапка карточки — над обеими колонками: так название читается как оглавление
   страницы, а фотография и цена начинаются с одной линии и заканчиваются вровень. */
.p-head{margin-bottom:-18px}   /* сетка страницы уже даёт 40px, иначе название отрывается от фото */
.p-head .pill-row,.p-head .p-badges{margin-bottom:12px}

/* Превью в списках «Без этого не поедет» и «Пригодится к этому»: строка из одного
   текста читается как накладная, а снимок сразу говорит, что именно предлагают. */
.need-th{
  width:46px;height:35px;flex:none;overflow:hidden;background:var(--mist);
  border:1px solid var(--line);border-radius:var(--r);
  display:flex;align-items:center;justify-content:center;
}
.need-th img{width:100%;height:100%;object-fit:cover;display:block}
.need-th svg{width:58%;height:58%;opacity:.5}

/* Наведение на любое превью: снимок приближается внутри своей рамки.
   Рамкам нужен overflow:hidden, иначе увеличенный кадр полезет на соседей. */
.pcard-fig,.citem .th,.pgal-th,.need-th{overflow:hidden}
.pcard-fig img,.citem .th img,.pgal-th img,.need-th img{
  transition:transform .22s cubic-bezier(.2,.7,.3,1);will-change:transform;
}
.pcard-fig:hover img{transform:scale(1.2)}
.citem .th:hover img,.pgal-th:hover img,.need-th:hover img{transform:scale(1.5)}
/* При системном «уменьшить движение» гасим только анимацию: сам зум остаётся,
   иначе рассмотреть товар было бы нечем, а это не спецэффект, а функция. */
@media(prefers-reduced-motion:reduce){
  .pcard-fig img,.citem .th img,.pgal-th img,.need-th img{transition:none}
}

.p-desc{max-width:70ch}
.p-desc p{margin:0 0 13px;font-size:15.5px;line-height:1.62;color:var(--ink-2)}
.p-desc p:first-child{font-size:17px;color:var(--ink)}
.p-desc p:last-child{margin-bottom:0}

.need-list{border:1px solid var(--line);border-radius:var(--r);padding:0 16px;max-width:760px;background:var(--paper)}
.need-list .need{border-top:1px solid var(--line)}
.need-list .need:first-child{border-top:0}
.need-list .need .t a{font-weight:600}
.need-list .need .t a:hover{color:var(--accent)}

/* ============ цвета чернил ============ */
/* Блок стоит в правой колонке карточки, рядом с ценой: у чернил покупают цвет,
   а не «товар вообще», поэтому выбор должен быть там же, где решение о покупке. */
.p-vars{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:22px;background:var(--paper)}
.p-vars .hd{
  background:var(--mist);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);padding:10px 16px;border-bottom:1px solid var(--line);
}
.p-vars .pvar{border:0;border-radius:0;max-width:none}
.p-vars .note-v{margin:0;padding:11px 16px 13px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}

.pvar{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;max-width:620px;background:var(--paper)}
.pvar-row{
  display:flex;align-items:center;gap:12px;padding:10px 14px;
  border-bottom:1px solid var(--line);font-size:14.5px;min-height:52px;
}
.pvar-row:last-child{border-bottom:0}
.pvar-row.on{background:var(--accent-soft)}
.pvar-dot{width:20px;height:20px;border-radius:50%;border:1px solid var(--line-2);flex:none}
.pvar-clear{background:linear-gradient(45deg,#e7edf2 25%,transparent 25%,transparent 75%,#e7edf2 75%),linear-gradient(45deg,#e7edf2 25%,#fff 25%,#fff 75%,#e7edf2 75%);background-size:10px 10px;background-position:0 0,5px 5px}
.pvar-clean{border-top:2px solid var(--line-2)}
.pvar-ph{width:38px;height:38px;border-radius:var(--r);border:1px solid var(--line);object-fit:cover;flex:none;background:var(--mist)}
.pvar-nm{font-weight:500;min-width:86px}
.pvar-av{font-size:12.5px;color:var(--muted);white-space:nowrap}
.pvar-av.s{color:var(--stock)}
.pvar-av.o{color:var(--order)}
.pvar-pr{
  margin-left:auto;font-family:var(--f-mono);font-size:14px;font-weight:700;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.pvar-add{
  border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);color:var(--ink);
  font:inherit;font-size:13.5px;padding:7px 13px;cursor:pointer;white-space:nowrap;
}
.pvar-add:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.pvar-qty{display:flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--paper)}
.pvar-qty button{width:30px;height:30px;border:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:1;cursor:pointer}
.pvar-qty button:hover{background:var(--mist)}
.pvar-qty b{
  min-width:32px;text-align:center;font-family:var(--f-mono);font-size:13.5px;line-height:30px;
  border-left:1px solid var(--line-2);border-right:1px solid var(--line-2);
}
@media(max-width:560px){
  .pvar-row{flex-wrap:wrap;gap:8px 10px}
  .pvar-av{order:3;width:100%}
  .pvar-nm{min-width:0;flex:1}
}

/* ============ отзывы ============ */
.rev{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;background:var(--paper);display:flex;flex-direction:column;gap:9px}
.rev-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.rev-top b{font-size:15px}
.rev-top time{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.rev .stars{color:var(--accent);font-size:13px;letter-spacing:.1em}
.rev p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.rev .what{font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:9px;margin-top:auto}
.rev .what a{color:var(--cyan);font-weight:500}
.rev .what a:hover{text-decoration:underline}

/* ============ FAQ ============ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  padding:18px 40px 18px 0;font-weight:600;font-size:16.5px;cursor:pointer;
  list-style:none;position:relative;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:8px;top:16px;font-family:var(--f-mono);
  font-size:20px;color:var(--accent);line-height:1;
}
.faq details[open] summary::after{content:"−"}
.faq .ans{padding:0 40px 20px 0;color:var(--ink-2);font-size:15.5px;line-height:1.6}
.faq .ans p{margin:0 0 12px}
.faq .ans p:last-child{margin:0}

/* ============ форма ============ */
.form{display:grid;gap:14px}
@media(min-width:700px){.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}}
.form label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.form input,.form textarea,.form select{
  width:100%;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r);
  background:var(--paper);color:var(--ink);font:inherit;font-size:15px;
}
.form textarea{min-height:96px;resize:vertical}
.form .agree{font-size:12.5px;color:var(--muted);line-height:1.45}

/* ============ футер ============ */
footer.site{background:var(--panel);color:var(--panel-muted);margin-top:0;padding:52px 0 30px}
.f-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
footer.site h4{
  margin:0 0 14px;font-family:var(--f-mono);font-size:10.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--panel-muted);
}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
footer.site a:hover{color:var(--panel-fg);text-decoration:underline}
footer.site .logo b{color:var(--panel-fg)}
footer.site .logo > span{color:var(--panel-muted)}
.f-bottom{
  margin-top:36px;padding-top:20px;
  border-top:1px solid color-mix(in srgb, var(--panel-fg) 13%, transparent);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--f-mono);font-size:11.5px;letter-spacing:.05em;color:var(--panel-muted);
}

/* ============ прочее ============ */
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);padding:16px 0}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{opacity:.5}
.note{
  border-left:3px solid var(--cyan);background:var(--cyan-soft);
  padding:14px 18px;border-radius:0 var(--r) var(--r) 0;font-size:14.5px;color:var(--ink-2);
}
.note b{color:var(--ink)}
.pill-row{display:flex;gap:8px;flex-wrap:wrap}
.scroll-x{overflow-x:auto}


/* Меню на статических страницах товаров и категорий. Бургер там не работает —
   его вешает app.js, которого на этих страницах нет. Поэтому на узком экране
   меню не прячем, а превращаем в прокручиваемую вбок строку. */
@media(max-width:1100px){
  nav.main.nav-static{display:flex;flex-direction:row;order:5;width:100%;
    overflow-x:auto;gap:2px;padding:2px 0 10px;scrollbar-width:none}
  nav.main.nav-static::-webkit-scrollbar{display:none}
  nav.main.nav-static > a{width:auto;white-space:nowrap;font-size:15px;padding:8px 11px}
}

/* ================= корзина ================= */
/* Кнопка в шапке */
.cart-link{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border:1px solid var(--line-2);border-radius:var(--r);
  color:var(--ink);flex:none;transition:border-color .15s,color .15s;
}
.cart-link:hover{border-color:var(--accent);color:var(--accent)}
.cart-link svg{width:19px;height:19px}
.cart-link .cnt{
  position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;
  display:flex;align-items:center;justify-content:center;border-radius:9px;
  background:var(--accent);color:var(--on-accent);
  font-family:var(--f-mono);font-size:11px;font-weight:700;line-height:1;
}

/* Кнопка на карточке товара */
.pcard-add{
  margin-top:10px;width:100%;display:flex;align-items:center;justify-content:center;gap:7px;
  padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r);
  background:var(--paper);color:var(--ink);font:inherit;font-size:14px;font-weight:600;
  cursor:pointer;transition:border-color .15s,background .15s,color .15s;
}
.pcard-add svg{width:16px;height:16px;flex:none}
a.pcard-add{text-decoration:none}   /* у товара с цветами это ссылка «Выбрать цвет» */
.pcard-add:hover{border-color:var(--accent);color:var(--accent)}
.pcard-add.in{background:var(--stock-soft);border-color:var(--stock);color:var(--stock)}

/* Подтверждение у кнопки */
.cart-flash{
  position:absolute;z-index:80;padding:7px 12px;border-radius:var(--r);
  background:var(--panel);color:var(--panel-fg);font-size:13px;font-weight:600;
  white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(6px);
  transition:opacity .2s,transform .2s;box-shadow:var(--shadow);
}
.cart-flash.on{opacity:1;transform:translateY(0)}

/* Страница корзины */
.cart-head{margin-bottom:18px}
.cart-h1{
  font-family:var(--f-display);font-weight:600;font-size:clamp(26px,3.4vw,36px);
  line-height:1.08;letter-spacing:-.025em;margin:8px 0 0;
}
.cart-lede{font-size:16.5px;line-height:1.55;color:var(--ink-2);max-width:56ch;margin:12px 0 0}
.cart-empty{padding:40px 0 60px}
.cart-cta{display:flex;flex-direction:column;gap:9px;margin-top:20px}
.cart-empty .cart-cta{flex-direction:row;flex-wrap:wrap}

.cart-grid{display:grid;gap:26px;align-items:start}
@media(min-width:1000px){.cart-grid{grid-template-columns:1fr 350px;gap:32px}}
.cart-side{position:sticky;top:88px}

/* Мотивирующая строка */
.motiv{
  display:flex;flex-direction:column;gap:3px;padding:15px 18px;border-radius:var(--r);
  border-left:3px solid var(--cyan);background:var(--cyan-soft);color:var(--ink);margin-bottom:22px;
}
.motiv b{font-size:15.5px}
.motiv span{font-size:14px;line-height:1.5;color:var(--ink-2)}
.motiv.ok{border-left-color:var(--stock);background:var(--stock-soft)}
.motiv.warn{border-left-color:var(--order);background:var(--order-soft)}

/* Строки заказа */
.citems{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:22px}
.citem{display:flex;gap:15px;padding:15px;border-bottom:1px solid var(--line)}
.citem:last-child{border-bottom:0}
.citem .th{
  width:104px;height:78px;flex:none;border-radius:var(--r);overflow:hidden;
  background:var(--mist);display:flex;align-items:center;justify-content:center;
}
.citem .th img{width:100%;height:100%;object-fit:cover}
.citem .th svg{width:38%;height:38%;opacity:.45;color:var(--ink-2)}
.citem .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.citem .nm{font-weight:600;font-size:15px;line-height:1.35;color:var(--ink)}
.citem .nm:hover{color:var(--accent)}
.citem .av{font-size:12.5px;font-weight:600}
.citem .av.s{color:var(--stock)}
.citem .av.o{color:var(--order)}
.citem .bot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.qty{display:flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
.qty button{
  width:30px;height:30px;border:0;background:var(--paper);color:var(--ink);
  font-size:16px;line-height:1;cursor:pointer;
}
.qty button:hover{background:var(--mist)}
.qty span{
  min-width:32px;text-align:center;font-family:var(--f-mono);font-size:13.5px;font-weight:700;
  border-left:1px solid var(--line-2);border-right:1px solid var(--line-2);line-height:30px;
}
.rm{border:0;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;padding:0}
.rm:hover{color:var(--accent)}
.citem .pr{margin-left:auto;font-family:var(--f-mono);font-weight:700;font-size:16px;white-space:nowrap}

/* Блоки корзины */
.cart-blk{border:1px solid var(--line);border-radius:var(--r);margin-bottom:18px;overflow:hidden;background:var(--paper)}
.cart-blk.warn{border-color:var(--order)}
.cart-blk-h{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  background:var(--mist);border-bottom:1px solid var(--line);
}
.cart-blk-h b{font-size:15px}
.cart-blk-b{padding:15px 16px}
.cart-blk-b > p{margin:0 0 12px;font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.cart-blk-b > p:last-child{margin-bottom:0}
.tagi{
  margin-left:auto;font-family:var(--f-mono);font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border-radius:2px;white-space:nowrap;
}
.t-acc{background:var(--accent-soft);color:var(--accent)}
.t-ord{background:var(--order-soft);color:var(--order)}
.t-stk{background:var(--stock-soft);color:var(--stock)}

/* Строка «чего не хватает» / «пригодится» */
.need{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.need:first-of-type{border-top:0}
.need .t{flex:1;min-width:0;font-weight:600;font-size:14.5px;line-height:1.35}
.need .t small{display:block;font-weight:400;font-size:12.5px;color:var(--muted);margin-top:2px}
.need .pr{font-family:var(--f-mono);font-size:13.5px;color:var(--ink-2);white-space:nowrap}
.need button{flex:none}
.need-ok{
  flex:none;display:inline-flex;align-items:center;gap:6px;padding:7px 11px;
  color:var(--stock);background:var(--stock-soft);border-radius:var(--r);
  font-size:13px;font-weight:600;white-space:nowrap;
}
.need-ok svg{width:14px;height:14px}

/* Сроки отгрузки */
.ship-row{display:flex;gap:14px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line)}
.ship-row:first-child{border-top:0;padding-top:0}
.ship-row .d{
  font-family:var(--f-mono);font-weight:700;font-size:12.5px;padding:4px 9px;border-radius:2px;
  white-space:nowrap;flex:none;min-width:86px;text-align:center;
}
.ship-row .d.s{background:var(--stock-soft);color:var(--stock)}
.ship-row .d.o{background:var(--order-soft);color:var(--order)}
.ship-row .l{font-size:14px;line-height:1.5;color:var(--ink-2)}

/* Окупаемость */
.pay-big{display:flex;align-items:baseline;gap:9px;margin-bottom:10px}
.pay-big b{font-family:var(--f-mono);font-weight:700;font-size:40px;letter-spacing:-.03em;line-height:1}
.pay-big span{font-size:15px;color:var(--muted)}

/* Итог */
.cart-sum{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper)}
.incl{display:flex;gap:12px;justify-content:space-between;align-items:baseline;padding:7px 0;font-size:14px;border-top:1px solid var(--line)}
.incl:first-child{border-top:0;padding-top:0}
.incl span{color:var(--ink-2)}
.incl b{font-family:var(--f-mono);font-size:13px;white-space:nowrap}
.total{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:15px 16px;background:var(--panel);color:var(--panel-fg);
}
.total span{font-size:14.5px;color:var(--panel-muted)}
.total b{font-family:var(--f-mono);font-weight:700;font-size:24px;letter-spacing:-.02em}
.cart-sum .cart-small{margin:10px 16px 0;font-size:12.5px;line-height:1.5;color:var(--muted)}
.cart-sum .cart-cta{margin:14px 16px 0}
.cart-note{
  margin:14px 16px 16px;padding:11px 13px;background:var(--mist);border-radius:var(--r);
  font-size:13px;line-height:1.5;color:var(--ink-2);
}

/* Фильтры каталога на телефоне: списком они отжимают товары на полтора экрана вниз,
   поэтому сворачиваем их в раскрывающийся блок. */
.f-toggle{display:none}
@media(max-width:979px){
  .filters{position:static;top:auto;max-height:none;overflow:hidden}
  .f-toggle{
    display:flex;align-items:center;gap:9px;width:100%;padding:13px 16px;
    border:0;background:var(--mist);color:var(--ink);font:inherit;font-size:15px;font-weight:600;
    cursor:pointer;text-align:left;
  }
  .f-toggle svg{width:16px;height:16px;flex:none;transition:transform .2s}
  .f-toggle .n{
    margin-left:auto;font-family:var(--f-mono);font-size:11.5px;font-weight:700;
    background:var(--accent);color:var(--on-accent);border-radius:9px;padding:2px 7px;
  }
  .f-toggle .n:empty{display:none}
  .filters[data-open="1"] .f-toggle svg{transform:rotate(180deg)}
  .filters .f-body{display:none}
  .filters[data-open="1"] .f-body{display:block;border-top:1px solid var(--line)}
}

/* Кнопка «В корзину» на странице товара: .btn не рассчитан на иконку внутри,
   без этого svg растягивается на всю кнопку и выдавливает надпись. */
.p-add{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.p-add svg{width:17px;height:17px;flex:none}
.p-add.in{background:var(--stock);border-color:var(--stock);color:var(--on-accent)}
/* hidden у span проигрывает display:flex — возвращаем ему силу */
.cart-link .cnt[hidden]{display:none}

/* Шапка на телефоне: логотип, «Меню», корзина и «Подобрать» должны уместиться
   в одну строку, иначе действия уезжают на второй ряд и съедают экран. */
@media(max-width:1100px){
  /* На обычных страницах меню прячется за «Меню», поэтому строка не переносится.
     На статических t/ k/ z/ бургера нет, меню лежит отдельной прокручиваемой
     строкой — там перенос обязателен, иначе строка распирает всю страницу. */
  .hdr:not(.hdr-static){flex-wrap:nowrap}
  .hdr.hdr-static{flex-wrap:wrap}
  .hdr .logo{flex:1;min-width:0}
  .hdr-actions{margin-left:auto}
  nav.main:not(.nav-static){order:5;flex-basis:100%}
  nav.main.nav-static{flex:1 0 100%;min-width:0}
}
@media(max-width:620px){
  .hdr{gap:9px}
  .burger{padding:9px 11px}
  .hdr-actions .btn-primary{padding:11px 14px;font-size:14px}
}
@media(max-width:420px){
  .logo > span{display:none}          /* подпись «оборудование для печати» */
  .hdr-actions .btn-primary{display:none}   /* «Подобрать» есть в меню и на главной */
}

/* ============ отправка заявок ============ */
/* Ловушка для ботов: скрываем так, чтобы автозаполнение браузера её не увидело,
   а скринридер пропустил (aria-hidden в разметке). */
.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.form-result{
  margin-top:14px;padding:14px 16px;border-radius:var(--r);
  border-left:3px solid var(--stock);background:var(--stock-soft);
  font-size:14.5px;line-height:1.55;color:var(--ink);
}
.form-result.warn{border-left-color:var(--order);background:var(--order-soft)}
.form-result b{display:block;font-size:15.5px;margin-bottom:4px}
.form-result p{margin:0;color:var(--ink-2)}
.form-result p + p{margin-top:10px}
.form-result a{color:var(--accent);font-weight:600}
.form-result .fr-btns{display:flex;gap:9px;flex-wrap:wrap}
.form-result .fr-btns a{color:inherit}
.form-result .fr-btns .btn-primary{color:var(--on-accent)}
.form button[type=submit][disabled]{opacity:.6;cursor:progress}

/* Товар без снимка: вместо пустого серого прямоугольника — честное объяснение
   и способ получить фото прямо сейчас. */
.nophoto{
  aspect-ratio:4/3;background:var(--mist);border:1px solid var(--line);border-radius:var(--r);
  display:flex;align-items:center;justify-content:center;padding:26px;
}
.nophoto p{margin:0;max-width:34ch;text-align:center;font-size:14.5px;line-height:1.6;color:var(--ink-2)}
.nophoto p b{display:block;font-size:16px;color:var(--ink);margin-bottom:8px}
.nophoto a{color:var(--accent);font-weight:600}

/* Корзина на узком экране. Ячейка грида по умолчанию не сжимается уже своего
   содержимого (min-width:auto), из-за этого строка заказа выпирала за экран. */
.cart-grid > *{min-width:0}
.cart-main,.citems,.citem,.citem .info{min-width:0}
.citem .nm{overflow-wrap:anywhere}
@media(max-width:560px){
  .citem{gap:12px;padding:13px}
  .citem .th{width:84px;height:63px}
  .citem .bot{gap:10px}
  .citem .pr{width:100%;margin-left:0;order:3;font-size:17px}
  .need{flex-wrap:wrap}
  .need .t{flex:1 1 100%}
  .need .pr{margin-left:0}
  .need button{margin-left:auto}
  .ship-row{flex-direction:column;gap:6px}
  .ship-row .d{min-width:0;align-self:flex-start}
}

/* ============ галерея товара ============ */
/* Снимок не обрезаем: на странице товара станок должен быть виден целиком,
   иначе с телефона видно кусок корпуса и непонятно, что покупаешь. */
/* Высоту задаёт сам снимок, а не жёсткая пропорция: в архиве вперемешку
   горизонтальные и вертикальные кадры, и при фиксированных 4:3 вертикальный
   станок ужимался в узкую полоску между двумя серыми полями. */
/* Колонка грида по умолчанию не сжимается уже содержимого: лента миниатюр
   растягивала страницу товара до 648 px при экране 375. */
.p-two,.p-two > *,.pgal,.pgal-main,.pgal-strip{min-width:0}
.pgal-main{
  position:relative;background:var(--mist);border:1px solid var(--line);border-radius:var(--r);
  min-height:340px;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.pgal-main img{
  max-width:100%;max-height:min(72vh,620px);width:auto;height:auto;
  object-fit:contain;cursor:zoom-in;display:block;
}
@media(max-width:900px){.pgal-main{min-height:260px}.pgal-main img{max-height:62vh}}
.pgal-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:40px;height:52px;border:0;border-radius:var(--r);
  background:rgba(255,255,255,.86);color:#0E1216;
  font-size:26px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s;
}
.pgal-main:hover .pgal-nav,.pgal-nav:focus-visible{opacity:1}
.pgal-nav.prev{left:10px}
.pgal-nav.next{right:10px}
.pgal-zoom{
  position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:7px;
  padding:8px 12px;border:0;border-radius:var(--r);
  background:rgba(14,18,22,.78);color:#fff;
  font:inherit;font-size:13px;font-weight:600;cursor:pointer;
}
.pgal-zoom svg{width:15px;height:15px;flex:none}
.pgal-zoom:hover{background:rgba(14,18,22,.92)}
.pgal-count{
  position:absolute;left:10px;bottom:10px;padding:5px 10px;border-radius:var(--r);
  background:rgba(14,18,22,.72);color:#fff;
  font-family:var(--f-mono);font-size:12px;font-weight:700;
}
.pgal-strip{
  display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px;
  scrollbar-width:thin;
}
.pgal-th{
  flex:none;width:88px;height:66px;padding:0;cursor:pointer;overflow:hidden;
  border:1px solid var(--line);border-radius:var(--r);background:var(--mist);
  transition:border-color .15s,opacity .15s;opacity:.72;
}
.pgal-th img{width:100%;height:100%;object-fit:cover;display:block}
.pgal-th:hover{opacity:1}
.pgal-th.on{border-color:var(--accent);border-width:2px;opacity:1}

/* Просмотр во весь экран: сюда человек идёт, когда надо разглядеть узел */
.pv{
  position:fixed;inset:0;z-index:200;display:none;
  align-items:center;justify-content:center;
  background:#06090C;padding:44px 16px;
}
.pv.on{display:flex}
body.pv-open{overflow:hidden}
.pv img{max-width:100%;max-height:100%;object-fit:contain;border-radius:2px}
.pv-x{
  position:absolute;top:12px;right:16px;width:42px;height:42px;border:0;border-radius:var(--r);
  background:rgba(255,255,255,.12);color:#fff;font-size:26px;line-height:1;cursor:pointer;
}
.pv-x:hover{background:rgba(255,255,255,.22)}
.pv-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:52px;height:74px;border:0;border-radius:var(--r);
  background:rgba(255,255,255,.12);color:#fff;font-size:34px;line-height:1;cursor:pointer;
}
.pv-nav:hover{background:rgba(255,255,255,.22)}
.pv-nav.prev{left:14px}
.pv-nav.next{right:14px}
.pv-count{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  font-family:var(--f-mono);font-size:13px;font-weight:700;color:rgba(255,255,255,.8);
}
@media(max-width:620px){
  .pv{padding:56px 8px}
  .pv-nav{width:44px;height:60px;font-size:28px;background:rgba(255,255,255,.16)}
  .pv-nav.prev{left:6px}
  .pv-nav.next{right:6px}
  .pgal-th{width:74px;height:56px}
  .pgal-nav{opacity:1;background:rgba(255,255,255,.8)}
}

/* Фирменный логотип ПринтЭРА. */
.logo{align-items:center}
.logo .brand-logo{display:block;width:190px;height:auto;max-width:100%;flex:none}
footer.site .brand-logo{box-sizing:content-box;background:#fff;padding:8px 10px;border-radius:4px}
@media(max-width:620px){.logo .brand-logo{width:145px}}
@media(max-width:380px){.logo .brand-logo{width:125px}}

/* Проверка состава заявки и дата складских данных. */
.order-summary{margin:0 0 22px}
.order-summary[hidden]{display:none}
.order-summary [data-order-items]{white-space:pre-line;overflow-wrap:anywhere;margin:8px 0}
.wh-top{flex-wrap:wrap}
.wh-top .live{white-space:normal}
.stock-date{color:var(--muted);margin:0 0 16px}

/* Общие снимки наборов чернил показываем целиком. */
.pcard-fig img.ink-cover,.pc-fig img.ink-cover,.p-fig img.ink-cover{object-fit:contain}

.image-note{color:var(--muted);line-height:1.5;margin:12px 0 16px}

/* Две строки навигации и раскрывающийся каталог на всех экранах. */
.mega{max-height:calc(100vh - 150px);overflow-y:auto}
@media(min-width:980px){.filters{top:122px;max-height:calc(100vh - 142px)}}
@media(max-width:1100px){
  nav.main:not(.nav-static).open{position:absolute;top:100%;left:0;right:0;width:100%;padding:12px 24px;background:var(--paper);border-bottom:1px solid var(--line);max-height:calc(100vh - 110px);overflow-y:auto}
  nav.main.nav-static{overflow:visible;flex-wrap:wrap}
  nav.main.nav-static > .has-mega > summary{width:auto;white-space:nowrap;font-size:15px;padding:8px 11px}
  nav.main.nav-static > .has-mega[open]{flex:1 0 100%;order:3}
  .mega{max-height:none;overflow:visible}
}
@media(max-width:620px){
  .printer-group > summary{font-size:17px;padding:16px}
  .printer-group > summary span{float:none;display:block;padding-left:20px}
  .printer-group-body{padding:14px}
}
