/* ══════════════════════════════════════════════════════════════
   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;}
/* Les trois halos portaient un filter:blur(70px) par-dessus un degrade qui
   s'eteint deja en transparent : le flou etait redondant, et le navigateur
   le recalculait sur 520, 420 et 360 px de cote a chaque image affichee,
   pendant que l'animation les deplacait sans interruption. Le degrade seul
   donne le meme halo pour rien. */
/* Halos, carres et particules etaient animes en boucle dans le premier
   ecran, la ou le visiteur cherche a faire defiler. Ils sont desormais
   immobiles : le decor est identique, le navigateur ne fabrique plus
   d'images pour lui. Les keyframes orb, spin et rise restent definies,
   rien d'autre ne les utilise. */
.orb{position:absolute;border-radius:50%;opacity:.5;}
.o1{width:520px;height:520px;left:-140px;top:-120px;background:radial-gradient(circle,rgba(212,175,55,.42),rgba(212,175,55,.12) 42%,transparent 72%);}
.o2{width:420px;height:420px;right:-120px;top:20%;background:radial-gradient(circle,rgba(240,208,96,.3),rgba(240,208,96,.09) 42%,transparent 72%);animation-delay:-6s;animation-duration:20s;}
.o3{width:360px;height:360px;left:35%;bottom:-160px;background:radial-gradient(circle,rgba(160,120,32,.38),rgba(160,120,32,.11) 42%,transparent 72%);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);}}
/* Trois carres bordes, de 820, 560 et 320 px, poses en diagonale derriere
   le hero. Une fois leur rotation arretee, leurs contours dessinaient un
   rectangle net derriere le titre et le texte. Retires : les halos et le
   degrade de fond suffisent a donner de la profondeur. */
.hero-geo{display:none;}
.hg{position:absolute;top:50%;left:50%;border:1px solid rgba(212,175,55,.07);}
.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;display:none;}
.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;}
}

/* Choix d'une prestation : visibles d'emblee, en pastilles cliquables.
   Les cases a cocher restent en place, seul leur habillage change. */
.sel-grid{display:flex;flex-wrap:wrap;gap:8px;}
.sel-chip{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;background:rgba(253,249,240,.025);
  border:1px solid rgba(212,175,55,.14);border-radius:999px;cursor:pointer;
  transition:border-color .2s ease,background .2s ease;}
.sel-chip:hover{border-color:rgba(212,175,55,.34);background:rgba(212,175,55,.06);}
.sel-chip:has(input:checked){border-color:var(--gold);background:rgba(212,175,55,.13);}
.sel-chip:has(input:disabled){opacity:.4;cursor:not-allowed;}
.sel-chip span{font-size:.85rem;color:#fff;}

/* Savoir-faire, sous la galerie d'une prestation : ce qui nous distingue,
   visible pendant que le visiteur configure sa demande. */
.sf-bloc{margin-top:16px;background:linear-gradient(165deg,rgba(24,22,17,.92),rgba(14,13,11,.96));
  border:1px solid rgba(212,175,55,.14);border-radius:10px;padding:18px 20px;}
.sf-bloc h3{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin:0 0 12px;}
.sf-l{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-top:1px solid rgba(212,175,55,.07);}
.sf-l:first-of-type{border-top:none;}
.sf-i{font-size:1.05rem;line-height:1.2;flex:0 0 auto;}
.sf-l b{display:block;font-size:.82rem;font-weight:500;color:rgba(253,249,240,.9);}
.sf-l b + span{display:block;font-size:.75rem;color:rgba(253,249,240,.45);line-height:1.5;}
.sf-p{display:flex;gap:18px;flex-wrap:wrap;margin-top:13px;padding-top:13px;border-top:1px solid rgba(212,175,55,.1);}
.sf-p div{font-size:.7rem;color:rgba(253,249,240,.45);}
.sf-p b{display:block;font-family:'Cinzel',serif;font-size:1.1rem;color:var(--gold);line-height:1.1;}

/* Le bouton de devis suit le defilement : quel que soit l'endroit ou le
   visiteur s'arrete dans la configuration, il reste a portee de clic. */
.cta-collant{position:sticky;bottom:14px;z-index:20;box-shadow:0 18px 42px -18px rgba(0,0,0,.95);}

/* ── Panneau de prestation : l'ordre de lecture de la maquette ──
   La quantite vient avant la formule : on choisit d'abord combien
   d'invites, puis la formule, dont le prix depend de ce nombre. */
.detail-col{display:flex;flex-direction:column;}
.detail-col > *{order:5;}
.detail-col > span,.detail-col > h2,.detail-col > p{order:0;}
.detail-col > [id^="inclus-box-"]{order:1;}
.detail-col > [id^="pieces-wrap-"]{order:2;}
.detail-col > .formule-box{order:3;}
.detail-col > .recap-collant{order:20;}

/* Les formules deviennent des cartes comparables */
.formule-box label{position:relative;display:flex;align-items:center;gap:13px;
  border:1px solid rgba(212,175,55,.16);border-radius:12px;padding:15px 17px;margin-bottom:10px;
  cursor:pointer;transition:border-color .25s ease,background .25s ease;}
.formule-box label:hover{border-color:rgba(212,175,55,.34);background:rgba(212,175,55,.05);}
.formule-box label:last-of-type::before{content:'Le plus choisi';position:absolute;top:-9px;right:14px;
  background:linear-gradient(135deg,#D4AF37,#F0D060);color:#080706;font-family:'Cinzel',serif;
  font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:3px 10px;border-radius:999px;}

/* Le recapitulatif suit le defilement */
.recap-collant{position:sticky;bottom:12px;z-index:20;margin-top:18px;
  background:linear-gradient(165deg,rgba(30,26,18,.98),rgba(16,14,11,.99));
  border:1px solid rgba(212,175,55,.32);border-radius:14px;padding:16px 18px;
  box-shadow:0 24px 56px -24px rgba(0,0,0,.95);}
.recap-l{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding-bottom:11px;margin-bottom:12px;border-bottom:1px solid rgba(212,175,55,.14);}
.recap-l span{font-size:.78rem;color:rgba(253,249,240,.5);}
.recap-l b{font-family:'Cinzel',serif;font-size:1.45rem;color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap;}
.recap-note{text-align:center;font-size:.68rem;color:rgba(253,249,240,.3);margin:9px 0 0;}

/* Quantite : deux boutons encadrent le champ, une ligne d'aide suit la
   saisie en direct. */
.qte-cadre{display:inline-flex;align-items:center;border:1px solid rgba(212,175,55,.32);border-radius:999px;overflow:hidden;}
.qte-cadre button{width:40px;height:40px;background:none;border:none;color:var(--gold);font-size:1.15rem;cursor:pointer;transition:background .2s ease;}
.qte-cadre button:hover{background:rgba(212,175,55,.14);}
.qte-cadre input{width:82px;height:40px;text-align:center;background:transparent;border:none;
  color:var(--white);font-family:'Cinzel',serif;font-size:1rem;font-variant-numeric:tabular-nums;}
.qte-cadre input::-webkit-outer-spin-button,.qte-cadre input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.qte-aide{font-size:.78rem;color:rgba(253,249,240,.45);margin:9px 0 0;}
.qte-aide b{color:var(--gold);}
.qte-aide b.qte-court{color:#E0705C;}

/* Le recapitulatif ne colle que sur petit ecran : sur ordinateur il
   masquerait la seconde formule pendant le defilement. */
.recap-collant{position:static;}
@media(max-width:900px){ .recap-collant{position:sticky;bottom:12px;} }
