/* ============================================================
   04-pages — каталог, карточки, служебные страницы
   ============================================================ */

.pagehead{padding:8px 0 clamp(24px,3vw,40px);text-align:center}
.pagehead h1{margin-bottom:14px}
.pagehead__sub{max-width:760px;margin:0 auto;color:var(--ink-2);font-size:16.5px;line-height:1.62}
.pagehead--left{text-align:left}
.pagehead--left .pagehead__sub{margin-left:0}

/* ---------- Каталог ---------- */
.catalog__bar{
  position:sticky;top:var(--head-h);z-index:100;background:rgba(246,243,237,.96);
  backdrop-filter:blur(10px);padding:16px 0;border-bottom:1px solid var(--line);margin-bottom:28px;
}
.catalog__filters{display:flex;flex-direction:column;gap:12px}
.filter-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.filter-row__lbl{font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);min-width:96px}
.catalog__meta{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.catalog__count{font-size:14.5px;color:var(--ink-2);font-weight:600}
.catalog__count b{color:var(--ink)}
.catalog__sort{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.catalog__empty{text-align:center;padding:60px 20px;display:none}
.catalog__empty.is-show{display:block}
.catalog__empty .i{width:56px;height:56px;color:var(--ink-3);margin:0 auto 16px}
.pcard.is-hidden{display:none}

/* ---------- Карточка товара ---------- */
.product{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3.5vw,52px);margin-bottom:clamp(36px,4vw,64px)}
.gallery__main{border-radius:var(--r-lg);overflow:hidden;background:var(--bg-alt);aspect-ratio:4/3;margin-bottom:12px;position:relative}
.gallery__main img{width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}
.gallery__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gallery__thumb{border-radius:12px;overflow:hidden;aspect-ratio:4/3;border:2px solid transparent;cursor:pointer;background:var(--bg-alt);padding:0;transition:border-color var(--tr)}
.gallery__thumb img{width:100%;height:100%;object-fit:cover}
.gallery__thumb.is-active{border-color:var(--accent)}

.pinfo__top{display:flex;gap:11px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.pinfo h1{margin-bottom:14px}
.pinfo__sh{font-size:16px;color:var(--ink-2);line-height:1.62;margin-bottom:22px}
.pinfo__heat{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding:14px 18px;background:var(--bg-alt);border-radius:var(--r-sm)}
.pinfo__heat .meter{flex:1}
.pinfo__heat b{font-size:14px;white-space:nowrap}
.pricebox{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--sh-sm);margin-bottom:20px}
.pricebox__row{display:flex;align-items:baseline;gap:13px;flex-wrap:wrap;margin-bottom:6px}
.pricebox__price{font-size:clamp(30px,3.4vw,38px);font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pricebox__unit{font-size:15px;color:var(--ink-3);font-weight:600}
.pricebox__old{font-size:19px;color:var(--ink-3);text-decoration:line-through;font-variant-numeric:tabular-nums}
.pricebox__save{font-size:13.5px;font-weight:800;color:var(--danger);margin-bottom:18px}
.qty{display:flex;align-items:center;gap:0;border:2px solid var(--line);border-radius:12px;overflow:hidden;width:fit-content}
.qty__btn{width:44px;height:46px;border:none;background:var(--white);cursor:pointer;display:grid;place-items:center;color:var(--ink);transition:background var(--tr)}
.qty__btn:hover{background:var(--bg-alt);color:var(--accent)}
.qty__inp{width:66px;height:46px;border:none;text-align:center;font-weight:800;font-size:16px;font-variant-numeric:tabular-nums}
.qty__inp:focus{outline:none}
.pricebox__calc{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:18px 0}
.pricebox__total{font-size:15px;color:var(--ink-2);font-weight:600}
.pricebox__total b{font-size:24px;color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums;display:block}
.pricebox__btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pricebox__btns .btn--max{grid-column:1/-1}
.guarantees{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
.guarantee{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-2);line-height:1.45}
.guarantee .i{color:var(--deep);flex:0 0 auto;margin-top:1px}

.spectable{width:100%;font-size:15px}
.spectable td{padding:12px 0;border-bottom:1px dashed var(--line)}
.spectable td:first-child{color:var(--ink-3);width:45%}
.spectable td:last-child{font-weight:700;text-align:right}
.scores{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:24px}
.benefits{list-style:none;display:grid;gap:11px}
.benefits li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink-2)}
.benefits .i{color:var(--deep);flex:0 0 auto;margin-top:3px}

