/* ════════════════════════════════════════
   MAISON — Global Design System
════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=Jost:wght@200;300;400;500;600&family=IM+Fell+English:ital@0;1&display=swap');

/* ── TOKENS ── */
:root{
  --ink:   #0B0A08;
  --ink2:  #161410;
  --ink3:  #201E19;
  --ink4:  #2A2820;
  --g:     #C9A96E;
  --g2:    #E3CB96;
  --g3:    #9A7A48;
  --cream: #F6F0E4;
  --fog:   #7A7060;
  --haze:  #4A4438;
  --bd:    rgba(201,169,110,.15);
  --bd2:   rgba(201,169,110,.32);
  --glow:  0 0 60px rgba(201,169,110,.08);
  --ease:  cubic-bezier(.16,1,.3,1);
  --ease2: cubic-bezier(.77,0,.175,1);
}

/* ── BASE ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Jost',sans-serif;background:var(--ink);color:var(--cream);overflow-x:hidden;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{display:block;max-width:100%;}
button,input,select,textarea{font-family:inherit;}
::-webkit-scrollbar{width:3px;}
::-webkit-scrollbar-track{background:var(--ink);}
::-webkit-scrollbar-thumb{background:var(--g3);}

/* ── CURSOR ── */
body{cursor:none;}
#cur-dot,#cur-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:99999;border-radius:50%;transform:translate(-50%,-50%);}
#cur-dot{width:7px;height:7px;background:var(--g2);transition:width .2s,height .2s,background .2s;}
#cur-ring{width:38px;height:38px;border:1px solid rgba(201,169,110,.55);transition:width .35s var(--ease),height .35s var(--ease),opacity .3s,border-color .3s;}
body.hov #cur-dot{width:5px;height:5px;}
body.hov #cur-ring{width:58px;height:58px;border-color:var(--g);}

/* ════════════════════════════
   KEYFRAMES
════════════════════════════ */
/* Ken Burns */
@keyframes kb1{from{transform:scale(1)   translate(0,0)}       to{transform:scale(1.18) translate(-2%,-1.5%)}}
@keyframes kb2{from{transform:scale(1.15)translate(1.5%,.5%)}  to{transform:scale(1)   translate(-1%,1%)}}
@keyframes kb3{from{transform:scale(1)   translate(1%,0)}      to{transform:scale(1.14)translate(-1.5%,1%)}}
@keyframes kb4{from{transform:scale(1.1) translate(0,1%)}      to{transform:scale(1)   translate(1%,-1%)}}

/* Slide pan for hero slides */
@keyframes slide-cross{0%{opacity:0}5%{opacity:1}92%{opacity:1}100%{opacity:0}}

