/* ==========================================================================
   JEMER — Page Collections / Boutique
   Palette : ivoire / or / bordeaux + touches "blush"
   ========================================================================== */

:root{
  --ink:#0b0b0c;
  --ink-soft:#111112;
  --ivory:#F6F1E7;
  --ivory-dim:#EDE5D4;
  --gold:#d79a35;
  --gold-soft:#E4CFA0;
  --wine:#5C1F2E;
  --sage:#6E7C5B;
  --text-muted:#8B8290;

  --blush:#D9A9A0;
  --blush-bright:#E7B7AC;
  --blush-soft:#F3DFDA;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  background:var(--ivory);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:400;
  overflow-x:hidden;
}

h1,h2,h3,h4, .font-display{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  letter-spacing:.01em;
}

.eyebrow{
  display:inline-flex; align-items:center; gap:.45rem;
  font-family:'Jost',sans-serif;
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
}
.eyebrow::before{
  content:"❀";
  color:var(--blush-bright);
  font-size:.85em;
  line-height:1;
}
.cat-card .cat-label .eyebrow::before,
.verse-band .eyebrow::before{ color:var(--blush-soft); }

.script-note{
  font-family:'Parisienne', cursive;
  color:var(--blush-bright);
  font-size:1.35rem;
  display:inline-block;
  margin-left:.7rem;
  transform:rotate(-3deg);
}

h1[data-word]{ position:relative; }
h1[data-word]::before{
  content: attr(data-word);
  font-family:'Parisienne', cursive;
  font-weight:400;
  font-size:.55em;
  color:var(--blush-bright);
  opacity:.35;
  position:absolute;
  top:-.85em; left:50%;
  transform:translateX(-50%) rotate(-4deg);
  white-space:nowrap;
  z-index:0;
  pointer-events:none;
}

/* ---------- Navbar ---------- */
.navbar-jemer{ background:var(--ink); padding:1.1rem 0; border-bottom:1px solid rgba(198,161,91,.25); }
.navbar-jemer .navbar-brand{
  font-family:'Cormorant Garamond', serif; font-size:1.9rem; letter-spacing:.12em; color:var(--ivory) !important;
}
.navbar-jemer .navbar-brand span{ color:var(--gold); }
.navbar-jemer .nav-link{
  color:var(--ivory) !important; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
  margin:0 .85rem; opacity:.85; transition:opacity .25s, color .25s; position:relative;
}
.navbar-jemer .nav-link:hover{ opacity:1; color:var(--gold) !important; }
.navbar-jemer .nav-link.active{ opacity:1; color:var(--gold) !important; }
.navbar-jemer .nav-link::after{
  content:""; position:absolute; left:50%; bottom:-4px; width:0; height:1px;
  background:var(--gold); transition:width .3s ease, left .3s ease;
}
.navbar-jemer .nav-link:hover::after, .navbar-jemer .nav-link.active::after{ width:70%; left:15%; }

.icon-btn{ color:var(--ivory); font-size:1.05rem; position:relative; margin-left:1.1rem; transition:transform .3s ease, color .25s; display:inline-block; }
.icon-btn:hover{ transform:translateY(-2px); color:var(--gold) !important; }
.icon-btn .badge{
  position:absolute; top:-8px; right:-10px; background:var(--gold); color:var(--ink);
  font-size:.6rem; padding:.15rem .38rem; border-radius:50%;
}

