/* ===================== VARIABLES ===================== */
:root {
  --navy:       #1B2F6E;
  --navy-dark:  #0F1D47;
  --navy-mid:   #243882;
  --red:        #D42B2B;
  --red-light:  #E05050;
  --gold:       #D4A52A;
  --gold-light: #E8C253;
  --gold-pale:  #FDF3D6;
  --green:      #006B3F;
  --green-light:#1A8A56;
  --white:      #FAFAF8;
  --off-white:  #F4F2EC;
  --light-blue: #EEF1FA;
  --text:       #1A1A2E;
  --text-soft:  #3D4870;
  --font-display:'Playfair Display',Georgia,serif;
  --font-italic: 'Cormorant Garamond',Georgia,serif;
  --font-body:   'Nunito',sans-serif;
}

/* ===================== RESET ===================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body);background:var(--white);color:var(--text);overflow-x:hidden;}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:0.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:180px;}
img{display:block;width:100%;}
a{text-decoration:none;color:inherit;}
.skip-link{position:absolute;top:-100%;left:1rem;z-index:9999;background:var(--navy);color:var(--white);padding:0.75rem 1.5rem;font-family:var(--font-body);font-size:0.85rem;font-weight:700;border-radius:0 0 4px 4px;transition:top 0.2s;}.skip-link:focus-visible{top:0;outline:3px solid var(--gold);outline-offset:2px;}
ul{list-style:none;}

/* ===================== NAV ===================== */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  padding:0;
  display:flex;align-items:stretch;justify-content:space-between;
  background:var(--navy-dark) url('images/fond_navbar.png') center/cover;
  box-shadow:0 2px 16px rgba(0,0,0,0.25);
  transition:box-shadow 0.4s;
}
nav.scrolled{box-shadow:0 3px 30px rgba(27,47,110,0.20);}
nav::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--red) 0%,var(--red) 33%,var(--gold) 33%,var(--gold) 66%,var(--navy) 66%,var(--navy) 100%);
}
.nav-logo{
  display:flex;align-items:center;gap:0.9rem;
  background:var(--navy-dark);
  padding:0.4rem 3rem 0.4rem 1.6rem;
  clip-path:polygon(0 0,calc(100% - 20px) 0,100% 100%,0 100%);
  flex-shrink:0;
}
.nav-logo img{width:62px;height:62px;object-fit:contain;filter:drop-shadow(0 0 4px rgba(255,255,255,1)) drop-shadow(0 0 8px rgba(255,255,255,0.8));}
.nav-logo-text{font-family:var(--font-display);font-size:1.25rem;font-weight:900;color:var(--white);line-height:1.1;white-space:nowrap;}
.nav-logo-text span{display:block;font-size:0.62rem;font-family:var(--font-body);font-weight:700;letter-spacing:0.13em;text-transform:uppercase;color:var(--gold);margin-top:2px;}
.nav-links{display:flex;gap:1.8rem;align-items:center;padding:0 2rem;}
.nav-links a{font-size:0.76rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.88);position:relative;transition:color 0.3s;}
.nav-links a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:2px;background:var(--gold-light);transition:width 0.3s;}
.nav-links a:hover{color:var(--gold-light);}
.nav-links a:hover::after{width:100%;}
.nav-links a.active{color:var(--gold-light);}
.nav-links a.active::after{width:100%;}
.nav-cta{background:var(--red)!important;color:var(--white)!important;padding:0.55rem 1.3rem!important;border-radius:2px!important;}
.nav-cta:hover{background:var(--gold)!important;color:var(--navy-dark)!important;}
.nav-cta::after{display:none!important;}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:0 1.5rem;align-self:center;}
.burger span{display:block;width:24px;height:2px;background:rgba(255,255,255,0.85);transition:transform 0.3s,opacity 0.3s,background 0.3s;}
.burger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.burger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.burger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}
#mobileMenu{
  display:flex;position:fixed;inset:0;z-index:199;
  background:var(--navy-dark);
  flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;
  transform:translateX(100%);
  transition:transform 0.45s cubic-bezier(.23,1,.32,1);
  pointer-events:none;
}
#mobileMenu.open{transform:translateX(0);pointer-events:all;}
#mobileMenu a{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--white);transition:color 0.2s;}
#mobileMenu a:hover{color:var(--gold);}

