/* ══════════════════════════════════════════════════════════════
   SUNSHINE EVENTS — Page d'accueil / configurateur (index.html)
   Complète assets/site.css (tokens, nav, boutons, footer, formulaires)
   ══════════════════════════════════════════════════════════════ */

/* ===== PAGES (SPA) ===== */
.page{display:none;padding-top:var(--nav-h);min-height:100vh;background:transparent;}
.page.active{display:block;animation:pageIn .5s var(--ease) both;}
@keyframes pageIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* ===== HERO ===== */
#hero-section{position:relative;min-height:calc(100vh - var(--nav-h));min-height:calc(100dvh - var(--nav-h));display:flex;align-items:center;justify-content:center;overflow:hidden;padding:70px 20px 120px;}
.hero-bg-anim{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(212,175,55,.12) 0%,transparent 65%),linear-gradient(180deg,var(--black) 0%,#0b0a08 100%);}
.hero-bg-anim::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(212,175,55,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(212,175,55,.045) 1px,transparent 1px);background-size:72px 72px;-webkit-mask:radial-gradient(60% 60% at 50% 50%,#000 20%,transparent 100%);mask:radial-gradient(60% 60% at 50% 50%,#000 20%,transparent 100%);}
.hero-orbs{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform;animation:orb 16s ease-in-out infinite alternate;}
.o1{width:520px;height:520px;left:-140px;top:-120px;background:radial-gradient(circle,rgba(212,175,55,.45),transparent 65%);}
.o2{width:420px;height:420px;right:-120px;top:20%;background:radial-gradient(circle,rgba(240,208,96,.32),transparent 65%);animation-delay:-6s;animation-duration:20s;}
.o3{width:360px;height:360px;left:35%;bottom:-160px;background:radial-gradient(circle,rgba(160,120,32,.4),transparent 65%);animation-delay:-11s;animation-duration:18s;}
@keyframes orb{from{transform:translate3d(0,0,0) scale(1);}to{transform:translate3d(60px,40px,0) scale(1.12);}}
.hero-geo{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.hg{position:absolute;top:50%;left:50%;border:1px solid rgba(212,175,55,.07);animation:spin 60s linear infinite;}
.hg1{width:820px;height:820px;transform:translate(-50%,-50%) rotate(45deg);}
.hg2{width:560px;height:560px;border-color:rgba(212,175,55,.11);animation-direction:reverse;animation-duration:80s;}
.hg3{width:310px;height:310px;border-color:rgba(212,175,55,.16);animation-duration:45s;}
@keyframes spin{from{transform:translate(-50%,-50%) rotate(45deg);}to{transform:translate(-50%,-50%) rotate(405deg);}}
.hero-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.hero-particles i{position:absolute;bottom:-10px;width:4px;height:4px;border-radius:50%;background:var(--gold2);opacity:0;box-shadow:0 0 10px var(--gold);animation:rise 12s linear infinite;}
.hero-particles i:nth-child(1){left:8%;animation-delay:0s;}
.hero-particles i:nth-child(2){left:22%;animation-delay:3s;width:3px;height:3px;}
.hero-particles i:nth-child(3){left:38%;animation-delay:7s;}
.hero-particles i:nth-child(4){left:55%;animation-delay:1.5s;width:5px;height:5px;}
.hero-particles i:nth-child(5){left:68%;animation-delay:5s;}
.hero-particles i:nth-child(6){left:82%;animation-delay:9s;width:3px;height:3px;}
.hero-particles i:nth-child(7){left:92%;animation-delay:2.5s;}
.hero-particles i:nth-child(8){left:47%;animation-delay:10.5s;width:3px;height:3px;}
@keyframes rise{0%{transform:translateY(0) scale(.6);opacity:0;}10%{opacity:.9;}90%{opacity:.6;}100%{transform:translateY(-100vh) scale(1.2);opacity:0;}}
.hero-content{position:relative;z-index:2;text-align:center;max-width:860px;}
.hero-tag{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:28px;display:flex;align-items:center;justify-content:center;gap:14px;animation:fadeUp .9s var(--ease) both;}
.hero-tag .line{width:44px;height:1px;background:linear-gradient(90deg,transparent,var(--gold));}
.hero-tag .line:last-child{background:linear-gradient(90deg,var(--gold),transparent);}
.hero-h1{font-family:'Cinzel',serif;font-size:clamp(2.6rem,8vw,6rem);font-weight:700;letter-spacing:.06em;line-height:1.02;margin-bottom:18px;animation:fadeUp .9s .1s var(--ease) both;text-shadow:0 20px 60px rgba(0,0,0,.6);}
.hero-h2{font-family:'Libre Baskerville',serif;font-style:italic;font-size:clamp(1rem,2.6vw,1.55rem);color:rgba(253,249,240,.55);margin-bottom:26px;animation:fadeUp .9s .22s var(--ease) both;}
.hero-p{font-weight:300;font-size:1rem;line-height:1.9;color:rgba(253,249,240,.6);max-width:560px;margin:0 auto 36px;animation:fadeUp .9s .34s var(--ease) both;}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;animation:fadeUp .9s .46s var(--ease) both;}
.hero-btns .btn-gold{font-size:.72rem;padding:18px 40px;}
.hero-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin-top:34px;animation:fadeUp .9s .6s var(--ease) both;}
.hero-trust span{font-size:.78rem;color:rgba(253,249,240,.5);display:inline-flex;align-items:center;gap:8px;letter-spacing:.03em;}
.hero-trust span::before{content:'';width:6px;height:6px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 8px var(--gold);}
.hero-scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:22px;height:36px;border:1px solid rgba(212,175,55,.35);border-radius:14px;z-index:2;}
.hero-scroll span{position:absolute;top:6px;left:50%;width:3px;height:7px;margin-left:-1.5px;border-radius:3px;background:var(--gold);animation:scrollDot 1.8s ease-in-out infinite;}
@keyframes scrollDot{0%{opacity:0;transform:translateY(0);}30%{opacity:1;}100%{opacity:0;transform:translateY(14px);}}

