/* ==========================================================================
   SANIYORO — habillage e-commerce sobre.
   Chargé en dernier : aplatit les effets (dégradés, halos, pastilles,
   animations) hérités des autres feuilles, sans changer la structure.
   ========================================================================== */

:root {
  --font: Roboto, "Segoe UI", Arial, sans-serif;
  --font-display: Roboto, "Segoe UI", Arial, sans-serif;
  --radius: 6px;
  --radius-sm: 4px;
  --shadow: 0 1px 2px rgba(0, 0, 0, .06);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);
  --sy-shadow: 0 1px 2px rgba(0, 0, 0, .06);
  --sy-shadow-lg: 0 2px 6px rgba(0, 0, 0, .08);
  --hm-line: #e3e6ea;
  --hm-bg: #f1f2f4;
  --hm-text: #1f2328;
  --hm-muted: #62686f;
  --hm-orange: #f68b1e;
  --hm-orange-dark: #d9740c;
  --hm-blue: #0047ab;
}

/* ---------- Base ---------- */
body.saniyoro {
  font-family: var(--font);
  background: var(--hm-bg) !important;
  color: var(--hm-text);
  letter-spacing: 0;
}
body.saniyoro h1, body.saniyoro h2, body.saniyoro h3, body.saniyoro h4 {
  font-family: var(--font);
  letter-spacing: 0;
}
body.saniyoro *, body.saniyoro *::before, body.saniyoro *::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.saniyoro [data-animate],
body.saniyoro [data-animate].visible {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Pas d'effet « soulèvement » au survol */
body.saniyoro [class*="card"]:hover,
body.saniyoro .btn:hover,
body.saniyoro [class*="-btn"]:hover {
  transform: none !important;
}

/* ---------- Boutons ---------- */
body.saniyoro .btn,
body.saniyoro button.btn,
body.saniyoro .sy-btn-hero-primary,
body.saniyoro .sy-btn-hero-secondary,
body.saniyoro .sy-btn-cta,
body.saniyoro .sy-checkout-submit,
body.saniyoro .sa-submit,
body.saniyoro .ca-btn,
body.saniyoro .ct-submit,
body.saniyoro .sy-search-submit {
  border-radius: 4px !important;
  box-shadow: none !important;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
body.saniyoro .btn-primary,
body.saniyoro .sy-btn-hero-primary,
body.saniyoro .sy-btn-cta,
body.saniyoro .sy-checkout-submit,
body.saniyoro .sa-submit:not(.sa-submit--wa),
body.saniyoro .ca-btn-primary,
body.saniyoro .ct-submit,
body.saniyoro .sy-search-submit {
  background: var(--hm-orange) !important;
  border: 1px solid var(--hm-orange) !important;
  color: #fff !important;
}
body.saniyoro .btn-primary:hover,
body.saniyoro .sy-btn-hero-primary:hover,
body.saniyoro .sy-btn-cta:hover,
body.saniyoro .sy-checkout-submit:hover,
body.saniyoro .sa-submit:not(.sa-submit--wa):hover,
body.saniyoro .ca-btn-primary:hover,
body.saniyoro .ct-submit:hover,
body.saniyoro .sy-search-submit:hover {
  background: var(--hm-orange-dark) !important;
  border-color: var(--hm-orange-dark) !important;
}
body.saniyoro .sa-submit--wa { background: #1fa855 !important; box-shadow: none !important; border-radius: 4px !important; }
body.saniyoro .btn-outline,
body.saniyoro .sy-see-all,
body.saniyoro .sy-store-group-link {
  border-radius: 4px !important;
  box-shadow: none !important;
}

/* ---------- Champs ---------- */
body.saniyoro input:not([type="checkbox"]):not([type="radio"]),
body.saniyoro select,
body.saniyoro textarea,
body.saniyoro .sa-input,
body.saniyoro .ct-input {
  border-radius: 4px !important;
  box-shadow: none !important;
}
body.saniyoro .sa-input,
body.saniyoro .ct-input { background: #fff !important; border: 1px solid #cfd4da !important; }
body.saniyoro .sa-input:focus-within,
body.saniyoro .ct-input:focus-within { border-color: var(--hm-blue) !important; box-shadow: 0 0 0 1px var(--hm-blue) !important; }

/* ---------- En-tête ---------- */
body.saniyoro .site-header.sy-header,
body.saniyoro .sy-header-v2 {
  background: #fff !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--hm-line);
}
body.saniyoro .sy-header-search .sy-search-form,
body.saniyoro .sy-search-form {
  border-radius: 4px !important;
  box-shadow: none !important;
  border: 1px solid #cfd4da !important;
  background: #fff !important;
}
body.saniyoro .sy-search-image,
body.saniyoro .sy-commune-pill,
body.saniyoro .sy-header-cart,
body.saniyoro .sy-header-login {
  border-radius: 4px !important;
  box-shadow: none !important;
}
body.saniyoro .sy-header-cart { background: var(--hm-orange) !important; }

/* Choix du quartier */
body.saniyoro .sy-zone {
  position: relative;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
.sy-zone-btn {
  display: flex;
  align-items: center;
  gap: .45rem;
  height: 40px;
  padding: 0 .7rem;
  border: 1px solid #cfd4da;
  border-radius: 4px;
  background: #fff;
  color: var(--hm-text);
  font: inherit;
  cursor: pointer;
  text-align: left;
  width: 100%;
}
.sy-zone-btn:hover,
.sy-zone.is-open .sy-zone-btn { border-color: #9aa3ad; }
.sy-zone-btn > .bi-geo-alt { color: var(--hm-orange); font-size: 1rem; }
.sy-zone-text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; flex: 1; }
.sy-zone-text small { font-size: .68rem; color: var(--hm-muted); font-weight: 400; }
.sy-zone-text strong { font-size: .86rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 8.5rem; }
.sy-zone-caret { font-size: .7rem; color: var(--hm-muted); transition: transform .15s; }
.sy-zone.is-open .sy-zone-caret { transform: rotate(180deg); }
.sy-zone-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 1200;
  width: 270px;
  background: #fff;
  border: 1px solid var(--hm-line);
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
  padding: .75rem;
}
.sy-zone-menu[hidden] { display: none; }
.sy-zone-title { margin: 0; font-size: .92rem; font-weight: 700; color: var(--hm-text); }
.sy-zone-hint { margin: .15rem 0 .6rem; font-size: .76rem; color: var(--hm-muted); line-height: 1.35; }
body.saniyoro .sy-zone-search {
  width: 100%;
  height: 36px;
  padding: 0 .65rem;
  border: 1px solid #cfd4da;
  font-size: .85rem;
  margin-bottom: .45rem;
  outline: none;
}
body.saniyoro .sy-zone-search:focus { border-color: var(--hm-blue); }
.sy-zone-list { list-style: none; margin: 0; padding: 0; max-height: 260px; overflow-y: auto; }
.sy-zone-list li[hidden] { display: none; }
.sy-zone-list button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: .5rem .55rem;
  border: 0;
  border-radius: 4px;
  background: none;
  font: inherit;
  font-size: .86rem;
  color: var(--hm-text);
  cursor: pointer;
  text-align: left;
}
.sy-zone-list button:hover { background: #f3f4f6; }
.sy-zone-list button.is-selected { font-weight: 700; color: var(--hm-orange-dark); }
.sy-zone-list button .bi-check2 { font-size: 1rem; }
@media (max-width: 900px) {
  .sy-zone-menu { width: 100%; }
  .sy-zone-text strong { max-width: none; }
}
body.saniyoro .sy-nav-link {
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-weight: 500;
}
body.saniyoro .sy-nav-link.is-active,
body.saniyoro .sy-nav-link[aria-current="page"] {
  color: var(--hm-orange) !important;
  box-shadow: inset 0 -2px 0 var(--hm-orange) !important;
}

/* ---------- Accueil : bandeau ---------- */
body.saniyoro .sy-hero-wrap {
  border-radius: 0 !important;
  min-height: 0 !important;
  box-shadow: none !important;
}
body.saniyoro .sy-hero-inner { padding-top: 56px !important; padding-bottom: 56px !important; }
body.saniyoro .sy-hero-overlay {
  background: linear-gradient(90deg, rgba(15, 20, 28, .78) 0%, rgba(15, 20, 28, .45) 55%, rgba(15, 20, 28, .15) 100%) !important;
}
body.saniyoro .sy-hero-kicker {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
  letter-spacing: .04em;
  opacity: .85;
}
body.saniyoro .sy-hero-kicker .bi { display: none; }
body.saniyoro .sy-hero-copy h1 {
  font-size: clamp(1.9rem, 3.4vw, 2.6rem) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}
body.saniyoro .sy-hero-copy h1 em { font-style: normal; color: #ffb25c !important; background: none !important; -webkit-text-fill-color: currentColor; }
body.saniyoro .sy-hero-chips span,
body.saniyoro .sy-pay-strip span {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
body.saniyoro .sy-hero-chips,
body.saniyoro .sy-pay-strip { gap: .35rem 1.1rem !important; }
body.saniyoro .sy-pay-strip span + span::before { content: "·"; margin-right: 1.1rem; opacity: .6; }
body.saniyoro .sy-btn-hero-secondary {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, .7) !important;
  color: #fff !important;
}
body.saniyoro .sy-btn-hero-secondary:hover { background: rgba(255, 255, 255, .1) !important; }
body.saniyoro .sy-hero-dots button,
body.saniyoro .home-hero-dots button { border-radius: 2px !important; }

/* Bande de confiance */
body.saniyoro .sy-trust-strip { margin-top: 0 !important; padding: 0 !important; background: #fff; border-bottom: 1px solid var(--hm-line); }
body.saniyoro .sy-trust-strip-inner {
  box-shadow: none !important;
  border-radius: 0 !important;
  border: 0 !important;
  background: transparent !important;
  transform: none !important;
}
body.saniyoro .sy-trust-pill > .bi,
body.saniyoro .sy-trust-pill > i,
body.saniyoro .sy-trust-pill [class*="ico"] {
  background: none !important;
  color: var(--hm-orange) !important;
  box-shadow: none !important;
}
body.saniyoro .sy-trust-pay-logos { display: flex !important; gap: .4rem !important; margin-top: .3rem; }
body.saniyoro .sy-trust-pay-chip {
  flex: 0 0 40px !important;
  max-width: 40px !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 0 !important;
  padding: 3px !important;
  border-radius: 8px !important;
  border: 1px solid var(--hm-line) !important;
  background: #fff !important;
  box-shadow: none !important;
  display: grid !important;
  place-items: center;
  overflow: hidden;
}
body.saniyoro .sy-trust-pay-chip img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: contain !important; }
body.saniyoro .sy-trust-pay-chip--wave { padding: 0 !important; border-radius: 50% !important; border: 0 !important; }
body.saniyoro .sy-trust-pay-chip--moov { padding: 0 !important; }

/* Logos paiement du bandeau */
body.saniyoro .sy-pay-logos { display: flex !important; align-items: center; flex-wrap: wrap; gap: .5rem !important; margin-top: 1.1rem; }
body.saniyoro .sy-pay-logos .sy-pay-logo-chip {
  width: 44px;
  height: 44px;
  padding: 4px !important;
  border-radius: 8px !important;
  background: #fff !important;
  display: grid;
  place-items: center;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .25) !important;
}
body.saniyoro .sy-pay-logos .sy-pay-logo-chip img { width: 100%; height: 100%; object-fit: contain; display: block; }
body.saniyoro .sy-pay-logos .sy-pay-logo-chip:nth-child(2) { padding: 0 !important; }
body.saniyoro .sy-pay-logos .sy-pay-logo-chip:nth-child(3) { padding: 0 !important; border-radius: 50% !important; }
body.saniyoro .sy-pay-logos .sy-pay-cod {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  height: 44px;
  padding: 0 .85rem !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .14) !important;
  border: 1px solid rgba(255, 255, 255, .35) !important;
  color: #fff;
  font-size: .85rem;
  font-weight: 500;
}
body.saniyoro .sy-pay-logos span + span::before { content: none !important; margin: 0 !important; }

/* ---------- Accueil : une seule largeur de contenu ---------- */
body.saniyoro .sy-home .sy-trust-strip-inner,
body.saniyoro .sy-home .sy-sectors-section > .container,
body.saniyoro .sy-home .sy-dokan-stores-shell,
body.saniyoro .sy-cta-band .sy-cta-inner {
  width: min(1240px, calc(100% - 32px)) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.saniyoro .sy-home .sy-sectors-section .sy-sectors-marquee {
  margin: 0 !important;
  width: 100% !important;
  mask-image: linear-gradient(90deg, #000 94%, transparent) !important;
  -webkit-mask-image: linear-gradient(90deg, #000 94%, transparent) !important;
}
body.saniyoro .sy-home .sy-sectors-section .sy-sectors-track,
body.saniyoro .sy-home .sy-sectors-section .home-cats-marquee-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.saniyoro .sy-home .sy-sectors-section,
body.saniyoro .sy-home .sy-shops-section {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
  border-top: 0 !important;
}
body.saniyoro .sy-home .sy-section-head {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 1rem;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  text-align: left !important;
}
body.saniyoro .sy-home .sy-section-head h2 { margin: 0 !important; line-height: 1.2 !important; }
body.saniyoro .sy-home .sy-section-head .sy-section-sub { margin: .25rem 0 0 !important; font-size: .85rem !important; }
body.saniyoro .sy-home .sy-section-head .sy-see-all { white-space: nowrap; font-size: .88rem !important; }

/* Bande de confiance : 4 colonnes égales séparées par un filet */
body.saniyoro .sy-home .sy-trust-strip-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.saniyoro .sy-home .sy-trust-pill {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .9rem !important;
  min-height: 88px;
  padding: 1rem 1.5rem !important;
  margin: 0 !important;
  border: 0 !important;
  border-left: 1px solid var(--hm-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  grid-column: auto !important;
}
body.saniyoro .sy-home .sy-trust-pill:first-child { border-left: 0 !important; }
body.saniyoro .sy-home .sy-trust-pill:hover { background: transparent !important; }
body.saniyoro .sy-home .sy-trust-ico {
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #fff3e6 !important;
  color: var(--hm-orange-dark) !important;
  font-size: 1.3rem;
}
body.saniyoro .sy-home .sy-trust-ico .bi { color: inherit !important; }
body.saniyoro .sy-home .sy-trust-pill strong { display: block; font-size: .95rem !important; font-weight: 700 !important; color: var(--hm-text) !important; margin: 0 0 .15rem !important; }
body.saniyoro .sy-home .sy-trust-pill div > span { display: block; font-size: .82rem !important; color: var(--hm-muted) !important; }
@media (max-width: 760px) {
  body.saniyoro .sy-home .sy-trust-strip-inner { grid-template-columns: 1fr !important; }
  body.saniyoro .sy-home .sy-trust-pill { justify-content: flex-start !important; min-height: 0; padding: .8rem 0 !important; border-left: 0 !important; }
  body.saniyoro .sy-home .sy-trust-pill + .sy-trust-pill { border-top: 1px solid var(--hm-line) !important; }
}

/* Sous-groupes de boutiques */
body.saniyoro .sy-home .sy-store-groups { gap: 2rem !important; }
body.saniyoro .sy-home .sy-store-group-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem;
  margin: 0 0 1rem !important;
  padding: 0 0 .7rem !important;
}
body.saniyoro .sy-home .sy-store-group-title { display: flex !important; align-items: center !important; gap: .65rem !important; }
body.saniyoro .sy-home .sy-store-group-title h3 { margin: 0 !important; }
body.saniyoro .sy-home .sy-store-group-title p { margin: .1rem 0 0 !important; font-size: .8rem !important; color: var(--hm-muted) !important; font-weight: 400 !important; }
body.saniyoro .sy-home .sy-store-group--nearby {
  background: #fff;
  border: 1px solid var(--hm-line);
  border-radius: 8px;
  padding: 1rem 1.1rem 1.1rem;
}
body.saniyoro .sy-stores-marquee::before,
body.saniyoro .sy-stores-marquee::after { display: none !important; }
body.saniyoro .sy-stores-track.is-marquee-css .home-cats-marquee-inner > .sy-store-card {
  flex: 0 0 var(--store-slide-w, calc((100% - 2.5rem) / 3)) !important;
  width: var(--store-slide-w, calc((100% - 2.5rem) / 3)) !important;
  max-width: none !important;
}

/* ---------- Sections ---------- */
body.saniyoro .sy-section-kicker { display: none !important; }
body.saniyoro .sy-section,
body.saniyoro .sy-shops-section,
body.saniyoro .sy-products-section,
body.saniyoro .sy-visited-section,
body.saniyoro .sy-food-section,
body.saniyoro .sy-dokan-stores-section {
  background: transparent !important;
}
body.saniyoro .sy-section-head h2,
body.saniyoro .sy-store-products-head h2 {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: var(--hm-text) !important;
}
body.saniyoro .sy-section-sub { color: var(--hm-muted) !important; }
body.saniyoro .sy-see-all,
body.saniyoro .sy-store-group-link {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  color: var(--hm-blue) !important;
  font-weight: 500;
}
body.saniyoro .sy-see-all:hover,
body.saniyoro .sy-store-group-link:hover { text-decoration: underline; }
body.saniyoro .sy-sectors-marquee::before,
body.saniyoro .sy-sectors-marquee::after,
body.saniyoro .sy-visited-marquee::before,
body.saniyoro .sy-visited-marquee::after,
body.saniyoro .sy-food-marquee::before,
body.saniyoro .sy-food-marquee::after { display: none !important; }

/* Secteurs */
body.saniyoro .tsf-cat-card,
body.saniyoro .sy-sector-tile {
  border-radius: 6px !important;
  box-shadow: none !important;
  border: 1px solid var(--hm-line) !important;
  background: #fff !important;
}
body.saniyoro .tsf-cat-card:hover,
body.saniyoro .sy-sector-tile:hover { border-color: var(--hm-orange) !important; }
body.saniyoro .tsf-cat-visual,
body.saniyoro .sy-sector-tile-icon {
  width: 52px !important;
  height: 52px !important;
  margin: 0 auto .55rem !important;
  display: grid !important;
  place-items: center;
  background: #fff3e6 !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 50% !important;
  color: var(--hm-orange-dark) !important;
}
body.saniyoro .tsf-cat-visual i,
body.saniyoro .sy-sector-tile-icon i,
body.saniyoro .tsf-cat-visual .bi,
body.saniyoro .sy-sector-tile-icon .bi { font-size: 1.5rem !important; color: inherit !important; }
body.saniyoro .tsf-cat-card:hover .tsf-cat-visual,
body.saniyoro .sy-sector-tile:hover .sy-sector-tile-icon { background: var(--hm-orange) !important; color: #fff !important; }
body.saniyoro .sy-sector-tile-label,
body.saniyoro .tsf-cat-label { font-weight: 500 !important; color: var(--hm-text) !important; }

/* Groupes de boutiques par secteur */
body.saniyoro .sy-store-group-icon {
  background: none !important;
  box-shadow: none !important;
  color: var(--hm-orange) !important;
  width: auto !important;
  height: auto !important;
  font-size: 1.15rem;
}
body.saniyoro .sy-store-group-title,
body.saniyoro .sy-store-group-head h3 { color: var(--hm-text) !important; font-size: 1.1rem !important; font-weight: 700 !important; }
body.saniyoro .sy-store-group-head { border-bottom: 1px solid var(--hm-line) !important; }

/* ---------- Carte boutique (liste vendeurs) ---------- */
body.saniyoro .sy-dokan-stores-grid--3 { gap: 1.25rem !important; }
body.saniyoro .sy-store-card {
  background: #fff !important;
  border: 1px solid var(--hm-line) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 3px rgba(16, 24, 40, .06) !important;
  overflow: hidden;
  min-height: 0 !important;
  height: auto !important;
  transition: box-shadow .2s, border-color .2s;
}
body.saniyoro .sy-store-card:hover { border-color: #d0d5dc !important; box-shadow: 0 8px 24px rgba(16, 24, 40, .1) !important; }
.sy-store-card-link { display: block; color: inherit; text-decoration: none; }
.sy-store-card-cover {
  position: relative;
  height: 190px;
  background: var(--store-tone, #1e3a5f);
  overflow: hidden;
  color: #fff;
}
.sy-store-card-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.sy-store-card:hover .sy-store-card-cover img { transform: scale(1.04); }
.sy-store-card-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .05) 0%, rgba(0, 0, 0, .35) 45%, rgba(0, 0, 0, .78) 100%);
}
.sy-store-card-cover.is-plain::after {
  background:
    radial-gradient(circle at 85% 15%, rgba(255, 255, 255, .12) 0 60px, transparent 61px),
    radial-gradient(circle at 95% 60%, rgba(255, 255, 255, .07) 0 90px, transparent 91px),
    linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .25) 100%);
}
.sy-store-card-info {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  padding: 0 1rem 2.4rem 1rem;
}
.sy-store-card-sector {
  display: inline-block;
  margin-bottom: .3rem;
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .8);
}
body.saniyoro .sy-store-card-name {
  margin: 0 0 .25rem;
  font-size: 1.12rem !important;
  font-weight: 700;
  color: #fff !important;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
}
.sy-store-card-rating { display: flex; align-items: center; gap: 1px; font-size: .78rem; color: #ffb400; margin-bottom: .35rem; }
.sy-store-card-rating .is-dim { color: rgba(255, 255, 255, .35); }
.sy-store-card-rating span { margin-left: .4rem; color: rgba(255, 255, 255, .9); font-size: .78rem; }
.sy-store-card-line {
  margin: .1rem 0 0;
  font-size: .8rem;
  color: rgba(255, 255, 255, .88);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sy-store-card-line .bi { margin-right: .25rem; opacity: .85; }
.sy-store-card-foot {
  position: relative;
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 58px;
  padding: .55rem 1rem .55rem 92px;
}
.sy-store-card-logo {
  position: absolute;
  left: 1rem;
  top: -30px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid #fff;
  box-shadow: 0 2px 8px rgba(16, 24, 40, .18);
  display: grid;
  place-items: center;
  overflow: hidden;
  z-index: 2;
}
.sy-store-card-logo img { width: 100%; height: 100%; object-fit: cover; }
.sy-store-card-logo span { font-size: 1.55rem; font-weight: 700; }
.sy-store-card-facts {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem .75rem;
  font-size: .8rem;
  color: var(--hm-muted);
}
.sy-store-card-status { font-weight: 700; }
.sy-store-card-status::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: .3rem; vertical-align: 1px; background: currentColor; }
.sy-store-card-status.is-open { color: #1a7f37; }
.sy-store-card-status.is-closed { color: #b42318; }
.sy-store-card-distance.is-here { color: #1a7f37; font-weight: 500; }
.sy-store-card-go {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #f2f4f7;
  color: var(--hm-text);
  transition: background .2s, color .2s;
}
.sy-store-card:hover .sy-store-card-go { background: var(--hm-orange); color: #fff; }
body.saniyoro button.sy-store-group-link { cursor: pointer; font-family: inherit; font-size: .8rem; font-weight: 500; }
@media (max-width: 560px) {
  .sy-store-card-cover { height: 150px; }
}

/* ---------- Carte produit ---------- */
body.saniyoro .sy-dokan-product-card,
body.saniyoro .product-card {
  border-radius: 6px !important;
  box-shadow: none !important;
  border: 1px solid var(--hm-line) !important;
  background: #fff !important;
}
body.saniyoro .sy-dokan-product-card:hover,
body.saniyoro .product-card:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, .08) !important; }
body.saniyoro .sy-dokan-product-image,
body.saniyoro .product-card-image { background: #f6f7f8 !important; }
body.saniyoro .sy-dokan-product-placeholder { background: none !important; color: #b3bac2 !important; }
body.saniyoro .sy-dokan-product-title {
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  background: #fff !important;
  color: var(--hm-text) !important;
  font-weight: 400 !important;
  font-size: .9rem !important;
  line-height: 1.35 !important;
  min-height: 2.7em;
  padding: .55rem .7rem 0 !important;
}
body.saniyoro .sy-dokan-product-title:hover { color: var(--hm-blue) !important; }
body.saniyoro .sy-dokan-product-foot { padding: .35rem .7rem .7rem !important; }
body.saniyoro .sy-dokan-product-price { color: var(--hm-text) !important; font-weight: 700 !important; font-size: 1rem !important; }
body.saniyoro .sy-dokan-product-cart {
  border-radius: 4px !important;
  box-shadow: none !important;
  background: var(--hm-orange) !important;
}
body.saniyoro .sy-dokan-product-sale,
body.saniyoro .product-card-promo {
  border-radius: 3px !important;
  background: #e0301e !important;
  box-shadow: none !important;
}
body.saniyoro [class^="tone-"],
body.saniyoro [class*=" tone-"] { background-image: none !important; }

/* Catalogue */
body.saniyoro .sy-filters {
  box-shadow: none !important;
  border: 1px solid var(--hm-line) !important;
  border-radius: 6px !important;
  background: #fff !important;
}
body.saniyoro .sy-filters button { border-radius: 4px !important; box-shadow: none !important; background: var(--hm-orange) !important; }
body.saniyoro .sy-card-add-btn {
  border-radius: 4px !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .15) !important;
}
body.saniyoro .sy-card-visual { background-color: #f4f5f7 !important; }
body.saniyoro .sy-card-placeholder { background: none !important; }
body.saniyoro .sy-card-placeholder i { color: #c4cad2 !important; filter: none !important; font-size: 3.2rem !important; }
body.saniyoro .sy-product-card { display: flex; flex-direction: column; }
body.saniyoro .sy-product-card .product-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  padding: .7rem .85rem .85rem !important;
}
body.saniyoro .sy-card-shop {
  display: block;
  font-size: .75rem;
  color: var(--hm-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.saniyoro .sy-card-shop .bi { font-size: .7rem; margin-right: .15rem; }
body.saniyoro .sy-product-card .product-card-body h3 {
  margin: 0 !important;
  min-height: 0 !important;
  font-size: .9rem !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: var(--hm-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.saniyoro .sy-product-card .sy-card-body-link { display: flex; flex-direction: column; gap: .3rem; text-decoration: none; color: inherit; }
body.saniyoro .sy-product-card .sy-card-foot {
  margin-top: auto;
  padding-top: .15rem;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: .5rem;
}
body.saniyoro .sy-card-rating { display: flex; align-items: center; gap: 1px; font-size: .78rem; color: #f5a623; line-height: 1; }
body.saniyoro .sy-card-rating.is-empty { color: #d0d5dc; }
body.saniyoro .sy-card-rating span { margin-left: .35rem; font-size: .76rem; color: var(--hm-muted); }
body.saniyoro .sy-card-cart { margin: 0; flex: 0 0 auto; }
body.saniyoro .sy-card-cart-btn {
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: var(--hm-orange);
  color: #fff;
  font-size: 1.1rem;
  cursor: pointer;
  transition: background .15s;
}
body.saniyoro .sy-card-cart-btn:hover { background: var(--hm-orange-dark); }
body.saniyoro .sy-card-cart-btn:focus-visible { outline: 2px solid var(--hm-blue); outline-offset: 2px; }
body.saniyoro .sy-product-card .price { color: var(--hm-text) !important; font-weight: 700 !important; font-size: 1.05rem !important; }
body.saniyoro .sy-out-stock { border-radius: 3px !important; }

/* Fiche produit */
body.saniyoro .sy-product-commerce.pd-panel,
body.saniyoro .product-gallery-wrap,
body.saniyoro .product-zoom-stage,
body.saniyoro .sy-product-reviews,
body.saniyoro .product-reviews {
  border-radius: 6px !important;
  box-shadow: none !important;
}
body.saniyoro .sy-product-commerce.pd-panel { border: 1px solid var(--hm-line) !important; }
body.saniyoro .sy-product-title.pd-title { color: var(--hm-text) !important; font-size: 1.5rem !important; font-weight: 500 !important; line-height: 1.3 !important; }
body.saniyoro .sy-product-kicker { letter-spacing: 0 !important; text-transform: none !important; font-weight: 500 !important; color: var(--hm-blue) !important; }
body.saniyoro .sy-price-lg { color: var(--hm-text) !important; font-weight: 700 !important; }
body.saniyoro .sy-stock-badge { border-radius: 3px !important; background: none !important; padding: 0 !important; color: #1a7f37 !important; font-weight: 500 !important; }
body.saniyoro .sy-product-seller-card,
body.saniyoro .sy-commerce-card,
body.saniyoro .sy-pd-barcode,
body.saniyoro .sy-btn-share,
body.saniyoro .sy-btn-contact,
body.saniyoro .sy-qty-input,
body.saniyoro .sy-pay-chip,
body.saniyoro .sy-seller-logo {
  border-radius: 4px !important;
  box-shadow: none !important;
}
body.saniyoro .sy-add-btn { border-radius: 4px !important; }
body.saniyoro .product-zoom-hint { border-radius: 3px !important; }

/* ---------- Bandeau d'appel vendeur ---------- */
body.saniyoro .sy-cta-band {
  background: #fff !important;
  border-top: 1px solid var(--hm-line);
  border-bottom: 1px solid var(--hm-line);
  color: var(--hm-text) !important;
}
body.saniyoro .sy-cta-band h2,
body.saniyoro .sy-cta-band p { color: var(--hm-text) !important; }

/* Bandeau « Vendez vos produits » */
body.saniyoro .sy-sell-band {
  background: transparent !important;
  border: 0 !important;
  padding: 1rem 0 2.5rem !important;
  margin: 0 !important;
}
body.saniyoro .sy-sell-band .sy-cta-inner { display: block !important; }
.sy-sell-card {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  min-height: 280px;
  background: #1b2430;
  border-radius: 10px;
  overflow: hidden;
  color: #fff;
}
.sy-sell-copy { padding: 2.25rem 2.5rem; display: flex; flex-direction: column; justify-content: center; }
.sy-sell-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-bottom: .6rem;
  font-size: .8rem;
  font-weight: 500;
  color: #ffb25c;
}
body.saniyoro .sy-sell-band h2 {
  margin: 0 0 1.1rem !important;
  font-size: clamp(1.5rem, 2.4vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #fff !important;
}
.sy-sell-points {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem 1.25rem;
}
.sy-sell-points li { display: flex; align-items: center; gap: .5rem; font-size: .92rem; color: rgba(255, 255, 255, .9); }
.sy-sell-points .bi { color: #3ecf8e; font-size: 1rem; }
.sy-sell-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1.25rem; }
body.saniyoro .sy-sell-actions .sy-btn-cta {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .75rem 1.4rem !important;
  font-size: .95rem !important;
}
.sy-sell-login { color: rgba(255, 255, 255, .85); font-size: .88rem; text-decoration: underline; text-underline-offset: 3px; }
.sy-sell-login:hover { color: #fff; }
.sy-sell-media { position: relative; min-height: 220px; }
.sy-sell-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.sy-sell-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, #1b2430 0%, rgba(27, 36, 48, 0) 35%);
}
@media (max-width: 860px) {
  .sy-sell-card { grid-template-columns: 1fr; }
  .sy-sell-media { order: -1; min-height: 180px; }
  .sy-sell-media::before { background: linear-gradient(0deg, #1b2430 0%, rgba(27, 36, 48, 0) 50%); }
  .sy-sell-copy { padding: 1.5rem 1.25rem 1.75rem; }
}
@media (max-width: 480px) {
  .sy-sell-points { grid-template-columns: 1fr; }
}

/* ---------- Pied de page & barre mobile ---------- */
body.saniyoro .sy-footer-v2 { background: #1b2430 !important; }
body.saniyoro .sy-footer-social a { border-radius: 4px !important; }
body.saniyoro .sy-mobile-tabbar {
  background: #fff !important;
  box-shadow: none !important;
  border-top: 1px solid var(--hm-line);
  border-radius: 0 !important;
}

/* ---------- Boutique vendeur ---------- */
body.saniyoro .sy-store-sidebar {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 0 !important;
  background: var(--store-tone, #1e3a5f) !important;
}
body.saniyoro .sy-store-sidebar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 110% -10%, rgba(255, 255, 255, .14) 0 140px, transparent 141px),
    radial-gradient(circle at -20% 105%, rgba(255, 255, 255, .08) 0 160px, transparent 161px);
}
body.saniyoro .sy-store-sidebar.has-cover::before {
  background: linear-gradient(180deg, rgba(10, 16, 24, .55) 0%, rgba(10, 16, 24, .72) 45%, rgba(10, 16, 24, .9) 100%);
}
.sy-store-sidebar-cover {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.saniyoro .sy-store-sidebar-logo {
  background: #fff !important;
  border: 3px solid #fff !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .25) !important;
  color: var(--store-tone, #1e3a5f) !important;
  overflow: hidden;
}
body.saniyoro .sy-store-sidebar-logo span {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: #fff !important;
  color: var(--store-tone, #1e3a5f) !important;
}
body.saniyoro .sy-store-sidebar-name { text-shadow: 0 1px 3px rgba(0, 0, 0, .35); }
body.saniyoro .sy-store-sidebar .sy-store-rating {
  background: rgba(255, 255, 255, .14) !important;
  border: 0 !important;
  border-radius: 4px !important;
}
body.saniyoro .sy-store-sidebar-contact li { border-color: rgba(255, 255, 255, .15) !important; }
body.saniyoro .sy-store-sectors-strip--full {
  padding: 1.1rem clamp(1rem, 3vw, 2rem) 1.2rem !important;
  border-top: 3px solid var(--hm-orange) !important;
  border-bottom: 1px solid var(--hm-line);
  background: #fff !important;
}
body.saniyoro .sy-store-sectors-strip--full .sy-store-sectors-head { padding: 0 0 .75rem !important; }
body.saniyoro .sy-store-sectors-strip--full .sy-store-sectors-title { margin: 0 !important; font-size: 1.1rem !important; font-weight: 700 !important; color: var(--hm-text) !important; }
body.saniyoro .sy-store-count { border-radius: 3px !important; }
body.saniyoro .sy-store-map-card { box-shadow: 0 1px 3px rgba(0, 0, 0, .15) !important; border-radius: 4px !important; background: #fff !important; }
body.saniyoro .sy-map-marker-pin { box-shadow: none !important; }

/* ---------- Panier / commande ---------- */
body.saniyoro .sy-cart-shop { background: #fff !important; }

/* ---------- Modale message ---------- */
body.saniyoro .tsf-modal-card { border-radius: 6px !important; box-shadow: 0 8px 24px rgba(0, 0, 0, .18) !important; }
body.saniyoro .tsf-modal::backdrop { background: rgba(0, 0, 0, .45) !important; }
body.saniyoro .tsf-modal[open] .tsf-modal-card { animation: none !important; }

/* ---------- Espace client & suivi ---------- */
body.saniyoro .ca-hero,
body.saniyoro .ct-hero { background: #1b2430 !important; }
body.saniyoro .ct-hero::after { display: none !important; }
body.saniyoro .ct-grid,
body.saniyoro .ca-card,
body.saniyoro .ca-live-card,
body.saniyoro .ca-order,
body.saniyoro .ct-help-item {
  border-radius: 6px !important;
  box-shadow: none !important;
}
body.saniyoro .ct-kicker {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
body.saniyoro .ct-steps li.is-now .ct-step-dot { animation: none !important; box-shadow: none !important; }
body.saniyoro .ct-step-dot,
body.saniyoro .ct-card-ico,
body.saniyoro .ct-help-item > .bi,
body.saniyoro .ca-step-dot { border-radius: 50% !important; }
body.saniyoro .ct-card-ico { display: none !important; }
body.saniyoro .ca-hero .ca-btn-primary { box-shadow: none !important; }

/* ---------- Connexion / inscription ---------- */
body.saniyoro.sa-auth .sa-main { background: #fff !important; }
body.saniyoro.sa-auth .sa-badge {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  color: var(--hm-muted) !important;
}
body.saniyoro.sa-auth .sa-alt,
body.saniyoro.sa-auth .sa-tabs,
body.saniyoro.sa-auth .sa-tabs a { border-radius: 4px !important; box-shadow: none !important; }
body.saniyoro.sa-auth .sa-points i { background: rgba(255, 255, 255, .12) !important; border-radius: 4px !important; }
body.saniyoro.sa-auth .sa-pay-logo { border-radius: 3px !important; box-shadow: none !important; }
body.saniyoro.sa-auth .sa-head h1 { font-weight: 700 !important; }
body.saniyoro.sa-auth .sa-topbar-cta { border-radius: 4px !important; box-shadow: none !important; }