/* ===================== PAGE HERO (pages catégories) ===================== */
.page-hero{
  padding:9rem 0 5rem;
  background-size:cover;background-position:center;background-attachment:scroll;
  position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to bottom,rgba(0,0,0,0.58) 0%,rgba(0,0,0,0.28) 55%,rgba(0,0,0,0.08) 100%),
    radial-gradient(2px 2px at 10% 20%,rgba(212,165,42,0.5) 0%,transparent 100%),
    radial-gradient(2px 2px at 85% 15%,rgba(212,165,42,0.4) 0%,transparent 100%),
    radial-gradient(1px 1px at 50% 80%,rgba(212,165,42,0.3) 0%,transparent 100%);
}
.page-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:var(--accent);}
.page-hero-inner{max-width:1200px;margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem);position:relative;z-index:1;}
.breadcrumb{display:flex;align-items:center;gap:0.6rem;font-size:0.72rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.88);margin-bottom:1.5rem;text-shadow:0 1px 6px rgba(0,0,0,0.7);}
.breadcrumb a{color:var(--gold-light);transition:color 0.2s;text-shadow:0 1px 6px rgba(0,0,0,0.7);}
.breadcrumb a:hover{color:#fff;}
.breadcrumb .sep{color:rgba(255,255,255,0.5);}
.page-hero-tag{display:inline-flex;align-items:center;gap:0.6rem;background:rgba(0,0,0,0.38);border:1px solid rgba(212,165,42,0.55);padding:0.35rem 1rem;border-radius:100px;font-size:0.68rem;font-weight:700;letter-spacing:0.13em;text-transform:uppercase;color:var(--gold-light);margin-bottom:1.2rem;text-shadow:0 1px 4px rgba(0,0,0,0.6);}
.page-title{font-family:var(--font-display);font-size:clamp(2.8rem,6vw,5rem);font-weight:900;color:#fff;line-height:1.0;margin-bottom:1rem;text-shadow:0 3px 18px rgba(0,0,0,0.75),0 1px 6px rgba(0,0,0,0.55);}
.page-title .accent{color:var(--gold-light);font-style:italic;font-weight:700;}
.page-subtitle{font-family:var(--font-italic);font-style:italic;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:300;color:rgba(255,255,255,0.93);line-height:1.7;max-width:580px;text-shadow:0 2px 10px rgba(0,0,0,0.7);}
.page-wave{position:absolute;bottom:-1px;left:0;right:0;}

/* ===================== GALERIE ===================== */
.gallery-section{padding:5rem 0;background:var(--white);}
.container{max-width:1260px;margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem);}
.gallery-intro{max-width:680px;margin:0 auto 3.5rem;text-align:center;}
.gallery-intro-label{font-size:0.7rem;font-weight:800;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:0.8rem;}
.gallery-intro-title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:900;color:var(--navy);margin-bottom:1rem;}
.gallery-intro-title em{font-style:italic;color:var(--accent);}
.gallery-intro-text{font-size:1rem;line-height:1.75;color:var(--text-soft);}
.gallery-grid{display:grid;}
.gallery-item{border-radius:8px;overflow:hidden;position:relative;transition:transform 0.35s cubic-bezier(.23,1,.32,1),box-shadow 0.35s;}
.gallery-item:not(.empty){cursor:pointer;}
.gallery-item:not(.empty):hover{transform:translateY(-4px);}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.6s cubic-bezier(.23,1,.32,1);}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:1.4rem;opacity:0;transition:opacity 0.35s;}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-caption{font-family:var(--font-display);font-style:italic;font-size:1rem;font-weight:700;color:var(--white);}
.gallery-item.empty{background:var(--off-white);box-shadow:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0.5rem;}
.gallery-item.empty:hover{transform:none;box-shadow:none;}
.empty-icon{font-size:2.2rem;opacity:0.18;}
.empty-label{font-size:0.68rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);opacity:0.25;}

