/*
Theme Name: Decor Evenement by Audrey
Theme URI: https://decorevenementmariage.fr
Author: Audrey
Description: Boutique de robes de mariee a Pontchateau. Version simple et robuste.
Version: 3.0
License: GPL v2 or later
Text Domain: decor-audrey
*/


:root{
--fond:#F8F5F1;--fond2:#EFE9E2;--noir:#141414;--brun:#1C1C1C;
--texte:#1B1B1B;--gris:#6E675F;--or:#B59A6A;--or-clair:#C9B896;--taupe:#4A4038;--taupe-fonce:#3E352E;--ligne:#DCCFC0;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Montserrat',sans-serif;background:var(--fond);color:var(--texte);font-weight:300;line-height:1.8;overflow-x:hidden;}

/* Loader */
#loader{position:fixed;inset:0;z-index:9999;background:var(--noir);display:flex;align-items:center;justify-content:center;transition:opacity 1.2s ease,visibility 1.2s ease;}
#loader.out{opacity:0;visibility:hidden;}
#loader img{width:100px;filter:brightness(0) invert(1);opacity:0;animation:loaderFade 2.5s ease forwards;}
@keyframes loaderFade{0%{opacity:0;transform:scale(0.9);}40%{opacity:0.9;}100%{opacity:0.9;transform:scale(1);}}

/* Header */
header{position:fixed;top:0;left:0;right:0;z-index:900;background:rgba(248,245,241,0);backdrop-filter:blur(0);padding:1.5rem 6%;display:flex;justify-content:space-between;align-items:center;transition:all 0.5s ease;}
header.scrolled{background:rgba(248,245,241,0.96);backdrop-filter:blur(20px);border-bottom:1px solid var(--ligne);padding:1rem 6%;}
.burger{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:6px;width:30px;z-index:901;padding:4px 0;}
.burger span{height:2px;width:100%;background:var(--texte);transition:all 0.4s;}
body.home header:not(.scrolled) .burger span{background:#fff;}
.burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg);background:var(--texte);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);background:var(--texte);}
.logo-h img{height:54px;transition:filter 0.5s;}
body.home header:not(.scrolled) .logo-h img{filter:brightness(0) invert(1);}
.cart{background:none;border:none;cursor:pointer;position:relative;}
.cart svg{width:26px;height:26px;stroke:var(--texte);fill:none;stroke-width:1.5;transition:stroke 0.5s;}
body.home header:not(.scrolled) .cart svg{stroke:#fff;}
.cart-count{position:absolute;top:-6px;right:-8px;background:var(--or);color:#fff;font-size:0.6rem;font-weight:500;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;}

/* Menu overlay */
#menu{position:fixed;inset:0;background:var(--fond);z-index:895;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0.5rem;opacity:0;visibility:hidden;transition:all 0.6s cubic-bezier(0.7,0,0.3,1);}
#menu.active{opacity:1;visibility:visible;}
#menu a{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:300;letter-spacing:0.05em;color:var(--texte);text-decoration:none;padding:0.35rem 0;transition:color 0.3s;position:relative;}
#menu a:hover{color:var(--or);font-style:italic;}
#menu .nav-sub{font-family:'Montserrat',sans-serif;font-size:0.6rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--or);margin-bottom:1.4rem;}

/* Hero */
.hero{height:100vh;position:relative;overflow:hidden;}
.hero-img{position:absolute;inset:0;background-size:cover;background-position:center 30%;animation:heroZoom 8s ease-out forwards;}
@keyframes heroZoom{from{transform:scale(1.12);}to{transform:scale(1);}}
.hero-veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,20,20,0.3) 0%,transparent 35%,transparent 50%,rgba(20,20,20,0.72) 100%);}
.hero-content{position:absolute;bottom:14%;left:0;right:0;text-align:center;z-index:2;padding:0 6%;}
.hero-eyebrow{font-size:0.65rem;letter-spacing:0.45em;text-transform:uppercase;color:#E8D4A8;margin-bottom:1.8rem;opacity:0;animation:fadeUp 1.2s ease 2.4s forwards;text-shadow:0 1px 12px rgba(20,20,20,0.85),0 1px 4px rgba(20,20,20,0.6);}
.hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.8rem,9vw,5.5rem);font-weight:300;letter-spacing:0.02em;color:#fff;line-height:1.05;margin-bottom:2.5rem;opacity:0;animation:fadeUp 1.4s ease 2.7s forwards;text-shadow:0 2px 30px rgba(20,20,20,0.5),0 1px 8px rgba(20,20,20,0.4);}
.hero h1 em{font-style:italic;color:#E8D4A8;text-shadow:0 2px 20px rgba(20,20,20,0.6);}
.hero-btn{display:inline-block;padding:1rem 3rem;border:1px solid rgba(255,255,255,0.7);color:#fff;font-size:0.62rem;letter-spacing:0.25em;text-transform:uppercase;text-decoration:none;transition:all 0.4s;opacity:0;animation:fadeUp 1.2s ease 3.1s forwards;}
.hero-btn:hover{background:#fff;color:var(--noir);border-color:#fff;}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
.scroll-hint{position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);z-index:2;width:1px;height:50px;background:linear-gradient(to bottom,var(--or-clair),transparent);opacity:0;animation:fadeUp 1s ease 3.5s forwards,scrollPulse 2.5s ease-in-out 3.5s infinite;}
@keyframes scrollPulse{0%,100%{opacity:0.3;}50%{opacity:1;}}

/* Manifeste */
.manifeste{background:var(--fond);padding:9rem 8%;text-align:center;position:relative;}
.manifeste-mark{font-family:'Cormorant Garamond',serif;font-size:4rem;color:var(--or);opacity:0.3;line-height:1;margin-bottom:2rem;}
.manifeste p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.5rem,4vw,2.4rem);font-weight:300;line-height:1.6;color:var(--texte);max-width:900px;margin:0 auto;}
.manifeste .signature{font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:var(--or);margin-top:2.5rem;font-style:italic;}
.manifeste .role{font-size:0.6rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--gris);margin-top:0.5rem;}

