/* =========================================================
   CATALOG — каталог, карточки, страница товара, портфолио
   ========================================================= */

/* ============ 1. ФИЛЬТРЫ ============ */
.cfilters{
  display:flex;flex-wrap:wrap;gap:6px 36px;padding:28px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  margin-bottom:70px;
}
.cfilter{
  background:none;border:0;padding:0 0 6px;font:inherit;
  font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted-d);cursor:pointer;position:relative;
  transition:color .3s var(--ease);
}
.cfilter::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--brass);transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease);
}
.cfilter:hover,.cfilter:focus-visible{color:var(--ink)}
.cfilter.is-active{color:var(--ink)}
.cfilter.is-active::after{transform:scaleX(1)}
.cfilter em{font-style:normal;color:var(--muted-d);margin-left:6px;font-size:10.5px}
.cfilters--dark{border-color:var(--line-dark)}
.cfilters--dark .cfilter{color:var(--muted-l)}
.cfilters--dark .cfilter:hover,.cfilters--dark .cfilter:focus-visible,.cfilters--dark .cfilter.is-active{color:var(--cream)}

/* ============ 2. СЕТКА КАРТОЧЕК ============ */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:64px 40px}
.pgrid--4{grid-template-columns:repeat(4,1fr);gap:48px 32px}
.pgrid--2{grid-template-columns:repeat(2,1fr);gap:72px 48px}
.pgrid--posts{gap:56px 40px}
@media (max-width:1080px){
  .pgrid,.pgrid--4,.pgrid--2{grid-template-columns:repeat(2,1fr);gap:48px 28px}
}
@media (max-width:640px){
  .pgrid,.pgrid--2,.pgrid--4{grid-template-columns:1fr;gap:40px}
}

/* ============ 3. КАРТОЧКА ТОВАРА ============ */
.pcard{display:flex;flex-direction:column;position:relative}
.pcard__media{
  position:relative;display:block;aspect-ratio:4/5;overflow:hidden;
  background:var(--ink);margin-bottom:24px;
}
.pcard__media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.1s var(--ease);
}
.pcard:hover .pcard__media img{transform:scale(1.045)}
.pcard__tag{
  position:absolute;top:18px;left:18px;z-index:2;
  font-size:10.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--cream);background:rgba(14,13,11,.55);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding:8px 13px;
}
.pcard__tag--default{background:rgba(14,13,11,.55);color:var(--cream)}
.pcard__tag--brass{background:var(--brass);color:var(--ink)}
.pcard__tag--dark{background:var(--ink);color:var(--cream)}
.pcard__tag--light{background:var(--cream);color:var(--ink)}
.pcard__quick{
  position:absolute;left:18px;right:18px;bottom:18px;z-index:3;
  min-height:44px;padding:12px 20px;font-family:'Inter',sans-serif;
  font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink);background:var(--cream);border:none;cursor:pointer;
  opacity:0;transform:translateY(8px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),background .3s var(--ease);
}
.pcard__media:hover .pcard__quick,.pcard__media:focus-within .pcard__quick{opacity:1;transform:translateY(0)}
.pcard__quick:hover{background:var(--brass-2)}
.pcard__quick:focus-visible{outline:2px solid var(--brass);outline-offset:2px;opacity:1;transform:translateY(0)}
@media (hover:none){.pcard__quick{opacity:1;transform:none}}
.pcard__placeholder{
  width:100%;height:100%;
  background:linear-gradient(135deg,var(--ink-3) 0%,var(--ink-2) 100%);
  display:block;position:relative;
}
.pcard__placeholder::after{
  content:"М";position:absolute;inset:0;display:grid;place-items:center;
  font-family:'Cormorant Garamond',Georgia,serif;font-size:64px;
  color:var(--brass);opacity:.35;
}
.pcard__body{display:flex;flex-direction:column;gap:12px}
.pcard__cat{font-size:10.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-d)}
.pcard__title{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:26px;line-height:1.15;color:var(--ink);margin:0;letter-spacing:-.005em;
}
.pcard__title a{
  color:inherit;text-decoration:none;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size .5s var(--ease);
}
.pcard__title a:hover,.pcard__title a:focus-visible{background-size:100% 1px}
.pcard__desc{font-size:14px;font-weight:300;line-height:1.65;color:var(--muted-d);margin:0}
.pcard__foot{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-top:10px;padding-top:18px;border-top:1px solid var(--line);
}
.pcard__price{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-weight:500;
  color:var(--ink);letter-spacing:.01em;
}
.pcard__time{
  font-size:11px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted-d);
}
.pcard--project .pcard__cat{color:var(--brass-d);letter-spacing:.16em}
.pcard--post .pcard__foot{justify-content:flex-start}
.pcard--post .pcard__time{color:var(--muted-d)}
.pcard--search .pcard__media{aspect-ratio:4/3}
.pcard--horizontal{
  display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:stretch;
}
.pcard--horizontal .pcard__media{margin-bottom:0;aspect-ratio:1/1}
.pcard--horizontal .pcard__body{padding:8px 0;justify-content:center}
@media (max-width:640px){
  .pcard--horizontal{grid-template-columns:1fr;gap:16px}
  .pcard--horizontal .pcard__media{aspect-ratio:4/5}
}

