.gp-products { padding-block: clamp(58px, 6vw, 92px); color: #332f34; background: #f7f0eb; }
.gp-products__topline { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 15px; border-bottom: 1px solid #d8c9c5; }
.gp-products__topline > span { color: #8b4e51; font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.gp-products__topline a { color: #332f34; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.gp-products__heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; padding-block: 24px 28px; }
.gp-products h2 { max-width: 13ch; margin: 0; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.1; letter-spacing: -.04em; }
.gp-products__heading p { max-width: 39ch; margin: 0; color: #70666a; font-size: 15px; line-height: 1.6; }
.gp-products__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; padding: 0; margin: 0; list-style: none; }
.gp-product { min-width: 0; }
.gp-product__media { display: block; overflow: hidden; aspect-ratio: 1 / 1; background: #fffdfa; border-radius: 18px; }
.gp-product__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.gp-product h3 { margin: 13px 0 6px; font-size: 15px; line-height: 1.4; font-weight: 600; }
.gp-product h3 a { color: inherit; text-decoration: none; }
.gp-product h3 a:hover { text-decoration: underline; }
.gp-product__price { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; color: #8b4e51; font-size: 14px; font-weight: 700; }
.gp-product__price s { color: #877d80; font-weight: 400; }
.gp-products__setup { padding: 38px; background: #fffdfa; border: 1px dashed #cbb4b2; border-radius: 18px; }
.gp-products__setup p { margin-bottom: 0; }
@media (max-width: 900px) { .gp-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .gp-products__heading { display: block; } .gp-products__heading p { margin-top: 14px; } .gp-products__grid { gap: 18px 10px; } .gp-products__topline { align-items: start; } }
