@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&family=Lato:wght@300;400;700&display=swap');
:root{
  --bg-color:#FAF9F6; --bg-alt:#F3F1EC; --text-main:#232323; --text-muted:#7d7d7d;
  --gold:#C5A059; --gold-hover:#A88646; --border-light:#E8E5DF; --white:#FFFFFF;
  --green:#2e7d32; --red:#c0554d;
  --shadow-xs:0 2px 10px rgba(0,0,0,.04); --shadow-sm:0 6px 22px rgba(0,0,0,.06);
  --shadow-md:0 14px 34px rgba(0,0,0,.10); --shadow-lg:0 25px 55px rgba(0,0,0,.16);
  --fs-h1:clamp(2.1rem,5vw + .5rem,3.6rem); --fs-h2:clamp(1.6rem,2.5vw + .8rem,2.3rem);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Lato',sans-serif;background:var(--bg-color);color:var(--text-main);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;}
body.scroll-locked{overflow:hidden;}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:600;letter-spacing:.01em;}
.hidden{display:none!important;}

.top-banner-marquee{width:100%;background:#1f1f1f;color:var(--gold);overflow:hidden;white-space:nowrap;padding:.7rem 0;}
.marquee-track{display:inline-flex;animation:marquee 30s linear infinite;}
.marquee-item{padding:0 2.5rem;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.site-nav{position:sticky;top:0;z-index:800;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;width:100%;padding:1rem clamp(1rem,4vw,3rem);border-bottom:1px solid var(--border-light);background:var(--white);}
.site-brand{font-family:'Playfair Display',serif;font-weight:700;font-size:1.1rem;letter-spacing:.03em;color:var(--text-main);text-decoration:none;}
.nav-links{display:flex;gap:.6rem;flex-wrap:wrap;}
.nav-btn{display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:var(--gold-hover);border:1px solid var(--gold);padding:.55rem 1.1rem;font-family:'Lato',sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;border-radius:20px;cursor:pointer;transition:.25s ease;}
.nav-btn:hover{background:var(--gold);color:var(--white);box-shadow:var(--shadow-sm);}
.nav-btn.active{background:var(--gold);color:var(--white);}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.6rem);}
.dm-cols-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:640px){.grid{grid-template-columns:repeat(2,1fr);}.dm-cols-2{grid-template-columns:1fr;}}

.card{position:relative;background:var(--white);border:1px solid var(--border-light);border-radius:2px;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;overflow:hidden;color:inherit;text-decoration:none;transition:box-shadow .3s ease,border-color .3s ease;}
.card.clickable{cursor:pointer;}
.card.clickable:hover{box-shadow:var(--shadow-md);border-color:var(--gold);}
.card-content{padding:clamp(1.3rem,3vw,1.9rem) clamp(1rem,3vw,1.5rem);display:flex;flex-direction:column;flex-grow:1;text-align:center;gap:.6rem;}
.card-title{font-size:clamp(1.25rem,2.2vw,1.65rem);font-weight:600;}
.card-tagline,.card-text{font-size:.88rem;color:var(--text-muted);}
.img-container{overflow:hidden;}
.card-img{width:100%;height:clamp(200px,32vw,300px);object-fit:cover;display:block;}
.card-photo{height:clamp(180px,28vw,240px);background:var(--bg-alt);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.8rem;font-style:italic;text-align:center;padding:1rem;overflow:hidden;}
.card-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.card-link{margin-top:auto;font-weight:700;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hover);}
.sold-badge{position:absolute;top:12px;left:12px;background:#1f1f1f;color:var(--white);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;border-radius:20px;z-index:2;}
.card.is-sold .card-img{filter:grayscale(.8);opacity:.7;}

.btn-elegant{margin-top:auto;background:var(--white);color:var(--text-main);border:1px solid var(--text-main);padding:.8rem 1.4rem;font-family:'Lato',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:.25s ease;}
.btn-elegant:hover{background:var(--text-main);color:var(--white);box-shadow:var(--shadow-sm);}
.btn-elegant:disabled{opacity:.45;cursor:not-allowed;}
.btn-gold{background:var(--gold);color:var(--white);border:none;width:100%;padding:1rem;font-family:'Lato',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:.25s ease;margin-top:1rem;box-shadow:var(--shadow-xs);}
.btn-gold:hover{background:var(--gold-hover);box-shadow:var(--shadow-md);}
.btn-gold:disabled{opacity:.6;cursor:wait;}

.container{display:flex;flex-wrap:wrap;max-width:1440px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,4vw,2rem);gap:clamp(1.5rem,4vw,4rem);align-items:flex-start;}
.catalog{flex:2 1 560px;min-width:0;}
.catalog-toolbar{position:relative;display:flex;justify-content:center;margin-bottom:clamp(2rem,5vw,3rem);}
.hamburger-btn{background:var(--white);border:1px solid var(--border-light);padding:.65rem 1.3rem;font-family:'Lato',sans-serif;font-weight:700;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:20px;transition:.25s ease;}
.hamburger-btn:hover{border-color:var(--gold);color:var(--gold-hover);}
.sort-menu{display:none;flex-direction:column;position:absolute;top:110%;background:var(--white);border:1px solid var(--border-light);box-shadow:var(--shadow-md);z-index:50;min-width:220px;border-radius:2px;}
.sort-menu.open{display:flex;}
.sort-menu button{background:transparent;border:none;padding:.85rem 1.2rem;text-align:left;font-family:'Lato',sans-serif;font-size:.85rem;cursor:pointer;border-bottom:1px solid var(--border-light);}
.sort-menu button:last-child{border-bottom:none;}
.sort-menu button:hover{background:var(--bg-alt);color:var(--gold-hover);}
.empty-note{grid-column:1/-1;text-align:center;color:var(--text-muted);font-style:italic;padding:2rem 0;}

