/* =========================================================
   Effervescence — UI Premium
   Palette: #CB5CED / #1E1E1E / #EAEAEA
   Desktop = header premium avec recherche
   Mobile = header type "app" (luxury dark) + tabbar
   ========================================================= */

:root{
  --accent:#CB5CED;
  --dark:#1E1E1E;
  --light:#EAEAEA;

  --bg:#0f0f10;
  --panel:#151517;
  --text:#EAEAEA;
  --muted:rgba(234,234,234,.72);
  --line:rgba(234,234,234,.12);

  --danger:#ff5a6a;
  --ok:#3ddc97;

  --radius:18px;
  --shadow: 0 18px 50px rgba(0,0,0,.45);
  --shadow2: 0 8px 24px rgba(0,0,0,.35);

  --max:1180px;

  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --serif: ui-serif, Georgia, "Times New Roman", Times, serif;

  --mobileHeaderH: 64px;
  --tabbarH: 84px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: var(--font);
  color: var(--text);
  background:
    radial-gradient(1200px 700px at 18% 8%, rgba(203,92,237,.18), rgba(0,0,0,0) 55%),
    radial-gradient(900px 520px at 88% 18%, rgba(203,92,237,.10), rgba(0,0,0,0) 60%),
    linear-gradient(180deg, #0b0b0c, var(--bg));
  min-height: 100vh;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--max);margin:0 auto;padding:18px}
.hidden{display:none !important}

/* Accessibilité */
.skip-link{
  position:absolute; left:-999px; top:10px;
  background:var(--accent); color:#1E1E1E;
  padding:10px 14px; border-radius:12px;
}
.skip-link:focus{left:10px; z-index:9999}
:focus-visible{
  outline:3px solid rgba(203,92,237,.55);
  outline-offset:3px;
  border-radius: 12px;
}

/* ✅ IMPORTANT : cacher UI mobile par défaut (évite logo dans la page sur desktop) */
.app-header,
.search-overlay,
.drawer,
.tabbar{
  display:none;
}

/* ✅ Anti “SVG parasite” si un sprite/defs se retrouve dans le body */
body > svg,
svg.svg-sprite{
  width:0 !important;
  height:0 !important;
  overflow:hidden !important;
  position:absolute !important;
  display:none !important;
}
svg{vertical-align:middle}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:12px 16px; border-radius: 16px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color: var(--text); cursor:pointer;
  transition: transform .08s ease, background .2s ease, border-color .2s ease;
  user-select:none;
}
.btn:hover{background: rgba(255,255,255,.09); border-color: rgba(234,234,234,.22)}
.btn:active{transform: translateY(1px)}
.btn.primary{
  background: linear-gradient(135deg, rgba(203,92,237,.92), rgba(203,92,237,.55));
  color:#1E1E1E; border-color: rgba(203,92,237,.35);
  font-weight: 800;
}
.btn.primary:hover{background: linear-gradient(135deg, rgba(203,92,237,1), rgba(203,92,237,.62))}
.btn.danger{border-color: rgba(255,90,106,.35); background: rgba(255,90,106,.10)}
.btn.danger:hover{background: rgba(255,90,106,.16)}
.btn.block{width:100%}

.kbd{
  font-size:.85rem; padding:.15rem .5rem;
  border:1px solid var(--line);
  border-bottom-color: rgba(234,234,234,.22);
  border-radius:10px;
  color: var(--muted);
  background: rgba(255,255,255,.04);
}

.badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width: 18px; height:18px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 12px;
  background: var(--accent);
  color: #1E1E1E;
  font-weight: 900;
}

.card{
  background: rgba(255,255,255,.04);
  border:1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow2);
  overflow:hidden;
}
.card.pad{padding:16px}

.grid{display:grid; gap:14px}
.grid.cols-2{grid-template-columns: repeat(2, minmax(0, 1fr))}
.grid.cols-3{grid-template-columns: repeat(3, minmax(0, 1fr))}
.grid.cols-4{grid-template-columns: repeat(4, minmax(0, 1fr))}
@media (max-width: 980px){.grid.cols-4{grid-template-columns: repeat(3, minmax(0, 1fr))}}
@media (max-width: 720px){.grid.cols-3,.grid.cols-4{grid-template-columns: repeat(2, minmax(0, 1fr))}}
@media (max-width: 460px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns: 1fr}}

input, select, textarea{
  width:100%;
  color: var(--text);
  background: rgba(255,255,255,.05);
  border:1px solid var(--line);
  border-radius: 16px;
  padding: 12px 14px;
  outline:none;
}
input:focus, select:focus, textarea:focus{
  border-color: rgba(203,92,237,.65);
  box-shadow: 0 0 0 4px rgba(203,92,237,.14);
}
label{display:block; font-size:.92rem; color: var(--muted); margin: 10px 0 8px}