/* Séparateur doré signature */
.gold-sep{display:flex;align-items:center;justify-content:center;padding:3rem 0;gap:1.5rem;}
.gold-sep .line{width:60px;height:1px;background:var(--or);opacity:0.5;}
.gold-sep .dot{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.8rem;color:var(--or);}

/* Section editorial asymétrique */
.editorial{padding:7rem 0;overflow:hidden;}
.editorial-row{display:flex;align-items:center;gap:0;max-width:1400px;margin:0 auto;}
.editorial-img{flex:0 0 58%;overflow:hidden;}
.editorial-img img{width:100%;display:block;transition:transform 1.2s ease;}
.editorial-img:hover img{transform:scale(1.04);}
.editorial-text{flex:1;padding:0 5%;}
.editorial-text.overlap{margin-left:-8%;position:relative;z-index:2;background:var(--fond);padding:3rem;}
.editorial-num{font-family:'Cormorant Garamond',serif;font-size:0.9rem;letter-spacing:0.3em;color:var(--or);margin-bottom:1.2rem;}
.editorial-text h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.15;color:var(--texte);margin-bottom:1.5rem;}
.editorial-text h2 em{font-style:italic;color:var(--or);}
.editorial-text p{font-size:0.9rem;color:var(--gris);line-height:1.9;margin-bottom:2rem;max-width:400px;}
.editorial-link{font-size:0.62rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--texte);text-decoration:none;border-bottom:1px solid var(--or);padding-bottom:6px;transition:all 0.3s;}
.editorial-link:hover{color:var(--or);letter-spacing:0.3em;}

/* Collections dark */
.collections{background:var(--taupe);padding:8rem 6%;}
.collections .section-head{text-align:center;margin-bottom:4rem;}
.collections .eyebrow{font-size:0.62rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--or);margin-bottom:1.2rem;}
.collections h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.2rem);font-weight:300;color:#fff;}
.collections h2 em{font-style:italic;color:var(--or-clair);}
.coll-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;max-width:1200px;margin:0 auto;}
.coll-card{position:relative;overflow:hidden;aspect-ratio:3/4;cursor:pointer;}
.coll-card img{width:100%;height:100%;object-fit:cover;transition:transform 0.9s ease,filter 0.6s;filter:brightness(0.85);}
.coll-card:hover img{transform:scale(1.06);filter:brightness(1);}
.coll-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;background:linear-gradient(to top,rgba(20,20,20,0.75),transparent 60%);}
.coll-card h3{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:300;color:#fff;margin-bottom:0.3rem;}
.coll-card p{font-size:0.6rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--or-clair);}

