@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

:root{
    --black:#0a0a0a;
    --white:#f7f7f5;
    --grey:#8a8a86;
    --line:#242422;
}

*{box-sizing:border-box;margin:0;padding:0;}

body{
    background:var(--black);
    color:var(--white);
    font-family:'Inter',sans-serif;
    line-height:1.5;
    position:relative;
}

/* Textura de grano sutil sobre toda la página, para que el negro no se sienta plano */
body::before{
    content:"";
    position:fixed;inset:0;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    opacity:.22;
    mix-blend-mode:overlay;
    pointer-events:none;
    z-index:999;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px;}

/* ---------- PROMO BANNER (mensajes que rotan) ---------- */
.promo-banner{
    background:var(--black);
    text-align:center;
    padding:9px 16px;
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:0.78rem;
    color:var(--white);
    border-bottom:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;gap:8px;
}
.promo-dot{
    width:6px;height:6px;border-radius:50%;flex-shrink:0;
    transition:opacity .25s ease, background .25s ease;
}
#promoText{transition:opacity .25s ease;display:inline-block;}

/* ---------- MARQUEE ---------- */
.marquee-wrap{
    background:var(--white);
    overflow:hidden;
    white-space:nowrap;
    padding:11px 0;
    position:relative;
    z-index:60;
}
.marquee-track{display:inline-flex;animation:marquee 90s linear infinite;}
.marquee-group{display:inline-flex;align-items:center;}
.marquee-group span{
    color:var(--black);
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:0.8rem;
    letter-spacing:0.3px;
    padding:0 18px;
    white-space:nowrap;
}
@keyframes marquee{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
}
@media(prefers-reduced-motion:reduce){
    .marquee-track{animation:none;}
}

/* ---------- NAV (vidrio) ---------- */
.nav{
    position:sticky;top:0;z-index:50;
    display:flex;align-items:center;gap:18px;
    padding:14px clamp(20px,5vw,40px);
    background:rgba(10,10,10,0.55);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,0.07);
}
.nav-logo{height:22px;width:auto;}
.nav-logo-link{display:flex;}

.nav-menu{display:flex;gap:22px;margin-left:6px;}
.nav-menu a{
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.82rem;
    color:var(--grey);white-space:nowrap;transition:color .15s ease;
}
.nav-menu a:hover{color:var(--white);}

.nav-menu-toggle{display:none;background:none;border:none;color:var(--white);cursor:pointer;padding:4px;}

.nav-icons{display:flex;align-items:center;gap:14px;margin-left:auto;}
.nav-icon-btn{
    background:none;border:none;color:var(--white);cursor:pointer;
    display:flex;align-items:center;position:relative;padding:4px;
}
.cart-count{
    position:absolute;top:-5px;right:-7px;background:var(--white);color:var(--black);
    font-size:0.62rem;font-weight:700;border-radius:50%;
    width:15px;height:15px;display:flex;align-items:center;justify-content:center;
    transition:transform .2s ease;
}
.cart-count.is-hidden{display:none;}

@keyframes cartBump{
    0%{transform:scale(1);}
    35%{transform:scale(1.25);}
    100%{transform:scale(1);}
}
.nav-icon-btn.bump{animation:cartBump .35s ease;}

/* ---------- Notificación de "agregado al carrito" ---------- */
.cart-toast{
    position:fixed;left:50%;bottom:26px;
    transform:translate(-50%,120%);
    display:flex;align-items:center;gap:10px;
    background:var(--white);color:var(--black);
    padding:13px 20px;border-radius:30px;
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.85rem;
    box-shadow:0 10px 30px rgba(0,0,0,0.4);
    z-index:200;max-width:88vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    transition:transform .35s cubic-bezier(.34,1.4,.64,1), opacity .3s ease;
    opacity:0;pointer-events:none;
}
.cart-toast.show{transform:translate(-50%,0);opacity:1;}
.cart-toast-check{
    display:flex;align-items:center;justify-content:center;
    width:20px;height:20px;border-radius:50%;background:#1FA65A;color:#fff;flex-shrink:0;
}