/* ============ 4. ПАГИНАЦИЯ ============ */
.mt-pagination{
  margin-top:80px;display:flex;justify-content:center;
  gap:8px;flex-wrap:wrap;
}
.mt-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;height:44px;padding:0 14px;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:500;
  letter-spacing:.08em;color:var(--ink);border:1px solid var(--line);
  transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);
}
.mt-pagination .page-numbers:hover,.mt-pagination .page-numbers:focus-visible{
  border-color:var(--brass);background:var(--brass);
}
.mt-pagination .page-numbers.current{
  background:var(--ink);color:var(--cream);border-color:var(--ink);
}
.mt-pagination .page-numbers.dots{
  border-color:transparent;background:transparent;cursor:default;color:var(--muted-d);
}
.section--dark .mt-pagination .page-numbers{color:var(--cream);border-color:var(--line-dark)}
.section--dark .mt-pagination .page-numbers:hover{background:var(--brass);color:var(--ink);border-color:var(--brass)}

/* ============ 5. СТРАНИЦА ТОВАРА ============ */
.product-hero{padding:56px 0 90px;background:var(--cream)}
.product-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:flex-start}
@media (max-width:960px){.product-grid{grid-template-columns:1fr;gap:48px}}
.product-gallery{position:sticky;top:100px}
@media (max-width:960px){.product-gallery{position:static}}
.product-gallery__main{aspect-ratio:4/3;overflow:hidden;background:var(--ink);margin-bottom:14px}
.product-gallery__main img{width:100%;height:100%;object-fit:cover;display:block}
.product-gallery__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.product-gallery__thumbs a{
  display:block;aspect-ratio:1;overflow:hidden;background:var(--ink);
  opacity:.6;transition:opacity .3s var(--ease);
}
.product-gallery__thumbs a:hover,.product-gallery__thumbs a:focus-visible,.product-gallery__thumbs a.is-active{opacity:1}
.product-gallery__thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.product-info .eyebrow{display:block;margin-bottom:22px}
.product-info h1{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:clamp(34px,4.4vw,52px);line-height:1.08;letter-spacing:-.015em;
  color:var(--ink);margin:0 0 22px;
}
.product-info h1 em{font-style:italic;color:var(--brass-d)}
.product-info__desc{
  font-size:16px;font-weight:300;line-height:1.75;
  color:var(--muted-d);margin:0 0 36px;max-width:56ch;
}
.product-info__price{
  display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  margin-bottom:36px;
}
.product-info__price b{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:38px;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;line-height:1;
}
.product-info__price span{
  font-size:11.5px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted-d);
}
.product-info__actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:48px}
.product-spec{border-top:1px solid var(--line)}
.product-spec__row{
  display:grid;grid-template-columns:180px 1fr;gap:24px;padding:18px 0;
  border-bottom:1px solid var(--line);font-size:14.5px;
}
.product-spec__row dt{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted-d);font-weight:500;
}
.product-spec__row dd{color:var(--ink);font-weight:400;margin:0}
@media (max-width:640px){.product-spec__row{grid-template-columns:1fr;gap:6px}}

/* ============ 6. ПОХОЖИЕ ============ */
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 40px}
@media (max-width:960px){.related-grid{grid-template-columns:repeat(2,1fr);gap:40px 24px}}
@media (max-width:640px){.related-grid{grid-template-columns:1fr;gap:36px}}

/* ============ 7. ПОРТФОЛИО — СЕТКА ============ */
.pfolio-grid{
  display:grid;grid-template-columns:repeat(6,1fr);
  gap:2px;background:var(--line);border:1px solid var(--line);
}
.pfolio-item{
  position:relative;display:block;overflow:hidden;background:var(--ink);
  min-height:340px;color:var(--cream);text-decoration:none;
}
.pfolio-item--w2{grid-column:span 2}
.pfolio-item--w3{grid-column:span 3}
.pfolio-item--w4{grid-column:span 4}
.pfolio-item--w6{grid-column:span 6}
.pfolio-item img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.92;transition:transform 1.1s var(--ease),opacity .5s var(--ease);
}
.pfolio-item:hover img,.pfolio-item:focus-visible img{transform:scale(1.04);opacity:1}
.pfolio-item__placeholder{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(135deg,var(--ink-3) 0%,var(--ink-2) 100%);
}
.pfolio-item__placeholder::after{
  content:"М";position:absolute;inset:0;display:grid;place-items:center;
  font-family:'Cormorant Garamond',Georgia,serif;font-size:120px;
  color:var(--brass);opacity:.15;
}
.pfolio-item__body{
  position:relative;z-index:2;padding:36px;
  display:flex;flex-direction:column;justify-content:flex-end;
  height:100%;min-height:340px;
  background:linear-gradient(180deg,transparent 40%,rgba(14,13,11,.72));
}
.pfolio-item__cat{
  font-size:10.5px;font-weight:500;letter-spacing:.24em;
  text-transform:uppercase;color:var(--brass-2);margin-bottom:10px;
}
.pfolio-item__title{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:26px;line-height:1.15;margin:0;color:var(--cream);
}
.pfolio-item__meta{margin-top:8px;font-size:12px;letter-spacing:.05em;color:rgba(255,255,255,.75)}
@media (max-width:820px){
  .pfolio-grid{grid-template-columns:1fr}
  .pfolio-item,.pfolio-item--w2,.pfolio-item--w3,.pfolio-item--w4,.pfolio-item--w6{grid-column:auto;min-height:260px}
}

