:root{
  --aida-navy:#1f3563;
  --aida-navy-2:#16284d;
  --aida-ink:#172033;
  --aida-muted:#647084;
  --aida-line:#dfe5ee;
  --aida-soft:#f5f7fb;
  --aida-soft-2:#eef2f7;
  --aida-gold:#c9a227;
  --aida-gold-soft:#f7efd6;
  --aida-red:#a9343a;
  --aida-green:#5f7443;
  --aida-purple:#683a72;
  --aida-white:#ffffff;
  --aida-whatsapp:#1f8f56;
  --aida-whatsapp-dark:#197949;
  --aida-shadow:0 18px 48px rgba(31,53,99,.10);
  --aida-shadow-lg:0 28px 70px rgba(23,32,51,.14);
}
*{scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--aida-ink);background:#fff;line-height:1.65}.top-strip{background:var(--aida-navy-2);color:#eef2f7;border-bottom:1px solid rgba(255,255,255,.08)}.main-navbar{border-bottom:1px solid var(--aida-line);background:rgba(255,255,255,.96)!important;backdrop-filter:blur(12px)}.site-logo{width:235px;max-height:82px;object-fit:contain}.footer-logo{width:240px;max-width:100%;background:transparent!important;border-radius:0;padding:0;box-shadow:none!important;filter:drop-shadow(0 10px 22px rgba(0,0,0,.18))}.navbar .nav-link{font-weight:700;color:var(--aida-navy);letter-spacing:.01em}.navbar .nav-link.active,.navbar .nav-link:hover{color:var(--aida-red)}.navbar-toggler{border-color:var(--aida-line)}.btn{border-radius:10px;padding:.78rem 1rem;font-weight:700;letter-spacing:.01em;transition:all .18s ease}.btn-lg{border-radius:12px;padding:.95rem 1.25rem}.btn-whatsapp{background:var(--aida-whatsapp);border-color:var(--aida-whatsapp);color:#fff;box-shadow:0 12px 26px rgba(31,143,86,.18)}.btn-whatsapp:hover{background:var(--aida-whatsapp-dark);border-color:var(--aida-whatsapp-dark);color:#fff;transform:translateY(-1px)}.btn-aida{background:var(--aida-navy);border-color:var(--aida-navy);color:#fff;box-shadow:0 12px 26px rgba(31,53,99,.16)}.btn-aida:hover{background:var(--aida-navy-2);border-color:var(--aida-navy-2);color:#fff;transform:translateY(-1px)}.btn-gold{background:var(--aida-gold);border-color:var(--aida-gold);color:#1b2435;box-shadow:0 12px 26px rgba(201,162,39,.16)}.btn-gold:hover{background:#b38f22;border-color:#b38f22;color:#111827;transform:translateY(-1px)}.btn-outline-aida{border-color:var(--aida-navy);color:var(--aida-navy);background:#fff}.btn-outline-aida:hover{background:var(--aida-navy);color:#fff;transform:translateY(-1px)}.btn-outline-soft{border-color:var(--aida-line);color:var(--aida-navy);background:#fff}.btn-outline-soft:hover{border-color:var(--aida-navy);background:var(--aida-soft);color:var(--aida-navy)}.badge{font-weight:700;letter-spacing:.02em;border-radius:999px;padding:.55rem .75rem}.badge-aida{background:var(--aida-gold-soft);color:#6c5413;border:1px solid rgba(201,162,39,.28)}.badge-service{background:#eef2f7;color:var(--aida-navy);border:1px solid var(--aida-line)}.hero-section{background:linear-gradient(135deg,#f7f8fb 0%,#ffffff 48%,#eef2f7 100%);color:var(--aida-ink);overflow:hidden;position:relative;border-bottom:1px solid var(--aida-line)}.hero-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 8% 5%,rgba(201,162,39,.16),transparent 30%),radial-gradient(circle at 95% 10%,rgba(31,53,99,.08),transparent 34%);pointer-events:none}.hero-section .container{position:relative;z-index:1}.hero-kicker{display:inline-flex;align-items:center;gap:.5rem;color:var(--aida-navy);background:#fff;border:1px solid var(--aida-line);border-radius:999px;padding:.55rem .85rem;font-weight:800;box-shadow:0 8px 22px rgba(31,53,99,.06)}.hero-title{color:var(--aida-navy);letter-spacing:-.03em}.hero-card{background:#fff;border:1px solid var(--aida-line);border-radius:24px;box-shadow:var(--aida-shadow-lg);position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--aida-navy),var(--aida-gold),var(--aida-red))}.hero-image{border-radius:18px}.section-title span{color:var(--aida-navy)}.section-eyebrow{color:var(--aida-gold);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.category-card{border:1px solid var(--aida-line);border-radius:18px;transition:.2s;background:#fff;box-shadow:0 10px 28px rgba(31,53,99,.04)}.category-card:hover{transform:translateY(-3px);box-shadow:var(--aida-shadow);border-color:rgba(31,53,99,.26)}.category-card i{font-size:32px;color:var(--aida-navy)}.product-card{border-radius:18px;overflow:hidden;transition:.2s;border:1px solid var(--aida-line)!important;background:#fff}.product-card:hover{transform:translateY(-4px);box-shadow:var(--aida-shadow)!important}.product-img-wrap{background:linear-gradient(135deg,#f8fafc,#eef2f7)}.product-card img{height:245px;object-fit:cover}.product-badge{position:absolute;left:16px;top:16px;background:var(--aida-navy);color:#fff;border-radius:999px;padding:.5rem .78rem;box-shadow:0 10px 24px rgba(31,53,99,.18)}.feature-box{background:#fff;border-radius:18px;border:1px solid var(--aida-line);box-shadow:0 12px 30px rgba(31,53,99,.05)}.feature-icon{width:46px;height:46px;border-radius:14px;background:var(--aida-soft-2);color:var(--aida-navy);display:flex;align-items:center;justify-content:center;font-size:24px}.contact-card{border-radius:18px;border:1px solid var(--aida-line);background:#fff;box-shadow:var(--aida-shadow)}.footer-section{background:linear-gradient(135deg,#111827,var(--aida-navy-2));color:#e5e7eb;border-top:1px solid rgba(255,255,255,.08)}.footer-section a:not(.btn){color:#f4e5ad;text-decoration:none}.footer-section a:not(.btn):hover{color:#fff}.footer-section h5{color:#fff}.footer-actions .btn{border-radius:12px;padding:.82rem 1rem;font-weight:800}.btn-footer-whatsapp{background:var(--aida-whatsapp);border-color:var(--aida-whatsapp);color:#fff;box-shadow:0 12px 26px rgba(31,143,86,.22)}.btn-footer-whatsapp:hover,.btn-footer-whatsapp:focus{background:var(--aida-whatsapp-dark);border-color:var(--aida-whatsapp-dark);color:#fff;transform:translateY(-1px)}.btn-footer-impresiones{background:#cfefff;border-color:#a8d7ef;color:var(--aida-navy);box-shadow:0 12px 26px rgba(31,53,99,.12)}.btn-footer-impresiones:hover,.btn-footer-impresiones:focus{background:#b8e4fa;border-color:#8ecbec;color:var(--aida-navy-2);transform:translateY(-1px)}.floating-whatsapp{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;background:var(--aida-whatsapp);color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;box-shadow:0 14px 32px rgba(31,143,86,.35);z-index:999;text-decoration:none}.floating-whatsapp:hover{color:#fff;background:var(--aida-whatsapp-dark)}.breadcrumb-section{background:linear-gradient(90deg,#f8fafc,#fff);border-bottom:1px solid var(--aida-line)}.form-control,.form-select{border-radius:10px;padding:.82rem 1rem;border-color:#d7dee9}.form-control:focus,.form-select:focus{border-color:var(--aida-navy);box-shadow:0 0 0 .2rem rgba(31,53,99,.11)}.form-text{color:var(--aida-muted)}.mockup-panel{background:#fff;border-radius:20px;padding:18px;box-shadow:var(--aida-shadow);border:1px solid var(--aida-line)}.corporate-banner{background:#fff;border:1px solid var(--aida-line);border-radius:24px;overflow:hidden;position:relative;box-shadow:var(--aida-shadow-lg)}.corporate-banner:before{content:"";position:absolute;left:0;top:0;right:0;height:6px;background:linear-gradient(90deg,var(--aida-navy),var(--aida-gold),var(--aida-red),var(--aida-green),var(--aida-purple));opacity:.82}.corporate-banner .banner-visual{background:linear-gradient(135deg,#f5f7fb,#eef2f7);border-radius:18px;border:1px solid var(--aida-line);padding:14px}.service-pill{display:inline-flex;align-items:center;gap:.45rem;border-radius:999px;padding:.55rem .85rem;background:#fff;border:1px solid var(--aida-line);color:var(--aida-navy);font-weight:700;box-shadow:0 6px 18px rgba(31,53,99,.05)}.portfolio-card{border:1px solid var(--aida-line);border-radius:18px;overflow:hidden;box-shadow:0 16px 38px rgba(31,53,99,.07);height:100%;background:#fff}.portfolio-card img{height:255px;object-fit:cover;background:var(--aida-soft-2)}.portfolio-upload-box{border:1px solid var(--aida-line);background:linear-gradient(135deg,#fff,#f8fafc);border-radius:22px;box-shadow:var(--aida-shadow)}.alert-aida{border:1px solid rgba(201,162,39,.36);background:var(--aida-gold-soft);color:#5f4a11}.payment-card{border:1px solid var(--aida-line);background:#fff;border-radius:18px;box-shadow:var(--aida-shadow);height:100%}.payment-card .label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--aida-muted);font-weight:800}.payment-value{font-size:1.2rem;font-weight:900;color:var(--aida-navy)}.policy-card{border:1px solid var(--aida-line);background:#fff;border-radius:18px;padding:1.35rem;box-shadow:0 10px 28px rgba(31,53,99,.05);height:100%}.policy-card i{color:var(--aida-navy);font-size:28px}.upload-result-card{background:#fff;border:1px solid var(--aida-line);border-radius:18px;box-shadow:var(--aida-shadow)}.file-chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--aida-soft);border:1px solid var(--aida-line);color:var(--aida-navy);border-radius:999px;padding:.45rem .7rem;font-weight:700;font-size:.88rem}.text-aida-navy{color:var(--aida-navy)!important}.text-aida-red{color:var(--aida-red)!important}.text-aida-muted{color:var(--aida-muted)!important}.bg-aida-soft{background:var(--aida-soft)!important}.bg-aida-yellow-soft{background:var(--aida-gold-soft)!important}.bg-light{background:var(--aida-soft)!important}.shadow{box-shadow:var(--aida-shadow)!important}.list-group-item{border-color:var(--aida-line)}.list-group-item.active{background:var(--aida-navy);border-color:var(--aida-navy);color:#fff}.list-group-item-action:hover{background:var(--aida-soft);color:var(--aida-navy)}.fw-black{font-weight:900}.text-muted{color:var(--aida-muted)!important}code{color:var(--aida-red)}@media(max-width:991px){.site-logo{width:215px}.navbar-nav{padding-top:1rem}}@media(max-width:767px){.site-logo{width:170px}.footer-logo{width:220px}.hero-section{text-align:center}.product-card img{height:210px}.portfolio-card img{height:210px}.floating-whatsapp{right:16px;bottom:16px}.corporate-banner{border-radius:18px}}


