
.catalog-layout{display:grid;grid-template-columns:270px 1fr;gap:30px;align-items:start}
.filters{
  position:sticky;top:112px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)
}
.filter-group{padding:18px 0;border-bottom:1px solid var(--line)}
.filter-group:first-child{padding-top:0}
.filter-group:last-child{border-bottom:0;padding-bottom:0}
.filter-group label{display:flex;align-items:center;gap:9px;margin:8px 0;color:var(--muted);font-size:14px}
.catalog-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}
.catalog-toolbar .select{width:auto;min-width:220px}
.mobile-filter-btn{display:none}
.product-page{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;padding-bottom:84px}
.product-gallery{position:sticky;top:112px}
.product-main-image{border-radius:34px;overflow:hidden;border:1px solid var(--line);background:var(--surface-soft)}
.product-main-image img{width:100%;transition:transform .55s}
.product-main-image:hover img{transform:scale(1.025)}
.product-details{padding-top:18px}
.product-details h1{font-size:clamp(42px,5vw,68px)}
.product-description{color:var(--muted);font-size:17px;margin:24px 0}
.product-price{font-size:32px;font-weight:800;margin:22px 0}
.spec-list{border-top:1px solid var(--line);margin:28px 0}
.spec-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}
.spec-row span:first-child{color:var(--muted)}
.quantity{display:flex;width:max-content;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.quantity button,.quantity input{width:42px;border:0;background:var(--surface);color:var(--text);text-align:center}
.purchase-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cart-layout{display:grid;grid-template-columns:1fr 370px;gap:34px;align-items:start;padding-bottom:84px}
.cart-list{display:grid;gap:14px}
.cart-item{
  display:grid;grid-template-columns:130px 1fr auto;gap:18px;align-items:center;background:var(--surface);
  border:1px solid var(--line);border-radius:22px;padding:14px
}
.cart-item img{width:130px;aspect-ratio:1/1;object-fit:cover;border-radius:16px}
.cart-item-actions{text-align:right}
.cart-summary{
  position:sticky;top:112px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:26px
}
.summary-row{display:flex;justify-content:space-between;gap:18px;margin:12px 0}
.summary-total{font-size:22px;font-weight:800;padding-top:16px;border-top:1px solid var(--line)}
.checkout-grid{display:grid;grid-template-columns:1fr 390px;gap:34px;align-items:start;padding-bottom:84px}
.form-card{padding:28px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.form-field{display:grid;gap:7px}
.form-field.full{grid-column:1/-1}
.form-field label{font-size:13px;color:var(--muted)}
.success-card{
  max-width:780px;margin:56px auto 92px;text-align:center;padding:64px;border:1px solid var(--line);
  background:var(--surface);border-radius:32px;box-shadow:var(--shadow)
}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px}
.map-placeholder{
  min-height:430px;border-radius:var(--radius);background:linear-gradient(135deg,var(--surface-soft),color-mix(in srgb,var(--surface-soft) 60%,var(--gold)));
  border:1px solid var(--line);display:grid;place-items:center;color:var(--muted)
}
@media(max-width:1024px){
  .catalog-layout{grid-template-columns:1fr}
  .filters{position:static;display:none}
  .filters.is-open{display:block}
  .mobile-filter-btn{display:inline-flex}
  .product-page{grid-template-columns:1fr}
  .product-gallery{position:static}
  .cart-layout,.checkout-grid{grid-template-columns:1fr}
  .cart-summary{position:static}
}
@media(max-width:720px){
  .catalog-toolbar{align-items:stretch;flex-direction:column}
  .catalog-toolbar .select{width:100%;min-width:0}
  .cart-item{grid-template-columns:92px 1fr}
  .cart-item img{width:92px}
  .cart-item-actions{grid-column:2}
  .form-grid{grid-template-columns:1fr}
  .form-field.full{grid-column:auto}
  .contact-grid{grid-template-columns:1fr}
}
