:root{
  --ink:#0E1116; --ink2:#1a1f29; --blue:#2B6BF2; --blue-d:#1B4FCC;
  --grey:#6B7280; --line:#E8EBF0; --soft:#F5F7FB; --white:#fff;
  --radius:18px; --shadow:0 10px 40px rgba(14,17,22,.10); --shadow-sm:0 2px 10px rgba(14,17,22,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--white);line-height:1.55;-webkit-font-smoothing:antialiased}
.wrap{max-width:1200px;margin:0 auto;padding:0 22px}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:'Space Grotesk','Inter',sans-serif;letter-spacing:-.02em;line-height:1.1}

/* annonce */
.annonce{background:var(--ink);color:#dfe5ef;font-size:12.5px;text-align:center;padding:9px 16px;letter-spacing:.01em}

/* header */
.hdr{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:22px;height:74px}
.logo{height:34px}
.search-box{flex:1;position:relative;max-width:560px}
.search-box .si-ico{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--grey)}
.search-box input{width:100%;padding:12px 16px 12px 42px;border:1px solid var(--line);border-radius:999px;font-size:14px;outline:none;background:var(--soft);transition:.2s}
.search-box input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(43,107,242,.12)}
.cart-btn{position:relative;background:var(--ink);color:#fff;border:0;width:46px;height:46px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.cart-btn:hover{background:var(--blue)}
.cart-btn .ic{width:20px;height:20px}
.badge{position:absolute;top:-4px;right:-4px;background:var(--blue);color:#fff;border-radius:999px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid #fff}

/* hero */
.hero{position:relative;overflow:hidden;color:#fff}
.hero-bg{position:absolute;inset:0;background:
   radial-gradient(900px 500px at 85% -10%,rgba(43,107,242,.55),transparent 60%),
   radial-gradient(700px 600px at 0% 120%,rgba(43,107,242,.30),transparent 55%),
   linear-gradient(135deg,#0c0f15 0%,#141a26 55%,#1d2a4d 100%)}
.hero-in{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:70px 22px 80px}
.eyebrow{display:inline-block;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#9fb6f5;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);padding:6px 13px;border-radius:999px;margin-bottom:20px}
.hero-txt h1{font-size:54px;font-weight:700;margin-bottom:18px}
.hero-txt p{font-size:17px;color:#c7d0e0;max-width:520px;margin-bottom:30px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;border:0;padding:14px 26px;border-radius:999px;font-weight:700;font-size:15px;cursor:pointer;transition:.2s;font-family:'Inter',sans-serif}
.btn:hover{background:#fff;color:var(--ink);transform:translateY(-1px)}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.3)}
.btn.ghost:hover{background:#fff;color:var(--ink)}
.btn.full{width:100%;padding:15px}
.hero-shots{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hero-shots .shot{background:#fff;border-radius:16px;padding:16px;height:130px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.25);transition:transform .3s}
.hero-shots .shot:hover{transform:translateY(-6px)}
.hero-shots .shot:nth-child(2),.hero-shots .shot:nth-child(3){transform:translateY(14px)}
.hero-shots .shot img{max-height:100px;object-fit:contain}

/* trust */
.trust{border-bottom:1px solid var(--line);background:#fff}
.trust-in{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:26px 22px}
.t-item{display:flex;flex-direction:column;gap:2px;border-left:3px solid var(--blue);padding-left:14px}
.t-item strong{font-size:14px}
.t-item span{font-size:12.5px;color:var(--grey)}

/* featured (produit d'appel) */
#featured{margin-top:34px}
.featured{display:grid;grid-template-columns:.8fr 1.2fr;gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:linear-gradient(135deg,#0c0f15,#1d2a4d);color:#fff;box-shadow:var(--shadow)}
.featured .f-img{position:relative;background:#fff;display:flex;align-items:center;justify-content:center;padding:26px;min-height:230px}
.f-caption{align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#ffd23f;margin-bottom:12px}
.featured .f-img img{max-height:200px;object-fit:contain;mix-blend-mode:multiply}
.featured .f-body{padding:32px 34px;display:flex;flex-direction:column;justify-content:center}
.f-tag{align-self:flex-start;background:var(--blue);color:#fff;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:14px}
.featured h2{font-size:27px;margin-bottom:10px}
.featured .f-body p{color:#c7d0e0;font-size:15px;margin-bottom:22px;max-width:460px}
.f-buy{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.f-price{font-family:'Space Grotesk';font-weight:700;font-size:40px;color:#fff;background:linear-gradient(transparent 58%, #ffd23f 58%);padding:0 6px;line-height:1.1}
.f-old{color:#9fb0cc;text-decoration:line-through;font-size:18px}

/* section head */
.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin:46px 0 24px}
.sec-head h2{font-size:30px}
.count{color:var(--grey);font-size:14px}

/* grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:24px;padding-bottom:70px}
.prod{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.22s}
.prod:hover{box-shadow:var(--shadow);transform:translateY(-4px);border-color:transparent}
.prod .ph{position:relative;height:188px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#fbfcfe,#f1f4f9);padding:22px}
.pastille{position:absolute;top:12px;left:12px;width:50px;height:50px;border-radius:50%;background:#e63946;color:#fff;font-weight:800;font-size:13.5px;display:flex;align-items:center;justify-content:center;z-index:2;box-shadow:0 6px 16px rgba(230,57,70,.45);font-family:'Space Grotesk'}
.pastille.big{top:16px;left:auto;right:16px;width:74px;height:74px;font-size:19px}
.prod.is-promo{border-color:#f3c1c5;box-shadow:0 0 0 2px rgba(230,57,70,.18)}
.price.hl{background:linear-gradient(transparent 58%, #ffd23f 58%);padding:0 4px}
.prices{display:inline-flex;align-items:baseline;gap:7px}
.oldp{color:#9aa1ad;text-decoration:line-through;font-size:14px;font-family:'Space Grotesk'}
.prod .ph img{max-height:150px;object-fit:contain;mix-blend-mode:multiply}
.prod .ph .noimg{font-family:'Space Grotesk';font-weight:700;color:#c7cede;font-size:22px;letter-spacing:.05em}
.prod .body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.prod h3{font-family:'Inter';font-size:15px;font-weight:600;line-height:1.35;margin-bottom:6px}
.prod .det{font-size:12.5px;color:var(--grey);flex:1}
.prod .row{display:flex;align-items:center;justify-content:space-between;margin-top:16px}
.prod .price{font-family:'Space Grotesk';font-size:20px;font-weight:700}
.prod .add{background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:9px 15px;font-weight:700;font-size:13px;cursor:pointer;transition:.18s}
.prod .add:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.stock{font-size:11.5px;font-weight:600;margin-top:8px}
.stock.ok{color:#1a8a4a}
.stock.low{color:#c77700}
.stock.out{color:#c0392b}
.prod.soldout .ph img{opacity:.5;filter:grayscale(.4)}
.add[disabled]{background:#eef0f3;color:#9aa1ad;border-color:#eef0f3;cursor:not-allowed}
.empty{text-align:center;color:var(--grey);padding:50px}

/* cart */
.overlay{position:fixed;inset:0;background:rgba(14,17,22,.5);opacity:0;visibility:hidden;transition:.25s;z-index:40}
.overlay.open{opacity:1;visibility:visible}
.cart{position:fixed;top:0;right:-460px;width:420px;max-width:92vw;height:100%;background:#fff;z-index:50;display:flex;flex-direction:column;transition:right .3s cubic-bezier(.4,0,.2,1);box-shadow:-20px 0 60px rgba(0,0,0,.18)}
.cart.open{right:0}
.cart-hd{display:flex;align-items:center;justify-content:space-between;padding:22px;border-bottom:1px solid var(--line)}
.x{background:none;border:0;font-size:28px;cursor:pointer;color:var(--grey);line-height:1}
.cart-items{flex:1;overflow:auto;padding:8px 22px}
.ci{display:flex;gap:13px;padding:16px 0;border-bottom:1px solid var(--line)}
.ci img{width:58px;height:58px;object-fit:contain;border:1px solid var(--line);border-radius:10px;padding:5px;background:#fff}
.ci .info{flex:1}
.ci .t{font-size:13px;font-weight:600;line-height:1.3}
.ci .c{font-size:11px;color:var(--grey)}
.qty{display:inline-flex;align-items:center;gap:10px;margin-top:8px}
.qty button{width:26px;height:26px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-weight:700}
.ci .pr{font-weight:700;font-size:14px;white-space:nowrap;font-family:'Space Grotesk'}
.cart-empty{color:var(--grey);text-align:center;padding:50px 0}
.cart-suggest{padding:0 22px 6px}
.sug-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--grey);margin:14px 0 8px}
.sug{display:flex;align-items:center;gap:10px;padding:8px 0}
.sug img{width:40px;height:40px;object-fit:contain;border:1px solid var(--line);border-radius:8px;padding:3px}
.sug .s-info{flex:1;display:flex;flex-direction:column}
.sug .s-info span{font-size:12px;line-height:1.25}
.sug .s-info b{font-size:12.5px;font-family:'Space Grotesk'}
.s-add{background:var(--ink);color:#fff;border:0;border-radius:999px;padding:7px 13px;font-weight:700;font-size:12.5px;cursor:pointer}
.s-add:hover{background:var(--blue)}
.s-add.mini{width:30px;height:30px;padding:0;font-size:16px;flex:none}
.sug-strong{display:flex;align-items:center;gap:12px;background:#eaf0fe;border:1px solid #c7d8fb;border-radius:12px;padding:12px;margin-top:12px}
.sug-strong .s-txt{flex:1;display:flex;flex-direction:column}
.sug-strong strong{font-size:13px}
.sug-strong span{font-size:11.5px;color:var(--grey)}
.gun-note{background:#eaf0fe;border:1px solid #c7d8fb;border-radius:10px;padding:10px 12px;font-size:12px;color:#1B4FCC;margin-bottom:12px}
.cart-ft{padding:20px 22px;border-top:1px solid var(--line)}
.sum-row{display:flex;justify-content:space-between;margin-bottom:12px;font-size:14px}
.sum-row.total{font-size:19px;font-weight:800;font-family:'Space Grotesk'}

/* checkout */
.checkout-wrap{padding:40px 22px 80px}
.checkout-wrap h2{font-size:28px;margin-bottom:6px}
.link-back{background:none;border:0;color:var(--blue);cursor:pointer;font-weight:600;margin-bottom:6px}
.checkout-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:26px;margin-top:18px;align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.form{padding:28px}
.form h3,.summary h3{margin-bottom:18px;font-size:18px}
.form label{display:block;font-size:13px;font-weight:600;margin-bottom:14px}
.form input,.form textarea,.form select{width:100%;margin-top:6px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;font-size:14px;font-family:inherit;font-weight:400;background:#fff}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(43,107,242,.1)}
.check{display:flex;align-items:center;gap:9px;font-weight:500}
.check input{width:auto;margin:0}
.note{font-size:11.5px;color:var(--grey);margin-top:12px;line-height:1.5}
.vat-status{font-size:12.5px;margin:-6px 0 14px;min-height:15px;font-weight:600}
.vat-status.ok{color:#1a8a4a}.vat-status.bad{color:#c0392b}.vat-status.wait{color:var(--grey)}
.summary{padding:28px;position:sticky;top:96px}
.si{display:flex;justify-content:space-between;font-size:13px;padding:9px 0;border-bottom:1px solid var(--line);gap:10px}

/* footer */
.ft{background:var(--ink);color:#aab2c0;padding:54px 0 26px;margin-top:10px}
.ft-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px}
.logo-ft{height:30px;filter:brightness(0) invert(1);margin-bottom:14px}
.ft-desc{font-size:13.5px;max-width:340px}
.ft-col h4{color:#fff;font-size:14px;margin-bottom:12px}
.ft-col p{font-size:13px;margin-bottom:10px;line-height:1.6}
.ft-copy{border-top:1px solid rgba(255,255,255,.1);margin-top:34px;padding-top:20px;font-size:12px;color:#717a8a}

/* compte client */
.acct-btn{display:flex;align-items:center;gap:8px;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:600;font-size:13.5px;cursor:pointer;white-space:nowrap}
.acct-btn:hover{border-color:var(--blue)}
.acct-btn .ic{width:18px;height:18px;flex:none}
#acct-label{max-width:140px;overflow:hidden;text-overflow:ellipsis}
.modal-ov{position:fixed;inset:0;background:rgba(14,17,22,.55);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.2s;z-index:70;padding:20px}
.modal-ov.open{opacity:1;visibility:visible}
.modal{background:#fff;border-radius:var(--radius);width:100%;max-width:450px;max-height:90vh;overflow:auto;padding:30px;position:relative;box-shadow:var(--shadow)}
.modal-x{position:absolute;top:12px;right:16px}
.auth-tabs{display:flex;gap:8px;margin-bottom:22px}
.auth-tabs button{flex:1;padding:11px;border:1px solid var(--line);background:#fff;border-radius:10px;font-weight:600;cursor:pointer;font-size:13.5px}
.auth-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.auth label{display:block;font-size:13px;font-weight:600;margin-bottom:14px}
.auth input{width:100%;margin-top:6px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:14px}
.auth input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(43,107,242,.1)}
.auth-err{color:#c0392b;font-size:12.5px;min-height:16px;margin-bottom:6px}
.account h3{margin-bottom:4px}
.acc-email{color:var(--grey);font-size:13px;margin-bottom:18px}
.acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px}
.acc-grid div{font-size:14px}
.acc-grid span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--grey);margin-bottom:2px}
.account h4{margin:6px 0 10px}
.acc-orders{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;max-height:260px;overflow:auto}
.ao{border:1px solid var(--line);border-radius:12px;padding:12px}
.ao-h{display:flex;justify-content:space-between;font-size:13px}
.ao-h span{color:var(--grey)}
.ao-items{font-size:12px;color:var(--grey);margin:4px 0}
.ao-total{font-weight:700;font-family:'Space Grotesk'}
.muted{color:var(--grey);font-size:13.5px}
.account .btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}
.account .btn.ghost:hover{background:var(--ink);color:#fff}

/* animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .hero-txt>*{animation:fadeUp .7s both}
  .hero-txt>*:nth-child(2){animation-delay:.08s}
  .hero-txt>*:nth-child(3){animation-delay:.16s}
  .hero-txt>*:nth-child(4){animation-delay:.24s}
  .hero-shots .shot{animation:fadeUp .7s both}
  .hero-shots .shot:nth-child(2){animation-delay:.1s}
  .hero-shots .shot:nth-child(3){animation-delay:.2s}
  .hero-shots .shot:nth-child(4){animation-delay:.3s}
}
.btn:active,.add:active,.s-add:active,.cart-btn:active,.wa-btn:active{transform:scale(.94)}
@keyframes bump{0%{transform:scale(1)}30%{transform:scale(1.4)}100%{transform:scale(1)}}
.badge.bump{animation:bump .45s ease}
@keyframes pop{0%{transform:scale(1)}45%{transform:scale(.82)}100%{transform:scale(1)}}
.add.pop{animation:pop .3s ease}

/* WhatsApp flottant */
.wa-btn{position:fixed;bottom:24px;right:24px;z-index:55;display:inline-flex;align-items:center;gap:10px;background:#25D366;color:#fff;padding:13px 20px 13px 16px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:0 10px 30px rgba(37,211,102,.4);transition:.2s}
.wa-btn:hover{transform:translateY(-2px);background:#1ebe5b}
.wa-btn svg{flex:none}
@media(max-width:560px){.wa-btn span{display:none}.wa-btn{padding:14px;border-radius:50%}}

/* toast */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 24px;border-radius:999px;font-size:14px;font-weight:600;z-index:60;box-shadow:var(--shadow)}

@media(max-width:860px){
  .hero-in{grid-template-columns:1fr;padding:48px 22px 56px}
  .hero-txt h1{font-size:38px}
  .hero-shots{display:none}
  .trust-in{grid-template-columns:1fr 1fr}
  .checkout-grid{grid-template-columns:1fr}.summary{position:static}
  .search-box{display:none}
  .ft-in{grid-template-columns:1fr}
}