.small{font-size:.92rem; color: var(--muted)}
.h1{font-family: var(--serif); font-size: clamp(1.9rem, 2.6vw, 3.0rem); letter-spacing: .01em; margin: 8px 0 10px;}
.h2{font-family: var(--serif); font-size: 1.35rem; margin: 0 0 10px;}
.p{color: var(--muted); line-height: 1.6}

hr.line{border:0; border-top:1px solid var(--line); margin:16px 0}

/* =========================================================
   DESKTOP HEADER
   ========================================================= */
.header{
  position: sticky; top:0; z-index: 30;
  backdrop-filter: blur(10px);
  background: linear-gradient(180deg, rgba(15,15,16,.90), rgba(15,15,16,.55));
  border-bottom: 1px solid var(--line);
}
.header-inner{
  max-width: var(--max);
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:14px;
  padding: 14px 18px;
}
.brand{display:flex; align-items:center; gap:12px; min-width: 220px;}
.brand img{height:34px; width:auto; border-radius: 10px}
.brand .name{font-family: var(--serif); font-size: 1.25rem; letter-spacing: .02em;}
.nav{display:flex; align-items:center; gap:14px; margin-left:auto}
.nav a{color: var(--muted); padding: 10px 10px; border-radius: 14px}
.nav a:hover{color: var(--text); background: rgba(255,255,255,.05)}
.searchbar{flex:1; max-width: 520px; margin: 0 auto; position:relative}
.searchbar input{padding-left:42px; border-radius: 999px}
.searchbar svg{position:absolute; left:14px; top:50%; transform: translateY(-50%); opacity:.78}
.cart-btn{position:relative}
.cart-badge{position:absolute; top:-7px; right:-7px}

/* =========================================================
   HERO / HOME
   ========================================================= */
.hero{padding: 26px 0 8px;}
.hero-wrap{display:grid; grid-template-columns: 1.25fr .75fr; gap:16px; align-items:stretch;}
@media (max-width: 920px){.hero-wrap{grid-template-columns:1fr}}
.hero-card{
  padding: 20px;
  border-radius: calc(var(--radius) + 6px);
  background: linear-gradient(135deg, rgba(203,92,237,.18), rgba(255,255,255,.04) 40%, rgba(255,255,255,.03));
  border: 1px solid rgba(234,234,234,.14);
  box-shadow: var(--shadow);
  overflow:hidden;
  position:relative;
}
.hero-card:before{
  content:"";
  position:absolute; inset:-120px -160px auto auto;
  width: 340px; height:340px;
  background: radial-gradient(circle at 30% 30%, rgba(203,92,237,.45), rgba(203,92,237,0) 60%);
  transform: rotate(10deg);
}
.hero-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top: 14px}
.hero-mini{padding: 18px; border-radius: calc(var(--radius) + 6px); background: rgba(255,255,255,.03); border: 1px solid var(--line);}

/* Products cards */
.product{
  border-radius: var(--radius);
  background: rgba(255,255,255,.03);
  border: 1px solid var(--line);
  overflow:hidden;
  transition: transform .12s ease, border-color .2s ease, background .2s ease;
}
.product:hover{transform: translateY(-2px); border-color: rgba(203,92,237,.35); background: rgba(255,255,255,.045);}
.product .img{
  aspect-ratio: 4/5;
  background: linear-gradient(180deg, rgba(203,92,237,.10), rgba(255,255,255,.02));
  display:flex; align-items:center; justify-content:center;
}
.product .img img{width:100%; height:100%; object-fit:cover}
.product .body{padding: 14px}
.product .title{font-weight:900; letter-spacing:.01em}
.price-row{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-top:8px}
.price{font-weight:900}
.price s{font-weight:600; opacity:.65; margin-right:6px}
.pill{
  display:inline-flex; align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  border:1px solid rgba(203,92,237,.35);
  background: rgba(203,92,237,.12);
  color: var(--text);
  font-weight: 900;
  font-size: .80rem;
}

/* Footer */
.footer{margin-top: 32px; border-top: 1px solid var(--line); padding: 22px 0 90px; color: var(--muted);}

/* =========================================================
   MOBILE APP SHELL (<= 880px) — DARK LUXE + LOGO BLANC + PLUS GROS
   ========================================================= */