/* ===================== PRODUITS ===================== */
.products-section{padding:4rem 0 5rem;background:var(--off-white);}
.products-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:900;color:var(--navy);margin-bottom:2rem;}
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem;}
.product-item{background:var(--white);border-radius:6px;padding:1.4rem 1.6rem;display:flex;align-items:flex-start;gap:1rem;border-left:3px solid var(--accent);box-shadow:0 2px 12px rgba(27,47,110,0.06);transition:transform 0.3s,box-shadow 0.3s;}
.product-item:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(27,47,110,0.12);}
.product-emoji{font-size:1.3rem;flex-shrink:0;color:var(--accent);line-height:1;width:2rem;text-align:center;}
.product-name{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:0.3rem;}
.product-desc{font-size:0.82rem;color:var(--text-soft);line-height:1.5;}

/* ===================== CTA BAND ===================== */
.cta-band{background:var(--navy-dark);padding:4rem 0;text-align:center;position:relative;overflow:hidden;}
.cta-band::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,rgba(212,165,42,0.12),transparent 65%);pointer-events:none;}
.cta-band-title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.5rem);font-weight:900;color:var(--white);margin-bottom:0.8rem;}
.cta-band-title em{font-style:italic;color:var(--gold-light);}
.cta-band-sub{font-family:var(--font-italic);font-style:italic;font-size:1.1rem;color:rgba(250,250,248,0.6);margin-bottom:2rem;}
.btn-gold{display:inline-flex;align-items:center;gap:0.6rem;background:var(--gold);color:var(--navy-dark);font-family:var(--font-body);font-size:0.82rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;padding:1rem 2.2rem;border-radius:2px;transition:background 0.3s,transform 0.2s;}
.btn-gold:hover{background:var(--white);transform:translateY(-2px);}
.btn-back{display:inline-flex;align-items:center;gap:0.6rem;background:transparent;color:rgba(250,250,248,0.6);font-family:var(--font-body);font-size:0.8rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:1rem 1.8rem;border:1.5px solid rgba(250,250,248,0.2);border-radius:2px;margin-left:1rem;transition:border-color 0.3s,color 0.3s;}
.btn-back:hover{border-color:var(--gold);color:var(--gold);}

/* ===================== FOOTER ===================== */
footer{background:var(--navy-dark);padding:2.5rem 0 0;}
.footer-stripe{height:5px;background:linear-gradient(90deg,var(--red) 0%,var(--red) 33.3%,var(--white) 33.3%,var(--white) 66.6%,var(--navy) 66.6%,var(--navy) 100%);margin-bottom:2rem;}
.footer-bottom-simple{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:0 clamp(1.5rem,5vw,4rem) 1.5rem;}
.footer-brand-sm{display:flex;align-items:center;gap:0.7rem;}
.footer-brand-sm img{width:42px;height:42px;object-fit:contain;}
.footer-brand-sm span{font-family:var(--font-display);font-size:1rem;font-weight:900;color:var(--white);}
.footer-links-sm{display:flex;gap:1.5rem;flex-wrap:wrap;}
.footer-links-sm a{font-size:0.78rem;color:rgba(250,250,248,0.45);font-weight:600;transition:color 0.2s;}
.footer-links-sm a:hover{color:var(--white);}
.footer-copy-sm{font-size:0.72rem;color:rgba(250,250,248,0.25);}

/* ===================== ANIMATIONS ===================== */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.7s cubic-bezier(.23,1,.32,1),transform 0.7s cubic-bezier(.23,1,.32,1);}
.reveal.visible{opacity:1;transform:none;}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity 0.7s cubic-bezier(.23,1,.32,1),transform 0.7s cubic-bezier(.23,1,.32,1);}
.reveal-left.visible{opacity:1;transform:none;}
.reveal-scale{opacity:0;transform:scale(0.93);transition:opacity 0.6s cubic-bezier(.23,1,.32,1),transform 0.6s cubic-bezier(.23,1,.32,1);}
.reveal-scale.visible{opacity:1;transform:none;}
.reveal-delay-1{transition-delay:0.12s;}
.reveal-delay-2{transition-delay:0.22s;}
.reveal-delay-3{transition-delay:0.34s;}