/* ===== MARQUEE ===== */
.marquee{position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(212,175,55,.035);padding:14px 0;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee-track{display:flex;gap:0;width:max-content;animation:marquee 46s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-track span{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(253,249,240,.55);padding:0 26px;white-space:nowrap;display:inline-flex;align-items:center;gap:12px;}
.marquee-track span::after{content:'◆';color:var(--gold);font-size:.5rem;margin-left:26px;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* ===== STATS ===== */
.stats-bar{padding:56px 40px 20px;}
.stats-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.stat-i{text-align:center;padding:28px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);position:relative;overflow:hidden;transition:transform .4s var(--ease),border-color .4s;}
.stat-i::after{content:'';position:absolute;left:50%;bottom:0;width:40%;height:2px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.6;}
.stat-i:hover{transform:translateY(-4px);border-color:rgba(212,175,55,.4);}
.stat-n{font-family:'Cinzel',serif;font-size:2.4rem;font-weight:700;color:var(--gold);line-height:1;}
.stat-n span{color:var(--gold2)!important;font-size:1.2rem!important;}
.stat-l{font-size:.68rem;font-weight:300;letter-spacing:.22em;text-transform:uppercase;color:rgba(253,249,240,.4);margin-top:8px;}

/* ===== CATÉGORIES ===== */
.cats-section{padding:80px 40px;max-width:1240px;margin:0 auto;}
.cats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px;}
.cat-card{position:relative;background:var(--black2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;min-height:320px;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;transition:transform .5s var(--ease),border-color .5s,box-shadow .5s;}
.cat-card:hover{transform:translateY(-8px);border-color:rgba(212,175,55,.55);box-shadow:var(--glow);}
.cat-bg{position:absolute;inset:0;z-index:-1;}
.cat-bg img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s;filter:saturate(.85) brightness(.75);}
.cat-card:hover .cat-bg img{transform:scale(1.08);filter:saturate(1) brightness(.85);}
.cat-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,7,6,.1) 0%,rgba(8,7,6,.55) 45%,rgba(8,7,6,.96) 100%);}
.cat-card-header{padding:26px 26px 18px;position:relative;}
.cat-icon{font-size:2rem;margin-bottom:12px;display:block;filter:drop-shadow(0 4px 12px rgba(0,0,0,.6));}
.cat-card h3{font-family:'Cinzel',serif;font-size:1.15rem;font-weight:600;letter-spacing:.06em;margin-bottom:8px;}
.cat-card p{font-size:.84rem;font-weight:300;color:rgba(253,249,240,.6);line-height:1.65;}
.cat-count{position:absolute;top:18px;right:18px;font-family:'Cinzel',serif;font-size:.56rem;letter-spacing:.16em;color:var(--gold);background:rgba(8,7,6,.6);backdrop-filter:blur(8px);border:1px solid rgba(212,175,55,.3);padding:6px 12px;border-radius:999px;}
.cat-btn{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;background:rgba(212,175,55,.06);font-family:'Cinzel',serif;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);border-top:1px solid rgba(212,175,55,.12);transition:background .3s,padding .3s var(--ease);}
.cat-card:hover .cat-btn{background:rgba(212,175,55,.16);padding-left:32px;}

