/*
Theme Name: iRitual Маркет
Template: iritual
Description: Дочерняя тема iritual.ru — каркас «Маркет» (ORG-DESIGN-013/014). Логика,
  формы, корзина, оплата, schema и site.js остаются родительскими; здесь только
  шапка, футер, общий слой и новые шаблоны витрины. Классы с префиксом irm-,
  чтобы ничего не пересеклось с родительской темой и другими брендами.
Version: 0.1.0
Author: ORG
*/

/* СОБРАНО автоматически из src/style.src.css, масштаб 110 %.
   Руками не править — правка уйдёт при следующей сборке.
   Сборка: python3 src/build-style.py */
/* ——— общий слой: гасим каркас старой темы под боковое меню ——— */body.irm-body{background:var(--irm-bg)}.irm-body .wrapper{display:block;max-width:none;margin:0;padding:0;background:transparent}.irm-body .content-block{display:block}.irm-body .page-wrap{width:100%;max-width:1392px;min-height:0;margin:0 auto;padding:0 24px;
  background:transparent;box-shadow:none}.irm-body .page-wrap>.pager{margin-top:14px}
@media(max-width:836px){.irm-body .page-wrap{padding:0 16px}}:root{--irm-bg:#f6f5fa;--irm-surface:#fff;--irm-tile:#efedf6;--irm-ink:#33313d;--irm-ink-2:#4a4758;--irm-mut:#6f6a85;--irm-line:#e2dfee;
--irm-accent:#5b5187;--irm-accent-h:#4d4476;--irm-accent-soft:#ebe8f5;--irm-sale:#c2333a;--irm-sale-bg:#fdeceb;--irm-sale-ink:#b4262c;--irm-brand-coral:#f66467;--irm-star:#f2a31b;--irm-ft:#221f33;
--irm-r-s:10px;--irm-r-m:14px;--irm-r-l:20px;--irm-r-xl:28px;--irm-sh-1:0 1px 2px rgba(34,28,66,.06),0 4px 12px rgba(34,28,66,.05);--irm-sh-2:0 2px 4px rgba(34,28,66,.06),0 12px 32px rgba(34,28,66,.12);--irm-ease:cubic-bezier(0.2,0,0,1)}.irm-body .irm-sh,.irm-body .irm-sh *,.irm-body .irm-sh *:before,.irm-body .irm-sh *:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background:var(--irm-bg)}.irm-body .irm-sh{color:var(--irm-ink);font:16px/1.5 Tahoma,Geneva,Verdana,sans-serif}.irm-body .irm-sh :where(a){color:inherit;text-decoration:none}.irm-body .irm-sh :where(img){display:block;max-width:100%}.irm-body .irm-sh :where(button,input){font:inherit;color:inherit}.irm-body .irm-sh :where(p){margin:0}.irm-body .irm-sh :where(svg){width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.irm-body .irm-sh :where(svg.irm-fill){fill:currentColor;stroke:none}.irm-body .irm-sh :focus-visible{outline:2px solid var(--irm-accent);outline-offset:2px;border-radius:var(--irm-r-s)}.irm-body .irm-w{max-width:1392px;margin-inline:auto;padding-inline:24px}.irm-body .irm-sh :where(h1,h2){margin:0;letter-spacing:-.022em;line-height:1.12;text-wrap:balance}.irm-body .irm-sh :where(h1){font-size:40px}.irm-body .irm-sh :where(h2){font-size:32px}.irm-body .irm-eyebrow{font-size:14px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.irm-body .irm-lnk{display:inline-flex;align-items:center;gap:2px;font-weight:600;color:var(--irm-accent);white-space:nowrap}.irm-body .irm-lnk svg{width:18px;height:18px;transition:translate .15s var(--irm-ease)}a:hover>.irm-lnk svg,.irm-body .irm-lnk:hover svg{translate:3px 0}.irm-body .irm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border:0;border-radius:var(--irm-r-m);background:var(--irm-accent);color:#fff;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .irm-btn:hover{background:var(--irm-accent-h)}.irm-body .irm-btn:active{scale:.96}.irm-body .irm-btn--white{background:#fff;color:var(--irm-accent)}.irm-body .irm-btn--white:hover{background:var(--irm-accent-soft)}.irm-body .irm-btn--ghost{background:transparent;color:var(--irm-accent);box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .irm-btn--ghost:hover{background:var(--irm-accent-soft)}.irm-body .irm-promo{background:var(--irm-sale-bg);color:var(--irm-sale-ink);font-size:14px;text-align:center}.irm-body .irm-promo a{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:2px 6px;padding:8px 16px}.irm-body .irm-promo__t{display:inline-flex;align-items:center;gap:5px;margin-inline-start:10px;padding:2px 10px;border-radius:999px;background:#fff;font-weight:600}.irm-body .irm-promo__t svg{width:14px;height:14px}.irm-body .irm-top{font-size:14px;color:var(--irm-mut)}.irm-body .irm-top__in{display:flex;align-items:center;gap:24px;height:40px}.irm-body .irm-top nav{display:flex;gap:20px;margin-inline-end:auto;min-width:0;overflow:hidden;white-space:nowrap}.irm-body .irm-top nav a{transition:color .15s}.irm-body .irm-top nav a:hover{color:var(--irm-accent)}.irm-body .irm-top__i{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:color .15s}.irm-body .irm-top__i:hover{color:var(--irm-accent)}.irm-body .irm-top__i svg{width:17px;height:17px}.irm-body .irm-top__i b{color:var(--irm-ink);font-weight:600}.irm-body .irm-top__i .irm-st svg{width:15px;height:15px}.irm-body .irm-tel{font-size:15px;font-weight:600;color:var(--irm-ink);white-space:nowrap;font-variant-numeric:tabular-nums}.irm-body .irm-tel b{color:var(--irm-sale)}.irm-body .irm-hd{position:sticky;top:0;z-index:20;background:var(--irm-surface);box-shadow:0 1px 0 var(--irm-line)}.irm-body .irm-hd__in{display:flex;align-items:center;gap:18px;height:84px}.irm-body .irm-logo{flex:none;display:block;color:var(--irm-accent)}.irm-body .irm-lg{display:block;width:auto;height:46px;fill:currentColor;stroke:none;fill-rule:evenodd}.irm-body .irm-lg--mob{display:none}.irm-body .irm-lg__sub{fill:#343941}.irm-body .irm-ft .irm-lg__sub{fill:#c9c5d8}.irm-body .irm-lg__sub{fill:#343941}.irm-body .irm-ft .irm-lg__sub{fill:#c9c5d8}.irm-body .irm-catbtn{flex:none;display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 22px 0 18px;border:0;border-radius:var(--irm-r-m);background:var(--irm-accent);color:#fff;font-weight:600;font-size:16px;cursor:pointer;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .irm-catbtn:hover{background:var(--irm-accent-h)}.irm-body .irm-catbtn:active{scale:.96}.irm-body .irm-catbtn__i{position:relative;width:22px;height:22px}.irm-body .irm-catbtn__i svg{position:absolute;inset:0;transition:opacity .2s var(--irm-ease),scale .2s var(--irm-ease),filter .2s var(--irm-ease)}.irm-body .irm-catbtn__i svg:last-child,.irm-body .irm-catbtn[aria-expanded=true] .irm-catbtn__i svg:first-child{opacity:0;scale:.25;filter:blur(4px)}.irm-body .irm-catbtn[aria-expanded=true] .irm-catbtn__i svg:last-child{opacity:1;scale:1;filter:none}.irm-body .irm-srch{flex:1;min-width:0;display:flex;height:52px;padding:3px;border-radius:var(--irm-r-m);background:var(--irm-surface);box-shadow:inset 0 0 0 2px var(--irm-accent);transition:box-shadow .15s}.irm-body .irm-srch:focus-within{box-shadow:inset 0 0 0 2px var(--irm-accent),0 0 0 4px var(--irm-accent-soft)}.irm-body .irm-srch input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:0 16px;font-size:16px}.irm-body .irm-srch input::placeholder{color:var(--irm-mut)}.irm-body .irm-srch button{flex:none;width:58px;border:0;border-radius:var(--irm-r-m);background:var(--irm-accent);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background-color .15s}.irm-body .irm-srch button:hover{background:var(--irm-accent-h)}.irm-body .irm-acts{display:flex;gap:2px}.irm-body .irm-acts a{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:66px;padding:8px 6px;border-radius:var(--irm-r-s);font-size:14px;color:var(--irm-ink-2);transition:color .15s,background-color .15s}.irm-body .irm-acts a:hover{color:var(--irm-accent);background:var(--irm-accent-soft)}.irm-body .irm-hd__m{display:none}.irm-body .irm-sh :where(svg.irm-ms){stroke:none;fill:initial;width:32px;height:32px}.irm-body .irm-call{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.irm-body .irm-call__tel{color:#3b3a42;font-size:25px;line-height:1;font-weight:600;letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums;transition:color .15s}.irm-body .irm-call__tel b{font-weight:600;color:var(--irm-accent)}.irm-body .irm-call__tel:hover{color:var(--irm-accent)}.irm-body .irm-call__ms{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--irm-mut)}.irm-body .irm-msb{display:block;border-radius:50%;transition:scale .15s var(--irm-ease),box-shadow .15s}.irm-body .irm-msb:hover{scale:1.08;box-shadow:var(--irm-sh-1)}.irm-body .irm-msb:active{scale:.96}.irm-body .irm-call__ms svg.irm-ms{width:22px;height:22px}.irm-body .irm-mg{position:absolute;inset-inline:0;top:100%;background:var(--irm-surface);box-shadow:0 1px 0 var(--irm-line) inset,var(--irm-sh-2);max-height:calc(100vh - 130px);overflow:auto}.irm-body .irm-mg__in{display:grid;grid-template-columns:1fr 1.7fr 1fr 1fr 1fr;gap:32px;padding-block:28px 36px}.irm-body .irm-mg__col{display:flex;flex-direction:column;gap:2px;font-size:14px}.irm-body .irm-mg__col .irm-mg__col+.irm-mg__col{margin-top:20px}.irm-body .irm-mg__t{display:flex;align-items:center;min-height:36px;font-size:16px;font-weight:700;margin-bottom:8px;color:var(--irm-ink)}.irm-body .irm-mg a:not(.irm-mg__t){padding:4px 0;color:var(--irm-ink-2);transition:color .15s}.irm-body .irm-mg a:hover{color:var(--irm-accent)}.irm-body .irm-mg__col--m{display:none}.irm-body .irm-mg__flat{columns:2;column-gap:24px}.irm-body .irm-mg__flat a{break-inside:avoid}.irm-body .irm-mg__i{display:flex!important;align-items:center;gap:10px}.irm-body .irm-mg__flat .irm-mg__i{padding:5px 0!important}.irm-body .irm-mi{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--irm-r-s);background:var(--irm-accent)}.irm-body .irm-mi svg{width:22px;height:22px;stroke:none}.irm-body .irm-mg__t .irm-mi{width:36px;height:36px;border-radius:var(--irm-r-s)}.irm-body .irm-mg__t .irm-mi svg{width:25px;height:25px}.irm-body .irm-quick__l{flex:1 1 0;min-width:0;display:flex;gap:22px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}.irm-body .irm-quick{display:flex;gap:16px;height:52px;align-items:center;white-space:nowrap;font-size:14px;color:var(--irm-ink-2)}.irm-body .irm-quick a{line-height:44px;transition:color .15s}.irm-body .irm-quick a:hover{color:var(--irm-accent)}.irm-body .irm-visit{flex:none;display:inline-flex;align-items:center;gap:10px;height:40px;margin-inline-start:auto;padding:0 10px 0 14px;border-radius:999px;background:var(--irm-sale-bg);color:var(--irm-sale-ink)!important;font-weight:600;line-height:1!important;transition:box-shadow .15s,scale .15s var(--irm-ease)}.irm-body .irm-visit:hover{box-shadow:0 0 0 2px var(--irm-sale-ink) inset}.irm-body .irm-visit:active{scale:.96}.irm-body .irm-visit small{font-size:inherit;font-weight:400}.irm-body .irm-visit b{padding:5px 10px;border-radius:999px;background:var(--irm-sale);color:#fff;font-size:14px;letter-spacing:.05em;text-transform:uppercase}.irm-body .irm-visit svg{width:20px;height:20px}.irm-body .irm-visit svg:last-child{width:16px;height:16px;margin-inline-start:-4px}.irm-body .irm-visitbar{display:none}.irm-body .irm-quick__sale{color:var(--irm-sale)!important;font-weight:600}/* ——— Рекламные плашки (ORG-SITES-128) ———
   Разметка первого экрана главной стала общим блоком: та же плашка нужна и
   на витринах, и в тексте страницы. Раскладок четыре — «как на главной»
   (баннер плюс две плашки), ряд из трёх, ряд из двух и одна широкая. */.irm-body .irm-ad{display:grid;gap:16px;margin-top:8px}.irm-body .irm-ad--3{grid-template-columns:repeat(3,minmax(0,1fr))}.irm-body .irm-ad--2{grid-template-columns:repeat(2,minmax(0,1fr))}.irm-body .irm-ad--1{grid-template-columns:minmax(0,1fr)}.irm-body .irm-ad--hero{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(0,1fr);grid-template-rows:1fr 1fr;gap:16px;margin-top:8px}.irm-body .irm-ad__main{grid-row:1/3;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);min-height:336px;border-radius:var(--irm-r-xl);overflow:hidden;background:var(--irm-accent);color:#fff}.irm-body .irm-ad__main>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;padding:40px 44px}.irm-body .irm-ad__main .irm-eyebrow{padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.16)}.irm-body .irm-ad__main strong{font-size:44px;line-height:1.04;letter-spacing:-.03em;text-wrap:balance}.irm-body .irm-ad__main ul{display:flex;gap:28px;margin:2px 0 8px;padding:0;list-style:none;font-size:14px;line-height:1.3;color:#dcd8ee}.irm-body .irm-ad__main li b{display:block;font-size:24px;color:#fff;font-variant-numeric:tabular-nums}.irm-body .irm-ad__main img{width:100%;height:100%;object-fit:cover}.irm-body .irm-ad__t{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:24px 28px;border-radius:var(--irm-r-xl);transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .irm-ad__t:hover{box-shadow:var(--irm-sh-2);translate:0 -2px}.irm-body .irm-ad__t strong{font-size:21px;line-height:1.15;letter-spacing:-.015em}.irm-body .irm-ad__t p{font-size:14px;color:var(--irm-ink-2)}.irm-body .irm-ad__t .irm-lnk{margin-top:8px}.irm-body .irm-ad__ic{position:absolute;top:22px;inset-inline-end:24px;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff}.irm-body .irm-ad__ic svg{width:26px;height:26px}.irm-body .irm-ad__t--soft{background:var(--irm-accent-soft)}.irm-body .irm-ad__t--soft .irm-ad__ic{color:var(--irm-accent)}.irm-body .irm-ad__t strong{max-width:15em;text-wrap:balance}.irm-body .irm-ad__t--white{background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .irm-ad__t--white .irm-ad__ic{background:var(--irm-accent-soft);color:var(--irm-accent)}/* Широкая плашка: иконка слева, ссылка справа — строкой, а не столбцом. */.irm-body .irm-ad__t--wide{flex-direction:row;align-items:center;gap:20px;padding:22px 28px}.irm-body .irm-ad__t--wide .irm-ad__ic{position:static;flex:none}.irm-body .irm-ad__t--wide>span:last-child{margin-inline-start:auto}.irm-body .irm-ad__t--wide strong{max-width:none;flex:1 1 auto}.irm-body .irm-ad__t--wide .irm-lnk{margin-top:0;white-space:nowrap}/* Тёмная плашка — для акцентного предложения среди светлых. */.irm-body .irm-ad__t--dark{background:var(--irm-accent);color:#fff}.irm-body .irm-ad__t--dark p{color:#dcd8ee}.irm-body .irm-ad__t--dark .irm-ad__ic{background:rgba(255,255,255,.16);color:#fff}.irm-body .irm-ad__t--dark .irm-lnk{color:#fff}/* Плашка со скидкой — тон распродажи, как ярлык «−17 %» на карточках. */.irm-body .irm-ad__t--sale{background:var(--irm-sale-bg)}.irm-body .irm-ad__t--sale .irm-ad__ic{color:var(--irm-sale)}.irm-body .irm-ad__t--sale .irm-lnk{color:var(--irm-sale)}.irm-body .irm-cats{margin-top:28px}.irm-body .irm-cats__row{display:flex;justify-content:space-between;gap:4px;overflow-x:auto;scrollbar-width:none;padding-block:4px 12px;scroll-snap-type:x proximity}.irm-body .irm-cats__row::-webkit-scrollbar{display:none}.irm-body .irm-cats a{flex:none;width:104px;text-align:center;font-size:14px;line-height:1.25;color:var(--irm-ink-2);scroll-snap-align:start}.irm-body .irm-cats span{display:grid;place-items:center;width:88px;height:88px;margin:0 auto 8px;border-radius:50%;background:var(--irm-surface);box-shadow:var(--irm-sh-1);transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .irm-cats a:hover{color:var(--irm-accent)}.irm-body .irm-cats a:hover span{box-shadow:var(--irm-sh-2);translate:0 -2px}.irm-body .irm-cats img{width:68px;height:68px;object-fit:contain;mix-blend-mode:multiply}.irm-body .irm-trust{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;margin-top:16px;padding-inline:0;width:calc(100% - 48px);max-width:1344px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .irm-trust>*{display:flex;align-items:center;gap:12px;padding:16px 22px;font-size:14px;line-height:1.35}.irm-body .irm-trust>*+*{box-shadow:-1px 0 0 var(--irm-line)}.irm-body .irm-trust svg{width:28px;height:28px;color:var(--irm-accent)}.irm-body .irm-trust b{font-size:20px;letter-spacing:-.02em}.irm-body .irm-st{display:inline-flex;color:var(--irm-star)}.irm-body .irm-st svg{width:16px;height:16px;color:inherit}.irm-body .irm-trust .irm-st svg{width:26px;height:26px;color:var(--irm-star)}.irm-body .irm-plus{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}.irm-body .irm-plus>div,.irm-body .irm-plus>a{display:grid;grid-template-columns:48px 1fr;column-gap:15px;row-gap:3px;align-content:start;padding:20px 22px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1);color:inherit}.irm-body .irm-plus svg{grid-row:1/3;width:44px;height:44px;padding:10px;border-radius:var(--irm-r-m);background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body .irm-plus b{font-size:15px;line-height:1.25;align-self:end}.irm-body .irm-plus p{font-size:14px;line-height:1.4;color:var(--irm-mut);text-wrap:pretty}.irm-body .irm-cat{margin-top:56px}.irm-body .irm-cat__head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.irm-body .irm-cnt{color:var(--irm-mut)}.irm-body .irm-intro{margin-top:10px;max-width:74ch;color:var(--irm-ink-2);text-wrap:pretty}.irm-body .irm-intro summary{cursor:pointer;list-style:none}.irm-body .irm-intro summary::-webkit-details-marker{display:none}.irm-body .irm-intro[open] summary{display:none}.irm-body .irm-intro u{color:var(--irm-accent);font-weight:600;text-decoration:none;white-space:nowrap}.irm-body .irm-fbar{display:flex;gap:12px;align-items:center;margin-block:22px 20px}.irm-body .irm-chips{display:flex;gap:8px;flex-wrap:wrap;margin-inline-end:auto}.irm-body .irm-chip{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 12px 0 16px;border:0;border-radius:var(--irm-r-m);background:var(--irm-surface);box-shadow:var(--irm-sh-1);cursor:pointer;white-space:nowrap;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .irm-chip:hover{background:var(--irm-accent-soft)}.irm-body .irm-chip:active{scale:.96}.irm-body .irm-chip svg{width:16px;height:16px;color:var(--irm-mut)}.irm-body .irm-chip--sort{padding:0 16px 0 12px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .irm-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.irm-body .irm-pc{position:relative;display:flex;flex-direction:column;padding:8px;border-radius:var(--irm-r-l);background:var(--irm-surface);transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .irm-pc:hover,.irm-body .irm-pc.irm-is-hover{box-shadow:var(--irm-sh-2);translate:0 -2px;z-index:1}.irm-body .irm-pc__pic{position:relative;display:block;aspect-ratio:1/1.16;padding:12px;border-radius:var(--irm-r-m);background:var(--irm-tile)}.irm-body .irm-pc__pic img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:scale .3s var(--irm-ease)}.irm-body .irm-pc:hover .irm-pc__pic img,.irm-body .irm-pc.irm-is-hover .irm-pc__pic img{scale:1.04}.irm-body .irm-fav{position:absolute;top:14px;inset-inline-end:14px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--irm-mut);cursor:pointer;box-shadow:var(--irm-sh-1);transition:color .15s,scale .15s var(--irm-ease)}.irm-body .irm-fav:hover{color:var(--irm-sale)}.irm-body .irm-fav:active{scale:.96}.irm-body .irm-fav svg{width:20px;height:20px;translate:0 .5px}.irm-body .irm-fav[aria-pressed=true]{color:var(--irm-sale)}.irm-body .irm-fav[aria-pressed=true] svg{fill:currentColor}.irm-body .irm-pc__body{display:flex;flex-direction:column;flex:1;padding:12px 6px 4px}.irm-body .irm-pc__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;font-variant-numeric:tabular-nums}.irm-body .irm-pc__price b{font-size:26px;line-height:1.1;letter-spacing:-.025em;color:var(--irm-sale)}.irm-body .irm-pc__price s{font-size:14px;color:var(--irm-mut)}.irm-body .irm-sale{position:absolute;inset-inline-start:8px;bottom:8px;padding:2px 8px;border-radius:var(--irm-r-s);background:var(--irm-sale-bg);color:var(--irm-sale-ink);font-size:14px;font-weight:700;white-space:nowrap}.irm-body .irm-pc__name{margin-top:6px;font-size:15px;line-height:1.3;font-weight:500;transition:color .15s}.irm-body .irm-pc__name:hover{color:var(--irm-accent)}.irm-body .irm-pc__meta{margin-top:2px;font-size:14px;color:var(--irm-mut);font-variant-numeric:tabular-nums}.irm-body .irm-pc__buy{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px;height:44px;border-radius:var(--irm-r-m);background:var(--irm-accent);color:#fff;font-weight:600;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .irm-pc__buy:hover{background:var(--irm-accent-h)}.irm-body .irm-pc__buy:active{scale:.96}.irm-body .irm-pc__buy svg{width:19px;height:19px}.irm-body .irm-pt{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;border-radius:var(--irm-r-l);background:var(--irm-accent-soft);overflow:hidden;transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .irm-pt:hover{box-shadow:var(--irm-sh-2);translate:0 -2px}.irm-body .irm-pt>div{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:28px}.irm-body .irm-pt .irm-eyebrow{color:var(--irm-accent)}.irm-body .irm-pt strong{font-size:28px;line-height:1.08;letter-spacing:-.025em}.irm-body .irm-pt p{font-size:14px;color:var(--irm-ink-2);text-wrap:pretty}.irm-body .irm-pt img{width:100%;max-height:240px;object-fit:contain;mix-blend-mode:multiply;padding:16px}.irm-body .irm-more{display:flex;justify-content:center;align-items:center;height:56px;margin-top:24px;border-radius:var(--irm-r-m);background:var(--irm-accent-soft);color:var(--irm-accent);font-weight:600;transition:background-color .15s}.irm-body .irm-more:hover{background:#dfdaf0}.irm-body .irm-pager{display:flex;justify-content:center;gap:4px;margin-top:16px;font-variant-numeric:tabular-nums}.irm-body .irm-pager a{display:grid;place-items:center;min-width:44px;height:44px;border-radius:var(--irm-r-s);color:var(--irm-ink-2);transition:background-color .15s}.irm-body .irm-pager a:hover{background:var(--irm-accent-soft)}.irm-body .irm-pager [aria-current]{background:var(--irm-accent);color:#fff;font-weight:600}.irm-body .irm-pager svg{width:18px;height:18px}/* ——— Блок «Как заказать» (ORG-SITES-130, 28.09.2026) ———
   Колонки по золотому сечению 1:1,618; кнопка прижата к низу левой колонки —
   прежде под ней оставалось ~100 px пустоты. У шага появилась короткая метка
   («Заявка», «Расчёт», «Договор и монтаж»): по ней шаг читается за секунду,
   а описание уходит вторым планом. Кружки шагов связаны тонкой перемычкой. */.irm-body .irm-how{margin-top:72px}.irm-body .irm-how__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.618fr);gap:48px;padding:44px 48px;border-radius:var(--irm-r-xl);background:var(--irm-accent);color:#fff}.irm-body .irm-how__head{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.irm-body .irm-how__head p{color:#dcd8ee;max-width:34ch;margin-bottom:8px}.irm-body .irm-how__head .irm-btn{margin-top:auto}.irm-body .irm-how ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;counter-reset:s}.irm-body .irm-how li{position:relative;counter-increment:s;display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px 13px;align-content:start;padding:20px 22px;border-radius:var(--irm-r-l);background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);font-size:14.5px;line-height:1.5}.irm-body .irm-how li:before{content:counter(s);grid-column:1;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--irm-accent);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.irm-body .irm-how li b{grid-column:2;align-self:center;font-size:18px;font-weight:600;line-height:1.25}.irm-body .irm-how li p{grid-column:1/-1;margin:0;font-size:16px;line-height:1.5;color:#e4e1f2}.irm-body .irm-how li+li::after{content:"";position:absolute;top:37px;inset-inline-start:-18px;width:18px;height:2px;border-radius:2px;background:rgba(255,255,255,.3)}.irm-body .irm-bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:16px}.irm-body .irm-bx{grid-column:span 2;display:flex;flex-direction:column;border-radius:var(--irm-r-xl);background:var(--irm-surface);box-shadow:var(--irm-sh-1);overflow:hidden}.irm-body .irm-bx--pic{grid-column:span 3}.irm-body .irm-bx>div{display:flex;flex-direction:column;gap:10px;padding:28px 30px 30px}.irm-body .irm-bx h2{font-size:21px;margin-bottom:2px}.irm-body .irm-bx p,.irm-body .irm-bx dd{color:var(--irm-ink-2);font-size:14.5px;line-height:1.55;text-wrap:pretty}.irm-body .irm-bx img{width:100%;height:230px;object-fit:cover;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.irm-body .irm-bx dl{display:grid;gap:10px;margin:4px 0 0}.irm-body .irm-bx dt{font-weight:600}.irm-body .irm-bx dd{margin:0}.irm-body .irm-rvs,.irm-body .irm-wk{margin-top:72px}.irm-body .irm-sec__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}.irm-body .irm-rvs__in{display:grid;grid-template-columns:240px repeat(3,minmax(0,1fr));gap:16px}.irm-body .irm-score{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:28px;border-radius:var(--irm-r-xl);background:var(--irm-accent-soft)}.irm-body .irm-score b{font-size:64px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.irm-body .irm-score .irm-st svg{width:22px;height:22px}.irm-body .irm-score p{color:var(--irm-ink-2);margin-bottom:auto}.irm-body .irm-score .irm-btn{margin-top:20px;background:#fff;box-shadow:none}.irm-body .irm-rv{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:var(--irm-r-xl);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .irm-rv header{display:flex;align-items:center;gap:12px}.irm-body .irm-rv header .irm-st{margin-inline-start:auto}.irm-body .irm-ava{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--irm-accent);color:#fff;font-weight:600}.irm-body .irm-rv b{display:block;line-height:1.25}.irm-body .irm-rv small{font-size:14px;color:var(--irm-mut)}.irm-body .irm-rv p{font-size:14.5px;line-height:1.55;color:var(--irm-ink-2);display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}.irm-body .irm-rv .irm-lnk{margin-top:auto;font-size:14px}.irm-body .irm-wk__row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}.irm-body .irm-wk__row img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--irm-r-m);outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;transition:scale .2s var(--irm-ease)}.irm-body .irm-wk__row a:hover img{scale:1.03}.irm-body .irm-ft{margin-top:88px;background:var(--irm-ft);color:#bbb5d3;font-size:14px}.irm-body .irm-ft__in{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.6fr 1fr;gap:40px;padding-block:52px 60px}.irm-body .irm-ft b{display:block;margin-bottom:12px;color:#fff;font-size:15px}.irm-body .irm-ft a{display:block;padding:3px 0;transition:color .15s}.irm-body .irm-ft a:hover{color:#fff}.irm-body .irm-ft .irm-logo{color:#fff;margin-bottom:22px}.irm-body .irm-ft .irm-tel{color:#fff;font-size:24px;letter-spacing:-.01em}.irm-body .irm-ft .irm-tel b{display:inline;color:var(--irm-brand-coral);font-size:inherit;font-weight:500;margin:0}.irm-body .irm-ft__brand p{margin-top:10px;max-width:30ch;line-height:1.45}.irm-body .irm-ft__2{columns:2;column-gap:24px}.irm-body .irm-ft__2 b{column-span:all}.irm-body .irm-ft__ms{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.irm-body .irm-ft__ms svg.irm-ms{width:28px;height:28px}.irm-body .irm-ft__ms a{display:inline-flex;align-items:center;gap:8px;padding:6px 16px 6px 6px;border-radius:999px;background:rgba(255,255,255,.08);color:#fff}.irm-body .irm-ft__in{padding-bottom:40px!important}.irm-body .irm-ft__bot{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 32px;align-items:baseline;padding-block:20px 28px;box-shadow:0 -1px 0 rgba(255,255,255,.1);font-size:14px;line-height:1.45;color:#8f89ab}.irm-body .irm-ft__bot p:first-child{color:#d9d5ea;white-space:nowrap}.irm-body .irm-ft__bot a{white-space:nowrap}.irm-body .irm-tab{display:none}
@media(prefers-reduced-motion:reduce){.irm-body .irm-sh *{transition:none!important}}
@media(max-width:1298px){.irm-body .irm-ft__bot{grid-template-columns:1fr}.irm-body .irm-ft__bot p:first-child,.irm-body .irm-ft__bot a{white-space:normal}.irm-body .irm-plus{grid-template-columns:repeat(2,minmax(0,1fr))}.irm-body .irm-top nav{gap:14px}.irm-body .irm-top__in{gap:16px}.irm-body .irm-top__i+.irm-top__i{display:none}.irm-body .irm-visit small{display:none}.irm-body .irm-call__ms span{display:none}.irm-body .irm-call__tel{font-size:21px}.irm-body .irm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.irm-body .irm-acts a span{display:none}.irm-body .irm-acts a{min-width:48px}.irm-body .irm-rvs__in{grid-template-columns:repeat(2,minmax(0,1fr))}.irm-body .irm-wk__row{grid-template-columns:repeat(4,minmax(0,1fr))}.irm-body .irm-how__in{grid-template-columns:1fr}.irm-body .irm-mg__in{grid-template-columns:repeat(3,1fr)}.irm-body .irm-ft__in{grid-template-columns:repeat(3,1fr)}}
/* Шапка на планшете 837–1100 (ORG-SITES-142, 28.09.2026). В строке логотип,
   «Каталог», поиск, телефон с мессенджерами и четыре значка — на 837–860 им не
   хватало ~200 px: поиск сжимался до 6 px, страница выезжала вбок на 49 px, а
   четвёртая иконка (WhatsApp) отняла ещё 33 px. Кнопка каталога остаётся
   значком, как на телефоне, подпись «Обратный звонок» уходит — на телефоне
   этого блока нет совсем. Звонок по номеру и мессенджеры на месте. */
@media(max-width:1100px) and (min-width:837px){.irm-body .irm-catbtn{width:57px;padding:0;justify-content:center}.irm-body .irm-catbtn__l,.irm-body .irm-call__cb{display:none}}
@media(max-width:836px){.irm-body .irm-w{padding-inline:16px}body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.irm-body .irm-sh :where(h1){font-size:25px}.irm-body .irm-sh :where(h2){font-size:26px}.irm-body .irm-promo__d,.irm-body .irm-top,.irm-body .irm-acts,.irm-body .irm-quick,.irm-body .irm-catbtn__l{display:none}.irm-body .irm-promo__t{margin-inline-start:4px}.irm-body .irm-hd__in{flex-wrap:wrap;height:auto;gap:10px 12px;padding-block:10px}.irm-body .irm-logo{flex:1 1 calc(100% - 173px);min-width:0;order:1}.irm-body .irm-lg--full{display:none}.irm-body .irm-lg--mob{display:block;height:20px;max-width:100%}.irm-body .irm-ft .irm-lg--full{display:block;height:42px}.irm-body .irm-ft .irm-lg--mob{display:none}.irm-body .irm-call{display:none}.irm-body .irm-hd__m{order:2;flex:none;display:flex;align-items:center;gap:8px}.irm-body .irm-hd__m svg.irm-ms{width:34px;height:34px}.irm-body .irm-hd__tel{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--irm-accent);color:#fff}.irm-body .irm-hd__tel svg{width:17px;height:17px}.irm-body .irm-catbtn{order:3;width:53px;height:53px;padding:0;justify-content:center}.irm-body .irm-srch{order:4;height:48px;flex:1 1 0}.irm-body .irm-srch button{width:48px}.irm-body .irm-mg{max-height:calc(100vh - 190px)}.irm-body .irm-mg__in{grid-template-columns:1fr 1fr;gap:20px;padding-block:20px}.irm-body .irm-mg__col--2{grid-column:1/3}.irm-body .irm-mg__col--m{display:flex;grid-column:1/3;order:-1;padding-bottom:16px;box-shadow:0 1px 0 var(--irm-line)}.irm-body .irm-mg__col--m .irm-mg__t{min-height:0;margin-bottom:10px}.irm-body .irm-mg__chips{display:flex;flex-wrap:wrap;gap:8px}.irm-body .irm-mg__chips a{padding:9px 14px!important;border-radius:999px;background:var(--irm-tile);color:var(--irm-ink)!important;font-size:14px}.irm-body .irm-ad--hero{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-top:12px;padding-inline:16px;margin-inline:0;max-width:none}.irm-body .irm-ad--hero::-webkit-scrollbar{display:none}.irm-body .irm-ad--hero>*{flex:none;width:calc(100% - 40px);scroll-snap-align:center}.irm-body .irm-ad__main{grid-template-columns:1fr;min-height:0;border-radius:var(--irm-r-l)}.irm-body .irm-ad__main img{display:none}.irm-body .irm-ad__main>div{padding:24px;gap:10px}.irm-body .irm-ad__main strong{font-size:28px}.irm-body .irm-ad__main ul{gap:20px}.irm-body .irm-ad__main li b{font-size:20px}.irm-body .irm-ad__t{border-radius:var(--irm-r-l);padding:22px;width:72%}.irm-body .irm-cats{margin-top:20px}.irm-body .irm-cats__row{margin-inline:-16px;padding-inline:16px}.irm-body .irm-cats a{width:84px;font-size:14px}.irm-body .irm-cats span{width:68px;height:68px}.irm-body .irm-cats img{width:52px;height:52px}.irm-body .irm-trust{grid-template-columns:1fr 1fr;margin-top:12px;width:calc(100% - 32px)}.irm-body .irm-cats__row{justify-content:flex-start}.irm-body .irm-trust>*{padding:12px 14px;font-size:14px;gap:10px}.irm-body .irm-trust>*+*{box-shadow:none}.irm-body .irm-trust>*:nth-child(n+3){box-shadow:0 -1px 0 var(--irm-line)}.irm-body .irm-trust svg,.irm-body .irm-trust .irm-st svg{width:22px;height:22px}.irm-body .irm-trust b{font-size:16px}.irm-body .irm-plus{grid-template-columns:1fr;gap:6px;margin-top:12px}.irm-body .irm-plus>div,.irm-body .irm-plus>a{padding:13px 15px;border-radius:var(--irm-r-l)}.irm-body .irm-cat{margin-top:36px}.irm-body .irm-fbar{margin-inline:-16px;padding-inline:16px;overflow-x:auto;scrollbar-width:none}.irm-body .irm-fbar::-webkit-scrollbar{display:none}.irm-body .irm-chips{flex-wrap:nowrap}.irm-body .irm-chip--sort{order:-1}.irm-body .irm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.irm-body .irm-pc{padding:6px;border-radius:var(--irm-r-l)}.irm-body .irm-pc__pic{padding:8px}.irm-body .irm-fav{top:10px;inset-inline-end:10px}.irm-body .irm-pc__price b{font-size:19px}.irm-body .irm-pc__name{font-size:14px}.irm-body .irm-pc__meta{font-size:14px}.irm-body .irm-pt{grid-column:span 2;grid-template-columns:1fr .6fr}.irm-body .irm-pt>div{padding:20px}.irm-body .irm-pt strong{font-size:26px}.irm-body .irm-pager a:nth-child(n+6):not(:last-child){display:none}.irm-body .irm-visitbar{display:block;margin-top:10px}.irm-body .irm-visit--m{display:flex;height:48px;margin:0;border-radius:var(--irm-r-m)}.irm-body .irm-visit--m small{display:none}.irm-body .irm-visit--m b{margin-inline-start:auto}.irm-body .irm-how,.irm-body .irm-rvs,.irm-body .irm-wk{margin-top:48px}.irm-body .irm-how__in{padding:24px 20px;gap:24px;border-radius:var(--irm-r-l)}.irm-body .irm-how ol{grid-template-columns:1fr;gap:8px}.irm-body .irm-how li{grid-template-columns:34px minmax(0,1fr);gap:7px 13px;padding:16px}.irm-body .irm-how li+li::after{content:none}.irm-body .irm-how li:before{margin:0}.irm-body .irm-how .irm-btn{width:100%}.irm-body .irm-bento{grid-template-columns:1fr}.irm-body .irm-bx,.irm-body .irm-bx--pic{grid-column:auto;border-radius:var(--irm-r-l)}.irm-body .irm-bx>div{padding:22px 20px}.irm-body .irm-bx img{height:180px}.irm-body .irm-rvs__in{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:-16px;padding-inline:16px;gap:10px}.irm-body .irm-rvs__in::-webkit-scrollbar{display:none}.irm-body .irm-rvs__in>*{flex:none;width:84%;scroll-snap-align:center;border-radius:var(--irm-r-l)}.irm-body .irm-score{width:60%!important}.irm-body .irm-score b{font-size:52px}.irm-body .irm-wk__row{display:flex;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px;gap:8px}.irm-body .irm-wk__row::-webkit-scrollbar{display:none}.irm-body .irm-wk__row a{flex:none;width:44%}.irm-body .irm-ft{margin-top:56px}.irm-body .irm-ft__in{grid-template-columns:1fr 1fr;gap:28px 20px;padding-block:36px 40px}.irm-body .irm-ft__brand,.irm-body .irm-ft__2{grid-column:1/3}.irm-body .irm-sec__head{flex-wrap:wrap;gap:4px 16px}.irm-body .irm-lnk{white-space:normal;min-height:40px}.irm-body .irm-logo{display:flex;align-items:center;min-height:40px}.irm-body .irm-ft a{padding:8px 0}.irm-body .irm-ft__ms a{padding:6px 16px 6px 6px}.irm-body .irm-ft__bot a{padding:6px 0}.irm-body .irm-pc__name{padding-block:6px;margin-top:2px}.irm-body .irm-pager a{min-width:44px}.irm-body .irm-crumbs a,.irm-body .irm-crumbs span{padding-block:10px}.irm-body .irm-crumbs{flex-wrap:nowrap!important;overflow-x:auto;white-space:nowrap;scrollbar-width:none;margin-block:2px 6px!important;margin-inline:-16px;padding-inline:16px}.irm-body .irm-crumbs::-webkit-scrollbar{display:none}.irm-body .irm-crumbs svg{flex:none}.irm-body .irm-cat .irm-grid>*:nth-child(n+14){display:none}.irm-body .irm-intro summary{padding-block:6px}.irm-body .irm-tab{position:fixed;inset-inline:0;bottom:0;z-index:30;display:flex;padding-bottom:env(safe-area-inset-bottom,0px);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--irm-line)}.irm-body .irm-tab a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 7px;font-size:14px;color:var(--irm-mut)}.irm-body .irm-tab [aria-current]{color:var(--irm-accent);font-weight:600}}/* ——— добавлено при вёрстке: то, чего в макете не было ——— *//* Счётчик корзины: site.js пишет число в .cart-counter и прячет обёртку. */.irm-body .irm-badge{position:absolute;top:2px;inset-inline-end:8px;min-width:18px;height:18px;padding:0 5px;
  border-radius:999px;background:var(--irm-sale);color:#fff;font-size:14px;font-weight:700;line-height:18px;
  text-align:center;font-variant-numeric:tabular-nums}.irm-body .irm-acts a{position:relative}.irm-body .irm-tab a{position:relative}.irm-body .irm-badge--tab{top:4px;inset-inline-end:calc(50% - 22px)}/* Полоса скидок: полный текст на большом экране, короткий — на телефоне. */.irm-body .irm-promo__short{display:none}
@media(max-width:836px){.irm-body .irm-promo__full{display:none}.irm-body .irm-promo__short{display:inline}}/* ——— каталог: панель фильтров, сетка, «Показать ещё», страницы ——— */.irm-body .irm-catwrap{margin-top:22px}.irm-body .irm-chipbox{position:relative}.irm-body .irm-chipbox>summary{list-style:none;cursor:pointer}.irm-body .irm-chipbox>summary::-webkit-details-marker{display:none}.irm-body .irm-chip__caret{width:16px;height:16px;color:var(--irm-mut)}.irm-body .irm-chipbox[open]>summary{background:var(--irm-accent-soft)}.irm-body .irm-chipbox[open] .irm-chip__caret{rotate:180deg}.irm-body .irm-chipmenu{position:absolute;z-index:15;top:calc(100% + 6px);inset-inline-start:0;min-width:240px;max-height:60vh;
  overflow:auto;padding:8px;border-radius:var(--irm-r-m);background:var(--irm-surface);box-shadow:var(--irm-sh-2)}.irm-body .irm-chipbox--sort .irm-chipmenu{inset-inline-start:auto;inset-inline-end:0}.irm-body .irm-chipmenu a{display:block;padding:9px 12px;border-radius:var(--irm-r-s);color:var(--irm-ink-2);font-size:14px}.irm-body .irm-chipmenu a:hover{background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body .irm-chipmenu a.irm-chip__on{color:var(--irm-accent);font-weight:600}.irm-body .irm-fav svg{fill:none;stroke:currentColor}.irm-body .irm-fav.actives{color:var(--irm-sale)}.irm-body .irm-fav.actives svg{fill:currentColor}.irm-body .irm-more{padding:0}.irm-body .irm-more a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:inherit;font-weight:600}.irm-body .irm-pager__far{display:none}/* Заголовок каталога и вступление — их печатает родительский index.php. */.irm-body .page-wrap>.page-title-wrapper{margin-top:6px}.irm-body .page-wrap h1{font-size:40px;line-height:1.12;letter-spacing:-.022em;text-wrap:balance}
@media(max-width:836px){.irm-body .page-wrap h1{font-size:25px}}/* ——— шапка страницы: крошки, H1 и счётчик товаров ——— */.irm-body .irm-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0 6px;font-size:14px;color:var(--irm-mut)}.irm-body .irm-crumbs a{color:var(--irm-mut)}.irm-body .irm-crumbs a:hover{color:var(--irm-accent)}.irm-body .irm-cat__head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:10px}.irm-body .irm-cat__head h1{margin:0;color:var(--irm-ink);font-size:40px;line-height:1.12;letter-spacing:-.022em;text-wrap:balance}.irm-body .irm-cnt{color:var(--irm-mut);font-variant-numeric:tabular-nums}
@media(max-width:836px){.irm-body .irm-cat__head h1{font-size:25px}.irm-body .irm-crumbs{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}.irm-body .irm-crumbs::-webkit-scrollbar{display:none}
}/* Текстовые блоки страниц: у старой темы выключка по ширине, в макете — по левому краю. */.irm-body .page-wrap .text-block p{text-align:left!important;color:var(--irm-ink-2);text-wrap:pretty}/* ——— вступление каталога: две строки и «Читать полностью», как в макете ——— */.irm-body .irm-intro{margin:10px 0 0;max-width:74ch;color:var(--irm-ink-2)}.irm-body .irm-intro>summary{cursor:pointer;list-style:none;text-wrap:pretty}.irm-body .irm-intro>summary::-webkit-details-marker{display:none}.irm-body .irm-intro[open]>summary{display:none}.irm-body .irm-intro u{color:var(--irm-accent);font-weight:600;text-decoration:none;white-space:nowrap}.irm-body .page-wrap .text-block{padding-inline:0}.irm-body .page-wrap .text-block.content{margin-inline:0}/* ——— остаток контента главной (форма консультации, слайдер) ——— */.irm-body .irm-rest{margin-top:56px}.irm-body .irm-rest img{max-width:100%;height:auto}/* Первый экран: заголовок не должен заезжать под круглую иконку. */.irm-body .irm-ad__t strong{max-width:calc(100% - 66px)}/* ═══════ Карточка товара: разметка родительская, вид — из макета ═══════
   Классы ниже принадлежат теме iritual и обвязаны в js/site.js (калькулятор
   цены, корзина, «в 1 клик»). Ни одного из них не переименовываем: меняем
   только внешний вид. ORG-SITES-108 / ORG-DESIGN-014. */.irm-body .product.content{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,.95fr);
  align-items:start;margin:8px 0 0;padding:0;background:transparent;border:0;box-shadow:none;float:none;width:100%}.irm-body .product.content:after{content:none}.irm-body .product>.description{order:1;float:none;width:auto;margin:0;display:flex;flex-direction:column;gap:12px}.irm-body .product .params{order:2;float:none;width:auto;margin:0;display:flex;flex-direction:column;gap:12px}.irm-body .product .order{order:3;float:none;width:auto;margin:0;position:sticky;top:96px;
  display:flex;flex-direction:column;gap:0;padding:14px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}/* — блоки-карточки — */.irm-body .product>.description>div,.irm-body .product .params>div{margin:0;padding:16px 18px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1);border:0}.irm-body .product>.description>.img-wrap{padding:12px;background:var(--irm-tile)}.irm-body .product>.description>.img-wrap img{width:100%;height:auto;mix-blend-mode:multiply}/* — заголовки блоков — */.irm-body .product .params>div>.title,.irm-body .product>.description>div>.cvetnic_pam,.irm-body .product .order>div>.title,.irm-body .product .order>div>.title-first{display:block;margin:0 0 10px;padding:0;border:0;background:transparent;
  color:var(--irm-ink);font-size:17px;font-weight:600;letter-spacing:-.01em;text-transform:none;line-height:1.2}/* — строки выбора — */.irm-body .product .radio-list{display:flex;flex-direction:column;gap:2px;border:0}.irm-body .product .radio-list .row-title{display:flex;align-items:center;gap:10px;padding:0 10px 6px;
  color:var(--irm-mut);font-size:14px;letter-spacing:.04em;text-transform:uppercase;background:transparent;border:0}.irm-body .product .radio{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:0 12px;
  border:0;border-radius:var(--irm-r-m);background:transparent;cursor:pointer;transition:background-color .15s}.irm-body .product .radio:hover{background:var(--irm-accent-soft)}.irm-body .product .radio.selected{background:var(--irm-accent-soft);box-shadow:inset 0 0 0 1.5px var(--irm-accent)}.irm-body .product .radio.odd{background:transparent}.irm-body .product .radio .name{flex:1;min-width:0;color:var(--irm-ink);font-size:14px}.irm-body .product .radio .thickness{color:var(--irm-ink-2);font-size:14px}.irm-body .product .radio .price{color:var(--irm-ink);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.irm-body .product .radio.selected .price{color:var(--irm-accent)}.irm-body .product .radio i{flex:none;width:18px;height:18px;border-radius:50%;background:transparent;
  box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .radio.selected i{box-shadow:inset 0 0 0 6px var(--irm-accent)}/* — материалы плитками — */.irm-body .product .materials .radio-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.irm-body .product .materials .radio{flex-direction:column;align-items:stretch;gap:6px;min-height:0;padding:6px;border-radius:var(--irm-r-m);text-align:center}.irm-body .product .materials .radio img{order:-1;width:100%;height:58px;object-fit:cover;border-radius:var(--irm-r-s)}.irm-body .product .materials .radio i{display:none}.irm-body .product .materials .radio .name{font-size:14px;line-height:1.25;color:var(--irm-ink-2)}.irm-body .product .materials .radio.selected .name{color:var(--irm-ink);font-weight:600}/* — блок заказа — */.irm-body .product .order>div{margin:0;padding:12px 4px;border:0;border-radius:0;background:transparent}.irm-body .product .order>div+div{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .product .selected-products .item{display:flex;align-items:baseline;gap:8px;padding:3px 8px;font-size:14px;color:var(--irm-ink-2)}.irm-body .product .selected-products .item .name{flex:1;min-width:0}.irm-body .product .selected-products .item .price{font-variant-numeric:tabular-nums;white-space:nowrap}.irm-body .product .selected-products .item.sum{margin-top:4px;padding-top:8px;box-shadow:0 -1px 0 var(--irm-line);color:var(--irm-ink);font-weight:600}.irm-body .product .result{background:transparent;color:inherit}.irm-body .product .result .checkbox{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 8px;border-radius:var(--irm-r-s);cursor:pointer}.irm-body .product .result .checkbox:hover{background:var(--irm-accent-soft)}.irm-body .product .result .checkbox .name{flex:1;min-width:0;font-size:14px;color:var(--irm-ink-2)}.irm-body .product .result .checkbox .price{color:var(--irm-sale);font-weight:600;font-variant-numeric:tabular-nums}.irm-body .product .result .checkbox i{flex:none;width:18px;height:18px;border-radius:var(--irm-r-s);background:transparent;box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .result .checkbox.checked i{background:var(--irm-accent);box-shadow:none}.irm-body .product .result .result-discount{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;font-size:14px;color:var(--irm-mut)}.irm-body .product .result .result-discount .price{color:var(--irm-sale);font-weight:600}.irm-body .product .result .sum{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:6px 0 12px;padding:0 8px;float:none}.irm-body .product .result .sum .text{color:var(--irm-mut);font-size:14px;text-transform:none}.irm-body .product .result .sum .price{color:var(--irm-sale);font-size:28px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}/* — кнопки заказа — */.irm-body .product .add-basket,.irm-body .product .one-click{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:50px;
  margin:0;padding:0 16px;border:0;border-radius:var(--irm-r-m);font-size:15px;font-weight:600;text-transform:none;text-decoration:none;
  transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .product .add-basket{background:var(--irm-accent);color:#fff}.irm-body .product .add-basket:hover{background:var(--irm-accent-h)}.irm-body .product .one-click{margin-top:8px;background:transparent;color:var(--irm-accent);box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .one-click:hover{background:var(--irm-accent-soft)}.irm-body .product .add-basket:active,.irm-body .product .one-click:active{scale:.96}.irm-body .product .add-basket .svg-icon svg,.irm-body .product .one-click .svg-icon svg{width:19px;height:19px}/* — выпадающие списки оформления — */.irm-body .product .select-list .selected{min-height:42px;padding:0 36px 0 14px;border-radius:var(--irm-r-m);background:var(--irm-surface);
  box-shadow:inset 0 0 0 1.5px var(--irm-line);color:var(--irm-ink);font-size:14px;line-height:42px}.irm-body .product .select-list .list{border-radius:var(--irm-r-m);box-shadow:var(--irm-sh-2);border:0;overflow:hidden}/* 🪤 Список закрыт, пока его не открыли (ORG-SITES-146). Правило жило только в
   полном style.css родителя, а карточкам грузится облегчённый legacy.css — и у
   табличек все варианты «ФИО», «Фотография», «Фотокерамика» висели раскрытыми.
   Открывает site.js: класс .is-open и display:block в style. */.irm-body .product .select-list{position:relative}.irm-body .product .select-list .list{display:none;position:absolute;z-index:6;top:calc(100% + 6px);left:0;min-width:100%;background:var(--irm-surface)}.irm-body .product .select-list.is-open .list{display:block}.irm-body .product .select-list .list .item{padding:10px 14px;font-size:14px;color:var(--irm-ink-2)}.irm-body .product .select-list .list .item:hover{background:var(--irm-accent-soft);color:var(--irm-accent)}

@media(max-width:1298px){.irm-body .product.content{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.irm-body .product .order{grid-column:1/3;order:3;position:static}
}
@media(max-width:836px){.irm-body .product.content{grid-template-columns:1fr;gap:10px}.irm-body .product>.description{order:1}.irm-body .product .params{order:2}.irm-body .product .order{grid-column:auto;order:3}.irm-body .product .materials .radio-list{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}
}/* Карточка товара — раскладка по колонкам макета.
   🪤 Материалы лежат внутри .description (левая колонка), а в макете они в
   средней. Переносить их в разметке нельзя — на них висит калькулятор, поэтому
   .description объявляем display:contents: её дети становятся прямыми ячейками
   сетки и расходятся по нужным колонкам. */.irm-body .product>.description{display:contents}.irm-body .product>.description>.img-wrap{grid-column:1;grid-row:1}.irm-body .product>.description>.materials{grid-column:2}.irm-body .product>.description>.garden,.irm-body .product>.description>.cvetnic_pam{grid-column:1}.irm-body .product .params{grid-column:2;grid-row:2}.irm-body .product .order{grid-column:3;grid-row:1/99}.irm-body .product .result{display:block}.irm-body .product .result .sum{flex-wrap:nowrap;white-space:nowrap}.irm-body .product .result .sum .price{font-size:26px}.irm-body .product .materials .radio-list{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}

@media(max-width:1298px){.irm-body .product>.description>.img-wrap{grid-column:1;grid-row:1}.irm-body .product>.description>.materials{grid-column:2;grid-row:1}.irm-body .product .params{grid-column:1/3;grid-row:auto}.irm-body .product .order{grid-column:1/3;grid-row:auto}
}
@media(max-width:836px){.irm-body .product>.description>.img-wrap,.irm-body .product>.description>.materials,.irm-body .product>.description>.garden,.irm-body .product .params,.irm-body .product .order{grid-column:1;grid-row:auto}
}/* Кнопки заказа: у родителя они заданы цепочкой `.product .order .result .one-click`
   (вес 0,4,0) с шириной 100 px и белым текстом на фиолетовом блоке. Наши правила
   короче и проигрывали, поэтому повторяем ту же длину цепочки. */.irm-body .product .order .result .add-basket,.irm-body .product .order .result .one-click{display:flex;width:100%;height:50px;margin:0;padding:0 16px;
  border:0;border-radius:var(--irm-r-m);font-size:15px;font-weight:600;line-height:1;text-align:center;float:none}.irm-body .product .order .result .add-basket{background:var(--irm-accent);color:#fff}.irm-body .product .order .result .add-basket:hover{background:var(--irm-accent-h)}.irm-body .product .order .result .one-click{margin-top:8px;background:transparent;color:var(--irm-accent);
  box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .order .result .one-click:hover{background:var(--irm-accent-soft)}.irm-body .product .order .result .one-click span,.irm-body .product .order .result .add-basket span{display:inline;margin:0;color:inherit}.irm-body .product .order .result .one-click .svg-icon,.irm-body .product .order .result .add-basket .svg-icon{width:19px;height:19px;margin-right:8px}/* Порядок средней колонки как в макете: комплект и опции, затем материалы. */.irm-body .product .params{grid-row:1}.irm-body .product>.description>.materials{grid-row:2}.irm-body .product>.description>.garden{grid-row:2;grid-column:1}.irm-body .product>.description>.cvetnic_pam{display:none}.irm-body .product>.description>.garden{padding:16px 18px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .product>.description>.garden img{width:100%;height:auto;border-radius:var(--irm-r-m)}/* Кнопки идут как в макете: «В корзину» первой, «В 1 клик» под ней.
   В разметке порядок обратный, поэтому меняем его флексом, а не в HTML. */.irm-body .product .order .result{display:flex;flex-direction:column}.irm-body .product .order .result .add-basket{order:98}.irm-body .product .order .result .one-click{order:99}/* Заголовок карточки товара. */.irm-body .page-wrap .title-container{display:flex;align-items:center;gap:12px;margin:2px 0 4px}.irm-body .page-wrap .title-container h1{margin:0;color:var(--irm-ink);font-size:30px;line-height:1.15;
  letter-spacing:-.022em;text-wrap:balance;display:inline}.irm-body .page-wrap .title-container .favorite{display:grid;place-items:center;width:40px;height:40px;
  border-radius:50%;background:var(--irm-surface);box-shadow:var(--irm-sh-1);color:var(--irm-mut)}.irm-body .page-wrap .title-container .favorite.actives{color:var(--irm-sale)}
@media(max-width:836px){.irm-body .page-wrap .title-container h1{font-size:23px}}/* Характеристики памятника — в макете они слева под фото, в разметке лежат
   последними внутри .params. Распускаем .params так же, как .description:
   её блоки становятся ячейками сетки и встают каждый в свою колонку. */.irm-body .product .params{display:contents}.irm-body .product .params>div{grid-column:2}.irm-body .product .params>.spisok_charact,.irm-body .product .params>.cvetnic_pam{grid-column:1}.irm-body .product .params>.cvetnic_pam{margin:0;padding:16px 18px 0;border-radius:var(--irm-r-l) var(--irm-r-l) 0 0;
  background:var(--irm-surface);color:var(--irm-ink);font-size:17px;font-weight:600;text-transform:none;align-self:end}.irm-body .product .params>.spisok_charact{margin:0;padding:4px 18px 16px;list-style:none;border-radius:0 0 var(--irm-r-l) var(--irm-r-l);
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .product .params>.spisok_charact li{display:flex;justify-content:space-between;gap:12px;
  padding:9px 0;font-size:14px;color:var(--irm-ink-2)}.irm-body .product .params>.spisok_charact li+li{box-shadow:0 -1px 0 var(--irm-line)}/* «Оформление для памятника» — плитки, как в макете. */.irm-body .page-wrap .zagolovok_2_top{margin:56px 0 16px;padding:0;background:transparent;border:0}.irm-body .page-wrap .zagolovok_2_top p{margin:0;color:var(--irm-ink);font-size:32px;font-weight:600;letter-spacing:-.022em}.irm-body .page-wrap .services_block{margin:0;padding:0;background:transparent}.irm-body .page-wrap .service_list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}.irm-body .page-wrap .service_list li{margin:0;padding:0;list-style:none;background:transparent}.irm-body .page-wrap .service_list li a{display:block;padding:8px;border-radius:var(--irm-r-l);background:var(--irm-surface);
  box-shadow:var(--irm-sh-1);color:var(--irm-ink-2);text-align:center;text-decoration:none;
  transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .page-wrap .service_list li a:hover{box-shadow:var(--irm-sh-2);translate:0 -2px;color:var(--irm-accent)}.irm-body .page-wrap .service_list img{width:100%;height:auto;border-radius:var(--irm-r-m)}.irm-body .page-wrap .service_list p{margin:8px 0 4px;font-size:14px}
@media(max-width:1298px){.irm-body .page-wrap .service_list{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .page-wrap .service_list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.irm-body .product .params>div,.irm-body .product .params>.spisok_charact,.irm-body .product .params>.cvetnic_pam{grid-column:1}
}/* Порядок ячеек в сетке карточки.
   🪤 После display:contents браузер раскладывает блоки в порядке разметки, а он
   не совпадает с макетом (материалы лежат раньше комплекта). Порядком (order)
   управляем без правок HTML, dense убирает дыры от явных колонок. */.irm-body .product.content{grid-auto-flow:row dense}.irm-body .product>.description>.img-wrap{order:1;grid-row:auto}.irm-body .product .params>.cvetnic_pam{order:2}.irm-body .product .params>.spisok_charact{order:3}.irm-body .product>.description>.garden{order:4;grid-row:auto}.irm-body .product .params>div{order:10}.irm-body .product>.description>.materials{order:50;grid-row:auto}.irm-body .product .order{order:0;grid-row:1/99}/* ——— Итоговая раскладка карточки: три обычные колонки ———
   Блоки уже переставлены на сервере (inc/product.php), поэтому display:contents
   и игры с order больше не нужны: каждая колонка — обычный контейнер, и внутри
   неё блоки идут вплотную, без дыр от общих строк сетки. */.irm-body .product>.description{display:flex;flex-direction:column;gap:12px;grid-column:1;grid-row:1}.irm-body .product .params{display:flex;flex-direction:column;gap:12px;grid-column:2;grid-row:1}.irm-body .product .order{grid-column:3;grid-row:1}.irm-body .product>.description>.img-wrap,.irm-body .product>.description>.garden,.irm-body .product>.description>.cvetnic_pam,.irm-body .product>.description>.spisok_charact,.irm-body .product .params>div,.irm-body .product .params>.cvetnic_pam,.irm-body .product .params>.spisok_charact{order:0;grid-column:auto;grid-row:auto}.irm-body .product>.description>.cvetnic_pam{display:block;margin:0;padding:16px 18px 0;border-radius:var(--irm-r-l) var(--irm-r-l) 0 0;
  background:var(--irm-surface);color:var(--irm-ink);font-size:17px;font-weight:600;text-transform:none}.irm-body .product>.description>.spisok_charact{margin:0;padding:4px 18px 16px;list-style:none;border-radius:0 0 var(--irm-r-l) var(--irm-r-l);
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .product>.description>.spisok_charact li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;
  font-size:14px;color:var(--irm-ink-2);list-style:none}.irm-body .product>.description>.spisok_charact li+li{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .product>.description>.cvetnic_pam+.spisok_charact{margin-top:-12px}.irm-body .product .params>.materials{padding:16px 18px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}
@media(max-width:1298px){.irm-body .product>.description{grid-column:1}.irm-body .product .params{grid-column:2}.irm-body .product .order{grid-column:1/3;grid-row:2}
}
@media(max-width:836px){.irm-body .product>.description,.irm-body .product .params,.irm-body .product .order{grid-column:1;grid-row:auto}
}/* Материалы переехали из .description в .params, а все родительские правила
   были привязаны к `.product .description .materials …` и перестали работать.
   Поэтому размеры плиток задаём здесь целиком. */.irm-body .product .materials .radio-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
  gap:8px;float:none}.irm-body .product .materials .radio-list:after{content:none}.irm-body .product .materials .radio{position:static;float:none;width:auto;margin:0;padding:6px;
  display:flex;flex-direction:column;align-items:stretch;gap:6px;min-height:0;border-radius:var(--irm-r-m);text-align:center}.irm-body .product .materials .radio img{order:-1;width:100%;height:58px;margin:0;object-fit:cover;border-radius:var(--irm-r-s)}.irm-body .product .materials .radio .name{font-size:14px;line-height:1.25;color:var(--irm-ink-2)}.irm-body .product .materials .radio.selected .name{color:var(--irm-ink);font-weight:600}.irm-body .product .materials .radio i{display:none}/* Материалы снова в левой колонке — возвращаем им вид плиток там. */.irm-body .product>.description>.materials{padding:16px 18px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .product>.description .materials .radio-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.irm-body .product>.description .materials .radio{width:auto;margin:0;padding:6px;display:flex;flex-direction:column;
  align-items:stretch;gap:6px;min-height:0;border-radius:var(--irm-r-m);text-align:center;float:none}.irm-body .product>.description .materials .radio img{order:-1;width:100%;height:58px;margin:0;object-fit:cover;border-radius:var(--irm-r-s)}.irm-body .product>.description .materials .radio .name{font-size:14px;line-height:1.25;color:var(--irm-ink-2)}.irm-body .product>.description .materials .radio.selected .name{color:var(--irm-ink);font-weight:600}.irm-body .product>.description .materials .radio i{display:none}/* Далёкие номера страниц прячем, но ссылки остаются в разметке для поисковиков.
   Селектор с тегом — иначе правило `.irm-pager a{display:grid}` его перебивает. */.irm-body .irm-pager a.irm-pager__far{display:none}/* Подвал: родительская тема задаёт тегу footer центрирование, ширину 1300 px и
   нижний отступ 53 px — от них наш подвал становился узким и по центру. */.irm-body footer.irm-ft{max-width:none;width:100%;margin:88px 0 0;padding:0;text-align:left;background:var(--irm-ft)}.irm-body footer.irm-ft .irm-ft__bot p:first-child{text-align:left}/* ═══════ Карточка товара: элементы из макета ═══════ *//* Строка под заголовком: артикул, наличие, оценка. */.irm-body .irm-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 14px;font-size:14px;color:var(--irm-mut)}.irm-body .irm-meta a{display:inline-flex;align-items:center;gap:6px;color:var(--irm-mut)}.irm-body .irm-meta a b{color:var(--irm-ink)}.irm-body .irm-meta .irm-st svg{width:15px;height:15px;color:var(--irm-star)}.irm-body .irm-meta__ok{display:inline-flex;align-items:center;gap:5px;color:#1f9254;font-weight:600}.irm-body .irm-meta__ok svg{width:16px;height:16px}/* Выбор в два шага: чипы поверх родных радиокнопок. *//* 🪤 Родные списки прячем визуально, но НЕ через display:none: site.js
   считает цену по выборкам `:visible`, и от display:none итог становился NaN.
   Размер 1 px оставляет элемент «видимым» для jQuery. */.irm-body .product .irm-hidden-list{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;opacity:0;pointer-events:none}.irm-body .irm-pick{display:flex;flex-direction:column;gap:6px}.irm-body .irm-pick__step{margin:8px 0 2px;font-size:14px;color:var(--irm-mut)}.irm-body .irm-pick__step:first-child{margin-top:0}.irm-body .irm-pick__row{display:flex;flex-wrap:wrap;gap:8px}.irm-body .irm-chip2{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:92px;padding:8px 14px;
  border:0;border-radius:var(--irm-r-m);background:var(--irm-surface);box-shadow:inset 0 0 0 1.5px var(--irm-line);
  cursor:pointer;text-align:left;transition:box-shadow .15s,background-color .15s,scale .15s var(--irm-ease)}.irm-body .irm-chip2:hover{background:var(--irm-accent-soft)}.irm-body .irm-chip2:active{scale:.96}.irm-body .irm-chip2 b{font-size:15px;font-weight:600;color:var(--irm-ink);letter-spacing:-.01em;white-space:nowrap}.irm-body .irm-chip2 span{font-size:14px;color:var(--irm-mut);white-space:nowrap;font-variant-numeric:tabular-nums}.irm-body .irm-chip2.is-on{background:var(--irm-accent-soft);box-shadow:inset 0 0 0 2px var(--irm-accent)}.irm-body .irm-chip2.is-on span{color:var(--irm-accent);font-weight:600}.irm-body .irm-pick__sum{margin-inline-start:auto;color:var(--irm-accent);font-size:17px;font-weight:600;
  letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums}.irm-body .product .params>div>.title,.irm-body .product>.description>div>.cvetnic_pam{display:flex;align-items:baseline;gap:12px;font-size:20px}/* Полировка чипами. */.irm-body .product .polishing .radio-list{flex-direction:row;flex-wrap:wrap;gap:8px}.irm-body .product .polishing .radio{flex:0 0 auto;flex-direction:column;align-items:flex-start;gap:2px;
  min-width:120px;min-height:0;padding:8px 14px;border-radius:var(--irm-r-m);box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .polishing .radio i{display:none}.irm-body .product .polishing .radio .name{flex:0 0 auto;font-size:15px;font-weight:600;color:var(--irm-ink)}.irm-body .product .polishing .radio .price{font-size:14px;font-weight:400;color:var(--irm-mut)}.irm-body .product .polishing .radio.selected{box-shadow:inset 0 0 0 2px var(--irm-accent)}.irm-body .product .polishing .radio.selected .price{color:var(--irm-accent);font-weight:600}/* Пояснения под заголовками. */.irm-body .irm-note{margin:-4px 0 10px;font-size:14px;line-height:1.4;color:var(--irm-mut);text-wrap:pretty}/* Проценты у материалов. */.irm-body .irm-mult{display:block;margin-top:1px;font-size:14px;color:var(--irm-accent);font-variant-numeric:tabular-nums}.irm-body .irm-mult--base{color:var(--irm-mut)}/* Характеристики — две колонки. */.irm-body .product>.description>.spisok_charact li span:first-child{color:var(--irm-mut)}.irm-body .product>.description>.spisok_charact li span:last-child{color:var(--irm-ink);font-weight:500;text-align:right}/* Фото: бейдж скидки и миниатюры. */.irm-body .product>.description>.img-wrap{position:relative}.irm-body .product>.description>.img-wrap .irm-sale{position:absolute;inset-inline-start:12px;bottom:12px;
  padding:2px 8px;border-radius:var(--irm-r-s);background:var(--irm-sale-bg);color:var(--irm-sale-ink);font-size:14px;font-weight:700}.irm-body .irm-thumbs{display:flex;gap:8px}.irm-body .irm-thumb{width:72px;height:72px;padding:6px;border:0;border-radius:var(--irm-r-m);background:var(--irm-surface);
  box-shadow:inset 0 0 0 1.5px var(--irm-line);cursor:pointer}.irm-body .irm-thumb.is-on{box-shadow:inset 0 0 0 2px var(--irm-accent)}.irm-body .irm-thumb img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}/* Шапка блока заказа: цена, старая цена, скидки. */.irm-body .irm-ordertop{padding:4px 4px 12px}.irm-body .irm-ordertop__price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.irm-body .irm-ordertop__price b{color:var(--irm-sale);font-size:30px;font-weight:700;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.irm-body .irm-ordertop__price s{color:var(--irm-mut);font-size:15px;font-variant-numeric:tabular-nums}.irm-body .irm-ordertop__sale{margin-top:2px;color:var(--irm-sale);font-size:14px}/* Строки доверия под кнопками. */.irm-body .irm-trustlist{display:flex;flex-direction:column;gap:10px;margin:14px 4px 4px;padding-top:14px;
  box-shadow:0 -1px 0 var(--irm-line)}.irm-body .irm-trustlist p{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.35;color:var(--irm-ink-2)}.irm-body .irm-trustlist svg{flex:none;width:18px;height:18px;color:var(--irm-accent)}/* «Другие модели». */.irm-body .irm-other{margin-top:56px}.irm-body .irm-other .irm-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1298px){.irm-body .irm-other .irm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .irm-other .irm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.irm-body .irm-pick__sum{font-size:15px}.irm-body .irm-chip2{min-width:84px;padding:7px 12px}
}/* Полировка: цена внутри чипа, а не отдельной строкой под ним. */.irm-body .product .polishing .radio .price{position:static;float:none;width:auto;margin:0;text-align:left}.irm-body .product .polishing .radio .name{width:auto}/* Блок заказа: подписи разделов мелким капсом, как в макете. */.irm-body .product .order>div>.title,.irm-body .product .order>div>.title-first{font-size:14px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--irm-mut)}/* Процент скидки плашкой. */.irm-body .irm-pct{display:inline-flex;align-items:center;margin-inline-start:8px;padding:2px 7px;border-radius:999px;
  background:var(--irm-sale-bg);color:var(--irm-sale-ink);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.irm-body .product .result .checkbox .name{display:flex;align-items:center;color:var(--irm-ink)}/* Состав заказа — плашкой, как в макете. */.irm-body .product .selected-products .listing{padding:10px 12px;border-radius:var(--irm-r-m);background:var(--irm-tile)}.irm-body .product .selected-products .item{padding:3px 0}/* Плашка процента не должна растягиваться на всю строку. */.irm-body .irm-pct{flex:none;width:auto}.irm-body .product .result .checkbox .name{gap:0}/* Родитель задаёт строкам полировки фиксированную высоту 39 px — из-за неё
   цена выпадала под чип. Высоту считаем по содержимому. */.irm-body .product .polishing .radio{height:auto;min-height:0}.irm-body .product .polishing .radio .name,.irm-body .product .polishing .radio .price{height:auto;line-height:1.25}/* «Оформление для памятника»: родитель раскладывает плитки своими ширинами и
   float, из-за них картинки схлопывались. Задаём размеры сами. */.irm-body .page-wrap .services_block .service_list li{float:none;width:auto}.irm-body .page-wrap .services_block .service_list li a{display:block;width:auto;height:auto}.irm-body .page-wrap .services_block .service_list img.list_img{width:100%;height:auto;max-width:none;
  margin:0;border-radius:var(--irm-r-m);display:block}.irm-body .page-wrap .services_block .service_list p{margin:8px 0 4px;font-size:14px;color:inherit;text-align:center}/* Заголовки секций ниже карточки — как в макете. */.irm-body .page-wrap .zagolovok_2_top p{font-size:32px;font-weight:600;letter-spacing:-.022em;text-transform:none}/* Витрина «Другие модели» внутри контента. */.irm-body .page-wrap .irm-catwrap .irm-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1298px){.irm-body .page-wrap .irm-catwrap .irm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .page-wrap .irm-catwrap .irm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Телефон: порядок как в макете — фото, опции, заказ. В разметке блок заказа
   идёт первым, поэтому переставляем его порядком сетки. */
@media(max-width:836px){.irm-body .product>.description{order:1}.irm-body .product .params{order:2}.irm-body .product .order{order:3}/* Липкая полоса с итогом и кнопкой — её строит product.js. */.irm-body .product{padding-bottom:0}.irm-body .irm-bar{position:fixed;inset-inline:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:25;
    display:flex;align-items:center;gap:12px;padding:10px 16px;background:rgba(255,255,255,.96);
    backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--irm-line),0 -8px 26px rgba(34,28,66,.08)}.irm-body .irm-bar__sum{display:flex;flex-direction:column;line-height:1.1}.irm-body .irm-bar__sum b{color:var(--irm-sale);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.irm-body .irm-bar__sum span{color:var(--irm-mut);font-size:14px}.irm-body .irm-bar button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;height:48px;border:0;
    border-radius:var(--irm-r-m);background:var(--irm-accent);color:#fff;font-size:15px;font-weight:600}body.irm-body{padding-bottom:calc(136px + env(safe-area-inset-bottom,0px))}
}
@media(min-width:837px){.irm-body .irm-bar{display:none}}/* Родитель задаёт ширину спанам в строке скидки — плашка процента растягивалась
   на 270 px и вылезала за экран. */.irm-body .product .order .result .checkbox .name .irm-pct{flex:none;width:auto;min-width:0;max-width:none}/* ——— Материалы в средней колонке: свои размеры плиток целиком ——— */.irm-body .product .params>.materials{padding:16px 18px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .product .params>.materials>.radio-list,.irm-body .product .params>.materials .radio-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));
  gap:10px;float:none;width:auto}.irm-body .product .params>.materials .radio-list:after{content:none}.irm-body .product .params>.materials .radio-list .radio{position:static;float:none;width:auto;height:auto;min-height:0;
  margin:0;padding:6px;display:flex;flex-direction:column;align-items:stretch;gap:5px;border-radius:var(--irm-r-m);text-align:center}.irm-body .product .params>.materials .radio-list .radio img{order:-1;width:100%;height:62px;margin:0;
  object-fit:cover;border-radius:var(--irm-r-s)}.irm-body .product .params>.materials .radio-list .radio i{display:none}.irm-body .product .params>.materials .radio-list .radio .name{width:auto;height:auto;font-size:14px;line-height:1.2;
  white-space:normal;overflow:visible;text-overflow:clip;color:var(--irm-ink-2)}.irm-body .product .params>.materials .radio-list .radio.selected .name{color:var(--irm-ink);font-weight:600}.irm-body .product .params>.materials .radio-list .radio .price{width:auto;height:auto;font-size:14px;font-weight:400;
  color:var(--irm-mut);white-space:nowrap}.irm-body .product .params>.materials .irm-mult{margin-top:0;font-size:14px}/* Заголовок материалов лежит ВНУТРИ блока, поэтому правило для .params>.cvetnic_pam
   его не задевало — родитель оставлял капс. */.irm-body .product .params>.materials>.cvetnic_pam{display:flex;align-items:baseline;gap:12px;margin:0 0 6px;
  font-size:20px;font-weight:600;letter-spacing:-.01em;text-transform:none;color:var(--irm-ink)}/* У части шаблонов цена материала позиционирована поверх картинки, а плитке
   задана минимальная ширина 180 px — из-за этого сетка ломалась. Сбрасываем. */.irm-body .product .params>.materials .radio-list .radio{min-width:0}.irm-body .product .params>.materials .radio-list .radio .price{position:static;inset:auto;
  order:3;background:transparent;padding:0;border-radius:0;box-shadow:none}.irm-body .product .params>.materials .radio-list .radio .name{order:1;flex:0 0 100%}.irm-body .product .params>.materials .radio-list .radio .irm-mult{order:2;flex:0 0 100%;margin:0}.irm-body .product .params>.materials .radio-list .radio img{order:0}/* У части шаблонов плитка материала собрана из двух обёрток
   (.radio__title с названием и .radio__img__wrapper с фото) — раскладываем их
   как в макете: фото сверху, под ним название и процент. */.irm-body .product .params>.materials .radio-list .radio{display:flex;flex-direction:column;gap:6px}.irm-body .product .params>.materials .radio-list .radio>.radio__img__wrapper{order:1;margin:0;width:100%}.irm-body .product .params>.materials .radio-list .radio>.radio__title{order:2;display:flex;flex-direction:column;
  gap:1px;height:auto;width:auto;float:none;text-align:center}.irm-body .product .params>.materials .radio-list .radio .name,.irm-body .product .params>.materials .radio-list .radio .irm-mult,.irm-body .product .params>.materials .radio-list .radio .price{float:none;position:static;width:auto;height:auto;display:block}.irm-body .product .params>.materials .radio-list .radio img{width:100%;height:62px;object-fit:cover;border-radius:var(--irm-r-s)}.irm-body .product .params>.materials .radio-list{grid-template-columns:repeat(auto-fill,minmax(98px,1fr))}/* Родитель даёт спанам плитки фиксированную высоту 56 px и прячет перелив —
   от этого процент выпадал из плитки. Высоту считаем по тексту. */.irm-body .product .params>.materials .radio-list .radio>.radio__title{height:auto;min-height:0}.irm-body .product .params>.materials .radio-list .radio .name,.irm-body .product .params>.materials .radio-list .radio .irm-mult{height:auto;min-height:0;overflow:visible;line-height:1.2}/* Цену на плитке макет не показывает — под названием только процент к цене. *//* 🪤 У родителя это правило с !important (`display:block!important`), поэтому
   единственный способ убрать цену с плитки — ответить тем же. */.irm-body .product .params>.materials .radio-list .radio .price-for-img{display:none!important}.irm-body .product .params>.materials .radio-list .radio>.radio__img__wrapper{position:relative}/* Плитки материалов не растягиваем по высоте строки: у «базовая цена» подпись
   в две строки, и при растяжении она вылезала за скруглённый край. */.irm-body .product .params>.materials .radio-list{align-items:start}.irm-body .product .params>.materials .radio-list .radio{padding-bottom:8px}/* Полировка: чипы белые, как остальные; скидка красным, «включено» — серым. */.irm-body .product .polishing .radio{background:var(--irm-surface)}.irm-body .product .polishing .radio.selected{background:var(--irm-accent-soft)}.irm-body .product .polishing .radio .irm-price--down{color:var(--irm-sale);font-weight:600}.irm-body .product .polishing .radio .irm-price--in{color:var(--irm-mut)}/* Плашка скидки у одностороннего полирования. */.irm-body .irm-pct--down{background:var(--irm-sale-bg);color:var(--irm-sale-ink)}.irm-body .product .polishing .radio .irm-pct{margin:0;align-self:flex-start}.irm-body .product .polishing .radio{gap:3px}/* Полировка: цену печатает тема нулём и переписывает в браузере — показываем
   подписи из макета, а родную цену прячем, чтобы цифра не прыгала. */.irm-body .product .polishing .radio .price{display:none}.irm-body .irm-side{font-size:14px;color:var(--irm-sale);font-weight:600}.irm-body .irm-side--in{color:var(--irm-mut);font-weight:400}/* ═══════ Попапы форм в стиле «Маркета» ═══════
   Разметку печатает родительский footer.php (обратный звонок, выезд менеджера,
   «в 1 клик», корзина, отправка на почту). На облегчённых страницах полного
   style.css темы нет, поэтому вид задаём здесь — заодно он совпадает с макетом. */.irm-body .popup{position:relative;width:100%;max-width:460px;margin:0 auto;padding:28px;
  border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-2);
  font:16px/1.5 Tahoma,Geneva,Verdana,sans-serif;color:var(--irm-ink)}.irm-body .popup form{display:flex;flex-direction:column;gap:10px;margin:0}.irm-body .popup__title{margin:0 0 6px;font-size:21px;font-weight:600;letter-spacing:-.015em;color:var(--irm-ink);text-align:left}.irm-body .popup__field{width:100%;height:48px;padding:0 14px;border:0;border-radius:var(--irm-r-m);background:var(--irm-surface);
  box-shadow:inset 0 0 0 1.5px var(--irm-line);font-size:15px;color:var(--irm-ink);outline:0;float:none;margin:0}.irm-body .popup__field:focus{box-shadow:inset 0 0 0 2px var(--irm-accent)}.irm-body .popup__field::placeholder{color:var(--irm-mut)}.irm-body .popup .red-btn,.irm-body .popup__btn{display:flex;align-items:center;justify-content:center;width:100%;height:50px;margin:4px 0 0;
  padding:0 18px;border:0;border-radius:var(--irm-r-m);background:var(--irm-accent);color:#fff;font-size:15px;font-weight:600;
  text-transform:none;cursor:pointer;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .popup .red-btn:hover,.irm-body .popup__btn:hover{background:var(--irm-accent-h)}.irm-body .popup .red-btn:active,.irm-body .popup__btn:active{scale:.96}.irm-body .popup .popup_p{margin:6px 0 0;color:var(--irm-ink-2);text-wrap:pretty}.irm-body .popup .success{display:flex;flex-direction:column;gap:6px}.irm-body .popup .continue,.irm-body .popup .to-basket{display:inline-flex;align-items:center;justify-content:center;height:46px;padding:0 18px;
  border-radius:var(--irm-r-m);font-weight:600;text-decoration:none}.irm-body .popup .continue{background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body .popup .to-basket{background:var(--irm-accent);color:#fff}/* Обёртка magnific: затемнение и крестик. */.irm-body .mfp-bg{position:fixed;inset:0;z-index:1042;background:#1c1a26;opacity:.55}.irm-body .mfp-wrap{position:fixed;inset:0;z-index:1043;outline:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.irm-body .mfp-container{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.irm-body .mfp-content{position:relative;width:100%;max-width:460px;margin:0 auto}.irm-body .mfp-close{position:absolute;top:-6px;right:-6px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;
  background:var(--irm-surface);box-shadow:var(--irm-sh-1);color:var(--irm-ink-2);font-size:20px;line-height:36px;
  text-align:center;cursor:pointer;opacity:1}.irm-body .mfp-close:hover{color:var(--irm-accent)}.irm-body .mfp-hide{display:none!important}/* ——— Блок заказа: подгон под макет ———
   В макете нет подписи «Ваш комплект» и строки «Сумма»: состав идёт плашкой
   сразу под ценой, а итог уже показан сверху. Строку не удаляем — её читает
   site.js, — а прячем. */.irm-body .product .order>.selected-products>.title-first{display:none}.irm-body .product .selected-products .item.sum{display:none}/* Радиокнопки установки и доставки — как в макете: без подложки, только точка. */.irm-body .product .order .radio{padding:0 4px;min-height:38px;border-radius:var(--irm-r-s)}.irm-body .product .order .radio.selected{background:transparent;box-shadow:none}.irm-body .product .order .radio:hover{background:var(--irm-accent-soft)}.irm-body .product .order .radio .name{font-weight:400;color:var(--irm-ink)}.irm-body .product .order .radio.selected .name{font-weight:400}.irm-body .product .order .radio .price{color:var(--irm-ink);font-weight:600}.irm-body .product .order .radio.selected .price{color:var(--irm-ink)}.irm-body .product .order .radio i{width:17px;height:17px;box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .order .radio.selected i{box-shadow:inset 0 0 0 1.5px var(--irm-accent),inset 0 0 0 6px var(--irm-surface),inset 0 0 0 13px var(--irm-accent)}/* Заголовок карточки стоит в средней колонке — без фона и внутренних отступов. */.irm-body .product .params>.title-container{display:flex;align-items:center;gap:12px;margin:0;padding:0;
  background:transparent;box-shadow:none;border-radius:0}.irm-body .product .params>.title-container h1{margin:0;font-size:30px;line-height:1.15;letter-spacing:-.022em;
  color:var(--irm-ink);text-wrap:balance;display:inline}.irm-body .product .params>.irm-meta{margin:0 0 4px;padding:0;background:transparent;box-shadow:none}/* Заголовок прячем только там, где карточка товара переносит его в колонку
   конфигуратора; на прочих записях (города, кладбища) H1 нужен. ORG-SITES-116 */.irm-body .page-wrap:has(.product)>.title-container{display:none}/* Разделитель крошек — шеврон, как в макете. */.irm-body .irm-crumbs__sep{margin:0 2px;color:var(--irm-line)}/* Галочки скидок — квадрат с галочкой, как в макете (родитель делает круг). */.irm-body .product .result .checkbox i{position:relative;width:18px;height:18px;border-radius:var(--irm-r-s);background:transparent;
  box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .result .checkbox.checked i{background:var(--irm-accent);box-shadow:none}.irm-body .product .result .checkbox.checked i:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;
  border:2px solid #fff;border-top:0;border-left:0;rotate:45deg}/* Фото товара: пропорции плитки как в макете. */.irm-body .product>.description>.img-wrap{display:flex;align-items:center;justify-content:center;min-height:0}.irm-body .product>.description>.img-wrap img{max-height:430px;width:auto;max-width:100%;object-fit:contain}/* Состав комплекта: в макете только название и цена; «1 шт.» не показываем.
   Итог и сумма скидок в макете стоят сверху — нижние дубли прячем (их пишет
   site.js, поэтому удалять из разметки нельзя). */.irm-body .product .selected-products .item .length{display:none}.irm-body .product .result>.result-discount,.irm-body .product .result>.sum{display:none}/* Фото товара: поля вокруг и сердце в углу — как в макете. */.irm-body .product>.description>.img-wrap{position:relative;padding:28px 24px;min-height:430px}.irm-body .product>.description>.img-wrap>.favorite{position:absolute;top:14px;inset-inline-end:14px;z-index:2;
  display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92);
  box-shadow:var(--irm-sh-1);color:var(--irm-mut)}.irm-body .product>.description>.img-wrap>.favorite a{display:grid;place-items:center;width:100%;height:100%}.irm-body .product>.description>.img-wrap>.favorite svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6}.irm-body .product>.description>.img-wrap>.favorite.actives{color:var(--irm-sale)}.irm-body .product>.description>.img-wrap>.favorite.actives svg{fill:currentColor}/* Сердце на фото: спрайтовый путь залит инлайновым fill:currentColor — гасим
   его, иначе иконка синяя и сплошная. Активное состояние красим заливкой. */.irm-body .product>.description>.img-wrap>.favorite a{color:inherit;text-decoration:none}.irm-body .product>.description>.img-wrap>.favorite svg{width:20px;height:20px;fill:none;stroke:currentColor}.irm-body .product>.description>.img-wrap>.favorite.actives svg{fill:currentColor}.irm-body .product>.description>.img-wrap>.favorite:hover{color:var(--irm-sale)}/* Плитка фото по высоте как в макете. */.irm-body .product>.description>.img-wrap{min-height:470px;padding:24px}.irm-body .product>.description>.img-wrap img{max-height:400px}/* Полировка и материалы в макете идут без карточки — прямо на фоне страницы. */.irm-body .product .params>.polishing,.irm-body .product .params>.materials{padding:0;background:transparent;box-shadow:none;border-radius:0}.irm-body .product .params>.polishing>.title,.irm-body .product .params>.materials>.cvetnic_pam{font-size:19px}.irm-body .product .params>.polishing>.irm-note,.irm-body .product .params>.materials>.irm-note{margin-top:-2px}/* Плитки материалов: пять в ряд и фото 4:3, как в макете. */.irm-body .product .params>.materials .radio-list{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:12px}.irm-body .product .params>.materials .radio-list .radio img{height:auto;aspect-ratio:4/3}.irm-body .product .params>.materials .radio-list .radio{padding:0;background:transparent;box-shadow:none}.irm-body .product .params>.materials .radio-list .radio.selected{background:transparent;
  box-shadow:0 0 0 2px var(--irm-accent);border-radius:var(--irm-r-m)}.irm-body .product .params>.materials .radio-list .radio>.radio__title{padding:0 2px 4px}/* Пять плиток материала в ряд, как в макете. */.irm-body .product .params>.materials .radio-list{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}/* Подпись полировки — в одну строку с заголовком. */.irm-body .product .params>.polishing{display:flex;flex-direction:column;gap:6px}.irm-body .product .params>.polishing>.title{display:inline-flex;align-items:baseline;gap:10px;margin:0}.irm-body .product .params>.polishing>.irm-note{margin:0;order:0}.irm-body .product .params>.polishing>.title+.irm-note{margin-top:-28px;margin-inline-start:130px}/* Блока «Цветник из гранита» в макете нет: его фото попадает в миниатюры под
   главным снимком (их собирает product.js), а отдельную карточку прячем. */.irm-body .product>.description>.garden{display:none}

/* ═══════ Перфект-пиксель карточки: значения сняты из CSS макета ═══════
   mockup-product-a284.html, правила .pd__top / .gal / .chars / .cfg / .og /
   .ch / .mt / .buy. Здесь они повторены один в один (сборщик умножит на 1,1). */

/* Сетка колонок: 420 / остаток / 340, зазор 32.
   🪤 Только на широком экране (ORG-SITES-149): правило стоит ниже мобильных
   (≤1298 — две колонки, ≤836 — одна) и перебивало их — на телефоне у старых
   карточек товара выходило «0px 0px 374px»: фото и параметры шириной 0,
   название по слову в строке. Сквозная проверка нашла это на 64 типах. */
@media(min-width:1299px){.irm-body .product.content{grid-template-columns:minmax(0,470px) minmax(0,1fr) 360px;gap:32px;align-items:start}
}/* Крошки. */.irm-body .irm-crumbs{gap:4px;margin:14px 0 18px;font-size:14px}/* Левая колонка: фото, миниатюры, характеристики. */.irm-body .product>.description{gap:12px;position:sticky;top:104px}.irm-body .product>.description>.img-wrap{aspect-ratio:1/1.12;min-height:0;padding:32px;border-radius:var(--irm-r-l);overflow:hidden}.irm-body .product>.description>.img-wrap img{width:100%;height:100%;max-height:none;object-fit:contain}.irm-body .product>.description>.img-wrap .irm-sale{inset-inline-start:16px;bottom:16px;padding:4px 10px;font-size:14px}.irm-body .product>.description>.img-wrap>.favorite{top:16px;inset-inline-end:16px;width:44px;height:44px}.irm-body .irm-thumbs{gap:8px}.irm-body .irm-thumb{width:72px;height:72px;padding:6px;border-radius:var(--irm-r-m);background:var(--irm-tile);
  box-shadow:inset 0 0 0 2px transparent}.irm-body .irm-thumb.is-on{box-shadow:inset 0 0 0 2px var(--irm-accent)}.irm-body .product>.description>.cvetnic_pam{margin:8px 0 0;padding:20px 22px 0;border-radius:var(--irm-r-l) var(--irm-r-l) 0 0;font-size:17px;font-weight:600}.irm-body .product>.description>.spisok_charact{margin:0;padding:8px 22px 20px;border-radius:0 0 var(--irm-r-l) var(--irm-r-l)}.irm-body .product>.description>.spisok_charact li{gap:16px;padding:9px 0;font-size:14px}.irm-body .product>.description>.spisok_charact li span:last-child{font-weight:500}/* Средняя колонка. */.irm-body .product .params{gap:20px}.irm-body .product .params>.title-container h1{font-size:30px}.irm-body .product .params>.irm-meta{gap:6px 18px;margin:-10px 0 0;font-size:14px}.irm-body .product .params>.irm-meta .irm-meta__ok{color:#23804a}.irm-body .product .params>.irm-meta .irm-st svg,.irm-body .product .params>.irm-meta .irm-meta__ok svg{width:16px;height:16px}/* Карточка опции и её заголовок. */.irm-body .product .params>div:not(.title-container):not(.polishing):not(.materials){padding:20px 22px 22px;border-radius:var(--irm-r-l)}.irm-body .product .params>div>.title{font-size:23px;font-weight:700;margin-bottom:14px}.irm-body .product .params>.materials>.cvetnic_pam{font-size:23px;font-weight:700;margin-bottom:6px}.irm-body .irm-pick{gap:0}.irm-body .irm-pick__step{margin:0 0 8px;font-size:14px}.irm-body .irm-pick__row{gap:8px;margin-bottom:14px}.irm-body .irm-pick__row:last-child{margin-bottom:0}/* Чипы выбора — размеры из макета. */.irm-body .irm-chip2{display:grid;place-items:center;min-width:0;min-height:46px;padding:6px 16px;border-radius:var(--irm-r-m);
  background:var(--irm-surface);box-shadow:inset 0 0 0 1.5px var(--irm-line);text-align:center}.irm-body .irm-chip2 b{font-size:15px;font-weight:600}.irm-body .irm-chip2 span{margin-top:1px;font-size:14px;font-weight:400;color:var(--irm-mut)}.irm-body .irm-chip2:hover{background:var(--irm-surface);box-shadow:inset 0 0 0 1.5px var(--irm-accent)}.irm-body .irm-chip2.is-on{background:var(--irm-accent-soft);box-shadow:inset 0 0 0 2px var(--irm-accent)}.irm-body .irm-chip2.is-on span{color:var(--irm-accent);font-weight:600}/* Плитки материала. */.irm-body .product .params>.materials .radio-list{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.irm-body .product .params>.materials .radio-list .radio{gap:5px;padding:5px 5px 7px;border-radius:var(--irm-r-m);
  background:var(--irm-surface);box-shadow:inset 0 0 0 1.5px var(--irm-line)}.irm-body .product .params>.materials .radio-list .radio:hover{box-shadow:inset 0 0 0 1.5px var(--irm-accent)}.irm-body .product .params>.materials .radio-list .radio.selected{background:var(--irm-accent-soft);
  box-shadow:inset 0 0 0 2px var(--irm-accent)}.irm-body .product .params>.materials .radio-list .radio img{border-radius:var(--irm-r-s);outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.irm-body .product .params>.materials .radio-list .radio .name{font-size:14px;line-height:1.2}.irm-body .product .params>.materials .irm-mult{font-size:14px;font-weight:600;color:var(--irm-mut)}/* Правая колонка. */.irm-body .product .order{position:sticky;top:104px}.irm-body .product .order .result .add-basket,.irm-body .product .order .result .one-click{min-height:50px;height:auto;font-size:15px}.irm-body .product .order .result .add-basket svg,.irm-body .product .order .result .one-click svg{width:20px;height:20px}/* Донастройка по CSS макета: .vg legend output, .vg .ch span, .vg__lb, .buy__in. */.irm-body .irm-pick__sum{font-size:19px;font-weight:600;letter-spacing:0}.irm-body .product .params>div>.title{gap:2px 16px;flex-wrap:wrap;width:100%}.irm-body .irm-chip2{background:var(--irm-bg)}.irm-body .irm-chip2:hover{background:var(--irm-bg)}.irm-body .irm-chip2.is-on{background:var(--irm-accent-soft)}.irm-body .irm-pick__row{margin-bottom:0}.irm-body .irm-pick__step+.irm-pick__row+.irm-pick__step{margin-top:12px}/* Блок заказа — как .buy__in в макете. */.irm-body .product .order{display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:var(--irm-r-xl);
  background:var(--irm-surface);box-shadow:var(--irm-sh-2)}.irm-body .product .order>div{margin:0;padding:0;box-shadow:none}.irm-body .product .order>div+div{box-shadow:none}.irm-body .irm-ordertop{padding:0}.irm-body .irm-ordertop__price b{font-size:34px;line-height:1;letter-spacing:-.03em}.irm-body .irm-ordertop__price s{font-size:15px}.irm-body .irm-ordertop__sale{margin-top:4px;font-size:14px;color:var(--irm-sale-ink)}.irm-body .product .selected-products .listing{display:flex;flex-direction:column;gap:6px;margin:0;padding:12px 14px;
  border-radius:var(--irm-r-m);background:var(--irm-tile);font-size:14px}.irm-body .product .selected-products .item{padding:0}.irm-body .product .selected-products .item .price{font-weight:600;white-space:nowrap}.irm-body .product .order>div>.title{font-size:14px}.irm-body .product .order .radio{min-height:34px}.irm-body .irm-trustlist{gap:8px;margin:0;padding:14px 0 0;box-shadow:0 -1px 0 var(--irm-line);font-size:14px;color:var(--irm-ink-2)}.irm-body .irm-trustlist svg{width:20px;height:20px}/* Точная донастройка по замерам: высота чипа 52, шрифты и межстрочный интервал. */.irm-body .irm-chip2{min-height:52px;font-size:15px;line-height:1.2}.irm-body .irm-pick__step{line-height:1.5}.irm-body .product .selected-products .listing{line-height:1.5}/* 🪤 `.order>div{padding:0}` снимал отступ и со строк доверия — возвращаем. */.irm-body .product .order>.irm-trustlist{padding:14px 0 0}/* Полоса миниатюр не должна добавлять высоту строки, а строки характеристик
   идут с тем же межстрочным интервалом, что в макете. */.irm-body .irm-thumbs{display:flex;align-items:flex-start;line-height:0}.irm-body .product>.description>.spisok_charact li{line-height:1.5}.irm-body .product>.description>.cvetnic_pam{line-height:1.2}/* 🪤 Полоса миниатюр — прямой ребёнок .description и ловила общий padding
   карточек: блок становился на 35 px выше эталона. */.irm-body .product>.description>.irm-thumbs{padding:0;background:transparent;box-shadow:none;border-radius:0}/* Карточку «Цветник из гранита» макет не показывает — фото уходит в миниатюры.
   Прячем её независимо от того, в какой колонке она оказалась. */.irm-body .product .garden{display:none}/* Родная карточка темы остаётся в странице как счётная машина: site.js считает
   по её разметке и с неё уходит заказ. Прячем визуально, но НЕ display:none —
   расчёты идут по выборкам :visible. */.irm-body .irm-native{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);
  white-space:nowrap;opacity:0;pointer-events:none}/* 🪤 У старой темы `.content{width:1030px}` — на телефоне вступление каталога
   вылезало за экран на 658 px. Ширину отдаём контейнеру. */.irm-body .page-wrap .content,.irm-body .page-wrap .text-block{width:auto;max-width:100%;margin-inline:0}

/* На 360 круглая иконка первого экрана выходила за карточку на 11 px. */
@media(max-width:440px){.irm-body .irm-ad__ic{inset-inline-end:16px;width:44px;height:44px}}/* Крошки — тише, это навигация, а не содержание (Антон 22.09.2026). */.irm-body .irm-crumbs{color:#9e99b0}.irm-body .irm-crumbs a{color:inherit}.irm-body .irm-crumbs a:hover{color:var(--irm-accent)}/* Плавающий значок родной темы в правом нижнем углу не используем. */body .social-menu{display:none!important}/* Пояснение под заголовком всплывающих форм. */.irm-body .irm-pp__note{margin:-6px 0 14px;font-size:14px;line-height:1.45;color:var(--irm-mut);text-align:center}/* Сообщение об успехе показывается только после отправки формы. */.irm-body .irm-pp--fix>.success{display:none}/* Крестик — внутри окна, а не свисает с угла наполовину (Антон 22.09.2026). */.irm-body .mfp-close{top:12px;right:12px;width:36px;height:36px;line-height:36px;font-size:26px;
  background:var(--irm-tile);box-shadow:none;color:var(--irm-mut)}.irm-body .mfp-close:hover{background:var(--irm-accent-soft);color:var(--irm-accent)}/* Подписи плашек «Оформление для памятника» крупнее (Антон 22.09.2026). */.irm-body .page-wrap .services_block .service_list p{font-size:16px;margin:10px 0 6px}/* Крестик модалки — символ ровно по центру кружка (Антон 22.09.2026). */.irm-body .mfp-close{display:grid;place-items:center;padding:0;line-height:1}/* ——— Единый вид остальных страниц (ORG-SITES-108, решение Антона 22.09.2026:
   «сделать все остальные страницы в одном стиле»). Текст живёт в белой
   карточке макета, заголовки и ссылки — из палитры маркета. ——— */.irm-body .page-wrap .text-block.content{max-width:none;margin:0 0 22px;padding:31px 35px;
  border-radius:var(--irm-r-xl);background:var(--irm-surface);box-shadow:var(--irm-sh-1);
  /* 15,5 px в исходнике = 17 px на экране. 19 px (→21) Антон забраковал
     26.09.2026: «больно крупные символы, очень нерационально место».
     Ниже 12,7 не опускаемся: 12,7 × 1,1 = 14 px — нижняя граница. */
  font-size:16px;line-height:1.62;color:var(--irm-ink-2)}.irm-body .page-wrap .text-block.content>*{max-width:none}.irm-body .page-wrap .text-block.content h2{margin:28px 0 12px;font-size:28px;font-weight:600;
  letter-spacing:-.022em;line-height:1.15;color:var(--irm-ink);text-align:start;text-transform:none}.irm-body .page-wrap .text-block.content h3{margin:22px 0 10px;font-size:26px;font-weight:600;
  color:var(--irm-ink);text-align:start}.irm-body .page-wrap .text-block.content h2:first-child,.irm-body .page-wrap .text-block.content h3:first-child{margin-top:0}.irm-body .page-wrap .text-block.content p{margin:0 0 12px}.irm-body .page-wrap .text-block.content a{color:var(--irm-accent)}.irm-body .page-wrap .text-block.content a:hover{color:var(--irm-accent-h)}/* Текст — на всю ширину карточки, ссылки в тексте — тонким подчёркиванием
   (Антон 28.09.2026: «текст щупленький, сдавленный… растянуть на всю длину;
   сделай ссылки в тексте покрасивее», ORG-SITES-149). Мера 781/990 px снята.
   Ссылки без своего класса: плитки, кнопки и чипы оформлены отдельно. */.irm-body .page-wrap .text-block.content a:not([class]):not(.irm-seo__toc a){color:var(--irm-accent);font-weight:600;text-decoration-line:underline;
  text-decoration-thickness:1px;text-decoration-color:rgba(91,81,135,.35);text-underline-offset:.24em;transition:color .15s,text-decoration-color .15s}.irm-body .page-wrap .text-block.content a:not([class]):not(.irm-seo__toc a):hover{color:var(--irm-accent-h);text-decoration-color:currentColor}.irm-body .page-wrap .text-block.content a:not([class]):focus-visible{outline:2px solid var(--irm-accent);outline-offset:2px;border-radius:4px}.irm-body .page-wrap .text-block.content ul,.irm-body .page-wrap .text-block.content ol{margin:0 0 14px;padding-inline-start:22px}.irm-body .page-wrap .text-block.content li{margin-bottom:6px}.irm-body .page-wrap .text-block.content img{max-width:100%;height:auto;border-radius:var(--irm-r-m)}.irm-body .page-wrap .text-block.content table{width:100%;border-collapse:collapse;margin:0 0 16px;
  font-variant-numeric:tabular-nums}.irm-body .page-wrap .text-block.content th,.irm-body .page-wrap .text-block.content td{padding:10px 12px;border-bottom:1px solid var(--irm-line);
  text-align:start}.irm-body .page-wrap .text-block.content th{color:var(--irm-mut);font-weight:600}/* Заголовок страницы — как на карточке товара. */.irm-body .page-wrap>h1,.irm-body .page-wrap .irm-cat__head h1{color:var(--irm-ink);font-weight:700;
  letter-spacing:-.022em;line-height:1.12}/* Старые крошки (корзина, избранное) приводим к виду маркета. */.irm-body .page-wrap .bread-crumbs,.irm-body .page-wrap .breadcrumbs{margin:14px 0 18px;
  font-size:14px;color:#9e99b0}.irm-body .page-wrap .bread-crumbs a,.irm-body .page-wrap .breadcrumbs a{color:inherit;
  text-decoration:none}.irm-body .page-wrap .bread-crumbs a:hover,.irm-body .page-wrap .breadcrumbs a:hover{color:var(--irm-accent)}/* Заголовки внутри текстовых блоков выравниваем по левому краю, как в макете. */.irm-body .page-wrap .text-block.content .h3_new,.irm-body .page-wrap .text-block.content .h2_new{text-align:start;color:var(--irm-ink)}/* Галереи («Фотографии наших работ» и подобные) — сеткой, как «Наши работы». */.irm-body .page-wrap .text-block.content .slider-foto:not(:has(ul)){display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.irm-body .page-wrap .text-block.content .slider-foto>*{margin:0;width:auto;float:none}.irm-body .page-wrap .text-block.content .slider-foto img{width:100%;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--irm-r-m)}
@media(max-width:1298px){.irm-body .page-wrap .text-block.content .slider-foto{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .page-wrap .text-block.content{padding:22px 18px}.irm-body .page-wrap .text-block.content .slider-foto{grid-template-columns:repeat(2,minmax(0,1fr))}}/* ——— Отзывы (плагин org-ritual-reviews) в стиле маркета ——— */.irm-body .iri-feedback-trust{border-radius:var(--irm-r-xl);background:var(--irm-surface);
  box-shadow:var(--irm-sh-1);color:var(--irm-ink);padding:24px 28px}.irm-body .iri-feedback-trust__score{color:var(--irm-ink)}.irm-body .iri-feedback-trust__meta,.irm-body .iri-feedback-trust__lead{color:var(--irm-mut)}.irm-body .iri-feedback-trust__plat{color:var(--irm-accent);text-decoration:none;font-weight:600}.irm-body .iri-feedback-page__title{margin:32px 0 16px;font-size:32px;font-weight:600;
  letter-spacing:-.022em;color:var(--irm-ink);text-transform:none;border:0;padding:0}.irm-body .iri-feedback-page__title:after,.irm-body .iri-feedback-page__title:before{display:none}.irm-body .iri-feedback__list{display:grid;gap:12px}.irm-body .iri-feedback__item{padding:20px 24px;border-radius:var(--irm-r-l);
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .iri-feedback__ava{background:var(--irm-accent-soft);color:var(--irm-accent);border-radius:var(--irm-r-m)}.irm-body .iri-feedback__name{color:var(--irm-ink);font-weight:600}.irm-body .iri-feedback__date,.irm-body .iri-feedback__src{color:var(--irm-mut)}.irm-body .iri-feedback__text{color:var(--irm-ink-2);line-height:1.6}/* Кегли отзывов — по шкале §11.1 (ORG-SITES-146): плагин ставил 15 и 12 px.
   Блок оценки — во всю ширину, как список под ним. */.irm-body .page-wrap .iri-feedback__name{font-size:16px}.irm-body .page-wrap .iri-feedback__date,.irm-body .page-wrap .iri-feedback__src{font-size:14px}.irm-body .page-wrap .iri-feedback__text{font-size:16px}.irm-body .page-wrap .iri-feedback-trust,.irm-body .page-wrap .iri-feedback-page,.irm-body .page-wrap .iri-feedback__list{max-width:none}.irm-body .page-wrap .iri-feedback-form__el p,.irm-body .page-wrap .iri-feedback-trust__plat{font-size:14px}/* Страница отзывов без CSS родителя (ORG-SITES-146): блоки по краям страницы,
   каждый отзыв — карточка, оценка 48 по шкале, форма — как оформление заказа. */.irm-body .page-wrap .iri-feedback-page,.irm-body .page-wrap .iri-feedback-trust,.irm-body .page-wrap .iri-feedback-form{margin-inline:0;max-width:none}.irm-body .page-wrap .iri-feedback-page{padding-inline:0}.irm-body .page-wrap .iri-feedback-page .iri-feedback__list{display:grid;background:transparent;gap:13px}.irm-body .page-wrap .iri-feedback__list .iri-feedback__item{margin:0;padding:22px 26px;border:0;border-radius:var(--irm-r-l);
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .page-wrap .iri-feedback-pager{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:26px 0 0;--orr-acc:var(--irm-accent)}.irm-body .page-wrap .iri-feedback-pager__i{display:grid;place-items:center;min-width:48px;height:48px;padding:0 12px;border:0;border-radius:999px;
  background:var(--irm-surface);box-shadow:var(--irm-sh-1);color:var(--irm-ink-2);font-size:16px;text-decoration:none;transition:color .15s,background-color .15s}.irm-body .page-wrap a.iri-feedback-pager__i:hover{color:var(--irm-accent)}.irm-body .page-wrap .iri-feedback-pager__i.is-current{background:var(--irm-accent);color:#fff;font-weight:700}.irm-body .page-wrap .iri-feedback-pager__i:before,.irm-body .page-wrap .iri-feedback-pager__i:after{display:none}.irm-body .page-wrap .iri-feedback-trust__score{font-size:48px;line-height:1;letter-spacing:-.03em}.irm-body .page-wrap .iri-feedback-form{margin-top:31px;padding:28px 31px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .page-wrap .iri-feedback-form__el{display:grid;gap:7px;max-width:640px}.irm-body .page-wrap .iri-feedback-form__title{margin:0 0 12px;font-size:26px;font-weight:700;line-height:1.2;text-transform:none;letter-spacing:-.018em;color:var(--irm-ink)}.irm-body .page-wrap .iri-feedback-form__el>p{margin:8px 0 0;font-size:14px;color:var(--irm-ink-2)}.irm-body .page-wrap .iri-feedback-form__row{margin:0}.irm-body .page-wrap .iri-feedback-form__row :is(input,textarea){width:100%;padding:14px 16px;border:1px solid var(--irm-line);border-radius:var(--irm-r-m);
  background:var(--irm-bg);font:inherit;font-size:16px;color:var(--irm-ink);transition:border-color .15s,background-color .15s,box-shadow .15s}.irm-body .page-wrap .iri-feedback-form__row input{height:52px;padding-block:0}.irm-body .page-wrap .iri-feedback-form__row :is(input,textarea):focus{outline:none;border-color:var(--irm-accent);background:var(--irm-surface);box-shadow:0 0 0 3px var(--irm-accent-soft)}.irm-body .page-wrap .iri-feedback-form__send{justify-self:start;min-height:53px;margin-top:14px;padding:0 28px;border:0;border-radius:var(--irm-r-m);
  background:var(--irm-accent);color:#fff;font:inherit;font-size:16px;font-weight:700;text-transform:none;letter-spacing:0;cursor:pointer;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .page-wrap .iri-feedback-form__send:hover{background:var(--irm-accent-h)}.irm-body .page-wrap .iri-feedback-form__send:active{scale:.96}
@media(max-width:640px){.irm-body .page-wrap .iri-feedback-form{padding:22px 18px}.irm-body .page-wrap .iri-feedback-trust__score{font-size:40px}}/* Карта сайта (ORG-SITES-146): вместо столбца ссылок с квадратными маркерами
   и подчёркиванием — колонки тихих ссылок, как меню в подвале. */.irm-body .page-wrap .wp-sitemap-page__list{columns:3 260px;column-gap:40px;margin:0;padding:0;list-style:none}.irm-body .page-wrap .wp-sitemap-page__list li{break-inside:avoid;margin:0;padding:0;list-style:none}.irm-body .page-wrap .wp-sitemap-page__list li:before{display:none}.irm-body .page-wrap .wp-sitemap-page__list a{display:block;padding:7px 0;color:var(--irm-ink-2);text-decoration:none;font-size:16px;line-height:1.4}.irm-body .page-wrap .wp-sitemap-page__list a:hover{color:var(--irm-accent)}.irm-body .page-wrap .wp-sitemap-page__list a.active{color:var(--irm-mut)}/* «Вопрос — Ответ» (ORG-SITES-146): зелёные полосы, серые плашки и зелёный
   градиент из текста записи сняты, их места заняли классы ниже. */.irm-body .page-wrap .irm-faq-q{padding:22px 0;border-top:1px solid var(--irm-line)}.irm-body .page-wrap h2+.irm-faq-q{border-top:0;padding-top:4px}.irm-body .page-wrap .irm-faq-q>h3{margin-top:0}.irm-body .page-wrap .irm-faq-q>:last-child{margin-bottom:0}.irm-body .page-wrap .irm-faq-note{margin:22px 0;padding:18px 24px;border-radius:0 var(--irm-r-m) var(--irm-r-m) 0;
  border-left:4px solid var(--irm-accent);background:var(--irm-accent-soft);color:var(--irm-ink)}.irm-body .page-wrap .irm-faq-note p{margin:0}.irm-body .page-wrap .irm-faq-cta{max-width:none;margin:40px 0 0;padding:40px 44px;border-radius:var(--irm-r-xl);
  background:var(--irm-accent);color:#fff}.irm-body .page-wrap .text-block.content .irm-faq-cta h3{margin:0 0 12px;font-size:32px;line-height:1.15;color:#fff}.irm-body .page-wrap .text-block.content .irm-faq-cta p,.irm-body .page-wrap .text-block.content .irm-faq-cta li{color:#e4e1f2}.irm-body .page-wrap .text-block.content .irm-faq-cta strong,.irm-body .page-wrap .text-block.content .irm-faq-cta a{color:#fff}.irm-body .page-wrap .text-block.content .irm-faq-cta a{font-weight:700;text-decoration:none;white-space:nowrap}.irm-body .page-wrap .irm-faq-cta__list{display:grid;gap:4px;margin:20px 0}.irm-body .page-wrap .irm-faq-cta__list p{margin:0}.irm-body .page-wrap .irm-faq-cta__foot{padding-top:20px;border-top:1px solid rgba(255,255,255,.25)}.irm-body .page-wrap .irm-faq-cta__foot p{margin:0}
@media(max-width:640px){.irm-body .page-wrap .irm-faq-cta{padding:28px 22px}.irm-body .page-wrap .text-block.content .irm-faq-cta h3{font-size:26px}}/* ——— Служебные страницы на родительских шаблонах (конструктор) ———
   Корзину, избранное и просмотренные с ORG-SITES-145 рисует сам «Маркет». */.irm-body .page-wrap section.main>.content.box{padding:26px 31px;border-radius:var(--irm-r-xl);
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .page-wrap .pager{margin:14px 0 18px;font-size:14px;color:#9e99b0}.irm-body .page-wrap .pager a{color:inherit;text-decoration:none}.irm-body .page-wrap .pager a:hover{color:var(--irm-accent)}.irm-body .page-wrap>h1{margin:0 0 18px;font-size:40px}/* Корзина: серую подложку старой секции убираем, карточка одна. */.irm-body .page-wrap section.main{background:transparent;padding:0;border:0;margin:0 0 28px}.irm-body .page-wrap section.main>.content.box{margin:0}.irm-body .page-wrap .pager a,.irm-body .page-wrap .pager span{text-decoration:none}/* ——— Фотокаталог «Наши работы»: фильтры чипами, снимки сеткой ——— */.irm-body .page-wrap .foto-cat{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px}.irm-body .page-wrap .foto-cat a{display:inline-flex;align-items:center;height:38px;padding:0 14px;
  border:0;border-radius:var(--irm-r-s);background:var(--irm-bg)!important;
  box-shadow:inset 0 0 0 1px var(--irm-line);color:var(--irm-ink-2)!important;font-size:14px;
  text-decoration:none;text-shadow:none;transition:box-shadow .15s,color .15s}.irm-body .page-wrap .foto-cat a:hover{color:var(--irm-accent);box-shadow:inset 0 0 0 1.5px var(--irm-accent)}.irm-body .page-wrap .foto-h2{font-size:14px;color:var(--irm-mut)}.irm-body .page-wrap .foto-h2 b,.irm-body .page-wrap .foto-h2 strong{color:var(--irm-ink);font-weight:600}.irm-body .page-wrap ul:has(>li>a>img.new-foto){display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;width:auto}.irm-body .page-wrap li:has(>a>img.new-foto){width:auto;float:none;margin:0;list-style:none}.irm-body .page-wrap img.new-foto{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--irm-r-m)}
@media(max-width:1298px){.irm-body .page-wrap ul:has(>li>a>img.new-foto){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .page-wrap ul:has(>li>a>img.new-foto){grid-template-columns:repeat(2,minmax(0,1fr))}}/* Фотокаталог: список снимков во всю ширину карточки. */.irm-body .page-wrap .slider-foto:has(ul){display:block;width:auto}.irm-body .page-wrap ul:has(>li>a>img.new-foto){width:100%;clear:both}.irm-body .page-wrap .foto-h2{display:flex;flex-wrap:wrap;align-items:center;gap:8px;float:none;width:auto}.irm-body .page-wrap .foto-cat{float:none;width:auto;margin:0}/* Галереям и сеткам — вся ширина карточки (ограничение 990px только для текста). */.irm-body .page-wrap .text-block.content>.slider-foto,.irm-body .page-wrap .text-block.content>ul:has(>li>a>img.new-foto),.irm-body .page-wrap .text-block.content>.foto-h2,.irm-body .page-wrap .text-block.content>table{max-width:none}/* 🪤 Шесть колонок задаём В БАЗОВОМ правиле выше. Раньше эта строка стояла
   ПОСЛЕ медиазапросов и перебивала их: фотокаталог на телефоне оставался
   шестиколоночным, миниатюры сжимались до 28 px. Так шли 54 страницы
   (/chernyiy/, /tsokol/, /nadgrobnyie/ и другие витрины «Наших работ»). *//* ——— ORG-SITES-116 ——— *//* Галерея списком внутри .slider-foto: снимки шли строкой inline-flex в
   натуральную величину и растягивали страницу до 1133px на телефоне
   (/cokol-na-mogilu/, /tovary/3d-pamjatniki/). Кладём той же сеткой,
   что «Наши работы»; правило фотокаталога ловило только img.new-foto. */.irm-body .page-wrap .slider-foto>ul{display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:15px;margin:0;padding:0;
  list-style:none;width:100%;clear:both}.irm-body .page-wrap .slider-foto>ul>li{display:block;width:auto;float:none;margin:0;
  list-style:none}.irm-body .page-wrap .slider-foto>ul>li>a{display:block;border-radius:var(--irm-r-m);
  overflow:hidden;background:var(--irm-tile)}.irm-body .page-wrap .slider-foto>ul>li>a:hover img{scale:1.04}.irm-body .page-wrap .slider-foto>ul img{transition:scale .3s var(--irm-ease)}.irm-body .page-wrap .slider-foto>ul img{width:100%;height:auto;aspect-ratio:3/2;
  object-fit:cover;border-radius:var(--irm-r-m);margin:0;float:none}
@media(max-width:1298px){.irm-body .page-wrap .slider-foto>ul{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .page-wrap .slider-foto>ul{grid-template-columns:repeat(2,minmax(0,1fr))}}/* Пустое состояние — корзина, избранное, пустой поиск: заголовок, пояснение
   и одна кнопка, куда идти (ORG-SITES-130, 28.09.2026). */.irm-body .page-wrap .irm-empty{display:grid;justify-items:start;gap:9px;padding:20px 0}.irm-body .page-wrap .irm-empty b{font-size:22px;line-height:1.2;color:var(--irm-ink)}.irm-body .page-wrap .irm-empty p{margin:0;max-width:52ch;font-size:16px;line-height:1.55;
  color:var(--irm-ink-2)}.irm-body .page-wrap .irm-empty .irm-btn{margin-top:9px;text-decoration:none}/* Заголовки в тексте — по левому краю, как весь макет. 🪤 Центр, заданный
   в самой записи инлайном (`<h3 class="h3_new" style="text-align:center">`
   на /o-nas/), остаётся: это форматирование контента, а не темы, и трогать
   его отсюда нельзя (28.09.2026). */.irm-body .page-wrap .text-block.content :where(h2,h3,.zaglav2){text-align:start}/* «Читайте также» — бывшие «Похожие записи» YARPP, плитками как разделы. */.irm-body .irm-also{margin:44px 0 0}.irm-body .irm-also__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.irm-body .irm-also__tile{display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:18px 20px;border-radius:var(--irm-r-l);background:var(--irm-surface);
  box-shadow:var(--irm-sh-1);color:var(--irm-ink);font-weight:600;line-height:1.35;
  text-decoration:none;transition:box-shadow .15s,color .15s}.irm-body .irm-also__tile:hover{color:var(--irm-accent);box-shadow:var(--irm-sh-2)}.irm-body .irm-also__tile svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;
  color:var(--irm-mut)}.irm-body .irm-also__tile:hover svg{color:var(--irm-accent)}
@media(max-width:1298px){.irm-body .irm-also__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .irm-also{margin-top:32px}.irm-body .irm-also__grid{grid-template-columns:1fr}
  }/* Секция отзывов на внутренних страницах — та же, что на главной. */.irm-body .page-wrap>.irm-rvs{margin-top:44px}
@media(max-width:836px){.irm-body .page-wrap>.irm-rvs{margin-top:32px}}/* Вложенная карточка в карточке (ORG-SITES-116): у части страниц контент
   обёрнут в .text-block.content дважды — на экране это две белые рамки одна
   в другой. Внутреннюю разворачиваем: карточка остаётся одна. */.irm-body .page-wrap .text-block.content .text-block.content,.irm-body .page-wrap .text-block.content .irm-intro .text-block.content{
  margin:0;padding:0;border-radius:0;background:transparent;box-shadow:none}/* Города и кладбища (ORG-SITES-116, ORG-SITES-146): с 28.09 это обычная
   текстовая карточка — обёртке ставится `text-block content` (functions.php),
   кегли и мера — по стандарту §11. Своё здесь только одно: абзац-лид. */.irm-body .page-wrap .iri-city>p.lead,.irm-body .page-wrap .iri-cemetery>p.lead{font-size:18px;line-height:1.55;color:var(--irm-ink)}/* Подписи «Регион:», «Эконом» — span.strong: жирным, как было в тексте. */.irm-body .page-wrap .iri-city .strong,.irm-body .page-wrap .iri-cemetery .strong{font-weight:700;color:var(--irm-ink)}
@media(max-width:836px){.irm-body .page-wrap .iri-city,.irm-body .page-wrap .iri-cemetery{padding:22px 18px}.irm-body .page-wrap .iri-city h2,.irm-body .page-wrap .iri-cemetery h2{font-size:26px}}/* Свёрнутое вступление раздела — в той же белой карточке, что развёрнутое
   (ORG-SITES-116). Было по-разному: на /ograda-na-mogilu/ текст в карточке,
   на /oformlenie/cvety/ та же строка лежала голой над фильтрами. *//* Вступление раздела — текстом по фону, без белой плашки, шире прежнего
   (Антон 22.09.2026, снимок): «гораздо лучше смотрится», плашка съедала место
   и текст занимал узкую колонку. *//* Лид идёт во всю рабочую область — и на главной, и в разделах
   (Антон 22.09.2026). 🪤 Ширину задаём селектором не слабее родительского
   `.text-block.content>*{max-width:900px}`, иначе абзац упирается в 990 px. */.irm-body .page-wrap .text-block.content>.irm-intro,.irm-body .page-wrap>.irm-intro,.irm-body .irm-cat>.irm-intro{max-width:none}.irm-body .page-wrap .irm-intro{margin:0 0 20px;padding:0;
  border-radius:0;background:transparent;box-shadow:none;
  /* Тот же кегль, что у текста раздела: 15,5 → 17 px на экране. 19 px
     остался здесь после правки 25.09 и после общего уменьшения 26.09 стал
     заметно крупнее остального текста (Антон: «текст под H1 стал огромным»). */
  font-size:16px;line-height:1.62;color:var(--irm-ink-2)}/* Текст раздела не прячем: длинная часть уходит под витрину (ORG-SITES-116). */.irm-body .irm-seo{margin-top:28px}/* Раскрытый текст идёт той же колонкой, что и свёрнутый: правило
   `.text-block.content>*{max-width:900px}` сужало его вдвое, и «Читать
   полностью» открывало узкий кусок (Антон 22.09.2026). */.irm-body .page-wrap .irm-intro,.irm-body .page-wrap .irm-intro>*,.irm-body .page-wrap .irm-intro .text-block.content,.irm-body .page-wrap .irm-intro .text-block.content>*{max-width:none}.irm-body .page-wrap .irm-intro .text-block.content{margin:0;padding:0;border-radius:0;
  background:transparent;box-shadow:none}/* Двух карточек подряд не бывает: обёртка вокруг вступления уступает ему. */.irm-body .page-wrap .text-block.content:has(>.irm-intro){margin:0;padding:0;border-radius:0;
  background:transparent;box-shadow:none}
@media(max-width:836px){.irm-body .page-wrap .irm-intro{padding:0;margin-bottom:16px}}/* Характеристики у товаров оформления и благоустройства (ORG-SITES-116):
   блок .full-name > .wrap > ul.spisok_charact прежние правила не ловили —
   подпись и значение слипались в одну строку («МатериалЛюбой гранит»). */.irm-body .product .full-name>.title{margin:0 0 10px;font-size:17px;font-weight:600;
  letter-spacing:-.01em;color:var(--irm-ink);text-transform:none}.irm-body .product .full-name .wrap{width:auto;float:none}.irm-body .product .full-name .spisok_charact{margin:0;padding:0;list-style:none}.irm-body .product .full-name .spisok_charact li{display:flex;justify-content:space-between;
  gap:16px;padding:9px 0;font-size:14px;line-height:1.5;list-style:none}.irm-body .product .full-name .spisok_charact li+li{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .product .full-name .spisok_charact li span:first-child{color:var(--irm-mut)}.irm-body .product .full-name .spisok_charact li span:last-child{color:var(--irm-ink);
  font-weight:500;text-align:end}/* Таблицы в тексте: своя горизонтальная прокрутка вместо прокрутки страницы. */.irm-body .page-wrap .irm-tbl{max-width:none;margin:0 0 16px;overflow-x:auto;
  -webkit-overflow-scrolling:touch}.irm-body .page-wrap .irm-tbl>table{margin:0;min-width:min(100%,520px)}/* ——— Главная и витрины: правки Антона 22.09.2026 (ORG-SITES-116) ——— *//* 1. Скидка в карточке витрины — рядом с зачёркнутой ценой, как на странице
   товара. 🪤 Правило уже было, но лежало ТОЛЬКО в product.src.css, а он
   подключается лишь на карточке: на главной и в каталогах плашка падала в
   левый нижний угол по базовому `.irm-sale{position:absolute;bottom:8px}`
   и наезжала на кнопку «Купить». *//* Цена и зачёркнутая — одной строкой: плашка скидки ушла вниз, к выгоде. */.irm-body .irm-pc__price{flex-wrap:wrap;gap:2px 8px;align-items:baseline}.irm-body .irm-pc__price s{font-size:14px}/* Плашка скидки в строке под названием, на месте бывшего артикула. *//* 2. «Показать ещё» — кнопка во всю ширину витрины. Легаси-правило по id
   (`div#showmoreblock`: серый фон и max-width 1133px) перебивало класс. *//* 🪤 Вес селектора держим не ниже легаси-правила по id `div#showmoreblock`
   (серый фон и max-width 1030): оно перебивает обычный класс. Поэтому для
   каталога оставляем селектор с id, а для остальных блоков — свой класс. */.irm-body div#showmoreblock.irm-more,.irm-body .irm-more{max-width:none;width:100%;height:56px;
  margin:24px 0 0;padding:0;border-radius:var(--irm-r-m);
  background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body div#showmoreblock.irm-more:hover,.irm-body .irm-more:hover{background:#dfdaf0}.irm-body div#showmoreblock.irm-more a,.irm-body .irm-more a{display:flex;align-items:center;
  justify-content:center;gap:10px;width:100%;height:100%;color:inherit;
  font-size:16px;font-weight:600}.irm-body div#showmoreblock.irm-more svg,.irm-body .irm-more svg{width:18px;height:18px;fill:none;
  stroke:currentColor}/* 3. Страницы: стрелки с подписью по краям, цифры посередине, ряд во всю ширину. */.irm-body .irm-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:12px;padding:6px;border-radius:var(--irm-r-m);
  font-variant-numeric:tabular-nums}.irm-body .irm-pager__nums{display:flex;justify-content:center;gap:4px;flex:1;min-width:0}/* 🪤 Тег в селекторе обязателен: `.irm-pager a{display:grid}` иначе ставит
   подпись и шеврон друг под друга — та же ловушка, что с .irm-pager__far. */.irm-body .irm-pager a.irm-pager__nav,.irm-body .irm-pager span.irm-pager__nav{flex:none;display:inline-flex;align-items:center;gap:8px;height:44px;
  padding:0 16px;border-radius:var(--irm-r-s);color:var(--irm-ink-2);
  font-weight:600;white-space:nowrap;transition:background-color .15s,color .15s}.irm-body .irm-pager__nav>span{white-space:nowrap}.irm-body .irm-pager a.irm-pager__nav:hover{background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body .irm-pager__nav svg{width:18px;height:18px;fill:none;stroke:currentColor}.irm-body .irm-pager span.irm-pager__nav--off{color:var(--irm-line);pointer-events:none}.irm-body .irm-pager span.irm-pager__nav--off:hover{background:transparent}


@media(max-width:836px){.irm-body .irm-pager{flex-wrap:wrap;gap:6px;padding:0}.irm-body .irm-pager__nums{order:-1;flex:1 0 100%}.irm-body .irm-pager a.irm-pager__nav,.irm-body .irm-pager span.irm-pager__nav{flex:1;justify-content:center;padding:0 10px}
  }/* ——— Правки Антона 22.09.2026, вторая серия (ORG-SITES-116) ——— *//* 5. «Наши работы» — везде две строки по шесть. 🪤 Третий случай той же
   ловушки: базовое правило даёт 8 колонок, а `repeat(6,…)` лежало только
   в product.src.css:407 — на главной и в каталогах ряд шёл 8 + 4. */.irm-body .irm-wk__row{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(min-width:837px) and (max-width:1298px){.irm-body .irm-wk__row{grid-template-columns:repeat(3,minmax(0,1fr))}}/* ——— Стандартные блоки: секция плиток (ORG-SITES-116) ———
   «Оформление для памятника» на карточке товара и «Наши товары и услуги» в
   разделах — одна и та же родительская разметка `.services_block`. Заголовок
   лежал отдельным `.zagolovok_2_top` и в макет не попадал; теперь PHP кладёт
   их в общую секцию с обычным H2, как у «Наших работ» и «Отзывов». */.irm-body .irm-svc{margin:44px 0 0}.irm-body .irm-svc .zagolovok_2_top{display:none}/* Плитки одной высоты: у коротких подписей карточка обрывалась выше соседних. */.irm-body .page-wrap .service_list li{display:flex}.irm-body .page-wrap .service_list li a{flex:1;display:flex;flex-direction:column}.irm-body .page-wrap .service_list li a p{margin-top:auto}
@media(max-width:836px){.irm-body .irm-svc{margin-top:32px}
  }/* ——— Лента разделов: самокатящийся слайдер (ORG-SITES-126) ———
   Антон 24.09.2026: лента едет сама, модели крупнее. Круг 168 px вместо 140,
   картинка 136 вместо 108 — фигура памятника читается. Ход — одна анимация
   по треку из двух одинаковых наборов: сдвиг ровно на половину трека, стык
   незаметен. Наведение, фокус клавиатурой и `prefers-reduced-motion` ход
   останавливают; лента при этом остаётся прокручиваемой пальцем. */.irm-body .irm-cats a{font-size:16px;line-height:1.3;color:var(--irm-ink-2)}.irm-body .irm-cats span{width:168px;height:168px;overflow:hidden}/* 🪤 Картинка квадратная и с белым фоном: без обрезки её углы вылезали из
   кружка светлыми «ушами» (Антон 24.09.2026, снимок). Прячем квадрат под
   кругом, а модель держим крупной — поле внутри задаём padding'ом. */.irm-body .irm-cats img{width:100%;height:100%;padding:13px;background:#fff}.irm-body .irm-cats__row{display:block;overflow:hidden;padding-block:6px 14px;
  /* Края растворяются, чтобы лента не обрывалась ножом по краю экрана. */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent)}.irm-body .irm-cats__track{display:flex;width:max-content;
  animation:irm-cats-run 62s linear infinite}.irm-body .irm-cats__set{display:flex;gap:4px}.irm-body .irm-cats a{flex:none;width:184px}.irm-body .irm-cats__row:hover .irm-cats__track,.irm-body .irm-cats__row:focus-within .irm-cats__track{animation-play-state:paused}
@keyframes irm-cats-run{from{translate:0}to{translate:-50%}}
@media(prefers-reduced-motion:reduce){.irm-body .irm-cats__row{overflow-x:auto;scrollbar-width:none}.irm-body .irm-cats__track{animation:none}.irm-body .irm-cats__set[aria-hidden]{display:none}}
@media(max-width:1298px){.irm-body .irm-cats a{width:164px}.irm-body .irm-cats span{width:148px;height:148px}.irm-body .irm-cats img{padding:11px}}
@media(max-width:836px){.irm-body .irm-cats a{width:112px;font-size:14px}.irm-body .irm-cats span{width:100px;height:100px}.irm-body .irm-cats img{padding:8px}.irm-body .irm-cats__track{animation-duration:46s}.irm-body .irm-cats__row{-webkit-mask-image:none;mask-image:none}}/* Вся карточка витрины — одна кликабельная область (ORG-SITES-116).
   Ссылку названия растягиваем на карточку: клик по цене, артикулу, фото и
   пустому месту ведёт на товар. Кнопка «Купить» лежит выше слоя, чтобы
   оставаться самостоятельной целью. */.irm-body .irm-pc__name::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.irm-body .irm-pc__buy{position:relative;z-index:2}.irm-body .irm-pc__pic{cursor:pointer}.irm-body .irm-pc:focus-within{box-shadow:var(--irm-sh-2)}.irm-body .irm-pc__name:focus-visible{outline:none}.irm-body .irm-pc:has(.irm-pc__name:focus-visible){outline:2px solid var(--irm-accent);outline-offset:2px}/* Рабочая область одной ширины на всех страницах (ORG-SITES-116).
   🪤 Секции главной носят колонку `irm-w`, а лежат внутри `.page-wrap`, у
   которой те же max-width и поля: отступ складывался дважды, и главная шла
   уже разделов (53…1387 против 26…1414). Внутри .page-wrap колонку снимаем —
   ширину задаёт сам .page-wrap. Шапка и подвал лежат снаружи, их не трогает. */.irm-body .page-wrap .irm-w{max-width:none;margin-inline:0;padding-inline:0}/* Заголовок ближе к крошкам (ORG-SITES-116, Антон 22.09.2026: «как картинка
   на странице товара»). Зазор в разметке и там и там 20 px, но у H1 сверху
   ещё половина межстрочного интервала — на глаз выходило заметно дальше.
   Снимаем эту половину, чтобы буквы начинались там же, где край карточки. */.irm-body .page-wrap .irm-cat__head,.irm-body .page-wrap>.title-container{margin-top:-8px}/* Заголовок секции — один на все блоки (ORG-SITES-116, Антон 22.09.2026:
   «шрифт у заголовков разный, сделать одинаковые»). «Читайте также»,
   «Наши товары и услуги» и «Оформление для памятника» шли полужирными,
   а «Отзывы» и «Наши работы» — обычным начертанием: у первых трёх лежала
   своя копия правила. Копии сняты, размер и начертание задаёт `.irm-sh`. */.irm-body .irm-sec__head h2{margin:0;color:var(--irm-ink)}/* Иконки фильтров — залитые из спрайта, они читаются в мелком размере
   (Антон 22.09.2026). В палитру макета их приводит цвет: внутри символов
   стоит fill:currentColor. */.irm-body .irm-chip__i{width:19px;height:19px;fill:currentColor;stroke:none;
  color:var(--irm-mut);transition:color .15s}.irm-body .irm-chipbox[open] .irm-chip__i,.irm-body .irm-chip:hover .irm-chip__i{color:var(--irm-accent)}/* Скидка в строке выгоды — красным текстом, без подложки: плашка переносила
   строку на телефоне и растила карточку на 26 px (ORG-SITES-116). */.irm-body .irm-pc__off{font-size:14px;color:var(--irm-sale-ink);font-weight:700}.irm-body .irm-pc__sum{font-size:14px;white-space:nowrap;color:var(--irm-mut)}/* ——— Стандартные модули контентных страниц (ORG-SITES-116) ———
   Родительская тема раскладывает контент колонками `one_half`, `one_third`,
   `one_fourth`, `one_fifth` с фиксированными ширинами и float. В «Маркете»
   правил для них не было вовсе: на 1440 колонки шли одна под другой во всю
   ширину, а на телефоне схлопывались до 42 px — фотографии превращались в
   точки (/pozolota-bukv/). Делаем из них одну сетку: доля задаёт число
   колонок, на планшете и телефоне ряд перестраивается. */.irm-body .page-wrap .text-block.content{--irm-cols:1}.irm-body .page-wrap [class*="one_half"],.irm-body .page-wrap [class*="one_third"],.irm-body .page-wrap [class*="one_fourth"],.irm-body .page-wrap [class*="one_fifth"]{float:none;width:auto;margin:0;padding:0;
  box-sizing:border-box}/* 🪤 Ряд собираем на РОДИТЕЛЕ доли, а не на .text-block.content: на части
   страниц доли завёрнуты ещё раз (/pozolota-bukv/: .slider-foto > .one_fourth),
   и правило с прямым потомком их не находило — фотографии оставались точками
   по 42 px. Сеткой делаем любого родителя, у которого доли лежат внутри. */.irm-body .page-wrap div:has(>[class*="one_half"]),.irm-body .page-wrap div:has(>[class*="one_third"]),.irm-body .page-wrap div:has(>[class*="one_fourth"]),.irm-body .page-wrap div:has(>[class*="one_fifth"]){display:grid!important;
  /* 🪤 …!important и на колонках: у .slider-foto уже стоит repeat(6), и доля
     span 3 давала половину ряда вместо четверти (/pozolota-bukv/). */
  grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:18px 16px;align-items:start}/* Обычные абзацы и заголовки занимают всю ширину ряда. */.irm-body .page-wrap div:has(>[class*="one_"])>*{grid-column:1/-1;max-width:none}/* 🪤 Доли перечисляем тем же весом, что и сброс `…>*{grid-column:1/-1}`,
   иначе он их перебивает и каждая доля занимает всю строку. */.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_half"]{grid-column:span 6}.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_third"]{grid-column:span 4}.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_fourth"]{grid-column:span 3}.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_fifth"]{grid-column:span 2}/* Картинка в доле — во всю ширину своей колонки. */.irm-body .page-wrap [class*="one_half"] img,.irm-body .page-wrap [class*="one_third"] img,.irm-body .page-wrap [class*="one_fourth"] img,.irm-body .page-wrap [class*="one_fifth"] img{width:100%;height:auto;
  border-radius:var(--irm-r-m);display:block}.irm-body .page-wrap [class*="one_"] p{margin:8px 0 0}/* Подпись под картинкой: цена или пояснение. */.irm-body .page-wrap .one_text{margin:6px 0 0;font-size:14px;color:var(--irm-mut);
  line-height:1.4;width:auto;float:none}.irm-body .page-wrap .one_text+.one_text{margin-top:2px;color:var(--irm-ink);font-weight:600}.irm-body .page-wrap .bold_p{color:var(--irm-ink);font-weight:600}

@media(max-width:1298px){.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_fourth"]{grid-column:span 6}.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_fifth"]{grid-column:span 4}}
@media(max-width:836px){.irm-body .page-wrap div:has(>[class*="one_"]){gap:14px 10px}.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_half"],.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_third"]{grid-column:1/-1}.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_fourth"],.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_fifth"]{grid-column:span 6}}/* 🪤 Внутри доли .slider-foto — обёртка одной фотографии, а не галерея:
   правило галереи делало её сеткой из шести колонок, и снимок ужимался до
   53 px внутри колонки 319 px (/pozolota-bukv/). */.irm-body .page-wrap [class*="one_"] .slider-foto{display:block!important;padding:0}.irm-body .page-wrap [class*="one_"] .slider-foto a{display:block}.irm-body .page-wrap [class*="one_"] .slider-foto img{width:100%;height:auto;
  aspect-ratio:auto;margin:0;border-radius:var(--irm-r-m)}/* Картинки из контента не шире своей колонки: на /aktsiya-2014/ снимок
   1030 px растягивал страницу до 1048 на телефоне (ORG-SITES-116). */.irm-body .page-wrap img{max-width:100%;height:auto}/* 🪤 Это правило (0,2,1) шло позже собственных `.irm-… img{height:100%}` того
   же веса и сбрасывало им высоту: у баннера главной снимок переставал
   заполнять свою половину, и под ним на ширинах около 1100 px оставалась
   фиолетовая полоса в полтора сантиметра (Антон 28.09.2026: «тут полоса
   появилась… внизу убери»). Блокам макета высоту возвращаем явно. */.irm-body .page-wrap :where(.irm-ad__main,.irm-body .irm-thumb,.irm-body .irm-pc__pic) img{height:100%}.irm-body .page-wrap .irm-intro img{max-width:100%;height:auto;border-radius:var(--irm-r-m)}

/* Страховка от боковой прокрутки на телефоне (ORG-SITES-116).
   На трёх витринах Toolset (/ptizi/, /detskij/, /obrazcy-pamjatnikov/)
   страница уезжала вбок на 27…196 px: разметку туда дозагружает AJAX, и
   виновника в готовом DOM не видно — все переполняющие узлы лежат под
   клипом, а документ всё равно шире экрана. `clip`, в отличие от `hidden`,
   не создаёт прокручиваемый контейнер: ленты фильтров, крошек и отзывов
   со своей горизонтальной прокруткой продолжают работать. */
@media(max-width:836px){.irm-body .content-block{overflow-x:clip}}/* Фильтры фотокаталога — как в каталоге, плюс отметка выбранной группы.
   🪤 Лента лежит внутри `.text-block.content`, и его типографика затекала в
   чипы: кегль 16 вместо 15 и цвет --irm-ink-2 вместо --irm-ink. Свой отступ
   тоже убран — берём тот же, что у ленты каталога. */.irm-body .irm-fbar--foto .irm-chip,.irm-body .irm-fbar--foto .irm-chip span{font-size:15px;color:var(--irm-ink)}.irm-body .irm-chipbox--on>.irm-chip{background:var(--irm-accent-soft);
  color:var(--irm-accent);font-weight:600}.irm-body .irm-chipbox--on>.irm-chip svg{color:var(--irm-accent)}.irm-body .irm-chipmenu a.irm-chip__on{color:var(--irm-accent);font-weight:600}/* 🪤 Страницы и «Показать ещё» у фотокаталога стоят ВНУТРИ .text-block.content,
   и правила ссылок текстового блока перекрашивали их: цифры шли синими с
   подчёркиванием, а активная страница сливалась с подложкой. Повторяем вид
   явно — блок один и тот же, где бы он ни стоял (ORG-SITES-116). */.irm-body .page-wrap .irm-pager a,.irm-body .page-wrap .irm-more a{text-decoration:none!important}.irm-body .page-wrap .irm-pager a{color:var(--irm-ink-2)}.irm-body .page-wrap .irm-pager a:hover{background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body .page-wrap .irm-pager a[aria-current]{background:var(--irm-accent);color:#fff;font-weight:600}.irm-body .page-wrap .irm-more a{color:var(--irm-accent)}/* Выдача фотокаталога — ровно тот же вид, что блок «Наши работы»
   (Антон 23.09.2026): шесть колонок, то же закругление, та же тонкая обводка
   и то же приближение при наведении. Разметка у них разная (там section,
   тут список внутри текстового блока), поэтому правило повторяем явно. */.irm-body .page-wrap img.new-foto{width:100%;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--irm-r-m);outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;
  transition:scale .2s var(--irm-ease)}.irm-body .page-wrap li:has(>a>img.new-foto) a{display:block;overflow:hidden;
  border-radius:var(--irm-r-m)}.irm-body .page-wrap li:has(>a>img.new-foto) a:hover img{scale:1.04}/* Фотокаталог без белой подложки (Антон 23.09.2026: «подложка белая не нужна,
   а её же там нет»). Фильтры и снимки лежат внутри `.text-block.content`, а на
   витрине товаров тот же набор стоит в прозрачном `.irm-catwrap`. Снимаем
   карточку с блоков, где лежит лента фильтров или сетка фотографий. */.irm-body .page-wrap .text-block.content:has(.irm-fbar--foto),.irm-body .page-wrap .text-block.content:has(img.new-foto),.irm-body .page-wrap .text-block.content:has(.irm-pager){background:transparent;
  box-shadow:none;border-radius:0;padding:0;margin-bottom:0}/* 🪤 Пункты выпадашки фотокаталога лежат внутри `.text-block.content`, и его
   правила ссылок красили их акцентом и подчёркивали. Повторяем вид пунктов
   каталога явно — выпадашка должна быть одна и та же везде. */.irm-body .page-wrap .irm-chipmenu a,.irm-body .page-wrap .text-block.content .irm-chipmenu a{color:var(--irm-ink-2);
  text-decoration:none}.irm-body .page-wrap .irm-chipmenu a:hover,.irm-body .page-wrap .text-block.content .irm-chipmenu a:hover{background:var(--irm-accent-soft);
  color:var(--irm-accent)}.irm-body .page-wrap .irm-chipmenu a.irm-chip__on,.irm-body .page-wrap .text-block.content .irm-chipmenu a.irm-chip__on{color:var(--irm-accent);
  font-weight:600}/* Лента фильтров и сетка снимков — той же ширины и на том же расстоянии, что
   на витрине товаров (Антон 23.09.2026). Правило `.text-block.content>*`
   сужало ленту до 990 px, а между лентой и снимками копились отступы блока и
   <br> — выходило 63 px вместо 22. *//* ⬜ Кнопка «Показать ещё» и ряд страниц фотокаталога лежат прямо в
   `.text-block.content`, где `>*{max-width:900px}` резал их до 990 px,
   тогда как на витрине товаров они идут во всю ширину (Антон 23.09.2026). */.irm-body .page-wrap .text-block.content>.irm-fbar--foto,.irm-body .page-wrap .text-block.content>.slider-foto,.irm-body .page-wrap .text-block.content>ul:has(img.new-foto),.irm-body .page-wrap .text-block.content>.irm-more,.irm-body .page-wrap .text-block.content>.irm-pager{max-width:none}.irm-body .page-wrap .irm-fbar--foto{margin-block:22px 0}.irm-body .page-wrap .irm-fbar--foto+br,.irm-body .page-wrap .slider-foto>br:first-child{display:none}/* 🪤 Отступ даём ПАДДИНГОМ обёртки: margin у списка схлопывался с отступами
   родителя и вместо 22 px получалось 16. */.irm-body .page-wrap ul:has(>li>a>img.new-foto){margin-top:0}.irm-body .page-wrap .slider-foto:has(img.new-foto){margin-top:0;padding-top:5px}
@media(max-width:836px){.irm-body .page-wrap ul:has(>li>a>img.new-foto){gap:8px}}
/* Число колонок у снимков — как у товаров: 6 → 4 → 2 (было 6 → 3 → 2). */
@media(max-width:1298px){.irm-body .page-wrap ul:has(>li>a>img.new-foto){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .page-wrap ul:has(>li>a>img.new-foto){grid-template-columns:repeat(2,minmax(0,1fr))}}/* 🪤 Сетка снимков — это <ul>, и правило списков текстового блока
   (`.text-block.content ul{padding-inline-start:22px}`) отодвигало первую
   фотографию на 25 px от края, тогда как карточки товаров начинаются вровень
   с заголовком (Антон 23.09.2026 заметил глазами). Вес правила повторяем. */.irm-body .page-wrap .text-block.content ul:has(>li>a>img.new-foto),.irm-body .page-wrap ul:has(>li>a>img.new-foto){padding:0;margin-inline:0;list-style:none}/* Просмотрщик фотографий — по центру экрана (ORG-SITES-116).
   🪤 Правило `.mfp-content{width:100%;max-width:460px;margin:0 auto}` писалось
   под всплывающие формы обратного звонка. В галерее снимков оно прижимало
   картинку вправо и вниз: во флекс-контейнере ширина 100 % и авто-поля
   конфликтовали с собственной раскладкой Magnific. Для галереи снимаем. */.irm-body .mfp-gallery .mfp-content,.irm-body .mfp-image-holder .mfp-content{width:auto;max-width:100%;margin:0}.irm-body .mfp-gallery .mfp-figure,.irm-body .mfp-image-holder .mfp-figure{display:block;margin:0 auto}.irm-body .mfp-gallery .mfp-img,.irm-body .mfp-image-holder .mfp-img{max-height:calc(100vh - 120px);width:auto;
  max-width:100%;border-radius:var(--irm-r-m)}/* 🪤 Стрелки и прелоадер в legacy.css остались без `position:absolute`, и во
   флекс-контейнере просмотрщика они стали такими же элементами ряда, как сама
   фотография, — она уезжала вправо и вниз. Возвращаем их из потока. */.irm-body .mfp-container>.mfp-arrow,.irm-body .mfp-container>.mfp-preloader{position:absolute;top:50%;margin-top:-27.5px}.irm-body .mfp-container>.mfp-arrow-left{left:0}.irm-body .mfp-container>.mfp-arrow-right{right:0}.irm-body .mfp-container>.mfp-preloader{left:8px;right:8px;margin-top:-0.8em}/* Галерею снимков центрируем родной раскладкой Magnific, а не флексом:
   контейнер блоком с выравниванием по центру, псевдоэлемент держит высоту,
   содержимое — inline-block по середине. Флекс здесь не срабатывал: в ряду
   оказывались и псевдоэлемент, и стрелки, и картинку уносило в угол. */.irm-body .mfp-gallery .mfp-container,.irm-body .mfp-image-holder .mfp-container{display:block;text-align:center;
  white-space:nowrap;font-size:0}.irm-body .mfp-gallery .mfp-container:before,.irm-body .mfp-image-holder .mfp-container:before{content:'';display:inline-block;
  height:100%;width:0;vertical-align:middle}.irm-body .mfp-gallery .mfp-content,.irm-body .mfp-image-holder .mfp-content{display:inline-block;vertical-align:middle;
  white-space:normal;font-size:16px;text-align:left;margin:0 auto;width:auto;max-width:100%}/* 🪤 Ни флекс, ни родная раскладка Magnific в этой теме не центрировали
   снимок: в ряду контейнера остаются псевдоэлемент, прелоадер и стрелки, и
   картинку прижимало к правому нижнему углу. Ставим содержимое по центру
   напрямую — так оно не зависит от соседей. */.irm-body .mfp-gallery .mfp-content,.irm-body .mfp-container.mfp-image-holder .mfp-content{position:absolute;
  left:50%;top:50%;transform:translate(-50%,-50%);margin:0;width:auto;
  max-width:calc(100% - 32px)}/* Подложка просмотрщика — плотнее, чтобы страница не просвечивала.
   🪤 Magnific доводит прозрачность классом `mfp-ready`, поэтому правило без
   него не действовало. */.irm-body .mfp-bg,.irm-body .mfp-bg.mfp-ready{background:#14121f;opacity:.92}/* Подпись под снимком в просмотрщике не нужна (Антон 23.09.2026). Убираем
   оформлением: сам текст подставляет родительский site.js в titleSrc, и
   переинициализация галереи ломала показ. */.irm-body .mfp-gallery .mfp-title,.irm-body .mfp-image-holder .mfp-title{display:none}

/* Шесть снимков в ряд держим до 900 px (ORG-SITES-116, Антон 23.09.2026:
   «работает на 4 картинки вместо 6 по длине»). При зуме 110 % контрольная
   ширина становится 990 px, так что на ноутбуке 1280–1366 ряд остаётся
   шестёркой. Ниже — 4, на телефоне 2; «Наши работы» ведут себя так же,
   чтобы блоки не расходились на одной странице. */
@media(min-width:837px){.irm-body .irm-wk__row,.irm-body .page-wrap ul:has(>li>a>img.new-foto){grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(min-width:837px) and (max-width:990px){.irm-body .irm-wk__row,.irm-body .page-wrap ul:has(>li>a>img.new-foto){grid-template-columns:repeat(4,minmax(0,1fr))}
}/* Избранное и «Смотрели» (ORG-SITES-145): заголовок, счётчик и «Очистить
   список» в одну строку; кнопка — тихая, справа, как «Сортировать» в каталоге. */.irm-body .irm-list__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}.irm-body .irm-list__clear{margin-left:auto;align-self:center;display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:0 18px;border:1px solid var(--irm-line);border-radius:999px;background:var(--irm-surface);
  color:var(--irm-ink-2);font-size:16px;transition:color .15s,border-color .15s}.irm-body .irm-list__clear:hover{color:var(--irm-accent);border-color:var(--irm-accent)}.irm-body .irm-list__clear svg{width:18px;height:18px;fill:none;stroke:currentColor}.irm-body .irm-list--empty{padding:28px 31px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .irm-list--empty .irm-empty{padding:0}/* ——— Корзина и оформление заказа — вёрстка «Маркета» с нуля (ORG-SITES-145) ———
   Разметка — page-1066.php дочерней темы, полный CSS родителя странице не
   грузится. Слева товары и форма, справа липкий итог с кнопкой; на телефоне
   всё в одну колонку, итог и кнопка — после формы. */.irm-body .irm-bk__grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}.irm-body .irm-bk__main{display:grid;gap:22px;min-width:0}.irm-body .irm-bk__card{padding:26px 31px;border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .irm-bk__side{position:sticky;top:96px}/* Строка товара: фото · название и опции · количество · сумма · крестик. */.irm-body .irm-bk__row{display:grid;grid-template-columns:150px minmax(0,1fr) auto 132px 44px;gap:14px 20px;align-items:center;padding:20px 0}.irm-body .irm-bk__row+.irm-bk__row{border-top:1px solid var(--irm-line)}.irm-body .irm-bk__row:first-child{padding-top:4px}.irm-body .irm-bk__row:last-child{padding-bottom:4px}.irm-body .irm-bk__pic{position:relative;display:block;width:150px;height:auto;aspect-ratio:1/1.16;border-radius:var(--irm-r-m);background:var(--irm-tile);overflow:hidden}.irm-body .irm-bk__pic img{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);object-fit:contain;mix-blend-mode:multiply}/* Фото в корзине — плиткой как в листинге (150 px, 1:1,16, отступ 6 px).
   Антон 28.09.2026: «в корзине можно гораздо крупнее… как в листинге»;
   до этого квадрат 88×88 срезал стелу пополам (ORG-SITES-149). */.irm-body .irm-bk__row.delivery .irm-bk__pic{aspect-ratio:1/1;width:88px;display:grid;place-items:center}.irm-body .irm-bk__pic svg{width:40px;height:40px;fill:none;stroke:var(--irm-accent)}.irm-body .irm-bk__info{display:grid;gap:6px;min-width:0}.irm-body .irm-bk__name{font-size:18px;font-weight:700;line-height:1.3;color:var(--irm-ink)}.irm-body a.irm-bk__name:hover{color:var(--irm-accent)}.irm-body .irm-bk__opts{display:grid;gap:2px;margin:0;padding:0;list-style:none;font-size:14px;line-height:1.45;color:var(--irm-mut)}.irm-body .irm-bk__unit{font-size:14px;color:var(--irm-mut);font-variant-numeric:tabular-nums}.irm-body .irm-bk__sum{font-size:20px;font-weight:700;text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums}/* Количество: та же механика site.js (.select-list/.list), вид — пилюля. */.irm-body .irm-bk__qty .select-list{position:relative;cursor:pointer}.irm-body .irm-bk__qty .selected{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 16px;
  border:1px solid var(--irm-line);border-radius:999px;background:var(--irm-surface);font-size:16px;white-space:nowrap;transition:border-color .15s}.irm-body .irm-bk__qty .selected:after{content:"";width:7px;height:7px;margin-top:-3px;border:solid var(--irm-mut);border-width:0 2px 2px 0;rotate:45deg}.irm-body .irm-bk__qty .select-list:hover .selected,.irm-body .irm-bk__qty .is-open .selected{border-color:var(--irm-accent)}.irm-body .irm-bk__qty .list{display:none;position:absolute;z-index:5;top:calc(100% + 6px);left:0;min-width:100%;padding:6px;
  border-radius:var(--irm-r-m);background:var(--irm-surface);box-shadow:var(--irm-sh-2)}.irm-body .irm-bk__qty .list .item{padding:10px 14px;border-radius:var(--irm-r-s);font-size:16px;white-space:nowrap}.irm-body .irm-bk__qty .list .item:hover{background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body .irm-bk__del{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;
  background:transparent;color:var(--irm-mut);cursor:pointer;transition:background-color .15s,color .15s}.irm-body .irm-bk__del:hover{background:var(--irm-sale-bg);color:var(--irm-sale)}.irm-body .irm-bk__del svg{width:20px;height:20px;fill:none;stroke:currentColor}/* Форма оформления. */.irm-body .irm-bk__form h2{margin:0 0 20px;font-size:26px;font-weight:700;line-height:1.2}.irm-body .irm-bk__fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.irm-body .irm-bk__field{display:grid;gap:7px;font-size:14px;color:var(--irm-ink-2)}.irm-body .irm-bk__field b{color:var(--irm-sale);font-weight:700}.irm-body .irm-bk__field input{width:100%;height:52px;padding:0 16px;border:1px solid var(--irm-line);border-radius:var(--irm-r-m);
  background:var(--irm-bg);font-size:16px;color:var(--irm-ink);transition:border-color .15s,background-color .15s,box-shadow .15s}.irm-body .irm-bk__field input:hover{border-color:#c9c4dc}.irm-body .irm-bk__field input:focus{outline:none;border-color:var(--irm-accent);background:var(--irm-surface);box-shadow:0 0 0 3px var(--irm-accent-soft)}.irm-body .irm-bk__pick{margin:22px 0 0;padding:0;border:0;min-width:0}.irm-body .irm-bk__pick legend{margin-bottom:10px;padding:0;font-size:16px;font-weight:700;color:var(--irm-ink)}.irm-body .irm-bk__chips{display:flex;flex-wrap:wrap;gap:10px}.irm-body .irm-bk__chips .radio{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px 0 14px;
  border:1px solid var(--irm-line);border-radius:999px;background:var(--irm-surface);font-size:16px;color:var(--irm-ink-2);cursor:pointer;
  transition:border-color .15s,background-color .15s,color .15s}.irm-body .irm-bk__chips .radio:hover{border-color:var(--irm-accent)}.irm-body .irm-bk__chips .radio i{flex:none;width:20px;height:20px;border:2px solid #c9c4dc;border-radius:50%;background:var(--irm-surface);transition:border-color .15s,box-shadow .15s}.irm-body .irm-bk__chips .radio.selected{border-color:var(--irm-accent);background:var(--irm-accent-soft);color:var(--irm-ink)}.irm-body .irm-bk__chips .radio.selected i{border-color:var(--irm-accent);box-shadow:inset 0 0 0 4px var(--irm-surface);background:var(--irm-accent)}.irm-body .irm-bk__hide{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}/* Итог. */.irm-body .irm-bk__total{display:grid;gap:12px}.irm-body .irm-bk__line{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin:0;font-size:16px;color:var(--irm-ink-2)}.irm-body .irm-bk__line .count{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--irm-ink);font-weight:600}.irm-body .irm-bk__line--sale .count{color:var(--irm-sale)}.irm-body .irm-bk__line--total{padding-top:14px;border-top:1px solid var(--irm-line);font-size:18px;font-weight:700;color:var(--irm-ink)}.irm-body .irm-bk__line--total .count{font-size:32px;line-height:1.1;font-weight:700;color:var(--irm-ink)}.irm-body .irm-bk__disc{display:grid;gap:4px;padding:4px 0 2px}.irm-body .irm-bk__chk{display:flex;align-items:center;gap:10px;min-height:36px;font-size:16px;color:var(--irm-ink-2);cursor:pointer;border-radius:var(--irm-r-s)}.irm-body .irm-bk__chk:focus-visible{outline:2px solid var(--irm-accent);outline-offset:2px}.irm-body .irm-bk__chk i{flex:none;display:grid;place-items:center;width:22px;height:22px;border:2px solid #c9c4dc;border-radius:6px;background:var(--irm-surface);transition:background-color .15s,border-color .15s}.irm-body .irm-bk__chk.checked i{border-color:var(--irm-accent);background:var(--irm-accent)}.irm-body .irm-bk__chk.checked i:after{content:"";width:5px;height:10px;margin-top:-2px;border:solid #fff;border-width:0 2px 2px 0;rotate:45deg}.irm-body .irm-bk__chk .price{margin-left:auto;font-size:14px;color:var(--irm-sale);white-space:nowrap;font-variant-numeric:tabular-nums}.irm-body .irm-bk__chk:not(.checked) .price{color:var(--irm-mut)}.irm-body .irm-bk__note{margin:0;font-size:14px;line-height:1.45;color:var(--irm-mut)}.irm-body .irm-bk__send{width:100%;margin-top:4px;font-size:18px}.irm-body .irm-bk__send svg{width:22px;height:22px;fill:none;stroke:currentColor}.irm-body .irm-bk__send:disabled{opacity:.7;cursor:progress}.irm-body .irm-bk__agree .irm-bk__chk{font-size:14px;align-items:flex-start;line-height:1.4}.irm-body .irm-bk__agree .irm-bk__chk i{width:20px;height:20px;margin-top:0}/* После отправки site.js прячет форму и показывает .success. */.irm-body .irm-bk__ok{display:none;justify-items:start;gap:12px;max-width:640px}.irm-body .irm-bk__ok[style*="block"]{display:grid!important}.irm-body .irm-bk__ok .h2_new{margin:0;font-size:26px;font-weight:700;line-height:1.25;color:var(--irm-ink)}.irm-body .irm-bk__ok p{margin:0;font-size:16px;color:var(--irm-ink-2)}

@media(max-width:1100px){.irm-body .irm-bk__grid{grid-template-columns:minmax(0,1fr)}.irm-body .irm-bk__side{position:static}.irm-body .irm-bk__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.irm-body .irm-bk__card{padding:20px 18px}.irm-body .irm-bk__row{grid-template-columns:110px minmax(0,1fr) 44px;gap:10px 14px;align-items:start}.irm-body .irm-bk__pic{width:110px;grid-row:1/3}.irm-body .irm-bk__info{grid-column:2}.irm-body .irm-bk__del{grid-column:3;grid-row:1;margin:-8px -8px 0 0}.irm-body .irm-bk__qty{grid-column:2;grid-row:2}.irm-body .irm-bk__sum{grid-column:2/4;grid-row:2;align-self:center;pointer-events:none}.irm-body .irm-bk__fields{grid-template-columns:minmax(0,1fr)}.irm-body .irm-bk__chips .radio{width:100%}.irm-body .irm-bk__line--total .count{font-size:26px}}/* ——— База текста записей без CSS родителя (ORG-SITES-146) ———
   Страницы снимаются с 98 КБ style.css родителя (Антон 28.09.2026: «отключи
   все старые оформления… отгородиться от старого»). Замер ?irm_lite=1 по 116
   страницам показал, на чём текст ещё держался: заголовки-классы .h2_new/.h3_new
   на div и p (у «Контактов», «Сотрудников»), колонки one_half…one_fifth
   флоатами, .bold_p, .clear-fix. Раскладка взята у родителя, вид — по шкале §11. */.irm-body .page-wrap .clear-fix:after{content:"";display:block;clear:both}.irm-body .page-wrap .text-block :is(div,p,span).h2_new{display:block;clear:both;margin:31px 0 13px;
  font-size:26px;font-weight:700;line-height:1.2;letter-spacing:-.018em;color:var(--irm-ink);text-transform:none}.irm-body .page-wrap .text-block :is(div,p,span).h3_new,.irm-body .page-wrap .text-block.content p.zaglav2{display:block;margin:22px 0 9px;font-size:20px;font-weight:700;line-height:1.3;color:var(--irm-ink)}.irm-body .page-wrap .text-block :is(div,p,span,h4).h4_new{display:block;margin:18px 0 8px;font-size:18px;font-weight:700;line-height:1.35;color:var(--irm-ink)}.irm-body .page-wrap .text-block.content>:is(div,p).h2_new:first-child,.irm-body .page-wrap .text-block.content>:is(div,p).h3_new:first-child{margin-top:0}.irm-body .page-wrap .text-block .bold_p{font-weight:700;color:var(--irm-ink)}.irm-body .page-wrap .text-block.content .italianec{font-style:italic}.irm-body .page-wrap .text-block.content .null-ed{padding-top:20px}.irm-body .page-wrap .mass__body p:empty{display:none}/* Заголовки между карточками текста — h2.h2_new прямо в .page-wrap (61 страница):
   без CSS родителя они падали до кегля абзаца. */.irm-body .page-wrap>:is(h2,h3,div,p).h2_new{margin:40px 0 16px;padding:0;font-size:26px;font-weight:700;line-height:1.2;
  letter-spacing:-.018em;color:var(--irm-ink);text-align:start;text-transform:none}.irm-body .page-wrap>:is(h3,div,p).h3_new{margin:31px 0 13px;padding:0;font-size:20px;font-weight:700;line-height:1.3;color:var(--irm-ink)}/* Колонки из текста записей: доли и поля — как у родителя, в сумме 100 %. */.irm-body .page-wrap .text-block.content :is(.one_half,.one_half_last,.one_half_last_clear,.one_third,.one_third_last_clear,.one_fourth,.one_fourth_last,.one_fourth_last_clear,.one_fifth,.one_fifth_last_clear){float:left;position:relative;margin:0 0 18px}.irm-body .page-wrap .text-block.content :is(.one_half,.one_half_last,.one_half_last_clear){width:49%}.irm-body .page-wrap .text-block.content .one_half{margin-right:2%}.irm-body .page-wrap .text-block.content :is(.one_third,.one_third_last_clear){width:30.66%}.irm-body .page-wrap .text-block.content .one_third{margin-right:4%}.irm-body .page-wrap .text-block.content :is(.one_fourth,.one_fourth_last,.one_fourth_last_clear){width:22%}.irm-body .page-wrap .text-block.content .one_fourth{margin-right:4%}.irm-body .page-wrap .text-block.content :is(.one_fifth,.one_fifth_last_clear){width:16.8%}.irm-body .page-wrap .text-block.content .one_fifth{margin-right:4%}.irm-body .page-wrap .text-block.content :is(.one_half_last_clear,.one_third_last_clear,.one_fourth_last_clear,.one_fifth_last_clear)
  + :not([class*="one_"]){clear:both}.irm-body .page-wrap .text-block.content [class*="one_"] img{max-width:100%;height:auto;object-fit:contain}.irm-body .page-wrap .text-block.content>:is(h2,h3,.h2_new,.h3_new,.slider-foto,.irm-body .irm-tbl,.prl-sec){clear:both}
@media(max-width:640px){.irm-body .page-wrap .text-block.content :is(.one_half,.one_half_last,.one_half_last_clear,.one_third,.one_third_last_clear,.one_fourth,.one_fourth_last,.one_fourth_last_clear){float:none;width:100%;margin-right:0}}/* ——— Конструктор памятников (/design/) — вид «Маркета» (ORG-SITES-146) ———
   Разметка и скрипты — родительские (design/template.php, constructor.js,
   fabric.js). design.css задаёт ширины под старый каркас 1030 px, здесь —
   сетка карточки: разделы · холст · модели, ниже действия с эскизом.
   Панели разделов открывает constructor.js (slideDown), место задаём мы. */.irm-body .irm-dz{padding:26px;border-radius:var(--irm-r-xl);background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .irm-dz #design{display:grid;grid-template-columns:230px minmax(0,1fr) 300px;gap:26px;align-items:start;width:auto;margin:0}.irm-body .irm-dz #design>.clear{display:none}.irm-body .irm-dz #design .design-aside,.irm-body .irm-dz #design .design-lside,.irm-body .irm-dz #design .design-canvas{width:auto;min-width:0}.irm-body .irm-dz #design .design-aside{position:relative}.irm-body .irm-dz .design-aside-title{height:auto;margin:0 0 10px;font-size:14px;font-weight:700;color:var(--irm-mut);text-transform:none}.irm-body .irm-dz .design-aside-box+.design-aside-box .design-aside-title{margin-top:18px}.irm-body .irm-dz .design-aside-box.aside-box-white,.irm-body .irm-dz .design-aside-box.aside-box-white .design-aside-title{background:transparent}.irm-body .irm-dz .design-aside-list{margin:0 0 8px}.irm-body .irm-dz .design-aside-list-btn{display:flex;align-items:center;gap:10px;height:44px;padding:0 14px 0 10px;border-radius:var(--irm-r-m);
  background:var(--irm-accent);color:#fff;font-size:16px;line-height:1;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .irm-dz .design-aside-list-btn:hover{background:var(--irm-accent-h)}.irm-body .irm-dz .design-aside-list-btn:active{scale:.98}.irm-body .irm-dz .design-aside-list-btn:after{position:static;margin-left:auto;width:7px;height:7px;border:solid rgba(255,255,255,.8);border-width:2px 2px 0 0;rotate:45deg}.irm-body .irm-dz .sprite_con{float:none;flex:none;margin:0}.irm-body .irm-dz .design-aside-list-items{top:0;left:calc(100% + 14px);width:min(850px,calc(100vw - 340px));border-radius:var(--irm-r-l);
  box-shadow:var(--irm-sh-2);overflow:hidden;z-index:15}.irm-body .irm-dz .design-aside-list-wrap{gap:4px;margin:8px}.irm-body .irm-dz .design-aside-list-item{border-radius:var(--irm-r-s);transition:background-color .15s}.irm-body .irm-dz .design-canvas{display:grid;place-items:center;padding:14px;border-radius:var(--irm-r-l);background:var(--irm-tile)}.irm-body .irm-dz #design-canvas-wrap,.irm-body .irm-dz .canvas-container{max-width:100%;border-radius:var(--irm-r-m);overflow:hidden}.irm-body .irm-dz #design #models-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;justify-content:stretch}.irm-body .irm-dz #design #models-list .models-list-item{width:auto;height:68px;padding:4px;border:1px solid transparent;border-radius:var(--irm-r-s);
  background:var(--irm-tile);transition:border-color .15s,background-color .15s}.irm-body .irm-dz #design #models-list .models-list-item:hover{border-color:var(--irm-accent);background:var(--irm-surface)}.irm-body .irm-dz #design-buttons{grid-column:1/-1;display:block;margin:0;padding-top:20px;border-top:1px solid var(--irm-line)}.irm-body .irm-dz #design-buttons .design-aside-list{display:flex;flex-wrap:wrap;gap:12px;margin:0}.irm-body .irm-dz #design-buttons .design-button{display:inline-flex;align-items:center;gap:10px;width:auto;height:53px;margin:0;padding:0 24px 0 18px;
  border:0;border-radius:var(--irm-r-m);background:var(--irm-accent);color:#fff;font:inherit;font-size:16px;font-weight:700;line-height:1;
  text-transform:none;cursor:pointer;transition:background-color .15s,scale .15s var(--irm-ease)}.irm-body .irm-dz #design-buttons .design-button:hover{background:var(--irm-accent-h)}.irm-body .irm-dz #design-buttons .design-button:active{scale:.97}.irm-body .irm-dz #design-buttons .sprite_con{margin:0}.irm-body .irm-dz__text{margin-top:26px}
@media(max-width:1100px){.irm-body .irm-dz #design{grid-template-columns:minmax(0,1fr)}.irm-body .irm-dz .design-aside-box{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.irm-body .irm-dz .design-aside-title{flex-basis:100%;margin:6px 0 0}.irm-body .irm-dz .design-aside-list{position:relative;margin:0}.irm-body .irm-dz .design-aside-list-btn{width:auto}.irm-body .irm-dz .design-aside-list-btn:after{display:none}.irm-body .irm-dz .design-aside-list-items{top:calc(100% + 6px);left:0;width:min(560px,calc(100vw - 72px))}.irm-body .irm-dz .design-lside .design-aside-list{flex:1 1 100%}}
@media(max-width:640px){.irm-body .irm-dz{padding:16px}/* Холст fabric ужимаем целиком — нижний и верхний слои и их контейнер; иначе
     под картинкой оставалась исходная высота ~900 px. Нажатия fabric пересчитывает
     сам по реальному размеру на экране. */.irm-body .irm-dz .canvas-container{position:relative;width:100%!important;height:auto!important}.irm-body .irm-dz .canvas-container .lower-canvas{position:relative!important;display:block;width:100%!important;height:auto!important}.irm-body .irm-dz .canvas-container .upper-canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important}.irm-body .irm-dz #design-buttons .design-button{flex:1 1 100%;justify-content:center}}/* ——— Вставки стандартными блоками (ORG-SITES-148) ——— *//* Страница отзывов: та же плитка оценки и те же карточки .irm-rv, что в блоке
   «Отзывы наших клиентов»; здесь их 30 — сетка по четыре и полный текст. */.irm-body .irm-rvs--page{margin-top:48px}.irm-body .irm-rvs--page .irm-rvs__in{grid-template-columns:repeat(4,minmax(0,1fr))}.irm-body .irm-rvs--page .irm-rv p{display:block;-webkit-line-clamp:unset;overflow:visible}.irm-body .irm-score__src{margin:0;font-size:14px;color:var(--irm-mut)}.irm-body .irm-score__src a{color:var(--irm-accent);font-weight:700}
@media(max-width:1298px){.irm-body .irm-rvs--page .irm-rvs__in{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .irm-rvs--page .irm-rvs__in{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible;margin-inline:0;padding-inline:0}}/* Галерея работ внутри текста ([slider]) — плитки «Наших работ». */.irm-body .page-wrap .irm-wk__row--in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 0 10px;padding:0;overflow:visible}.irm-body .page-wrap .irm-wk__row--in a{width:auto}.irm-body .page-wrap .irm-wk__more{margin:0 0 18px}
@media(max-width:836px){.irm-body .page-wrap .irm-wk__row--in{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-inline:0}}/* Галереи товаров с подписями — тот же вид плитки. */.irm-body .page-wrap .photos-flex-container [class*="one_"] img{border-radius:var(--irm-r-m);outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}/* «Другие модели …» на карточке — заголовок секции, как у «Наших работ». */.irm-body .page-wrap .irm-others{margin:62px 0 0}/* Карточка витрины: плитка фото одной высоты у всех (ORG-SITES-149).
   🪤 Узкие снимки (163×271 у белых H132, J210, H258 при обычных 190×270)
   распирали плитку по высоте — aspect-ratio уступает содержимому, и ряд
   «плясал» (Антон 28.09.2026, снимок «Смотрели»). Картинка лежит в плитке
   абсолютно — высоту задаёт только пропорция плитки. *//* Отступ внутри плитки 6 px (было 13): при нуле фото касалось рамки
   (Антон 28.09.2026, второй заход). Раньше — «почему такая маленькая
   картинка… отступы дополнительные не нужны, мы уменьшаем возможность
   просмотра»): фото занимает плитку целиком, пропорция та же. */.irm-body .irm-pc__pic{padding:0;overflow:hidden}.irm-body .irm-pc__pic img{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}/* «Смотрите также» в тексте — плитки «Читайте также» (ORG-SITES-149). */.irm-body .page-wrap .irm-also--in{max-width:none;margin:4px 0 18px}/* Состав комплекта элитного памятника (ORG-SITES-149). */.irm-body .irm-kits{margin-top:14px}.irm-body .irm-kit__list{display:grid;gap:0;margin:6px 0 0;padding:0;list-style:none}.irm-body .irm-kit__list li{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-top:1px solid var(--irm-line);font-size:16px}.irm-body .irm-kit__list li:first-child{border-top:0}.irm-body .irm-kit__list span{color:var(--irm-ink-2)}.irm-body .irm-kit__list b{font-weight:700;color:var(--irm-ink);white-space:nowrap;font-variant-numeric:tabular-nums}.irm-body .irm-kit__list i{font-style:normal;font-weight:400;color:var(--irm-mut)}/* Фото в колонках текста: во всю ширину колонки одинаковым кадром (ORG-SITES-149).
   У фото стоял width="319" — в колонке на полширины (~650 px) справа
   оставалась пустота («Формы и размеры» у элитных, Антон 28.09.2026). */.irm-body .page-wrap .text-block.content :is(.one_half,.one_half_last,.one_half_last_clear,.one_third,.one_third_last_clear)>:is(img,a>img,p>img,p>a>img),.irm-body .page-wrap .text-block.content :is(.one_half,.one_half_last,.one_half_last_clear,.one_third,.one_third_last_clear)>:is(a,p)>img{
  display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--irm-r-m)}.irm-body .page-wrap .text-block.content:empty{display:none}/* В тексте раздела .irm-seo__main — сетка на 12 колонок, фото-колонка занимает
   6 из них (~650 px), а внутри ей ещё давалось 49 % — фото выходило 319 px и
   справа пустота («Формы и размеры» у элитных, Антон 28.09.2026). Колонка —
   на всю свою ячейку, кадр широкий 2:1: пара фото занимает строку и ниже ростом. */.irm-body .page-wrap .irm-seo.text-block.content .irm-seo__main>:is(.one_half,.one_half_last,.one_half_last_clear):has(>img:only-child,>:is(a,p):only-child img){width:auto;margin-right:0;float:none}.irm-body .page-wrap .irm-seo.text-block.content .irm-seo__main>:is(.one_half,.one_half_last,.one_half_last_clear) :is(img){aspect-ratio:2/1}/* Ритм текста (ORG-SITES-149). Антон 28.09.2026: «между абзацами
   большеватые интервалы, асимметрично… горизонтальная полоса не нужна,
   её везде вырезать… давай поменьше, сделай нормально, красиво».
   В тексте раздела сетка .irm-seo__main добавляла к отступу абзаца свой
   промежуток строк 20 px (33 px между абзацами против 13 на «О нас»), а
   над каждым заголовком стояла линия и ещё 26 px. Один ритм на все тексты:
   абзац 10 px, межстрочный 1,55, заголовок раздела 28 px сверху и 10 снизу. */.irm-body .page-wrap .irm-seo__main{row-gap:0!important}.irm-body .page-wrap .text-block.content :is(p,li){line-height:1.55}.irm-body .page-wrap .text-block.content p,.irm-body .page-wrap .irm-seo.text-block.content p{margin:0 0 10px}.irm-body .page-wrap .text-block.content :is(ul,ol){margin:0 0 10px}.irm-body .page-wrap .text-block.content li{margin:0 0 4px}.irm-body .page-wrap .text-block.content h2,.irm-body .page-wrap .irm-seo.text-block.content h2{margin:28px 0 10px;padding-top:0;border-top:0}.irm-body .page-wrap .text-block.content h2:first-child,.irm-body .page-wrap .irm-seo.text-block.content h2:first-child{margin-top:0}.irm-body .page-wrap .text-block.content :is(h3,.h3_new){margin:20px 0 8px}.irm-body .page-wrap .text-block.content hr{display:none}/* Пустой счётчик корзины не показываем с первого кадра (ORG-SITES-145):
   до сих пор его прятал site.js уже после загрузки, и полсекунды на значке
   корзины висел пустой красный кружок. */.irm-body .irm-badge.cart-counter-wrapper:has(>.cart-counter:empty){display:none}/* Заголовок страницы — один на весь сайт (ORG-SITES-121).
   🪤 На /basket/, /design/, /views/, /favorits/ H1 печатает родитель вне
   контейнера `.irm-sh`, и он доставался шрифтом родителя, а у избранного и
   просмотренных ещё и светло-сиреневым с весом 400 — три разных заголовка.
   Шрифт всего сайта — Tahoma («Да, тогда везде делаем тахому», Антон
   28.09.2026, ORG-SITES-143): до этого блоки «Маркета» шли системным набором,
   а текст записей — Tahoma из legacy.css, и на одной странице жили два шрифта. */.irm-body .page-wrap h1,.irm-body .page-wrap .position>h1{
  font-family:Tahoma,Geneva,Verdana,sans-serif;
  font-weight:700;color:var(--irm-ink)}/* Заголовок на родительских шаблонах (конструктор) — слева, как везде.
   🪤 Сам блок `.position` — старый контейнер шириной 1060 px с авто-полями:
   заголовок начинался на 205 px от края, тогда как на всех прочих страницах
   он стоит на 26 px. Распускаем контейнер на рабочую ширину. */.irm-body .page-wrap .position{width:auto;margin:0;padding:0}.irm-body .page-wrap .position>h1{text-align:left}/* ——— Текст раздела под витриной (ORG-SITES-125, переработан ORG-SITES-130) ———
   Было: всё содержимое карточки обрезано на 900 px — текст лентой слева, справа
   380–470 px пустоты, прайс 520 px, галерея по шесть миниатюр (Антон 25.09.2026:
   «на всю длину экрана, а то как бы только частично занимает; текст мелкий»).
   Стало: колонка контента и рельса оглавления во всю полосу; ограничение ширины
   осталось только у текста (мера 66ch ≈ 78 знаков), медиа и перечни — во всю колонку. *//* 🪤 Мера в `ch` считается по шрифту и масштаб темы (×1,1) её не трогает:
   66ch дали строку в 620 px посреди полосы 1290 — текст стал ещё уже, чем был.
   Держим меру в пикселях: с оглавлением её задаёт сама колонка, без него —
   980 px (около 85 знаков при 21 px на экране). */.irm-body .page-wrap .irm-seo{--irm-measure:none;display:grid;grid-template-columns:minmax(0,1fr);gap:0}/* 🪤 Колонка текста была жёсткой (781 px) и разведена с оглавлением через
   space-between: между ними оставалась «река» в 270 px, а правее оглавления —
   ещё 200 px пустого поля. Теперь текст занимает всё до оглавления (меру
   держат сами абзацы через --irm-measure), а оглавление прижато к краю
   карточки: картинки, таблицы и плитки получают лишние 200 px (28.09.2026). */.irm-body .page-wrap .irm-seo.irm-seo--toc{grid-template-columns:minmax(0,1fr) 360px;gap:26px 53px;
  align-items:start}.irm-body .page-wrap .irm-seo.irm-seo--toc>.irm-seo__main{--irm-measure:none}/* Без оглавления рельсы нет — меру отпускаем, иначе справа остаётся треть пустоты. */.irm-body .page-wrap .irm-seo:not(.irm-seo--toc){--irm-measure:none}.irm-body .page-wrap .irm-seo>.irm-seo__main{min-width:0;max-width:none}/* 🪤 Прежнее `.irm-seo__main>*{max-width:900px}` резало и картинки, и плитки, и
   таблицы — отсюда ощущение «текст занимает только часть». Ограничитель снят. */.irm-body .page-wrap .irm-seo .irm-seo__main>*{max-width:none}/* Мера строки — только там, где её читают подряд. */.irm-body .page-wrap .irm-seo .irm-seo__main>:where(p,ul,ol,dl,blockquote,h3,.zaglav2,.h3_new){max-width:var(--irm-measure)}.irm-body .page-wrap .irm-seo .irm-seo__main>*:first-child{margin-top:0}/* 🪤 Рядом с обтекающим снимком мера душит текст до 40 знаков: в таком блоке
   колонка сама становится мерой, а ширину держит картинка. */.irm-body .page-wrap .irm-seo__main:has(.alignright,.alignleft)>:where(p,ul,ol){max-width:none}/* Секция раздела: заголовок h2 с линией во всю колонку и общим шагом. */.irm-body .page-wrap .irm-seo.text-block.content h2{margin:28px 0 10px;padding-top:0;max-width:none;
  clear:both;border-top:0;font-size:26px;font-weight:600;line-height:1.2;
  letter-spacing:-.022em;color:var(--irm-ink);text-wrap:balance;scroll-margin-top:96px}.irm-body .page-wrap .irm-seo.text-block.content h2:first-child{margin-top:0;padding-top:0;border-top:0}.irm-body .page-wrap .irm-seo.text-block.content h3{margin:22px 0 9px;font-size:20px;font-weight:600;
  line-height:1.25;color:var(--irm-ink);text-wrap:balance;scroll-margin-top:96px}.irm-body .page-wrap .irm-seo.text-block.content h3:first-child{margin-top:0}.irm-body .page-wrap .irm-seo.text-block.content p{margin:0 0 10px;text-wrap:pretty}.irm-body .page-wrap .irm-seo.text-block.content .irm-seo__lead{margin-bottom:15px;font-size:18px;
  line-height:1.5;color:var(--irm-ink)}/* Списки: маркер акцентом, интервал по ритму абзаца. */.irm-body .page-wrap .irm-seo.text-block.content ul,.irm-body .page-wrap .irm-seo.text-block.content ol{margin:0 0 18px;padding-inline-start:24px}.irm-body .page-wrap .irm-seo.text-block.content li{margin-bottom:7px;line-height:1.55}.irm-body .page-wrap .irm-seo.text-block.content li::marker{color:var(--irm-accent);font-weight:600}/* Короткие перечисления — рядами по ширине колонки, а не лесенкой в две узкие. */.irm-body .page-wrap .irm-seo__cols{columns:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:0 35px;max-width:none;padding-inline-start:24px}.irm-body .page-wrap .irm-seo__cols li{break-inside:avoid}/* Прайс в тексте: карточкой на меру строки, цена справа, цифры табличные. */.irm-body .page-wrap .irm-seo__price{margin:0 0 18px;padding:2px 20px;list-style:none;max-width:var(--irm-measure);
  border-radius:var(--irm-r-m);background:var(--irm-tile)}.irm-body .page-wrap .irm-seo__price li{display:flex;gap:24px;justify-content:space-between;align-items:baseline;
  margin:0;padding:11px 0;list-style:none}.irm-body .page-wrap .irm-seo__price li+li{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .page-wrap .irm-seo__n{color:var(--irm-ink-2)}.irm-body .page-wrap .irm-seo__v{flex:none;color:var(--irm-ink);font-weight:600;font-variant-numeric:tabular-nums;text-align:end}/* ——— Оглавление раздела (переделано 28.09.2026) ———
   Было плиткой со своей заливкой и скруглением 20 px — ещё одна карточка
   внутри карточки, а кегль 15 px мельче текста. Антон: «навигацию в этом
   разделе можно покрупнее; посмотри по закруглениям, везде ли они нужны».
   Теперь это рельса: вертикальная линия, никакой заливки и скругления,
   пункты 17 px, активный отмечен акцентной полосой на той же линии. */.irm-body .page-wrap .irm-seo__toc{position:sticky;top:104px;align-self:start;
  padding:2px 0 2px 22px;border-radius:0;background:transparent;
  border-inline-start:2px solid var(--irm-line)}.irm-body .page-wrap .irm-seo__toc-t{margin-bottom:13px;font-size:14px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--irm-mut)}.irm-body .page-wrap .irm-seo__toc ul{margin:0;padding:0;list-style:none;max-width:none}.irm-body .page-wrap .irm-seo__toc li{margin:0}.irm-body .page-wrap .irm-seo__toc li+li{margin-top:2px;box-shadow:0 -1px 0 var(--irm-line)}.irm-body .page-wrap .irm-seo__toc a{position:relative;display:block;padding:10px 0;font-size:18px;
  line-height:1.35;color:var(--irm-ink-2);text-decoration:none;text-wrap:pretty}.irm-body .page-wrap .irm-seo__toc a:hover{color:var(--irm-accent)}/* Пункты нумеруются — по номеру видно, сколько всего разделов и где ты в
   тексте; активный подсвечен (его ставит скрипт подвала, ORG-SITES-130). */.irm-body .page-wrap .irm-seo__toc ul{counter-reset:toc}.irm-body .page-wrap .irm-seo__toc li{counter-increment:toc}.irm-body .page-wrap .irm-seo__toc a{display:grid;grid-template-columns:22px minmax(0,1fr);
  gap:9px;align-items:baseline}.irm-body .page-wrap .irm-seo__toc a::before{content:counter(toc);font-size:16px;font-weight:600;
  font-variant-numeric:tabular-nums;color:var(--irm-mut)}.irm-body .page-wrap .irm-seo__toc a[aria-current]{color:var(--irm-accent);font-weight:600}.irm-body .page-wrap .irm-seo__toc a[aria-current]::before{color:var(--irm-accent)}/* Активный пункт отмечаем на самой рельсе — отдельной заливки не нужно. */.irm-body .page-wrap .irm-seo__toc a[aria-current]::after{content:"";position:absolute;
  inset-inline-start:-24px;top:6px;bottom:6px;width:2px;background:var(--irm-accent)}/* Цитата и врезка: акцентная полоса слева, кегль чуть крупнее абзаца. */.irm-body .page-wrap .irm-seo.text-block.content blockquote{margin:20px 0;padding:15px 20px;max-width:var(--irm-measure);
  border-radius:0 var(--irm-r-m) var(--irm-r-m) 0;background:var(--irm-accent-soft);
  border-left:3px solid var(--irm-accent);
  font-size:18px;line-height:1.55;color:var(--irm-ink)}.irm-body .page-wrap .irm-seo.text-block.content blockquote p:last-child{margin:0}.irm-body .page-wrap .irm-seo.text-block.content .zaglav2{margin:22px 0 9px;font-size:18px;font-weight:600;color:var(--irm-ink)}/* Картинки в тексте: подпись под снимком слева, обтекание — колонкой в треть. */.irm-body .page-wrap .irm-seo.text-block.content img{border-radius:var(--irm-r-m)}.irm-body .page-wrap .irm-seo.text-block.content .alignright{float:right;width:min(38%,380px);margin:4px 0 16px 32px}.irm-body .page-wrap .irm-seo.text-block.content .alignleft{float:left;width:min(38%,380px);margin:4px 32px 16px 0}.irm-body .page-wrap .irm-seo .one_text{margin-top:9px;font-size:14px;line-height:1.45;color:var(--irm-mut);text-align:start}.irm-body .page-wrap .irm-seo .italianec{font-size:14px;color:var(--irm-mut)}.irm-body .page-wrap .irm-seo .one_text a{color:var(--irm-ink);font-weight:600;text-decoration:none}.irm-body .page-wrap .irm-seo .one_text a:hover{color:var(--irm-accent)}/* 🪤 Float выходит за последний абзац секции и заезжал на следующий заголовок. */.irm-body .page-wrap .irm-seo__main::after{content:"";display:block;clear:both}/* Галерея и плитки — по ширине колонки: было шесть миниатюр по 150 px на 900. */.irm-body .page-wrap .irm-seo.text-block.content .slider-foto:not(:has(ul)),.irm-body .page-wrap .irm-seo .slider-foto>ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.irm-body .page-wrap .irm-seo .photos-flex-container{margin:0 0 24px}/* Таблица в тексте: шапка на плашке, строки просторнее. */.irm-body .page-wrap .irm-seo.text-block.content table{margin:0 0 22px;max-width:none;font-size:1em}.irm-body .page-wrap .irm-seo.text-block.content th,.irm-body .page-wrap .irm-seo.text-block.content td{padding:13px 16px}.irm-body .page-wrap .irm-seo.text-block.content th{background:var(--irm-tile);color:var(--irm-ink);font-weight:600}.irm-body .page-wrap .irm-seo.text-block.content tr:last-child td{border-bottom:0}/* Врезки «О нас» — во всю колонку, а не в левые 900 px. */.irm-body .page-wrap .irm-seo .mass-block,.irm-body .page-wrap .irm-seo .staff-list-wrapper{max-width:none;margin-bottom:24px}.irm-body .page-wrap .irm-seo .mass__content__text{font-size:1em;line-height:1.6}

@media(max-width:1298px){.irm-body .page-wrap .irm-seo.irm-seo--toc{grid-template-columns:minmax(0,1fr) 320px;gap:28px 40px}}
/* Ниже 1100 колонка контента уходит под 560 px — оглавление переносим наверх
   строкой чипов: коробка на всю ширину съедала первый экран блока. */
@media(max-width:1210px){.irm-body .page-wrap .irm-seo.irm-seo--toc{grid-template-columns:minmax(0,1fr)}.irm-body .page-wrap .irm-seo{--irm-measure:none}.irm-body .page-wrap .irm-seo__toc{position:static;order:-1;margin-bottom:24px;padding:0;
    border-inline-start:0}.irm-body .page-wrap .irm-seo__toc ul{display:flex;flex-wrap:wrap;gap:9px}.irm-body .page-wrap .irm-seo__toc li+li{margin-top:0;box-shadow:none}.irm-body .page-wrap .irm-seo__toc a{padding:9px 15px;border-radius:999px;background:var(--irm-surface)}}
@media(max-width:836px){.irm-body .page-wrap .irm-seo{--irm-measure:none;font-size:16px;line-height:1.6}.irm-body .page-wrap .irm-seo__toc{display:none}.irm-body .page-wrap .irm-seo.text-block.content h2{margin:28px 0 10px;padding-top:0;font-size:24px}.irm-body .page-wrap .irm-seo.text-block.content h3{margin:22px 0 8px;font-size:20px}.irm-body .page-wrap .irm-seo__lead{font-size:18px}.irm-body .page-wrap .irm-seo__cols{grid-template-columns:minmax(0,1fr)}.irm-body .page-wrap .irm-seo__price{padding:2px 14px}.irm-body .page-wrap .irm-seo__price li{flex-wrap:wrap;gap:2px 16px}.irm-body .page-wrap .irm-seo.text-block.content .alignright,.irm-body .page-wrap .irm-seo.text-block.content .alignleft{float:none;width:100%;margin:0 0 14px}.irm-body .page-wrap .irm-seo.text-block.content .slider-foto:not(:has(ul)),.irm-body .page-wrap .irm-seo .slider-foto>ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}/* ——— Номенклатура под H1 — «вставка №2» (ORG-SITES-126) ———
   Одна строка плиток во всю ширину, прокрутка пальцем и колесом; на широком
   экране помещается 9–10, остальные докручиваются. Плитка — та же логика,
   что у карточки витрины: фото на светлой подложке, подпись под ним. */.irm-body .irm-nm{margin:14px 0 4px}.irm-body .irm-nm .irm-sec__head{margin-bottom:12px}.irm-body .irm-nm__row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;
  padding-block:2px 10px;scroll-snap-type:x proximity}.irm-body .irm-nm__row::-webkit-scrollbar{display:none}/* Картинка занимает плашку целиком, без белой рамки вокруг неё
   (Антон 24.09.2026). Углы кадра срезает сама карточка. */.irm-body .irm-nm__i{flex:none;width:150px;display:flex;flex-direction:column;gap:0;
  padding:0 0 10px;border-radius:var(--irm-r-l);background:var(--irm-surface);overflow:hidden;
  box-shadow:var(--irm-sh-1);color:var(--irm-ink-2);text-align:center;scroll-snap-align:start;
  transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease),color .15s}.irm-body a.irm-nm__i:hover{box-shadow:var(--irm-sh-2);translate:0 -2px;color:var(--irm-accent)}/* Картинка — в тех же пропорциях 229×152, что в блоке на странице товара
   (Антон 24.09.2026: «возьми исходные значения, как они были сделаны на
   странице товара»): кадр 3:2 целиком, без обрезки и без своей подложки. */.irm-body .irm-nm__p{display:block;margin-bottom:8px;background:#fff}.irm-body .irm-nm__p img{width:100%;height:auto;aspect-ratio:229/152;object-fit:contain;
  mix-blend-mode:multiply}/* Подпись — 16 px, как в этом блоке на странице товара (Антон 24.09.2026). */.irm-body .irm-nm__l{padding-inline:8px;font-size:16px;line-height:1.3;text-wrap:balance}/* Раздел, на котором стоим: подсвечен и не ссылается сам на себя. */.irm-body .irm-nm__i[aria-current]{background:var(--irm-accent-soft);color:var(--irm-accent);
  box-shadow:none;font-weight:600}.irm-body .irm-nm__i[aria-current] .irm-nm__p{background:#fff}
@media(max-width:836px){.irm-body .irm-nm{margin-top:10px}.irm-body .irm-nm__row{margin-inline:-16px;padding-inline:16px}.irm-body .irm-nm__i{width:126px}}/* ——— Служебная страница /test-blocks/ (ORG-SITES-126) ———
   Подписи над блоками: номер, название, вызов, где применяется. *//* Подписи блоков на /test-blocks/. Самих блоков не касаемся: страница
   должна выглядеть ровно так же, как боевые (Антон 24.09.2026). */.irm-body .irm-tb__h{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;
  margin:44px 0 12px;padding-top:14px;box-shadow:0 -1px 0 var(--irm-line)}.irm-body .irm-tb__n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--irm-accent);color:#fff;font-size:14px;font-weight:700;
  font-variant-numeric:tabular-nums;align-self:center}.irm-body .irm-tb__h b{font-size:19px;font-weight:400;letter-spacing:-.015em}.irm-body .irm-tb__h code{padding:3px 8px;border-radius:var(--irm-r-s);background:var(--irm-tile);
  font-size:14px;color:var(--irm-ink-2)}.irm-body .irm-tb__w{font-size:14px;color:var(--irm-mut)}/* Образцы кнопок идут прямо по фону страницы: белая подложка мешала судить
   о самих кнопках (Антон 24.09.2026). */.irm-body .irm-tb__row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;
  padding:0;border-radius:0;background:transparent;box-shadow:none}.irm-body .irm-tb__row .irm-sale{position:static}/* Образец заголовка раздела: вид H1 без второго H1 в разметке. */.irm-body .irm-tb__h1{font-size:40px;font-weight:700;letter-spacing:-.022em;line-height:1.12;
  color:var(--irm-ink)}/* Крошки главной — одно звено: тот же ряд, без ссылки и без шеврона. */.irm-body .irm-crumbs--home{color:var(--irm-mut)}/* Короткий список — сеткой по шесть в ряд, как на карточке товара. */.irm-body .irm-nm__row--grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  overflow:visible}.irm-body .irm-nm__row--grid .irm-nm__i{width:auto}
@media(max-width:1298px){.irm-body .irm-nm__row--grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .irm-nm__row--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}/* Один вертикальный шаг между секциями раздела (ORG-SITES-127).
   🪤 «Как заказать» и «Наши работы» пришли с главной, где шаг 72 px, а
   отзывы и «Читайте также» на страницах идут через 44 px — рядом это
   читалось как разные расстояния (Антон 24.09.2026). */.irm-body .page-wrap>.irm-how,.irm-body .page-wrap>.irm-wk,.irm-body .page-wrap>.irm-seo{margin-top:44px}
@media(max-width:836px){.irm-body .page-wrap>.irm-how,.irm-body .page-wrap>.irm-wk,.irm-body .page-wrap>.irm-seo{margin-top:32px}}/* Текст раздела внизу страницы — в такой же белой карточке, как остальные
   текстовые блоки (Антон 24.09.2026: «не нравится, потому что он находится
   не на белых плашках»). Прежний прозрачный вид от 24.09 снят. */.irm-body .page-wrap>.irm-seo.text-block.content{
  /* 🪤 legacy-core.css держит `.content{margin:0 auto!important}` — без своего
     !important верхний отступ блока обнулялся и текст прилипал к «Читайте
     также» (Антон 24.09.2026: «отступы разные»). */
  margin:48px 0 0!important}
@media(max-width:836px){.irm-body .page-wrap>.irm-seo.text-block.content{margin:32px 0 0!important}}/* Текст раздела бывает разбит на несколько блоков (у /figurnyie/ — девять,
   у /dekor/ между ними стоят свои заголовки). Между собой они идут как один
   текст: полного шага секции внутри не ставим. */.irm-body .page-wrap>.irm-seo.text-block.content+.irm-seo.text-block.content,.irm-body .page-wrap>.h2_new+.irm-seo.text-block.content{margin-top:0!important}.irm-body .page-wrap>.irm-seo+.h2_new{margin:28px 0 0}

@media(max-width:1298px){.irm-body .irm-ad--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:836px){.irm-body .irm-ad--3,.irm-body .irm-ad--2{grid-template-columns:minmax(0,1fr);gap:10px}.irm-body .irm-ad__t--wide{flex-direction:column;align-items:flex-start;gap:6px}.irm-body .irm-ad__t--wide>span:last-child{margin-inline-start:0}}/* ——— Витрина блоков: подпись вариации (ORG-SITES-128) ———
   Внутри одного номера живёт несколько образцов: подпись отделяет их друг от
   друга, но не спорит с главной подписью блока — она тоньше и без номера. */.irm-body .irm-tb__s{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:24px 0 8px}.irm-body .irm-tb__s b{font-size:15px;font-weight:600;color:var(--irm-ink-2)}.irm-body .irm-tb__s span{font-size:14px;color:var(--irm-mut)}/* ——— Прайс секциями .prl-* (ORG-SITES-128) ———
   Разметка пришла со старых страниц цен вместе с инлайновым <style>: серая
   полоса, фиолетовая черта слева, 14 px. Свои правила весят больше (.irm-body
   плюс .page-wrap), поэтому перебивают инлайновый блок и прайс выглядит как
   остальной «Маркет». *//* Врезка «Важно» из старых прайсов: тема ставила ей 12 px — ниже нашего порога
   в 14 px на экране (Антон 26.09.2026: «минимум 14 использовать»). *//* Врезка «Важно» в прайсах: у родительской темы радиус 4 px и свои поля —
   приводим к языку макета (полоса слева, как у цитаты, радиус 10). */.irm-body .page-wrap .prl-note{padding:15px 20px;border-radius:0 var(--irm-r-s) var(--irm-r-s) 0;
  border-left:3px solid #e0ad24;background:#fffbe6;font-size:14px;line-height:1.55;
  color:var(--irm-ink-2)}.irm-body .page-wrap .prl-note :where(span,b,strong,em,i,a,p){font-size:inherit}.irm-body .page-wrap .prl-lead{margin:0 0 16px;color:var(--irm-mut);font-size:15px;line-height:1.5}.irm-body .page-wrap .prl-sec{margin:0 0 20px;border-radius:var(--irm-r-m);overflow:hidden;
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .page-wrap .prl-sec-h{margin:0;padding:12px 18px;background:var(--irm-tile);
  font-size:15px;font-weight:600;color:var(--irm-ink);border-left:0}.irm-body .page-wrap .prl-row{display:flex;align-items:baseline;gap:16px;padding:11px 18px;
  background:transparent;font-size:15px}.irm-body .page-wrap .prl-row+.prl-row{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .page-wrap .prl-row:nth-child(even){background:transparent}.irm-body .page-wrap .prl-nm{flex:1 1 auto;line-height:1.4;color:var(--irm-ink-2);font-size:15px}.irm-body .page-wrap .prl-pr{flex:none;font-weight:600;color:var(--irm-ink);
  font-variant-numeric:tabular-nums}/* Лид-абзац и подпись под фотографией внутри текста раздела. *//* ——— Плитки-ссылки в тексте (ORG-SITES-128) ———
   🪤 Ряд долей собран на 12 колонках, и `one_fifth` (span 2) давал пять плиток
   на 10/12 ширины — справа оставалась дыра в колонку. Ряд с пятыми долями
   считаем по 10 колонкам. */.irm-body .page-wrap div:has(>[class*="one_fifth"]){grid-template-columns:repeat(10,minmax(0,1fr))!important}/* Фотографии в плитках разной высоты, поэтому подписи стояли на разных
   уровнях. Доля — колонка, подпись прижата к низу: строка подписей ровная. */.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_"]{display:flex;flex-direction:column}.irm-body .page-wrap div:has(>[class*="one_"])>[class*="one_"]>.one_text{margin-top:auto;padding-top:8px}/* 🪤 Фотографии в плитках-ссылках сняты в разных пропорциях, и подпись под
   низкой фотографией поднималась выше соседних. Растяжка колонок
   (`align-items:stretch`) ломала первую плитку в ряду, поэтому ровняем сами
   снимки: единое соотношение 4:3 с обрезкой по центру. */.irm-body .page-wrap .photos-flex-container [class*="one_"] img{aspect-ratio:4/3;object-fit:cover}/* ——— Врезки страниц «О нас» и «СМИ о нас» (ORG-SITES-128) ———
   Разметка родительской темы: без своих правил блоки шли простым столбцом
   картинок во всю ширину текста. */.irm-body .page-wrap .mass-block{margin:0 0 16px}.irm-body .page-wrap .mass__body{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);
  gap:18px;align-items:center;padding:16px 18px;border-radius:var(--irm-r-m);
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .page-wrap .mass__img{float:none;width:auto;margin:0}.irm-body .page-wrap .mass__img img{width:100%;height:auto;border-radius:var(--irm-r-s);display:block}.irm-body .page-wrap .mass__content__text{font-size:15px;line-height:1.5;color:var(--irm-ink-2)}/* ——— Сотрудники (ORG-SITES-130, 28.09.2026) ———
   Было: строчка с аватаром 62 px, три в ряд — «очень сильно сжато» (Антон).
   Стало: карточка в рост, портрет 132 px на мягкой плитке, имя 20, должность
   16 — тот же язык, что у текстовых карточек .irm-tc. Исходники 180×180,
   крупнее ставить нечего. */.irm-body .page-wrap .staff-list{display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.irm-body .page-wrap .staff-list__item{display:flex;flex-direction:column;align-items:flex-start;
  gap:15px;padding:26px 28px 28px;border-radius:var(--irm-r-l);background:var(--irm-surface);
  box-shadow:var(--irm-sh-1);transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .page-wrap .staff-list__item:hover{box-shadow:var(--irm-sh-2);translate:0 -2px}.irm-body .page-wrap .staff-list__img{display:grid;place-items:center;width:132px;height:132px;
  border-radius:50%;background:var(--irm-accent-soft)}.irm-body .page-wrap .staff-list__img img{width:132px;height:132px;border-radius:50%;
  object-fit:cover;display:block}.irm-body .page-wrap .staff-list__data{font-size:16px;line-height:1.4;text-align:start;
  font-style:normal}.irm-body .page-wrap .staff-list__data :where(i,em,b,strong,span,div){font-style:normal}.irm-body .page-wrap .staff-list__data__name{font-size:20px;line-height:1.25;font-weight:600;
  letter-spacing:-.015em;color:var(--irm-ink)}.irm-body .page-wrap .staff-list__data__post{margin-top:4px;font-size:16px;line-height:1.45;
  color:var(--irm-ink-2)}
@media(max-width:836px){.irm-body .page-wrap .staff-list{grid-template-columns:repeat(2,minmax(0,1fr))}.irm-body .page-wrap .staff-list__item{padding:20px 20px 22px;gap:13px}.irm-body .page-wrap .staff-list__img,.irm-body .page-wrap .staff-list__img img{width:96px;height:96px}.irm-body .page-wrap .staff-list__data__name{font-size:18px}.irm-body .page-wrap .mass__body{grid-template-columns:1fr}}/* Картинка с обтеканием в тексте раздела: на телефоне обтекание снимаем. */.irm-body .page-wrap .text-block.content .alignright{float:right;margin:4px 0 12px 20px;max-width:46%}.irm-body .page-wrap .text-block.content .alignleft{float:left;margin:4px 20px 12px 0;max-width:46%}.irm-body .page-wrap .text-block.content .aligncenter{display:block;margin-inline:auto}
@media(max-width:836px){.irm-body .page-wrap .text-block.content .alignright,.irm-body .page-wrap .text-block.content .alignleft{float:none;margin:0 0 12px;max-width:100%}}/* 🪤 Заголовку плашки ширину режет `max-width:calc(100% - 73px)` — место под
   круглую иконку в углу. У широкой плашки иконка стоит в строке, поэтому
   ограничение снимаем (иначе на телефоне заголовок шёл в четыре строки). */.irm-body .irm-ad__t--wide strong{max-width:none}/* ——— Подпись под заголовком блока (ORG-SITES-130) ———
   Антон 25.09.2026: «сделай SEO-подписи, которые подсказывают, что это за
   раздел, с ключами». Заголовок и подпись идут одной колонкой слева, ссылка
   «все …» остаётся справа на первой строке. */.irm-body .irm-sec__head{align-items:flex-start}.irm-body .irm-sec__t{min-width:0}/* Заголовок блока тегом div (там, где h2 ломает порядок заголовков) выглядит
   так же, как h2 секции. */.irm-body .irm-sec__h{font-size:28px;font-weight:600;letter-spacing:-.022em;line-height:1.15;
  color:var(--irm-ink)}.irm-body .irm-sec__sub{margin:6px 0 0;max-width:78ch;font-size:16px;line-height:1.5;
  color:var(--irm-mut);text-wrap:pretty}.irm-body .irm-cats .irm-sec__head,.irm-body .irm-nm .irm-sec__head{margin-bottom:16px}
@media(max-width:836px){.irm-body .irm-sec__sub{font-size:15px}}/* ——— Отклик на наведение у плиток и отзывов (ORG-SITES-130) ———
   Антон 25.09.2026: «блоки 8 и 9 при наведении должны… как рекламные плашки:
   немножко играть, тени набрасывать», а следом — «показывать иконку руки
   с пальцем» и «сделать их ссылками на конкретный раздел». Плитки плюсов
   стали ссылками <a> (курсор-рука — свой), у отзывов кликабельна вся
   карточка: ссылка внутри растягивается на неё через .irm-stretch. */.irm-body .irm-plus>div,.irm-body .irm-plus>a{transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .irm-plus>div:hover,.irm-body .irm-plus>a:hover{box-shadow:var(--irm-sh-2);translate:0 -2px}.irm-body .irm-plus>a{cursor:pointer;color:inherit}.irm-body .irm-plus>a:hover b{color:var(--irm-accent)}.irm-body .irm-rv,.irm-body .irm-score{position:relative;cursor:pointer;transition:box-shadow .2s var(--irm-ease),translate .2s var(--irm-ease)}.irm-body .irm-rv:hover,.irm-body .irm-score:hover{box-shadow:var(--irm-sh-2);translate:0 -2px}/* Растянутая ссылка: клик и курсор-рука по всей карточке, разметка прежняя. */.irm-body .irm-stretch::after{content:"";position:absolute;inset:0;border-radius:inherit}.irm-body .irm-rv:hover .irm-lnk svg{translate:3px 0}
@media(prefers-reduced-motion:reduce){.irm-body .irm-plus>div:hover,.irm-body .irm-plus>a:hover,.irm-body .irm-rv:hover,.irm-body .irm-score:hover{translate:none}}/* 🪤 Родительская тема держит `.text-block p, .text-block ul li{font-size:14px}`
   — прямое правило сильнее наследования от карточки, поэтому весь текст
   страниц оставался 14 px при кегле блока 19 (Антон 25.09.2026 — «текст
   мелкий»). Возвращаем наследование: `:where()` не добавляет веса селектору,
   а сам селектор с `.irm-body .page-wrap` тяжелее родительского. */.irm-body .page-wrap .text-block.content :where(p,li,dd,dt,td,th,blockquote,figcaption,label,span,strong,b,em,i,small,a){font-size:inherit}/* 🪤 Наследование весит 0,4,0 и перебивало собственные подписи блока —
   им даём селектор тяжелее (0,6,1), кегль у них задан осознанно. */.irm-body .page-wrap .irm-seo.text-block.content .irm-seo__toc a{font-size:16px;text-decoration:none}.irm-body .page-wrap .irm-seo.text-block.content .one_text,.irm-body .page-wrap .irm-seo.text-block.content .italianec{font-size:14px}/* ——— Блок 12: таблицы и прайсы во всю ширину карточки (ORG-SITES-130) ———
   Антон 25.09.2026: «блок 12… должен быть на всю длину экрана, а то как бы
   только частично занимает; текст мелкий, должен быть крупнее».
   Было: мера строки `.text-block.content>*{max-width:900px}` резала и таблицы:
   при полосе 1372 px таблица кончалась на 990, справа оставалось 380 px
   пустоты. Стало: мера остаётся у текста, таблицы и прайсы её снимают.
   🪤 Правило `>*` весит 0,4,0 и перебивало `.irm-tbl{max-width:none}` (0,3,0) —
   поэтому ниже селекторы через `.text-block.content>` и `.irm-seo__main>`. */.irm-body .page-wrap .text-block.content>.irm-tbl,.irm-body .page-wrap .text-block.content>.prl-sec,.irm-body .page-wrap .text-block.content>.irm-seo__price,.irm-body .page-wrap .irm-seo .irm-seo__main>.irm-tbl,.irm-body .page-wrap .irm-seo .irm-seo__main>.prl-sec,.irm-body .page-wrap .irm-seo .irm-seo__main>.irm-seo__price{max-width:none}/* Таблица — своя рамка внутри белой карточки: кольцо, скругление, свой
   горизонтальный скролл с тонкой видимой полосой. */.irm-body .page-wrap .irm-tbl{margin:0 0 24px;overflow:auto;overscroll-behavior-x:contain;
  border-radius:var(--irm-r-m);background:var(--irm-surface);
  box-shadow:inset 0 0 0 1px var(--irm-line);scrollbar-width:thin;
  scrollbar-color:#cfc9e2 transparent}.irm-body .page-wrap .irm-tbl::-webkit-scrollbar{height:10px}.irm-body .page-wrap .irm-tbl::-webkit-scrollbar-thumb{border:3px solid transparent;
  border-radius:var(--irm-r-s);background:#cfc9e2;background-clip:content-box}/* 🪤 border-collapse:collapse ломает липкие ячейки и скругление рамки —
   переходим на separate, линии строк рисуем border-top у самих ячеек. */.irm-body .page-wrap .text-block.content .irm-tbl>table{width:100%;margin:0;
  min-width:min(100%,520px);border-collapse:separate;border-spacing:0;
  font-variant-numeric:tabular-nums;font-size:16px}/* Кегль ячеек 15,5 (17 px на экране) и поля 11/16 — после правки 26.09.2026
   «больно крупные символы, нерационально место»; шапка 13,5 (14,85). */.irm-body .page-wrap .text-block.content .irm-tbl>table th,.irm-body .page-wrap .text-block.content .irm-tbl>table td{padding:13px 20px;border:0;
  text-align:start;vertical-align:middle;background:var(--irm-surface)}.irm-body .page-wrap .text-block.content .irm-tbl>table td{font-size:16px;line-height:1.45;
  color:var(--irm-ink-2)}/* Шапка — полоса плитки, как у .prl-sec-h, липнет при прокрутке. */.irm-body .page-wrap .text-block.content .irm-tbl>table th{position:sticky;top:0;z-index:3;
  font-size:16px;line-height:1.3;letter-spacing:.01em;font-weight:600;color:var(--irm-ink);
  background:var(--irm-tile);white-space:nowrap}.irm-body .page-wrap .text-block.content .irm-tbl>table thead>tr>*{
  border-bottom:1px solid var(--irm-line)}.irm-body .page-wrap .text-block.content .irm-tbl>table tbody tr+tr>*{
  border-top:1px solid var(--irm-line)}/* Зебра вместо лишних линеек. */.irm-body .page-wrap .text-block.content .irm-tbl>table tbody tr:nth-child(even)>*{
  background:#f8f7fc}/* Первая колонка не уезжает, когда широкую таблицу листают вбок. *//* 🪤 Тень у липкой колонки рисовалась всегда и на обычной таблице читалась
   как лишний разделитель после первого столбца. Липкость оставляем, тень
   убираем — на узком экране колонку и так видно по зебре. */.irm-body .page-wrap .text-block.content .irm-tbl>table tr>:first-child{position:sticky;
  inset-inline-start:0;z-index:2}.irm-body .page-wrap .text-block.content .irm-tbl>table tr>th:first-child{z-index:4}/* Итоговая строка — последняя с жирным. */.irm-body .page-wrap .text-block.content .irm-tbl>table tbody tr:last-child:has(b,strong)>td{
  background:var(--irm-accent-soft);color:var(--irm-ink);font-size:20px;font-weight:600}/* Длинная таблица от 12 строк — высота ограничена, шапка на виду. */.irm-body .page-wrap .irm-tbl:has(>table tbody tr:nth-child(12)){max-height:72vh}/* Колонка денег — по правому краю, колонки галочек — по центру. */.irm-body .page-wrap .text-block.content .irm-tbl--money>table tr>:last-child{text-align:end;
  color:var(--irm-ink);font-weight:600;white-space:nowrap}.irm-body .page-wrap .text-block.content .irm-tbl--mark>table tr>:not(:first-child){
  text-align:center;min-width:132px}/* ——— Раскладка колонок (ORG-SITES-130, 28.09.2026) ———
   Таблица идёт во всю ширину карточки (Антон 25.09.2026), и браузер раздавал
   лишние 500 px первому столбцу: «80×40 см» и «5 см» расходились на полполосы,
   глаз терял строку. Свободное место отдаём одной пружине — первому столбцу, —
   данные держатся группой у правого края, как цена в прайсе. Значение
   последнего столбца везде по правому краю: одна логика чтения на все
   таблицы, включая двухколоночные характеристики. *//* Таблица остаётся во всю ширину карточки (Антон 25.09.2026), а строку держат
   три вещи: первому столбцу отведено 40 % — остальное делится поровну, так что
   колонки не расползаются; между колонками тонкая линия; строка под курсором
   подсвечена. Без линий на полосе 1340 px «80×40 см» и «5 см» читались как
   разные строки. */.irm-body .page-wrap .text-block.content .irm-tbl>table tr>:first-child{width:40%}.irm-body .page-wrap .text-block.content .irm-tbl>table tr>:not(:first-child){
  white-space:nowrap;border-inline-start:1px solid var(--irm-line)}.irm-body .page-wrap .text-block.content .irm-tbl:not(.irm-tbl--mark)>table tr>:last-child{
  text-align:end}/* Характеристики «свойство → значение»: колонок всего две, и значение у
   правого края уезжало от своего свойства на полполосы. Держим его слева
   у разделителя, а свойству отдаём треть. */.irm-body .page-wrap .text-block.content .irm-tbl:not(:has(>table tr>:nth-child(3)))>table tr>:first-child{
  width:34%}.irm-body .page-wrap .text-block.content .irm-tbl:not(:has(>table tr>:nth-child(3)))>table tr>:last-child{
  text-align:start;white-space:normal}/* Строка под курсором подсвечивается — на широкой таблице это и есть
   «линейка», которую иначе ведут пальцем по экрану. */.irm-body .page-wrap .text-block.content .irm-tbl>table tbody tr:hover>*{
  background:var(--irm-accent-soft)}/* ——— Прайс секциями .prl-* — строка «название · пунктир · цена».
   На полосе 1300 px глаз терял, какая цена к какой работе. Пунктир — второй
   столбец сетки псевдоэлементом строки, разметку не трогаем. */.irm-body .page-wrap .prl-lead{max-width:781px;margin:0 0 18px;font-size:16px;line-height:1.55;
  color:var(--irm-mut)}.irm-body .page-wrap .prl-sec{margin:0 0 20px;border-radius:var(--irm-r-m);overflow:hidden;
  background:var(--irm-surface);box-shadow:inset 0 0 0 1px var(--irm-line)}.irm-body .page-wrap .prl-sec-h{margin:0;padding:12px 18px;background:var(--irm-tile);
  font-size:18px;line-height:1.3;font-weight:600;color:var(--irm-ink);border-left:0}.irm-body .page-wrap .prl-row{display:grid;grid-template-columns:auto minmax(24px,1fr) auto;
  align-items:baseline;gap:0 12px;padding:12px 18px;background:transparent;font-size:16px}.irm-body .page-wrap .prl-row+.prl-row{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .page-wrap .prl-row::after{content:"";grid-column:2;align-self:center;height:0;
  border-bottom:2px dotted var(--irm-line);translate:0 -3px}.irm-body .page-wrap .prl-nm{grid-column:1;flex:none;font-size:16px;line-height:1.45;
  color:var(--irm-ink-2)}.irm-body .page-wrap .prl-pr{grid-column:3;flex:none;font-size:16px;font-weight:600;
  color:var(--irm-ink);white-space:nowrap;font-variant-numeric:tabular-nums}/* Прайс списком .irm-seo__price — та же строка с пунктиром в своей рамке.
   🪤 Правила карточки для списков весят 0,4,1 и иначе перебивают — список
   уезжал вправо на 24 px и разъезжался по высоте. */.irm-body .page-wrap .text-block.content .irm-seo__price{margin:0 0 20px;padding:0;list-style:none;
  border-radius:var(--irm-r-m);background:var(--irm-surface);
  box-shadow:inset 0 0 0 1px var(--irm-line);overflow:hidden}.irm-body .page-wrap .text-block.content .irm-seo__price li{display:grid;
  grid-template-columns:auto minmax(24px,1fr) auto;align-items:baseline;gap:0 12px;
  margin:0;padding:9px 18px;list-style:none;font-size:16px;line-height:1.45}.irm-body .page-wrap .text-block.content .irm-seo__price li+li{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .page-wrap .text-block.content .irm-seo__price li::after{content:"";grid-column:2;
  align-self:center;height:0;border-bottom:2px dotted var(--irm-line);translate:0 -3px}/* Строка без цены — одним столбцом, пунктир не нужен. */.irm-body .page-wrap .text-block.content .irm-seo__price li:not(:has(.irm-seo__v)){
  grid-template-columns:minmax(0,1fr)}.irm-body .page-wrap .text-block.content .irm-seo__price li:not(:has(.irm-seo__v))::after{content:none}.irm-body .page-wrap .irm-seo__n{grid-column:1;color:var(--irm-ink-2)}.irm-body .page-wrap .irm-seo__v{grid-column:3;color:var(--irm-ink);font-weight:600;
  white-space:nowrap;font-variant-numeric:tabular-nums;text-align:end}

/* Телефон: пунктир снимаем, цена уходит под название, кегль 16 px. */
@media(max-width:836px){/* Правый край таблицы растворяется — видно, что её листают вбок. */.irm-body .page-wrap .irm-tbl{margin-bottom:18px;border-radius:var(--irm-r-s);
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent);
    mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent)}.irm-body .page-wrap .text-block.content .irm-tbl>table{font-size:16px}.irm-body .page-wrap .text-block.content .irm-tbl>table th,.irm-body .page-wrap .text-block.content .irm-tbl>table td{padding:11px 13px}.irm-body .page-wrap .text-block.content .irm-tbl>table td{font-size:16px;line-height:1.4}.irm-body .page-wrap .text-block.content .irm-tbl>table th{font-size:16px}.irm-body .page-wrap .text-block.content .irm-tbl>table tbody tr:last-child:has(b,strong)>td{
    font-size:18px}.irm-body .page-wrap .prl-sec-h{padding:12px 14px;font-size:18px}/* 🪤 На 390 строка «название · цена» в два столбца не живёт: длинная цена
     съедает ширину и наезжает на название. Кладём цену под название. */.irm-body .page-wrap .prl-row,.irm-body .page-wrap .text-block.content .irm-seo__price li{display:block;
    padding:12px 14px;font-size:16px}.irm-body .page-wrap .prl-row::after,.irm-body .page-wrap .text-block.content .irm-seo__price li::after{content:none}.irm-body .page-wrap .prl-nm,.irm-body .page-wrap .irm-seo__n{display:block;font-size:16px}.irm-body .page-wrap .prl-pr,.irm-body .page-wrap .irm-seo__v{display:block;margin-top:3px;
    font-size:16px;white-space:normal;text-align:start}.irm-body .page-wrap .prl-lead{font-size:16px}
}/* Вступление под H1 идёт во всю полосу — так попросил Антон 26.09.2026
   («пускай строка тянется на всю полосу»). Мера строки остаётся только
   у текста раздела под витриной. */.irm-body .page-wrap .irm-cat>.irm-intro,.irm-body .page-wrap .irm-intro.irm-sh{max-width:none}/* 🪤 Подзаголовок прайса — это <p>, и общее наследование кегля (0,4,0)
   перебивало его правило (0,3,0): секции сливались со строками. */.irm-body .page-wrap .text-block.content .prl-sec-h{font-size:18px}/* ═══════ Текстовые карточки .irm-tc (ORG-SITES-130, 28.09.2026) ═══════
   Антон прислал два снимка бенто с главной: «вот такие размещения текста мне
   нравятся, таких же побольше». Семья одна: белая карточка держит заголовок и
   абзацы, меняется только то, как она делит место со снимком и врезками.
   Мера строки внутри карточки ~62 знака — читается без усилия, поэтому
   широкая карточка делит текст на две колонки, а не тянет строку на 1300 px. */.irm-body .irm-tcg{display:grid;gap:18px}.irm-body .irm-tcg--1{grid-template-columns:minmax(0,1fr)}.irm-body .irm-tcg--2{grid-template-columns:repeat(2,minmax(0,1fr))}.irm-body .irm-tcg--3{grid-template-columns:repeat(3,minmax(0,1fr))}.irm-body .irm-tcg--4{grid-template-columns:repeat(4,minmax(0,1fr))}.irm-body .irm-tcg--kpi{grid-template-columns:repeat(4,minmax(0,1fr))}.irm-body .irm-tc{display:flex;flex-direction:column;gap:11px;padding:28px 31px;
  border-radius:var(--irm-r-l);background:var(--irm-surface);box-shadow:var(--irm-sh-1);
  overflow:hidden}.irm-body .irm-tc h2{margin:0 0 2px;font-size:22px;line-height:1.2;letter-spacing:-.015em;
  color:var(--irm-ink)}.irm-body .irm-tc h3{margin:0 0 2px;font-size:18px;line-height:1.25;color:var(--irm-ink)}.irm-body .irm-tc p{margin:0;font-size:16px;line-height:1.55;color:var(--irm-ink-2);text-wrap:pretty}.irm-body .irm-tc p+p{margin-top:9px}/* Снимок полосой над текстом: пропорция 21:9, поля карточки снимаем. */.irm-body .irm-tc--top{padding:0;gap:0}.irm-body .irm-tc--top>img{width:100%;aspect-ratio:3/1;object-fit:cover;display:block}.irm-body .irm-tc--top>div{display:flex;flex-direction:column;gap:11px;padding:26px 31px 31px}/* Снимок сбоку: 1 : 1,618 — фото держит высоту текста, не растягивает карточку. */.irm-body .irm-tc--side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.618fr);
  gap:0;padding:0;align-items:stretch}/* 🪤 Снимок в своей колонке не должен задавать высоту карточки: с `height:100%`
   строка всё равно считалась по природным пропорциям файла, и рядом с коротким
   текстом карточка вырастала на полтора экрана. Кладём его absolute внутрь
   ячейки — высоту держит текст (минимум 240 px). */.irm-body .irm-tc--side>.irm-tc__pic{position:relative;display:block;min-height:240px}.irm-body .irm-tc--side>.irm-tc__pic img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block}.irm-body .irm-tc--side>div{display:flex;flex-direction:column;gap:11px;padding:28px 31px}.irm-body .irm-tc--mirror>.irm-tc__pic{order:2}/* Широкая карточка: текст в две колонки, строка остаётся читаемой. */.irm-body .irm-tc--wide{padding:31px 35px}.irm-body .irm-tc__cols{columns:2;column-gap:53px}.irm-body .irm-tc__cols p{break-inside:avoid;margin:0 0 13px}/* Текст и факты: рассказ и плитка «свойство — значение» на одной строке. */.irm-body .irm-tc--facts{display:grid;grid-template-columns:minmax(0,1.618fr) minmax(0,1fr);
  gap:35px;align-items:start;padding:31px 35px}.irm-body .irm-tc--facts>div{display:flex;flex-direction:column;gap:11px}.irm-body .irm-tc--facts dl{display:grid;gap:0;margin:0;padding:4px 20px;border-radius:var(--irm-r-m);
  background:var(--irm-tile)}.irm-body .irm-tc--facts dl>div{display:flex;justify-content:space-between;align-items:baseline;
  gap:18px;padding:11px 0}.irm-body .irm-tc--facts dl>div+div{box-shadow:0 -1px 0 var(--irm-line)}.irm-body .irm-tc--facts dt{margin:0;font-size:16px;color:var(--irm-ink-2)}.irm-body .irm-tc--facts dd{margin:0;font-size:16px;font-weight:600;color:var(--irm-ink);text-align:end}/* Шаги: номер в кружке, метка и пояснение. */.irm-body .irm-tc--steps{padding:31px 35px}.irm-body .irm-tc--steps ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;
  margin:9px 0 0;padding:0;list-style:none;counter-reset:tcs}.irm-body .irm-tc--steps li{counter-increment:tcs;display:grid;grid-template-columns:34px minmax(0,1fr);
  gap:9px 13px;align-content:start}.irm-body .irm-tc--steps li::before{content:counter(tcs);grid-column:1;display:grid;place-items:center;
  width:34px;height:34px;border-radius:50%;background:var(--irm-accent-soft);
  color:var(--irm-accent);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.irm-body .irm-tc--steps li b{grid-column:2;align-self:center;font-size:18px;font-weight:600}.irm-body .irm-tc--steps li p{grid-column:1/-1}/* Цифры: крупное число и подпись под ним. */.irm-body .irm-tc--kpi{gap:4px;padding:24px 26px}.irm-body .irm-tc--kpi b{font-size:32px;line-height:1.1;letter-spacing:-.025em;color:var(--irm-accent);
  font-variant-numeric:tabular-nums}.irm-body .irm-tc--kpi p{font-size:16px}/* Цитата: акцентная полоса слева, скругления с этой стороны не нужно. */.irm-body .irm-tc--quote{gap:13px;padding:28px 35px;border-radius:0 var(--irm-r-l) var(--irm-r-l) 0;
  border-left:3px solid var(--irm-accent);background:var(--irm-accent-soft);box-shadow:none}.irm-body .irm-tc--quote p{max-width:66ch;font-size:20px;line-height:1.5;color:var(--irm-ink)}.irm-body .irm-tc--quote span{font-size:14px;color:var(--irm-mut)}/* Карточка с действием: текст слева, кнопка у правого края. */.irm-body .irm-tc--cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:35px;align-items:center;
  padding:28px 35px}.irm-body .irm-tc--cta>div{display:flex;flex-direction:column;gap:9px}.irm-body .irm-tc--cta p{max-width:66ch}.irm-body .irm-tc--sm{gap:7px;padding:24px 26px}

@media(max-width:1298px){.irm-body .irm-tcg--3,.irm-body .irm-tcg--4,.irm-body .irm-tcg--kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.irm-body .irm-tc--steps ol{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:836px){.irm-body .irm-tcg--2,.irm-body .irm-tcg--3,.irm-body .irm-tcg--4,.irm-body .irm-tcg--kpi{grid-template-columns:minmax(0,1fr)}.irm-body .irm-tc,.irm-body .irm-tc--wide,.irm-body .irm-tc--facts,.irm-body .irm-tc--steps,.irm-body .irm-tc--cta{padding:22px 20px}.irm-body .irm-tc--side,.irm-body .irm-tc--facts,.irm-body .irm-tc--cta{grid-template-columns:minmax(0,1fr)}.irm-body .irm-tc--side{padding:0}.irm-body .irm-tc--side>.irm-tc__pic{min-height:0;aspect-ratio:16/9}.irm-body .irm-tc--mirror>.irm-tc__pic{order:0}.irm-body .irm-tc--side>div{padding:22px 20px}.irm-body .irm-tc__cols{columns:1}.irm-body .irm-tc--steps ol{grid-template-columns:minmax(0,1fr)}.irm-body .irm-tc--quote{padding:22px 20px}.irm-body .irm-tc--quote p{font-size:18px}.irm-body .irm-tc--cta .irm-btn{width:100%}
}/* ——— Страница «Скидки»: реестр предложений (ORG-SITES-130, 28.09.2026) ———
   Разметку и файл `iritual/css/iri-skidki.css` печатает родительская тема
   (ORG-V88-985) — он работает и на бою, поэтому не трогаем его, а перекрываем
   здесь: кегли из общей шкалы, радиусы 10/14/20, палитра «Маркета» вместо
   старых #645a8f и #f66467, рамки заменены плиткой и тенью. */.irm-body .page-wrap .iri-akc-top{display:grid;grid-template-columns:240px minmax(0,1fr);
  align-items:stretch;margin:0 0 26px;border:0;border-radius:var(--irm-r-l);overflow:hidden;
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .page-wrap .iri-akc-top__sum{display:flex;flex-direction:column;justify-content:center;
  gap:7px;padding:26px 28px;background:var(--irm-accent);color:#fff;text-align:start}.irm-body .page-wrap .iri-akc-top__sum b{font-size:48px;line-height:1.05;letter-spacing:-.03em}.irm-body .page-wrap .iri-akc-top__sum span{margin:0;font-size:16px;line-height:1.4;opacity:.92}.irm-body .page-wrap .iri-akc-top__txt{padding:26px 28px;font-size:16px;line-height:1.55;
  color:var(--irm-ink-2)}.irm-body .page-wrap .iri-akc-top__txt strong{color:var(--irm-accent)}.irm-body .page-wrap .iri-akc-top__due{margin-top:15px;font-size:16px;line-height:1.45;
  color:var(--irm-ink-2)}.irm-body .page-wrap .iri-akc-top__due i{margin-right:11px;padding:6px 13px;
  border-radius:var(--irm-r-s);background:var(--irm-sale);color:#fff;font-size:16px;
  line-height:1.3;font-weight:600}.irm-body .page-wrap .iri-akc{margin:0 0 26px;border-top:0}.irm-body .page-wrap .iri-akc__row{grid-template-columns:72px minmax(0,1fr) 180px;gap:4px 22px;
  padding:22px 26px;margin-bottom:11px;border-bottom:0;border-radius:var(--irm-r-m);
  background:var(--irm-surface);box-shadow:var(--irm-sh-1)}.irm-body .page-wrap .iri-akc__num{font-size:32px;line-height:1.1;font-weight:700;
  color:var(--irm-accent-soft-ink,#bdb7d6);font-variant-numeric:tabular-nums}.irm-body .page-wrap .iri-akc__name{margin:0 0 7px;font-size:20px;line-height:1.3;font-weight:600;
  color:var(--irm-ink)}.irm-body .page-wrap .iri-akc__desc{font-size:16px;line-height:1.55;color:var(--irm-ink-2)}.irm-body .page-wrap .iri-akc__val{font-size:40px;line-height:1.05;color:var(--irm-ink);
  font-variant-numeric:tabular-nums}.irm-body .page-wrap .iri-akc__val u{margin-bottom:4px;font-size:14px;letter-spacing:.06em;
  color:var(--irm-mut)}.irm-body .page-wrap .iri-akc__val em{font-size:26px;color:var(--irm-mut)}.irm-body .page-wrap .iri-akc__val--upto{color:var(--irm-sale)}.irm-body .page-wrap .iri-akc__gift{font-size:16px;line-height:1.4;color:var(--irm-accent)}.irm-body .page-wrap .iri-akc .iri-akc__foot{margin:9px 0 0;padding:9px 0 0;font-size:14px;
  line-height:1.45;color:var(--irm-mut);border-top:1px solid var(--irm-line)}.irm-body .page-wrap .iri-akc-note{margin:0 0 26px;padding:20px 26px;border:0;
  border-radius:var(--irm-r-m);background:var(--irm-tile)}.irm-body .page-wrap .iri-akc-note h2{margin:0 0 7px;font-size:20px;line-height:1.3;
  color:var(--irm-ink)}.irm-body .page-wrap .iri-akc-note p{font-size:16px;line-height:1.55;color:var(--irm-ink-2)}/* Плашка со скидкой на карточке товара — из того же файла. */.irm-body .page-wrap .iri-offer__terms{font-size:14px !important;line-height:1.45 !important;
  color:var(--irm-mut) !important}.irm-body .page-wrap .iri-offer-note{margin:0 0 18px;padding:15px 20px;border:0;
  border-left:3px solid var(--irm-accent);border-radius:0 var(--irm-r-s) var(--irm-r-s) 0;
  background:var(--irm-accent-soft)}.irm-body .page-wrap .iri-offer-note__head{font-size:16px;line-height:1.45;color:var(--irm-ink)}.irm-body .page-wrap .iri-offer-note__head b{color:var(--irm-accent)}.irm-body .page-wrap .iri-offer-note__list li{font-size:14px;line-height:1.45;color:var(--irm-ink-2)}.irm-body .page-wrap .iri-offer-note__price{margin-top:11px;font-size:16px;line-height:1.45}.irm-body .page-wrap .iri-offer-note__price b{font-size:20px;color:var(--irm-accent)}

@media(max-width:836px){.irm-body .page-wrap .iri-akc-top{grid-template-columns:minmax(0,1fr)}.irm-body .page-wrap .iri-akc-top__sum{padding:20px}.irm-body .page-wrap .iri-akc-top__sum b{font-size:40px}.irm-body .page-wrap .iri-akc-top__txt{padding:20px}.irm-body .page-wrap .iri-akc__row{grid-template-columns:52px minmax(0,1fr);padding:20px}.irm-body .page-wrap .iri-akc__val{grid-column:2;text-align:start;font-size:32px}
}/* 🪤 Общее наследование кегля внутри карточки контента весит 0,4,0 и перебивало
   правила выше (0,3,1): «17 %» в плашке садилось до 16 px. Те места, где кегль
   задан осознанно, повторяем через `.text-block.content`. */.irm-body .page-wrap .text-block.content .iri-akc-top__sum b{font-size:48px;line-height:1.05}.irm-body .page-wrap .text-block.content .iri-akc-top__sum span{font-size:16px}.irm-body .page-wrap .text-block.content .iri-akc-top__due i{font-size:16px;font-weight:600}.irm-body .page-wrap .text-block.content .iri-akc__num{font-size:32px}.irm-body .page-wrap .text-block.content .iri-akc__name{font-size:20px}.irm-body .page-wrap .text-block.content .iri-akc__val{font-size:40px}.irm-body .page-wrap .text-block.content .iri-akc__val u{font-size:14px}.irm-body .page-wrap .text-block.content .iri-akc__val em{font-size:26px}.irm-body .page-wrap .text-block.content .iri-akc-note h2{font-size:20px}.irm-body .page-wrap .text-block.content .iri-offer-note__price b{font-size:20px}
@media(max-width:836px){.irm-body .page-wrap .text-block.content .iri-akc-top__sum b{font-size:40px}.irm-body .page-wrap .text-block.content .iri-akc__val{font-size:32px}
}/* Главное фото на карточках остальных товаров (цоколи, ограды, вазы, таблички…)
   — тоже без внутреннего отступа (ORG-SITES-149, Антон 28.09.2026). */.irm-body .product>.description>.img-wrap{padding:0}.irm-body .product>.description>.img-wrap>img{width:100%;height:100%;object-fit:contain}/* Прайс списком — во всю ширину, как текст над ним, без отступа списка слева
   (ORG-SITES-149): рамка была 900 px, названия начинались на 40 px правее. */.irm-body .page-wrap .text-block.content ul.irm-seo__price{max-width:none;width:100%;padding:0;margin-inline:0;grid-column:1/-1}/* Прайс — табличным видом: линии между строками, без пунктира от названия к
   цене (Антон 28.09.2026: пунктир без линий — «стало хуже, лучше убрать и
   оставить табличный формат», ORG-SITES-149). */.irm-body .page-wrap .text-block.content .irm-seo__price li::after{content:none}.irm-body .page-wrap .text-block.content .irm-seo__price li{grid-template-columns:minmax(0,1fr) auto;padding:11px 18px}/* Таблицы и прайсы в тексте не прилипают к заголовку и к фото под ними
   (Антон 28.09.2026, ORG-SITES-149): 14 px сверху, 24 px снизу. */.irm-body .page-wrap .text-block.content :is(ul.irm-seo__price,.irm-body .irm-tbl){margin-top:14px;margin-bottom:24px}.irm-body .page-wrap .text-block.content :is(h2,h3,.h2_new,.h3_new)+:is(ul.irm-seo__price,.irm-body .irm-tbl){margin-top:14px}/* Заголовки — насыщенностью как «Наши работы» и «Отзывы» (400), а не 600/700
   (Антон 28.09.2026: «в заголовках в тексте цвет очень чёрный… брать как у
   „Наших работ“; H1 тоже не такой чёрный», ORG-SITES-149). Цвет прежний —
   чёрным казался полужирный: у Tahoma нет 600, и он рисует 700. */.irm-body .page-wrap .text-block :is(h2,h3,h4,.h2_new,.h3_new,.h4_new,.zaglav2),.irm-body .page-wrap>:is(h2,h3,.h2_new,.h3_new),.irm-body .page-wrap .irm-seo.text-block.content h2,.irm-body h1,.irm-body .page-wrap h1,.irm-body .page-wrap .position>h1,.irm-body .page-wrap .irm-seo.text-block.content :is(h3,.h3_new,.h4_new){font-weight:400!important}/* Горизонтальные меню: при наведении — мягкая сиреневая пилюля под ссылкой,
   как отклик у «Выезда менеджера» (Антон 28.09.2026, ORG-SITES-149). Поля
   пилюли погашены отрицательными отступами — строки не сдвигаются. */.irm-body .irm-top nav a{padding:4px 10px;margin:-4px -10px;border-radius:999px;transition:color .15s,background-color .15s}.irm-body .irm-top nav a:hover{color:var(--irm-accent);background:var(--irm-accent-soft)}.irm-body .irm-quick a{padding:0 12px;margin:0 -12px;border-radius:999px;line-height:40px;transition:color .15s,background-color .15s}.irm-body .irm-quick a:hover{color:var(--irm-accent);background:var(--irm-accent-soft)}.irm-body .irm-quick a.irm-quick__sale:hover{color:var(--irm-sale)!important;background:var(--irm-sale-bg)}.irm-body .irm-quick a:focus-visible,.irm-body .irm-top nav a:focus-visible{outline:2px solid var(--irm-accent);outline-offset:1px}/* Окно Magnific Popup при загрузке: вместо английского «Loading…» у левого
   края — крутящийся значок по центру экрана (ORG-SITES-149). */.mfp-preloader{position:fixed!important;top:50%!important;left:50%!important;right:auto!important;width:36px!important;height:36px!important;
  margin:-18px 0 0 -18px!important;font-size:0!important;color:transparent!important;border-radius:50%;
  border:3px solid rgba(255,255,255,.35);border-top-color:#fff;animation:irm-spin .8s linear infinite}.mfp-preloader a{display:none}
@keyframes irm-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.mfp-preloader{animation:none}}/* 🪤 В облегчённом legacy.css нет правила Magnific «окно готово — заглушку
   спрятать», и «Loading…» висел у левого края поверх открытой формы. */.mfp-s-ready .mfp-preloader,.mfp-s-error .mfp-preloader{display:none!important}/* Адрес и отзывы в верхней строке — подсветка как у ссылок меню, чтобы было видно,
   что на них можно нажать; «М» в цвет Сокольнической линии (Антон 28.09.2026, ORG-SITES-153). */.irm-body .irm-top__i{padding:4px 10px;margin:-4px -10px;border-radius:999px;transition:color .15s,background-color .15s}.irm-body .irm-top__i:hover{color:var(--irm-accent);background:var(--irm-accent-soft)}.irm-body .irm-top__i:hover b{color:var(--irm-accent)}.irm-body .irm-top__i:focus-visible{outline:2px solid var(--irm-accent);outline-offset:1px}.irm-body .irm-metro{display:inline-grid;place-items:center;flex:none;width:17px;height:17px;margin-inline-end:-2px;border-radius:50%;background:#ef161e;color:#fff;font-size:11px;font-weight:700;line-height:1}/* Цвет текста по умолчанию — тёмно-серый темы, а не чёрный браузера (Антон 28.09.2026, ORG-SITES-153). */body.irm-body{color:var(--irm-ink)}

/* ═══ Телефон: выпадашки фильтров и «Написать» — шторкой снизу (Антон 28.09.2026, ORG-SITES-153) ═══
   🪤 Фильтры стоят в горизонтальной ленте с прокруткой: список открывался под
   кнопкой и уезжал вправо на 65–655 px (390 и 360). На телефоне список встаёт
   снизу во всю ширину, фон затемняется; касание мимо закрывает. */
@media(max-width:836px){.irm-body .irm-chipbox[open]>.irm-chipmenu{position:fixed;inset:auto 10px calc(10px + env(safe-area-inset-bottom,0px)) 10px;top:auto;
  min-width:0;max-height:70vh;overflow:auto;z-index:1031;padding:10px;border-radius:var(--irm-r-xl);box-shadow:0 -8px 40px rgba(28,26,38,.22)}.irm-body .irm-chipbox[open]>.irm-chipmenu a{padding:14px 16px;font-size:16px}.irm-body .irm-chipbox[open]>summary:before{content:"";position:fixed;inset:0;z-index:1030;background:rgba(28,26,38,.45);cursor:default}
}.irm-body .irm-sheet[hidden]{display:none}.irm-body .irm-sheet{position:fixed;inset:0;z-index:1030;display:flex;align-items:flex-end;background:rgba(28,26,38,.45)}.irm-body .irm-sheet__in{width:100%;margin:10px;margin-bottom:calc(10px + env(safe-area-inset-bottom,0px));padding:18px 14px 12px;border-radius:var(--irm-r-xl);
  background:var(--irm-surface);box-shadow:0 -8px 40px rgba(28,26,38,.22)}.irm-body .irm-sheet__t{margin:0 4px 10px;font-size:18px;font-weight:600;color:var(--irm-ink)}.irm-body .irm-sheet__in a{display:flex;align-items:center;gap:14px;min-height:56px;padding:6px 8px;border-radius:var(--irm-r-m);color:var(--irm-ink);font-size:16px}.irm-body .irm-sheet__in a:active,.irm-body .irm-sheet__in a:hover{background:var(--irm-accent-soft)}.irm-body .irm-sheet__in a>svg,.irm-body .irm-sheet__in a>.irm-sheet__i{flex:none;width:40px;height:40px}.irm-body .irm-sheet__i{display:grid;place-items:center;border-radius:50%;background:var(--irm-accent-soft);color:var(--irm-accent)}.irm-body .irm-sheet__i svg{width:22px;height:22px}.irm-body .irm-sheet__x{display:block;width:100%;margin-top:6px;min-height:48px;border:0;border-radius:var(--irm-r-m);background:var(--irm-tile);color:var(--irm-ink-2);font:inherit;font-size:16px;cursor:pointer}html.irm-sheet-open{overflow:hidden}.irm-body .irm-chipmenu__t{display:none}
@media(max-width:836px){.irm-body .irm-chipmenu__t{display:block;margin:6px 16px 6px;font-size:18px;font-weight:600;color:var(--irm-ink)}}.irm-body .irm-sheet__in a{text-decoration:none}.irm-body .irm-sheet a[href^="tel:"] .irm-sheet__i svg{color:var(--irm-accent);fill:currentColor}/* 🪤 Подсветка крайних пунктов обрезалась (снимок Антона 29.09.2026, «Скидки»):
   у пункта отступ −12/−10 px, а строка режет всё за своим краем (overflow:hidden).
   Даём строке внутренний отступ на ту же величину и возвращаем его внешним —
   пункты стоят на прежних местах, подсветка помещается целиком. */.irm-body .irm-quick__l{padding-inline:12px;margin-inline-start:-12px}.irm-body .irm-top nav{padding:4px 10px;margin-block:-4px;margin-inline-start:-10px}

/* Название в карточке каталога — цель касания не меньше 38 px на телефоне (ORG-SITES-153). */
@media(max-width:836px){.irm-body .irm-pc__name{padding-block:4px;margin-block:-4px}}/* Случайные вставки под кэшем страниц (ORG-SITES-153): сервер отдаёт запас,
   браузер перемешивает порядок, здесь видны только первые. */.irm-body .irm-rvs__in[data-irm-show="3"]>.irm-rv:nth-of-type(n+4){display:none}.irm-body .irm-others+.irm-catwrap .irm-grid>.irm-pc:nth-child(n+13){display:none}/* Случайные витрины-вставки: видны первые N из запаса (inc/catalog.php, ORG-SITES-153). */.irm-body .irm-catwrap[data-irm-show="6"] .irm-grid>.irm-pc:nth-child(n+7){display:none}.irm-body .irm-catwrap[data-irm-show="12"] .irm-grid>.irm-pc:nth-child(n+13){display:none}.irm-body .irm-catwrap[data-irm-show="18"] .irm-grid>.irm-pc:nth-child(n+19){display:none}.irm-body .irm-catwrap[data-irm-show="24"] .irm-grid>.irm-pc:nth-child(n+25){display:none}.irm-body .irm-catwrap[data-irm-show="30"] .irm-grid>.irm-pc:nth-child(n+31){display:none}.irm-body .irm-catwrap[data-irm-show="36"] .irm-grid>.irm-pc:nth-child(n+37){display:none}.irm-body .irm-catwrap[data-irm-show="42"] .irm-grid>.irm-pc:nth-child(n+43){display:none}.irm-body .irm-catwrap[data-irm-show="48"] .irm-grid>.irm-pc:nth-child(n+49){display:none}.irm-body .irm-catwrap[data-irm-show="54"] .irm-grid>.irm-pc:nth-child(n+55){display:none}.irm-body .irm-catwrap[data-irm-show="60"] .irm-grid>.irm-pc:nth-child(n+61){display:none}/* Остальные 14 типов карточек: «Установка», «Доставка», «Скидки» крупнее (Антон 29.09.2026, ORG-SITES-153). */.irm-body .product .radio .name,.irm-body .product .radio .price,.irm-body .product .radio .thickness{font-size:16px}.irm-body .product .result .checkbox .name,.irm-body .product .result .result-discount{font-size:16px}.irm-body .product .order .sel-list>.title,.irm-body .product .order .title{font-size:16px}/* Гравировка (артикулы U…, Y…): картинка 190×271 — чёрный квадрат с белыми
   полями сверху и снизу. Плитка квадратная, картинка по ширине — остаётся сам
   квадрат, без полей и подложки (Антон 29.09.2026, ORG-SITES-153). */.irm-body .irm-pc__pic:has(img[src*="/img/pam/u"]),.irm-body .irm-pc__pic:has(img[src*="/img/pam/y"]){aspect-ratio:1/1;padding:0;overflow:hidden;background:#000}.irm-body .irm-pc__pic:has(img[src*="/img/pam/u"]) img,.irm-body .irm-pc__pic:has(img[src*="/img/pam/y"]) img{object-fit:cover;object-position:center;mix-blend-mode:normal}.irm-body .irm-chipbox--on>.irm-chip{box-shadow:inset 0 0 0 1.5px var(--irm-accent)}.irm-body .irm-chipbox--on>.irm-chip b{font-weight:700}/* Гравировка: белая полоска в 1–2 px снизу — картинку чуть увеличиваем. */.irm-body .irm-pc__pic:has(img[src*="/img/pam/u"]) img,.irm-body .irm-pc__pic:has(img[src*="/img/pam/y"]) img{scale:1.03}/* 🪤 Колонки из текста записей стоят в сетке (ORG-SITES-116), а позднее правило
   «как у родителя» (ORG-SITES-146) задавало им ещё width:49 % и float — внутри
   ячейки сетки фото сжималось вдвое: 308 px в половине 620 (/tovary/gravirovka-s-vyezdom/,
   Антон 29.09.2026, ORG-SITES-153). В сетке ширину даёт ячейка. */.irm-body .page-wrap .text-block.content:has(>[class*="one_"])>[class*="one_"],.irm-body .page-wrap .text-block.content div:has(>[class*="one_"])>[class*="one_"]{width:auto;float:none;margin:0}/* Картинка с alignright/alignleft внутри колонки — не обтекание, а фото колонки:
   max-width 46 % сжимало её до 239 px в колонке 629 (13 страниц, ORG-SITES-153). */.irm-body .page-wrap .text-block.content [class*="one_"] :is(img.alignright,img.alignleft,.alignright img,.alignleft img),.irm-body .page-wrap .text-block.content [class*="one_"]>:is(.alignright,.alignleft){float:none;width:100%;max-width:100%;margin:0}

/* Строка разделов: «Часовни и Голгофы» должны помещаться (Антон 29.09.2026,
   ORG-SITES-153) — у плашки выезда прячем хвост «— домой или в офис» до 1600 px. */
@media(max-width:1599px){.irm-body .irm-quick .irm-visit:not(.irm-visit--m) small{display:none}}/* Два SEO-блока подряд стояли вплотную, у каждого скругление 28 px — на стыке
   «два овала» (снимок Антона 29.09.2026, /pamyatniki/voennym/, ORG-SITES-153).
   Соседние блоки — одна сплошная карточка: на стыке без скруглений и без тени. */.irm-body .page-wrap .irm-seo.text-block.content:has(+ .irm-seo.text-block.content){border-bottom-left-radius:0;border-bottom-right-radius:0;
  padding-bottom:8px;clip-path:inset(-40px -40px 0 -40px)}.irm-body .page-wrap .irm-seo.text-block.content + .irm-seo.text-block.content{border-top-left-radius:0;border-top-right-radius:0;
  margin-top:-1px;padding-top:20px;clip-path:inset(0 -40px -40px -40px)}.irm-body .page-wrap .irm-seo.text-block.content:has(+ .irm-seo.text-block.content) + .irm-seo.text-block.content:has(+ .irm-seo.text-block.content){clip-path:inset(0 -40px)}/* 🪤 Стык на дробном пикселе (3585,39 px) сглаживался — в строке просвечивал фон.
   Первый блок выпускает вниз белую полосу в 3 px поверх шва. */.irm-body .page-wrap .irm-seo.text-block.content:has(+ .irm-seo.text-block.content){position:relative;clip-path:inset(-40px -40px -3px -40px)}.irm-body .page-wrap .irm-seo.text-block.content:has(+ .irm-seo.text-block.content)::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;background:var(--irm-surface);z-index:1}/* Фото в карточке каталога — в своих пропорциях, во всю плитку, как в оригинале
   (снимки Антона 29.09.2026, ORG-SITES-153): плитка 1:1,16 с отступом 6 px
   ужимала памятник 190×271 до ~134 px в ширину. Гравировка (U…, Y…) — квадрат, выше. */.irm-body .irm-pc__pic:not(:has(img[src*="/img/pam/u"])):not(:has(img[src*="/img/pam/y"])){aspect-ratio:auto;padding:0}.irm-body .irm-pc__pic:not(:has(img[src*="/img/pam/u"])):not(:has(img[src*="/img/pam/y"])) img{position:static;inset:auto;display:block;
  width:100%;height:auto;object-fit:initial}/* Подложка шире по вертикали — памятник не прилипает к краям плитки; название
   крупнее, как в оригинале (Антон 29.09.2026, ORG-SITES-153). */.irm-body .irm-pc__pic:not(:has(img[src*="/img/pam/u"])):not(:has(img[src*="/img/pam/y"])){padding-block:14px}.irm-body .irm-pc__name{font-size:17px}
@media(max-width:836px){.irm-body .irm-pc__pic:not(:has(img[src*="/img/pam/u"])):not(:has(img[src*="/img/pam/y"])){padding-block:10px}.irm-body .irm-pc__name{font-size:15px}}/* Телефон в шапке: «+7 495» обычным, «507-65-60» полужирным, цвета прежние (Антон 29.09.2026). */.irm-body .irm-call__tel{font-weight:400}.irm-body .irm-call__tel b{font-weight:600}/* Остальные 14 типов: названия скидок тоже без жирного. */.irm-body .product .result .checkbox .name,.irm-body .product .result .checkbox.active .name,.irm-body .product .result .checkbox.selected .name{font-weight:400}/* Лента разделов над крошками — в полтора раза меньше ленты главной (Антон 29.09.2026). */.irm-body .irm-cats--top{margin-top:10px;margin-bottom:2px}.irm-body .irm-cats--top a{width:123px;font-size:14px}.irm-body .irm-cats--top span{width:112px;height:112px}.irm-body .irm-cats--top img{padding:9px}
@media(max-width:1298px){.irm-body .irm-cats--top a{width:110px}.irm-body .irm-cats--top span{width:99px;height:99px}.irm-body .irm-cats--top img{padding:7px}}
@media(max-width:836px){.irm-body .irm-cats--top{margin-top:6px}.irm-body .irm-cats--top a{width:84px;font-size:13px}.irm-body .irm-cats--top span{width:67px;height:67px}.irm-body .irm-cats--top img{padding:5px}}/* Иконки в выпадающем «Каталоге» — в полтора раза крупнее (Антон 29.09.2026). */.irm-body .irm-mi{width:48px;height:48px}.irm-body .irm-mi svg{width:33px;height:33px}.irm-body .irm-mg__t .irm-mi{width:54px;height:54px}.irm-body .irm-mg__t .irm-mi svg{width:38px;height:38px}/* Телефон в подвале — как в шапке: «+7 495» обычным, «507-65-60» полужирным (Антон 29.09.2026). */.irm-body .irm-ft .irm-tel{font-weight:400}.irm-body .irm-ft .irm-tel b{font-weight:600}/* Выпадающий «Каталог»: шрифт крупнее; у колонки с иконками заголовок «Каталог»
   убран — иконки начинаются сразу сверху (Антон 29.09.2026, ORG-SITES-153). */.irm-body .irm-mg__col--2>.irm-mg__t{display:none}.irm-body .irm-mg__col,.irm-body .irm-mg__col a{font-size:16px}.irm-body .irm-mg__t,.irm-body .irm-mg__col a.irm-mg__t{font-size:18px}/* Кнопка «Кабинет» — скрыта, пока нет самого кабинета. */.irm-body .irm-acts a.irm-acts__lk[hidden]{display:none!important}