/* Reveal */
@keyframes riseUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideR{from{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideL{from{opacity:0;transform:translateX(50px)} to{opacity:1;transform:translateX(0)}}
@keyframes scaleUp{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}
@keyframes clipReveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}

/* Loader */
@keyframes loaderBar{from{width:0}to{width:100%}}
@keyframes loaderName{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

/* Marquee */
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Float */
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* Pulse */
@keyframes pulseRing{0%{transform:scale(1);opacity:.6}100%{transform:scale(2.4);opacity:0}}

/* Shimmer sweep */
@keyframes sweep{0%{left:-100%}100%{left:100%}}

/* Number count spin */
@keyframes spinIn{from{transform:rotateX(-90deg);opacity:0}to{transform:rotateX(0deg);opacity:1}}

/* Stagger delays */
.d1{animation-delay:.1s!important}.d2{animation-delay:.2s!important}
.d3{animation-delay:.3s!important}.d4{animation-delay:.4s!important}
.d5{animation-delay:.5s!important}.d6{animation-delay:.6s!important}
.d7{animation-delay:.7s!important}.d8{animation-delay:.8s!important}

/* Scroll reveal classes */
.rev{opacity:0;}
.rev.in{animation:riseUp .9s var(--ease) forwards;}
.rev-l.in{animation:slideR .9s var(--ease) forwards;}
.rev-r.in{animation:slideL .9s var(--ease) forwards;}
.rev-s.in{animation:scaleUp .8s var(--ease) forwards;}
@media(prefers-reduced-motion:reduce){.rev,.rev-l,.rev-r,.rev-s{opacity:1!important;animation:none!important;}}

/* ════════════════════════════
   LOADER
════════════════════════════ */
#LOADER{
  position:fixed;inset:0;z-index:9999;background:var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;
  transition:opacity .8s ease .1s,visibility .8s ease .1s;
}
#LOADER.gone{opacity:0;visibility:hidden;pointer-events:none;}
.ld-name{
  font-family:'Cormorant Garamond',serif;font-size:clamp(2.5rem,5vw,5rem);
  font-weight:300;letter-spacing:.55em;color:var(--g);
  clip-path:inset(0 100% 0 0);
  animation:loaderName 1.3s var(--ease2) .3s forwards;
}
.ld-bar-wrap{width:150px;height:1px;background:rgba(255,255,255,.06);}
.ld-bar{height:1px;background:var(--g);width:0;animation:loaderBar 1.5s var(--ease2) .5s forwards;}
.ld-tag{font-family:'Jost',sans-serif;font-size:.55rem;letter-spacing:.55em;text-transform:uppercase;color:var(--fog);opacity:0;animation:fadeIn .6s ease 1.3s forwards;}

/* ════════════════════════════
   HEADER
════════════════════════════ */
#HDR{
  position:fixed;top:0;left:0;right:0;z-index:600;height:74px;
  padding:0 4rem;display:flex;align-items:center;justify-content:space-between;
  transition:background .5s,border-color .5s,backdrop-filter .5s;
}
#HDR.solid{
  background:rgba(11,10,8,.97);border-bottom:1px solid var(--bd);
  backdrop-filter:blur(16px);box-shadow:0 2px 40px rgba(0,0,0,.5);
}
.hdr-logo{display:flex;flex-direction:column;text-decoration:none;gap:1px;}
.hdr-logo-img{height:36px;object-fit:contain;display:none;}
.hdr-logo-img.vis{display:block;}
.hdr-logo-name{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:400;letter-spacing:.38em;color:var(--g);line-height:1;}
.hdr-logo-tag{font-family:'Jost',sans-serif;font-size:.44rem;letter-spacing:.55em;text-transform:uppercase;color:var(--fog);}
nav{display:flex;gap:2.8rem;}
.nav-a{
  font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--fog);transition:color .3s;position:relative;padding-bottom:3px;
}
.nav-a::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease2);}
.nav-a:hover,.nav-a.on{color:var(--cream);}
.nav-a:hover::after,.nav-a.on::after{transform:scaleX(1);}
.hdr-right{display:flex;align-items:center;gap:1.8rem;}
.hdr-icon{background:none;border:none;cursor:none;color:var(--fog);font-size:1rem;transition:color .3s;position:relative;display:flex;align-items:center;}
.hdr-icon:hover{color:var(--g);}
.cart-dot{position:absolute;top:-5px;right:-6px;background:var(--g);color:var(--ink);width:16px;height:16px;border-radius:50%;font-family:'Jost',sans-serif;font-size:.52rem;font-weight:700;display:flex;align-items:center;justify-content:center;}

/* ════════════════════════════
   MARQUEE
════════════════════════════ */
.mq-band{overflow:hidden;white-space:nowrap;padding:12px 0;background:var(--ink2);border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);}
.mq-track{display:inline-flex;animation:mq 30s linear infinite;}
.mq-item{font-family:'Cormorant Garamond',serif;font-size:.92rem;font-style:italic;color:var(--g3);padding:0 3rem;letter-spacing:.08em;}