/* Galerie mosaïque asymétrique */
.galerie{padding:8rem 4%;background:var(--fond2);}
.galerie .section-head{text-align:center;margin-bottom:4rem;}
.galerie .eyebrow{font-size:0.62rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--or);margin-bottom:1.2rem;}
.galerie h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.2rem);font-weight:300;color:var(--texte);}
.galerie h2 em{font-style:italic;color:var(--or);}
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);gap:0.8rem;max-width:1300px;margin:0 auto;}
.mosaic-item{overflow:hidden;}
.mosaic-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease;}
.mosaic-item:hover img{transform:scale(1.05);}
.m1{grid-column:span 4;grid-row:span 2;}
.m2{grid-column:span 2;}
.m3{grid-column:span 2;}
.m4{grid-column:span 2;}
.m5{grid-column:span 2;}
.m6{grid-column:span 2;}

/* Rendez-vous split */
.rdv{display:grid;grid-template-columns:1fr 1fr;min-height:80vh;}
.rdv-img{background-size:cover;background-position:center;}
.rdv-content{background:var(--taupe);display:flex;flex-direction:column;justify-content:center;padding:5rem 6%;color:#fff;}
.rdv-content .eyebrow{font-size:0.62rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--or-clair);margin-bottom:1.5rem;}
.rdv-content h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.2;margin-bottom:1.5rem;}
.rdv-content h2 em{font-style:italic;color:var(--or-clair);}
.rdv-content p{font-size:0.9rem;color:rgba(255,255,255,0.7);line-height:1.9;margin-bottom:2.5rem;max-width:400px;}
.rdv-btn{display:inline-block;width:fit-content;padding:1rem 3rem;border:1px solid var(--or-clair);color:var(--or-clair);font-size:0.62rem;letter-spacing:0.25em;text-transform:uppercase;text-decoration:none;transition:all 0.4s;}
.rdv-btn:hover{background:var(--or-clair);color:var(--brun);}


/* Contact */
.contact{background:var(--fond);padding:8rem 6%;text-align:center;color:var(--texte);}
.contact .eyebrow{font-size:0.62rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--or);margin-bottom:1.5rem;}
.contact h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:300;color:var(--noir);margin-bottom:3rem;}
.contact-info{font-family:'Cormorant Garamond',serif;font-size:1.4rem;line-height:2.4;color:var(--texte);}
.contact-info .label{display:block;font-family:'Montserrat',sans-serif;font-size:0.6rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--or);margin-top:2rem;}

/* Footer */
footer{background:var(--fond2);color:var(--texte);padding:4rem 6%;text-align:center;border-top:1px solid var(--ligne);}
footer img{height:60px;opacity:0.9;margin-bottom:1.5rem;}
.footer-text{font-size:0.6rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--gris);}

/* Reveal au scroll */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1.2s cubic-bezier(0.2,0.8,0.2,1),transform 1.2s cubic-bezier(0.2,0.8,0.2,1);}
.no-js .reveal{opacity:1;transform:none;}
.reveal.on{opacity:1;transform:none;}

@media(max-width:768px){
.editorial-row{flex-direction:column;}
.editorial-img{flex:none;width:100%;}
.editorial-text{padding:2.5rem 8%;}
.editorial-text.overlap{margin-left:0;margin-top:-15%;padding:2.5rem;}
.editorial-text p{max-width:none;}
.coll-grid{grid-template-columns:1fr 1fr;}
.mosaic{grid-template-columns:repeat(2,1fr);}
.m1{grid-column:span 2;grid-row:span 1;}
.m2,.m3,.m4,.m5,.m6{grid-column:span 1;}
.rdv{grid-template-columns:1fr;}
.rdv-img{min-height:50vh;}
}


/* ============ BOUTIQUE WOOCOMMERCE ============ */
.shop-hero{padding:9rem 2rem 3rem;text-align:center;background:var(--fond);}
.shop-hero .eyebrow{font-size:0.6rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--or);margin-bottom:1rem;}
.shop-hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:300;color:var(--noir);}
.shop-hero h1 em{font-style:italic;color:var(--or);}
.shop-wrap{max-width:1280px;margin:0 auto;padding:2rem 2rem 6rem;}