.aside-seo{background:var(--bg-alt);border-radius:var(--r-lg);padding:clamp(22px,3vw,36px);margin-top:36px}
.aside-seo h2{font-size:23px;margin-bottom:16px}

/* ---------- Услуги ---------- */
.scats{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:26px;justify-content:center}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.scard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;display:flex;flex-direction:column;gap:11px;transition:all var(--tr)}
.scard:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:transparent}
.scard.is-hidden{display:none}
.scard__cat{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--deep)}
.scard__title{font-size:16.5px;font-weight:700;line-height:1.35;color:var(--ink)}
.scard__title:hover{color:var(--accent)}
.scard__text{font-size:13.5px;color:var(--ink-2);line-height:1.55;flex:1}
.scard__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:13px;border-top:1px solid var(--line)}
.scard__price{font-weight:800;color:var(--accent);font-size:15.5px;font-variant-numeric:tabular-nums}

.service__top{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;align-items:start;margin-bottom:40px}
.service__box{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--sh-sm);position:sticky;top:calc(var(--head-h) + 20px)}
.service__price{font-size:30px;font-weight:800;color:var(--accent);margin-bottom:6px;font-variant-numeric:tabular-nums}
.service__incl{list-style:none;display:grid;gap:11px;margin:20px 0}
.service__incl li{display:flex;gap:11px;font-size:14.5px;color:var(--ink-2)}
.service__incl .i{color:var(--deep);flex:0 0 auto;margin-top:3px}

/* ---------- Прочие страницы ---------- */
.infogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.infocard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:24px}
.infocard__ico{width:46px;height:46px;border-radius:12px;background:var(--bg-alt);display:grid;place-items:center;color:var(--accent);margin-bottom:14px}
.infocard h3{font-size:17px;margin-bottom:8px}
.infocard p{font-size:14.5px;color:var(--ink-2);line-height:1.6}

.steps{counter-reset:st;display:grid;gap:18px}
.step{display:flex;gap:18px;align-items:flex-start;background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px}
.step__n{width:40px;height:40px;border-radius:11px;background:var(--ink);color:var(--amber);display:grid;place-items:center;font-weight:800;flex:0 0 auto}
.step h3{font-size:16.5px;margin-bottom:5px}
.step p{font-size:14.5px;color:var(--ink-2);line-height:1.6}