/* ============ 8. ПОРТФОЛИО — ДЕТАЛЬНАЯ ============ */
.folio-hero{
  position:relative;min-height:78vh;background-size:cover;background-position:center;
  background-color:var(--ink);display:flex;align-items:flex-end;
  color:var(--cream);padding:120px 0 60px;
}
.folio-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,13,11,.15) 0%,rgba(14,13,11,.85) 100%);
}
.folio-hero .container{position:relative;z-index:2}
.folio-hero h1{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:clamp(38px,5.6vw,74px);line-height:1.02;letter-spacing:-.02em;
  margin:16px 0 0;max-width:16ch;color:var(--cream);
}
.folio-hero h1 em{font-style:italic;color:var(--brass-2)}
.folio-meta{
  display:grid;grid-template-columns:repeat(4,1fr);gap:40px;
  padding:48px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
@media (max-width:760px){.folio-meta{grid-template-columns:repeat(2,1fr);gap:28px}}
.folio-meta__cell dt{
  font-size:10.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted-d);margin-bottom:10px;
}
.folio-meta__cell dd{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;
  font-weight:500;color:var(--ink);margin:0;line-height:1.3;
}
.section--dark .folio-meta{border-color:var(--line-dark)}
.section--dark .folio-meta__cell dd{color:var(--cream)}
.section--dark .folio-meta__cell dt{color:var(--muted-l)}
.folio-body{
  max-width:760px;margin:0 auto;font-size:17px;font-weight:300;
  line-height:1.85;color:var(--ink);
}
.folio-body p{margin:0 0 1.4em}
.folio-body p:first-letter{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:3.4em;
  float:left;line-height:.85;padding:6px 14px 0 0;color:var(--brass-d);
}
.section--dark .folio-body{color:var(--cream)}
.section--dark .folio-body p:first-letter{color:var(--brass-2)}
.folio-gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.folio-gallery img{
  grid-column:span 3;width:100%;aspect-ratio:4/3;object-fit:cover;display:block;
}
.folio-gallery img:nth-child(3n){grid-column:span 6;aspect-ratio:16/9}
@media (max-width:760px){.folio-gallery img{grid-column:span 6;aspect-ratio:4/3}}

/* ============ 9. ИНФО-СТРАНИЦЫ ============ */
.info-list{display:grid;gap:0;border-top:1px solid var(--line)}
.info-list__row{
  display:grid;grid-template-columns:220px 1fr;gap:40px;padding:28px 0;
  border-bottom:1px solid var(--line);
}
@media (max-width:700px){.info-list__row{grid-template-columns:1fr;gap:10px}}
.info-list__row h4{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:22px;
  margin:0;color:var(--ink);line-height:1.25;
}
.info-list__row p{font-size:15px;font-weight:300;line-height:1.7;color:var(--muted-d);margin:0}
.section--dark .info-list,.section--dark .info-list__row{border-color:var(--line-dark)}
.section--dark .info-list__row h4{color:var(--cream)}
.section--dark .info-list__row p{color:var(--muted-l)}

/* ============ 10. КОНТАКТЫ ============ */
.contacts-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
  background:var(--line);border:1px solid var(--line);
}
@media (max-width:760px){.contacts-grid{grid-template-columns:1fr}}
.contact-card{
  background:var(--cream);padding:44px 36px;
  display:flex;flex-direction:column;gap:14px;min-height:220px;
}
.contact-card__lbl{
  font-size:10.5px;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;color:var(--brass-d);margin-bottom:4px;
}
.contact-card h4{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:24px;margin:0;color:var(--ink);
}
.contact-card p,.contact-card a{
  font-size:15px;font-weight:300;line-height:1.6;
  color:var(--muted-d);margin:0;text-decoration:none;
}
.contact-card a:hover,.contact-card a:focus-visible{color:var(--ink)}
.map-block{
  aspect-ratio:16/7;background:var(--ink);position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted-l);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
}
.map-block iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.1)}
@media (max-width:640px){.map-block{aspect-ratio:4/3}}