.cart-panel{flex:1 1 320px;min-width:0;background:var(--white);border:1px solid var(--border-light);border-radius:2px;padding:clamp(1.6rem,4vw,3rem) clamp(1.2rem,3vw,2rem);height:fit-content;position:sticky;top:90px;max-height:calc(100vh - 110px);overflow-y:auto;box-shadow:var(--shadow-sm);}
.cart-title{font-size:var(--fs-h2);text-align:center;margin-bottom:2rem;display:flex;align-items:center;justify-content:center;gap:.5rem;position:sticky;top:0;background:var(--white);padding-bottom:.5rem;z-index:2;}
.cart-badge{font-family:'Lato',sans-serif;font-weight:700;font-size:.72rem;background:var(--gold);color:var(--white);border-radius:20px;padding:.2rem .6rem;display:none;}
.cart-badge.show{display:inline-block;}
.cart-empty{font-style:italic;color:var(--text-muted);text-align:center;padding:2rem 0;}
.cart-item{padding:1.3rem 0;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;gap:10px;}
.cart-item:last-child{border-bottom:none;}
.cart-item-details strong{display:block;font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:600;}
.cart-item-details span.var{font-size:.83rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;}
.qty-controls{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap;}
.qty-box{display:flex;align-items:center;border:1px solid var(--border-light);border-radius:20px;padding:0 5px;}
.qty-btn{background:transparent;border:none;cursor:pointer;font-size:1.1rem;font-weight:700;color:var(--text-muted);width:24px;height:24px;}
.qty-btn:hover{color:var(--gold);}
.qty-number{font-size:.95rem;width:20px;text-align:center;font-weight:700;}
.del-btn{background:transparent;color:var(--text-muted);border:none;font-size:1.4rem;cursor:pointer;}
.del-btn:hover{color:var(--red);}
.line-total{font-family:'Playfair Display',serif;font-weight:600;font-size:1.3rem;margin-top:10px;}
.delivery-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-light);}
.delivery-section h3{font-size:1.2rem;margin-bottom:1rem;}
.promo-banner{background:var(--bg-color);color:var(--gold-hover);border:1px solid var(--gold);padding:.75rem;margin-bottom:20px;text-align:center;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:2px;}
.free-delivery-msg{color:var(--green);padding:10px 0;margin-bottom:10px;text-align:center;font-style:italic;border-bottom:1px solid var(--border-light);}
.delivery-input{width:100%;padding:.8rem 0;border:none;border-bottom:1px solid var(--border-light);font-family:'Lato',sans-serif;font-size:.95rem;background:transparent;color:var(--text-main);margin-bottom:15px;}
.delivery-input:focus{outline:none;border-bottom-color:var(--gold);}
.cart-total{font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(1.7rem,3vw,2.2rem);margin:1.2rem 0;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-light);padding-top:1rem;flex-wrap:wrap;gap:.4rem;}
.cart-total .lbl{font-size:1.1rem;font-family:'Lato',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.1em;}
.discount-line{display:flex;justify-content:space-between;font-size:.85rem;color:var(--green);margin-top:.4rem;}
.field-label{display:block;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:1rem 0 .4rem;}
.field-select{width:100%;padding:.8rem;border:1px solid var(--border-light);background:var(--white);font-family:'Lato',sans-serif;font-size:.9rem;cursor:pointer;border-radius:2px;}
.field-select:focus{outline:none;border-color:var(--gold);}
.disclaimer-box{font-size:.8rem;color:var(--text-muted);text-align:center;margin-bottom:1.4rem;font-style:italic;}
.btn-green{background:var(--green)!important;}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;justify-content:center;align-items:center;z-index:1000;padding:1rem;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--white);width:100%;max-width:550px;padding:clamp(1.8rem,5vw,3rem);position:relative;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto;border-radius:3px;}
.modal-box-wide{max-width:820px;}
.modal-box-narrow{max-width:420px;}
.close-btn{position:absolute;top:16px;right:20px;background:transparent;border:none;font-size:1.8rem;color:var(--text-muted);cursor:pointer;z-index:5;}
.close-btn:hover{color:var(--text-main);}
.modal-title{font-size:clamp(1.9rem,4vw,2.5rem);margin-bottom:1rem;text-align:center;}
.modal-description{font-size:1rem;margin-bottom:1.6rem;color:var(--text-muted);text-align:center;font-style:italic;}
.modal-body{font-size:1rem;white-space:pre-line;color:var(--text-main);}
.option-label{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border-light);padding:1.1rem;margin-bottom:.9rem;cursor:pointer;border-radius:2px;}
.option-label:hover{border-color:var(--gold);box-shadow:var(--shadow-xs);}
.option-label input{accent-color:var(--gold);margin-right:15px;transform:scale(1.15);}
.option-price{font-family:'Playfair Display',serif;font-weight:600;font-size:1.2rem;}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--text-main);color:var(--white);padding:.85rem 1.6rem;font-size:.88rem;font-weight:700;border-radius:4px;display:none;z-index:1200;box-shadow:var(--shadow-lg);max-width:92vw;text-align:center;}
.toast.show{display:block;}