.search-bar{
    max-height:0;overflow:hidden;background:rgba(10,10,10,0.75);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    transition:max-height .3s ease;position:sticky;top:52px;z-index:49;
}
.search-bar.open{max-height:70px;}
.search-bar form{padding:12px clamp(20px,5vw,40px);}
.search-bar input{
    width:100%;padding:11px 14px;background:#151513;border:1px solid var(--line);
    border-radius:8px;color:var(--white);font-family:inherit;font-size:0.9rem;
}
.search-bar input:focus{outline:none;border-color:var(--white);}

@media(max-width:780px){
    .nav-menu-toggle{display:flex;order:-1;}
    .nav-menu{
        display:none;position:absolute;top:100%;left:0;right:0;
        flex-direction:column;gap:14px;
        background:rgba(10,10,10,0.97);backdrop-filter:blur(14px);
        padding:18px clamp(20px,5vw,40px);border-bottom:1px solid var(--line);
    }
    .nav-menu.open{display:flex;}
    .nav{position:sticky;}
}

/* ---------- HERO CAROUSEL ---------- */
.hero-carousel{position:relative;height:min(64vh,520px);min-height:340px;overflow:hidden;}
.hero-slide{
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    background-size:cover;background-position:center;
    opacity:0;transition:opacity .8s ease;
    z-index:1;
}
.hero-slide.active{opacity:1;z-index:2;}
.hero-slide-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.45);}
.hero-slide-content{position:relative;z-index:2;text-align:center;padding:24px;max-width:600px;}
.hero-logo{width:min(420px,65vw);height:auto;margin:0 auto;}
.hero-heading{
    font-family:'Space Grotesk',sans-serif;font-weight:700;color:var(--white);
    font-size:clamp(2rem,6vw,3.4rem);line-height:1.05;letter-spacing:-0.5px;
}
.hero-slide-content p{margin-top:16px;color:#d8d8d5;font-size:1.02rem;}
.hero-slide-link{position:absolute;inset:0;z-index:3;}

.hero-dots{
    position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
    display:flex;gap:8px;z-index:5;
}
.hero-dot{
    width:7px;height:7px;border-radius:50%;border:none;cursor:pointer;
    background:rgba(255,255,255,0.35);transition:background .2s ease, transform .2s ease;
    padding:0;
}
.hero-dot.active{background:#fff;transform:scale(1.3);}

@media(max-width:700px){
    .hero-carousel{height:min(56vh,420px);min-height:300px;}
}

.simple-header{padding:44px 24px 20px;text-align:center;}
.simple-header p{color:var(--grey);font-size:1.05rem;}

/* ---------- COLLECTION PILLS (vidrio) ---------- */
.collections-nav{
    display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
    padding:36px 24px 44px;
}
.pill{
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.82rem;
    padding:9px 18px;border-radius:20px;
    background:rgba(255,255,255,0.05);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,0.12);color:var(--white);
    transition:transform .2s ease, border-color .2s ease, background .2s ease;
}
.pill:hover{transform:translateY(-2px);border-color:rgba(255,255,255,0.35);}
.pill.active{color:var(--black);border-color:transparent;}

/* ---------- PRODUCT GRID ---------- */
.grid-section{padding:0 clamp(20px,5vw,40px) 80px;}
.grid{
    max-width:1100px;margin:0 auto;
    display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
    gap:20px;
}
.card{
    background:#121210;border:1px solid var(--line);border-radius:14px;overflow:hidden;
    display:flex;flex-direction:column;
    opacity:0;transform:translateY(14px);
    animation:cardIn .5s ease forwards;
    transition:border-color .2s ease;
}
.card:hover{border-color:#3a3a36;}
@keyframes cardIn{to{opacity:1;transform:translateY(0);}}

.frame-wrap{position:relative;}
.frame{position:relative;aspect-ratio:4/5;overflow:hidden;cursor:pointer;display:block;}
.face{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.05rem;color:var(--black);
    text-align:center;padding:16px;transition:opacity .45s ease;
}
.face img{width:100%;height:100%;object-fit:cover;}
.face.has-photo{padding:0;}
.front{opacity:1;}
.back{opacity:0;}

/* Computador/mouse: cambia al pasar el mouse por encima */
@media (hover:hover) and (pointer:fine){
    .grid .frame:hover .front{opacity:0;}
    .grid .frame:hover .back{opacity:1;}
}

/* Celular/táctil: cambia al deslizar el dedo sobre la foto (ver script al final de la página) */
.frame.swapped .front{opacity:0;}
.frame.swapped .back{opacity:1;}

/* Puntos indicadores de frente/espalda */
.frame-dots{
    position:absolute;bottom:10px;left:50%;transform:translateX(-50%);
    display:flex;gap:5px;z-index:2;
}
.dot{
    width:5px;height:5px;border-radius:50%;
    background:rgba(255,255,255,0.5);border:1px solid rgba(0,0,0,0.25);
    transition:background .25s ease, transform .25s ease;
}
.dot.active{background:#fff;transform:scale(1.4);}

@media (hover:hover) and (pointer:fine){
    .grid .frame:hover .dot-front{background:rgba(255,255,255,0.5);transform:none;}
    .grid .frame:hover .dot-back{background:#fff;transform:scale(1.4);}
}
.frame.swapped .dot-front{background:rgba(255,255,255,0.5);transform:none;}
.frame.swapped .dot-back{background:#fff;transform:scale(1.4);}

.badge{
    position:absolute;top:10px;left:10px;z-index:2;
    background:rgba(247,247,245,0.9);color:var(--black);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.65rem;
    padding:3px 9px;border-radius:5px;
}
.badge-sold{background:rgba(138,138,134,0.9);}

/* Panel de vidrio detrás del botón que aparece al pasar el mouse */
.buy-row{
    position:absolute;bottom:0;left:0;right:0;padding:14px 12px 12px;z-index:2;
    background:linear-gradient(to top, rgba(0,0,0,.55), transparent);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    transform:translateY(120%);transition:transform .3s ease;
}
.buy-btn{
    display:block;width:100%;text-align:center;background:var(--white);color:var(--black);
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.82rem;
    padding:10px;border-radius:6px;border:none;cursor:pointer;
}
.buy-btn:active{transform:scale(0.97);}

.card-info{padding:14px 16px 20px;}
.card-name{font-weight:500;font-size:0.95rem;}
.card-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px;}
.card-price{color:var(--grey);font-size:0.88rem;}
.card-stock{color:var(--grey);font-size:0.72rem;opacity:0;transition:opacity .3s ease;}
.card:hover .card-stock{opacity:1;}
.card-collection{font-size:0.7rem;margin-top:6px;font-family:'Space Grotesk',sans-serif;font-weight:600;}

/* ---------- PRODUCT DETAIL ---------- */
.product-detail{
    position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;
    gap:50px;padding:50px 24px;overflow:hidden;
    max-width:1100px;margin:0 auto;align-items:center;
}
.detail-glow{
    position:absolute;top:50%;left:25%;transform:translate(-50%,-50%);
    width:600px;height:600px;border-radius:50%;
    filter:blur(90px);opacity:.5;z-index:-1;pointer-events:none;
}
.product-detail .frame{aspect-ratio:4/5;border-radius:8px;}
.product-detail .face img{transition:transform .12s ease-out;cursor:zoom-in;}
.product-frame.zooming .zoom-hint{opacity:0;}

.gallery-arrow{
    position:absolute;top:50%;transform:translateY(-50%);z-index:4;
    width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;
    background:rgba(10,10,10,0.55);color:#fff;
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    display:flex;align-items:center;justify-content:center;
    transition:background .2s ease, transform .15s ease;
}
.gallery-arrow:hover{background:rgba(10,10,10,0.8);}
.gallery-arrow:active{transform:translateY(-50%) scale(0.92);}
.gallery-arrow-prev{left:12px;}
.gallery-arrow-next{right:12px;}

.zoom-hint{
    position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:2;
    display:flex;align-items:center;gap:6px;
    background:rgba(10,10,10,0.55);color:#fff;
    padding:6px 12px;border-radius:20px;font-size:0.72rem;
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    white-space:nowrap;transition:opacity .25s ease;pointer-events:none;
}

@media(max-width:700px){
    .gallery-arrow{width:32px;height:32px;}
    .zoom-hint{display:none;} /* el zoom con mouse no aplica en táctil */
}
.product-detail .face{font-size:1.6rem;border-radius:8px;}
.product-info h1{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:2.1rem;margin-bottom:6px;}
.product-info .price{font-size:1.3rem;margin-bottom:22px;color:var(--grey);}
.product-info .desc{color:var(--grey);margin-bottom:28px;}

.sizes{display:flex;gap:10px;margin-bottom:28px;flex-wrap:wrap;}
.size-option{
    border:1px solid rgba(255,255,255,0.14);background:rgba(255,255,255,0.03);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    padding:10px 16px;border-radius:6px;cursor:pointer;font-size:0.9rem;
}
.size-option.selected{background:var(--white);color:var(--black);border-color:var(--white);}

.btn{
    display:inline-block;background:var(--white);color:var(--black);font-weight:600;
    font-family:'Space Grotesk',sans-serif;padding:16px 28px;border-radius:8px;border:none;
    cursor:pointer;font-size:1rem;
}
.btn:hover{opacity:0.85;}

.stock-note{font-size:0.8rem;color:var(--grey);margin-top:14px;}
.back-link{display:inline-block;padding:24px;color:var(--grey);font-size:0.9rem;}

.pdp-nav-row{padding-top:20px;}
.pdp-back-btn{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(255,255,255,0.05);border:1px solid var(--line);
    color:var(--white);font-size:0.85rem;font-weight:500;
    padding:9px 16px;border-radius:20px;
    transition:border-color .2s ease, background .2s ease;
}
.pdp-back-btn:hover{border-color:rgba(255,255,255,0.3);background:rgba(255,255,255,0.08);}

.pdp-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.pdp-actions .btn{flex:1;min-width:160px;}
.btn-pdp-secondary{
    display:inline-flex;align-items:center;justify-content:center;
    background:transparent;border:1px solid var(--line);color:var(--white);
    font-family:'Space Grotesk',sans-serif;font-weight:600;
    padding:16px 22px;border-radius:8px;font-size:0.95rem;text-align:center;
    transition:border-color .2s ease;
}
.btn-pdp-secondary:hover{border-color:rgba(255,255,255,0.4);}

.footer{padding:40px 24px;text-align:center;color:var(--grey);font-size:0.85rem;border-top:1px solid var(--line);}

/* ---------- Botón de agregar al carrito ---------- */
.quick-add-wrap{margin-top:10px;position:relative;}
.quick-add-btn{
    display:block;width:100%;
    background:var(--white);color:var(--black);border:none;cursor:pointer;
    padding:10px;border-radius:8px;
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.78rem;
    text-align:center;white-space:nowrap;
    transition:opacity .15s ease, transform .1s ease;
}
.quick-add-btn:hover{opacity:0.85;}
.quick-add-btn:active{transform:scale(0.97);}

.size-popover-wrap{list-style:none;}
.size-popover-wrap summary{list-style:none;}
.size-popover-wrap summary::-webkit-details-marker{display:none;}
.size-popover-wrap summary::marker{content:'';}

.size-popover{
    position:absolute;bottom:calc(100% + 8px);left:0;right:0;
    background:#1a1a17;border:1px solid var(--line);border-radius:10px;
    padding:6px;display:flex;flex-direction:column;gap:2px;
    box-shadow:0 10px 28px rgba(0,0,0,0.45);
    animation:popoverIn .15s ease;
    z-index:5;
}
@keyframes popoverIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.size-popover-form{margin:0;}
.size-popover-btn{
    width:100%;background:none;border:none;color:var(--white);
    padding:8px 12px;border-radius:6px;font-family:'Space Grotesk',sans-serif;
    font-weight:600;font-size:0.8rem;cursor:pointer;text-align:center;
}
.size-popover-btn:hover{background:rgba(255,255,255,0.08);}

/* ---------- Carrito en la nav ---------- */
.cart-link{
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.85rem;
    background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);
    padding:8px 16px;border-radius:20px;
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}

/* ---------- Carrito, checkout, pago (páginas internas) ---------- */
.cart-page,.checkout-page{padding:50px 24px 90px;max-width:640px;}
.cart-title{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.8rem;margin-bottom:28px;}
.cart-empty{color:var(--grey);}
.cart-empty-link{color:var(--white);text-decoration:underline;}

.cart-list{display:flex;flex-direction:column;gap:16px;margin-bottom:20px;}
.cart-row{
    display:grid;grid-template-columns:56px 1fr auto auto auto;gap:14px;align-items:center;
    padding-bottom:16px;border-bottom:1px solid var(--line);
}
.cart-thumb{width:56px;height:56px;border-radius:8px;overflow:hidden;background-size:cover;}
.cart-thumb img{width:100%;height:100%;object-fit:cover;}
.cart-row-name{font-weight:500;font-size:0.92rem;}
.cart-row-meta{color:var(--grey);font-size:0.8rem;margin-top:3px;}
.cart-qty{width:56px;padding:8px;background:#151513;border:1px solid var(--line);border-radius:6px;color:var(--white);text-align:center;}
.cart-row-subtotal{font-size:0.9rem;color:var(--grey);white-space:nowrap;}
.cart-remove{background:none;border:none;color:var(--grey);font-size:1.3rem;cursor:pointer;line-height:1;padding:4px 8px;}
.cart-remove:hover{color:var(--white);}

.btn-outline-cart{
    background:transparent;border:1px solid var(--line);color:var(--white);
    font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.85rem;
    padding:10px 18px;border-radius:8px;cursor:pointer;
}

.cart-summary{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);}
.cart-summary-row{display:flex;justify-content:space-between;font-size:0.95rem;padding:6px 0;}
.cart-summary-total{font-weight:600;font-size:1.1rem;border-top:1px solid var(--line);margin-top:8px;padding-top:14px;}
.cart-summary-note{color:var(--grey);font-size:0.8rem;margin:6px 0 18px;}
.cart-checkout-btn{display:block;width:100%;text-align:center;font-family:'Space Grotesk',sans-serif;}

.free-shipping-note{
    font-size:0.82rem;font-weight:600;color:#6fcf97;
    margin:10px 0 18px;padding:10px 14px;background:rgba(111,207,151,0.1);
    border:1px solid rgba(111,207,151,0.3);border-radius:8px;
}
.free-shipping-note-muted{
    color:var(--grey);font-weight:500;background:rgba(255,255,255,0.03);
    border-color:var(--line);
}

.form-section-label-light{
    font-size:0.72rem;text-transform:uppercase;letter-spacing:0.6px;color:var(--grey);
    margin:28px 0 14px;font-weight:600;
}
.form-section-label-light:first-child{margin-top:0;}

.checkout-form{display:flex;flex-direction:column;gap:18px;}
.checkout-form label{font-size:0.85rem;color:var(--grey);display:block;margin-bottom:8px;}
.checkout-form input[type=text]{
    width:100%;padding:12px 14px;background:#151513;border:1px solid var(--line);
    border-radius:8px;color:var(--white);font-family:inherit;font-size:0.95rem;
}
.checkout-form input[type=text]:focus{outline:none;border-color:var(--white);}
.checkout-form .field-row{display:flex;gap:16px;}
.checkout-form .field-row > div{flex:1;}

.shipping-options{display:flex;flex-direction:column;gap:10px;}
.shipping-option{
    display:flex;align-items:center;gap:14px;padding:16px;border-radius:10px;
    background:#151513;border:1px solid var(--line);cursor:pointer;transition:border-color .15s ease;
}
.shipping-option:has(input:checked){border-color:var(--white);}
.shipping-option input{width:auto;}
.shipping-option-name{font-weight:500;font-size:0.92rem;}
.shipping-option-desc{color:var(--grey);font-size:0.78rem;margin-top:2px;}
.shipping-option-price{margin-left:auto;font-weight:600;font-size:0.9rem;}

.checkout-summary{background:#151513;border:1px solid var(--line);border-radius:10px;padding:16px 18px;}

.order-summary-box{background:#151513;border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:20px;}

@media(max-width:600px){
    .cart-row{grid-template-columns:44px 1fr;grid-template-areas:"thumb info" "thumb qty";row-gap:8px;}
    .cart-thumb{grid-area:thumb;width:44px;height:44px;}
    .cart-row-info{grid-area:info;}
    .cart-qty,.cart-row-subtotal,.cart-remove{grid-area:qty;justify-self:start;}
}

@media(max-width:700px){
    .product-detail{grid-template-columns:1fr;padding:40px 20px;}
    .grid{grid-template-columns:repeat(2,1fr);gap:10px;}
    .grid-section{padding:0 14px 50px;}
    .card-info{padding:10px 12px 14px;}
    .card-name{font-size:0.85rem;}
    .card-price{font-size:0.8rem;}
    .card-collection{font-size:0.65rem;}
    .card-stock{font-size:0.65rem;}
    .quick-add-btn{padding:8px;font-size:0.7rem;}
}