/* Catálogo Cotizador Pro - Frontend styles */
.ccp-app{ max-width:1200px; margin:0 auto; padding:18px 16px 90px; font-family:var(--ccp-font-body); color:var(--ccp-text); }
.ccp-top{ position:sticky; top:0; z-index:40; display:flex; gap:16px; align-items:center; padding:14px 0; background:rgba(239,232,216,.92); backdrop-filter: blur(10px); border-bottom:1px solid var(--ccp-border); }
.ccp-brand{ display:flex; align-items:center; gap:10px; min-width:220px; padding-left:2px; }
.ccp-brand--lockup{ min-width:0; gap:0; }
.ccp-brand-lockup{ display:flex; align-items:center; padding-left:2px; }
.ccp-brand-lockup-img{ max-height:44px; width:auto; height:auto; display:block; object-fit:contain; }
.ccp-brand-lockup-svg svg{ max-height:44px; width:auto; height:auto; display:block; }
.ccp-brand-mark{ width:44px; height:44px; border-radius:12px; background:var(--ccp-primary); display:grid; place-items:center; color:#fff; font-weight:900; font-family:var(--ccp-font-title); }
.ccp-brand-mark-text{ color:#fff; font-weight:900; font-family:var(--ccp-font-title); }
.ccp-brand-logo-img{ width:100%; height:100%; object-fit:contain; display:block; }
.ccp-brand-logo-svg svg{ width:100%; height:100%; display:block; }
.ccp-brand-text{ line-height:1.1; }
.ccp-brand-name{ font-family:var(--ccp-font-title); font-weight:900; color:var(--ccp-secondary); letter-spacing:.6px; }
.ccp-brand-sub{ color:var(--ccp-primary); font-weight:700; font-size:12px; }

.ccp-search{ flex:1; display:flex; gap:10px; align-items:center; }
.ccp-search-input{ width:100%; padding:12px 12px; border-radius:14px; border:1px solid var(--ccp-border); background:#fff; outline:none; font-size:14px; }
.ccp-search-btn{ padding:12px 14px; border-radius:14px; border:1px solid var(--ccp-border); background:#fff; cursor:pointer; font-weight:800; }

.ccp-top-actions{ display:flex; align-items:center; gap:10px; padding-right:2px; margin-left:auto; }
.ccp-mini-cart-btn{ position:relative; width:44px; height:44px; border-radius:14px; border:1px solid var(--ccp-border); background:#fff; cursor:pointer; display:grid; place-items:center; box-shadow:0 8px 18px rgba(0,0,0,.10); }
.ccp-mini-cart-badge{ position:absolute; top:-8px; right:-8px; min-width:22px; height:22px; padding:0 6px; border-radius:999px; background:var(--ccp-primary); color:#fff; font-size:12px; font-weight:900; display:grid; place-items:center; border:2px solid var(--ccp-bg); }

/* Global cart button (for header/Elementor) */
.ccp-global-cart-btn{ position:relative; width:44px; height:44px; border-radius:14px; border:1px solid var(--ccp-border); background:#fff; cursor:pointer; display:grid; place-items:center; box-shadow:0 8px 18px rgba(0,0,0,.10); }
.ccp-global-cart-btn--button{ width:auto; padding:0 14px; display:flex; gap:10px; align-items:center; }
.ccp-global-cart-btn__label{ font-weight:900; color:var(--ccp-secondary); font-family:var(--ccp-font-title); }

/* Floating cart button (optional global) */
.ccp-floating-cart{ position:fixed; right:16px; top:16px; z-index:9996; }

.ccp-sections{ display:flex; gap:18px; overflow:auto; padding:14px 0 14px; }
.ccp-section{ min-width:120px; text-align:center; cursor:pointer; user-select:none; }
.ccp-section-ico{ width:74px; height:74px; border-radius:999px; background:#111; display:grid; place-items:center; margin:0 auto 10px; box-shadow:0 8px 18px rgba(0,0,0,.10); overflow:hidden; }
.ccp-section-ico img{ width:54px; height:54px; object-fit:contain; filter: invert(1); }
.ccp-section-label{ font-family:var(--ccp-font-title); font-weight:900; color:var(--ccp-primary); letter-spacing:.6px; }
.ccp-section.active .ccp-section-label{ text-decoration: underline; text-decoration-thickness:4px; text-underline-offset:10px; }

.ccp-meta{ display:flex; align-items:center; justify-content:space-between; margin:14px 0 10px; color:#666; font-size:13px; }

.ccp-grid{ display:grid; gap:14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ccp-card{ background:var(--ccp-card); border:1px solid var(--ccp-border); border-radius:var(--ccp-radius); overflow:hidden; box-shadow:0 8px 18px rgba(0,0,0,.10); display:flex; flex-direction:column; }
.ccp-card-img{ width:100%; aspect-ratio:4/3; background:#f2f2f2; overflow:hidden; }
.ccp-card-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.ccp-card-body{ padding:12px 12px 14px; display:flex; flex-direction:column; gap:8px; }
.ccp-title{ margin:0; font-family:var(--ccp-font-title); font-weight:900; font-size:16px; line-height:1.15; }
.ccp-desc{ margin:0; color:#666; font-size:13px; line-height:1.35; min-height:34px; }
.ccp-features{ margin:0; padding-left:16px; font-size:13px; line-height:1.35; }
.ccp-row{ display:flex; align-items:center; gap:10px; margin-top:4px; }
.ccp-qty{ flex:1; display:flex; align-items:center; gap:8px; }
.ccp-qty input{ width:100%; padding:10px 10px; border-radius:12px; border:1px solid var(--ccp-border); outline:none; }
.ccp-unit{ font-weight:900; color:var(--ccp-secondary); font-size:13px; white-space:nowrap; }
.ccp-add{ background:var(--ccp-secondary); color:#fff; border:none; border-radius:12px; padding:10px 12px; font-weight:900; cursor:pointer; white-space:nowrap; }

.ccp-loadmore{ margin:14px auto 0; padding:12px 16px; border-radius:14px; border:1px solid var(--ccp-border); background:#fff; font-weight:900; cursor:pointer; box-shadow:0 8px 18px rgba(0,0,0,.10); }

/* Sticky + Fullscreen */
.ccp-sticky{ position:fixed; left:0; right:0; bottom:0; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:rgba(239,232,216,.92); backdrop-filter: blur(10px); border-top:1px solid var(--ccp-border); display:none; z-index:9998; }
.ccp-sticky-btn{ width:100%; border:none; border-radius:16px; padding:14px 16px; font-weight:900; background:var(--ccp-primary); color:#fff; box-shadow: var(--ccp-shadow); cursor:pointer; }

.ccp-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.45); display:none; z-index:9997; }
.ccp-fullscreen{ position:fixed; inset:0; background:var(--ccp-bg); z-index:9999; display:none; flex-direction:column; }
.ccp-fullscreen-header{ position:sticky; top:0; display:flex; align-items:center; justify-content:space-between; padding:14px 14px; background:rgba(239,232,216,.95); backdrop-filter: blur(10px); border-bottom:1px solid var(--ccp-border); }
.ccp-fullscreen-title{ font-weight:900; color:var(--ccp-secondary); font-family:var(--ccp-font-title); }
.ccp-icon-btn{ width:44px; height:44px; border-radius:14px; border:1px solid var(--ccp-border); background:#fff; font-weight:900; cursor:pointer; }
.ccp-icon-btn-wide{ width:auto; padding:0 14px; }
.ccp-fullscreen-body{ padding:12px 14px 110px; overflow:auto; }
.ccp-fullscreen-footer{ position:fixed; left:0; right:0; bottom:0; padding:12px 14px calc(12px + env(safe-area-inset-bottom)); background:rgba(239,232,216,.95); backdrop-filter: blur(10px); border-top:1px solid var(--ccp-border); }
.ccp-primary-btn{ width:100%; border:none; border-radius:16px; padding:14px 16px; font-weight:900; background:var(--ccp-secondary); color:#fff; box-shadow: var(--ccp-shadow); cursor:pointer; }

.ccp-form-card{ margin-top:14px; background:#fff; border:1px solid var(--ccp-border); border-radius:14px; padding:12px; }
.ccp-form-title{ font-weight:900; color:var(--ccp-secondary); margin-bottom:10px; font-family:var(--ccp-font-title); }
.ccp-label{ display:block; font-weight:800; margin:10px 0 6px; }
.ccp-input{ width:100%; padding:12px; border-radius:12px; border:1px solid var(--ccp-border); outline:none; }
.ccp-textarea{ width:100%; padding:12px; border-radius:12px; border:1px solid var(--ccp-border); outline:none; }

.ccp-cart-item{ background:#fff; border:1px solid var(--ccp-border); border-radius:14px; padding:10px; margin-bottom:10px; }
.ccp-cart-item-title{ font-weight:900; margin-bottom:6px; font-family:var(--ccp-font-title); }
.ccp-cart-item-row{ display:flex; gap:10px; align-items:center; }
.ccp-cart-qty{ flex:1; padding:10px; border-radius:12px; border:1px solid var(--ccp-border); outline:none; }
.ccp-cart-del{ border:none; background:var(--ccp-primary); color:#fff; border-radius:12px; padding:10px 12px; font-weight:900; cursor:pointer; }

@media (max-width: 980px){
  .ccp-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ccp-brand{ min-width:auto; }
}
@media (max-width: 680px){
  /* Opción A: Grid 2 filas en móvil (sin scroll horizontal) */
  .ccp-sections{ display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:12px; overflow:visible; padding:12px 0 10px; }
  .ccp-section{ min-width:0; }
  .ccp-section-ico{ width:64px; height:64px; margin-bottom:8px; }
  .ccp-section-ico img{ width:46px; height:46px; }
  .ccp-section-label{ font-size:15px; }
}
@media (max-width: 520px){
  .ccp-grid{ grid-template-columns: 1fr; }
  .ccp-search{ display:none; }
  .ccp-floating-cart{ right:12px; top:12px; }
}
