/* ============================================================
   Внутренние страницы «Керамогранит 74» в дизайне прототипа 10:
   каталог и фильтры, карточки товара/коллекции/интерьера,
   личный кабинет, вход, правовые тексты, страницы ошибок.
   Подключается на всех страницах, поэтому здесь же живут
   блоки, общие для главной и каталога (интерьеры, галереи).
   ============================================================ */

/* ---------- каркас страницы ---------- */
.page{padding-bottom:clamp(70px,9vw,120px)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.78rem;color:var(--dim);
  padding:8px 0 22px}
.crumbs a:hover{color:var(--clay)}
.crumbs>*+*::before{content:"/";margin-right:8px;color:var(--faint)}
.crumbs span{color:var(--muted)}
.page-head{display:grid;gap:18px;padding-bottom:clamp(28px,4vw,46px)}
.page-head .row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.page-head h1{max-width:22ch}
.group-title{display:flex;align-items:baseline;gap:12px;font-size:clamp(1.5rem,2.6vw,2.2rem);
  font-weight:400;letter-spacing:-.04em;margin:clamp(46px,6vw,74px) 0 22px}
.group-title i{font-style:normal;font-size:.8rem;color:var(--dim);letter-spacing:0}
.group-title .more{margin-left:auto;font-size:.84rem;color:var(--clay)}

/* ---------- вкладки разделов ---------- */
.cat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.ctab{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;
  border:1px solid var(--line);font-size:.86rem;color:var(--muted);
  transition:background .25s,color .25s,border-color .25s,transform .3s var(--spring)}
.ctab:hover{transform:translateY(-2px);color:var(--ink);border-color:var(--line-2)}
.ctab.on{background:var(--clay);border-color:var(--clay);color:#fff}
.ctab i{font-style:normal;font-size:.74rem;opacity:.7}
.ctab.alt{margin-left:auto;color:var(--sand)}

/* ---------- сетка «фильтры + каталог» ---------- */
.cat-layout{display:grid;grid-template-columns:250px 1fr;gap:clamp(20px,3vw,40px);align-items:start}
/* min-width:0 — иначе панель сортировки задаёт колонке минимальную ширину и страница на телефоне
   становится шире экрана, а фиксированная шапка уезжает вправо */
.cat-layout>*{min-width:0}
@media(max-width:900px){.cat-layout{grid-template-columns:1fr}}
.filters{position:sticky;top:96px;display:grid;gap:2px;border:1px solid var(--line);
  background:var(--bg-2);padding:6px;border-radius:14px}
@media(max-width:900px){
  .filters{position:fixed;inset:0;z-index:210;border-radius:0;overflow-y:auto;padding:64px 18px 24px;
    transform:translateX(-100%);visibility:hidden;transition:transform .4s var(--ease),visibility .4s;top:0}
  .filters.open{transform:none;visibility:visible}
}
.filters-close{position:absolute;right:16px;top:16px;z-index:2;width:42px;height:42px;border-radius:50%;
  background:var(--bg-3);border:1px solid var(--line-2);color:var(--ink);display:grid;place-items:center;font-size:1.1rem}
.filters-close:hover{background:var(--clay);border-color:var(--clay);color:#fff}
.filters-toggle{display:none}
@media(max-width:900px){.filters-toggle{display:inline-flex}}
.facet-top{display:grid;gap:6px;padding:12px 12px 14px;border-bottom:1px solid var(--line)}
.facet{border-bottom:1px solid var(--line)}
.facet:last-of-type{border-bottom:0}
.facet summary{display:flex;align-items:center;gap:8px;padding:13px 12px;cursor:pointer;
  font-size:.86rem;font-weight:500;list-style:none}
.facet summary::-webkit-details-marker{display:none}
.facet summary::after{content:"+";margin-left:auto;color:var(--dim);font-size:1rem;transition:transform .3s}
.facet[open] summary::after{content:"−"}
.facet summary b{font-weight:500;font-size:.7rem;color:#fff;background:var(--clay);
  border-radius:999px;padding:1px 8px}
.facet-list{display:grid;gap:2px;max-height:260px;overflow-y:auto;padding:0 12px 12px}
.chk{display:flex;align-items:center;gap:9px;font-size:.85rem;color:var(--muted);cursor:pointer;
  padding:5px 6px;border-radius:8px;transition:background .2s,color .2s}
.chk:hover{background:rgba(255,255,255,.05);color:var(--ink)}
.chk input{width:15px;height:15px;flex:none;accent-color:var(--clay);padding:0;border-radius:4px}
.chk span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chk i{font-style:normal;font-size:.72rem;color:var(--faint)}
.facet-actions{display:flex;align-items:center;gap:14px;padding:14px 12px}
.reset{font-size:.82rem;color:var(--dim)}
.reset:hover{color:var(--clay)}

/* ---------- панель над сеткой ---------- */
.toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:18px}
.toolbar .count{font-size:.86rem;color:var(--dim)}
.sortbox{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--dim)}
.sortbox select{width:auto;padding:8px 38px 8px 14px;border-radius:999px;font-size:.82rem}
@media(max-width:620px){.sortbox{margin-left:0;width:100%}.sortbox select{flex:1;min-width:0}}
.chips{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:18px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:999px;
  background:var(--clay-soft);border:1px solid rgba(217,100,43,.3);font-size:.78rem;color:var(--sand)}