.woocommerce ul.products li.product:hover a img{opacity:0.85;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:'Cormorant Garamond',serif !important;font-size:1.15rem !important;font-weight:400;color:var(--noir);padding:0 !important;margin:0 0 .3rem !important;}
.woocommerce ul.products li.product .price{font-family:'Montserrat',sans-serif;font-size:0.78rem;font-weight:300;color:var(--gris);}
.woocommerce ul.products li.product .price ins{text-decoration:none;color:var(--or);}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{display:inline-block;margin-top:.7rem;padding:.6rem 1.4rem;background:transparent;border:1px solid var(--ligne);color:var(--texte);font-family:'Montserrat',sans-serif;font-size:0.58rem;letter-spacing:0.18em;text-transform:uppercase;border-radius:0;transition:all .4s ease;}
.woocommerce ul.products li.product .button:hover{background:var(--noir);border-color:var(--noir);color:#fff;}
.woocommerce span.onsale{background:var(--or);color:#fff;font-family:'Montserrat',sans-serif;font-size:0.55rem;letter-spacing:0.15em;text-transform:uppercase;border-radius:0;padding:.4rem .8rem;min-height:auto;line-height:1;top:10px;left:10px;right:auto;}

/* Fiche produit */
.woocommerce div.product{padding-top:7rem;max-width:1200px;margin:0 auto;}
.woocommerce div.product div.images{width:52%;}
.woocommerce div.product div.summary{width:42%;}
.woocommerce div.product .product_title{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:2.4rem;color:var(--noir);margin-bottom:1rem;}
.woocommerce div.product p.price{font-family:'Montserrat',sans-serif;font-size:1rem;font-weight:300;color:var(--or);margin-bottom:1.6rem;}
.woocommerce div.product .woocommerce-product-details__short-description{font-size:0.85rem;line-height:2;color:var(--gris);font-weight:300;margin-bottom:1.6rem;}
.woocommerce div.product form.cart .button{background:var(--noir);color:#fff;border-radius:0;padding:1rem 2.6rem;font-family:'Montserrat',sans-serif;font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;font-weight:400;transition:background .4s ease;}
.woocommerce div.product form.cart .button:hover{background:var(--or);}
.woocommerce-message,.woocommerce-info{border-top-color:var(--or);background:var(--fond2);font-size:0.82rem;}
.woocommerce-message::before,.woocommerce-info::before{color:var(--or);}
.woocommerce .quantity .qty{border:1px solid var(--ligne);padding:.6rem;font-family:'Montserrat',sans-serif;}

/* Sur devis (produit sans prix) */
.prix-devis{font-family:'Montserrat',sans-serif;font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--or);}

/* Pas de produits */
.woocommerce-info,.shop-vide{text-align:center;padding:3rem;color:var(--gris);font-weight:300;}

@media(max-width:900px){
  
  .woocommerce div.product div.images,.woocommerce div.product div.summary{width:100%;float:none;}
  .woocommerce div.product{padding-top:6rem;}
}
@media(max-width:560px){
  
  .shop-hero{padding:7rem 1.5rem 2rem;}
}

/* ============ PAGES SIMPLES ============ */
.page-content{font-family:'Montserrat',sans-serif;font-weight:300;font-size:0.9rem;line-height:2;color:var(--texte);}
.page-content h2,.page-content h3{font-family:'Cormorant Garamond',serif;font-weight:300;color:var(--noir);margin:2rem 0 1rem;}
.page-content a{color:var(--or);}
.page-content img{max-width:100%;height:auto;}
.page-content ul,.page-content ol{padding-left:1.4rem;margin:1rem 0;}

/* Le panier est un lien, pas un bouton */
a.cart{text-decoration:none;}
a.cart:hover{opacity:0.7;}

/* Cartes collections cliquables */
a.coll-card{text-decoration:none;color:inherit;display:block;}


/* ============ COLLECTIONS : cas particuliers ============ */
/* Une seule categorie : elle ne prend pas toute la largeur */
.coll-grid:has(> .coll-card:only-child){max-width:640px;}

/* Boutique vide : message + bouton */
.coll-vide{text-align:center;padding:3rem 0;}
.coll-vide p{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:300;font-style:italic;color:var(--or-clair);margin-bottom:2rem;}
.coll-vide .rdv-btn{display:inline-block;}

/* ============ PIED DE PAGE : LIENS LEGAUX ============ */
.footer-legal{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0.5rem;margin:1.4rem 0 1rem;}
.footer-legal a{font-family:'Montserrat',sans-serif;font-size:0.6rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--gris);text-decoration:none;transition:color .3s ease;}
.footer-legal a:hover{color:var(--or);}
.footer-legal .sep{color:var(--ligne);font-size:0.6rem;}

.footer-credit{font-family:'Montserrat',sans-serif;font-size:0.55rem;letter-spacing:0.1em;color:var(--gris);opacity:0.65;margin-top:0.5rem;}
.footer-credit a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s ease;}
.footer-credit a:hover{border-bottom-color:var(--or);}

