/* Collection product cards, driven by shop-catalog.json.
   Preserve the existing content-based breakpoints: 1100, 800, 767 and 440px.
   Shared button-system.css is loaded after this file; do not duplicate its rules.
   v1.30.3: consolidated effective declarations, no visual redesign. */
.cp43-section { padding:77px 0 89px; background:#fcf7ee; }
.cp43-intro { display:flex; gap:28px; align-items:end; justify-content:space-between; margin-bottom:17px; }
.cp43-intro>div { max-width:755px; }
.cp43-intro h2 { font-size:clamp(2.55rem,4.2vw,4.2rem); margin-bottom:12px; }
.cp43-intro p:not(.eyebrow) { color:#6d6155; line-height:1.65; margin:0; }
.cp43-total { font-size:.78rem; color:#7f643f; white-space:nowrap; font-weight:700; letter-spacing:.09em; }

.cp43-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:stretch; }
.cp43-card {
  min-width:0; display:flex; flex-direction:column; background:#fffdf9;
  border:1px solid #e5d8c5; border-radius:10px; overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);
}
.cp43-media { position:relative; background:#e8dfd1; aspect-ratio:4 / 5; overflow:hidden; }
.cp43-photo { display:block; width:100%; height:100%; object-fit:cover; }
.cp43-photo[hidden] { display:none; }
.cp43-missing { display:flex; align-items:center; justify-content:center; position:absolute; inset:0; background:#e4d5bd; color:#715a3c; font-size:.78rem; text-align:center; padding:18px; }
.cp43-missing[hidden] { display:none; }
.cp43-price { position:absolute; top:12px; right:12px; border:1px solid #d2af73; background:#e8c993; color:#241e18; font-weight:800; padding:7px 12px; letter-spacing:.01em; font-size:1.05rem; box-shadow:0 2px 10px #1c120c36; }
.cp43-price-ask { font-size:.64rem; background:#30271f; color:#fff2df; padding:8px 10px; }
.cp43-body { flex:1; display:flex; flex-direction:column; padding:17px 16px 16px; gap:9px; }
.cp43-category { margin:0; font-weight:800; letter-spacing:.035em; font-size:.75rem; text-transform:uppercase; color:#684d32; }
.cp43-name { font-size:1.75rem; line-height:1.14; margin:0; color:#29231e; overflow-wrap:anywhere; }
.cp43-description { font-size:.88rem; line-height:1.6; color:#594e41; margin:0; flex:1; }
.cp43-ref { font-size:.75rem; color:#675846; margin:0; }
.cp43-ask { display:flex; align-items:center; justify-content:center; margin-top:auto; width:100%; font-size:.76rem; min-height:46px; }
.cp43-error { border:1px solid #9e764a; padding:24px; margin-top:18px; }
.cp43-error[hidden] { display:none!important; }
.cp43-error button { background:#2c251d; color:#fff; border:0; padding:12px 20px; cursor:pointer; border-radius:10px; box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06); }
.cp43-nojs a { text-decoration:underline; }
.cp43-actions { display:flex; justify-content:center; margin-top:30px; }

@media (max-width:1100px) {
  .cp43-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:800px) {
  .cp43-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cp43-section { padding:57px 0 65px; }
  .cp43-intro { align-items:start; flex-direction:column; gap:10px; }
}
@media (max-width:767px) {
  .cp43-section { padding:40px 0 55px; }
  .cp43-intro { margin:0 0 12px; }
  .cp43-intro h2 { font-size:clamp(2.15rem,7vw,3rem); margin:0 0 8px; }
  
  .cp43-actions { margin-top:23px; }
}
@media (max-width:440px) {
  .cp43-grid { grid-template-columns:1fr; gap:15px; }
  .cp43-media { height:clamp(185px,57vw,265px); aspect-ratio:auto; display:flex; justify-content:center; align-items:center; }
  .cp43-photo { height:100%; width:100%; object-fit:contain; object-position:center; }
  .cp43-body { padding:13px 16px 15px; gap:6px; }
  .cp43-name { font-size:clamp(1.53rem,6vw,1.88rem); line-height:1.13; }
  .cp43-description { font-size:.91rem; line-height:1.45; }
  .cp43-category { font-size:.78rem; }
  .cp43-ref { font-size:.74rem; }
  .cp43-price { top:7px; right:7px; font-size:.97rem; padding:6px 8px; }
  .cp43-price-ask { font-size:.6rem; }
  .cp43-ask { padding:11px 8px; min-height:46px; font-size:.76rem; margin-top:8px; }
}

.cp43-price:not(.cp43-price-ask) { display:flex; flex-direction:column; align-items:center; gap:2px; }