.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.counter b{display:block;font-size:clamp(30px,3.6vw,44px);font-weight:800;color:var(--accent);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.counter span{font-size:14px;color:var(--ink-2);font-weight:600}

.akcii{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.akcia{border-radius:var(--r-lg);padding:30px;color:#fff;position:relative;overflow:hidden;background:linear-gradient(150deg,var(--accent),#8A4520);box-shadow:var(--sh-md)}
.akcia:nth-child(2){background:linear-gradient(150deg,var(--deep),#1F4739)}
.akcia:nth-child(3){background:linear-gradient(150deg,#7A4A22,#4C2C11)}
.akcia:nth-child(4){background:linear-gradient(150deg,#2E3A35,#161E1A)}
.akcia h3{font-size:22px;margin-bottom:10px;color:#fff}
.akcia p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.88);margin-bottom:18px}
.akcia__tag{display:inline-block;padding:5px 13px;border-radius:99px;background:rgba(255,255,255,.2);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px}

.contacts__grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.ccard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;display:flex;gap:16px;align-items:flex-start;margin-bottom:14px}
.ccard__ico{width:46px;height:46px;border-radius:12px;background:var(--bg-alt);display:grid;place-items:center;color:var(--accent);flex:0 0 auto}
.ccard b{display:block;font-size:13px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;font-weight:800}
.ccard a,.ccard p{font-size:17px;font-weight:700;color:var(--ink);line-height:1.4}
.ccard a:hover{color:var(--accent)}

/* ---------- Города ---------- */
.cities__search{max-width:520px;margin:0 auto 30px}
.cities__group{margin-bottom:36px}
.cities__gtitle{font-size:20px;font-weight:800;margin-bottom:18px;padding-bottom:11px;border-bottom:2px solid var(--line);display:flex;align-items:center;gap:11px}
.cities__gtitle span{font-size:14px;color:var(--ink-3);font-weight:600}
.cities__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}
.citycard{display:flex;align-items:center;gap:11px;padding:12px 14px;background:var(--white);border:1px solid var(--line);border-radius:12px;transition:all var(--tr);color:var(--ink)}
.citycard:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--sh-sm);color:var(--accent)}
.citycard.is-hidden{display:none}
.citycard img,.citycard .crest-svg{width:30px;height:30px;object-fit:contain;flex:0 0 auto}
.citycard__n{font-size:14.5px;font-weight:700;line-height:1.25}
.citycard__r{font-size:11.5px;color:var(--ink-3);font-weight:600;display:block}

/* ---------- Корзина ---------- */
.cart__grid{display:grid;grid-template-columns:1.5fr .8fr;gap:32px;align-items:start}
.cartitem{display:grid;grid-template-columns:96px 1fr auto;gap:18px;padding:18px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:12px;align-items:center}
.cartitem__img{width:96px;height:76px;border-radius:10px;object-fit:cover;background:var(--bg-alt)}
.cartitem__t{font-weight:700;font-size:15.5px;margin-bottom:5px;display:block;color:var(--ink)}
.cartitem__p{font-size:13.5px;color:var(--ink-3)}
.cartitem__right{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.cartitem__sum{font-weight:800;font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cartitem__del{background:none;border:none;color:var(--ink-3);cursor:pointer;padding:4px;display:grid;place-items:center}
.cartitem__del:hover{color:var(--danger)}
.cartsum{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;position:sticky;top:calc(var(--head-h) + 20px)}
.cartsum__row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}
.cartsum__row--total{border:none;padding-top:16px;font-size:19px;font-weight:800}
.cartsum__row--total b{color:var(--accent);font-variant-numeric:tabular-nums}
.cart__empty{text-align:center;padding:60px 20px}
.cart__empty .i{width:64px;height:64px;color:var(--ink-3);margin:0 auto 18px}

/* ---------- Блог ---------- */
.bloggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.post{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;transition:all var(--tr)}
.post:hover{transform:translateY(-5px);box-shadow:var(--sh-lg)}
.post__media{aspect-ratio:16/9;overflow:hidden;background:var(--bg-alt)}
.post__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post:hover .post__media img{transform:scale(1.05)}
.post__body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.post__meta{display:flex;gap:12px;font-size:12px;color:var(--ink-3);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.post__title{font-size:17.5px;font-weight:700;line-height:1.35;color:var(--ink)}
.post__title:hover{color:var(--accent)}
.post__lead{font-size:14px;color:var(--ink-2);line-height:1.55;flex:1}
.article{max-width:820px;margin:0 auto}
.article__body{font-size:16.5px;line-height:1.8;color:var(--ink-2)}
.article__body h2{font-size:26px;margin:34px 0 14px;color:var(--ink)}
.article__body p{margin-bottom:17px}
.article__cta{background:var(--bg-alt);border-radius:var(--r-lg);padding:28px;margin-top:36px;text-align:center}

/* ---------- 404 ---------- */
.e404{text-align:center;padding:clamp(50px,8vw,110px) 0}
.e404__num{font-size:clamp(80px,14vw,160px);font-weight:800;line-height:1;color:var(--accent);letter-spacing:-.04em;margin-bottom:14px}
.e404__links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}

/* ---------- Быстрый просмотр ---------- */
.qv{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.qv__img{border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/3;background:var(--bg-alt)}
.qv__img img{width:100%;height:100%;object-fit:cover}
.qv h3{font-size:21px;margin-bottom:10px}
.qv__price{font-size:27px;font-weight:800;color:var(--accent);margin:14px 0;font-variant-numeric:tabular-nums}
.qv__spec{list-style:none;font-size:14px;color:var(--ink-2);display:grid;gap:7px;margin-bottom:18px}
.qv__spec li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:6px}

/* ---------- Политика ---------- */
.legal{max-width:820px;margin:0 auto;font-size:15.5px;line-height:1.75;color:var(--ink-2)}
.legal h2{font-size:22px;margin:30px 0 12px;color:var(--ink)}
.legal p,.legal li{margin-bottom:12px}
.legal ul{padding-left:22px;list-style:disc}