.navbar-jemer .dropdown-toggle::after{ border-top-color:var(--gold); margin-left:.4rem; vertical-align:.15em; transition:transform .25s ease; }
.navbar-jemer .nav-item.dropdown:hover .dropdown-toggle::after{ transform:rotate(180deg); }
.navbar-jemer .dropdown-menu{
  background:var(--ink-soft); border:1px solid rgba(198,161,91,.25); border-radius:4px; padding:.5rem 0;
  margin-top:.6rem; opacity:0; visibility:hidden; transform:translateY(8px); display:block;
  transition:opacity .28s ease, transform .28s ease, visibility .28s;
}
.navbar-jemer .nav-item.dropdown:hover .dropdown-menu, .navbar-jemer .dropdown-menu.show{
  opacity:1; visibility:visible; transform:translateY(0);
}
.navbar-jemer .dropdown-item{
  color:var(--ivory); font-size:.82rem; letter-spacing:.06em; padding:.55rem 1.3rem; background:transparent;
  transition:padding-left .2s ease, color .2s ease;
}
.navbar-jemer .dropdown-item:hover, .navbar-jemer .dropdown-item:focus{
  background:transparent; color:var(--gold); padding-left:1.6rem;
}

/* ---------- Hero de page ---------- */
.hero,
.page-hero{
  background:radial-gradient(ellipse at top, #111112 0%, var(--ink) 62%);
  color:var(--ivory); position:relative; padding:5rem 0 5.5rem; overflow:hidden; text-align:center;
}
.hero::before,
.page-hero::before{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(90deg, rgba(198,161,91,.05) 0 1px, transparent 1px 90px);
  pointer-events:none;
}
.hero::after,
.page-hero::after{
  content:"";
  position:absolute;
  top:-90px; right:-90px;
  width:280px; height:280px;
  background:radial-gradient(circle, rgba(217,169,160,.32), transparent 70%);
  pointer-events:none;
  z-index:1;
}
.hero-bg{
  position:absolute; inset:0;
  z-index:0;
}
.hero-bg img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 30%;
  display:block;
}
.hero-overlay{
  position:absolute; inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(11,11,12,.88) 0%, rgba(11,11,12,.72) 55%, rgba(11,11,12,.88) 100%);
}