/* ===== AVIS ===== */
.avis-section{padding:90px 40px;position:relative;}
.avis-section::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(212,175,55,.03),transparent);pointer-events:none;}
.avis-inner{max-width:1200px;margin:0 auto;position:relative;}
.avis-score{display:flex;align-items:center;gap:18px;margin-bottom:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 26px;width:max-content;max-width:100%;}
.avis-score .big{font-family:'Cinzel',serif;font-size:2.6rem;color:var(--gold);font-weight:700;line-height:1;}
.avis-score .stars-big{color:var(--gold);font-size:1.15rem;letter-spacing:3px;text-shadow:0 0 14px rgba(212,175,55,.6);}
.avis-score small{display:block;font-size:.76rem;color:rgba(253,249,240,.45);margin-top:4px;}
.avis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:40px;}
.avis-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px 26px 24px;transition:transform .45s var(--ease),border-color .45s,box-shadow .45s;}
.avis-card::before{content:'“';position:absolute;top:8px;right:22px;font-family:'Libre Baskerville',serif;font-size:5rem;line-height:1;color:rgba(212,175,55,.12);pointer-events:none;}
.avis-card:hover{transform:translateY(-6px);border-color:rgba(212,175,55,.4);box-shadow:var(--glow);}
.stars{color:var(--gold);font-size:.95rem;margin-bottom:14px;letter-spacing:3px;text-shadow:0 0 12px rgba(212,175,55,.5);}
.avis-text{font-family:'Libre Baskerville',serif;font-style:italic;font-size:.9rem;line-height:1.8;color:rgba(253,249,240,.75);margin-bottom:18px;}
.avis-author{font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.16em;color:var(--gold);}
.avis-event{font-size:.72rem;color:rgba(253,249,240,.38);margin-top:4px;}
.google-badge{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:.66rem;color:rgba(253,249,240,.4);background:rgba(253,249,240,.04);border:1px solid rgba(253,249,240,.08);padding:4px 10px;border-radius:999px;}
.google-badge svg{width:13px;height:13px;}

/* ===== GUIDE / SEO ===== */
#guide-animation{position:relative;padding:90px 40px!important;background:transparent!important;}
#guide-animation::before{content:'';position:absolute;inset:0;background:var(--black2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);z-index:-1;}
.guide-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:36px;}
.guide-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:22px;transition:transform .4s var(--ease),border-color .4s;}
.guide-card:hover{transform:translateY(-4px);border-color:rgba(212,175,55,.4);}
.guide-card .gi{font-size:1.6rem;margin-bottom:10px;}
.guide-card strong{color:var(--gold);font-family:'Cinzel',serif;font-size:.78rem;letter-spacing:.1em;}
.guide-card p{font-size:.86rem;margin-top:8px;color:rgba(253,249,240,.55)!important;margin-bottom:0!important;}
.guide-h3{font-family:'Cinzel',serif;color:var(--gold);font-size:1.05rem;letter-spacing:.06em;margin:0 0 14px;display:flex;align-items:center;gap:12px;}
.guide-h3::before{content:'';width:6px;height:6px;background:var(--gold);transform:rotate(45deg);flex-shrink:0;}
.zone-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px;}
.zone-chips span{font-size:.74rem;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(212,175,55,.04);color:rgba(253,249,240,.65);}
.faq-q{border:1px solid var(--line);border-radius:var(--r2);background:var(--card);margin-bottom:8px;overflow:hidden;}

