

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@600;700;800;900&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --noir: #0a0a0a;
  --noir-soft: #161616;
  --blanc: #ffffff;
  --rouge: #e31b23;
  --rouge-dark: #b8151b;
  --gris: #6e6e73;
  --gris-clair: #d8d8d6;
  --fond: #f5f5f3;
  --fond-carte: #ffffff;
  --ligne: #e4e4e1;
  --texte: var(--noir);

  --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-ui: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  --container: 1280px;
  --radius: 2px;
  --transition: 180ms cubic-bezier(.4,0,.2,1);
  --transition-theme: 320ms cubic-bezier(.4,0,.2,1);
  --ease-pro: cubic-bezier(.16,1,.3,1);
}

[data-theme="dark"]{
  --gris: #9a9aa3;
  --gris-clair: #3a3a3f;
  --fond: #0e0e10;
  --fond-carte: #1a1a1d;
  --ligne: #2c2c31;
  --texte: #f5f5f3;
}
html{ transition: background-color var(--transition-theme); }
body,
.header, .footer, .brand-strip, .product-card, .cat-card, .filters, .summary-card,
.auth-grid, .pd-gallery__main, .mobile-menu__panel, .header__search, .size-chip,
.page-btn, .logo-grid a, .field input, .promo-row input, .toolbar select,
.color-dot, .product-card__add, .icon-btn, .search-suggestions, .mini-cart{
  transition: background-color var(--transition-theme), color var(--transition-theme), border-color var(--transition-theme), box-shadow var(--transition-theme);
}
[data-theme="dark"] .logo-grid img{ filter: invert(1) grayscale(1); opacity:.75; }
[data-theme="dark"] .logo-grid a:hover img{ filter: invert(1); opacity:1; }
[data-theme="dark"] .product-card__fav{ background: rgba(20,20,22,.85); }
[data-theme="dark"] .skeleton{ background: linear-gradient(90deg, #1c1c1f 25%, #262629 37%, #1c1c1f 63%); background-size:400% 100%; }
[data-theme="dark"] .form-msg.is-error{ background:#3a1a1a; color:#ff9c96; }
[data-theme="dark"] .form-msg.is-success{ background:#123a24; color:#7be3a8; }
[data-theme="dark"] .header__search{ background: var(--fond-carte); }
[data-theme="dark"] .cat-card img, [data-theme="dark"] .editorial-tile img{ filter: brightness(.85); }

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  font-family: var(--font-ui);
  color: var(--texte);
  background: var(--fond);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}
html, body{ overflow-x: hidden; width: 100%; touch-action: pan-x pan-y; }
img{ max-width: 100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul{ list-style: none; margin:0; padding:0; }
button{
  font-family: inherit; cursor: pointer;
  background: none; border: 0; margin: 0; padding: 0; color: inherit;
  -webkit-appearance: none; appearance: none;
  -webkit-tap-highlight-color: transparent;
}
input, select{ font-family: inherit; }
input, select, textarea, button{ max-width: 100%; }

:focus-visible{
  outline: 2px solid var(--rouge);
  outline-offset: 2px;
}

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
}

h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.05;
  margin: 0;
}

.section{ padding: 88px 0; }
.section--tight{ padding: 56px 0; }
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom: 32px;
  gap: 24px;
}
.section-head h2{ font-size: clamp(28px, 3vw, 38px); }
.section-link{
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
  border-bottom: 1px solid var(--texte);
  padding-bottom: 2px;
  transition: color var(--transition), border-color var(--transition);
}
.section-link:hover{ color: var(--rouge); border-color: var(--rouge); }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 15px 30px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: transform var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
  white-space: nowrap;
  min-width: 0;
  max-width: 100%;
}
.btn:active{ transform: scale(.97); }
.btn--primary{ background: var(--noir); color: var(--blanc); }
.btn--primary:hover{ background: var(--rouge); }
.btn--light{ background: var(--blanc); color: var(--noir); }
.btn--light:hover{ background: var(--gris-clair); }
.btn--outline{ background: transparent; color: var(--texte); border-color: var(--texte); }
.btn--outline:hover{ background: var(--noir); color: var(--blanc); }
.btn--block{ width: 100%; }
.btn:disabled{ opacity:.45; cursor:not-allowed; }

.header{
  position: sticky; top:0; z-index: 100;
  background: var(--fond-carte);
  border-bottom: 1px solid var(--ligne);
}
.header__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 32px;
  padding: 16px 32px;
  max-width: var(--container);
  margin: 0 auto;
  flex-wrap: nowrap;
}
.brand{ min-width:0; }
.brand span, .brand{ overflow:hidden; }
.header__actions{ flex-shrink:0; }
.brand{
  display:flex; align-items:center; gap:10px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  letter-spacing: -0.01em;
}
.brand img{ height: 26px; width:auto; }

.nav-main{ display:flex; align-items:center; gap: 30px; }
.nav-main a{
  font-size: 14px; font-weight: 600;
  padding: 6px 0;
  border-bottom: 2px solid transparent;
  transition: border-color var(--transition), color var(--transition);
}
.nav-main a:hover, .nav-main a.is-active{ border-color: var(--rouge); }

.header__search{
  flex:1; max-width: 360px;
  display:flex; align-items:center; gap:10px;
  background: var(--fond);
  border: 1px solid var(--ligne);
  border-radius: 999px;
  padding: 10px 16px;
}
.header__search input{
  border:0; background:transparent; outline:none;
  width:100%; font-size: 14px;
}
.header__actions{ display:flex; align-items:center; gap: 20px; }
.mobile-search-toggle{ display:none; }
.icon-btn{ position:relative; display:flex; align-items:center; justify-content:center; padding:6px; }
.icon-btn svg{ width:22px; height:22px; }
.badge{
  position:absolute; top:-6px; right:-8px;
  background: var(--rouge); color:#fff;
  font-size: 10px; font-weight:700;
  min-width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  padding: 0 3px;
}
.nav-toggle{ display:none; background:none; border:0; padding:4px; }

.bottom-nav{
  display:none;
  position:fixed; left:0; right:0; bottom:0; z-index:170;
  background: var(--fond-carte); border-top:1px solid var(--ligne);
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  box-shadow: 0 -8px 24px -16px rgba(0,0,0,.25);
}
.bottom-nav__item{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; padding:6px 2px; color: var(--gris); text-decoration:none;
  background:none; border:0; font-size:10.5px; font-weight:600; font-family:inherit;
  position:relative; cursor:pointer;
}
.bottom-nav__item svg{ width:22px; height:22px; }
.bottom-nav__item.is-active{ color: var(--rouge); }