@media (max-width: 880px){
  body{padding-top: var(--mobileHeaderH); padding-bottom: var(--tabbarH)}
  .header{display:none}
  .container{padding:14px}

  .app-header{display:block}
  .tabbar{display:grid}

  /* HEADER MOBILE NOIR LUXE */
  .app-header{
    position: fixed; top:0; left:0; right:0;
    z-index: 60;
    background: rgba(15,15,16,.92);
    backdrop-filter: blur(14px);
    color:#fff;
    border-bottom: 1px solid rgba(234,234,234,.12);
    padding: 10px 12px;
  }

  .app-row{
    position: relative;
    height: 44px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }

  .app-left, .app-right{
    display:flex; align-items:center; gap:10px;
  }

  .icon-btn{
    width: 44px; height:44px;
    border-radius: 999px;
    border:1px solid rgba(234,234,234,.14);
    background: rgba(255,255,255,.06);
    display:flex; align-items:center; justify-content:center;
    color:#fff;
  }
  .icon-btn:active{transform: translateY(1px)}

  /* LOGO CENTRÉ FLOTTANT — BLANC + PLUS GROS */
  .app-logo-float{
    position:absolute;
    left:50%;
    transform: translateX(-50%);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .app-logo-float img{
    height: 46px; /* ✅ plus gros */
    width:auto;
    /* ✅ force “blanc” même si logo-dark.png */
    filter: brightness(0) invert(1) drop-shadow(0 12px 22px rgba(0,0,0,.55));
  }

  /* Badge panier */
  .app-cart{position:relative}
  .app-cart .cart-badge{
    position:absolute; top:-6px; right:-6px;
    border: 2px solid rgba(15,15,16,.92);
    color:#1E1E1E;
    background: var(--accent);
  }

  /* SEARCH OVERLAY (dark) */
  .search-overlay{
    display:none;
    position: fixed;
    top: var(--mobileHeaderH);
    left:0; right:0;
    z-index: 65;
    background: rgba(15,15,16,.92);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(234,234,234,.12);
    padding: 12px;
  }
  .search-overlay[aria-hidden="false"]{display:block}
  .search-row{
    display:flex;
    gap:10px;
    align-items:center;
  }
  .search-overlay input{
    background: rgba(255,255,255,.06);
    color:#fff;
    border:1px solid rgba(234,234,234,.14);
    border-radius: 999px;
    height: 46px;
    padding: 0 16px;
  }
  .search-overlay input::placeholder{color: rgba(234,234,234,.60);}

  /* Drawer mobile (dark luxe) */
  .drawer{
    display:none;
    position: fixed;
    inset: 0;
    z-index: 80;
  }
  .drawer[aria-hidden="false"]{display:block}
  .drawer .backdrop{position:absolute; inset:0; background: rgba(0,0,0,.60);}
  .drawer .panel{
    position:absolute; top:0; left:0; bottom:0;
    width: 84%; max-width: 340px;
    background: rgba(21,21,23,.96);
    color: var(--text);
    border-right: 1px solid rgba(234,234,234,.12);
    box-shadow: 0 20px 60px rgba(0,0,0,.45);
    padding: 14px;
    overflow:auto;
  }

  .drawer-top{
    display:flex; align-items:center; justify-content:space-between;
    gap:10px;
    margin-bottom: 10px;
  }
  .drawer-brand{
    display:flex; align-items:center; gap:10px;
  }
  .drawer-brand img{
    height:30px; width:auto; border-radius:10px;
    filter: brightness(0) invert(1);
  }
  .drawer-name{font-weight:900; letter-spacing:.02em;}
  .drawer .section{
    margin-top: 10px;
    color: rgba(234,234,234,.70);
    font-size:.85rem;
    padding: 10px 6px;
  }
  .drawer .panel a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding: 12px 12px;
    border-radius: 16px;
    border: 1px solid rgba(234,234,234,.12);
    margin-bottom: 10px;
    background: rgba(255,255,255,.04);
  }
  .drawer .panel a .mini{
    font-size:.85rem;
    color: rgba(234,234,234,.70);
  }

  /* Tab bar */
  .tabbar{
    position: fixed;
    left: 10px; right: 10px; bottom: 10px;
    z-index: 70;
    background: rgba(21,21,23,.92);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(234,234,234,.14);
    border-radius: 22px;
    box-shadow: var(--shadow2);
    padding: 8px 6px;
    grid-template-columns: repeat(5, 1fr);
    gap: 2px;
  }
  .tabbar a{
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap: 5px;
    padding: 10px 0;
    border-radius: 18px;
    color: rgba(234,234,234,.72);
    font-size: 12px;
    letter-spacing: .02em;
  }
  .tabbar a.active{
    color: var(--text);
    background: rgba(203,92,237,.12);
    border:1px solid rgba(203,92,237,.22);
  }
  .tabbar svg{width:20px; height:20px}

  .hero-wrap{grid-template-columns:1fr}
}