:root{--bg:#f5eee3;--bg2:#faf5ee;--ink:#111111;--muted:#5f5a56;--card:#ffffff;--card-2:#f3eadf;--line:#e9dfcf;--glow1:#111111;--glow2:#c7b39a;--accent:#111111}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:radial-gradient(1200px 600px at 15% 10%, rgba(111,0,255,.2), transparent 60%), radial-gradient(1000px 600px at 85% 80%, rgba(255,160,0,.16), transparent 60%), linear-gradient(180deg, var(--bg), #0a0a10 60%, var(--bg2));color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:inherit;text-decoration:none}
.container{width:min(1200px,92%);margin:0 auto}

/* Header + Brand */
.site-header{position:sticky;top:0;z-index:60;background:linear-gradient(180deg, rgba(10,10,14,.9), rgba(10,10,14,.75));backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.brand{display:flex;align-items:center;gap:12px}
.logo-badge{position:relative;display:inline-grid;place-items:center;height:36px;width:36px;border-radius:10px;background:linear-gradient(135deg,#f59e0b,#a855f7);box-shadow:0 10px 26px rgba(168,85,247,.32)}
.logo-badge .logo-initials{font-family:Pacifico,cursive;font-weight:400;color:#0a0a0a;mix-blend-mode:normal;text-shadow:0 1px 0 rgba(255,255,255,.25);font-size:18px}
.logo-badge.big{height:48px;width:48px;border-radius:12px}
.logo-badge.big .logo-initials{font-size:22px}
.brand-text{font-family:Pacifico,cursive;font-size:26px;letter-spacing:.2px}
.brand-text.big{font-size:28px}
.nav{display:flex;gap:26px;align-items:center}
.nav a{opacity:.85}
.nav a:hover{opacity:1;color:#ffd166}
.cart-float{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.25);color:var(--ink)}
.badge{position:absolute;top:-6px;right:-6px;background:#ffd166;color:#121212;border-radius:999px;padding:2px 6px;font-weight:800;font-size:12px}

/* Hero */
.dark-hero{position:relative;min-height:76vh;display:grid;place-items:center;background:radial-gradient(1000px 500px at 70% 0%, rgba(104,0,255,.25), transparent 60%), radial-gradient(900px 600px at 0% 80%, rgba(255,170,0,.18), transparent 55%)}
.dark-hero .overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.45));pointer-events:none}
.hero-content{position:relative;z-index:1;padding:64px 0 32px}
.logo-stack h1{font-family:Sora, Inter, sans-serif;font-size:72px;letter-spacing:1px;margin:0}
.tagline{font-size:28px;opacity:.95;margin:12px 0}
.sub{max-width:780px;color:var(--muted)}
.cta{display:flex;gap:12px;margin-top:16px}
.btn{border:none;border-radius:14px;padding:12px 18px;font-weight:800;cursor:pointer}
.btn.gradient{background:linear-gradient(135deg, #a855f7, #f59e0b);color:#101010;box-shadow:0 12px 28px rgba(168,85,247,.25)}
.btn.soft{background:#0f1420;color:var(--ink);border:1px solid var(--line);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.scroll-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);opacity:.6}

/* Sections common */
.section-head{margin:30px 0 10px}
.section-head.center{text-align:center}
.section-head.light h2, .section-head.light p{color:#fff}
.section-head h2{font-size:44px;margin:0 0 8px}
.section-head p{color:var(--muted)}

/* Cards & grids */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cards3.soft .service-card{background:#0f1420}
.card{background:#121722;border:1px solid var(--line);border-radius:18px;padding:18px}
.poster-card{background:#121722;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.25);position:relative}
.poster{height:300px}
.badge.new{position:absolute;margin:14px;background:#10b981;color:#04130e;border-radius:999px;padding:6px 10px;font-weight:800}
.badge.best{position:absolute;margin:14px;background:#f43f5e;color:#2a0a12;border-radius:999px;padding:6px 10px;font-weight:800}
.poster-card .meta{display:flex;align-items:center;justify-content:space-between;padding:14px}
.add-to-cart{background:#192238;border:1px solid var(--line);color:#e8e9ef;border-radius:10px;padding:10px 12px}
.add-to-cart:hover{background:#1d2946}
.service-card{position:relative;background:#121722;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 18px 40px rgba(0,0,0,.24)}
.service-card .ic{height:48px;width:48px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg, #f59e0b, #a855f7);margin-bottom:12px}
.bullets{list-style:disc;margin:8px 0 0 18px;color:var(--muted)}

/* Subpages */
.subhero{padding:28px 0 6px}
.subhero h1{margin:0 0 6px}

/* Newsletter */
.newsletter{padding:38px 0;background:radial-gradient(1000px 600px at 50% 0%, rgba(168,85,247,.2), transparent 60%), linear-gradient(180deg, #0a0b12, #120f1b)}
.subscribe{display:flex;gap:12px;justify-content:center;margin:16px auto;max-width:620px}
.subscribe input{flex:1;background:#0f1420;border:1px solid var(--line);border-radius:12px;padding:14px;color:var(--ink)}
.subscribe button{min-width:160px}

/* Footer */
.site-footer{padding:24px 0 10px;border-top:1px solid var(--line);background:linear-gradient(180deg, rgba(10,10,14,.8), rgba(18,12,22,.9))}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:24px}
.brand-col .stats{display:flex;gap:16px;margin-top:14px}
.stat{background:#121827;border:1px solid var(--line);border-radius:14px;padding:14px 18px}
.stat .n{font-size:22px;font-weight:800;color:#b18cff}
.stat .l{color:var(--muted);font-size:14px}
.links h3{position:relative;margin:0 0 8px}
.links h3::after{content:"";position:absolute;left:0;bottom:-6px;width:40px;height:3px;background:linear-gradient(90deg,#a855f7,#f59e0b);border-radius:4px}
.links ul{padding:0;margin:12px 0 0 0;list-style:none;display:grid;gap:8px;color:#cbd5e1}
.social-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:24px}
.socials{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;flex:1}
.chip{display:flex;gap:10px;align-items:center;background:#131a2a;border:1px solid var(--line);border-radius:14px;padding:12px 14px;color:#e3e7ef;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.chip .ic{display:grid;place-items:center;background:linear-gradient(135deg,#a855f7,#f59e0b);height:28px;width:28px;border-radius:8px}
.chip small{display:block;color:#9aa3b2}
.contact-quick h4{margin:0 0 8px}
.contact-quick ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;color:#000000}
.foot-last{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:22px;padding-top:12px;color:#9aa3b2}
.dot{display:inline-block;height:8px;width:8px;background:#22c55e;border-radius:999px;margin:0 8px}
.lang{display:inline-block;background:#0f1420;border:1px solid var(--line);padding:2px 6px;border-radius:6px;margin-left:6px}
.lang.ghost{opacity:.7}

/* Drawer */
.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:.2s;z-index:58}
.backdrop.show{opacity:1;visibility:visible}
.cart-drawer{position:fixed;top:0;right:0;height:100vh;width:min(440px,92vw);background:#EAF2FF;border-left:1px solid var(--line);transform:translateX(100%);transition:transform .25s ease;z-index:59;display:flex;flex-direction:column;box-shadow:-12px 0 32px rgba(0,0,0,.4)}
.cart-drawer.show{transform:none}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.cart-items{flex:1;overflow:auto;display:grid;gap:10px;padding:12px}
.cart-item{display:grid;grid-template-columns:84px 1fr auto;gap:12px;background:#10182a;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cart-item .thumb{background:#ffffff}
.cart-item .title{font-weight:700}
.cart-item .price{color:#ffd166;font-weight:800}
.qty{display:flex;align-items:center;gap:6px}
.qty button{background:#0d1324;border:1px solid var(--line);border-radius:8px;padding:4px 8px;color:#e3e7ef;cursor:pointer}
.remove{background:transparent;border:none;color:#ef4444;font-weight:800;cursor:pointer}
.cart-foot{border-top:1px solid var(--line);padding:14px 16px;display:grid;gap:10px}
.line{display:flex;justify-content:space-between;align-items:center}
.muted{color:#95a1b3;font-size:.95rem}

@media(max-width:960px){
  .cards3{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .socials{grid-template-columns:1fr 1fr}
  .logo-stack h1{font-size:48px}
}

.poster img{display:block;width:100%;height:300px;object-fit:cover}
.btn.add-to-cart{min-width:160px}

.center{text-align:center}
.full{width:100%}
.contact-hero{padding:28px 0 10px}
.contact-hero h1{font-size:52px;margin:0 0 6px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:10px auto 30px}
.form.card{background:#121722;border:1px solid var(--line);border-radius:16px;padding:16px}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label{display:grid;gap:6px;font-weight:600}
input,textarea,select{background:#eaf2ff;border:1px solid var(--line);color:var(--ink);padding:12px;border-radius:12px}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%, #9aa3b2 50%),linear-gradient(135deg, #9aa3b2 50%, transparent 50%);background-position:calc(100% - 20px) calc(1em + 2px), calc(100% - 16px) calc(1em + 2px);background-size:5px 5px, 5px 5px;background-repeat:no-repeat}
.counter{color:#8b93a8;font-size:.9rem;text-align:right;margin-top:4px}
.info-list{display:grid;gap:10px;margin:10px 0 14px}
.info-item{display:flex;gap:12px;align-items:flex-start}
.icon-box{display:grid;place-items:center;height:36px;width:36px;border-radius:10px;background:linear-gradient(135deg,#f59e0b,#a855f7);box-shadow:0 6px 16px rgba(0,0,0,.25)}
.info-item .label{color:#cbd5e1;font-weight:700}
.social-mini{display:flex;gap:10px;margin:8px 0 16px}
.btn-icon{display:grid;place-items:center;height:36px;width:36px;border-radius:10px;background:#0f1420;border:1px solid var(--line);box-shadow:0 6px 14px rgba(0,0,0,.2)}
.map-embed{border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.25)}
@media(max-width:960px){
  .contact-grid{grid-template-columns:1fr}
  .form .row2{grid-template-columns:1fr}
}

.product-modal{position:fixed;inset:0;display:none}
.product-modal[aria-hidden="false"]{display:block}
.pm-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.pm-panel{position:relative;z-index:2;width:min(1100px,92vw);margin:5vh auto;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.35);padding:16px}
.pm-close{position:absolute;top:8px;right:10px;background:transparent;border:0;color:var(--ink);font-size:22px;cursor:pointer}
.pm-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}
.pm-main{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card-2)}
.pm-main img{display:block;width:100%;height:520px;object-fit:cover}
.pm-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.35);border:0;color:#fff;width:36px;height:48px;border-radius:8px;cursor:pointer}
.pm-nav.prev{left:10px}.pm-nav.next{right:10px}
.pm-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pm-thumbs img{width:70px;height:70px;object-fit:cover;border-radius:8px;border:2px solid transparent;cursor:pointer}
.pm-thumbs img.active{border-color:var(--ink)}
.pm-specs{display:grid;gap:8px;margin:12px 0 10px}
.pm-specs .spec-row{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.poster-card .open-product{display:block;position:absolute;inset:0;z-index:1}
.poster-card{position:relative}
.poster-card .poster{position:relative;overflow:hidden;border-radius:14px}
.poster-card .poster img{transition:transform .3s ease}
.poster-card:hover .poster img{transform:scale(1.03)}

.logo-img{height:36px;width:auto;display:block;border-radius:6px}

body{background:#f5eee3;color:var(--ink)}
.site-header{background:rgba(255,255,255,.85);border-bottom:1px solid var(--line)}
.nav a:hover{color:#111}

.footer{background:#faf5ee !important; color:#111 !important;}
.brand-col .stats .stat{background:#fff !important;border:1px solid var(--line) !important;}
.stat .n{color:#111 !important}.stat .l{color:#5f5a56 !important}
.chip{background:#fff !important;color:#111 !important;border:1px solid var(--line) !important;box-shadow:0 6px 14px rgba(0,0,0,.06) !important}
.chip small{color:#5f5a56 !important}.chip .ic{background:#f0e7d9 !important}

.product-page{margin-top:24px;margin-bottom:48px}
.pp-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px}
.pp-main{background:#ffffff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 22px rgba(0,0,0,.06)}
.pp-main img{width:100%;height:auto;display:block;border-radius:10px}
.pp-thumbs{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.pp-thumbs img{height:70px;width:70px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer;opacity:.8}
.pp-thumbs img.active{opacity:1;outline:2px solid #111}
.pp-info h1{margin:0 0 6px}
.pp-reviews{color:#d97706;margin-bottom:6px}
.pp-price-line{display:flex;align-items:center;gap:12px;margin:12px 0}
.pp-price{font-size:28px}
.pp-old{color:#8b8b8b}
.pp-badge{background:#f59e0b;color:white;border-radius:999px;padding:4px 8px;font-weight:700;font-size:12px}
.pp-section{margin:16px 0 6px}
.pp-label{font-weight:700;margin-bottom:8px}
.pp-opts{display:flex;gap:10px;flex-wrap:wrap}
.opt{padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
.opt.active{outline:2px solid #111}
.pp-swatches{display:flex;gap:10px}
.swatch{height:28px;width:28px;border-radius:999px;border:2px solid #111;background:#111;cursor:pointer}
.swatch.blue{background:#1d4ed8}
.swatch.active{outline:2px solid #111;outline-offset:2px}
.pp-delivery{margin:14px 0;background:#dcfce7;border:1px solid #a7f3d0;padding:10px 12px;border-radius:12px;color:#065f46;font-weight:600;display:inline-block}
.pp-actions{margin:16px 0}
.pp-specs .row{display:flex;gap:10px;margin:2px 0}
.pp-specs .k{width:120px;color:#5f5a56}

/* --- Clean header as white bar --- */
.site-header{
  background:#ffffff !important;
  border-bottom:1px solid var(--line) !important;
  box-shadow:0 6px 14px rgba(0,0,0,.04) !important;
}
.brand-text{font-family:Pacifico,cursive;font-size:26px;letter-spacing:.2px;color:#111}

/* --- Sticky Buy Bar --- */
.buybar{position:sticky;bottom:0;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  border-top:1px solid var(--line);box-shadow:0 -8px 16px rgba(0,0,0,.06);padding:8px 0;z-index:40}
.bb-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bb-left{display:flex;align-items:center;gap:10px}
#bb-thumb{height:44px;width:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.bb-title .t{font-weight:700}
.bb-title .p{color:#111}
.bb-right{display:flex;align-items:center;gap:10px}
.bb-sizes .opt{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.bb-sizes .opt.active{outline:2px solid #111}

/* Related products */
.related{margin:40px 0}
.related h2{margin:0 0 14px}
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cards4 .poster-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cards4 .poster-card .poster img{display:block;width:100%;height:auto}
.cards4 .poster-card .meta{padding:10px}


/* Brand image sizing in footer */
.logo-img.big{height:38px;width:auto;border-radius:10px;display:inline-block;margin-right:8px;vertical-align:middle}
.site-footer .brand-text.big{font-family: Pacifico, cursive; font-size:26px; color:#111; letter-spacing:.2px}

/* Align JK + STUDIO on one line in footer */
.site-footer .brand-row{display:flex; align-items:center; gap:10px; flex-wrap:nowrap; white-space:nowrap}
.site-footer .logo-img.big{height:40px;width:auto;display:block}
.site-footer .brand-text.big{line-height:1}


/* === Brand alignment: JK + STUDIO on one line, consistent gap/baseline === */
.brand-row, .site-brand, .header-brand{
  display:flex; align-items:center; gap:10px; flex-wrap:nowrap; white-space:nowrap;
}
.logo-img, .logo-img.big{
  height:40px; width:auto; display:block; border-radius:10px;
}
.brand-text, .brand-text.big{
  display:inline-block; line-height:1; margin:0; padding:0; position:relative; top:1px; /* optical baseline tweak */
  letter-spacing:.2px;
}


/* === Global light background (match logo bg) === */
:root{ --bg:#f5eee3; --bg2:#f8f1e8; --ink:#111111; --muted:#5f5a56; --line:#e9dfcf; }
html, body{ background:var(--bg) !important; color:var(--ink); }
.section, .hero, .newsletter, .newsletter-hero, .subscribe, .cta-news, .catalog, .about, .projects, .contact,
.container, .container-wide, .site-footer, .site-header{ background:var(--bg) !important; }
.card, .product-card, .stat, .chip{ background:#ffffff !important; }


.site-footer .brand-row{ display:flex; align-items:center; gap:10px; }
.site-footer .logo-img.big{ height:40px; }
.site-footer .brand-text.big{ top:1px; }


/* === Newsletter — Restez inspiré (tidy & theme match) === */
.newsletter{
  background: var(--bg) !important;
  padding: 48px 0 56px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.newsletter h2{ color:#111 !important; margin: 0 0 20px; font-weight: 800; letter-spacing:.2px }
.newsletter form, .newsletter .form{
  max-width: 760px; margin: 0 auto; display:flex; gap:12px; align-items:center; justify-content:center; flex-wrap:nowrap;
}
.newsletter input[type="email"]{
  flex:1; height:52px; background:#fff; color:#111; border:1px solid var(--line); border-radius:14px;
  box-shadow:0 6px 16px rgba(0,0,0,.06);
}
.newsletter .btn, .newsletter button[type="submit"]{
  height:52px; padding:0 22px; border-radius:14px; background:#111; color:#fff; border:1px solid #111;
  box-shadow:none; transition:filter .15s ease;
}
.newsletter .btn:hover, .newsletter button[type="submit"]:hover{ filter:brightness(.92) }
.newsletter hr{ display:none !important }

/* === Footer — Bleu glacier (contrast & clean) === */
:root{
  --footer-bg:#EAF2FF;   /* bleu glacier clair */
  --footer-line:#D7E6FF; /* séparateur */
  --footer-link:#1F3B64; /* liens */
  --footer-muted:#5B6C7D;/* muted */
}
.site-footer{
  background:var(--footer-bg) !important;
  border-top:1px solid var(--footer-line) !important;
  color:#0F172A !important;
}
.foot-last{
  background:var(--footer-bg) !important;
  color:var(--footer-muted) !important;
  border-top:1px solid var(--footer-line) !important;
}
/* Links & lists */
.site-footer .footer-grid a{
  color:var(--footer-link) !important;
  text-decoration-color:#BFD2F8; text-underline-offset:2px;
}
.site-footer .footer-grid a:hover{ color:#0F172A !important; text-decoration:underline }
.site-footer .footer-grid .muted{ color:var(--footer-muted) !important }
.site-footer .footer-grid li, .site-footer .footer-grid p{ color:#1F2937 !important }
/* Remove any background "strip" behind chips/contact */
.site-footer .social-row, .site-footer .contact-col, .site-footer .brand-col, .site-footer .links{
  background:transparent !important; box-shadow:none !important; border:none !important;
}
/* Chips/stat look good on blue */
.site-footer .stat, .site-footer .chip{
  background:#ffffff67 !important; border:1px solid #DCE8FB !important; box-shadow:0 8px 18px rgba(0,0,0,.06);
}


/* === Header (top bar) — même couleur que le footer (bleu glacier) === */
.site-header{
  background: var(--footer-bg, #EAF2FF) !important;
  border-bottom: 1px solid var(--footer-line, #D7E6FF) !important;
  box-shadow: 0 8px 18px rgba(31,59,100,.06) !important;
}
.site-header .container{ background: transparent !important }
.site-header .nav a{
  color: var(--footer-link, #1F3B64) !important;
  text-underline-offset: 4px;
}
.site-header .nav a:hover,
.site-header .nav a.active{ color:#0F172A !important; text-decoration: underline }
.brand-row{ gap:10px; align-items:center; white-space:nowrap }
.logo-img{ height:40px; width:auto; border-radius:10px; display:block }
.brand-text{ line-height:1; position:relative; top:1px }


/* === Hero polish (remove gray gradient + heavy shadow) === */
.hero, .hero-section, .top-hero {
  background: var(--bg) !important;
  background-image: none !important;
}
.hero::before, .hero::after,
.hero-section::before, .hero-section::after,
.section-shadow::before, .section-shadow::after,
.shadow-top::before, .shadow-top::after {
  content: none !important;
  display: none !important;
}
.hero .container, .hero .wrapper, .hero-section .container {
  box-shadow: none !important;
  background: transparent !important;
}

/* Buttons in hero: keep neat, no glow */
.hero .btn, .hero-section .btn {
  box-shadow: none !important;
}

/* === Footer columns: remove beige box behind lists === */
.site-footer .brand-col,
.site-footer .footer-grid,
.site-footer .footer-grid > *,
.site-footer .links,
.site-footer .links .col,
.site-footer .contact-col,
.site-footer .social-row {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}


/* === Global: white page background (no beige / no gradients) === */
:root{ --bg:#ffffff; --bg2:#ffffff; }
html, body{ background:#ffffff !important; }
.section, .hero, .hero-section, .newsletter, .catalog, .about, .projects, .contact{
  background:#ffffff !important;
}
.hero::before, .hero::after, .hero-section::before, .hero-section::after,
body::before, body::after, .shadow-top::before, .shadow-top::after{
  content:none !important; display:none !important;
}
.hero hr, .hero .divider, .hero .strip{ display:none !important }
.hero .container, .hero-section .container{ background:transparent !important; box-shadow:none !important }


/* === Social icons (Instagram/YouTube/Spotify/TikTok) ===
   Add either a class on the chip (e.g., .chip.instagram) or data-brand="instagram"  */
.chip .ic{ width:38px; height:38px; border-radius:10px; border:1px solid #000000;
  background:#000000 center/68% no-repeat; display:inline-block }
.chip.instagram .ic, .chip[data-brand="instagram"] .ic{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='2' y='2' width='20' height='20' rx='5' fill='%23E1306C'/><circle cx='12' cy='12' r='5.5' fill='white'/><circle cx='12' cy='12' r='3.8' fill='%23E1306C'/><circle cx='17.5' cy='6.5' r='1.6' fill='white'/></svg>");
}
.chip.youtube .ic, .chip[data-brand="youtube"] .ic{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='2' y='6' width='20' height='12' rx='3' fill='%23FF0000'/><polygon points='10,9 16,12 10,15' fill='white'/></svg>");
}
.chip.spotify .ic, .chip[data-brand="spotify"] .ic{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='10' fill='%231ED760'/><path d='M7 9c3-1 7-.6 10 1' stroke='white' stroke-width='1.8' stroke-linecap='round' fill='none'/><path d='M7 12c3-1 6-.3 8 1' stroke='white' stroke-width='1.8' stroke-linecap='round' fill='none'/><path d='M7 15c2-.7 4-.2 5 .5' stroke='white' stroke-width='1.8' stroke-linecap='round' fill='none'/></svg>");
}
.chip.tiktok .ic, .chip[data-brand="tiktok"] .ic{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 3h3c.3 2.1 1.6 3.8 4 4v3c-1.9-.1-3.5-.8-4.9-2v6.2a5.8 5.8 0 1 1-3.8-5.4V3z' fill='%23000000'/></svg>");
}
/* Optional subtle halo on hover */
.chip:hover{ box-shadow:0 10px 24px rgba(0,0,0,.08) }


.footer {
  text-align: center;
  padding: 20px 0;
  margin-top: 40px;
}

.footer-social h4 {
  margin-bottom: 15px;
  font-size: 18px;
  font-weight: 600;
}

.footer-social a {
  margin: 0 10px;
  display: inline-block;
  transition: transform 0.2s ease;
}

.footer-social a:hover {
  transform: scale(1.2);
}

.footer-social img {
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background: white;
  padding: 5px;
}


/* Footer Social Icons */
.footer-social img {
  width: 30px;
  height: 30px;
  margin: 0 8px;
  vertical-align: middle;
  transition: transform 0.2s ease;
}

.footer-social img:hover {
  transform: scale(1.2);
}


/* === Galerie Produits === */
#gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 colonnes */
  gap: 30px; /* espace entre les cartes */
  margin-top: 30px;
}

.poster-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
}

/* APRÈS */
.poster-card img {
  width: 100%;
  height: 320px; /* On garde la hauteur pour maintenir la grille stable */
  object-fit: contain; /* NOUVEAU: Redimensionne pour afficher l'image entière */
  border-bottom: 1px solid #eee;
  padding: 10px; /* Ajout de padding pour un meilleur rendu visuel à l'intérieur de la carte */
  background-color: #eee; /* Fond gris clair pour remplir l'espace vide si nécessaire */
}

.poster-card h3 {
  font-size: 18px;
  margin: 12px 0 6px;
  font-weight: 600;
  color: #222;
}

.poster-card .price {
  font-size: 16px;
  color: #555;
  margin-bottom: 15px;
}

/* Effet hover */
.poster-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.poster-card:hover img {
  filter: brightness(1.05);
}

/* === Footer Social Icons - Fond lavande clair === */
.footer-social img {
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background: #F8F0FF;     /* Nouveau fond lavande clair */
  padding: 5px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.06);
  transition: transform 0.25s ease, background-color 0.25s ease;
}

.footer-social img:hover {
  transform: scale(1.15);
  background: #E9D7FF;     /* Teinte plus foncée au survol */
}

/* === Bouton "Voir les produits" noir === */
.btn.soft {
  background-color: #000000 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 14px;
  font-weight: 700;
  padding: 12px 20px;
  transition: all 0.3s ease;
}
.btn.soft:hover {
  background-color: #222222 !important;
  transform: scale(1.05);
}

/* === Arrière-plan défilant automatique avec fondu fluide === */
.dark-hero {
  position: relative;
  overflow: hidden;
}
.dark-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  animation: bgslide 18s infinite ease-in-out;
  z-index: 0;
  opacity: 0.85;
  filter: brightness(0.9);
  transition: background-image 1.5s ease-in-out;
}

/* Animation du défilement d'images */
@keyframes bgslide {
  0%   { background-image: url("assets/img/egt.webp"); }
  33%  { background-image: url("images/bg2.jpg"); }
  66%  { background-image: url("images/bg3.jpg"); }
  100% { background-image: url("images/bg1.jpg"); }
}

/* Effet de fondu fluide entre les images */
@keyframes bgfade {
  0%, 33%, 66%, 100% { opacity: 1; }
  16%, 50%, 83% { opacity: 0.6; }
}

.dark-hero .overlay,
.dark-hero .hero-content {
  position: relative;
  z-index: 2;
}

/* === F.A.Q. Premium JK Studio === */
.faq-section {
  padding: 60px 0 100px;
  border-top: 1px solid rgba(255,255,255,0.05);
}

.faq-title {
  text-align: center;
  font-size: 2.8rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.faq-subtitle {
  text-align: center;
  color: #666;
  font-weight: 400;
  font-size: 1.1rem;
  margin-bottom: 50px;
}

.faq-list {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.faq-item {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
  overflow: hidden;
  transition: all 0.4s ease;
  transform: translateY(10px);
  opacity: 0;
  animation: fadeUp 0.6s ease forwards;
}

.faq-item:nth-child(2){animation-delay:0.1s;}
.faq-item:nth-child(3){animation-delay:0.2s;}
.faq-item:nth-child(4){animation-delay:0.3s;}
.faq-item:nth-child(5){animation-delay:0.4s;}
.faq-item:nth-child(6){animation-delay:0.5s;}

@keyframes fadeUp {
  to { transform: translateY(0); opacity: 1; }
}

.faq-question {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 20px 25px;
  color: #222;
  position: relative;
  transition: color 0.3s ease, background 0.3s ease;
}

.faq-question:hover {
  background: rgba(255,122,0,0.05);
  color: #ff7b00;
}

.faq-icon {
  font-size: 1.4rem;
  transition: transform 0.4s ease, color 0.3s ease;
}

.faq-item.active .faq-icon {
  transform: rotate(360deg);
  color: #ff7b00;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-10px);
  transition: all 0.5s ease;
  padding: 0 25px;
  background: #fff;
}

.faq-item.active .faq-answer {
  max-height: 600px;
  opacity: 1;
  transform: translateY(0);
  padding-bottom: 20px;
}

.faq-answer p {
  color: #444;
  line-height: 1.7;
  margin-top: 10px;
}


/* === Style spécifique à la page produit === */
.product-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: 1100px;
  margin: 80px auto;
  padding: 0 20px;
  align-items: start;
}

.product-image {
  border-radius: 12px;
  width: 100%;
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

.product-info h1 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.stars {
  color: #ffb200;
  font-size: 1rem;
  margin-bottom: 15px;
}

.price-box {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.price-current {
  font-size: 1.8rem;
  font-weight: 700;
}

.price-old {
  text-decoration: line-through;
  color: #999;
}

.discount {
  background: #ff7b00;
  color: white;
  padding: 4px 10px;
  border-radius: 5px;
  font-size: 0.9rem;
  font-weight: 600;
}

.option-group {
  margin: 25px 0;
}

.option-label {
  font-weight: 600;
  margin-bottom: 10px;
  display: block;
}

.size-options button,
.frame-options button {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 10px 15px;
  margin-right: 10px;
  background: white;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.25s ease;
}

.size-options button.active,
.frame-options button.active {
  border: 2px solid #000;
  background: #f8f8f8;
}

.color-options {
  display: flex;
  gap: 15px;
  align-items: center;
}

.color-swatch {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid #000;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.color-swatch:hover {
  transform: scale(1.1);
}

.product-actions {
  margin-top: 30px;
}

.btn.gradient {
  background: linear-gradient(90deg, #ff7b00, #ffb200);
  color: white;
  padding: 14px 25px;
  border-radius: 10px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn.gradient:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(255, 123, 0, 0.3);
}

.cart-item {
  display: flex;
  align-items: center;
  background: #0b0f1a;
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 12px;
  color: #fff;
  transition: background 0.3s;
}

.cart-item:hover {
  background: #151a26;
}

.cart-item-img {
  flex: 0 0 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  margin-right: 12px;
}

.cart-item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cart-item-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cart-item-title {
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.3;
}

.cart-item-options {
  font-size: 0.8rem;
  color: #aaa;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.cart-item-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 6px;
}

.cart-item-price {
  font-weight: 700;
  color: #ffb200;
}

.remove-btn {
  background: none;
  border: none;
  color: #ff4d4d;
  font-weight: 600;
  cursor: pointer;
  font-size: 0.85rem;
  transition: color 0.2s;
}

.remove-btn:hover {
  color: #ff7b00;
}


/* === Page Contact – Design Premium JK Studio === */

/* Hero Section */
.contact-hero {
  padding: 80px 0 40px;
  text-align: center;
  background: linear-gradient(135deg, #EAF2FF 0%, #F8F0FF 100%);
  border-bottom: 1px solid var(--line);
}

.contact-hero h1 {
  font-size: 3.5rem;
  font-weight: 800;
  margin: 0 0 16px;
  letter-spacing: 0.5px;
  background: linear-gradient(135deg, #1F3B64, #5B6C7D);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.contact-hero p.muted {
  max-width: 700px;
  margin: 0 auto;
  font-size: 1.1rem;
  line-height: 1.6;
  color: #5B6C7D;
}

/* Grid Layout */
.contact-grid {
  padding: 60px 0;
  gap: 40px;
}

.form-col h2,
.info-col h2 {
  font-size: 1.8rem;
  font-weight: 700;
  margin: 0 0 24px;
  color: #1F3B64;
}

/* Formulaire */
.form.card {
  background: #ffffff;
  border: 1px solid #D7E6FF;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 10px 30px rgba(31, 59, 100, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.form.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 15px 40px rgba(31, 59, 100, 0.12);
}

.form label {
  display: block;
  margin-bottom: 20px;
  font-weight: 600;
  color: #1F3B64;
  font-size: 0.95rem;
}

.form input,
.form textarea,
.form select {
  width: 100%;
  border: 2px solid #D7E6FF;
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 1rem;
  font-family: 'Inter', sans-serif;
  transition: all 0.3s ease;
  background: #F8FBFF;
  color: #1F3B64;
  margin-top: 8px;
}

.form input:focus,
.form textarea:focus,
.form select:focus {
  outline: none;
  border-color: #1F3B64;
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(31, 59, 100, 0.08);
}

.form input::placeholder,
.form textarea::placeholder {
  color: #9CA3AF;
}

.form select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%231F3B64' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
  cursor: pointer;
}

.form textarea {
  resize: vertical;
  min-height: 140px;
  font-family: inherit;
}

.counter {
  color: #9CA3AF;
  font-size: 0.85rem;
  text-align: right;
  margin-top: 6px;
}

.form .row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 0;
}

.form .row2 label {
  margin-bottom: 20px;
}

.form button[type="submit"] {
  background: linear-gradient(135deg, #1F3B64, #5B6C7D);
  border: none;
  color: white;
  font-weight: 700;
  font-size: 1.05rem;
  border-radius: 12px;
  padding: 16px 24px;
  width: 100%;
  margin-top: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.form button[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(31, 59, 100, 0.25);
  background: linear-gradient(135deg, #1a3251, #4a5a6a);
}

/* Colonne Info */
.info-col {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.info-list {
  display: grid;
  gap: 20px;
}

.info-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: #ffffff;
  padding: 20px;
  border-radius: 16px;
  border: 1px solid #D7E6FF;
  box-shadow: 0 4px 12px rgba(31, 59, 100, 0.06);
  transition: all 0.3s ease;
}

.info-item:hover {
  transform: translateX(4px);
  box-shadow: 0 6px 20px rgba(31, 59, 100, 0.1);
}

.icon-box {
  display: grid;
  place-items: center;
  height: 48px;
  width: 48px;
  min-width: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, #EAF2FF, #F8F0FF);
  border: 2px solid #D7E6FF;
  font-size: 1.5rem;
}

.info-item .label {
  font-weight: 700;
  color: #1F3B64;
  margin-bottom: 4px;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.info-item div div:last-child {
  color: #5B6C7D;
  font-size: 1rem;
}

.info-col h3 {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 8px 0 16px;
  color: #1F3B64;
}

.social-mini {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.btn-icon {
  display: grid;
  place-items: center;
  height: 48px;
  width: 48px;
  border-radius: 12px;
  background: #ffffff;
  border: 2px solid #D7E6FF;
  font-size: 1.3rem;
  transition: all 0.3s ease;
  cursor: pointer;
}

.btn-icon:hover {
  background: linear-gradient(135deg, #EAF2FF, #F8F0FF);
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(31, 59, 100, 0.15);
  border-color: #1F3B64;
}

/* Message de succès */
#success-message {
  display: none;
  margin-top: 20px;
  background: linear-gradient(135deg, #D1FAE5, #A7F3D0);
  padding: 16px 20px;
  border-radius: 12px;
  border: 2px solid #6EE7B7;
  color: #065F46;
  text-align: center;
  font-weight: 600;
  animation: fadeInSlide 0.5s ease;
}

@keyframes fadeInSlide {
  from { 
    opacity: 0; 
    transform: translateY(-10px);
  }
  to { 
    opacity: 1; 
    transform: translateY(0);
  }
}

/* Responsive */
@media (max-width: 960px) {
  .contact-hero h1 {
    font-size: 2.5rem;
  }
  
  .contact-grid {
    grid-template-columns: 1fr;
    padding: 40px 0;
  }
  
  .form .row2 {
    grid-template-columns: 1fr;
  }
  
  .form.card {
    padding: 24px;
  }
}



/* === Style "Suivre mon Colis" version claire pastel === */
.track-result .card {
  background: #f9fbff;
  border: 1px solid #dce6f8;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
  border-radius: 16px;
  padding: 28px;
  transition: all 0.3s ease;
}

.track-result .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
}

/* Champ de recherche */
#track-form input {
  background: #f9fbff;
  border: 1px solid #d0ddf2;
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 1rem;
  color: #1a2a4d;
  transition: 0.2s;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
}
#track-form input:focus {
  outline: none;
  border-color: #a5c4ff;
  box-shadow: 0 0 0 4px rgba(122, 175, 255, 0.2);
}

/* Bouton rechercher */
#track-form button {
  background: linear-gradient(90deg, #4f8bff, #3b6dff);
  color: white;
  font-weight: 600;
  border-radius: 12px;
  border: none;
  box-shadow: 0 4px 14px rgba(79, 139, 255, 0.25);
  transition: 0.2s;
}
#track-form button:hover {
  transform: scale(1.03);
  box-shadow: 0 6px 18px rgba(79, 139, 255, 0.35);
}

/* Progression colis */
.progress-bar {
  height: 8px;
  background: #e8f0ff;
  border-radius: 10px;
  position: relative;
  margin-bottom: 45px;
}
.progress-bar .progress {
  height: 8px;
  background: linear-gradient(90deg, #4f8bff, #3b6dff);
  border-radius: 10px;
  transition: width 0.8s ease;
}
.progress-bar .steps {
  display: flex;
  justify-content: space-between;
  list-style: none;
  padding: 0;
  margin-top: 10px;
  font-size: 0.95rem;
  color: #4a5d7a;
  font-weight: 600;
}

/* Textes */
#order-id {
  font-size: 1.4rem;
  color: #1a2a4d;
  font-weight: 700;
}
#order-summary {
  color: #5f6f8f;
}
#order-status {
  color: #3b6dff;
  font-weight: 700;
}
#order-delivery {
  color: #2a3c66;
  font-weight: 600;
}

/* Animation d’apparition douce */
.track-result {
  animation: fadeIn 0.5s ease forwards;
  opacity: 0;
}
@keyframes fadeIn {
  to { opacity: 1; }
}

#pp-frame .opt {
  background: #f9fbff;
  border: 2px solid #d0ddf2;
  border-radius: 12px;
  padding: 10px 18px;
  cursor: pointer;
  transition: 0.25s;
}
#pp-frame .opt:hover {
  background: #eef5ff;
}
#pp-frame .opt.active {
  background: #e1ebff;
  border-color: #4f8bff;
  color: #1a2a4d;
  font-weight: 700;
}
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 20px;
  padding: 10px 20px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
  font-family: 'Inter', sans-serif;
  font-weight: 500;
}

.pagination .nav-btn {
  border: none;
  background: none;
  font-size: 20px;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.pagination .nav-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.pagination .nav-btn:hover:not(:disabled) {
  transform: scale(1.2);
}


.slider {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}

.slides {
  display: flex;
  transition: transform 0.6s ease;
}

.slides img {
  width: 100%;
  flex-shrink: 0;
  border-radius: 12px;
}

.slider button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.4);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  cursor: pointer;
  font-size: 1.4rem;
}

.slider .prev { left: 10px; }
.slider .next { right: 10px; }
.slider button:hover {
  background: rgba(0,0,0,0.6);
}


/* DANS style.css, trouvez .cart-drawer */

.cart-drawer{
  position:fixed;
  top:0; /* S'assure qu'il part du haut */
  right:0;
  height:100vh; /* Doit prendre toute la hauteur de la fenêtre */
  width:min(440px,92vw);
  background:#EAF2FF;
  border-left:1px solid var(--line);
  transform:translateX(100%);
  transition:transform .25s ease;
  z-index:59;
  display:flex;
  flex-direction:column; /* FIX: Important pour que le contenu s'étire */
  box-shadow:-12px 0 32px rgba(0,0,0,.4)
}

/* --- NOUVEAUX STYLES POUR LE HERO (Style Clair/Premium) --- */

.hero.light-hero {
    position: relative;
    min-height: 80vh; /* Moins agressif que 100vh */
    padding: 100px 20px 60px; /* Plus d'espace vertical */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #111;
    background: linear-gradient(180deg, #F8FBFF 0%, #EAF2FF 100%); /* Dégradé bleu glacier très doux */
    border-bottom: 1px solid #D7E6FF;
}

/* Suppression des effets dynamiques lourds */
.hero-bg, .hero .overlay {
    display: none !important; /* Désactive les arrière-plans animés précédents */
}

/* Contenu du Hero */
.hero-content {
    position: relative;
    z-index: 2;
    max-width: 900px;
    margin: 0 auto;
}

.hero-content h1 {
    font-family: 'Sora', sans-serif;
    font-size: 4.5rem;
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 15px;
    color: #1F3B64; /* Bleu profond, couleur de marque */
    text-shadow: 2px 2px 5px rgba(0,0,0,0.05);
    letter-spacing: -0.5px;
}
.hero-content h1 strong {
    color: #000; /* Le mot clé en noir pur pour l'impact */
}

.hero-content .tagline {
    font-family: 'Inter', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #ff7b00; /* Accent orange/jaune pour le slogan */
    margin-bottom: 20px;
    letter-spacing: 0.5px;
}

.hero-content .sub {
    font-family: 'Inter', sans-serif;
    font-size: 1.1rem;
    color: #5B6C7D; /* Gris muted, pour le texte descriptif */
    max-width: 600px;
    margin: 0 auto 35px auto;
    line-height: 1.6;
}

.hero-content .cta {
    display: flex;
    gap: 20px;
    justify-content: center;
}

/* Bouton Principal (Gradient) - Forte visibilité */
.hero-content .btn.gradient {
    background: linear-gradient(90deg, #1F3B64, #3B5F99); /* Un dégradé bleu plus professionnel */
    color: #fff;
    padding: 15px 35px;
    font-size: 1.1rem;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(31,59,100,0.3);
    transition: all 0.3s ease;
}
.hero-content .btn.gradient:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 25px rgba(31,59,100,0.4);
}

/* Bouton Secondaire (Soft) - S'harmonise avec le fond */
.hero-content .btn.soft {
    background: #fff;
    border: 2px solid #D7E6FF;
    color: #1F3B64;
    padding: 15px 35px;
    font-size: 1.1rem;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.hero-content .btn.soft:hover {
    border-color: #A5C4FF;
    color: #000;
}

/* Media Queries pour la responsivité */
@media (max-width: 768px) {
    .hero.light-hero { min-height: 60vh; padding: 60px 20px; }
    .hero-content h1 { font-size: 3rem; }
    .hero-content .tagline { font-size: 1.2rem; }
    .hero-content .cta { flex-direction: column; align-items: center; }
    .hero-content .btn { width: 80%; max-width: 300px; }
}
/* --- CORRECTION CRITIQUE DU CSS POUR L'AFFICHAGE 1x2 --- */

/* Le conteneur .slide doit être simple pour 2 colonnes égales */
.slide {
    flex-shrink: 0;
    width: calc(100% / 3);
    height: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr; /* FIX: Deux colonnes égales */
    grid-template-rows: 1fr; /* FIX: Une seule ligne pour tout l'espace */
    gap: 10px;
    padding: 10px;
    box-sizing: border-box;
    background: #fff;
}

/* Style de chaque image individuelle (le lien <a>) */
.slide-item {
    display: block;
    height: 100%; 
    overflow: hidden;
    border-radius: 8px;
    /* Supprimer toute règle grid-row: 1 / 3 qui pourrait exister pour cette classe */
    grid-row: auto; /* Réinitialiser la hauteur forcée */
}

/* --- CORRECTION CRITIQUE DU CSS POUR L'AFFICHAGE 1x2 (Utilisation de CONTAIN) --- */

/* Le conteneur .slide doit être simple pour 2 colonnes égales */
.slide {
    flex-shrink: 0;
    width: calc(100% / 3);
    height: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr; /* FIX: Deux colonnes égales */
    grid-template-rows: 1fr; 
    gap: 10px;
    padding: 10px;
    box-sizing: border-box;
    background: #fff;
}

/* Style de chaque image individuelle (le lien <a>) */
.slide-item {
    display: block;
    height: 100%; 
    overflow: hidden;
    border-radius: 8px;
    grid-row: 1 / 2; 
}

/* Cible l'image pour qu'elle remplisse l'espace sans déborder */
.slide-item img {
    width: 100%;
    height: 100%;
    object-fit: contain !important; /* FORCER CONTAIN pour éviter le débordement */
    display: block;
    transition: transform 0.4s ease-in-out;
    border-radius: 8px;
    background: #111 !important; /* Fond noir derrière l'affiche */
}

/* --- Vérifiez aussi la règle globale du Hero (pour les boutons) --- */
.hero-content .cta-group {
    display: flex;
    gap: 15px; 
    margin-top: 30px;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}

/* --- CORRECTION CRITIQUE DU CSS POUR LE HERO SPLIT-FOCUS --- */

.hero.split-focus-hero {
    min-height: 85vh;
    padding: 80px 0;
    /* Conserve le fond bleu clair défini dans votre index.html */
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-content {
    display: grid;
    grid-template-columns: 1.2fr 1fr; /* Force la disposition en deux colonnes */
    gap: 40px;
    max-width: 1200px;
    text-align: left;
}

/* FIX: Alignement des boutons */
.hero-content .cta-group {
    display: flex;
    gap: 15px; 
    margin-top: 30px;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}

/* FIX: Bouton secondaire (Noir/Border) */
.hero-content .btn.soft {
    background: #111 !important;
    color: #fff !important;
    border: none !important;
    padding: 15px 35px;
    font-weight: 700;
}

/* --- FIX DE LA GALERIE 1x2 --- */

/* Conteneur principal du carrousel */
.showcase-slider {
    position: relative;
    overflow: hidden;
    height: 400px; /* Hauteur fixe pour le carrousel */
    padding: 0;
    max-width: 440px; /* Limite la largeur du bloc visuel */
    width: 100%;
    box-shadow: 0 10px 30px rgba(31,59,100,0.15); 
    border-radius: 12px;
}

/* Conteneur des slides (300% de large) */
.slides-container {
    width: 300%;
    height: 100%;
    display: flex;
}

/* La slide elle-même (1/3 de la largeur du slides-container) */
.slide {
    flex-shrink: 0;
    width: calc(100% / 3); 
    height: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr; /* FIX: Deux colonnes égales */
    gap: 10px; 
    padding: 10px; 
    box-sizing: border-box;
    background: #fff;
}

/* Style de chaque image individuelle (le lien <a>) */
.slide-item {
    display: block;
    height: 100%; 
    overflow: hidden;
    border-radius: 8px; 
}

.slide-item img {
    width: 100%;
    height: 100%;
    /* Utiliser cover ici pour que les affiches se touchent et créent l'effet immersif */
    object-fit: cover; 
    background: #111;
}

/* Responsive pour que les affiches restent en 1x1 sur mobile */
@media (max-width: 960px) {
    .hero-content {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .showcase-slider {
        margin: 40px auto 0;
    }
    .slide {
        grid-template-columns: 1fr; /* Empilement sur mobile */
    }
}
/* --- Styles définitifs pour le Hero Split-Focus --- */

.hero.split-focus-hero {
    min-height: 85vh;
    padding: 80px 0;
    /* Votre fond bleu glacier clair */
    background: linear-gradient(135deg, #F8FBFF 0%, #EAF2FF 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #D7E6FF;
}

.hero-content {
    display: grid;
    grid-template-columns: 1.2fr 1fr; /* 1.2 pour le texte, 1 pour la galerie */
    gap: 40px;
    max-width: 1200px;
    text-align: left;
}

/* FIX: Alignement des boutons */
.hero-content .cta-group {
    display: flex;
    gap: 15px; 
    margin-top: 30px;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}

/* Style des boutons (assurez-vous que ces classes ne sont pas définies ailleurs) */
.hero-content .btn.cta-main {
    background: linear-gradient(90deg, #ff7b00, #ffc107) !important;
    color: #111 !important;
    border: none;
    padding: 15px 35px;
    font-weight: 700;
}
.hero-content .btn.cta-secondary {
    background: #111 !important;
    color: #fff !important;
    border: none !important;
    padding: 15px 35px;
    font-weight: 700;
}


/* --- GALERIE D'IMAGES 1x2 PARFAITE --- */

.showcase-slider {
    position: relative;
    overflow: hidden;
    height: 400px; 
    max-width: 440px; 
    width: 100%;
    box-shadow: 0 10px 30px rgba(31,59,100,0.15); 
    border-radius: 12px;
}

.slides-container {
    width: 300%;
    height: 100%;
    display: flex;
    transition: transform 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.slide {
    flex-shrink: 0;
    width: calc(100% / 3);
    height: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr; /* FIX: Deux colonnes égales */
    grid-template-rows: 1fr; /* FIX: Une seule ligne pour l'affichage égal */
    gap: 10px; 
    padding: 10px; 
    box-sizing: border-box;
    background: #fff;
}

.slide-item {
    display: block;
    height: 100%; 
    overflow: hidden;
    border-radius: 8px;
    grid-row: 1 / 2; /* S'assure que les deux images restent sur une seule ligne */
}

.slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Permet le zoom au survol et le remplissage */
    background: #111;
}

/* Responsivité pour la galerie */
@media (max-width: 960px) {
    .showcase-slider {
        margin: 40px auto 0;
    }
}

/* --- FOOTER PREMIUM UPGRADE --- */

.site-footer {
    padding-top: 60px;
    padding-bottom: 0;
    font-size: 0.95rem;
}

/* Grille et Colonnes */
.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr; /* La marque prend plus de place */
    gap: 40px;
    margin-bottom: 50px;
}

/* Texte et Titres */
.footer-grid h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #111;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.footer-grid ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
}

.footer-grid ul li a {
    color: var(--footer-link); /* Utilise ton bleu existant */
    text-decoration: none;
    transition: all 0.2s ease;
}

.footer-grid ul li a:hover {
    color: #ff7b00 !important; /* Accent orange au survol */
    padding-left: 5px; /* Petit effet de glissement */
}

/* Badges de confiance (Colonne 1) */
.trust-badges {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    flex-wrap: wrap;
}
.trust-item {
    font-size: 0.75rem;
    background: #fff;
    padding: 6px 10px;
    border-radius: 6px;
    border: 1px solid #D7E6FF;
    color: #1F3B64;
    font-weight: 600;
}

/* Nouveaux Réseaux Sociaux (Minimalistes) */
.social-row-clean {
    display: flex;
    gap: 12px;
    margin-bottom: 15px;
}
.social-row-clean a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #fff;
    border: 1px solid #D7E6FF;
    border-radius: 50%;
    color: #1F3B64;
    transition: all 0.3s ease;
}
.social-row-clean a:hover {
    background: #1F3B64;
    color: #fff;
    transform: translateY(-3px);
    border-color: #1F3B64;
}

.mail-link {
    font-weight: 700;
    color: #1F3B64;
    border-bottom: 1px solid #1F3B64;
}

/* Barre du bas (Paiement & Copyright) */
.footer-bottom {
    background: #fff; /* Fond blanc pour contraste propre */
    border-top: 1px solid #D7E6FF;
    padding: 20px 0;
}

.bb-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.copyright {
    color: #5B6C7D;
    font-size: 0.85rem;
}
.copyright .sep { margin: 0 8px; opacity: 0.5; }
.copyright a { color: #5B6C7D; }

/* Icônes de paiement */
.payment-icons {
    display: flex;
    gap: 8px;
}
.pay-ic {
    height: 24px;
    width: auto;
    border-radius: 4px;
    display: block;
}

/* Responsive Footer */
@media (max-width: 960px) {
    .footer-grid {
        grid-template-columns: 1fr; /* Tout en une colonne sur mobile */
        gap: 30px;
        text-align: center;
    }
    .brand-row, .social-row-clean, .trust-badges {
        justify-content: center;
    }
    .bb-flex {
        flex-direction: column;
        gap: 15px;
    }
}

/* --- CORRECTIF FINAL FOOTER (Kacimi Approved) --- */

/* 1. On force le fond bleu glacier sur tout le bloc principal */
.site-footer {
    background: #EAF2FF !important;
    border-top: 1px solid #D7E6FF;
    padding-top: 60px;
    padding-bottom: 40px; /* Un peu d'espace avant la barre du bas */
}

/* 2. On rend transparents tous les conteneurs internes pour supprimer la "boîte blanche" */
.site-footer .container,
.site-footer .footer-grid,
.site-footer .col,
.site-footer .links,
.site-footer .brand-col,
.site-footer .contact-col {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* 3. On nettoie les titres (enlève le soulignement dégradé qui fait un peu vieux) */
.links h3::after {
    display: none !important;
}
.footer-grid h3 {
    margin-bottom: 24px; /* Plus d'espace sous les titres */
    font-size: 0.9rem; /* Un peu plus discret et élégant */
    letter-spacing: 1.5px;
}

/* 4. La barre du bas (Copyright + Paiement) en BLANC pour le contraste propre */
.footer-bottom {
    background: #ffffff !important;
    border-top: 1px solid #D7E6FF;
    padding: 15px 0;
    margin-top: 0; /* Colle au reste */
}

/* 5. Ajustement des logos de paiement pour qu'ils soient bien alignés */
.payment-icons {
    display: flex;
    align-items: center;
    gap: 10px;
}
.pay-ic {
    height: 22px; /* Taille uniforme */
    width: auto;
}

/* 6. Alignement vertical parfait des liens sociaux */
.social-row-clean {
    justify-content: flex-start; /* Aligné à gauche */
}

/* ========================================= */
/* === FOOTER PREMIUM (Version Finale) === */
/* ========================================= */

/* 1. Le Bloc Principal (Fond Bleu Glacier) */
.site-footer {
    background: #EAF2FF !important; /* Bleu glacier forcé */
    border-top: 1px solid #D7E6FF;
    padding-top: 60px;
    padding-bottom: 40px;
    font-size: 0.95rem;
    color: #0F172A;
}

/* 2. On rend transparents tous les conteneurs internes (Anti-Boîte Blanche) */
.site-footer .container,
.site-footer .footer-grid,
.site-footer .col,
.site-footer .links,
.site-footer .brand-col,
.site-footer .contact-col {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* 3. Grille et Colonnes */
.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 50px;
}

/* 4. Titres et Liens */
.footer-grid h3 {
    font-size: 0.9rem;
    font-weight: 700;
    color: #111;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 24px;
}
/* Supprime les anciens traits soulignés */
.links h3::after { display: none !important; }

.footer-grid ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
}

.footer-grid ul li a {
    color: #1F3B64;
    text-decoration: none;
    transition: all 0.2s ease;
}

.footer-grid ul li a:hover {
    color: #ff7b00 !important;
    padding-left: 5px;
}

/* 5. Réseaux Sociaux (Ronds Minimalistes) */
.social-row-clean {
    display: flex;
    gap: 12px;
    margin-top: 20px;
    justify-content: flex-start;
}
.social-row-clean a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #fff;
    border: 1px solid #D7E6FF;
    border-radius: 50%;
    color: #1F3B64;
    transition: all 0.3s ease;
}
.social-row-clean a:hover {
    background: #1F3B64;
    color: #fff;
    transform: translateY(-3px);
    border-color: #1F3B64;
}

/* ========================================= */
/* === BARRE DU BAS (Blanche) === */
/* ========================================= */
.footer-bottom {
    background: #ffffff !important; /* Fond Blanc forcé */
    border-top: 1px solid #E5E7EB;
    padding: 18px 0;
    font-size: 0.85rem;
    margin-top: 0;
}

.bb-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}

/* Badges de confiance (Gauche) */
.trust-badges-bottom {
    display: flex;
    gap: 15px;
}
.tb-item {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #F3F4F6;
    padding: 6px 12px;
    border-radius: 99px;
    color: #374151;
    font-weight: 600;
    font-size: 0.8rem;
    border: 1px solid #E5E7EB;
}
.tb-item svg {
    color: #1F3B64;
    stroke-width: 2.5px;
}

/* Copyright (Centre) */
.copyright {
    color: #9CA3AF;
    text-align: center;
}
.copyright a {
    color: #6B7280;
    text-decoration: none;
    transition: color 0.2s;
}
.copyright a:hover {
    color: #111;
    text-decoration: underline;
}

/* Logos Paiement (Droite) */
.payment-icons {
    display: flex;
    align-items: center;
    gap: 12px;
}
.pay-img {
    height: 24px;
    width: auto;
    object-fit: contain;
    filter: grayscale(0%);
    transition: transform 0.2s;
}
.pay-img:hover {
    transform: scale(1.1);
}

/* ========================================= */
/* === RESPONSIVE (Mobile) === */
/* ========================================= */
@media (max-width: 960px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
    }
    .social-row-clean {
        justify-content: center;
    }
    .bb-flex {
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }
    .trust-badges-bottom {
        order: 2;
        flex-wrap: wrap;
        justify-content: center;
    }
    .payment-icons {
        order: 1; /* Paiement en premier sur mobile */
    }
    .copyright {
        order: 3;
    }
}
/* --- CORRECTIF LOOKBOOK (UNIQUEMENT) --- */

.lookbook-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* Force 3 colonnes égales */
    gap: 20px;
    margin-top: 30px;
}

.lookbook-item {
    width: 100%;
    height: 400px; /* Hauteur fixe pour que tout soit aligné */
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.lookbook-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* L'image remplit la case sans être déformée */
    display: block;
    transition: transform 0.4s ease;
}

/* Petit zoom au survol pour le style */
.lookbook-item:hover img {
    transform: scale(1.05);
}

/* Version Mobile (1 seule colonne) */
@media (max-width: 768px) {
    .lookbook-grid {
        grid-template-columns: 1fr;
    }
    .lookbook-item {
        height: 300px;
    }
}
/* --- MODALE DE PAIEMENT --- */
.payment-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.6); /* Fond sombre flouté */
    backdrop-filter: blur(8px);
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.payment-overlay.active {
    opacity: 1;
    visibility: visible;
}

.payment-card {
    background: #fff;
    width: 100%;
    max-width: 480px;
    border-radius: 24px;
    padding: 30px;
    position: relative;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    transform: translateY(20px);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.payment-overlay.active .payment-card {
    transform: translateY(0);
}

/* Header */
.close-payment {
    position: absolute;
    top: 20px;
    right: 20px;
    background: #F1F5F9;
    border: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.1rem;
    color: #64748B;
    transition: 0.2s;
}
.close-payment:hover { background: #E2E8F0; color: #111; }

.pay-header h2 { margin: 0 0 5px; font-size: 1.6rem; color: #1E293B; }
.pay-header p { margin: 0 0 20px; color: #64748B; font-size: 0.95rem; }

/* Résumé */
.order-summary-mini {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #F8FAFC;
    padding: 15px 20px;
    border-radius: 12px;
    margin-bottom: 20px;
    border: 1px solid #E2E8F0;
}
.order-summary-mini strong { font-size: 1.2rem; color: #1F3B64; }

/* --- MISE A JOUR DES BOUTONS DE PAIEMENT --- */
.payment-methods {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2 colonnes */
    gap: 12px;
    margin-bottom: 25px;
}

.pm-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 2px solid #E2E8F0;
    border-radius: 12px;
    padding: 12px;
    cursor: pointer;
    transition: 0.2s;
    background: #fff;
}

.pm-option:hover { border-color: #CBD5E1; transform: translateY(-2px); }
.pm-option input { display: none; }

.pm-option.selected {
    border-color: #1F3B64;
    background: #EFF6FF;
    box-shadow: 0 4px 10px rgba(31, 59, 100, 0.1);
}

.pm-icon { font-size: 1.4rem; margin-bottom: 4px; }
.pm-name { font-size: 0.85rem; font-weight: 700; color: #475569; }

/* Formulaire */
.pay-input {
    width: 100%;
    padding: 14px;
    border: 1px solid #CBD5E1;
    border-radius: 10px;
    font-size: 1rem;
    margin-top: 6px;
    transition: 0.3s;
}
.pay-input:focus {
    border-color: #1F3B64;
    outline: none;
    box-shadow: 0 0 0 3px rgba(31, 59, 100, 0.1);
}
.row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.form-group { margin-bottom: 15px; }
.form-group label { font-size: 0.85rem; font-weight: 700; color: #334155; }

.input-icon-wrap { position: relative; }
.card-brand-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-20%);
    height: 24px;
}

/* Bouton Payer */
.pay-btn {
    margin-top: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    font-size: 1.1rem;
    padding: 16px;
}
.secure-note {
    text-align: center;
    font-size: 0.75rem;
    color: #94a3b8;
    margin-top: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

/* Force la modale au premier plan absolu */
.payment-overlay {
    z-index: 99999 !important;
}

/* --- CORRECTION LOGOS GÉANTS & TUNNEL DE COMMANDE --- */

/* 1. Force les logos à être petits */
.payment-logos-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    background: #f8fafc;
    padding: 12px;
    border-radius: 10px;
}

.payment-logos-row img {
    height: 25px !important; /* C'EST ÇA QUI EMPÊCHE LES LOGOS GÉANTS */
    width: auto !important;
    object-fit: contain;
}

/* 2. Styles des étapes (1-2-3) */
.checkout-header { text-align: center; margin-bottom: 25px; }
.step-indicators { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 15px; }
.step-dot { width: 30px; height: 30px; border-radius: 50%; background: #F1F5F9; color: #64748B; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.9rem; }
.step-dot.active { background: #1F3B64; color: #fff; }
.step-line { width: 40px; height: 2px; background: #E2E8F0; }

/* 3. Gestion de l'affichage des étapes */
.checkout-step { display: none; }
.checkout-step.active { display: block; animation: fadeIn 0.3s ease; }

/* 4. Options de Livraison */
.shipping-options { display: grid; gap: 12px; margin-bottom: 25px; }
.ship-opt {
    display: flex; justify-content: space-between; align-items: center;
    padding: 14px; border: 2px solid #E2E8F0; border-radius: 12px; cursor: pointer;
}
.ship-opt:hover { border-color: #CBD5E1; }
.ship-opt input { display: none; }
/* Style quand sélectionné */
.ship-opt:has(input:checked) { border-color: #1F3B64; background: #EFF6FF; }

.ship-info { display: flex; flex-direction: column; text-align: left; }
.ship-name { font-weight: 700; color: #1E293B; }
.ship-delay { font-size: 0.85rem; color: #64748B; }
.ship-price { font-weight: 700; color: #1F3B64; }

/* 5. Boutons de navigation (Retour / Continuer) */
.step-actions { display: flex; gap: 10px; margin-top: 20px; }
.step-actions .btn { flex: 1; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   AJOUTS POUR HARMONISER AVEC LES PAGES HTML
   (COLLER CE BLOC À LA FIN DU FICHIER)
   ============================================================ */

/* ------------------------------------------------------------
   1) BARRE DE CONFIANCE (index.html : .section.trust-bar)
------------------------------------------------------------ */

.section.trust-bar {
    padding: 20px 0;
    background: #FFF;
    border-bottom: 1px solid #eee;
}

.section.trust-bar .container {
    display: flex;
    justify-content: space-around;
    align-items: center;
    max-width: 900px;
    margin: 0 auto;
    flex-wrap: wrap;
    gap: 16px;
}

.trust-bar .trust-item {
    text-align: center;
    color: #1F3B64;
}

.trust-bar .trust-item span {
    display: block;
}

.trust-bar .trust-item span:first-child {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 4px;
}

.trust-bar .trust-item span:nth-child(2) {
    color: #ff8a00;
}

.trust-bar .trust-item p {
    font-size: 0.9rem;
    margin: 0;
}

@media (max-width: 600px) {
    .section.trust-bar .container {
        flex-direction: column;
    }
}

/* ------------------------------------------------------------
   2) NEWSLETTER (index.html : section.newsletter)
------------------------------------------------------------ */

.newsletter {
    padding: 40px 0 50px;
    background: #F9FAFB;
}

.newsletter .section-head.light h2 {
    color: #1F3B64;
}

.newsletter .section-head.light p {
    max-width: 480px;
    margin: 8px auto 0;
}

/* le .subscribe est déjà défini plus haut,
   ici on ajuste juste un peu l’espacement */
.newsletter .subscribe {
    margin-top: 20px;
}

/* ------------------------------------------------------------
   3) FAQ (about.html : .faq-section, .faq-list, etc.)
------------------------------------------------------------ */

.faq-section {
    padding: 60px 0 80px;
}

.faq-title {
    font-size: 2.4rem;
    text-align: center;
    margin-bottom: 8px;
    color: #0F172A;
}

.faq-subtitle {
    text-align: center;
    max-width: 620px;
    margin: 0 auto 32px;
    color: #6B7280;
    font-size: 0.97rem;
}

.faq-list {
    max-width: 820px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-item {
    border-radius: 16px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #FFFFFF;
    overflow: hidden;
}

.faq-question {
    width: 100%;
    padding: 16px 20px;
    background: transparent;
    border: none;
    outline: none;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    text-align: left;
}

.faq-icon {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #EEF2FF;
    font-size: 1.1rem;
}

.faq-answer {
    padding: 0 20px 16px;
    border-top: 1px solid rgba(15, 23, 42, 0.05);
    color: #4B5563;
    font-size: 0.95rem;
}

.faq-answer p {
    margin: 10px 0 0;
    line-height: 1.6;
}

.faq-answer a {
    color: #2563EB;
    text-decoration: underline;
}

/* ------------------------------------------------------------
   4) SUIVI DE COLIS (s-colis.html : .track-result, .progress…)
------------------------------------------------------------ */

.track-result {
    margin-top: 40px;
}

.track-result .card {
    padding: 24px;
    border-radius: 16px;
    background: #020617;
    color: #E5E7EB;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.65);
}

.track-result h2 {
    font-size: 1.3rem;
    margin-bottom: 8px;
}

.progress-wrapper {
    margin: 28px 0;
}

.progress-bar {
    position: relative;
    padding-top: 20px;
}

.progress-bar .progress {
    position: absolute;
    left: 0;
    right: 0;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #22C55E, #A3E635);
}

.progress-bar .steps {
    position: relative;
    list-style: none;
    display: flex;
    justify-content: space-between;
    padding: 0;
    margin: 18px 0 0;
    font-size: 0.8rem;
    color: #9CA3AF;
}

.progress-bar .steps li {
    text-align: center;
    flex: 1;
}

/* ------------------------------------------------------------
   5) AVIS CLIENTS PRODUIT (produit.html : .reviews-…)
   -> repris depuis le <style> de produit.html
------------------------------------------------------------ */

.reviews-section {
  margin-top: 40px;
  background: #0B1120;
  color: #E5E7EB;
  padding: 32px 24px;
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(148, 163, 184, 0.35);
}

.reviews-header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 24px;
}

.reviews-header h2 {
  margin: 0 0 4px;
  font-size: 1.4rem;
}

.reviews-header p {
  margin: 0;
  color: #9CA3AF;
  font-size: 0.92rem;
}

.reviews-stats {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.avg-rating {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.avg-rating .big {
  font-size: 2.4rem;
  font-weight: 700;
}

.avg-rating .stars {
  color: #FBBF24;
  letter-spacing: 1px;
  margin-top: -4px;
}

.rating-bars {
  display: grid;
  gap: 6px;
  min-width: 220px;
}

.rating-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  color: #9CA3AF;
}

.rating-bar .label {
  width: 38px;
}

.rating-bar .bar {
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: rgba(30, 64, 175, 0.5);
  overflow: hidden;
}

.rating-bar .fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #F97316, #FACC15);
}

.rating-bar .count {
  width: 34px;
  text-align: right;
}

.reviews-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
}

.review-card {
  background: rgba(15, 23, 42, 0.95);
  border-radius: 16px;
  padding: 14px 14px 16px;
  border: 1px solid rgba(148, 163, 184, 0.4);
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.review-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.9);
  border-color: rgba(251, 191, 36, 0.6);
}

.review-header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.review-author {
  display: flex;
  align-items: center;
  gap: 10px;
}

.review-avatar {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 0 0, #22C55E, #0EA5E9);
  font-size: 0.9rem;
  font-weight: 600;
  color: #0B1120;
}

.review-author-info .name {
  font-size: 0.9rem;
  font-weight: 600;
}

.review-author-info .date {
  font-size: 0.78rem;
  color: #9CA3AF;
}

.review-rating {
  color: #FACC15;
  font-size: 0.9rem;
}

.review-content {
  font-size: 0.86rem;
  color: #E5E7EB;
  line-height: 1.5;
}

.review-verified {
  font-size: 0.76rem;
  color: #4ADE80;
}

.reviews-more {
  margin-top: 18px;
  text-align: right;
  font-size: 0.85rem;
}

.reviews-more a {
  color: #38BDF8;
  text-decoration: none;
}

/* ------------------------------------------------------------
   6) FACTURE / CONFIRMATION DE COMMANDE (facture.html)
------------------------------------------------------------ */

.invoice-page {
    padding: 60px 0;
}

.invoice-container {
    max-width: 620px;
    margin: 0 auto;
    background: #FFFFFF;
    border-radius: 20px;
    padding: 28px 24px 24px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
}

.invoice-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
}

.invoice-header h1 {
    font-size: 1.6rem;
    margin: 0;
    color: #0F172A;
}

.invoice-header p {
    margin: 2px 0 0;
    color: #6B7280;
    font-size: 0.92rem;
}

.success-icon {
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background: #ECFDF3;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #16A34A;
    font-size: 1.4rem;
}

.order-details {
    margin: 18px 0 10px;
    border-radius: 16px;
    background: #F9FAFB;
    padding: 16px 16px 8px;
    font-size: 0.95rem;
}

.order-details h2 {
    font-size: 1rem;
    margin: 0 0 10px;
    color: #111827;
}

.detail-row,
.total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
    font-size: 0.93rem;
}

.total-row {
    margin-top: 8px;
    padding-top: 8px;
    font-weight: 600;
    border-top: 1px dashed rgba(15, 23, 42, 0.15);
}

.invoice-actions {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.invoice-actions .btn {
    flex: 1 1 160px;
}

@media (max-width: 640px) {
    .invoice-container {
        padding: 22px 16px 18px;
    }

    .invoice-header {
        align-items: flex-start;
    }
}
/* ============================================================
   STYLES PAGE CONTACT — VERSION PREMIUM
============================================================ */

/* 1. Fond Hero Dégradé & Haut */
.contact-bg-header {
    background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%);
    padding: 80px 20px 160px;
    text-align: center;
    border-bottom: 1px solid #BFDBFE;
}
.contact-bg-header h1 {
    font-family: 'Sora', sans-serif;
    font-size: 3.8rem;
    color: #1E293B;
    margin-bottom: 15px;
    letter-spacing: -1px;
}
.contact-bg-header p {
    font-size: 1.15rem;
    color: #64748B;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

/* 2. Conteneur en Superposition */
.contact-overlap-container {
    max-width: 1100px;
    margin: -100px auto 80px;
    padding: 0 20px;
    position: relative;
    z-index: 10;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
}

/* 3. Carte Formulaire */
.form-card {
    background: #ffffff;
    padding: 40px;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid #F1F5F9;
}
.form-card h2 {
    margin-top: 0;
    font-size: 1.5rem;
    color: #0F172A;
    margin-bottom: 25px;
}
.form-group {
    margin-bottom: 20px;
}
.form-group label {
    display: block;
    font-weight: 600;
    color: #334155;
    margin-bottom: 8px;
    font-size: 0.9rem;
}
.form-control {
    width: 100%;
    padding: 14px 16px;
    border: 2px solid #E2E8F0;
    border-radius: 12px;
    font-size: 1rem;
    font-family: 'Inter', sans-serif;
    transition: all 0.3s ease;
    background: #F8FAFC;
}
.form-control:focus {
    background: #fff;
    border-color: #1F3B64;
    outline: none;
    box-shadow: 0 0 0 4px rgba(31, 59, 100, 0.1);
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

/* 4. Carte Infos Contact */
.info-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.info-box {
    background: #fff;
    padding: 25px;
    border-radius: 20px;
    border: 1px solid #E2E8F0;
    box-shadow: 0 10px 30px -5px rgba(0,0,0,0.05);
}
.info-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}
.info-icon {
    width: 48px;
    height: 48px;
    background: #EFF6FF;
    color: #1F3B64;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.info-title {
    font-weight: 700;
    color: #0F172A;
    font-size: 1.1rem;
}
.info-text {
    color: #64748B;
    line-height: 1.5;
    font-size: 0.95rem;
}
.info-text a {
    color: #1F3B64;
    font-weight: 600;
    text-decoration: underline;
}

/* 5. Carte Map */
.map-container {
    height: 250px;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #E2E8F0;
    box-shadow: 0 10px 30px -5px rgba(0,0,0,0.05);
}
.map-container iframe {
    width: 100%;
    height: 100%;
    border: none;
    filter: grayscale(100%);
    transition: filter 0.3s;
}
.map-container:hover iframe {
    filter: grayscale(0%);
}

/* 6. Responsive */
@media(max-width: 960px) {
    .contact-bg-header {
        padding-bottom: 60px;
    }
    .contact-overlap-container {
        margin-top: 0;
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .form-row {
        grid-template-columns: 1fr;
    }
    .contact-bg-header h1 {
        font-size: 2.5rem;
    }
}
        /* ---------------------------------------------------- */
        /* --- STYLES DU HERO SPLIT-FOCUS (PILE 3D STATIQUE) --- */
        /* ---------------------------------------------------- */
        
        .hero.split-focus-hero {
            min-height: 85vh;
            padding: 80px 20px 40px 20px;
            background: linear-gradient(135deg, #F8FBFF 0%, #EAF2FF 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            border-bottom: 1px solid #D7E6FF;
        }

        .hero-content {
            display: grid;
            grid-template-columns: 1.2fr 1fr;
            gap: 40px;
            align-items: center;
            max-width: 1200px;
            margin: 0 auto;
            text-align: left;
        }

        .hero-text-block h1 { 
            font-size: 3.8rem; 
            font-weight: 900; 
            line-height: 1.1;
            margin-bottom: 15px;
            color: #111;
        }
        
        .hero-text-block h1 span { 
            color: #1F3B64; 
        }
        
        .hero-text-block .tagline {
            font-size: 1.5rem;
            color: #ff7b00; 
            font-weight: 700;
            letter-spacing: 0.5px;
            margin-bottom: 25px;
            display: block;
        }
        
        .hero-text-block .sub {
            font-size: 1.1rem;
            color: #5B6C7D;
            margin-bottom: 40px;
            line-height: 1.6;
        }

        /* Conteneur du Bloc Visuel (Pile 3D) */
        .hero-visual-block {
            position: relative;
            display: flex;
            justify-content: center;
            align-items: center;
            width: 100%;
            height: 500px; 
            perspective: 1000px; 
        }
        
        /* Style de chaque affiche dans la pile */
        .slide-item {
            position: absolute; 
            width: 60%;
            height: 85%;
            display: block;
            overflow: hidden;
            border-radius: 16px;
            box-shadow: 0 15px 40px rgba(0,0,0,0.4); 
            transition: all 0.5s ease;
            cursor: pointer;
            z-index: 1; 
        }

        /* Empilement 3D: Affiche #1 (Booba) */
        .slide-item:nth-child(1) {
            transform: translate(120px, 10px) rotate(8deg) scale(0.85);
            z-index: 5;
        }

        /* Empilement 3D: Affiche #2 (Damso) */
        .slide-item:nth-child(2) {
            transform: translate(-10px, 0px) rotate(0deg) scale(1.0);
            z-index: 15;
        }

        /* Empilement 3D: Affiche #3 (Nekfeu) */
        .slide-item:nth-child(3) {
            transform: translate(-140px, -10px) rotate(-8deg) scale(0.8);
            z-index: 10;
        }

        .slide-item img {
            width: 100%;
            height: 100%;
            object-fit: cover; 
            background: #111;
        }

        /* Effet au survol du bloc visuel (Ajouté) */
        .hero-visual-block:hover .slide-item:nth-child(1) {
            transform: translate(140px, 15px) rotate(10deg) scale(0.9);
        }
        .hero-visual-block:hover .slide-item:nth-child(3) {
            transform: translate(-160px, -15px) rotate(-10deg) scale(0.85);
        }
        .hero-visual-block:hover .slide-item:nth-child(2) {
             transform: translate(0px, -15px) rotate(0deg) scale(1.05);
        }

        @media (max-width: 960px) {
            .hero-content {
                grid-template-columns: 1fr;
                text-align: center;
            }
            .hero-visual-block {
                order: -1; 
                height: 350px;
                margin: 0 auto 30px;
            }
            .slide-item {
                width: 60%; 
                height: 80%;
            }
        }

    /* Styles généraux de la page produit */
    .pp-grid { max-width: 1300px; margin: 0 auto; padding: 40px 20px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; }
    .pp-main { position: relative; background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 8px 24px rgba(0,0,0,0.06); }
    .pp-gallery { position: relative; height: 500px; }
    .pp-gallery img { width: 100%; height: 100%; object-fit: contain; border-radius: 12px; position: absolute; top: 0; left: 0; transition: opacity 0.3s ease-in-out; }
    .pp-gallery img.hidden { display: none !important; }
    .pp-gallery img.active { display: block; opacity: 1; }
    .pp-info { position: sticky; top: 100px; align-self: start; }
    .pp-opts .opt { position: relative; transition: all 0.3s ease; font-weight: 600; padding: 12px 18px; border: 2px solid #e9dfcf; border-radius: 12px; background: #fff; cursor: pointer; font-size: 0.95rem; }
    .pp-opts .opt:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); border-color: #111; }
    .pp-opts .opt.active { border-color: #111; background: #f5f5f5; outline: 2px solid #111; }
    
    /* Aperçu de l'image - CENTRAGE */
    #preview-thumbs {
        display: flex;
        gap: 10px;
        margin-top: 15px;
        justify-content: center;
    }
    #preview-thumbs img {
        width: 80px;
        height: 80px;
        object-fit: cover;
        border: 2px solid #fff;
        border-radius: 8px;
        cursor: pointer;
        opacity: 0.7;
        transition: all 0.2s ease;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }
    #preview-thumbs img:hover {
        opacity: 1;
        transform: scale(1.05);
        border-color: #ff7b00;
    }
    #preview-thumbs img.active {
        opacity: 1;
        border-color: #000;
        box-shadow: 0 0 0 2px #000;
    }

    /* AVIS CLIENTS */
    .reviews-section {
      max-width: 1300px;
      margin: 60px auto;
      padding: 40px 20px;
      background: linear-gradient(135deg, #F8FBFF 0%, #F0F4FF 100%);
      border-radius: 20px;
      border: 1px solid #D7E6FF;
    }
    .reviews-header { text-align: center; margin-bottom: 40px; }
    .reviews-header h2 { font-size: 2rem; font-weight: 800; margin: 0 0 10px; color: #1F3B64; }
    .reviews-stats { display: flex; align-items: center; justify-content: center; gap: 30px; margin-top: 20px; }
    .avg-rating { text-align: center; }
    .avg-rating .big { font-size: 3rem; font-weight: 800; color: #1F3B64; line-height: 1; }
    .avg-rating .stars { color: #fbbf24; font-size: 1.2rem; margin: 5px 0; }
    .rating-bars { flex: 1; max-width: 400px; }
    .rating-bar { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
    .rating-bar .label { min-width: 60px; font-size: 0.9rem; color: #5B6C7D; }
    .rating-bar .bar { flex: 1; height: 8px; background: #E5E7EB; border-radius: 10px; overflow: hidden; }
    .rating-bar .fill { height: 100%; background: linear-gradient(90deg, #fbbf24, #f59e0b); transition: width 0.5s ease; }
    .rating-bar .count { min-width: 40px; text-align: right; font-size: 0.85rem; color: #9CA3AF; }
    .reviews-list { display: grid; gap: 20px; margin-top: 30px; }
    .review-card { background: white; padding: 24px; border-radius: 16px; border: 1px solid #E5E7EB; box-shadow: 0 2px 8px rgba(0,0,0,0.04); transition: all 0.3s ease; }
    .review-card:hover { box-shadow: 0 8px 20px rgba(0,0,0,0.08); transform: translateY(-2px); }
    .review-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
    .review-author { display: flex; align-items: center; gap: 12px; }
    .review-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, #EAF2FF, #F8F0FF); display: flex; align-items: center; justify-content: center; font-weight: 700; color: #1F3B64; font-size: 1.1rem; }
    .review-author-info .name { font-weight: 700; color: #1F3B64; }
    .review-author-info .date { font-size: 0.85rem; color: #9CA3AF; }
    .review-rating { color: #fbbf24; font-size: 1rem; }
    .review-content { color: #4B5563; line-height: 1.6; margin-top: 12px; }
    .review-verified { display: inline-flex; align-items: center; gap: 4px; background: #D1FAE5; color: #065F46; padding: 4px 10px; border-radius: 999px; font-size: 0.8rem; font-weight: 600; margin-top: 12px; }
    
    @media (max-width: 960px) {
      .reviews-stats { flex-direction: column; }
      .rating-bars { width: 100%; }
    }
    
    .hidden { display: none !important; }

    /* --- CSS SPÉCIFIQUE POUR LES FILTRES --- */
    .filter-container {
        display: flex;
        justify-content: center;
        gap: 15px;
        margin-bottom: 40px;
        flex-wrap: wrap;
    }
    
    .filter-btn {
        background: #fff;
        border: 1px solid #e5e7eb;
        padding: 10px 24px;
        border-radius: 50px;
        cursor: pointer;
        font-weight: 600;
        font-family: 'Inter', sans-serif;
        font-size: 0.95rem;
        transition: all 0.3s ease;
        color: #555;
    }
    
    .filter-btn:hover {
        border-color: #111;
        color: #111;
        transform: translateY(-2px);
    }
    
    .filter-btn.active {
        background: #111;
        color: #fff;
        border-color: #111;
        box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    }

    /* ===========================================================
   RESPONSIVE GLOBAL (Mobile & Tablette)
   À coller à la FIN du fichier
   =========================================================== */

/* ======= 1. HERO SPLIT RESPONSIVE ======= */
@media (max-width: 960px) {

    .hero {
        padding: 60px 20px !important;
        text-align: center;
    }

    .hero-content {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 30px;
        text-align: center;
    }

    .hero-content h1 {
        font-size: 2.3rem !important;
        line-height: 1.2;
    }

    .hero-content .sub {
        max-width: 100%;
        margin: 0 auto 20px;
        font-size: 1rem;
    }

    .cta-group {
        justify-content: center !important;
    }

    /* Pile 3D */
    .hero-visual-block {
        height: 330px !important;
        margin: 0 auto;
        order: -1;
    }

    .slide-item {
        width: 70% !important;
        height: 85% !important;
    }

    .slide-item:nth-child(1) {
        transform: translate(80px, 10px) rotate(8deg) scale(0.8);
    }
    .slide-item:nth-child(2) {
        transform: translate(0px, 0px) scale(1);
    }
    .slide-item:nth-child(3) {
        transform: translate(-80px, -10px) rotate(-8deg) scale(0.75);
    }
}

/* ======= 2. NAVIGATION ======= */
@media (max-width: 960px) {
    nav ul {
        gap: 18px !important;
        font-size: 0.95rem;
    }

    .logo img {
        height: 28px !important;
    }
}

/* ======= 3. PANIER (Cart Drawer) ======= */
@media (max-width: 960px) {
    .cart-drawer {
        width: 92vw !important;
    }
}

/* ======= 4. GRILLE PRODUITS ======= */
@media (max-width: 960px) {
    .product-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
        padding: 0 10px !important;
    }

    .product-card img {
        height: 180px !important;
    }
}

/* ======= 5. PAGE PRODUIT ======= */
@media (max-width: 960px) {
    .pp-grid {
        grid-template-columns: 1fr !important;
        gap: 30px;
    }

    .pp-gallery {
        height: 350px !important;
    }
}

/* ======= 6. LOOKBOOK ======= */
@media (max-width: 960px) {
    .lookbook-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    .lookbook-item {
        height: 260px !important;
    }
}

/* ======= 7. FOOTER ======= */
@media (max-width: 960px) {
    .footer-grid {
        grid-template-columns: 1fr !important;
        gap: 25px !important;
        text-align: center !important;
    }

    .social-row-clean {
        justify-content: center !important;
    }

    .payment-icons {
        justify-content: center !important;
    }
}


/* === HEADER RESPONSIVE (wrap + tailles fluides) === */
:root{
  /* typo fluide */
  --fs-base: clamp(14px, 1.6vw, 16px);
  --fs-nav:  clamp(13px, 1.8vw, 16px);
}
html{ font-size: var(--fs-base); }

.site-header .hdr{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;               /* permet de passer sur 2 lignes si besoin */
}

/* Bloc marque prend la place nécessaire, la nav se cale à droite */
.brand{ flex:1 1 auto; min-width:220px; }
.nav{
  display:flex;
  align-items:center;
  gap: clamp(12px, 2vw, 26px);
  flex-wrap:wrap;               /* la nav peut passer en 2 lignes */
  font-size: var(--fs-nav);
}

/* Lisibilité et hit-area des liens */
.nav a{
  white-space: nowrap;          /* évite les mots coupés en 2 sur desktop */
  padding: 6px 4px;
  border-radius:8px;
}

/* Tablette : nav en pleine largeur sous le logo */
@media (max-width: 960px){
  .nav{
    width:100%;
    justify-content:center;
    gap:12px;
  }
}

/* Téléphones étroits : scroll horizontal doux si trop d’items */
@media (max-width: 480px){
  .nav{
    overflow-x:auto;
    padding-bottom:6px;
    gap:10px;
    scroll-snap-type:x mandatory;
  }
  .nav a{ scroll-snap-align:start; }
}

/* === GRILLES PRODUITS (catalogue, cards3/cards4) === */
#gallery-grid,
.cards3,
.cards4{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: clamp(14px, 2.2vw, 30px);
}

/* Téléphones très étroits : 1 colonne */
@media (max-width: 640px){
  #gallery-grid{ grid-template-columns: 1fr; }
}

/* Cartes & images : hauteur fluide + rendu propre */
.poster-card{
  border-radius: clamp(10px, 2vw, 14px);
  overflow:hidden;
}

.poster-card img{
  width:100%;
  height: clamp(160px, 32vw, 320px);  /* s’adapte à l’écran */
  object-fit: contain;                /* garde l’affiche entière visible */
  background:#eee;
  padding:10px;
  border-bottom:1px solid #eee;
}

/* Textes des cartes : typo fluide */
.poster-card h3{
  font-size: clamp(14px, 2.4vw, 18px);
  margin: 12px 0 6px;
  font-weight: 600;
  color:#222;
}
.poster-card .price{
  font-size: clamp(13px, 2.2vw, 16px);
  color:#555;
  margin-bottom: 15px;
}

/* === CONTAINER largeur max progressive === */
.container{ width: min(1200px, 92%); margin:0 auto; }
@media (min-width: 1400px){
  .container{ width: min(1280px, 90%); }
}

/* Accessibilité : focus visible sur les liens du menu */
.nav a:focus-visible{
  outline: 2px solid #1F3B64;
  outline-offset:2px;
}

/* Safe area iOS pour la barre d’achat si présente */
.buybar{ padding-bottom: calc(8px + env(safe-area-inset-bottom)); }


/* ==== NAV HAMBURGER & OFF-CANVAS (responsive) ==== */
:root{ --hdr-h: 64px; }

.site-header .hdr{
  min-height: var(--hdr-h);
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; flex-wrap:wrap;
}

/* Bouton hamburger (caché sur desktop) */
.menu-toggle{
  display:none; /* on affiche en mobile */
  background:transparent; border:0; cursor:pointer;
  height:40px; width:40px; border-radius:10px;
  place-items:center;
}
.mburger{ width:24px; height:2px; background:#1F3B64; position:relative; transition:.2s; display:block; }
.mburger::before, .mburger::after{
  content:""; position:absolute; left:0; right:0; height:2px; background:#1F3B64; transition:.2s;
}
.mburger::before{ top:-7px }
.mburger::after{ top:7px }

/* État "ouvert" => X animé */
.menu-toggle[aria-expanded="true"] .mburger{ background:transparent; }
.menu-toggle[aria-expanded="true"] .mburger::before{ top:0; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] .mburger::after{ top:0; transform:rotate(-45deg); }

/* Desktop */
@media (min-width: 961px){
  .nav{ display:flex; align-items:center; gap:26px; }
}

/* Mobile / tablette : menu off-canvas + backdrop */
@media (max-width: 960px){
  .menu-toggle{ display:grid; }
  .brand-row{ flex:1 1 auto; min-width:220px; }

  .nav{
    position:fixed; top:var(--hdr-h); right:0;
    width:min(420px, 90vw);
    height:calc(100dvh - var(--hdr-h));
    background:#fff;
    border-left:1px solid var(--footer-line, #D7E6FF);
    box-shadow:-12px 0 32px rgba(0,0,0,.12);
    padding:16px;
    display:flex; flex-direction:column; gap:10px;
    transform:translateX(100%); transition:transform .28s ease;
    z-index:1000;
  }
  .nav.show{ transform:none; }

  .nav a{
    padding:12px 8px; border-radius:10px;
    color:var(--footer-link, #1F3B64);
  }
  .nav a:hover, .nav a.active{
    background:#EAF2FF; color:#0F172A; text-decoration:none;
  }

  .nav-backdrop{
    position:fixed; inset:0;
    background:rgba(0,0,0,.35); backdrop-filter:blur(3px);
    opacity:0; visibility:hidden; transition:.2s; z-index:999;
  }
  .nav-backdrop.show{ opacity:1; visibility:visible; }
}

/* Micro-interaction accessibilité */
.nav a:focus-visible{ outline:2px solid #1F3B64; outline-offset:2px; }

/* Barres/menus sur très petits écrans : wrap + scroll doux */
@media (max-width: 480px){
  .hdr{ gap:10px; }
  .nav{ width:92vw; }
}

/* Grille auto-fit intelligente + images à hauteur fluide */
#gallery-grid, .cards3, .cards4{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: clamp(14px, 2.2vw, 30px);
}
.poster-card img{
  width:100%;
  height: clamp(160px, 32vw, 320px);
  object-fit: contain;
  background:#eee; padding:10px; border-bottom:1px solid #eee;
}
@media (max-width: 640px){
  #gallery-grid{ grid-template-columns: 1fr; }
}


/* ============================================================
   FIX FINAL: HEADER CENTRÉ & RESPONSIVE (JK STUDIO)
   Ajouter ceci à la toute fin du fichier style.css
   ============================================================ */

/* --- 1. HEADER BUREAU : Navigation parfaitement au milieu --- */
.site-header .hdr {
    position: relative; /* Nécessaire pour le centrage absolu */
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
}

/* Sur PC (plus grand que 960px) */
@media (min-width: 961px) {
    .nav {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        gap: 30px;
        justify-content: center;
        background: transparent;
        width: auto;
        height: auto;
        box-shadow: none;
        padding: 0;
    }

    /* On cache le bouton hamburger sur PC */
    .menu-toggle {
        display: none !important;
    }
}

/* --- 2. HEADER MOBILE (Tablette et Téléphone) --- */
@media (max-width: 960px) {
    /* Le bouton hamburger apparaît */
    .menu-toggle {
        display: grid;
        place-items: center;
        z-index: 101; /* Au-dessus du menu ouvert */
    }

    /* Le menu devient un tiroir (Off-Canvas) */
    .nav {
        position: fixed;
        top: 0;
        right: 0;
        width: 80%;
        max-width: 350px;
        height: 100vh;
        background: #ffffff; /* Fond blanc propre */
        flex-direction: column;
        justify-content: center; /* Liens au milieu verticalement */
        align-items: center;
        gap: 25px;
        padding: 20px;
        box-shadow: -10px 0 30px rgba(0,0,0,0.15);
        transform: translateX(100%); /* Caché par défaut */
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 100;
    }

    /* Classe ajoutée par JS pour ouvrir le menu */
    .nav.active, .nav.show {
        transform: translateX(0);
    }

    /* Liens plus gros sur mobile pour le doigt */
    .nav a {
        font-size: 1.2rem;
        font-weight: 600;
        color: #111;
    }
}

/* --- 3. GRILLES PRODUITS RESPONSIVES --- */
/* Pour que tes posters ne soient pas écrasés sur mobile */

/* Par défaut (PC) : défini ailleurs (souvent 3 ou 4 colonnes) */

/* Tablette (2 colonnes) */
@media (max-width: 960px) {
    .cards3, .cards4, #gallery-grid, .pp-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px;
    }
    
    /* Le texte du Hero s'adapte */
    .hero-content h1 {
        font-size: 2.8rem !important;
    }
}

/* Mobile (1 colonne) */
@media (max-width: 600px) {
    .cards3, .cards4, #gallery-grid {
        grid-template-columns: 1fr !important; /* 1 seule colonne */
        max-width: 400px;
        margin-left: auto;
        margin-right: auto;
    }

    .hero-content h1 {
        font-size: 2.2rem !important;
    }

    /* Ajustement Footer sur mobile */
    .footer-grid {
        grid-template-columns: 1fr !important;
        text-align: center;
    }
    
    .social-row-clean {
        justify-content: center !important;
    }
}

/* ============================================================
   AJOUT FINAL : RESPONSIVE & MENU MOBILE
   (Colle ceci tout à la fin de style.css)
   ============================================================ */

/* 1. Masquer le bouton menu sur PC */
@media (min-width: 961px) {
    .menu-toggle { display: none !important; }
    
    /* Centrage forcé du menu sur PC */
    .nav {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: auto !important;
        background: transparent !important;
        box-shadow: none !important;
    }
}

/* 2. Version Mobile (Tablette et Téléphone) */
@media (max-width: 960px) {
    /* Afficher le bouton burger */
    .menu-toggle {
        display: flex !important;
        align-items: center; justify-content: center;
        width: 40px; height: 40px;
        background: transparent; border: none;
        z-index: 110; cursor: pointer;
    }
    
    /* Dessiner les traits du burger */
    .mburger { width: 24px; height: 2px; background: #1F3B64; position: relative; display: block; }
    .mburger::before, .mburger::after { 
        content: ""; position: absolute; left: 0; width: 24px; height: 2px; background: #1F3B64; 
    }
    .mburger::before { top: -6px; }
    .mburger::after { top: 6px; }

    /* Le Menu devient un panneau latéral */
    .nav {
        position: fixed !important;
        top: 0; right: 0;
        height: 100vh; width: 80% !important; max-width: 300px;
        background: #ffffff !important;
        display: flex !important; flex-direction: column !important;
        align-items: center; justify-content: center; gap: 25px;
        box-shadow: -5px 0 20px rgba(0,0,0,0.2);
        transform: translateX(100%); /* Caché par défaut */
        transition: transform 0.3s ease;
        z-index: 105;
    }
    
    /* Classe pour ouvrir le menu (ajoutée par le clic) */
    .nav.show, .nav.active { transform: translateX(0) !important; }
    
    .nav a { font-size: 1.2rem; color: #111; font-weight: 700; }

    /* 3. Passer les grilles en 1 colonne (pour ne pas écraser les produits) */
    .cards3, .cards4, .footer-grid, .hero-content {
        grid-template-columns: 1fr !important;
        text-align: center;
    }
    
    /* Ajustement images Hero sur mobile */
    .hero-visual-block { height: 320px !important; margin-bottom: 20px; order: -1; }
    .slide-item { width: 180px !important; height: 260px !important; }
    .bb-flex { flex-direction: column; gap: 15px; }
}

/* ============================================================
   FIX GRILLE PRODUITS (3 sur PC / 2 ou 1 sur Mobile)
   ============================================================ */

/* 1. SUR ORDINATEUR : Force 3 colonnes exactement */
#gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px; /* Espace entre les cartes */
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* 2. SUR TABLETTE & GRAND TÉLÉPHONE : Passe à 2 colonnes */
@media (max-width: 960px) {
    #gallery-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px; /* Espace réduit sur mobile */
        padding: 0 10px;
    }
}

/* 3. SUR PETIT TÉLÉPHONE (iPhone SE, anciens Android...) : Passe à 1 colonne */
/* Si tu préfères garder 2 colonnes tout le temps, supprime ce bloc */
@media (max-width: 450px) {
    #gallery-grid {
        grid-template-columns: 1fr !important; /* 1 seule colonne */
    }
}
/* ============================================================
   CORRECTION AFFICHAGE PRODUITS (3 PC / 2 MOBILE)
   ============================================================ */

/* 1. CONFIGURATION DE LA GRILLE (Le Conteneur) */
/* On cible tes deux types de listes : la collection et les produits phares */
#gallery-grid, .cards3, .product-list {
    display: grid !important;
    /* PC : Exactement 3 colonnes de taille égale */
    grid-template-columns: repeat(3, 1fr) !important; 
    gap: 30px; /* Espace entre les cartes */
    width: 100%;
    max-width: 1200px;
    margin: 30px auto;
    padding: 0 15px;
}

/* 2. STYLE DES CARTES (Pour éviter l'effet "Booba géant") */
.poster-card, .card {
    width: 100% !important; /* La carte remplit sa colonne, pas plus */
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%; /* Uniformise la hauteur */
}

/* 3. STYLE DES IMAGES (Pour qu'elles soient toutes pareilles) */
.poster-card img, .card img {
    width: 100%;
    height: 350px !important; /* Hauteur fixe pour aligner tout le monde */
    object-fit: cover; /* L'image remplit le cadre sans être écrasée */
    object-position: top center; /* On voit le haut de l'affiche */
    background-color: #f3f4f6;
}

/* 4. RESPONSIVE MOBILE (Téléphones et Tablettes) */
@media (max-width: 960px) {
    #gallery-grid, .cards3, .product-list {
        /* MOBILE : Exactement 2 colonnes */
        grid-template-columns: repeat(2, 1fr) !important; 
        gap: 10px; /* Espace plus petit sur mobile */
    }

    /* Réduire un peu la hauteur des images sur mobile pour que ça rentre */
    .poster-card img, .card img {
        height: 220px !important;
    }
    
    /* Ajuster la taille du texte sur mobile */
    .poster-card h3, .poster-card .title {
        font-size: 0.95rem;
        margin: 10px 0 5px;
    }
}

/* EMPÊCHER LE SCROLL HORIZONTAL (Indispensable pour le menu mobile) */
html, body {
    overflow-x: hidden !important;
    width: 100%;
    position: relative;
    margin: 0;
    padding: 0;
}
/* ============================================================
   FIX FINAL (MENU MOBILE + GRILLES) - NE PAS EFFACER
   ============================================================ */

/* 1. Empêcher le site de bouger à droite */
html, body { overflow-x: hidden !important; width: 100%; position: relative; }

/* 2. MENU PC (Centré) */
@media (min-width: 961px) {
    .nav {
        position: absolute !important; left: 50%; transform: translateX(-50%);
        display: flex !important; gap: 30px; background: transparent !important;
        box-shadow: none !important; width: auto !important; flex-direction: row !important;
    }
    .menu-toggle, .close-menu, .nav-header, .nav-footer { display: none !important; }
}

/* 3. MENU MOBILE (Style App iPhone) */
@media (max-width: 960px) {
    .menu-toggle { display: block !important; font-size: 24px; background: none; border: none; cursor: pointer; }
    
    .nav {
        position: fixed !important; top: 0; right: 0; height: 100vh; width: 85% !important; max-width: 320px;
        background: #fff !important; box-shadow: -10px 0 40px rgba(0,0,0,0.2);
        display: flex !important; flex-direction: column !important;
        transform: translateX(100%); transition: transform 0.3s ease; z-index: 9999;
        padding: 0 !important;
    }
    .nav.show { transform: translateX(0) !important; }

    /* Design interne du menu */
    .nav-header { padding: 20px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; }
    .nav-links { display: flex; flex-direction: column; padding: 20px; gap: 25px; overflow-y: auto; }
    .nav-links a { font-size: 1.2rem; font-weight: 700; color: #1F3B64; }
    .nav-footer { margin-top: auto; padding: 20px; background: #f9f9f9; text-align: center; }
}

/* 4. GRILLE PRODUITS (3 Colonnes PC / 2 Colonnes Mobile) */
.cards3, #gallery-grid, .product-list {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important; /* 3 sur PC */
    gap: 20px !important; margin: 30px auto; width: 100%; max-width: 1200px;
}
.poster-card, .card {
    width: 100% !important; max-width: none !important;
    display: flex; flex-direction: column; height: 100%;
}
.poster-card img, .card img {
    width: 100% !important; height: 350px !important; object-fit: cover;
}

@media (max-width: 960px) {
    .cards3, #gallery-grid, .product-list { grid-template-columns: repeat(2, 1fr) !important; } /* 2 sur Mobile */
    .poster-card img, .card img { height: 200px !important; }
}
/* ============================================================
   MENU MOBILE STYLE "APP" (SANS LOGO TEXTE)
   Coller à la fin de style.css
   ============================================================ */

@media (max-width: 960px) {

    /* 1. LE PANNEAU BLANC */
    .nav {
        position: fixed !important;
        top: 0; right: 0;
        height: 100vh;
        width: 80% !important; max-width: 300px;
        background: #ffffff !important;
        box-shadow: -10px 0 40px rgba(0,0,0,0.15) !important;
        
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important; /* Centré verticalement */
        padding: 20px 0 !important;
        gap: 0 !important;
        z-index: 9999;
    }

    /* (J'ai supprimé la partie .nav::before qui affichait "JK STUDIO") */

    /* 2. LES LIENS (Style iPhone réglages) */
    .nav a {
        font-family: 'Inter', sans-serif !important;
        font-size: 1.1rem !important;
        font-weight: 600 !important;
        color: #334155 !important; /* Gris foncé propre */
        text-align: left !important; /* Aligné à gauche */
        padding: 20px 30px !important; /* Gros espace pour cliquer */
        border-bottom: 1px solid #f1f5f9; /* Ligne de séparation très fine */
        width: 100%;
        display: block;
        transition: all 0.2s ease;
        background: transparent;
        border-radius: 0;
    }

    /* 3. EFFET AU SURVOL (Barre orange à gauche) */
    .nav a:hover, .nav a.active {
        color: #ff7b00 !important; /* Texte Orange */
        background: #fffbf5 !important; /* Fond très léger */
        padding-left: 40px !important; /* Petit glissement vers la droite */
        border-left: 4px solid #ff7b00; /* Barre orange sur le côté */
    }

    /* 4. LE DERNIER LIEN (CONTACT) EN BOUTON */
    /* Transforme le dernier lien en gros bouton bleu en bas */
    .nav a:last-child {
        margin: 30px 20px 0 20px !important; /* Marge autour */
        background: #1F3B64 !important;
        color: #ffffff !important;
        text-align: center !important;
        border-radius: 12px !important;
        border: none !important;
        padding: 15px !important;
        width: auto !important;
        box-shadow: 0 4px 12px rgba(31, 59, 100, 0.2);
    }
    
    .nav a:last-child:hover {
        background: #ff7b00 !important;
        transform: translateY(-2px);
        padding-left: 15px !important; /* Pas de décalage texte pour le bouton */
        border-left: none;
    }
}
/* ============================================================
   MENU MOBILE FINAL (TITRE + CROIX)
   Coller à la fin de style.css
   ============================================================ */

@media (max-width: 960px) {

    /* 1. LE PANNEAU */
    .nav {
        position: fixed !important;
        top: 0; right: 0;
        height: 100vh;
        width: 80% !important; max-width: 320px;
        background: #ffffff !important;
        box-shadow: -10px 0 50px rgba(0,0,0,0.2) !important;
        
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
        padding-top: 100px !important;
        gap: 0 !important;
        z-index: 9999;
    }

    /* 2. LE TITRE "MENU" (À gauche) */
    .nav::before {
        content: "MENU";
        position: absolute;
        top: 40px; left: 30px;
        font-family: 'Inter', sans-serif;
        font-weight: 800;
        font-size: 2rem;
        color: #1F3B64;
        opacity: 0.1;
    }

    /* 3. LA CROIX "X" (À droite) - NOUVEAU ! */
    .nav::after {
        content: "\00D7"; /* Code spécial pour le symbole X */
        position: absolute;
        top: 25px; right: 30px;
        font-size: 2.5rem;
        color: #111;
        font-weight: 400;
        cursor: pointer;
        line-height: 1;
        transition: 0.2s;
    }
    
    /* Animation de la croix au survol */
    .nav:hover::after {
        color: #ff7b00;
        transform: scale(1.1);
    }

    /* 4. LES LIENS */
    .nav a {
        font-family: 'Inter', sans-serif !important;
        font-size: 1.15rem !important;
        font-weight: 600 !important;
        color: #334155 !important;
        text-align: left !important;
        padding: 22px 30px !important;
        border-bottom: 1px solid #f1f5f9;
        width: 100%;
        display: block;
        transition: all 0.2s;
        border-radius: 0;
    }

    .nav a:hover, .nav a.active {
        color: #ff7b00 !important;
        background: #fffbf5 !important;
        padding-left: 45px !important;
        border-left: 4px solid #ff7b00;
    }

    /* 5. BOUTON CONTACT */
    .nav a:last-child {
        margin: 40px 20px 0 20px !important;
        width: auto !important;
        background: #1F3B64 !important;
        color: #ffffff !important;
        text-align: center !important;
        border-radius: 12px !important;
        padding: 16px !important;
        box-shadow: 0 10px 25px rgba(31, 59, 100, 0.25);
    }
    
    .nav a:last-child:hover {
        background: #ff7b00 !important;
        transform: translateY(-3px);
        padding-left: 16px !important;
        border-left: none;
    }
}
/* ============================================================
   FIX FINAL : GRILLES PRODUITS & IMAGES
   ============================================================ */

/* 1. FORCER LA GRILLE (3 colonnes sur PC) */
.cards3, #gallery-grid, .product-list, .section-content {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important; 
    gap: 25px !important;
    width: 100%;
    max-width: 1200px;
    margin: 30px auto;
    padding: 0 15px;
}

/* 2. FORCER LA TAILLE DES CARTES (Empêche l'effet "Booba Géant") */
.poster-card, .card {
    width: 100% !important;
    max-width: none !important; /* Laisse la grille gérer la largeur */
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    overflow: hidden;
}

/* 3. UNIFORMISER LES IMAGES (Toutes la même hauteur) */
.poster-card img, .card img {
    width: 100% !important;
    height: 350px !important; /* Hauteur fixe obligatoire */
    object-fit: cover !important; /* L'image remplit sans déformation */
    object-position: top center;
    background-color: #f3f4f6;
}

/* 4. RESPONSIVE (2 colonnes sur Mobile/Tablette) */
@media (max-width: 960px) {
    .cards3, #gallery-grid, .product-list, .section-content {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
    }

    /* Images un peu moins hautes sur mobile */
    .poster-card img, .card img {
        height: 220px !important;
    }
}
/* --- DANS style.css (À la fin) --- */

/* Force l'affichage en grille de 3 colonnes */
.cards3, #gallery-grid, .product-list, .cards-container {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important; /* 3 colonnes sur PC */
    gap: 30px !important;
    max-width: 1200px;
    margin: 30px auto;
    padding: 0 15px;
}

/* Empêche une carte seule de devenir géante */
.poster-card, .card {
    width: 100% !important;
    max-width: none !important;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
}

/* Uniformise la taille des images */
.poster-card img, .card img {
    width: 100% !important;
    height: 350px !important;
    object-fit: cover;
}

/* Version Mobile (2 colonnes) */
@media (max-width: 960px) {
    .cards3, #gallery-grid, .product-list {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
    }
    .poster-card img, .card img {
        height: 220px !important;
    }
}

/* ============================================================
   FIX MENU MOBILE "STYLE APP" (FINAL)
   Coller tout en bas de style.css
   ============================================================ */

@media (max-width: 960px) {

    /* 1. LE CONTENEUR (Panneau blanc latéral) */
    .nav {
        /* Position et taille */
        position: fixed !important;
        top: 0; right: 0;
        height: 100vh;
        width: 80% !important; max-width: 300px;
        background: #ffffff !important;
        box-shadow: -10px 0 50px rgba(0,0,0,0.15) !important;
        
        /* ALIGNEMENT : On force tout en haut à gauche */
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important; /* Commence en haut */
        align-items: flex-start !important; /* Aligné à gauche (CORRECTION DU CENTRAGE) */
        
        padding: 0 !important;
        padding-top: 100px !important; /* Espace pour le logo */
        gap: 0 !important;
        z-index: 9999;
    }

    /* 2. LE LOGO "JK STUDIO" (Faux titre en haut à gauche) */
    .nav::before {
        content: "JK STUDIO"; 
        position: absolute;
        top: 35px; left: 30px;
        font-family: 'Pacifico', cursive; /* Police stylée */
        font-size: 1.6rem;
        color: #1F3B64;
        border-bottom: 3px solid #ff7b00;
        padding-bottom: 5px;
    }

    /* 3. LA CROIX "X" (En haut à droite) */
    .nav::after {
        content: "\00D7"; /* Le code pour la croix */
        position: absolute;
        top: 25px; right: 25px;
        font-size: 3rem; /* Bien grosse */
        color: #333;
        font-weight: 300;
        cursor: pointer;
        line-height: 1;
    }

    /* 4. LES LIENS (Style liste iPhone) */
    .nav a {
        width: 100% !important; /* Prend toute la largeur */
        display: block !important;
        
        /* Texte */
        font-family: 'Inter', sans-serif !important;
        font-size: 1.1rem !important;
        font-weight: 600 !important;
        color: #334155 !important;
        text-align: left !important; /* Force à gauche */
        
        /* Espacement */
        padding: 20px 30px !important;
        border-bottom: 1px solid #f1f5f9; /* Ligne grise fine */
        background: transparent !important;
        border-radius: 0 !important;
        margin: 0 !important;
    }

    /* Effet quand on passe le doigt dessus */
    .nav a:hover, .nav a.active {
        color: #ff7b00 !important;
        background: #fffbf5 !important;
        padding-left: 40px !important; /* Petit décalage */
        border-left: 5px solid #ff7b00;
    }

    /* 5. LE BOUTON CONTACT (Le dernier lien devient un bouton bleu) */
    .nav a:last-child {
        margin-top: 40px !important; /* Espace avant */
        margin-left: 20px !important;
        width: calc(100% - 40px) !important; /* Largeur ajustée */
        
        background: #1F3B64 !important;
        color: white !important;
        text-align: center !important;
        border-radius: 12px !important;
        padding: 15px !important;
        border: none !important;
        box-shadow: 0 5px 15px rgba(31, 59, 100, 0.2);
    }
    
    .nav a:last-child:hover {
        background: #ff7b00 !important;
        padding-left: 15px !important; /* Annule le décalage pour le bouton */
        border-left: none;
    }
}

/* ============================================================
   FIX ULTIME MENU MOBILE (FORCE L'ALIGNEMENT HAUT-GAUCHE)
   ============================================================ */

@media (max-width: 960px) {

    /* 1. LE CADRE DU MENU */
    .nav {
        /* Force la position et la taille */
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        height: 100vh !important;
        width: 80% !important;
        max-width: 320px !important;
        background: #ffffff !important;
        box-shadow: -5px 0 30px rgba(0,0,0,0.2) !important;
        z-index: 9999 !important;

        /* FORCE L'ALIGNEMENT EN HAUT (C'est ça qui bloque chez toi) */
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important; /* Colle tout en haut */
        align-items: stretch !important; /* Étire les liens sur la largeur */
        
        /* Espace OBLIGATOIRE pour ne pas que le logo touche les liens */
        padding: 0 !important;
        padding-top: 100px !important; 
        gap: 0 !important;
    }

    /* 2. LE LOGO (JK STUDIO) */
    .nav::before {
        content: "JK STUDIO";
        position: absolute;
        top: 30px; 
        left: 25px;
        font-family: 'Pacifico', cursive, sans-serif;
        font-size: 1.5rem;
        color: #1F3B64;
        border-bottom: 3px solid #ff7b00;
        z-index: 10000;
    }

    /* 3. LA CROIX (X) */
    .nav::after {
        content: "\00D7"; /* Symbole X */
        position: absolute;
        top: 20px; 
        right: 20px;
        font-size: 3rem;
        color: #000;
        line-height: 1;
        cursor: pointer;
        z-index: 10000;
    }

    /* 4. LES LIENS */
    .nav a {
        display: block !important;
        width: 100% !important;
        text-align: left !important; /* Force le texte à gauche */
        padding: 20px 25px !important; /* Espace autour du texte */
        border-bottom: 1px solid #f0f0f0 !important;
        font-size: 1.1rem !important;
        font-weight: 600 !important;
        color: #333 !important;
        background: transparent !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }

    /* 5. BOUTON CONTACT (EN BAS) */
    .nav a:last-child {
        margin-top: 30px !important;
        margin-left: 20px !important;
        margin-right: 20px !important;
        width: auto !important; /* Pas toute la largeur */
        text-align: center !important;
        background: #1F3B64 !important;
        color: white !important;
        border-radius: 10px !important;
        padding: 15px !important;
        border: none !important;
    }
}

/* Vérifie que tu as bien ça dans ton CSS pour la croix */
.nav::after {
    /* ... */
    top: 25px;    /* C'est bien dans la zone < 80px */
    right: 25px;  /* C'est bien dans la zone droite */
    /* ... */
    pointer-events: none; /* AJOUTE ÇA : permet de cliquer "à travers" le dessin de la croix pour atteindre le menu en dessous */
}
/* ============================================================
   FIX DÉFINITIF DU BOUTON FERMER (VRAI BOUTON)
   ============================================================ */

/* 1. On supprime l'ancienne croix CSS qui buguait */
.nav::after {
    display: none !important;
    content: none !important;
}

/* 2. On stylise le VRAI bouton qu'on vient d'ajouter */
#close-menu-btn {
    display: none; /* Caché sur PC */
}

@media (max-width: 960px) {
    #close-menu-btn {
        display: block !important;
        position: absolute;
        top: 15px; 
        right: 20px;
        background: transparent;
        border: none;
        font-size: 3.5rem; /* Bien gros */
        color: #111;
        line-height: 1;
        cursor: pointer;
        z-index: 10000;
        padding: 0 10px;
    }
    
    #close-menu-btn:hover {
        color: #ff7b00;
    }
}
/* ============================================================
   STYLE DE LA CROIX DE FERMETURE (X)
   A coller à la fin de style.css
   ============================================================ */

/* Par défaut (PC) : on cache la croix */
.close-menu {
    display: none;
}

/* Sur Mobile : on l'affiche en grand */
@media (max-width: 960px) {
    .close-menu {
        display: block !important;
        position: absolute;       /* Pour la placer où on veut */
        top: 15px;                /* Ecart du haut */
        right: 20px;              /* Ecart de la droite */
        
        background: transparent;  /* Pas de fond */
        border: none;             /* Pas de bordure */
        font-size: 45px;          /* Bien grosse */
        line-height: 1;           /* Hauteur de ligne compacte */
        color: #000000;           /* Noir */
        cursor: pointer;
        z-index: 10000;           /* Au-dessus de tout */
    }

    /* Petit effet rouge quand on touche */
    .close-menu:active {
        color: red;
    }
}

/* ============================================================
   FIX CROIX QUI NE DISPARAISSAIT PAS
   ============================================================ */

/* 1. Par défaut (Menu fermé ou PC) : LA CROIX EST INVISIBLE */
.close-menu {
    display: none !important;
}

/* 2. UNIQUEMENT SUR MOBILE ET QUAND LE MENU EST OUVERT */
@media (max-width: 960px) {
    /* La croix apparaît SEULEMENT si la balise <nav> a la classe .show */
    .nav.show .close-menu {
        display: block !important;
        
        position: absolute;
        top: 15px;
        right: 20px;
        
        background: transparent;
        border: none;
        font-size: 45px;
        line-height: 1;
        color: #000000;
        cursor: pointer;
        z-index: 10001; /* Au-dessus du menu */
    }
    
    .close-menu:active {
        color: #ff7b00; /* Orange quand on appuie */
    }
}