.content-page,.dm-page{max-width:1200px;margin:0 auto;padding:clamp(3rem,6vw,5rem) clamp(1rem,4vw,2rem) clamp(4rem,8vw,6rem);}
.dm-page{max-width:1100px;}
.content-hero,.dm-hero{text-align:center;margin-bottom:clamp(2.5rem,5vw,3.5rem);}
.dm-title{font-size:var(--fs-h1);letter-spacing:.02em;}
.dm-title::after{content:'';display:block;width:70px;height:2px;background:var(--gold);margin:20px auto 0;}
.dm-subtitle{max-width:640px;margin:1.4rem auto 0;color:var(--text-muted);font-size:1.05rem;font-style:italic;}
.dm-vision,.dm-origin{max-width:760px;margin:0 auto clamp(2rem,4vw,3rem);text-align:center;font-size:1.02rem;}
.dm-origin{color:var(--text-muted);font-size:.92rem;font-style:italic;border-top:1px dashed var(--border-light);padding-top:1.6rem;}
.dm-note{font-size:.85rem;color:var(--text-muted);font-style:italic;}
.section-title{text-align:center;font-size:clamp(1.6rem,2.5vw + .8rem,2.1rem);margin:clamp(2.5rem,5vw,3.5rem) 0 clamp(1.6rem,3vw,2.2rem);}
.section-title::after{content:'';display:block;width:50px;height:2px;background:var(--gold);margin:14px auto 0;}