/* ===================== SHIMMER DORÉ ===================== */
@keyframes goldShimmer{
  0%{background-position:-200% center;}
  100%{background-position:200% center;}
}
.stat-num{
  background:linear-gradient(90deg,var(--gold) 20%,var(--gold-light) 40%,#FFF8DC 50%,var(--gold-light) 60%,var(--gold) 80%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:goldShimmer 4s linear infinite;
}
.hero-main-title em{
  background:linear-gradient(90deg,var(--gold-light) 20%,#FFF8DC 40%,var(--gold-light) 60%,var(--gold) 80%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:goldShimmer 5s linear infinite;
}

/* ===================== WHATSAPP FAB ===================== */
.whatsapp-fab{position:fixed;bottom:2rem;right:2rem;z-index:300;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 28px rgba(37,211,102,0.45),0 2px 8px rgba(0,0,0,0.15);cursor:pointer;text-decoration:none;transition:transform 0.25s cubic-bezier(.23,1,.32,1),box-shadow 0.25s;animation:fabPop 0.5s 1.5s cubic-bezier(.23,1,.32,1) both;}
.whatsapp-fab:hover{transform:scale(1.12) translateY(-3px);box-shadow:0 12px 36px rgba(37,211,102,0.55),0 4px 12px rgba(0,0,0,0.2);}
.whatsapp-fab svg{width:30px;height:30px;fill:#fff;}
@keyframes fabPop{0%{transform:scale(0);opacity:0;}80%{transform:scale(1.1);}100%{transform:scale(1);opacity:1;}}
.whatsapp-fab::before{content:'Commander sur WhatsApp';position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--navy-dark);color:var(--white);font-family:var(--font-body);font-size:0.72rem;font-weight:700;white-space:nowrap;padding:0.45rem 0.9rem;border-radius:4px;opacity:0;pointer-events:none;transition:opacity 0.2s;}
.whatsapp-fab::after{content:'';position:absolute;right:calc(100% + 4px);top:50%;transform:translateY(-50%);border:6px solid transparent;border-left-color:var(--navy-dark);opacity:0;pointer-events:none;transition:opacity 0.2s;}
.whatsapp-fab:hover::before,.whatsapp-fab:hover::after{opacity:1;}

/* ===================== BACK TO TOP ===================== */
.back-to-top{position:fixed;bottom:2rem;left:2rem;z-index:300;width:44px;height:44px;border-radius:50%;background:var(--navy);color:var(--white);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(27,47,110,0.3);cursor:pointer;border:none;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity 0.3s,transform 0.3s;}
.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:all;}
.back-to-top:hover{background:var(--red);}
.back-to-top svg{width:18px;height:18px;stroke:#fff;stroke-width:2.5;fill:none;}

/* ===================== RESPONSIVE ===================== */
@media(max-width:1024px){
  .marche-inner,.commande-inner{gap:3rem;}
}
@media(max-width:768px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .page-hero{padding:7rem 0 3.5rem;background-position:center center;}
  .footer-bottom-simple{flex-direction:column;align-items:flex-start;}
  .gallery-grid{grid-template-columns:1fr 1fr!important;grid-auto-rows:200px!important;}
  [class^="gi-"]{grid-column:auto!important;grid-row:auto!important;}
  .reveal-left{transform:translateY(24px);}
  .reveal-left.visible{transform:none;}
}
@media(max-width:480px){
  .products-grid{grid-template-columns:1fr;}
  .btn-back{margin-left:0;margin-top:0.8rem;}
  .gallery-grid{grid-template-columns:1fr!important;grid-auto-rows:220px!important;}
}

/* ===================== REDUCED MOTION ===================== */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.reveal-scale{opacity:1!important;transform:none!important;transition:none!important;}
  .reveal-delay-1,.reveal-delay-2,.reveal-delay-3{transition-delay:0s!important;}
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;transition-delay:0s!important;}
}