/* ============ PAGES LEGALES : LISIBILITE ============ */
.page-content{max-width:780px;margin:0 auto;}
.page-content h2{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:400;color:var(--noir);margin:2.8rem 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--ligne);}
.page-content h3{font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-weight:400;font-style:italic;color:var(--or);margin:2rem 0 .8rem;}
.page-content p{margin-bottom:1.1rem;}
.page-content ul{margin:1rem 0 1.4rem;padding-left:1.2rem;}
.page-content li{margin-bottom:.5rem;}
.page-content strong{font-weight:500;color:var(--noir);}
.page-content a{color:var(--or);text-decoration:none;border-bottom:1px solid var(--ligne);}
.page-content a:hover{border-bottom-color:var(--or);}
.page-content em{color:var(--gris);font-size:0.8rem;}

@media(max-width:600px){
  .page-content h2{font-size:1.4rem;}
  .footer-legal{gap:0.35rem;}
  .footer-legal a{font-size:0.55rem;}
}

/* ============ MENU : CATEGORIES ============ */
#menu{overflow-y:auto;padding:6.5rem 1.5rem 2.5rem;justify-content:flex-start;}

.menu-groupe{text-align:center;margin:0;}

/* Le nom de la categorie : grand, elegant */
#menu a.menu-cat{display:block;font-family:'Cormorant Garamond',serif;font-size:1.75rem;font-weight:300;color:var(--texte);padding:0.25rem 0;transition:color .3s ease;}
#menu a.menu-cat:hover{color:var(--or);}

/* Les sous-categories : petites, discretes, sous le nom */
.menu-sous{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0.4rem;margin:0 0 0.7rem;}
#menu .menu-sous a{font-family:'Montserrat',sans-serif;font-size:0.6rem;font-weight:300;letter-spacing:0.14em;text-transform:uppercase;color:var(--gris);padding:0.15rem 0;transition:color .3s ease;}
#menu .menu-sous a:hover{color:var(--or);}
.menu-sous .pt{color:var(--ligne);font-size:0.55rem;}

/* Un filet dore avant les 2 derniers liens */
#menu a[href*="reserv"],
#menu a[href*="#contact"]{font-size:1.15rem;color:var(--gris);}
#menu a[href*="reserv"]{margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--ligne);width:180px;}
#menu a[href*="reserv"]:hover,
#menu a[href*="#contact"]:hover{color:var(--or);}

/* Sur petit ecran : tout doit tenir */
@media(max-height:760px){
  #menu{padding-top:5rem;}
  #menu a.menu-cat{font-size:1.5rem;padding:0.2rem 0;}
  .menu-sous{margin-bottom:0.6rem;}
  #menu a[href*="reserv"]{margin-top:1.2rem;padding-top:1.2rem;}
}
@media(max-height:620px){
  #menu a.menu-cat{font-size:1.3rem;}
  #menu .nav-sub{margin-bottom:1rem;}
}


/* Menu : quand une categorie n'a pas de sous-categories, on aere */
.menu-groupe{margin:0.45rem 0;}
#menu a.menu-cat{padding:0.3rem 0;}

/* Recentrer verticalement si le menu est court */
#menu{justify-content:center;}
/* ... sauf s'il deborde : dans ce cas on repart du haut */
@media(max-height:820px){
  #menu{justify-content:flex-start;}
}


/* ============ HEADER HORS ACCUEIL ============ */
/* Sur les pages produit, boutique, legales : le header est visible d'emblee.
   Pas de logo blanc invisible sur fond beige. */
body:not(.home) header{
  background:rgba(248,245,241,0.96);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--ligne);
  padding:1rem 6%;
}
body:not(.home) header .logo-h img{filter:none;}
body:not(.home) header .cart svg{stroke:var(--texte);}
body:not(.home) header .burger span{background:var(--texte);}

/* ============ PIED DE PAGE : RÉSEAUX SOCIAUX ============ */
.footer-social{display:flex;justify-content:center;align-items:center;gap:1.6rem;margin:2rem 0 0.6rem;}

.footer-social a{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;text-decoration:none;transition:all .45s cubic-bezier(0.4,0,0.2,1);}

.footer-social svg{width:26px;height:26px;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .45s ease;}