/* ===== PAGE PRESTATIONS ===== */
.page-hero{position:relative;padding:60px 40px 36px;text-align:center;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(50% 80% at 50% 0%,rgba(212,175,55,.12),transparent 70%);pointer-events:none;}
.page-hero > *{position:relative;}
.cat-tabs{position:sticky;top:var(--nav-h);z-index:50;display:flex;gap:8px;padding:14px 40px;overflow-x:auto;background:rgba(8,7,6,.8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-width:none;justify-content:center;}
.cat-tabs::-webkit-scrollbar{display:none;}
.cat-tab{font-family:'Cinzel',serif;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(253,249,240,.55);padding:10px 18px;border:1px solid rgba(212,175,55,.14);border-radius:999px;cursor:pointer;white-space:nowrap;transition:all .3s var(--ease);min-height:42px;display:flex;align-items:center;justify-content:center;}
.cat-tab:hover{color:var(--gold);border-color:rgba(212,175,55,.5);}
.cat-tab.active{color:var(--black);border-color:var(--gold);background:linear-gradient(135deg,var(--gold),var(--gold2));font-weight:700;box-shadow:0 8px 20px -8px rgba(212,175,55,.7);}
.products-area{padding:44px 40px 80px;max-width:1240px;margin:0 auto;}
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;}
.product-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .45s var(--ease),border-color .45s,box-shadow .45s;animation:fadeUp .6s var(--ease) both;}
.product-card:hover{border-color:rgba(212,175,55,.5);transform:translateY(-7px);box-shadow:var(--glow);}
.product-img{height:200px;display:flex;align-items:center;justify-content:center;font-size:4rem;background:linear-gradient(135deg,#1c1a14,#0f0e0c);position:relative;overflow:hidden;}
.product-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease);}
.product-card:hover .product-img img{transform:scale(1.07);}
.product-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(15,14,12,.95));pointer-events:none;}
.product-body{padding:20px 22px 22px;}
.product-name{font-family:'Cinzel',serif;font-size:.98rem;font-weight:600;letter-spacing:.05em;margin-bottom:8px;}
.product-desc{font-size:.8rem;font-weight:300;color:rgba(253,249,240,.5);line-height:1.7;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.product-price{font-family:'Cinzel',serif;font-size:.85rem;color:var(--gold);display:inline-block;padding:6px 12px;border-radius:999px;background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.25);margin-bottom:4px;}
.product-price-note{font-size:.72rem;color:rgba(253,249,240,.35);margin-bottom:16px;}
.product-options{margin-bottom:16px;}
.product-options label{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(212,175,55,.7);display:block;margin-bottom:6px;}
.product-options select{background:rgba(212,175,55,.04);border:1px solid rgba(212,175,55,.15);color:var(--white);padding:10px 12px;width:100%;font-size:.85rem;outline:none;border-radius:10px;}
.product-options select option{background:var(--black3);color:#fff;}
.add-cart-btn{width:100%;font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--black);background:linear-gradient(135deg,var(--gold),var(--gold2));border:none;padding:13px;cursor:pointer;transition:all .3s;border-radius:999px;font-weight:700;}
.add-cart-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(212,175,55,.8);}
.add-cart-btn.added{background:linear-gradient(135deg,#2e7d32,#43a047);color:#fff;}

/* ===== FICHE PRODUIT (rendue par JS, styles inline) — adoucissements ===== */
#page-product > div{padding-top:30px!important;}
#page-product [id^="gallery-"][style*="aspect-ratio"],#page-product div[style*="aspect-ratio:4/3"]{border-radius:var(--r)!important;box-shadow:0 30px 60px -30px rgba(0,0,0,.9);}
#page-product div[style*="border-radius:6px"]{border-radius:var(--r2)!important;}
#page-product button[style*="width:100%"]{border-radius:999px!important;}

/* ===== PANIER ===== */
.cart-page{padding:40px 40px 80px;max-width:1140px;margin:0 auto;}
.cart-empty{text-align:center;padding:80px 20px;background:var(--card);border:1px dashed rgba(212,175,55,.3);border-radius:var(--r);}
.cart-empty span{font-size:4rem;display:block;margin-bottom:20px;filter:drop-shadow(0 10px 20px rgba(212,175,55,.3));}
.cart-layout{display:grid;grid-template-columns:1fr 390px;gap:30px;align-items:start;}
.cart-items-list{display:flex;flex-direction:column;gap:14px;}
.cart-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;display:grid;grid-template-columns:70px 1fr auto;gap:18px;align-items:center;transition:border-color .3s;}
.cart-item:hover{border-color:rgba(212,175,55,.35);}
.cart-item-icon{font-size:2.2rem;text-align:center;width:64px;height:64px;border-radius:16px;background:rgba(212,175,55,.08);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;}
.cart-item-name{font-family:'Cinzel',serif;font-size:.9rem;font-weight:600;margin-bottom:5px;}
.cart-item-detail{font-size:.78rem;color:rgba(253,249,240,.5);}
.cart-item-price{font-family:'Cinzel',serif;color:var(--gold);font-size:1rem;}
.cart-item-remove{display:block;margin-left:auto;background:none;border:1px solid transparent;color:rgba(253,249,240,.35);cursor:pointer;font-size:1rem;margin-top:8px;width:32px;height:32px;border-radius:50%;transition:all .3s;}
.cart-item-remove:hover{color:var(--red);border-color:rgba(229,57,53,.4);background:rgba(229,57,53,.08);}
.devis-panel{background:var(--card);border:1px solid rgba(212,175,55,.25);border-radius:var(--r);padding:28px;position:sticky;top:calc(var(--nav-h) + 20px);box-shadow:var(--glow);}
.devis-panel h3{font-family:'Cinzel',serif;font-size:.95rem;letter-spacing:.1em;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.total-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:12px;}
.total-line span{font-size:.82rem;color:rgba(253,249,240,.6);}
.total-line strong{font-family:'Cinzel',serif;color:var(--gold);font-size:.85rem;white-space:nowrap;}
.total-final{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-radius:var(--r2);background:rgba(212,175,55,.07);border:1px solid rgba(212,175,55,.22);margin:14px 0 20px;}
.total-final span{font-family:'Cinzel',serif;font-size:.72rem;letter-spacing:.14em;}
.total-final strong{font-family:'Cinzel',serif;font-size:1.35rem;color:var(--gold);}
.devis-btn{width:100%;font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--black);background:linear-gradient(135deg,var(--gold),var(--gold2));border:none;padding:17px;cursor:pointer;border-radius:999px;font-weight:700;transition:all .3s var(--ease);margin-bottom:10px;box-shadow:0 12px 30px -12px rgba(212,175,55,.7);}
.devis-btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(212,175,55,.85);}
.note-devis{font-size:.72rem;color:rgba(253,249,240,.35);text-align:center;line-height:1.6;}
.promo-wrap{margin:8px 0;display:flex;gap:8px;}
.promo-wrap input{flex:1;min-width:0;background:rgba(253,249,240,.04);border:1px solid rgba(212,175,55,.2);border-radius:10px;color:var(--white);padding:10px 12px;font-size:.85rem;outline:none;transition:border-color .3s;text-transform:uppercase;letter-spacing:.1em;}
.promo-wrap input:focus{border-color:var(--gold);}
.promo-wrap input::placeholder{text-transform:none;letter-spacing:0;color:rgba(253,249,240,.25);}
.promo-apply-btn{font-family:'Cinzel',serif;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.35);padding:8px 14px;cursor:pointer;border-radius:10px;white-space:nowrap;transition:all .3s;}
.promo-apply-btn:hover{background:rgba(212,175,55,.18);}
.promo-msg{font-size:.75rem;margin-top:4px;min-height:16px;}
.promo-msg.ok{color:#66bb6a;}
.promo-msg.err{color:var(--red);}

/* ===== MODAL DEVIS ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:2000;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:40px 20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:linear-gradient(170deg,#161410,#0f0e0c);border:1px solid rgba(212,175,55,.25);border-radius:var(--r);width:100%;max-width:720px;padding:40px;position:relative;margin:auto;box-shadow:0 40px 100px -30px rgba(0,0,0,.9),var(--glow);animation:modalIn .45s var(--ease) both;}
@keyframes modalIn{from{opacity:0;transform:translateY(20px) scale(.98);}to{opacity:1;transform:none;}}
.modal-close{position:absolute;top:16px;right:18px;background:rgba(253,249,240,.05);border:1px solid rgba(253,249,240,.1);color:rgba(253,249,240,.6);width:38px;height:38px;border-radius:50%;font-size:1.1rem;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;}
.modal-close:hover{color:var(--gold);border-color:var(--gold);transform:rotate(90deg);}
.modal-title{font-family:'Cinzel',serif;font-size:1.2rem;letter-spacing:.08em;margin-bottom:8px;}
.modal-subtitle{font-size:.84rem;color:rgba(253,249,240,.5);margin-bottom:26px;}
.devis-summary{background:rgba(212,175,55,.05);border:1px solid rgba(212,175,55,.14);border-radius:var(--r2);padding:16px 18px;margin:0 0 22px;}
.devis-summary h4{font-family:'Cinzel',serif;font-size:.7rem;letter-spacing:.16em;margin-bottom:12px;color:var(--gold);}
.devis-summary-item{display:flex;justify-content:space-between;font-size:.8rem;color:rgba(253,249,240,.65);margin-bottom:6px;gap:12px;}
.devis-total-line{display:flex;justify-content:space-between;font-family:'Cinzel',serif;color:var(--gold);padding-top:10px;border-top:1px solid rgba(212,175,55,.12);margin-top:8px;}
.submit-devis{width:100%;font-family:'Cinzel',serif;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--black);background:linear-gradient(135deg,var(--gold),var(--gold2));border:none;padding:18px;cursor:pointer;border-radius:999px;font-weight:700;margin-top:20px;transition:all .3s var(--ease);box-shadow:0 12px 30px -12px rgba(212,175,55,.7);}
.submit-devis:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(212,175,55,.85);}
.submit-devis:disabled{opacity:.6;cursor:wait;transform:none;}
.success-msg{text-align:center;padding:20px 0;display:none;}
.success-msg .check{font-size:3.4rem;margin-bottom:16px;display:block;animation:pop .6s var(--ease) both;}
@keyframes pop{from{transform:scale(.4);opacity:0;}to{transform:scale(1);opacity:1;}}
.success-msg h3{font-family:'Cinzel',serif;font-size:1.15rem;color:var(--gold);margin-bottom:10px;}
.success-msg p{font-size:.88rem;color:rgba(253,249,240,.65);line-height:1.7;}
#d-lieu-pays{border-radius:var(--r2)!important;border:1px solid rgba(212,175,55,.18)!important;padding:12px 14px!important;background:rgba(253,249,240,.04)!important;}
#ville-suggestions,#lieu-suggestions{border-radius:0 0 var(--r2) var(--r2)!important;}

/* ===== CONTACT ===== */
.contact-page{padding:50px 40px 80px;max-width:1140px;margin:0 auto;}
.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:50px;align-items:start;margin-top:36px;}
.contact-info-block{display:flex;flex-direction:column;gap:22px;}
.ci-block{display:flex;align-items:center;gap:18px;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);transition:border-color .3s,transform .3s var(--ease);}
.ci-block:hover{border-color:rgba(212,175,55,.4);transform:translateX(4px);}
.ci-ico{width:48px;height:48px;border-radius:14px;background:rgba(212,175,55,.1);border:1px solid rgba(212,175,55,.25);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--gold);flex-shrink:0;}
.ci-info strong{font-family:'Cinzel',serif;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:3px;}
.ci-info span{font-size:.9rem;color:rgba(253,249,240,.7);}
.ci-tip{background:rgba(212,175,55,.06);border:1px solid rgba(212,175,55,.16);border-radius:var(--r);padding:22px;}
.ci-tip .ci-tip-t{font-family:'Cinzel',serif;font-size:.7rem;letter-spacing:.15em;color:var(--gold);margin-bottom:8px;}
.ci-tip p{font-size:.82rem;color:rgba(253,249,240,.55);line-height:1.7;}
.contact-form-box{background:var(--card);border:1px solid rgba(212,175,55,.18);border-radius:var(--r);padding:34px;box-shadow:var(--glow);}
.contact-form-box h3{font-family:'Cinzel',serif;font-size:.95rem;letter-spacing:.12em;margin-bottom:24px;}

