
:root{--bg:#06111f;--panel:#0d2037;--text:#f4f8fc;--muted:#9fb0c5;--line:rgba(255,255,255,.10);--gold:#db9412;--gold2:#f2b13f;--cyan:#08bfe5;--max:1180px}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:Segoe UI,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 15% 0%,rgba(219,148,18,.12),transparent 27rem),radial-gradient(circle at 90% 18%,rgba(8,191,229,.10),transparent 28rem),linear-gradient(180deg,var(--bg),#050d18 70%,var(--bg));overflow-x:hidden}
a{color:inherit;text-decoration:none} button,input,textarea,select{font:inherit} button{cursor:pointer} img{max-width:100%;display:block}
.offline{background:linear-gradient(90deg,var(--gold),var(--cyan));color:#06111f;text-align:center;font-weight:900;font-size:11px;letter-spacing:.06em;padding:7px 12px}
header{position:sticky;top:0;z-index:60;width:min(calc(100% - 24px),var(--max));margin:12px auto 0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 14px;border:1px solid var(--line);border-radius:18px;background:rgba(6,17,31,.84);backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(0,0,0,.30)}
.logo{height:50px;width:auto;max-width:250px} nav{display:flex;gap:22px;align-items:center;color:#c8d5e5;font-size:14px;font-weight:700} nav a:hover{color:white}
.cartbtn{border:1px solid var(--line);background:white;color:#06111f;border-radius:13px;padding:10px 13px;font-weight:900;display:flex;align-items:center;gap:7px} .count{width:22px;height:22px;border-radius:50%;background:var(--gold);display:grid;place-items:center;font-size:11px}
.menubtn{display:none;border:0;background:none;color:white;font-size:25px}
.hero{width:min(calc(100% - 36px),var(--max));margin:auto;padding:82px 0 62px;display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center}
.kicker{color:#80e5f6;font-weight:900;letter-spacing:.14em;font-size:11px;margin:0 0 18px}
.hero h1,.heading h2,.shophead h2,.custom h2{font-weight:900;letter-spacing:-.055em;line-height:.98;margin:0}
.hero h1{font-size:clamp(56px,7vw,94px)} .gold{color:var(--gold2)} .cyan{color:var(--cyan)}
.hero p:not(.kicker),.heading p,.shophead p,.custom p{color:var(--muted);max-width:720px} .hero p:not(.kicker){font-size:18px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px} .btn{min-height:48px;padding:0 20px;border-radius:13px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-weight:900;transition:.2s} .btn:hover{transform:translateY(-2px)} .primary{border:0;background:linear-gradient(135deg,var(--gold),var(--cyan));color:#06111f} .ghost{background:rgba(255,255,255,.035)}
.facts{display:flex;gap:17px;flex-wrap:wrap;color:#c8d5e5;font-size:13px;margin-top:22px}
.visual{min-height:500px;position:relative;display:grid;place-items:center} .visualcard{width:min(440px,90vw);aspect-ratio:1;border-radius:34px;padding:17px;background:linear-gradient(145deg,rgba(219,148,18,.15),rgba(8,191,229,.12));border:1px solid rgba(255,255,255,.12);box-shadow:0 35px 100px rgba(0,0,0,.42);transform:rotate(2deg);overflow:hidden;position:relative} .visualfg{width:100%;height:100%;border-radius:24px;display:block;position:relative;z-index:1}.visualfg.cover{object-fit:cover}.visualfg.contain{object-fit:contain;padding:10px;background:transparent}
.badge{position:absolute;border:1px solid var(--line);background:rgba(6,17,31,.9);padding:10px 14px;border-radius:999px;font-size:12px;font-weight:900} .b1{top:12%;left:0} .b2{right:0;bottom:18%}
.strip{border-block:1px solid var(--line);padding:18px 14px;display:flex;flex-wrap:wrap;justify-content:center;gap:24px;color:#c6d3e2;text-transform:uppercase;font-size:11px;font-weight:900;letter-spacing:.1em} .strip span::before{content:"✦";color:var(--gold);margin-right:17px} .strip span:first-child::before{display:none}
section{width:min(calc(100% - 36px),var(--max));margin:auto;padding:92px 0} .heading{max-width:760px;margin-bottom:36px} .heading h2,.shophead h2,.custom h2{font-size:clamp(42px,5vw,68px)}
.shophead{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px} .shophead .txt{max-width:720px} .demobox{max-width:350px;border:1px solid rgba(219,148,18,.28);background:rgba(219,148,18,.08);padding:14px 16px;border-radius:15px;color:#e8c98d;font-size:12px}
.filters{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0 27px} .filter{border:1px solid var(--line);background:rgba(255,255,255,.025);color:#d7e2ee;border-radius:999px;padding:9px 14px;font-weight:800;font-size:12px} .filter.active{background:white;color:#06111f}
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:16px} .product{border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.018));border-radius:24px;overflow:hidden;display:flex;flex-direction:column;min-height:480px;transition:.25s} .product:hover{transform:translateY(-4px);border-color:rgba(8,191,229,.4)} .media{height:265px;background:#09182b;position:relative;overflow:hidden} .media img{width:100%;height:100%;object-fit:cover} .media.contain img{object-fit:contain;padding:12px} .tag{position:absolute;left:13px;top:13px;background:rgba(6,17,31,.9);border:1px solid var(--line);padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.08em}
.pbody{padding:20px;display:flex;flex-direction:column;gap:11px;flex:1} .product h3{margin:0;font-size:20px} .product p{margin:0;color:var(--muted);font-size:13px} .pbot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px} .price{font-weight:900} .price small{display:block;color:var(--muted);font-size:10px;font-weight:600} .add{border:0;border-radius:12px;background:linear-gradient(135deg,var(--gold),var(--cyan));color:#06111f;padding:10px 13px;font-weight:900}
.custom{display:grid;grid-template-columns:1fr 1fr;gap:20px} .custom>div{border:1px solid var(--line);border-radius:28px;padding:37px;background:rgba(255,255,255,.025)} .custom .right{background:radial-gradient(circle at 100% 0%,rgba(8,191,229,.14),transparent 18rem),radial-gradient(circle at 0% 100%,rgba(219,148,18,.13),transparent 18rem),var(--panel)} .steps{display:grid;gap:15px} .step{display:grid;grid-template-columns:42px 1fr;gap:13px} .step span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),var(--cyan));color:#06111f;font-weight:900} .step h3{margin:2px 0;font-size:15px} .step p{margin:0;font-size:13px}
.gallery{display:grid;grid-template-columns:1.1fr .9fr;gap:16px} .gmain,.gside>div{border-radius:24px;overflow:hidden;border:1px solid var(--line);background:var(--panel)} .gmain img{width:100%;height:550px;object-fit:cover} .gside{display:grid;gap:16px} .gside>div{height:267px} .gside img{width:100%;height:100%;object-fit:cover}
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;border-top:1px solid var(--line);align-items:start} .form{display:grid;grid-template-columns:1fr 1fr;gap:14px;border:1px solid var(--line);border-radius:24px;background:var(--panel);padding:24px} label{display:grid;gap:7px;font-weight:800;font-size:12px;color:#dce6f2} label.full,.form button,.status{grid-column:1/-1} input,select,textarea{border:1px solid var(--line);background:#071426;color:white;padding:13px 14px;border-radius:12px;outline:none} input:focus,select:focus,textarea:focus{border-color:var(--cyan)} textarea{resize:vertical} .status{min-height:20px;color:#80e5f6;font-size:12px;margin:0}
footer{width:min(calc(100% - 36px),var(--max));margin:auto;border-top:1px solid var(--line);padding:34px 0 44px;display:flex;justify-content:space-between;gap:25px;align-items:center;color:var(--muted);font-size:12px} footer img{height:48px;width:auto} footer p{margin:0;text-align:right}
.public-visit-counter{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.035);color:#c8d5e5;font-size:12px}.public-visit-counter strong{color:white;font-size:13px}.public-visit-counter span{white-space:nowrap}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:90;opacity:0;pointer-events:none;transition:.25s} .overlay.open{opacity:1;pointer-events:auto} .drawer{position:absolute;right:0;top:0;height:100%;width:min(430px,92vw);background:#071426;border-left:1px solid var(--line);padding:22px;display:flex;flex-direction:column;transform:translateX(100%);transition:.28s} .overlay.open .drawer{transform:none} .carthead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:15px} .carthead h3{margin:0} .close{border:0;background:none;color:white;font-size:27px} .items{display:grid;gap:10px;overflow:auto;margin:18px 0} .item{border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px} .item small{color:var(--muted)} .remove{border:0;background:none;color:#ff9c9c;font-size:12px} .empty{color:var(--muted);text-align:center;padding:40px 10px;font-size:13px} .cartfoot{margin-top:auto;border-top:1px solid var(--line);padding-top:16px} .cartfoot p{color:var(--muted);font-size:12px} .cartfoot .btn{width:100%}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);opacity:0;z-index:99;background:white;color:#06111f;border-radius:999px;padding:11px 16px;font-weight:900;font-size:12px;transition:.25s} .toast.show{transform:translate(-50%,0);opacity:1}
.reveal{opacity:0;transform:translateY(18px);transition:.65s} .reveal.on{opacity:1;transform:none}
@media(max-width:900px){nav{display:none;position:absolute;top:69px;left:0;right:0;background:#071426;border:1px solid var(--line);padding:14px;border-radius:16px;flex-direction:column;align-items:stretch}nav.open{display:flex}.menubtn{display:block}.hero{grid-template-columns:1fr}.shophead{display:block}.demobox{margin-top:16px}.products{grid-template-columns:1fr 1fr}.custom,.contact{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gside{grid-template-columns:1fr 1fr}}
@media(max-width:620px){header{width:calc(100% - 18px);margin-top:8px}.logo{height:39px;max-width:175px}.cartlabel{display:none}.hero,section,footer{width:calc(100% - 28px)}.hero{padding-top:52px}.hero h1{font-size:54px}.hero p:not(.kicker){font-size:16px}.visual{min-height:390px}.visualcard{width:min(340px,88vw)}section{padding:70px 0}.products{grid-template-columns:1fr}.product{min-height:445px}.media{height:245px}.custom>div{padding:25px}.gmain img{height:390px}.gside{grid-template-columns:1fr}.gside>div{height:300px}.form{grid-template-columns:1fr}.form label{grid-column:1/-1}footer{display:grid}footer p{text-align:left}.public-visit-counter{justify-content:flex-start;border-radius:16px;width:max-content;max-width:100%}}

.alert{grid-column:1/-1;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:13px}
.alert.ok{background:rgba(8,191,229,.09);color:#9cecff;border-color:rgba(8,191,229,.28)}
.alert.err{background:rgba(255,100,100,.08);color:#ffc2c2;border-color:rgba(255,100,100,.25)}
.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* admin-patch reveal fallback */
.reveal{opacity:1!important;transform:none!important}


/* Boutique V4 : navigation catégorie → sous-catégorie → produits */
.shop-browser{margin-top:22px}
.shop-view[hidden],.shop-crumb[hidden],.product[hidden],.shop-empty[hidden]{display:none!important}
.shop-view-head{margin:0 0 18px}
.shop-view-head h3{margin:0 0 7px;font-size:clamp(22px,3vw,32px);letter-spacing:-.025em}
.shop-view-head p{margin:0;color:var(--muted);max-width:720px}

.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.category-card{
  appearance:none;border:1px solid var(--line);background:linear-gradient(155deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  color:var(--text);border-radius:20px;padding:18px;min-height:118px;text-align:left;cursor:pointer;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;transition:.2s ease
}
.category-card:hover{transform:translateY(-3px);border-color:rgba(8,191,229,.45);background:linear-gradient(155deg,rgba(8,191,229,.09),rgba(255,255,255,.025))}
.category-icon{width:52px;height:52px;border-radius:15px;background:rgba(255,255,255,.055);display:grid;place-items:center;font-size:28px}
.category-copy{display:grid;gap:4px;min-width:0}
.category-copy strong{font-size:15px;line-height:1.15}
.category-copy small{font-size:11px;color:var(--muted)}
.category-arrow{font-size:30px;color:var(--cyan);line-height:1}

.shop-crumb{
  display:flex;align-items:center;gap:13px;margin:0 0 18px;padding:10px 12px;
  border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:14px
}
.shop-crumb>div{display:grid;gap:1px}
.shop-crumb small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.shop-crumb strong{font-size:13px}
.shop-back{
  border:1px solid var(--line);background:rgba(255,255,255,.055);color:var(--text);
  padding:9px 12px;border-radius:10px;font-weight:900;cursor:pointer
}
.shop-back:hover{background:white;color:#06111f}

.products-view .products{margin-top:12px}
.shop-empty{
  padding:28px;border:1px dashed var(--line);border-radius:18px;text-align:center;color:var(--muted);
  background:rgba(255,255,255,.018)
}

@media(max-width:980px){.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){
  .category-grid{grid-template-columns:1fr}
  .category-card{min-height:96px}
  .shop-crumb{align-items:flex-start}
}


/* V5 : images personnalisées des catégories */
.category-icon{
  overflow:hidden;
}
.category-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  border-radius:12px;
}


/* V5.1 : icônes personnalisées reprises dans les titres et fils d'Ariane */
.inline-category-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.inline-category-icon,
.server-category-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:inline-grid;
  place-items:center;
  overflow:hidden;
  border-radius:9px;
  background:rgba(255,255,255,.055);
  vertical-align:middle;
}
.inline-category-icon img,
.server-category-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.server-category-heading{
  display:flex;
  align-items:center;
  gap:10px;
}
#shopCrumbTitle .inline-category-icon{
  width:24px;
  height:24px;
  flex-basis:24px;
  border-radius:6px;
}


/* V6 : Réalisations en dossiers + photos plus petites et homogènes */
.realization-browser{margin-top:22px}
.realization-crumb[hidden],
.realization-folders[hidden],
.realization-images-view[hidden],
.realization-card[hidden],
#realizationEmpty[hidden]{display:none!important}

.realization-crumb{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0 0 18px;
  padding:10px 12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.025);
  border-radius:14px
}
.realization-back{
  border:1px solid var(--line);
  background:rgba(255,255,255,.055);
  color:var(--text);
  padding:9px 12px;
  border-radius:10px;
  font-weight:900;
  cursor:pointer
}
.realization-back:hover{background:white;color:#06111f}

.realization-folders{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,280px));
  gap:14px;
  justify-content:start
}
.realization-folder-card{
  appearance:none;
  border:1px solid var(--line);
  background:linear-gradient(155deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  color:var(--text);
  border-radius:18px;
  padding:17px;
  min-height:100px;
  text-align:left;
  cursor:pointer;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:13px;
  transition:.2s ease
}
.realization-folder-card:hover{
  transform:translateY(-3px);
  border-color:rgba(8,191,229,.45)
}
.realization-folder-icon{
  width:48px;height:48px;border-radius:14px;
  background:rgba(255,255,255,.055);
  display:grid;place-items:center;font-size:25px
}
.realization-folder-copy{display:grid;gap:4px}
.realization-folder-copy strong{font-size:15px}
.realization-folder-copy small{font-size:11px;color:var(--muted)}
.realization-folder-arrow{font-size:28px;color:var(--cyan)}

.realization-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(340px,420px));
  gap:18px;
  justify-content:start;
  align-items:start
}
.realization-card{
  margin:0;
  width:100%;
  align-self:start;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--panel)
}
.realization-media{
  width:100%;
  overflow:hidden;
  border-radius:17px 17px 0 0;
  background:transparent
}
.realization-media img{
  display:block;
  width:100%;
  height:auto;
  min-height:0!important;
  object-fit:contain;
  border-radius:17px 17px 0 0
}
.realization-card figcaption{
  padding:11px 13px 12px;
  color:#dce6f2
}
.realization-title{
  display:block;
  font-size:13px;
  font-weight:900;
  color:#f4f8fc
}
.realization-description{
  margin:6px 0 0;
  font-size:12px;
  line-height:1.5;
  font-weight:500;
  color:var(--muted)
}

/* Neutralise l'ancien format spécial de la première image */
.dynamic-gallery,.gallery{display:block}
.gmain,.gitem,.gside>div{height:auto!important;min-height:0!important;border-radius:18px!important}
.gmain img,.gitem img,.gside img{height:auto!important;min-height:0!important}

@media(max-width:620px){
  .realization-folders,
  .realization-grid{
    grid-template-columns:1fr;
  }
}


/* V6.2 : icônes personnalisées des dossiers Réalisations */
.realization-folder-icon{
  overflow:hidden;
}
.realization-folder-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  border-radius:12px;
}


/* V7.1 : photos de référence du formulaire */
.reference-upload{
  border:1px solid var(--line);
  background:rgba(255,255,255,.025);
  border-radius:16px;
  padding:16px;
}
.reference-upload-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.reference-upload-head>div{
  display:grid;
  gap:5px;
}
.reference-upload-head strong{
  font-size:14px;
}
.reference-upload-head small{
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.reference-upload-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 15px;
  border:1px solid rgba(8,191,229,.35);
  border-radius:12px;
  background:rgba(8,191,229,.08);
  color:var(--text);
  font-weight:900;
  cursor:pointer;
}
.reference-upload-button:hover{
  border-color:rgba(8,191,229,.75);
  background:rgba(8,191,229,.14);
}
.reference-upload-button input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
.reference-preview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:13px;
}
.reference-preview:empty{
  display:none;
}
.reference-preview-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:#071426;
}
.reference-preview-card img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.reference-preview-card span{
  display:block;
  padding:7px 9px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:10px;
}
.reference-upload-error{
  margin:10px 0 0;
  color:#ff9d9d;
  font-size:12px;
  font-weight:700;
}
.reference-upload-error[hidden]{
  display:none!important;
}

@media(max-width:620px){
  .reference-preview{
    grid-template-columns:1fr;
  }
  .reference-upload-button{
    width:100%;
  }
}


/* V8.3 : choix de taille / variante avant ajout au panier */
.variant-picker{display:grid;gap:7px;margin-top:14px;color:#dce6f2;font-size:12px;font-weight:800}
.variant-picker span{display:block}
.variant-select{width:100%;border:1px solid rgba(255,255,255,.14);background:#071426;color:#fff;padding:11px 12px;border-radius:12px;outline:none}
.variant-select:focus{border-color:var(--cyan)}
.add:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.5);transform:none!important}
.cart-variant{display:inline-block;margin-top:3px;color:#b9d9e8;font-size:11px;font-weight:800}


/* V8.4 : paiement sécurisé */
.cart-secure{line-height:1.45}
#checkout[disabled]{opacity:.62;cursor:wait;filter:saturate(.7)}
.payment-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 15% 0%,rgba(219,148,18,.12),transparent 27rem),radial-gradient(circle at 90% 18%,rgba(8,191,229,.10),transparent 28rem),linear-gradient(180deg,#06111f,#050d18 70%,#06111f);color:#f4f8fc;font-family:Segoe UI,Arial,sans-serif}
.payment-card{width:min(620px,100%);border:1px solid rgba(255,255,255,.10);border-radius:24px;background:#0d2037;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.35);text-align:center}
.payment-card h1{margin:0 0 12px;font-size:clamp(28px,6vw,44px)}
.payment-card p{color:#b7c5d6;line-height:1.6}
.payment-card .btn{display:inline-flex;margin-top:12px}
.payment-ok{font-size:54px;margin-bottom:10px}
.payment-ref{font-size:12px;color:#9fb0c5;word-break:break-all}


/* V8.5 — panier réel + paiement */
.cart-item-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cart-qty{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:4px 7px;background:rgba(255,255,255,.04)}
.cart-qty span{min-width:22px;text-align:center;font-weight:900}
.qtybtn{width:28px;height:28px;border-radius:50%;border:0;background:#fff;color:#06111f;font-weight:900;cursor:pointer}
.payment-order-ref{font-size:18px;margin:18px 0}.legal-card{text-align:left}.legal-card h1{margin-top:0}.legal-card .btn{margin-top:12px}
footer a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){.item{align-items:flex-start}.cart-item-actions{justify-content:flex-start}.cart-item-copy{min-width:0}}

/* V9.0 : choix du pays de livraison dans le panier */
.cart-shipping-country{display:grid;gap:7px;margin-bottom:12px;padding:12px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.025)}
.cart-shipping-country label{font-size:12px;font-weight:900}.cart-shipping-country select{width:100%;border:1px solid var(--line);background:#06111f;color:#fff;border-radius:10px;padding:10px 11px}.cart-shipping-country small{color:var(--muted);font-size:11px}

/* V9.2 : agrandissement plein écran des photos produit */
.product .media img,.realization-media img{cursor:zoom-in}
.product .media img:focus-visible,.realization-media img:focus-visible{outline:3px solid var(--cyan);outline-offset:-4px}
.product-lightbox{position:fixed;inset:0;z-index:140;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:24px;backdrop-filter:blur(5px)}
.product-lightbox[hidden]{display:none!important}
.product-lightbox-stage{width:min(96vw,1500px);height:min(92vh,1100px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.product-lightbox-stage img{max-width:100%;max-height:calc(92vh - 70px);width:auto;height:auto;object-fit:contain;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.55);background:#08111f}
.product-lightbox-caption{margin:0;color:#fff;font-weight:800;text-align:center;font-size:16px}
.product-lightbox-close{position:fixed;top:18px;right:22px;z-index:141;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(7,20,38,.8);color:white;font-size:32px;line-height:1;display:grid;place-items:center;cursor:pointer}
.product-lightbox-close:hover{background:white;color:#06111f}
body.lightbox-open{overflow:hidden}
@media(max-width:620px){.product-lightbox{padding:14px}.product-lightbox-close{top:10px;right:10px}.product-lightbox-stage img{max-height:calc(92vh - 60px)}.product-lightbox-caption{font-size:14px}}


/* V9.4 — Animations configurables de la mascotte */
.visualfg[class*="hero-anim-"]{will-change:transform;transform-origin:50% 55%}
.hero-anim-float{animation:rpMascotFloat 3.8s ease-in-out infinite}
.hero-anim-breathe{animation:rpMascotBreathe 3.4s ease-in-out infinite}
.hero-anim-bounce{animation:rpMascotBounce 2.8s ease-in-out infinite}
.hero-anim-sway{animation:rpMascotSway 3.6s ease-in-out infinite}
.hero-anim-tilt{animation:rpMascotTilt 4.2s ease-in-out infinite;transform-style:preserve-3d}
.hero-anim-drift{animation:rpMascotDrift 4.4s ease-in-out infinite}
@keyframes rpMascotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes rpMascotBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@keyframes rpMascotBounce{0%,100%{transform:translateY(0)}35%{transform:translateY(-14px)}55%{transform:translateY(0)}72%{transform:translateY(-6px)}}
@keyframes rpMascotSway{0%,100%{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}
@keyframes rpMascotTilt{0%,100%{transform:perspective(900px) rotateY(-2deg) rotateX(1deg)}50%{transform:perspective(900px) rotateY(3deg) rotateX(-1deg)}}
@keyframes rpMascotDrift{0%,100%{transform:translateX(-7px)}50%{transform:translateX(7px)}}
@media (prefers-reduced-motion: reduce){.visualfg[class*="hero-anim-"]{animation:none!important;transform:none!important}}


/* V9.5 — Animations d'entrée configurables du hero */
.hero-title{overflow:visible}
.hero-title-line{display:block;transform-origin:50% 70%}
.hero-mascot-entry{width:100%;height:100%;display:block;transform-origin:50% 55%}
.hero-mascot-entry .visualfg{width:100%;height:100%}
[class*="hero-mascot-enter-"],[class*="hero-text-enter-"]{animation-duration:var(--hero-entry-duration,900ms);animation-fill-mode:both;animation-timing-function:cubic-bezier(.2,.75,.25,1);will-change:opacity,transform}
.hero-mascot-enter-from-right,.hero-text-enter-from-right{animation-name:rpEnterFromRight}
.hero-mascot-enter-from-left,.hero-text-enter-from-left{animation-name:rpEnterFromLeft}
.hero-mascot-enter-from-bottom,.hero-text-enter-from-bottom{animation-name:rpEnterFromBottom}
.hero-mascot-enter-from-top,.hero-text-enter-from-top{animation-name:rpEnterFromTop}
.hero-mascot-enter-zoom,.hero-text-enter-zoom{animation-name:rpEnterZoom}
.hero-mascot-enter-bounce-in,.hero-text-enter-bounce-in{animation-name:rpEnterBounce}
.hero-mascot-enter-flip-in,.hero-text-enter-flip-in{animation-name:rpEnterFlip}
.hero-mascot-enter-fade-up,.hero-text-enter-fade-up{animation-name:rpEnterFadeUp}
.hero-mascot-enter-pop,.hero-text-enter-pop{animation-name:rpEnterPop}
@keyframes rpEnterFromRight{0%{opacity:0;transform:translateX(120%) scale(.94)}100%{opacity:1;transform:translateX(0) scale(1)}}
@keyframes rpEnterFromLeft{0%{opacity:0;transform:translateX(-120%) scale(.94)}100%{opacity:1;transform:translateX(0) scale(1)}}
@keyframes rpEnterFromBottom{0%{opacity:0;transform:translateY(90px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes rpEnterFromTop{0%{opacity:0;transform:translateY(-90px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes rpEnterZoom{0%{opacity:0;transform:scale(0)}72%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes rpEnterBounce{0%{opacity:0;transform:translateX(90px) scale(.72)}55%{opacity:1;transform:translateX(-14px) scale(1.04)}75%{transform:translateX(7px) scale(.985)}100%{opacity:1;transform:none}}
@keyframes rpEnterFlip{0%{opacity:0;transform:perspective(900px) rotateY(75deg) scale(.75)}100%{opacity:1;transform:perspective(900px) rotateY(0) scale(1)}}
@keyframes rpEnterFadeUp{0%{opacity:0;transform:translateY(34px)}100%{opacity:1;transform:translateY(0)}}
@keyframes rpEnterPop{0%{opacity:0;transform:scale(.55) rotate(-2deg)}65%{opacity:1;transform:scale(1.08) rotate(1deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@media (prefers-reduced-motion: reduce){[class*="hero-mascot-enter-"],[class*="hero-text-enter-"]{animation:none!important;opacity:1!important;transform:none!important}}