.chip.clear{background:none;border-color:var(--line);color:var(--dim)}
.chip.clear:hover{color:var(--ink);border-color:var(--line-2)}

/* ---------- сетки карточек ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
/* minmax(0,1fr): у карточки есть однострочные подписи, и без этого две колонки раздвигают страницу */
@media(max-width:620px){
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cgrid,.dgrid{grid-template-columns:1fr}
  .pcard h3{font-size:.9rem}
  .pcard-price{font-size:1.15rem}
}

/* карточка товара */
.pcard{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);
  background:var(--bg-2);transition:border-color .3s,transform .4s var(--ease)}
.pcard:hover{border-color:var(--line-2);transform:translateY(-4px)}
.pcard-img{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--bg-3)}
.pcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.pcard:hover .pcard-img img{transform:scale(1.06)}
.pcard-badges{position:absolute;left:10px;top:10px;display:flex;gap:6px;flex-wrap:wrap;max-width:80%}
.pcard-body{display:grid;gap:6px;padding:14px 16px 16px;align-content:start;flex:1;min-width:0}
.pcard-col{display:block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--clay);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* артикулы вроде LP2012G0131R8 не переносятся сами и на телефоне раздвигали карточку */
.pcard h3{font-size:.98rem;font-weight:500;line-height:1.25;letter-spacing:-.02em;overflow-wrap:anywhere}
.pcard-meta{font-size:.78rem;color:var(--dim)}
.pcard-price{margin-top:auto;padding-top:8px;font-family:var(--fd);font-style:italic;font-size:1.35rem;
  color:var(--sand);letter-spacing:-.03em}
.pcard-price i{font-family:var(--fb);font-style:normal;font-size:.74rem;color:var(--muted)}
.pcard-acts{position:absolute;right:10px;top:10px;display:grid;gap:6px}
.fav,.pick-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:rgba(10,9,8,.66);border:1px solid var(--line);color:var(--ink);
  transition:transform .3s var(--spring),background .25s,color .25s,border-color .25s}
.fav:hover,.pick-btn:hover{transform:scale(1.1);border-color:var(--clay)}
.fav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.fav.on{color:var(--clay)}
.fav.on svg{fill:var(--clay);stroke:var(--clay)}
.pick-btn{font-size:1.1rem;line-height:1}
.pick-btn.on{background:var(--clay);border-color:var(--clay);color:#fff}

/* карточка коллекции и интерьера */
.ccard,.dcard{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--bg-2);
  transition:border-color .3s,transform .4s var(--ease)}
.ccard:hover,.dcard:hover{border-color:var(--line-2);transform:translateY(-4px)}
.ccard-img,.dcard-img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--bg-3)}
.ccard-img img,.dcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ccard:hover .ccard-img img,.dcard:hover .dcard-img img{transform:scale(1.05)}
.ccard-img .badge,.dcard-img .badge{position:absolute;left:12px;top:12px}
.ccard-body,.dcard-body{display:grid;gap:6px;padding:16px 18px 18px}
.ccard h3,.dcard h3{font-size:1.2rem;font-weight:500}
.ccard-meta,.dcard-meta{font-size:.78rem;color:var(--dim)}
.ccard-price{font-family:var(--fd);font-style:italic;font-size:1.2rem;color:var(--sand)}
.ccard-price i{font-family:var(--fb);font-style:normal;font-size:.74rem;color:var(--muted)}
.dcard-col{font-size:.72rem;color:var(--clay)}

/* ---------- страницы ---------- */
.pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:36px 0 0}
.pg{min-width:42px;height:42px;padding:0 12px;border-radius:999px;border:1px solid var(--line);
  display:grid;place-items:center;font-size:.86rem;color:var(--muted);
  transition:background .25s,color .25s,border-color .25s}