/* ════════════════════════════
   PAGE HERO (inner pages)
════════════════════════════ */
.ph{position:relative;overflow:hidden;padding:160px 4rem 80px;text-align:center;}
.ph-bg{position:absolute;inset:-10%;background-size:cover;background-position:center;animation:kb1 14s ease-in-out infinite alternate;}
.ph-bg-grad{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(11,10,8,.75) 0%,rgba(11,10,8,.4) 50%,rgba(11,10,8,.95) 100%);}
.ph-inner{position:relative;z-index:2;}
.ph-eye{font-family:'Jost',sans-serif;font-size:.58rem;letter-spacing:.5em;text-transform:uppercase;color:var(--g3);margin-bottom:1.2rem;opacity:0;animation:fadeIn .7s ease .8s forwards;}
.ph-title{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,6vw,5.5rem);font-weight:300;color:var(--cream);line-height:1.05;opacity:0;animation:riseUp .9s var(--ease) 1s forwards;}
.ph-title em{font-style:italic;color:var(--g);}
.bc{display:flex;gap:.8rem;align-items:center;justify-content:center;margin-top:1.8rem;opacity:0;animation:fadeIn .6s ease 1.5s forwards;}
.bc a{font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.15em;color:var(--haze);}
.bc a:hover{color:var(--g);}
.bc-sep{color:var(--g3);font-size:.55rem;}
.bc-cur{font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.15em;color:var(--g);}

/* ════════════════════════════
   SECTION LABELS
════════════════════════════ */
.eyebrow{font-family:'Jost',sans-serif;font-size:.56rem;letter-spacing:.52em;text-transform:uppercase;color:var(--g3);margin-bottom:1.1rem;display:block;}
.sec-h{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4.5vw,3.8rem);font-weight:300;line-height:1.1;color:var(--cream);}
.sec-h em{font-style:italic;color:var(--g);}
.rule{width:48px;height:1px;background:var(--g);margin:1.6rem 0;}
.rule.c{margin-left:auto;margin-right:auto;}

/* ════════════════════════════
   BUTTONS
════════════════════════════ */
.btn-g,.btn-o,.btn-dk{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;
  font-weight:600;padding:.95rem 2.8rem;border:none;cursor:none;transition:all .35s;
  position:relative;overflow:hidden;
}
.btn-g{background:var(--g);color:var(--ink);}
.btn-g::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.18);transform:translateX(-110%);transition:transform .45s var(--ease2);}
.btn-g:hover::after{transform:translateX(0);}
.btn-g:hover{transform:translateY(-2px);}
.btn-o{background:transparent;color:var(--g);border:1px solid var(--g3);}
.btn-o:hover{background:rgba(201,169,110,.07);border-color:var(--g);color:var(--cream);}
.btn-dk{background:var(--ink);color:var(--g);border:1px solid var(--ink2);}
.btn-dk:hover{background:var(--ink2);}

/* ════════════════════════════
   PRODUCT CARDS
════════════════════════════ */
.p-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:1px;}
.p-card{background:var(--ink2);position:relative;overflow:hidden;cursor:none;transition:transform .5s var(--ease),box-shadow .5s;}
.p-card:hover{transform:translateY(-5px);box-shadow:0 28px 70px rgba(0,0,0,.55),var(--glow);z-index:2;}
.p-img{aspect-ratio:1/1;overflow:hidden;background:var(--ink3);display:flex;align-items:center;justify-content:center;position:relative;}
.p-img-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transition:transform .7s var(--ease);}
.p-card:hover .p-img-inner{transform:scale(1.07);}
.p-badge{position:absolute;top:.9rem;left:0;background:var(--g);color:var(--ink);font-family:'Jost',sans-serif;font-size:.5rem;letter-spacing:.2em;padding:.28rem .9rem;font-weight:700;z-index:2;}
.p-overlay{position:absolute;inset:0;background:rgba(11,10,8,.78);backdrop-filter:blur(4px);opacity:0;transition:opacity .4s;display:flex;align-items:center;justify-content:center;gap:.8rem;z-index:3;}
.p-card:hover .p-overlay{opacity:1;}
.p-ov-btn{padding:.7rem 1.4rem;font-family:'Jost',sans-serif;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;cursor:none;transition:all .3s;border:1px solid var(--bd2);color:var(--cream);background:transparent;}
.p-ov-btn:hover,.p-ov-btn.primary{background:var(--g);color:var(--ink);border-color:var(--g);}
.p-body{padding:1.4rem 1.6rem 1.8rem;}
.p-cat{font-family:'Jost',sans-serif;font-size:.54rem;letter-spacing:.28em;text-transform:uppercase;color:var(--g3);margin-bottom:.45rem;}
.p-name{font-family:'Cormorant Garamond',serif;font-size:1.18rem;color:var(--cream);margin-bottom:.5rem;line-height:1.25;}
.p-desc{font-family:'Jost',sans-serif;font-size:.7rem;color:var(--fog);line-height:1.75;margin-bottom:1.2rem;font-weight:300;}
.p-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.p-price{font-family:'Cormorant Garamond',serif;font-size:1.25rem;color:var(--g);}
.p-add{font-family:'Jost',sans-serif;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;padding:.52rem 1.1rem;background:transparent;border:1px solid var(--bd2);color:var(--cream);cursor:none;transition:all .32s;white-space:nowrap;}
.p-add:hover{background:var(--g);color:var(--ink);border-color:var(--g);}