/* ===== RESPONSIVE ===== */
@media(max-width:1000px){.cats-grid{grid-template-columns:1fr 1fr;}.cart-layout{grid-template-columns:1fr;}.devis-panel{position:static;}.contact-layout{grid-template-columns:1fr;}}
@media(max-width:900px){
  #hero-section{padding:50px 18px 80px;min-height:calc(100svh - var(--nav-h));}
  .hero-btns{flex-direction:column;align-items:stretch;gap:10px;}
  .stats-bar{padding:40px 18px 10px;}
  .stats-inner{grid-template-columns:1fr 1fr;gap:12px;}
  .cats-section,.avis-section,.contact-page{padding-left:18px;padding-right:18px;}
  #guide-animation{padding:60px 18px!important;}
  .page-hero{padding:40px 18px 24px;}
  .cat-tabs{padding:10px 14px;justify-content:flex-start;}
  .products-area{padding:24px 18px 60px;}
  .products-grid{grid-template-columns:1fr 1fr;gap:14px;}
  .cart-page{padding:20px 18px 60px;}
  .cart-item{grid-template-columns:56px 1fr auto;gap:12px;padding:16px;}
  .cart-item-icon{width:52px;height:52px;font-size:1.7rem;}
  .modal-box{padding:26px 18px;}
  .contact-form-box{padding:24px 18px;}
  #page-product > div > div:first-of-type + div{grid-template-columns:1fr!important;}
}
@media(max-width:600px){
  .hero-h1{font-size:2.5rem;}
  .hero-trust{gap:8px 16px;}
  .hero-trust span{font-size:.72rem;}
  .stat-n{font-size:1.8rem;}
  .cats-grid{grid-template-columns:1fr;gap:14px;}
  .cat-card{min-height:230px;}
  .products-grid{grid-template-columns:1fr;}
  .product-img{height:180px;}
  .avis-score{width:100%;}
  #page-product{padding-top:var(--nav-h);}
  #page-product > div{padding:16px 12px 40px!important;}
  #page-product [style*="grid-template-columns:1fr 1fr 1fr"]{display:grid!important;grid-template-columns:1fr!important;}
  #page-product button[style*="width:100%"]{position:sticky;bottom:env(safe-area-inset-bottom,0);font-size:.72rem!important;padding:16px!important;box-shadow:0 -4px 20px rgba(0,0,0,.5);}
  input[type="text"],input[type="email"],input[type="tel"],input[type="date"],textarea,select{font-size:16px!important;}
  footer{padding-bottom:max(32px,env(safe-area-inset-bottom));}
}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
@media(max-width:700px){
  .detail-grid{grid-template-columns:1fr!important;gap:20px!important;}
  .detail-grid > div:first-child{min-height:180px!important;font-size:3.5rem!important;}
  .toppings-grid{grid-template-columns:1fr!important;}
}