.hero > .container,
.page-hero > .container{
  position:relative;
  z-index:2;
}
.page-hero .stitch-line{ width:64px; height:1px; background:var(--gold); display:inline-block; margin-bottom:1.4rem; }
.page-hero h1{ font-size:clamp(2.4rem, 4.6vw, 3.8rem); color:var(--ivory); }
.page-hero h1 em{ font-style:italic; color:var(--gold-soft); }
.page-hero p.lead{ color:#C9C0D1; font-size:1.02rem; max-width:580px; margin:0 auto; font-weight:300; }
.breadcrumb-mini{ font-size:.75rem; letter-spacing:.08em; color:#9C93A6; margin-bottom:1.2rem; }
.breadcrumb-mini a{ color:#C9C0D1; text-decoration:none; }
.breadcrumb-mini a:hover{ color:var(--gold); }

section{ padding:5rem 0; }
.section-head .divider-mini{
  width:46px; height:3px; border-radius:3px; border:none;
  background:linear-gradient(90deg, var(--gold), var(--blush));
  margin-top:1rem;
}

/* ---------- Filter bar ---------- */
.filter-bar{
  background:#fff;
  border:1px solid rgba(27,22,32,.08);
  border-radius:20px !important;
  padding:1.5rem 1.6rem;
  margin-top:-3.4rem;
  position:relative;
  z-index:5;
  box-shadow:0 24px 48px rgba(27,22,32,.08);
}
.filter-pill{
  display:inline-block;
  background:var(--ivory-dim);
  border:1px solid transparent;
  color:var(--ink);
  font-size:.76rem;
  letter-spacing:.05em;
  padding:.5rem 1.1rem;
  border-radius:30px;
  margin:.25rem .35rem .25rem 0;
  text-decoration:none;
  transition:.25s;
  cursor:pointer;
}
.filter-pill:hover{ border-color:var(--gold); color:var(--wine); }
.filter-pill.active{ background:var(--ink); color:var(--gold-soft); }
.result-count{ font-size:.82rem; color:var(--text-muted); }
.search-mini{
  border:1px solid rgba(27,22,32,.12); border-radius:30px; padding:.5rem 1rem;
  font-size:.85rem; background:var(--ivory-dim); min-width:220px;
}
.search-mini:focus{ outline:none; border-color:var(--gold); background:#fff; }

/* ---------- Cartes produit ---------- */
.product-card{
  background:#fff;
  border:1px solid rgba(27,22,32,.08);
  border-radius:20px !important;
  overflow:hidden;
  transition:box-shadow .3s, transform .3s;
  height:100%;
}
.product-card:hover{ box-shadow:0 22px 44px rgba(27,22,32,.12); transform:translateY(-6px); }
.product-media{
  position:relative; height:300px; overflow:hidden; background:var(--ivory-dim);
  border-radius:20px 20px 0 0;
  cursor:pointer;
}
.product-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.product-card:hover .product-media img{ transform:scale(1.06); }
.product-media .fav-btn{
  position:absolute; top:.9rem; right:.9rem; width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center;
  color:var(--ink); font-size:.85rem; transition:.25s;
}
.product-media .fav-btn:hover{ background:var(--wine); color:#fff; }
.product-media .collection-chip{
  position:absolute; top:.9rem; left:.9rem; background:var(--ink); color:var(--gold-soft);
  font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; padding:.35rem .7rem; border-radius:2px;
}
.product-info{ padding:1.2rem 1.3rem 1.4rem; }
.product-info .p-meta{
  font-size:.72rem; color:var(--text-muted); letter-spacing:.04em; text-transform:uppercase; margin-bottom:.35rem;
}
.product-info h5{ font-family:'Cormorant Garamond', serif; font-size:1.25rem; margin-bottom:.5rem; }
.product-info .price{ color:var(--wine); font-weight:600; font-family:'Jost',sans-serif; font-size:1.02rem; }

.qty-stepper{
  display:flex; align-items:center; border:1px solid rgba(27,22,32,.15);
  border-radius:30px; overflow:hidden;
}
.qty-stepper button{
  background:var(--ivory-dim); border:0; width:28px; height:30px; color:var(--ink); font-size:.88rem;
  transition:background-color .2s ease;
}
.qty-stepper button:hover{ background:var(--gold); color:#fff; }
.qty-stepper .qty-val{ width:30px; text-align:center; font-size:.82rem; }

.product-info .btn-cart,
.btn-cart{
  background:transparent; border:1px solid var(--ink); color:var(--ink);
  font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; padding:.48rem .7rem;
  border-radius:30px !important;
  transition:background-color .25s, color .25s; white-space:nowrap;
}
.product-info .btn-cart:hover,
.btn-cart:hover{ background:var(--ink); color:var(--ivory); }

.empty-state{ display:none; text-align:center; padding:4rem 0; color:var(--text-muted); }
.empty-state.show{ display:block; }
.empty-state i{ font-size:2rem; color:var(--gold-soft); margin-bottom:1rem; display:block; }

/* ---------- Collections à venir ---------- */
.soon-card{
  background:#fff;
  border:1px dashed rgba(27,22,32,.18);
  border-radius:20px !important;
  padding:2rem 1.6rem;
  height:100%;
  text-align:center;
  color:var(--text-muted);
}
.soon-card i{ font-size:1.4rem; color:var(--gold-soft); margin-bottom:.8rem; display:block; }
.soon-card h6{ color:var(--ink); font-family:'Cormorant Garamond', serif; font-size:1.2rem; margin-bottom:.3rem; }
.soon-card p{ font-size:.82rem; margin:0; }

/* Autres cartes/panneaux au même rayon (partagées avec d'autres pages) */
.testi-card, .team-card, .info-card,
.contact-panel, .newsletter, .map-wrap, .value-card{
  border-radius:20px !important;
}
.testi-card{ border-left-color: var(--blush); }
.price-tag, .map-badge{ border-radius:14px; }

/* ---------- Aperçu rapide (zoom produit) ---------- */
.product-media .zoom-hint{
  position:absolute; inset:0;
  background:rgba(27,22,32,0);
  display:flex; align-items:center; justify-content:center;
  transition:background-color .3s ease;
}
.product-media:hover .zoom-hint{ background:rgba(27,22,32,.28); }
.product-media .zoom-hint i{
  width:48px; height:48px; border-radius:50%;
  background:rgba(246,241,231,.95); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  font-size:1.05rem;
  opacity:0; transform:scale(.7);
  transition:opacity .3s ease, transform .3s ease;
}
.product-media:hover .zoom-hint i{ opacity:1; transform:scale(1); }

.quickview-overlay{
  position:fixed; inset:0; z-index:1200;
  background:rgba(27,22,32,.72);
  backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center;
  padding:1.5rem;
  opacity:0; visibility:hidden;
  transition:opacity .35s ease, visibility .35s ease;
}
.quickview-overlay.open{ opacity:1; visibility:visible; }
.quickview-box{
  background:var(--ivory);
  border-radius:22px;
  max-width:900px; width:100%;
  max-height:88vh;
  overflow:hidden;
  display:flex;
  box-shadow:0 40px 90px rgba(0,0,0,.4);
  transform:scale(.92) translateY(20px);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.quickview-overlay.open .quickview-box{ transform:scale(1) translateY(0); }
.quickview-media{
  flex:0 0 48%;
  background:var(--ivory-dim);
  position:relative;
  min-height:340px;
}
.quickview-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.quickview-media .collection-chip{
  position:absolute; top:1.1rem; left:1.1rem; background:var(--ink); color:var(--gold-soft);
  font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; padding:.4rem .8rem; border-radius:2px;
}
.quickview-info{ flex:1; padding:2.4rem 2.2rem; overflow-y:auto; position:relative; }
.quickview-close{
  position:absolute; top:1.1rem; right:1.1rem;
  width:38px; height:38px; border-radius:50%;
  background:var(--ivory-dim); border:1px solid rgba(27,22,32,.1);
  display:flex; align-items:center; justify-content:center;
  color:var(--ink); font-size:1rem; transition:.25s;
  z-index:2;
}
.quickview-close:hover{ background:var(--wine); color:#fff; border-color:var(--wine); }
.quickview-info .p-meta{
  font-size:.74rem; color:var(--text-muted); letter-spacing:.05em; text-transform:uppercase; margin-bottom:.5rem;
}
.quickview-info h3{ font-size:1.9rem; margin-bottom:.6rem; }
.quickview-info .price{
  color:var(--wine); font-weight:600; font-size:1.3rem; font-family:'Jost',sans-serif;
  display:block; margin-bottom:1.2rem;
}
.quickview-info .desc{ color:var(--text-muted); font-size:.92rem; line-height:1.75; margin-bottom:1.6rem; }
.quickview-info .qv-row{ display:flex; align-items:center; gap:1rem; margin-bottom:1.6rem; }
.quickview-info .qv-row .qty-stepper button{ width:32px; height:34px; }

/* ---------- Bandeau CTA ---------- */
.cta-band{
  background:var(--wine); color:var(--ivory); border-radius:20px !important; padding:3rem; position:relative;
  overflow:hidden; text-align:center;
}
.cta-band::after{
  content:""; position:absolute; right:-60px; top:-60px; width:220px; height:220px;
  border:1px solid rgba(246,241,231,.15); border-radius:50%;
}
.cta-band::before{
  content:""; position:absolute; left:-60px; bottom:-60px; width:220px; height:220px;
  border:1px solid rgba(246,241,231,.15); border-radius:50%;
}

/* ---------- Boutons ---------- */
.btn-gold{
  background:var(--gold); border:1px solid var(--gold); color:var(--ink);
  padding:.85rem 2.1rem; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  border-radius:30px !important; transition:background-color .3s ease, color .3s ease, transform .25s ease;
}
.btn-gold:hover{ background:transparent; color:var(--gold); }
.btn-gold:active{ transform:scale(.96); }

.btn-outline-ink{
  border:1px solid var(--ink); color:var(--ink); background:transparent;
  padding:.85rem 2.1rem; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  border-radius:30px !important; transition:.3s;
}
.btn-outline-ink:hover{ background:var(--ink); color:var(--ivory); }
.btn-outline-ivory{ border-radius:30px !important; }

/* ---------- Footer ---------- */
footer{ background:var(--ink); color:rgba(246,241,231,.65); padding:5rem 0 0; }
footer h6{
  font-family:'Jost',sans-serif; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ivory); margin-bottom:1.2rem;
}
footer a{ color:rgba(246,241,231,.65); text-decoration:none; font-size:.88rem; display:block; margin-bottom:.6rem; transition:color .25s; }
footer a:hover{ color:var(--gold); }
footer .brand-mark{ font-family:'Cormorant Garamond', serif; font-size:1.7rem; color:var(--ivory); }
.footer-bottom{ border-top:1px solid rgba(246,241,231,.12); margin-top:3.5rem; padding:1.5rem 0; font-size:.78rem; }
.social-circle{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(246,241,231,.25);
  display:inline-flex; align-items:center; justify-content:center; color:var(--ivory); margin-right:.6rem; transition:.25s;
}
.social-circle:hover{ border-color:var(--gold); color:var(--gold); }

/* ==========================================================================
   Animations
   ========================================================================== */
@keyframes fadeUp{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:translateY(0); } }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }

.page-hero .stitch-line{ animation:fadeIn .8s ease .1s both; }
.page-hero .breadcrumb-mini{ animation:fadeUp .6s ease .1s both; }
.page-hero .eyebrow{ animation:fadeUp .7s ease .15s both; }
.page-hero h1{ animation:fadeUp .8s ease .28s both; }
.page-hero p.lead{ animation:fadeUp .8s ease .42s both; }

.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
}
.reveal.is-visible{ opacity:1; transform:none; }
.reveal-group .reveal:nth-child(1){ transition-delay:0s; }
.reveal-group .reveal:nth-child(2){ transition-delay:.05s; }
.reveal-group .reveal:nth-child(3){ transition-delay:.1s; }
.reveal-group .reveal:nth-child(4){ transition-delay:.15s; }
.reveal-group .reveal:nth-child(5){ transition-delay:.2s; }
.reveal-group .reveal:nth-child(6){ transition-delay:.25s; }
.reveal-group .reveal:nth-child(7){ transition-delay:.3s; }
.reveal-group .reveal:nth-child(8){ transition-delay:.35s; }
.reveal-group .reveal:nth-child(9){ transition-delay:.4s; }
.reveal-group .reveal:nth-child(10){ transition-delay:.45s; }
.reveal-group .reveal:nth-child(11){ transition-delay:.5s; }
.reveal-group .reveal:nth-child(12){ transition-delay:.55s; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:991px){
  .hero-visual{ height:340px; margin-top:3rem; }
  .price-tag{ left:10px; }

  /* Correctif : le menu "Collections" ne doit réserver aucun espace
     tant qu'il n'est pas ouvert (bug d'espace vide en accordéon mobile) */
  .navbar-jemer .dropdown-menu{
    position:static;
    display:none;
    opacity:1;
    visibility:visible;
    transform:none;
    margin-top:.3rem;
    margin-left:.5rem;
    margin-bottom:.4rem;
    border-left:2px solid var(--gold);
    border-top:none;
    border-right:none;
    border-bottom:none;
    border-radius:0;
    background:transparent;
    padding:.2rem 0 .2rem .8rem;
  }
  .navbar-jemer .dropdown-menu.show{ display:block; }
  .navbar-jemer .dropdown-item{ padding:.4rem 1rem; }
}

@media (max-width:767px){
  .filter-bar{ margin-top:1.4rem; }
  h1[data-word]::before{ font-size:.4em; }
  .quickview-box{ flex-direction:column; max-height:92vh; }
  .quickview-media{ flex:0 0 260px; }
}