.ingrediente-item{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.1rem;border:1px solid var(--border-light);margin-bottom:.6rem;border-radius:2px;background:var(--white);}
.ingrediente-item.cubierto{opacity:.6;}
.estado-badge{font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.3rem .7rem;border-radius:20px;white-space:nowrap;}
.estado-badge.critico{background:#fbe9e7;color:var(--red);border:1px solid var(--red);}
.estado-badge.punto-medio{background:var(--bg-alt);color:var(--gold-hover);border:1px solid var(--gold);}
.estado-badge.cubierto{background:#e8f5e9;color:var(--green);border:1px solid var(--green);}
.badge-card{background:var(--white);border:1px solid var(--border-light);border-radius:2px;padding:1.4rem 1rem;text-align:center;box-shadow:var(--shadow-xs);}
.badge-emoji{font-size:2rem;margin-bottom:.5rem;}
.badge-name{font-family:'Playfair Display',serif;font-weight:600;font-size:1.05rem;margin-bottom:.3rem;}
.badge-range{font-size:.78rem;color:var(--text-muted);}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;width:0;}

.academy-card-content{padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:.4rem;text-align:left;flex-grow:1;}
.academy-card-img{height:150px;}
.academy-author{font-size:.72rem;color:var(--gold-hover);text-transform:uppercase;letter-spacing:.1em;font-weight:700;}
.academy-desc-preview{font-size:.85rem;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.academy-meta{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.78rem;color:var(--text-muted);margin:.2rem 0;align-items:center;}
.academy-meta span::before{content:'✦ ';color:var(--gold);}
.academy-price-preview{font-family:'Playfair Display',serif;font-weight:600;font-size:1.05rem;color:var(--gold-hover);}
.preventa-badge{display:inline-block;background:var(--bg-alt);border:1px solid var(--gold);color:var(--gold-hover);font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.25rem .55rem;border-radius:20px;align-self:flex-start;}
.academy-detail-grid{display:flex;gap:1.8rem;flex-wrap:wrap;text-align:left;}
.academy-detail-photo{flex:1 1 230px;max-width:280px;}
.academy-detail-photo img{width:100%;height:100%;max-height:300px;object-fit:cover;border-radius:2px;display:block;}
.academy-detail-info{flex:2 1 300px;min-width:0;}
.academy-detail-info .modal-title{text-align:left;margin-bottom:.2rem;font-size:clamp(1.5rem,3vw,2rem);}
.academy-contents{list-style:none;font-size:.85rem;margin:.6rem 0;}
.academy-contents li{padding:.2rem 0 .2rem 1.1rem;position:relative;}
.academy-contents li::before{content:'✦';position:absolute;left:0;color:var(--gold);font-size:.7rem;top:.35rem;}
.modulos-link-btn{background:transparent;border:none;color:var(--gold-hover);text-decoration:underline;font-family:'Lato',sans-serif;font-size:.78rem;font-weight:700;cursor:pointer;}
.modulos-list{list-style:none;}
.modulos-list li{padding:.7rem 0;border-bottom:1px solid var(--border-light);font-size:.9rem;display:flex;gap:.6rem;}
.modulos-list li:last-child{border-bottom:none;}
.modulos-list li::before{content:'▪';color:var(--gold);}
.academy-floating-cart{position:fixed;bottom:0;left:0;right:0;background:var(--text-main);color:var(--white);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,2.5rem);z-index:900;box-shadow:0 -8px 25px rgba(0,0,0,.15);transform:translateY(100%);transition:transform .3s ease;}
.academy-floating-cart.show{transform:translateY(0);}
.academy-floating-cart strong{color:var(--gold);font-family:'Playfair Display',serif;font-size:1.2rem;margin:0 .3rem;}
.academy-floating-cart button{background:var(--gold);color:var(--white);border:none;padding:.7rem 1.4rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;cursor:pointer;}
.academy-floating-cart button:hover{background:var(--gold-hover);}
.suggestion-item{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border-light);padding:.8rem 1rem;margin-bottom:.7rem;border-radius:2px;}
.suggestion-item button{background:transparent;border:1px solid var(--gold);color:var(--gold-hover);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.45rem .8rem;cursor:pointer;}
.suggestion-item button:hover{background:var(--gold);color:var(--white);}
.checkout-details-box{padding:1.3rem 0;margin-bottom:1.3rem;max-height:50vh;overflow-y:auto;}
.checkout-row{display:flex;justify-content:space-between;margin-bottom:.75rem;gap:1rem;}
.checkout-price{font-family:'Playfair Display',serif;font-weight:600;font-size:1.2rem;}
.checkout-total-row{border-top:1px solid var(--border-light);padding-top:1.4rem;margin-top:1.4rem;font-size:clamp(1.5rem,3vw,1.8rem);font-family:'Playfair Display',serif;font-weight:700;display:flex;justify-content:space-between;}

.site-footer{background:#1f1f1f;color:var(--white);padding:1.4rem clamp(1rem,4vw,2rem);}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
.footer-brand{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--gold);}
.footer-socials{display:flex;gap:.7rem;flex-wrap:wrap;}
.social-icon{width:38px;height:38px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);text-decoration:none;font-size:.65rem;font-weight:700;transition:.25s ease;}
.social-icon:hover{background:var(--gold);color:#1f1f1f;}

@media (max-width:1024px){.cart-panel{position:static;max-height:none;overflow:visible;}.cart-title{position:static;}}
@media (max-width:768px){.container{padding:2rem 1rem;gap:2rem;}.card-img{height:220px;}}
@media (max-width:640px){
  #academy-grid{grid-template-columns:1fr;}
  #academy-grid .card{flex-direction:row;}
  #academy-grid .img-container{flex:0 0 120px;}
  #academy-grid .academy-card-img{width:120px;height:100%;min-height:150px;}
}