/* ════════════════════════════
   CART DRAWER
════════════════════════════ */
.c-ov{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:700;opacity:0;visibility:hidden;transition:all .4s;backdrop-filter:blur(8px);}
.c-ov.on{opacity:1;visibility:visible;}
.c-drw{position:fixed;top:0;right:-110%;width:480px;max-width:100vw;height:100%;background:var(--ink2);border-left:1px solid var(--bd);z-index:701;transition:right .5s var(--ease);display:flex;flex-direction:column;}
.c-drw.on{right:0;}
.c-head{padding:2rem 2.2rem;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;}
.c-title{font-family:'Cormorant Garamond',serif;font-size:1.15rem;letter-spacing:.06em;color:var(--cream);}
.c-close{background:none;border:1px solid var(--bd);color:var(--fog);width:34px;height:34px;cursor:none;display:flex;align-items:center;justify-content:center;transition:all .3s;}
.c-close:hover{border-color:var(--g);color:var(--g);}
.c-body{flex:1;overflow-y:auto;padding:1.5rem 2.2rem;}
.c-empty{text-align:center;padding:5rem 2rem;color:var(--haze);}
.c-empty p{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-style:italic;margin-top:1rem;}
.ci{display:flex;gap:1.2rem;padding:1.2rem 0;border-bottom:1px solid var(--bd);}
.ci-img{width:70px;height:70px;background:var(--ink3);overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ci-info{flex:1;}
.ci-cat{font-family:'Jost',sans-serif;font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--g3);}
.ci-name{font-family:'Cormorant Garamond',serif;font-size:.98rem;color:var(--cream);margin-top:.15rem;}
.ci-price{font-family:'Cormorant Garamond',serif;font-size:.9rem;color:var(--g);margin-top:.4rem;}
.ci-ctrl{display:flex;align-items:center;gap:.7rem;margin-top:.5rem;}
.qi{width:22px;height:22px;background:none;border:1px solid var(--bd);color:var(--cream);cursor:none;display:flex;align-items:center;justify-content:center;transition:all .25s;font-size:.85rem;}
.qi:hover{border-color:var(--g);color:var(--g);}
.qn{font-family:'Jost',sans-serif;font-size:.75rem;min-width:18px;text-align:center;}
.ci-rm{background:none;border:none;color:var(--haze);cursor:none;margin-left:auto;transition:color .25s;font-size:.85rem;}
.ci-rm:hover{color:#c0392b;}
.c-foot{padding:1.8rem 2.2rem;border-top:1px solid var(--bd);}
.c-tot{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.4rem;}
.c-tot-lbl{font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fog);}
.c-tot-amt{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--g);}
.wa-order{width:100%;padding:1.05rem;background:#25D366;color:#fff;border:none;cursor:none;font-family:'Jost',sans-serif;font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;transition:background .3s;display:flex;align-items:center;justify-content:center;gap:.8rem;}
.wa-order:hover{background:#1da851;}
.wa-order:disabled{background:var(--ink3);color:var(--haze);cursor:not-allowed;}

/* ════════════════════════════
   LIGHTBOX
════════════════════════════ */
.lb{position:fixed;inset:0;z-index:800;background:rgba(8,7,5,.96);backdrop-filter:blur(16px);display:none;align-items:center;justify-content:center;padding:2rem;}
.lb.on{display:flex;}
.lb-box{background:var(--ink2);border:1px solid var(--bd);max-width:840px;width:100%;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;animation:scaleUp .4s var(--ease);max-height:90vh;position:relative;}
.lb-img{overflow:hidden;background:var(--ink3);display:flex;align-items:center;justify-content:center;}
.lb-img img{width:100%;height:100%;object-fit:cover;}
.lb-body{padding:3rem 2.8rem;overflow-y:auto;display:flex;flex-direction:column;}
.lb-cat{font-family:'Jost',sans-serif;font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--g3);margin-bottom:.8rem;}
.lb-name{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:300;color:var(--cream);line-height:1.15;margin-bottom:1rem;}
.lb-desc{font-family:'Jost',sans-serif;font-size:.75rem;color:var(--fog);line-height:1.85;flex:1;margin-bottom:1.5rem;font-weight:300;}
.lb-price{font-family:'Cormorant Garamond',serif;font-size:1.9rem;color:var(--g);margin-bottom:1.8rem;}
.lb-add{width:100%;padding:1rem;background:var(--g);color:var(--ink);border:none;cursor:none;font-family:'Jost',sans-serif;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;transition:background .3s;}
.lb-add:hover{background:var(--g2);}
.lb-x{position:absolute;top:1rem;right:1rem;background:rgba(11,10,8,.85);border:1px solid var(--bd);color:var(--fog);cursor:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s;}
.lb-x:hover{border-color:var(--g);color:var(--g);}

/* ════════════════════════════
   TOAST
════════════════════════════ */
.toast{position:fixed;bottom:2.5rem;right:2.5rem;z-index:9998;background:var(--ink2);border:1px solid var(--bd2);padding:.9rem 1.6rem;min-width:260px;transform:translateY(70px) scale(.95);opacity:0;transition:all .45s var(--ease);pointer-events:none;display:flex;align-items:center;gap:.8rem;}
.toast.on{transform:translateY(0) scale(1);opacity:1;}
.toast-ic{font-size:.95rem;color:var(--g);}
.toast-tx{font-family:'Jost',sans-serif;font-size:.72rem;color:var(--cream);letter-spacing:.04em;}

/* ════════════════════════════
   FOOTER
════════════════════════════ */
footer{background:var(--ink);border-top:1px solid var(--bd);padding:5.5rem 4rem 2.5rem;}
.f-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:4rem;margin-bottom:4rem;}
.f-brand-img{height:34px;object-fit:contain;display:none;margin-bottom:1rem;}
.f-brand-img.vis{display:block;}
.f-brand-name{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:300;letter-spacing:.42em;color:var(--g);margin-bottom:1rem;}
.f-desc{font-family:'Jost',sans-serif;font-size:.7rem;color:var(--fog);line-height:1.9;font-weight:300;}
.f-h{font-family:'Jost',sans-serif;font-size:.55rem;letter-spacing:.42em;text-transform:uppercase;color:var(--g3);margin-bottom:1.3rem;}
.f-ul{list-style:none;display:flex;flex-direction:column;gap:.75rem;}
.f-ul a{font-family:'Jost',sans-serif;font-size:.7rem;color:var(--haze);transition:color .3s;}
.f-ul a:hover{color:var(--g);}
.f-bot{border-top:1px solid var(--bd);padding-top:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
.f-copy{font-family:'Jost',sans-serif;font-size:.6rem;color:var(--haze);letter-spacing:.1em;}
.f-copy span{color:var(--g3);}

/* WA float */
.wa-float{position:fixed;bottom:2.2rem;left:2.2rem;z-index:599;width:52px;height:52px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.35rem;box-shadow:0 4px 24px rgba(37,211,102,.35);transition:transform .3s;text-decoration:none;animation:floatY 3.5s ease-in-out infinite;}
.wa-float:hover{transform:scale(1.12);}
.wa-float .pulse{position:absolute;inset:0;border-radius:50%;background:#25D366;animation:pulseRing 2.2s ease-out infinite;z-index:-1;}

/* ════════════════════════════
   RESPONSIVE
════════════════════════════ */
@media(max-width:1100px){#HDR{padding:0 2rem;}footer{padding:4rem 2rem 2rem;}.f-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){nav{display:none;}.c-drw{width:100vw;}.lb-box{grid-template-columns:1fr;}.f-grid{grid-template-columns:1fr;}.ph{padding:130px 2rem 60px;}}