/* --- Instagram : dégradé pastel, puis couleurs pleines au survol --- */
.social-insta{background:linear-gradient(45deg,#F5E3E6 0%,#EFDDE9 40%,#E4DCEF 100%);}
.social-insta svg{stroke:#B0688A;}
.social-insta:hover{background:linear-gradient(45deg,#F09433 0%,#E6683C 25%,#DC2743 50%,#CC2366 75%,#BC1888 100%);transform:translateY(-3px);box-shadow:0 6px 18px rgba(204,35,102,0.28);}
.social-insta:hover svg{stroke:#fff;}

/* --- Facebook : bleu pastel, puis bleu plein au survol --- */
.social-fb{background:#DFE6F2;}
.social-fb svg{stroke:#4C6FA5;fill:none;}
.social-fb:hover{background:#1877F2;transform:translateY(-3px);box-shadow:0 6px 18px rgba(24,119,242,0.3);}
.social-fb:hover svg{stroke:#fff;}

@media(max-width:560px){
  .footer-social{gap:1.3rem;margin-top:1.6rem;}
  .footer-social a{width:50px;height:50px;}
  .footer-social svg{width:24px;height:24px;}
}


/* ============ TRANSITION ENTRE LES SECTIONS SOMBRES ============ */
/* Le contact suit le rendez-vous : meme taupe, mais un fin liseré dore
   pour marquer la separation sans creer de rupture de couleur. */


/* ============ SECTION CONTACT (fond clair) ============ */
/* Le bouton doit ressortir sur le beige, pas rester pâle comme sur le taupe */
.contact .rdv-btn{border-color:var(--noir);color:var(--noir);}
.contact .rdv-btn:hover{background:var(--noir);color:#fff;}

/* Le lien téléphone reste lisible */
.contact .contact-info a{color:var(--texte);}
.contact .contact-info a:hover{color:var(--or);}

/* ============ RÉSEAUX SOCIAUX : PROTECTION ============ */
/* Ces regles sont volontairement plus fortes, pour qu'aucun autre
   style (WordPress, WooCommerce, extension) ne puisse les ecraser
   et faire apparaitre les icones en geant. */
footer nav.footer-social{display:flex !important;justify-content:center;align-items:center;gap:1.6rem;margin:2rem 0 0.6rem;}

footer nav.footer-social a{display:flex !important;align-items:center;justify-content:center;width:54px !important;height:54px !important;max-width:54px;max-height:54px;border-radius:50% !important;text-decoration:none;flex-shrink:0;transition:all .45s cubic-bezier(0.4,0,0.2,1);}

footer nav.footer-social a svg{width:26px !important;height:26px !important;max-width:26px;max-height:26px;fill:none !important;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .45s ease;display:block;}

footer nav.footer-social a.social-insta{background:linear-gradient(45deg,#F5E3E6 0%,#EFDDE9 40%,#E4DCEF 100%) !important;}
footer nav.footer-social a.social-insta svg{stroke:#B0688A !important;}
footer nav.footer-social a.social-insta:hover{background:linear-gradient(45deg,#F09433 0%,#E6683C 25%,#DC2743 50%,#CC2366 75%,#BC1888 100%) !important;transform:translateY(-3px);box-shadow:0 6px 18px rgba(204,35,102,0.28);}
footer nav.footer-social a.social-insta:hover svg{stroke:#fff !important;}

footer nav.footer-social a.social-fb{background:#DFE6F2 !important;}
footer nav.footer-social a.social-fb svg{stroke:#4C6FA5 !important;}
footer nav.footer-social a.social-fb:hover{background:#1877F2 !important;transform:translateY(-3px);box-shadow:0 6px 18px rgba(24,119,242,0.3);}
footer nav.footer-social a.social-fb:hover svg{stroke:#fff !important;}

@media(max-width:560px){
  footer nav.footer-social a{width:50px !important;height:50px !important;}
  footer nav.footer-social a svg{width:24px !important;height:24px !important;}
}

/* ============================================================
   BOUTIQUE : LA GRILLE DES PRODUITS
   WooCommerce impose ses propres largeurs (columns-3, floats,
   pourcentages). On les neutralise pour reprendre la main.
   ============================================================ */

/* On annule tout ce que WooCommerce impose */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:3rem 1.8rem !important;
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  width:100% !important;
}

/* Chaque produit : plus de float, plus de largeur en % */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  position:relative;
  float:none !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  clear:none !important;
  text-align:left;
}

/* WooCommerce ajoute des classes columns-N : on les ignore */
.woocommerce ul.products.columns-1 li.product,
.woocommerce ul.products.columns-2 li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce ul.products.columns-4 li.product,
.woocommerce ul.products.columns-5 li.product,
.woocommerce ul.products.columns-6 li.product{
  width:100% !important;
  margin:0 !important;
  float:none !important;
}

/* L'image : grande, en portrait (adapte aux robes) */
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:3/4;
  object-fit:cover;
  margin:0 0 1.1rem !important;
  display:block !important;
  box-shadow:none !important;
  border-radius:0 !important;
  transition:opacity .6s ease, transform .8s ease;
}
.woocommerce ul.products li.product:hover a img{opacity:0.9;}

/* Le titre */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:'Cormorant Garamond',serif !important;
  font-size:1.2rem !important;
  font-weight:400 !important;
  color:var(--noir) !important;
  padding:0 !important;
  margin:0 0 .35rem !important;
  line-height:1.3;
}

/* Le prix */
.woocommerce ul.products li.product .price{
  font-family:'Montserrat',sans-serif !important;
  font-size:0.8rem !important;
  font-weight:300 !important;
  color:var(--gris) !important;
  display:block;
  margin:0 0 .8rem !important;
}
.woocommerce ul.products li.product .price ins{text-decoration:none;color:var(--or);}
.woocommerce ul.products li.product .price del{opacity:0.5;font-size:0.72rem;margin-right:.4rem;}

/* Le bouton */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  display:inline-block !important;
  margin:0 !important;
  padding:.7rem 1.5rem !important;
  background:transparent !important;
  border:1px solid var(--ligne) !important;
  color:var(--texte) !important;
  font-family:'Montserrat',sans-serif !important;
  font-size:0.58rem !important;
  font-weight:400 !important;
  letter-spacing:0.18em !important;
  text-transform:uppercase !important;
  border-radius:0 !important;
  transition:all .4s ease;
}
.woocommerce ul.products li.product .button:hover{
  background:var(--noir) !important;
  border-color:var(--noir) !important;
  color:#fff !important;
}

/* La pastille "Promo" */
.woocommerce span.onsale{
  background:var(--or) !important;
  color:#fff !important;
  font-family:'Montserrat',sans-serif !important;
  font-size:0.55rem !important;
  letter-spacing:0.15em;
  text-transform:uppercase;
  border-radius:0 !important;
  padding:.45rem .9rem !important;
  min-height:auto !important;
  line-height:1 !important;
  top:12px !important;
  left:12px !important;
  right:auto !important;
  margin:0 !important;
}

/* ---------- TABLETTE ---------- */
@media(max-width:980px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{
    grid-template-columns:repeat(2,1fr) !important;
    gap:2.2rem 1.2rem !important;
  }
}

/* ---------- TÉLÉPHONE ---------- */
@media(max-width:600px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{
    grid-template-columns:repeat(2,1fr) !important;
    gap:1.8rem .9rem !important;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{
    font-size:1rem !important;
  }
  .woocommerce ul.products li.product .price{font-size:0.75rem !important;}
  .woocommerce ul.products li.product .button{
    padding:.6rem 1rem !important;
    font-size:0.52rem !important;
    width:100%;
    text-align:center;
  }
}

/* ============================================================
   BOUTIQUE : CORRECTION DES CASES VIDES
   Certains plugins ou reglages font generer a WooCommerce des
   elements vides, qui creent des trous en damier dans la grille.
   On les masque, et on force la grille a se remplir sans trou.
   ============================================================ */

/* La grille se remplit dans l'ordre, sans laisser de trou */
.woocommerce ul.products,
.woocommerce-page ul.products{
  grid-auto-flow:row !important;
  align-items:start !important;
}

/* Un produit vide (sans lien ni titre) est masque */
.woocommerce ul.products li.product:empty{display:none !important;}

/* Les separateurs et sauts de ligne que WooCommerce insere parfois */
.woocommerce ul.products li.product .clear,
.woocommerce ul.products .clear,
.woocommerce ul.products br,
.woocommerce ul.products li.first,
.woocommerce ul.products li.last{
  clear:none !important;
  display:contents !important;
}

/* WooCommerce ajoute .first et .last pour gerer ses floats :
   avec une grille, ces classes creent des sauts. On les annule. */
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last,
.woocommerce-page ul.products li.product.first,
.woocommerce-page ul.products li.product.last{
  clear:none !important;
  float:none !important;
  width:100% !important;
  margin:0 !important;
}

/* Chaque produit occupe toute sa cellule, du haut vers le bas */
.woocommerce ul.products li.product{
  display:flex !important;
  flex-direction:column !important;
  height:100%;
}

/* Le lien de l'image prend la place qu'il faut */
.woocommerce ul.products li.product > a:first-of-type{
  display:block !important;
  width:100%;
}

/* Le bouton reste en bas, aligne d'un produit a l'autre */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  margin-top:auto !important;
  align-self:flex-start;
}

/* ============ PAGE CONTACT ============ */
.contact-page{max-width:1080px;margin:0 auto;padding:2rem 2rem 6rem;}

.contact-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;margin-bottom:4rem;}

.contact-bloc{display:flex;flex-direction:column;padding:2rem 1.6rem;background:var(--fond2);border:1px solid transparent;text-decoration:none;transition:all .4s ease;}
a.contact-bloc:hover{border-color:var(--or);transform:translateY(-3px);}

.contact-label{font-family:'Montserrat',sans-serif;font-size:0.55rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--or);margin-bottom:0.9rem;}
.contact-valeur{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:300;color:var(--noir);line-height:1.5;margin-bottom:0.7rem;}
.contact-note{font-family:'Montserrat',sans-serif;font-size:0.68rem;font-weight:300;color:var(--gris);margin-top:auto;}

.contact-mot{text-align:center;max-width:640px;margin:0 auto 4rem;}
.contact-mot p{font-family:'Montserrat',sans-serif;font-size:0.9rem;font-weight:300;line-height:2.1;color:var(--gris);margin-bottom:2rem;}
.contact-appel{display:inline-block;padding:1.1rem 3rem;background:var(--noir);color:#fff;font-family:'Montserrat',sans-serif;font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;text-decoration:none;transition:background .4s ease;}
.contact-appel:hover{background:var(--or);}

.contact-carte{margin-top:2rem;}
.carte-cadre{position:relative;width:100%;height:420px;background:var(--fond2);border:1px solid var(--ligne);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.carte-cadre.carte-active{background:none;border:none;}
.carte-cadre iframe{display:block;}
.carte-invite{text-align:center;padding:2rem;}
.carte-titre{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:300;color:var(--noir);margin-bottom:0.5rem;}
.carte-adresse{font-family:'Montserrat',sans-serif;font-size:0.8rem;font-weight:300;color:var(--gris);margin-bottom:1.8rem;}
.carte-bouton{padding:0.9rem 2.4rem;background:transparent;border:1px solid var(--texte);color:var(--texte);font-family:'Montserrat',sans-serif;font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;cursor:pointer;transition:all .4s ease;}
.carte-bouton:hover{background:var(--noir);color:#fff;}
.carte-note{font-family:'Montserrat',sans-serif;font-size:0.6rem;font-weight:300;color:var(--gris);margin-top:1.2rem;opacity:0.75;}

@media(max-width:600px){
  .contact-page{padding:1rem 1.2rem 4rem;}
  .contact-cartes{grid-template-columns:1fr;gap:0.9rem;}
  .contact-bloc{padding:1.5rem 1.3rem;}
  .carte-cadre{height:300px;}
}

/* ============================================================
   BOUTIQUE : GRILLE INFAILLIBLE
   Quoi que WooCommerce insere entre les produits (elements vides,
   separateurs, sauts de ligne), seuls les VRAIS produits
   occupent une case. Plus aucun trou possible.
   ============================================================ */

/* 1. Tout ce qui n'est PAS un produit est retire de la grille */
.woocommerce ul.products > *:not(li.product),
.woocommerce-page ul.products > *:not(li.product){
  display:none !important;
}

/* 2. Un produit vide (sans contenu) est retire aussi */
.woocommerce ul.products > li.product:empty,
.woocommerce-page ul.products > li.product:empty{
  display:none !important;
}

/* 4. La grille se remplit dans l'ordre, sans jamais sauter de case */
.woocommerce ul.products,
.woocommerce-page ul.products{
  grid-auto-flow:row !important;
  grid-auto-rows:auto !important;
}

/* 5. Aucun produit ne force un saut de ligne */
.woocommerce ul.products > li.product,
.woocommerce-page ul.products > li.product{
  grid-column:auto !important;
  grid-row:auto !important;
  clear:none !important;
  float:none !important;
  break-inside:avoid;
}