a.pg:hover{color:var(--ink);border-color:var(--line-2);background:rgba(255,255,255,.05)}
.pg.on{background:var(--clay);border-color:var(--clay);color:#fff}
.pg.dots{border-color:transparent}

.empty{border:1px solid var(--line);background:var(--bg-2);padding:clamp(28px,5vw,48px);
  display:grid;gap:12px;justify-items:start;border-radius:14px}
.empty h3{font-family:var(--fd);font-style:italic;font-weight:400;font-size:1.8rem}
.empty p{color:var(--muted);max-width:56ch}
.empty a{color:var(--clay)}

/* ---------- галереи ---------- */
.gal{display:grid;gap:10px}
.gal-main{aspect-ratio:4/3;overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
.gal-main img{width:100%;height:100%;object-fit:cover}
.gal-main.placeholder img{opacity:.85}
.gal-wide .gal-main{aspect-ratio:21/9}
.gal-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.gal-thumb{width:74px;height:74px;overflow:hidden;border:1px solid var(--line);
  outline:2px solid transparent;outline-offset:2px;transition:outline-color .25s,transform .3s var(--spring)}
.gal-thumb:hover{transform:translateY(-3px)}
.gal-thumb.on{outline-color:var(--clay)}
.gal-thumb img{width:100%;height:100%;object-fit:cover}

/* ---------- карточка товара ---------- */
.pd{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
@media(max-width:900px){.pd{grid-template-columns:1fr}}
.pd-gallery{position:sticky;top:96px;display:grid;gap:12px}
@media(max-width:900px){.pd-gallery{position:static}}
.pd-info{display:grid;gap:16px;align-content:start}
.pd-info h1{font-size:clamp(1.7rem,3.2vw,2.6rem);letter-spacing:-.04em}
.pd-info .eyebrow{flex-wrap:wrap}
.pd-info .eyebrow a{border-bottom:1px solid var(--line)}
.pd-badges{display:flex;gap:8px;flex-wrap:wrap}
.pd-price{display:grid;gap:6px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pd-price b{font-family:var(--fd);font-style:italic;font-weight:400;font-size:clamp(2.4rem,5vw,3.4rem);
  line-height:1;color:var(--sand);letter-spacing:-.04em}
.pd-price b i{font-family:var(--fb);font-style:normal;font-size:.9rem;color:var(--muted);letter-spacing:0}
.pd-price span{font-size:.86rem;color:var(--dim)}
.pd-price .rrc{color:var(--faint)}
.pd-stock{display:flex;align-items:center;gap:9px;font-size:.9rem;color:var(--muted)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none}
.dot.ok{background:var(--ok);box-shadow:0 0 0 4px rgba(127,176,105,.16)}
.pd-actions{display:flex;gap:10px;flex-wrap:wrap}
.fav-btn .fav-on,.fav-btn.on .fav-off{display:none}
.fav-btn.on .fav-on{display:inline}
.fav-btn.on{color:var(--clay);border-color:var(--clay)}

.pcalc{border:1px solid var(--line);background:var(--bg-2);padding:20px;display:grid;gap:14px;border-radius:14px}
.pcalc h3{font-size:1.1rem}
.pcalc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:480px){.pcalc-row{grid-template-columns:1fr}}
.pcalc-out{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:480px){.pcalc-out{grid-template-columns:1fr}}
.pcalc-out div{display:grid;gap:3px}
.pcalc-out span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.pcalc-out b{font-family:var(--fd);font-style:italic;font-weight:400;font-size:1.4rem;color:var(--sand)}

.slip{display:grid;gap:5px;border:1px solid rgba(217,100,43,.4);background:var(--clay-soft);
  border-radius:14px;padding:16px 18px}
.slip b{font-family:var(--fd);font-style:italic;font-weight:400;font-size:1.7rem;color:var(--sand);line-height:1}
.slip span{font-size:.88rem;color:var(--muted)}
.slip small{font-size:.76rem;color:var(--dim)}
.slip a{color:var(--clay)}

.specs{width:100%;border-collapse:collapse;font-size:.9rem}
.specs th,.specs td{text-align:left;padding:11px 0;border-bottom:1px solid var(--line);vertical-align:top}
.specs th{font-weight:400;color:var(--dim);width:44%;font-size:.84rem}
.leads-table th{width:auto;color:var(--dim)}
.leads-table td{color:var(--muted)}

/* ---------- призывы ---------- */
.cta-band{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  border:1px solid var(--line);background:var(--bg-2);padding:clamp(24px,4vw,44px);
  margin-top:clamp(46px,6vw,74px);border-radius:16px}
.cta-band h2{font-size:clamp(1.5rem,3vw,2.3rem);max-width:22ch}
.cta-band p{color:var(--muted);max-width:54ch;margin-top:12px}
.cta-btns{display:flex;gap:10px;flex-wrap:wrap}
.cta-card{border:1px solid var(--line);background:var(--bg-2);padding:24px;display:grid;gap:14px;
  justify-items:start;align-content:start;border-radius:16px;position:sticky;top:96px}
.cta-card p{color:var(--muted);font-size:.9rem}
.design-body{display:grid;grid-template-columns:1fr 320px;gap:clamp(20px,3vw,40px);align-items:start}
@media(max-width:900px){.design-body{grid-template-columns:1fr}.cta-card{position:static}}
.pano-wrap{display:grid;gap:10px;margin-bottom:20px}
.pano{aspect-ratio:2/1;background:var(--bg-2);border:1px solid var(--line)}

/* ---------- интерьеры (общие для главной и карточек) ---------- */
.ints{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:800px){.ints{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ints{grid-template-columns:1fr}.int{aspect-ratio:4/3}}
.int{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--bg-2);display:block}
.int img{position:absolute;left:0;top:-12%;width:100%;height:124%;object-fit:cover;will-change:transform}
.int .cap,.int-cap{position:absolute;left:14px;bottom:14px;right:14px;display:flex;
  justify-content:space-between;align-items:center;gap:10px;background:rgba(10,9,8,.8);padding:10px 14px;
  font-size:.86rem;font-weight:500;transform:translateY(130%);transition:transform .5s var(--spring)}
.int:hover .cap,.int:focus-visible .cap,.int:hover .int-cap{transform:none}
.int .cap span{font-family:var(--fd);font-style:italic;font-weight:400;color:var(--sand)}
@media(hover:none){.int .cap,.int-cap{transform:none}}
.ints-inline .int{aspect-ratio:4/3}
.ints-inline .int img{position:static;height:100%;transform:none!important}

/* ---------- вход, регистрация, кабинет ---------- */
.auth-page{display:grid;place-items:center;min-height:70vh;padding:40px 0}
.auth-card{width:min(440px,100%);border:1px solid var(--line);background:var(--bg-2);
  border-radius:20px;padding:clamp(24px,4vw,36px);display:grid;gap:18px}
.auth-card h1{font-family:var(--fd);font-style:italic;font-weight:400;font-size:2rem}
.auth-tabs{display:flex;gap:6px;padding:5px;border-radius:999px;border:1px solid var(--line)}
.auth-tab{flex:1;text-align:center;padding:9px;border-radius:999px;font-size:.86rem;color:var(--muted);
  transition:background .25s,color .25s}
.auth-tab.on{background:var(--clay);color:#fff}
.auth-pane{display:grid;gap:14px}
.auth-perks{display:grid;gap:8px;font-size:.84rem;color:var(--dim);border-top:1px solid var(--line);padding-top:16px}
.auth-perks li{list-style:none;display:flex;gap:9px}
.auth-perks li::before{content:"—";color:var(--clay)}

/* ---------- правовые страницы и ошибки ---------- */
.doc{max-width:calc(78ch + var(--pad)*2);margin:0 auto;padding:0 var(--pad);display:grid;gap:16px}
.doc .upd{font-size:.78rem;color:var(--dim);letter-spacing:.06em}
.doc h2{font-size:clamp(1.3rem,2.4vw,1.8rem);margin-top:20px}
.doc h3{font-size:1.05rem;margin-top:12px}
.doc p,.doc li{color:var(--muted);font-size:.94rem;line-height:1.7}
.doc ul,.doc ol{padding-left:22px;display:grid;gap:8px}
.err-page{min-height:64vh;display:grid;place-content:center;justify-items:start;gap:18px;text-align:left}
.err-page h1{font-family:var(--fd);font-style:italic;font-weight:400;font-size:clamp(3.4rem,12vw,8rem);
  color:var(--clay);line-height:1}
.err-page p{color:var(--muted);max-width:52ch}
.todo-inline,.todo{display:inline-flex;align-items:center;font-size:.72rem;color:var(--clay);
  letter-spacing:.1em;text-transform:uppercase}
.map-link{font-size:.82rem;color:var(--sand)}
.map-link:hover{color:var(--clay)}