.hero{
  position:relative;
  min-height: 640px;
  display:flex; align-items:center;
  color: var(--blanc);
  background-color: var(--noir);
  overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__slide{
  position:absolute; inset:0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1400ms ease;
}
.hero__slide.is-active{ opacity: 1; }
.hero::before{
  content:'';
  position:absolute; inset:0;
  z-index:1;
  background: linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.45) 42%, rgba(0,0,0,0) 68%);
}
.hero__content{
  position:relative; z-index:2;
  max-width: 620px;
  padding: 90px 32px 60px;
}
.hero__dots{
  position:absolute; z-index:2; left:50%; bottom:22px; transform:translateX(-50%);
  display:flex; gap:9px;
}
.hero__dot{
  width:9px; height:9px; border-radius:50%;
  background: rgba(255,255,255,.4);
  border: 0; padding:0; cursor:pointer;
  transition: background 200ms ease, transform 200ms ease;
}
.hero__dot.is-active{ background:#fff; transform: scale(1.25); }
.hero__eyebrow{
  font-size: 13px; font-weight:600; letter-spacing: .04em;
  color: var(--gris-clair);
  margin-bottom: 18px;
}
.hero__title{
  font-size: clamp(38px, 5.4vw, 64px);
  margin-bottom: 6px;
}
.hero__subtitle{
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(18px, 2vw, 24px);
  color: var(--gris-clair);
  margin-bottom: 22px;
}
.hero__desc{
  font-size: 16px;
  color: rgba(255,255,255,.85);
  max-width: 460px;
  margin-bottom: 34px;
}
.hero__brands{
  display:flex; align-items:center; gap: 26px;
  margin-top: 40px;
  flex-wrap: wrap;
}
.hero__brands img{ height: 20px; width:auto; filter: brightness(0) invert(1); opacity:.9; }

.brand-strip{
  background: var(--fond-carte);
  border-bottom: 1px solid var(--ligne);
  padding: 22px 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
}
.brand-strip__track{
  display:flex; gap: 60px; align-items:center;
  width: max-content;
  animation: marquee 22s linear infinite;
}
.brand-strip:hover .brand-strip__track{ animation-play-state: paused; }
.brand-strip img{ height: 22px; width:auto; opacity:.55; filter: grayscale(1); transition: opacity var(--transition); }
.brand-strip img:hover{ opacity:1; filter:none; }
.brand-strip__name{ font-family: var(--font-display); font-weight:800; font-size:16px; color: var(--texte); opacity:.55; white-space:nowrap; }
@keyframes marquee{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

.cat-grid{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.cat-card{
  background: var(--fond-carte);
  border: 1px solid var(--ligne);
  border-radius: 4px;
  padding: 22px 16px 18px;
  text-align:center;
  transition: border-color var(--transition), transform var(--transition);
}
.cat-card:hover{ border-color: var(--texte); transform: translateY(-3px); }
.cat-card img{ height: 56px; margin: 0 auto 14px; object-fit:contain; }
.cat-card__title{ font-weight:700; font-size:14px; }
.cat-card__sub{ font-size:12px; color: var(--gris); margin-top:2px; }

.product-grid{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}
.product-grid--4{ grid-template-columns: repeat(4,1fr); }
.product-card{
  background: var(--fond-carte);
  border: 1px solid var(--ligne);
  border-radius: 4px;
  overflow:hidden;
  transition: box-shadow var(--transition), border-color var(--transition);
  position: relative;
  display:flex; flex-direction:column;
}
.product-card:hover{ border-color: var(--texte); box-shadow: 0 14px 30px -18px rgba(0,0,0,.35); }
.product-card > a{ display:flex; flex-direction:column; flex:1; }
.product-card__media{
  position:relative;
  aspect-ratio: 1/1;
  background: var(--fond);
  overflow:hidden;
}
.product-card__media img{
  width:100%; height:100%; object-fit: cover;
  transition: transform 400ms ease;
}
.product-card:hover .product-card__media img{ transform: scale(1.05); }
.product-card__fav{
  position:absolute; top:10px; right:10px;
  width:32px; height:32px; border-radius:50%;
  background: rgba(255,255,255,.9);
  display:flex; align-items:center; justify-content:center;
  border: 1px solid var(--ligne);
  transition: background var(--transition), color var(--transition);
}
.product-card__fav svg{ width:16px; height:16px; }
.product-card__fav:hover{ color: var(--rouge); }
.product-card__tag{
  position:absolute; top:10px; left:10px;
  background: var(--rouge); color:#fff;
  font-size: 11px; font-weight:700;
  padding: 4px 9px; border-radius: 999px;
  letter-spacing: .02em;
}
.product-card__body{ padding: 14px 16px 16px; display:flex; flex-direction:column; gap:4px; flex:1; }
.product-card__brand{ font-size: 11px; color: var(--gris); text-transform: uppercase; letter-spacing:.04em; }
.product-card__name{ font-weight:600; font-size: 14.5px; }
.product-card__price{ font-weight:800; font-family: var(--font-display); font-size: 15px; margin-top:6px; }
.product-card__rating{ font-size: 12px; color: var(--gris); display:flex; align-items:center; gap:4px; }
.product-card__rating svg{ width:13px; height:13px; color:#f5a524; }
.product-card__add{
  margin-top: 10px;
  font-size: 13px; font-weight:700;
  padding: 10px; border-radius: 999px;
  border: 1px solid var(--noir);
  background: var(--blanc);
  color: var(--noir);
  text-align:center;
  transition: background var(--transition), color var(--transition);
}
.product-card__add:hover{ background: var(--noir); color: var(--blanc); }

.editorial-grid{
  display:grid; grid-template-columns: repeat(3,1fr); gap: 16px;
}
.editorial-tile{
  position:relative; border-radius:8px; overflow:hidden;
  aspect-ratio: 4/3.1;
  color:#fff;
  box-shadow: 0 10px 26px -18px rgba(0,0,0,.35);
  transition: box-shadow 450ms var(--ease-pro), transform 450ms var(--ease-pro);
}
.editorial-tile:hover{ transform: translateY(-8px); box-shadow: 0 30px 55px -20px rgba(0,0,0,.45); }
.editorial-tile img{
  width:100%; height:100%; object-fit:cover;
  transition: transform 900ms var(--ease-pro), filter 450ms ease;
}
.editorial-tile:hover img{ transform: scale(1.1); filter: brightness(.82) saturate(1.1); }
.editorial-tile::after{
  content:''; position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.78) 100%);
  transition: opacity 450ms ease;
}
.editorial-tile:hover::after{ opacity:.9; }
.editorial-tile::before{
  content:''; position:absolute; top:0; left:-65%; width:35%; height:100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-20deg);
  z-index:2; pointer-events:none;
  transition: left 900ms var(--ease-pro);
}
.editorial-tile:hover::before{ left:135%; }
.editorial-tile__body{ position:absolute; left:22px; right:22px; bottom:20px; z-index:3; transition: transform 450ms var(--ease-pro); }
.editorial-tile:hover .editorial-tile__body{ transform: translateY(-6px); }
.editorial-tile__body h3{ font-size:22px; margin-bottom:4px; }
.editorial-tile__body p{ font-size:13px; color: rgba(255,255,255,.8); margin: 0 0 10px; }
.editorial-tile__body a{ font-size:13px; font-weight:700; border-bottom:1px solid #fff; padding-bottom:2px; display:inline-flex; align-items:center; gap:6px; }
.editorial-tile__body a .arrow-move{ display:inline-block; transition: transform 380ms var(--ease-pro); }
.editorial-tile:hover .editorial-tile__body a .arrow-move{ transform: translateX(7px); }

.logo-grid{
  display:grid; grid-template-columns: repeat(8,1fr); gap: 14px;
  align-items:center;
}
.logo-grid a{
  border:1px solid var(--ligne); border-radius:4px;
  display:flex; align-items:center; justify-content:center;
  height: 68px; background: var(--fond-carte); padding: 12px;
  transition: border-color var(--transition);
}
.logo-grid a:hover{ border-color: var(--texte); }
.logo-grid img{ max-height: 26px; max-width:80%; filter: grayscale(1); opacity:.7; }
.logo-grid a:hover img{ filter:none; opacity:1; }

.newsletter{
  background: var(--noir); color:#fff;
  border-radius: 4px;
  padding: 48px 56px;
  display:flex; align-items:center; justify-content:space-between; gap: 32px;
  flex-wrap:wrap;
}
.newsletter h2{ font-size: 26px; margin-bottom:6px; }
.newsletter p{ color: rgba(255,255,255,.65); font-size:14px; margin:0; }
.newsletter form{ display:flex; gap:10px; min-width: 360px; flex:1; max-width: 460px; }
.newsletter input{
  flex:1; padding: 14px 18px; border-radius: 999px; border:0;
  font-size:14px; outline:none;
}

.footer{ background: var(--noir); color: rgba(255,255,255,.7); padding-top: 64px; }
.footer .container{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; }
.footer h4{ color:#fff; font-size:13px; letter-spacing:.03em; margin-bottom:16px; }
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.footer-brand img{ height:24px; }
.footer-brand span{ font-family: var(--font-display); font-weight:800; color:#fff; font-size:17px; }
.footer p{ font-size: 13px; line-height:1.7; max-width: 280px; }
.footer ul li{ margin-bottom: 10px; font-size:13px; }
.footer ul a:hover{ color:#fff; }
.footer-social{ display:flex; gap:12px; margin-top:18px; }
.footer-social a{
  width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center;
}
.footer-social svg{ width:15px; height:15px; }
.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 20px 0;
  font-size:12px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px;
}
.footer-pay{ display:flex; gap:10px; opacity:.7; }
.footer-pay svg{ height: 18px; width:auto; }

.breadcrumb{ font-size:13px; color:var(--gris); padding: 20px 0 0; }
.breadcrumb a:hover{ color: var(--texte); }
.breadcrumb .sep{ margin: 0 6px; }

.shop-header{ padding: 28px 0 20px; }
.shop-header h1{ font-size: clamp(26px,3vw,34px); }
.shop-layout{ display:grid; grid-template-columns: 260px 1fr; gap: 36px; align-items:flex-start; }
.filters{ background: var(--fond-carte); border:1px solid var(--ligne); border-radius:4px; padding: 22px; position:sticky; top:96px; }
.filters h3{ font-size:14px; font-weight:700; margin: 18px 0 12px; }
.filters h3:first-child{ margin-top:0; }
.filter-group{ border-bottom: 1px solid var(--ligne); padding-bottom: 16px; margin-bottom: 4px; }
.filter-group:last-child{ border-bottom:0; }
.checkbox-row{ display:flex; align-items:center; gap:10px; font-size:13.5px; padding:5px 0; cursor:pointer; }
.checkbox-row input{ accent-color: var(--texte); width:15px; height:15px; }
.size-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:8px; }
.size-chip{
  border:1px solid var(--ligne); border-radius:4px; text-align:center;
  padding: 8px 0; font-size:13px; cursor:pointer; background: var(--fond-carte);
  transition: all var(--transition);
}
.size-chip:hover{ border-color: var(--texte); }
.size-chip.is-selected{ background: var(--noir); color:#fff; border-color: var(--noir); }
.color-dots{ display:flex; gap:10px; flex-wrap:wrap; }
.color-dot{ width:24px; height:24px; border-radius:50%; border:2px solid var(--fond-carte); box-shadow: 0 0 0 1px var(--ligne); cursor:pointer; }
.color-dot.is-selected{ box-shadow: 0 0 0 2px var(--texte); }
.range-row{ display:flex; justify-content:space-between; font-size:12px; color:var(--gris); margin-top:6px; }

.toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 18px; }
.toolbar select{ border:1px solid var(--ligne); border-radius:4px; padding:9px 12px; font-size:13px; background: var(--fond-carte); color: var(--texte); }
.result-count{ font-size:13px; color:var(--gris); }
.pagination{ display:flex; justify-content:center; gap:8px; margin-top: 40px; }
.page-btn{
  width:36px; height:36px; border-radius:50%; border:1px solid var(--ligne);
  display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:600; background: var(--fond-carte);
}
.page-btn.is-active{ background: var(--noir); color:#fff; border-color: var(--noir); }

.empty-state{ text-align:center; padding: 80px 20px; color: var(--gris); }
.empty-state h3{ color: var(--texte); margin-bottom:8px; }
.skeleton{ background: linear-gradient(90deg, #ececea 25%, #f6f6f4 37%, #ececea 63%); background-size:400% 100%; animation: sk 1.4s ease infinite; border-radius:4px; }
@keyframes sk{ 0%{background-position:100% 50%} 100%{background-position:0 50%} }

.pd-layout{ display:grid; grid-template-columns: 1fr 460px; gap: 56px; padding: 28px 0 80px; align-items:flex-start; }
.pd-gallery__main{ background: var(--fond-carte); border:1px solid var(--ligne); border-radius:4px; aspect-ratio:1/1; overflow:hidden; margin-bottom:14px; }
.pd-gallery__main img{ width:100%; height:100%; object-fit:cover; }
.pd-thumbs{ display:flex; gap:10px; }
.pd-thumbs img{ width:76px; height:76px; object-fit:cover; border-radius:4px; border:1px solid var(--ligne); cursor:pointer; }
.pd-thumbs img.is-active{ border-color: var(--texte); border-width:2px; }
.pd-info__brand{ font-size:13px; color: var(--gris); text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.pd-info h1{ font-size: 28px; margin-bottom:8px; }
.pd-info__rating{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--gris); margin-bottom:18px; }
.pd-info__price{ font-family: var(--font-display); font-weight:800; font-size:28px; margin-bottom:6px; }
.pd-info__stock{ font-size:13px; color:#188544; font-weight:600; margin-bottom:22px; }
.pd-block{ margin-bottom: 22px; }
.pd-block label{ font-size:13px; font-weight:700; display:block; margin-bottom:10px; }
.qty-row{ display:flex; align-items:center; gap:16px; }
.qty-control{ display:flex; align-items:center; border:1px solid var(--ligne); border-radius:999px; }
.qty-control button{ width:38px; height:38px; background:none; border:0; font-size:16px; }
.qty-control span{ min-width: 30px; text-align:center; font-weight:600; }
.pd-cta{ display:flex; gap:12px; margin-top: 6px; }
.pd-trust{ display:flex; gap:22px; margin-top:26px; padding-top:22px; border-top:1px solid var(--ligne); flex-wrap:wrap; }
.pd-trust div{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--gris); }
.pd-trust svg{ width:18px; height:18px; color: var(--texte); }

.tabs{ display:flex; gap: 28px; border-bottom:1px solid var(--ligne); margin-top:60px; }
.tab-btn{ background:none; border:0; padding: 14px 2px; font-weight:700; font-size:14px; color:var(--gris); border-bottom:2px solid transparent; margin-bottom:-1px; }
.tab-btn.is-active{ color: var(--texte); border-color: var(--texte); }
.tab-panel{ padding: 28px 0; max-width: 760px; display:none; }
.tab-panel.is-active{ display:block; }
.tab-panel ul{ list-style:disc; padding-left:20px; }
.tab-panel li{ margin-bottom:6px; }

.cart-layout{ display:grid; grid-template-columns: 1fr 380px; gap: 40px; align-items:flex-start; padding: 32px 0 80px; }
.cart-item{ display:grid; grid-template-columns: 96px 1fr auto; gap:18px; align-items:center; padding: 20px 0; border-bottom:1px solid var(--ligne); }
.cart-item img{ width:96px; height:96px; object-fit:cover; border-radius:4px; background:var(--fond); }
.cart-item__name{ font-weight:700; font-size:15px; }
.cart-item__meta{ font-size:12.5px; color:var(--gris); margin: 4px 0 10px; }
.cart-item__price{ font-family: var(--font-display); font-weight:800; }
.cart-item__remove{ font-size:12.5px; color: var(--rouge); font-weight:600; margin-top:10px; display:inline-block; }
.summary-card{ background: var(--fond-carte); border:1px solid var(--ligne); border-radius:4px; padding:26px; position:sticky; top:96px; }
.summary-card h3{ font-size:16px; margin-bottom:18px; }
.summary-row{ display:flex; justify-content:space-between; font-size:14px; padding: 9px 0; color: var(--gris); }
.summary-row.total{ color: var(--texte); font-weight:800; font-size:16px; border-top:1px solid var(--ligne); margin-top:8px; padding-top:16px; }
.promo-row{ display:flex; gap:8px; margin: 16px 0; }
.promo-row input{ flex:1; padding:11px 14px; border:1px solid var(--ligne); border-radius:999px; font-size:13px; background: var(--fond-carte); color: var(--texte); }

.auth-wrap{ max-width: 940px; margin: 60px auto 90px; padding: 0 32px; }
.auth-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:0; border:1px solid var(--ligne); border-radius:6px; overflow:hidden; background: var(--fond-carte); }
.auth-panel{ padding: 48px 44px; }
.auth-panel + .auth-panel{ border-left:1px solid var(--ligne); }
.auth-panel h2{ font-size:22px; margin-bottom:6px; }
.auth-panel p.sub{ font-size:13.5px; color:var(--gris); margin: 0 0 26px; }
.field{ margin-bottom: 16px; }
.field label{ display:block; font-size:12.5px; font-weight:700; margin-bottom:7px; }
.field input{ width:100%; padding: 12px 14px; border:1px solid var(--ligne); border-radius:4px; font-size:14px; outline:none; background: var(--fond-carte); color: var(--texte); transition: border-color var(--transition); }
.field input:focus{ border-color: var(--texte); }
.field-row{ display:flex; align-items:center; justify-content:space-between; font-size:12.5px; margin-bottom:20px; }
.field-row a{ color: var(--gris); border-bottom:1px solid var(--gris-clair); }
.auth-foot{ font-size:13px; color: var(--gris); margin-top:18px; }
.auth-foot a{ font-weight:700; color: var(--texte); border-bottom: 1px solid var(--texte); }
.form-msg{ font-size:13px; padding:10px 12px; border-radius:4px; margin-bottom:14px; display:none; }
.form-msg.is-error{ display:block; background:#fdecea; color:#a12622; }
.form-msg.is-success{ display:block; background:#e9f7ef; color:#1b7a44; }

.toast{
  position: fixed; bottom: 26px; left: 50%; transform: translateX(-50%) translateY(20px);
  background: var(--noir); color:#fff; padding: 14px 22px; border-radius: 999px;
  font-size:13.5px; font-weight:600; opacity:0; pointer-events:none;
  transition: opacity 220ms ease, transform 220ms ease;
  z-index: 999; display:flex; align-items:center; gap:10px;
}
.toast.is-visible{ opacity:1; transform: translateX(-50%) translateY(0); pointer-events:auto; }
.toast svg{ width:16px; height:16px; color:#4ade80; }

.mobile-menu{
  position: fixed; inset:0; z-index: 200;
  background: rgba(0,0,0,.5);
  display:none;
}
.mobile-menu.is-open{ display:block; }
.mobile-menu__panel{
  background: var(--fond-carte); width: 82%; max-width:340px; height:100%;
  padding: 24px; overflow-y:auto;
}
.mobile-menu__panel a{ display:block; padding: 14px 0; font-weight:600; border-bottom:1px solid var(--ligne); }
.mobile-menu__close{ background:none; border:0; font-size:22px; margin-bottom: 20px; }

@media (max-width: 1100px){
  .product-grid, .product-grid--4{ grid-template-columns: repeat(3,1fr); }
  .cat-grid{ grid-template-columns: repeat(3,1fr); }
  .logo-grid{ grid-template-columns: repeat(4,1fr); }
  .pd-layout{ grid-template-columns: 1fr; }
  .cart-layout{ grid-template-columns: 1fr; }
}
@media (max-width: 860px){
  .header__bar{ padding: 14px 20px; gap: 14px; }
  .brand{ font-size: 16px; gap: 8px; }
  .header__actions{ gap: 12px; }
  .nav-main{ display:none; }
  .nav-toggle{ display:none; }
  .header__actions [data-fav-toggle], .header__actions [data-cart-toggle]{ display:none; }
  .bottom-nav{ display:flex; }
  body{ padding-bottom: 58px; }
  .sticky-add-bar{ bottom: 58px; }
  .editorial-grid{ grid-template-columns: 1fr; }
  .shop-layout{ grid-template-columns: 1fr; }
  .filters{ position:static; }
  .footer .container{ grid-template-columns: 1fr; }
  .footer .container > div:not(:first-child){ display:none; }
  .auth-grid{ grid-template-columns: 1fr; }
  .auth-panel + .auth-panel{ border-left:0; border-top:1px solid var(--ligne); }

  .mobile-search-toggle{ display:flex; }
  .header__search{
    display:flex;
    position:absolute; left:0; right:0; top:100%;
    max-width:none; margin:0; border-radius:0;
    padding:14px 18px; border:0; border-bottom:1px solid var(--ligne);
    background: var(--fond-carte);
    transform: translateY(-10px); opacity:0; visibility:hidden; pointer-events:none;
    transition: transform 260ms var(--ease-pro), opacity 260ms ease, visibility 0s linear 260ms;
    z-index:110;
  }
  .header.is-search-open .header__search{
    transform: translateY(0); opacity:1; visibility:visible; pointer-events:auto;
    transition: transform 260ms var(--ease-pro), opacity 260ms ease, visibility 0s;
  }
  .header.is-search-open .search-suggestions{ position:fixed; left:18px; right:18px; top:auto; }
}
@media (max-width: 600px){
  .container{ padding: 0 18px; }
  .header__bar{ padding: 12px 14px; gap: 10px; }
  .brand{ font-size: 14px; }
  .brand img{ height: 22px; }
  .header__actions{ gap: 8px; }
  .product-grid, .product-grid--4{ grid-template-columns: repeat(2,1fr); }
  .cat-grid{ grid-template-columns: repeat(2,1fr); }
  .logo-grid{ grid-template-columns: repeat(3,1fr); }
  .newsletter{ flex-direction:column; align-items:flex-start; padding: 32px 24px; }
  .newsletter form{ min-width: 0; width:100%; }
  .footer .container{ grid-template-columns: 1fr; }
  .hero{ min-height: 480px; }
  .hero__content{ padding: 60px 20px 46px; }
  .hero__dots{ bottom: 14px; }
  input, select, textarea{ font-size: 16px !important; }

  .pd-thumbs{ overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
  .pd-thumbs img{ flex-shrink:0; }
  .pd-info h1{ font-size: 22px; }
  .cart-item{ grid-template-columns: 72px 1fr; gap:12px; }
  .cart-item img{ width:72px; height:72px; }
  .cart-item__price{ grid-column: 2; }
  .auth-panel{ padding: 32px 22px; }
  .editorial-tile__body h3{ font-size: 18px; }
  .pd-trust{ gap:14px; }
}
@media (max-width: 400px){
  .btn{ padding: 13px 18px; font-size: 13px; gap:6px; }
  .pd-cta{ gap:8px; }
  .hero__title{ font-size: clamp(30px, 8vw, 40px); }
  .newsletter h2{ font-size: 22px; }
}

.whatsapp-float{
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 58px;
  height: 58px;
  background: #25D366;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
  z-index: 150;
  transition: transform var(--transition), box-shadow var(--transition);
}
.whatsapp-float:hover{
  transform: scale(1.08);
  box-shadow: 0 8px 22px rgba(0,0,0,.32);
}
.whatsapp-float:active{ transform: scale(.96); }
@media (max-width: 860px){
  .whatsapp-float{ bottom: 74px; }
}
@media (max-width: 600px){
  .whatsapp-float{ right: 16px; bottom: 74px; width: 52px; height: 52px; }
  .whatsapp-float svg{ width: 26px; height: 26px; }
}

@keyframes fadeUpIn{
  from{ opacity:0; transform: translateY(28px); }
  to{ opacity:1; transform: translateY(0); }
}
@keyframes popIn{
  0%{ transform: scale(.6); opacity:0; }
  60%{ transform: scale(1.12); opacity:1; }
  100%{ transform: scale(1); }
}
@keyframes heartBeat{
  0%,100%{ transform: scale(1); }
  30%{ transform: scale(1.35); }
  55%{ transform: scale(.9); }
  75%{ transform: scale(1.15); }
}
@keyframes rippleAnim{
  from{ transform: scale(0); opacity:.45; }
  to{ transform: scale(1); opacity:0; }
}
@keyframes badgeBounce{
  0%{ transform: scale(1); }
  35%{ transform: scale(1.5); }
  60%{ transform: scale(.85); }
  100%{ transform: scale(1); }
}
@keyframes spinSlow{ from{ transform: rotate(0); } to{ transform: rotate(360deg); } }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }
@keyframes slideInRight{ from{ transform: translateX(100%); } to{ transform: translateX(0); } }
@keyframes attentionPulse{
  0%,100%{ box-shadow: 0 6px 18px rgba(0,0,0,.25), 0 0 0 0 rgba(37,211,102,.55); }
  50%{ box-shadow: 0 6px 18px rgba(0,0,0,.25), 0 0 0 12px rgba(37,211,102,0); }
}

.reveal{
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 700ms var(--ease-pro), transform 700ms var(--ease-pro);
  will-change: opacity, transform;
}
.reveal.is-visible{ opacity:1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .whatsapp-float, .btn__ripple, .scroll-top-btn{ animation:none !important; }
}

.btn{ position:relative; overflow:hidden; }
.btn:hover{ transform: translateY(-1px); }
.btn__ripple{
  position:absolute; border-radius:50%;
  background: rgba(255,255,255,.5);
  transform: scale(0);
  pointer-events:none;
  animation: rippleAnim 550ms ease-out;
}
.btn--outline .btn__ripple, .btn--light .btn__ripple{ background: rgba(0,0,0,.12); }

.product-card, .cat-card{ transition: box-shadow var(--transition-theme), border-color var(--transition-theme), transform 320ms var(--ease-pro); }
.product-card:hover{ transform: translateY(-6px); }
.cat-card:hover{ transform: translateY(-5px) scale(1.02); }
.product-card__media img{ transition: transform 550ms var(--ease-pro); }

.theme-toggle{ position:relative; overflow:visible; }
.theme-toggle svg{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); transition: opacity 320ms ease, transform 420ms var(--ease-pro); }
.theme-toggle .icon-sun{ opacity:1; transform:translate(-50%,-50%) rotate(0deg) scale(1); }
.theme-toggle .icon-moon{ opacity:0; transform:translate(-50%,-50%) rotate(-90deg) scale(.5); }
[data-theme="dark"] .theme-toggle .icon-sun{ opacity:0; transform:translate(-50%,-50%) rotate(90deg) scale(.5); }
[data-theme="dark"] .theme-toggle .icon-moon{ opacity:1; transform:translate(-50%,-50%) rotate(0deg) scale(1); }
.theme-toggle.is-flipping{ animation: popIn 420ms var(--ease-pro); }

.product-card__fav svg, .fav-btn svg{ transition: transform 220ms var(--ease-pro), color 220ms ease; }
.product-card__fav.is-active, .fav-btn.is-active{ color: var(--rouge); border-color: var(--rouge); }
.product-card__fav.is-active svg, .fav-btn.is-active svg{ fill: var(--rouge); stroke: var(--rouge); }
.product-card__fav.is-pulsing svg, .fav-btn.is-pulsing svg{ animation: heartBeat 380ms ease; }

.badge.is-bouncing{ animation: badgeBounce 420ms var(--ease-pro); }

.star-rating{ display:inline-flex; align-items:center; gap:1px; color:#f5a524; }
.star-rating svg{ width:14px; height:14px; }
.star-rating .star--empty{ color: var(--gris-clair); }

.stock-badge{
  display:inline-block; font-size:11px; font-weight:700; padding:3px 9px;
  border-radius:999px; letter-spacing:.02em;
}
.stock-badge--low{ background:#fff3d6; color:#8a5a00; }
.stock-badge--out{ background:#fdecea; color:#a12622; }
[data-theme="dark"] .stock-badge--low{ background:#3a2f0f; color:#ffcf6b; }
[data-theme="dark"] .stock-badge--out{ background:#3a1a1a; color:#ff9c96; }

.header__search{ position:relative; }
.search-suggestions{
  position:absolute; top: calc(100% + 10px); left:0; right:0;
  background: var(--fond-carte); border:1px solid var(--ligne); border-radius:8px;
  box-shadow: 0 20px 40px -20px rgba(0,0,0,.35);
  overflow:hidden; z-index: 120;
  opacity:0; transform: translateY(-6px); pointer-events:none;
  transition: opacity 220ms ease, transform 220ms ease;
}
.search-suggestions.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.search-suggestions__item{ display:flex; align-items:center; gap:12px; padding:10px 14px; transition: background var(--transition); }
.search-suggestions__item:hover{ background: var(--fond); }
.search-suggestions__item img{ width:40px; height:40px; object-fit:cover; border-radius:4px; flex-shrink:0; }
.search-suggestions__name{ font-size:13.5px; font-weight:600; }
.search-suggestions__price{ font-size:12px; color:var(--gris); }
.search-suggestions__all{ display:block; text-align:center; padding:12px; font-size:13px; font-weight:700; border-top:1px solid var(--ligne); }
.search-suggestions__all:hover{ background: var(--fond); }
.search-suggestions__empty{ padding:16px; font-size:13px; color:var(--gris); text-align:center; }

.scroll-top-btn{
  position:fixed; right:22px; bottom:90px; width:46px; height:46px;
  border-radius:50%; border:1px solid var(--ligne);
  background: var(--fond-carte); color: var(--texte);
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 20px -10px rgba(0,0,0,.3);
  opacity:0; transform: translateY(12px) scale(.8); pointer-events:none;
  transition: opacity 280ms var(--ease-pro), transform 280ms var(--ease-pro), background var(--transition-theme), border-color var(--transition-theme), color var(--transition-theme);
  z-index:150;
}
.scroll-top-btn.is-visible{ opacity:1; transform: translateY(0) scale(1); pointer-events:auto; }
.scroll-top-btn:hover{ border-color: var(--texte); transform: translateY(-3px) scale(1.05); }
@media (max-width:600px){ .scroll-top-btn{ right:16px; bottom:138px; width:42px; height:42px; } }

.mini-cart-overlay{
  position: fixed; inset:0; background: rgba(0,0,0,.5);
  z-index: 300; opacity:0; pointer-events:none; transition: opacity 280ms ease;
}
.upsell-overlay{
  position: fixed; inset:0; background: rgba(0,0,0,.55);
  z-index: 320; opacity:0; pointer-events:none; transition: opacity 240ms ease;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.upsell-overlay.is-open{ opacity:1; pointer-events:auto; }
.upsell-dialog{
  background: var(--fond-carte); border-radius:14px; width:min(380px, 100%);
  padding:26px 24px; text-align:center; transform: translateY(14px) scale(.97); opacity:0;
  transition: transform 280ms var(--ease-pro), opacity 280ms var(--ease-pro);
  box-shadow: 0 20px 60px -20px rgba(0,0,0,.4);
}
.upsell-overlay.is-open .upsell-dialog{ transform: translateY(0) scale(1); opacity:1; }
.upsell-dialog h3{ font-size:17px; margin:0 0 8px; }
.upsell-dialog p{ font-size:13.5px; color: var(--gris); margin:0 0 20px; }
.upsell-dialog .btn{ width:100%; }
.upsell-dialog .btn + .btn{ margin-top:10px; }
.mini-cart-overlay.is-open{ opacity:1; pointer-events:auto; }
.mini-cart{
  position:fixed; top:0; right:0; height:100%; width:min(400px, 92vw);
  background: var(--fond-carte); z-index:301;
  display:flex; flex-direction:column;
  transform: translateX(100%);
  transition: transform 380ms var(--ease-pro), background var(--transition-theme);
  box-shadow: -20px 0 50px -20px rgba(0,0,0,.4);
}
.mini-cart.is-open{ transform: translateX(0); }
.mini-cart__head{ display:flex; align-items:center; justify-content:space-between; padding:22px 22px 14px; border-bottom:1px solid var(--ligne); }
.mini-cart__close{ background:none; border:0; font-size:26px; line-height:1; color: var(--texte); }
.mini-cart__items{ flex:1; overflow-y:auto; padding: 10px 22px; }
.mini-cart__item{ display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--ligne); animation: fadeUpIn 320ms var(--ease-pro); }
.mini-cart__item img{ width:56px; height:56px; object-fit:cover; border-radius:4px; background: var(--fond); flex-shrink:0; }
.mini-cart__item-body{ flex:1; min-width:0; }
.mini-cart__item-name{ font-size:13.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mini-cart__item-meta{ font-size:12px; color:var(--gris); margin-top:2px; }
.mini-cart__item-price{ font-size:13px; font-weight:700; white-space:nowrap; }
.mini-cart__foot{ padding: 16px 22px 24px; border-top:1px solid var(--ligne); }

.whatsapp-float{ animation: attentionPulse 2.8s ease-in-out infinite; }
.whatsapp-float:hover{ animation-play-state: paused; }

.sticky-add-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:140;
  background: var(--fond-carte); border-top:1px solid var(--ligne);
  padding: 12px 20px; display:flex; align-items:center; gap:16px;
  transform: translateY(100%); transition: transform 320ms var(--ease-pro), background var(--transition-theme), border-color var(--transition-theme);
  box-shadow: 0 -10px 30px -20px rgba(0,0,0,.3);
}
.sticky-add-bar.is-visible{ transform: translateY(0); }
.sticky-add-bar img{ width:44px; height:44px; object-fit:cover; border-radius:4px; flex-shrink:0; }
.sticky-add-bar__info{ flex:1; min-width:0; }
.sticky-add-bar__name{ font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sticky-add-bar__price{ font-size:13px; font-weight:800; color:var(--gris); }
@media (max-width:600px){ .sticky-add-bar__info{ display:none; } }

.skeleton{ transition: background var(--transition-theme); }

.pay-block{ margin-top:18px; padding-top:16px; border-top:1px solid var(--ligne); }
.pay-block__label{ display:block; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color: var(--gris); margin-bottom:10px; }
.pay-option{
  display:flex; align-items:flex-start; gap:10px;
  padding:12px; border:1px solid var(--ligne); border-radius:8px;
  margin-bottom:8px; cursor:pointer;
  transition: border-color var(--transition), background var(--transition-theme);
}
.pay-option:hover{ border-color: var(--texte); }
.pay-option input[type="radio"]{ margin-top:3px; accent-color: var(--texte); flex-shrink:0; }
.pay-option:has(input:checked){ border-color: var(--texte); background: var(--fond); }
.pay-option span{ display:flex; flex-direction:column; gap:2px; }
.pay-option strong{ font-size:13.5px; }
.pay-option small{ font-size:12px; color: var(--gris); }
.pay-block select{
  width:100%; padding:11px 14px; border:1px solid var(--ligne); border-radius:8px;
  font-size:13.5px; background: var(--fond-carte); color: var(--texte);
}
.pay-note{
  margin-top:10px; padding:12px 14px; border-radius:8px;
  background:#fff3d6; color:#8a5a00; font-size:12.5px; line-height:1.5;
}
[data-theme="dark"] .pay-note{ background:#3a2f0f; color:#ffcf6b; }

.promo-flash-banner{
  position: relative; z-index: 120;
  background: var(--rouge); color: #fff;
  text-align: center; font-size: 13.5px; font-weight: 700;
  padding: 10px 40px 10px 16px;
  animation: fadeIn 320ms ease;
}
.promo-flash-banner button{
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  background: none; border: 0; color: #fff; font-size: 20px; line-height: 1; cursor: pointer; opacity: .85;
}
.promo-flash-banner button:hover{ opacity: 1; }

/* ===== Page de commande complète (plus de pop-up) ===== */
.ck-page{ margin: 24px 0 60px; }
.ck-page .ck-box{
  max-width: 100%; max-height: none; overflow: visible;
  box-shadow: none; border: 1px solid var(--ligne);
  transform: none;
}

/* ===== Checkout modal (multi-step) — même procédé que la commande guidée ===== */
.ck-modal{
  position: fixed; inset: 0; z-index: 400;
  background: rgba(10,10,10,.62);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  opacity: 0; pointer-events: none;
  transition: opacity 260ms ease;
}
.ck-modal.is-open{ opacity: 1; pointer-events: auto; }
.ck-box{
  background: var(--fond-carte);
  width: 100%; max-width: 940px; max-height: 90vh;
  overflow-y: auto;
  border-radius: 6px;
  display: flex; flex-direction: column;
  transform: translateY(18px);
  transition: transform 280ms var(--ease-pro);
  box-shadow: 0 30px 70px rgba(0,0,0,.35);
}
.ck-modal.is-open .ck-box{ transform: translateY(0); }

.ck-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border-bottom:1px solid var(--ligne); }
.ck-head-brand{ display:flex; align-items:center; gap:10px; font-family: var(--font-display); font-weight:800; font-size:14px; letter-spacing:.02em; }
.ck-head-brand img{ height:26px; width:auto; }
[data-theme="dark"] .ck-head-brand img{ filter: invert(1); }
.ck-close{ background:none; border:0; font-size:26px; line-height:1; color:var(--texte); cursor:pointer; padding:0 4px; }

.ck-steps{ display:flex; align-items:flex-start; padding:22px 24px 6px; gap:4px; }
.ck-step{ display:flex; flex-direction:column; align-items:center; gap:7px; flex-shrink:0; }
.ck-step-num{ width:30px; height:30px; border-radius:50%; background:var(--fond); border:1.5px solid var(--ligne); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:var(--gris); transition: all 180ms ease; }
.ck-step-lbl{ font-size:10.5px; color:var(--gris); font-weight:700; text-transform:uppercase; letter-spacing:.04em; display:none; white-space:nowrap; }
.ck-step.active .ck-step-num{ background:var(--noir); border-color:var(--noir); color:#fff; }
.ck-step.active .ck-step-lbl{ color:var(--texte); }
.ck-step.done .ck-step-num{ background:var(--rouge); border-color:var(--rouge); color:#fff; }
.ck-step.done .ck-step-lbl{ color:var(--rouge); }
.ck-step-line{ flex:1; height:1.5px; background:var(--ligne); margin-top:14px; transition: background 180ms ease; }
.ck-step-line.done{ background:var(--rouge); }
@media (min-width:560px){ .ck-step-lbl{ display:block; } }

.ck-body{ display:grid; grid-template-columns: 1.4fr 1fr; }
.ck-form{ padding:24px; border-right:1px solid var(--ligne); }
.ck-sidebar{ padding:24px; background:var(--fond); }
.ck-sidebar h4{ font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--gris); margin:0 0 14px; }
@media (max-width:760px){
  .ck-body{ grid-template-columns:1fr; }
  .ck-form{ border-right:0; border-bottom:1px solid var(--ligne); }
}

.ck-section-title{ font-size:14px; font-weight:700; margin:0 0 14px; }

.ck-form-item, .ck-sum-item{ display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--ligne); }
.ck-form-item:last-of-type, .ck-sum-item:last-of-type{ border-bottom:1px solid var(--ligne); }
.ck-form-item img, .ck-sum-item img{ width:50px; height:50px; object-fit:cover; border-radius:4px; background:var(--fond); flex-shrink:0; }
.ck-form-item-name, .ck-sum-item-name{ font-size:13.5px; font-weight:600; line-height:1.3; }
.ck-form-item-meta, .ck-sum-item-meta{ font-size:11.5px; color:var(--gris); margin-top:3px; }
.ck-form-item-price, .ck-sum-item-price{ margin-left:auto; font-size:13px; font-weight:700; white-space:nowrap; padding-left:8px; }

.ck-sum-row{ display:flex; justify-content:space-between; gap:10px; font-size:13px; padding:9px 0; border-bottom:1px solid var(--ligne); color:var(--gris); }
.ck-sum-row.ck-sum-total{ border-bottom:0; padding-top:14px; font-size:15.5px; font-weight:800; color:var(--texte); }
.ck-sum-row.ck-sum-discount{ color:var(--rouge); }

.field{ margin-bottom:14px; }
.field label{ display:block; font-size:12.5px; font-weight:700; margin-bottom:6px; color:var(--texte); }
.field input{ width:100%; padding:12px 14px; border:1px solid var(--ligne); border-radius:6px; background:var(--fond-carte); color:var(--texte); font-size:14px; font-family: var(--font-ui); }
.field input:focus{ outline:none; border-color:var(--texte); }

.ck-zone-opts{ display:flex; flex-direction:column; gap:10px; margin-bottom:8px; }
.ck-zone-opt{ display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border:1.5px solid var(--ligne); border-radius:6px; cursor:pointer; transition:border-color 150ms ease, background 150ms ease; }
.ck-zone-opt:hover{ border-color:var(--texte); }
.ck-zone-opt.is-on{ border-color:var(--noir); background:var(--fond); }
.ck-zone-name{ font-size:13.5px; font-weight:600; }
.ck-zone-price{ font-size:13px; font-weight:700; color:var(--rouge); white-space:nowrap; margin-left:12px; }

.ck-pay-card{ display:flex; align-items:center; gap:14px; padding:16px; border:1.5px solid var(--ligne); border-radius:6px; margin-bottom:12px; cursor:pointer; transition:border-color 150ms ease, background 150ms ease; }
.ck-pay-card:hover{ border-color:var(--texte); }
.ck-pay-card.is-on{ border-color:var(--noir); background:var(--fond); }
.ck-pay-icon{ width:42px; height:42px; border-radius:50%; background:var(--fond); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:18px; font-weight:800; overflow:hidden; }
.ck-pay-icon img{ width:100%; height:100%; object-fit:cover; }
.ck-pay-icon--wave{ background:#00c8ff; padding:0; }
.ck-pay-icon--cod{ background:var(--noir); color:#fff; font-size:9.5px; letter-spacing:.02em; font-family: var(--font-display); }
.ck-pay-body{ display:flex; flex-direction:column; gap:2px; }
.ck-pay-body strong{ font-size:13.5px; }
.ck-pay-body small{ font-size:12px; color:var(--gris); }
.ck-pay-tag{ margin-left:auto; font-size:10.5px; font-weight:700; background:var(--noir); color:#fff; padding:4px 10px; border-radius:20px; white-space:nowrap; }
.ck-pay-card.is-on .ck-pay-tag{ background:var(--rouge); }
.ck-pay-howto{ background:var(--fond); border:1px solid var(--ligne); border-radius:6px; padding:14px 16px; font-size:12.5px; color:var(--gris); line-height:2; }
.ck-pay-howto-title{ font-weight:700; color:var(--texte); margin-bottom:2px; }

.ck-confirm{ text-align:center; padding:10px 4px; }
.ck-confirm-icon{ width:64px; height:64px; border-radius:50%; background:var(--fond); border:1px solid var(--ligne); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; font-size:26px; }
.ck-confirm h3{ font-family: var(--font-display); font-size:19px; margin:0 0 8px; }
.ck-confirm p{ font-size:13px; color:var(--gris); margin:0 0 18px; line-height:1.6; }
.ck-confirm-amount{ background:var(--fond); border:1px solid var(--ligne); border-radius:6px; padding:14px; margin-bottom:18px; }
.ck-confirm-amount span{ display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--gris); margin-bottom:4px; }
.ck-confirm-amount strong{ font-family: var(--font-display); font-size:23px; }
.ck-confirm-actions{ display:flex; flex-direction:column; gap:10px; }
.ck-btn-wave, .ck-wa-btn{ display:flex; align-items:center; justify-content:center; gap:9px; }
.ck-btn-icon{ width:20px; height:20px; flex-shrink:0; object-fit:contain; border-radius:4px; }
svg.ck-btn-icon{ border-radius:0; }
.ck-btn-wave{ background:#1BA8F0; color:#fff; }
.ck-btn-wave:hover{ background:#0e8dc7; }
.ck-wa-btn{ background:#25D366; color:#fff; }
.ck-wa-btn:hover{ background:#1DA851; }

.ck-nav{ display:flex; align-items:center; padding:18px 24px; border-top:1px solid var(--ligne); }
.ck-promo-ok{ background:#eafaf0; color:#1a7a44; }
.ck-promo-err{ background:#fdecea; color:#a12622; }
[data-theme="dark"] .ck-promo-ok{ background:#123a24; color:#7be3a8; }
[data-theme="dark"] .ck-promo-err{ background:#3a1a1a; color:#ff9c96; }

@media (max-width:560px){
  .ck-modal{ padding:0; }
  .ck-box{ max-width:100%; height:100%; max-height:100%; border-radius:0; }
  .ck-nav{ padding:14px 18px; }
  .ck-form, .ck-sidebar{ padding:18px; }
}
