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

  *{ box-sizing:border-box; }

  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{
    font-family:'Jost',sans-serif;
    font-size:.72rem;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:500;
  }

  /* ---------- Arch motif ---------- */
  .arch-divider{ width:100%; display:flex; justify-content:center; margin:0 auto; }
  .arch-divider svg{ display:block; }

  /* ---------- 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;
  }

  /* ---------- Page hero ---------- */
  .page-hero{
    background:radial-gradient(ellipse at top, #111112 0%, var(--ink) 62%);
    color:var(--ivory); position:relative; padding:5.5rem 0 6rem; overflow:hidden; text-align:center;
  }
  .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;
    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.05rem; max-width:560px; margin:0 auto; font-weight:300; }

  section{ padding:6rem 0; }
  .section-head{ margin-bottom:3rem; }
  .section-head h2{ font-size:2.6rem; margin-top:.4rem; }
  .section-head .divider-mini{ width:46px; height:2px; background:var(--gold); margin-top:1rem; }

  /* ---------- Contact cards (quick info) ---------- */
  .info-card{
    background:#fff;
    border:1px solid rgba(27,22,32,.08);
    border-radius:8px;
    padding:2rem 1.6rem;
    height:100%;
    text-align:center;
    transition:transform .35s ease, box-shadow .35s ease;
  }
  .info-card:hover{ transform:translateY(-8px); box-shadow:0 24px 48px rgba(27,22,32,.1); }
  .info-card i{
    width:52px; height:52px; border-radius:50%;
    background:var(--ink); color:var(--gold-soft);
    display:flex; align-items:center; justify-content:center;
    font-size:1.05rem; margin:0 auto 1.1rem;
  }
  .info-card h5{ font-size:1.15rem; margin-bottom:.35rem; }
  .info-card p{ font-size:.88rem; color:var(--text-muted); margin:0; }
  .info-card a{ color:var(--wine); text-decoration:none; font-weight:500; }
  .info-card a:hover{ color:var(--gold); }

  /* ---------- Contact form ---------- */
  .contact-panel{
    background:var(--ink);
    color:var(--ivory);
    border-radius:10px;
    padding:3.2rem;
    position:relative;
    overflow:hidden;
  }
  .contact-panel::after{
    content:""; position:absolute; right:-70px; top:-70px; width:230px; height:230px;
    border:1px solid rgba(198,161,91,.18); border-radius:50%;
  }
  .contact-panel .form-label{
    font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:.5rem;
  }
  .contact-panel .form-control, .contact-panel .form-select{
    background:transparent;
    border:1px solid rgba(246,241,231,.28);
    color:var(--ivory);
    border-radius:2px;
    padding:.85rem 1rem;
  }
  .contact-panel .form-control::placeholder{ color:rgba(246,241,231,.4); }
  .contact-panel .form-control:focus, .contact-panel .form-select:focus{
    box-shadow:none; border-color:var(--gold); background:transparent; color:var(--ivory);
  }
  .contact-panel textarea.form-control{ resize:none; }

  .map-wrap{
    position:relative;
    border-radius:10px;
    overflow:hidden;
    border:1px solid rgba(27,22,32,.08);
    height:100%;
    min-height:340px;
  }
  .map-wrap iframe{ width:100%; height:100%; min-height:340px; border:0; filter:grayscale(.35) contrast(1.05); display:block; }
  .map-badge{
    position:absolute; bottom:1.2rem; left:1.2rem; right:1.2rem;
    background:var(--ivory);
    border-radius:6px;
    padding:1rem 1.3rem;
    box-shadow:0 18px 40px rgba(0,0,0,.2);
  }
  .map-badge .eyebrow{ color:var(--wine); }
  .map-badge p{ margin:.25rem 0 0; font-size:.88rem; color:var(--ink); }

  /* ---------- Social band ---------- */
  .social-band{ background:var(--ivory-dim); }
  .social-big{
    width:68px; height:68px; border-radius:50%;
    background:#fff; border:1px solid rgba(27,22,32,.08);
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem; color:var(--ink);
    transition:.3s;
  }
  .social-big:hover{ background:var(--ink); color:var(--gold-soft); transform:translateY(-6px); }

  /* ---------- 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); }

  .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:2px; 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); }

  /* ---------- 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 .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; }

  html{ scroll-behavior:smooth; }

  .reveal{
    opacity:0; transform:translateY(28px);
    transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
  }
  .reveal[data-reveal="right"]{ transform:translateX(34px); }
  .reveal[data-reveal="left"]{ transform:translateX(-34px); }
  .reveal.is-visible{ opacity:1; transform:none; }
  .reveal-group .reveal:nth-child(1){ transition-delay:0s; }
  .reveal-group .reveal:nth-child(2){ transition-delay:.1s; }
  .reveal-group .reveal:nth-child(3){ transition-delay:.2s; }
  .reveal-group .reveal:nth-child(4){ transition-delay:.3s; }

  .btn-cart, .contact-panel button{
    transition:background-color .3s ease, color .3s ease, transform .25s ease;
  }

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

  @media (max-width:991px){
    .contact-panel{ padding:2.2rem 1.6rem; margin-bottom:2rem; }
  }

  @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;
  }
}

  /* ---------- Touche féminine ---------- */
  :root{
    --blush:#D9A9A0;
    --blush-bright:#E7B7AC;
    --blush-soft:#F3DFDA;
  }

  .eyebrow{ display:inline-flex; align-items:center; gap:.45rem; }
  .eyebrow::before{
    content:"❀";
    color:var(--blush-bright);
    font-size:.85em;
    line-height:1;
  }

  .section-head .divider-mini{
    background:linear-gradient(90deg, var(--gold), var(--blush));
    height:3px;
    border-radius:3px;
    border:none;
  }

  .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;
  }

  .btn-gold, .btn-outline-ivory, .btn-outline-ink, .product-info .btn-cart, .btn-cart{
    border-radius:30px !important;
  }
  .qty-stepper{ border-radius:30px; overflow:hidden; }

  .product-card, .testi-card, .team-card, .info-card, .soon-card,
  .contact-panel, .newsletter, .cta-band, .filter-bar, .map-wrap, .value-card{
    border-radius:20px !important;
  }
  .product-media{ border-radius:20px 20px 0 0; overflow:hidden; }
  .price-tag, .map-badge{ border-radius:14px; }

  .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;
  }

  .testi-card{ border-left-color: var(--blush); }
  .cat-card .cat-label .eyebrow::before,
  .verse-band .eyebrow::before{ color:var(--blush-soft); }

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