/* V4.2 - Panel administrativo y comprobantes */
.admin-page{background:linear-gradient(135deg,#f5f7fb 0%,#ffffff 48%,#eef2f7 100%)}
.admin-card{background:#fff;border:1px solid var(--aida-line);border-radius:22px;box-shadow:var(--aida-shadow-lg)}
.admin-logo{width:230px;max-width:100%;height:auto;object-fit:contain}
.admin-form .form-control,.admin-card .form-control{min-height:48px}
.password-group .btn{border-top-left-radius:0;border-bottom-left-radius:0}
.admin-stat{background:#fff;border:1px solid var(--aida-line);border-radius:18px;box-shadow:var(--aida-shadow);padding:1.5rem;height:100%}
.admin-stat span{display:block;font-size:2.25rem;font-weight:900;color:var(--aida-navy);line-height:1}
.admin-stat p{margin:.55rem 0 0;color:var(--aida-muted);font-weight:700}
.admin-list .list-group-item{border-color:var(--aida-line);padding:1rem 1.1rem;color:var(--aida-ink)}
.admin-list .list-group-item:hover{background:var(--aida-soft);color:var(--aida-navy)}
/* V4.3 - Reparación del menú lateral de productos
   El panel ya no invade el footer: en escritorio se mantiene fijo,
   pero con alto controlado y scroll interno. En móviles queda normal. */
.product-sidebar{position:relative;z-index:1}
.product-sidebar .category-scroll{padding-right:.25rem}
.category-scroll::-webkit-scrollbar{width:8px}.category-scroll::-webkit-scrollbar-thumb{background:var(--aida-line);border-radius:999px}
@media(min-width:992px){
  .product-sidebar{
    position:sticky;
    top:110px;
    max-height:calc(100vh - 140px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .product-sidebar .category-scroll{max-height:none;overflow:visible}
}
@media(max-width:991px){
  .product-sidebar{max-height:none;overflow:visible}
  .product-sidebar .category-scroll{max-height:360px;overflow-y:auto}
}

.file-chip{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--aida-line);background:#fff;color:var(--aida-navy);padding:.55rem .75rem;border-radius:999px;font-weight:700;box-shadow:0 8px 20px rgba(31,53,99,.06)}
.file-chip:hover{background:var(--aida-soft);color:var(--aida-navy)}

/* V4.4 - Conteo y filtrado estable de categorías del catálogo */
.category-count-badge{
  min-width:30px;
  height:26px;
  padding:0 .55rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.78rem;
  font-weight:900;
  background:#eef2f7;
  color:var(--aida-navy);
  border:1px solid var(--aida-line);
  flex:0 0 auto;
}
.list-group-item.active .category-count-badge{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.22);
  color:#fff;
}
.min-w-0{min-width:0}
.product-sidebar .list-group-item span span{
  overflow:hidden;
  text-overflow:ellipsis;
}
