/* ==========================================================================
   Écrin — thème love shop pour PrestaShop 8 (enfant de Classic)
   Style éditorial : fond « lin », typographie à empattements pour les titres,
   petites capitales espacées, aucune ombre, angles droits.
   ========================================================================== */

/* ---------- 1. Jetons de design ---------- */
:root {
  --ec-ink: #241f20;
  --ec-ink-soft: #4a4345;
  --ec-linen: #f5f4ee;
  --ec-linen-deep: #eceae2;
  --ec-tile: #efece5;
  --ec-white: #ffffff;
  --ec-fog: #6f6a67;
  --ec-fog-light: #a39d97;
  --ec-line: #dcd8ce;
  --ec-line-soft: #e8e5dc;
  --ec-blush: #edcdc2;
  --ec-blush-soft: #f4e2da;
  --ec-blush-deep: #c48b7b;
  --ec-charcoal: #26262a;
  --ec-sage: #8bbd78;
  --ec-sage-deep: #5b7763;
  --ec-blue: #6487ba;
  --ec-blue-deep: #4d6d9c;
  --ec-forest: #233735;
  --ec-forest-deep: #172523;
  --ec-ember: #ff965b;
  --ec-ember-ink: #b54a14;
  --ec-danger: #b3261e;

  --ec-sans: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --ec-serif: "Newsreader", "Iowan Old Style", Georgia, "Times New Roman", serif;

  --ec-max: 1360px;
  --ec-gutter: 32px;
  --ec-section: 96px;
  --ec-header-h: 118px;
  --ec-announce-h: 36px;
  --ec-ease: cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 991px) {
  :root { --ec-gutter: 20px; --ec-section: 64px; --ec-header-h: 60px; }
}

@media (max-width: 400px) {
  :root { --ec-gutter: 16px; }
}

/* ---------- 2. Base ---------- */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 130px; }

body {
  font-family: var(--ec-sans);
  font-size: 15px;
  line-height: 1.6;
  font-stretch: 97%;
  letter-spacing: .01em;
  color: var(--ec-ink);
  background: var(--ec-linen);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body p,
body li,
body dd,
body dt,
body label { color: inherit; font-size: inherit; }

body p { font-weight: inherit; }

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--ec-serif);
  font-weight: 400;
  color: var(--ec-ink);
  letter-spacing: -.01em;
  line-height: 1.15;
}

a { color: var(--ec-ink); transition: color .2s, opacity .2s; }
a:hover, a:focus { color: var(--ec-ink-soft); text-decoration: none; }

::selection { background: var(--ec-blush); color: var(--ec-ink); }

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

img { max-width: 100%; }

.ec-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.ec-i {
  width: 22px;
  height: 22px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: middle;
}

.ec-skip {
  position: absolute;
  left: 12px;
  top: -80px;
  z-index: 4000;
  padding: 10px 16px;
  background: var(--ec-ink);
  color: #fff;
}
.ec-skip:focus { top: 12px; color: #fff; }

.ec-container,
.container {
  width: 100%;
  max-width: var(--ec-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ec-gutter);
  padding-right: var(--ec-gutter);
}

.ec-eyebrow {
  margin: 0 0 16px;
  font-family: var(--ec-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ec-fog);
}

.ec-label {
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
}

/* ---------- 3. Boutons ---------- */
.ec-btn,
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 28px;
  font-family: var(--ec-sans);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .15em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s;
}
.btn { white-space: normal; }
.ec-btn .ec-i, .btn .ec-i { width: 18px; height: 18px; }

.ec-btn--dark,
.btn-primary,
.btn-primary.disabled,
.btn-primary:disabled {
  background: var(--ec-forest);
  border-color: var(--ec-forest);
  color: #fff;
  box-shadow: none;
}
.ec-btn--dark:hover, .ec-btn--dark:focus,
.btn-primary:hover, .btn-primary:focus, .btn-primary.focus,
.btn-primary:active, .btn-primary.active, .btn-primary:active:focus {
  background: var(--ec-forest-deep);
  border-color: var(--ec-forest-deep);
  color: #fff;
  box-shadow: none;
}

.ec-btn--outline,
.btn-secondary,
.btn-tertiary {
  background: transparent;
  border-color: var(--ec-ink);
  color: var(--ec-ink);
  box-shadow: none;
}
.ec-btn--outline:hover, .ec-btn--outline:focus,
.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active,
.btn-tertiary:hover, .btn-tertiary:focus, .btn-tertiary:active {
  background: rgba(36, 31, 32, .06);
  border-color: var(--ec-ink);
  color: var(--ec-ink);
  box-shadow: none;
}

.ec-btn--light { background: var(--ec-linen); border-color: var(--ec-linen); color: var(--ec-forest); }
.ec-btn--light:hover, .ec-btn--light:focus { background: #fff; border-color: #fff; color: var(--ec-forest); }

.ec-btn--block { width: 100%; }
.ec-btn[disabled], .btn[disabled], .btn.disabled { opacity: .45; cursor: not-allowed; }

.ec-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 4px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--ec-ink);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
.ec-link-arrow .ec-i { width: 16px; height: 16px; transition: transform .25s var(--ec-ease); }
.ec-link-arrow:hover { color: var(--ec-ink); }
.ec-link-arrow:hover .ec-i { transform: translateX(3px); }

.ec-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ec-ink);
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.ec-link-btn .ec-i { width: 14px; height: 14px; }

/* ---------- 4. Formulaires ---------- */
.form-control,
body input[type="text"],
body input[type="email"],
body input[type="password"],
body input[type="tel"],
body input[type="search"],
body input[type="number"],
body input[type="date"],
body select,
body textarea {
  font-family: var(--ec-sans);
  font-size: 15px;
  color: var(--ec-ink);
  background-color: #fff;
  border: 1px solid var(--ec-line);
  border-radius: 0;
  box-shadow: none;
}
.form-control { min-height: 48px; padding: 11px 14px; }
.form-control:focus,
body input:focus,
body select:focus,
body textarea:focus {
  color: var(--ec-ink);
  background-color: #fff;
  border-color: var(--ec-ink);
  outline: none;
  box-shadow: none;
}
.form-control::placeholder { color: var(--ec-fog-light); }
.form-control-label, .form-group label { font-size: 13.5px; color: var(--ec-ink); }
.form-control-comment { font-size: 12.5px; color: var(--ec-fog); }
select.form-control:not([size]):not([multiple]) { height: 48px; }
.form-control-select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 40px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23241f20' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M6.5 9.5l5.5 5.5 5.5-5.5'/%3E%3C/svg%3E") no-repeat right 14px center;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type="number"] { -moz-appearance: textfield; }

.custom-checkbox input[type="checkbox"] + span,
.custom-radio {
  width: 18px;
  height: 18px;
  border: 1px solid var(--ec-fog-light);
  border-radius: 0;
  background: #fff;
}
.custom-radio { border-radius: 50%; }
.custom-radio input[type="radio"]:checked + span { background-color: var(--ec-ink); width: 10px; height: 10px; left: 3px; top: 3px; }
.custom-checkbox input[type="checkbox"] + span .checkbox-checked { color: var(--ec-ink); font-size: 16px; margin: 0; }

/* ---------- 5. Alertes ---------- */
.alert {
  border-radius: 0;
  border: 1px solid var(--ec-line);
  background: #fff;
  color: var(--ec-ink);
  font-size: 14px;
}
.alert-success { border-color: var(--ec-sage); background: #f1f6ed; }
.alert-danger { border-color: #e5b3ae; background: #fbefee; color: var(--ec-danger); }
.alert-warning { border-color: #f3c9a8; background: #fff5ec; }
.alert-info { border-color: #c8d4e6; background: #f2f5fa; }
#notifications .alert { margin: 16px 0 0; }

/* ---------- 6. Structure ---------- */
#wrapper { padding-top: 0; background: var(--ec-linen); box-shadow: none; }
#wrapper > .container > .row { margin-left: 0; margin-right: 0; }
#content-wrapper, #left-column, #right-column { padding-left: 0; padding-right: 0; }
.layout-full-width #content-wrapper { width: 100%; float: none; }
#index #wrapper > .container { max-width: none; padding: 0; }
#index #wrapper .breadcrumb { display: none; }

@media (min-width: 992px) {
  .layout-left-column #wrapper > .container > .row {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    column-gap: 56px;
  }
  .layout-right-column #wrapper > .container > .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    column-gap: 56px;
  }
  .layout-left-column #wrapper > .container > .row::before,
  .layout-left-column #wrapper > .container > .row::after,
  .layout-right-column #wrapper > .container > .row::before,
  .layout-right-column #wrapper > .container > .row::after { content: none; }
  .layout-left-column #left-column,
  .layout-left-column #content-wrapper,
  .layout-right-column #right-column,
  .layout-right-column #content-wrapper { width: auto; max-width: none; float: none; }
  .layout-left-column #left-column { padding-top: 12px; }
}

.page-content.card,
.card-block,
.card {
  background: transparent;
  border: 0;
  box-shadow: none;
}
.page-header h1,
#main .page-header h1 {
  margin: 16px 0 28px;
  font-family: var(--ec-serif);
  font-weight: 300;
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.08;
  letter-spacing: -.015em;
  color: var(--ec-ink);
}

/* ---------- 7. En-tête ---------- */
#header {
  position: sticky;
  top: calc(-1 * var(--ec-announce-h));
  z-index: 60;
  color: var(--ec-ink);
  background: var(--ec-linen);
  box-shadow: none;
}
#header a { color: var(--ec-ink); }
#header .header-banner:empty { display: none; }

.ec-announce { background: var(--ec-sage); color: var(--ec-ink); }
.ec-announce__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--ec-announce-h);
}
.ec-announce__list {
  display: flex;
  gap: 64px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.ec-announce__item { white-space: nowrap; }
.ec-announce__side {
  position: absolute;
  top: 50%;
  right: var(--ec-gutter);
  display: flex;
  gap: 12px;
  font-size: 12px;
  transform: translateY(-50%);
}

.ec-header { position: relative; background: var(--ec-linen); border-bottom: 1px solid var(--ec-line); }
.ec-header__bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  height: 72px;
}
.ec-header__start { display: flex; align-items: center; gap: 2px; min-width: 0; }
.ec-header__end { display: flex; align-items: center; justify-content: flex-end; gap: 2px; }
.ec-header__brand { text-align: center; }

.ec-logo { display: inline-flex; align-items: center; text-decoration: none; }
.ec-logo:hover { text-decoration: none; }
.ec-logo__text {
  display: inline-block;
  padding-left: .24em;
  font-family: var(--ec-serif);
  font-size: 27px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--ec-ink);
}
.ec-logo__img { width: auto; max-height: 46px; }

.ec-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 44px;
  height: 44px;
  padding: 0 8px;
  background: none;
  border: 0;
  color: var(--ec-ink);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
.ec-icon-btn:hover, .ec-icon-btn:focus { color: var(--ec-ink); text-decoration: none; opacity: .72; }
.ec-icon-btn__label { display: none; }
@media (min-width: 1200px) { .ec-icon-btn__label { display: inline; } }

.ec-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--ec-ember);
  color: var(--ec-ink);
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.ec-cart-count.is-empty { background: transparent; border: 1px solid var(--ec-line); color: var(--ec-fog); }
@media (max-width: 1199px) {
  .ec-cart-count { position: absolute; top: 5px; right: 1px; }
  .ec-cart-count.is-empty { display: none; }
}

/* Recherche */
.ec-header__search { width: min(320px, 100%); }
.ec-search { position: relative; }
.ec-search form { position: relative; display: flex; align-items: center; }
.ec-search .ec-search__icon { position: absolute; left: 0; width: 20px; height: 20px; pointer-events: none; }
#search_widget.ec-search input[type="text"] {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 0 28px 0 30px;
  font-size: 14px;
  color: var(--ec-ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--ec-line);
  border-radius: 0;
}
#search_widget.ec-search input[type="text"]:focus { border-bottom-color: var(--ec-ink); }
#search_widget.ec-search input[type="text"]::placeholder { color: var(--ec-fog); }
.ec-search .ec-search__clear {
  position: absolute;
  right: 0;
  display: none;
  font-size: 20px;
  font-style: normal;
  line-height: 1;
  cursor: pointer;
}

/* Auto-complétion */
.ui-autocomplete.searchbar-autocomplete {
  z-index: 80;
  max-width: 420px;
  padding: 8px 0;
  background: #fff;
  border: 1px solid var(--ec-line);
  border-radius: 0;
  box-shadow: none;
}
.ui-autocomplete.searchbar-autocomplete li a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 14px;
  font-size: 14px;
  color: var(--ec-ink);
  border: 0;
  border-radius: 0;
  background: none;
  margin: 0;
}
.ui-autocomplete.searchbar-autocomplete li a.ui-state-focus,
.ui-autocomplete.searchbar-autocomplete li a:hover { background: var(--ec-linen); color: var(--ec-ink); border: 0; margin: 0; }
.ui-autocomplete.searchbar-autocomplete .autocomplete-thumbnail { width: 44px; height: 44px; object-fit: contain; background: var(--ec-tile); mix-blend-mode: multiply; }

/* Menu principal (ordinateur) */
.ec-nav { position: relative; border-top: 1px solid var(--ec-line-soft); }
.ec-nav__head, .ec-nav__foot { display: none; }
.ec-menu__list { display: flex; justify-content: center; gap: 38px; margin: 0; padding: 0; list-style: none; }
.ec-menu__item { position: static; }
.ec-menu__link {
  position: relative;
  display: flex;
  align-items: center;
  height: 46px;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ec-ink);
  text-decoration: none;
}
#header .ec-menu__link:hover { color: var(--ec-ink); text-decoration: none; }
.ec-menu__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 11px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s var(--ec-ease);
}
.ec-menu__item:hover > .ec-menu__link::after,
.ec-menu__item.is-open > .ec-menu__link::after,
.ec-menu__item.is-current > .ec-menu__link::after { transform: scaleX(1); }
#header .ec-menu__item--link .ec-menu__link { color: var(--ec-ember-ink); }
.ec-menu__toggle { display: none; }

.ec-mega {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 40;
  background: #fff;
  border-top: 1px solid var(--ec-line);
  border-bottom: 1px solid var(--ec-line);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity .2s var(--ec-ease), transform .2s var(--ec-ease), visibility 0s linear .2s;
}
.ec-menu__item.is-open > .ec-mega,
.ec-menu__item:focus-within > .ec-mega {
  visibility: visible;
  opacity: 1;
  transform: none;
  transition-delay: 0s;
}
.ec-mega__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 64px;
  padding-top: 36px;
  padding-bottom: 40px;
}
.ec-mega__links { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; }
.ec-mega__list { margin: 0; padding: 0; list-style: none; }
.ec-mega__list[data-depth="1"] {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px 40px;
}
.ec-mega__list[data-depth="2"] { display: grid; gap: 7px; margin-top: 10px; }
#header .ec-mega__link { font-size: 15px; color: var(--ec-ink); text-decoration: none; }
#header .ec-mega__list[data-depth="2"] .ec-mega__link { font-size: 14px; color: var(--ec-fog); }
#header .ec-mega__link:hover { color: var(--ec-ink); text-decoration: underline; text-underline-offset: 4px; }
#header .ec-mega__item.has-children > .ec-mega__link { font-size: 11.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.ec-mega__all-label { display: none; }
.ec-mega__feature { display: block; text-decoration: none; }
.ec-mega__feature-media { display: block; aspect-ratio: 5 / 4; overflow: hidden; background: var(--ec-blush-soft); }
.ec-mega__feature-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ec-ease); }
.ec-mega__feature:hover img { transform: scale(1.03); }
.ec-mega__feature-label { display: block; margin-top: 12px; font-family: var(--ec-serif); font-size: 20px; }

/* Tiroir mobile */
.ec-backdrop[hidden] { display: none; }
@media (min-width: 1024px) {
  .ec-header__burger, .ec-header__search-toggle { display: none; }
  .ec-backdrop { display: none; }
}
@media (max-width: 1023px) {
  .ec-header__bar { height: 60px; gap: 8px; }
  .ec-logo__text { font-size: 20px; letter-spacing: .2em; padding-left: .2em; }
  .ec-logo__img { max-height: 36px; }
  .ec-header__search {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 5;
    display: none;
    width: auto;
    padding: 10px var(--ec-gutter) 16px;
    background: var(--ec-linen);
    border-bottom: 1px solid var(--ec-line);
  }
  .ec-header.is-search-open .ec-header__search { display: block; }
  .ec-nav {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    width: min(88vw, 400px);
    overflow-y: auto;
    background: var(--ec-linen);
    border: 0;
    visibility: hidden;
    transform: translateX(-100%);
    transition: transform .35s var(--ec-ease), visibility 0s linear .35s;
  }
  .ec-nav.is-open { visibility: visible; transform: none; transition-delay: 0s; }
  .ec-nav__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 8px 8px var(--ec-gutter);
    border-bottom: 1px solid var(--ec-line);
  }
  .ec-nav__title { font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
  .ec-menu__list { display: block; }
  .ec-menu__item { position: relative; border-bottom: 1px solid var(--ec-line-soft); }
  .ec-menu__link {
    height: auto;
    padding: 15px 60px 15px var(--ec-gutter);
    font-family: var(--ec-serif);
    font-size: 23px;
    font-weight: 400;
    letter-spacing: -.01em;
    text-transform: none;
  }
  .ec-menu__link::after { display: none; }
  .ec-menu__toggle {
    position: absolute;
    top: 8px;
    right: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: none;
    border: 0;
    color: var(--ec-ink);
  }
  .ec-menu__toggle .ec-i { transition: transform .25s var(--ec-ease); }
  .ec-menu__item.is-open > .ec-menu__toggle .ec-i { transform: rotate(45deg); }
  .ec-mega {
    position: static;
    display: none;
    visibility: visible;
    opacity: 1;
    transform: none;
    background: transparent;
    border: 0;
    transition: none;
  }
  .ec-menu__item.is-open > .ec-mega { display: block; }
  .ec-menu__item:focus-within > .ec-mega { visibility: visible; }
  .ec-mega__inner { display: block; padding: 0 var(--ec-gutter) 22px; }
  .ec-mega__links { gap: 18px; }
  .ec-mega__list[data-depth="1"] { grid-template-columns: 1fr; gap: 12px; }
  .ec-mega__feature { display: none; }
  .ec-nav__foot { display: grid; gap: 2px; margin-top: auto; padding: 20px var(--ec-gutter) 28px; }
  #header .ec-nav__foot a { display: flex; align-items: center; gap: 12px; padding: 10px 0; font-size: 14px; text-decoration: none; }
  .ec-backdrop { position: fixed; inset: 0; z-index: 1000; background: rgba(36, 31, 32, .4); }
  .ec-announce__list { display: grid; gap: 0; width: 100%; }
  .ec-announce__item {
    grid-area: 1 / 1;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    opacity: 0;
    transition: opacity .6s;
  }
  .ec-announce__item.is-active { opacity: 1; }
  .ec-announce__side { display: none; }
}

html.ec-lock, html.ec-lock body { overflow: hidden; }

/* ---------- 8. Fil d'Ariane ---------- */
#wrapper .ec-breadcrumb { margin: 0; padding: 22px 0 6px; background: none; }
#wrapper .ec-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--ec-fog);
}
#wrapper .ec-breadcrumb li { display: inline-flex; align-items: center; gap: 6px; }
#wrapper .ec-breadcrumb li::after { content: none; margin: 0; }
#wrapper .ec-breadcrumb li + li::before { content: "/"; color: var(--ec-fog-light); }
#wrapper .ec-breadcrumb li a { color: var(--ec-fog); text-decoration: none; }
#wrapper .ec-breadcrumb li a:hover { color: var(--ec-ink); }
#wrapper .ec-breadcrumb [aria-current] { color: var(--ec-ink); }

/* ---------- 9. Accueil ---------- */
.ec-hero {
  position: relative;
  display: grid;
  place-items: center;
  min-height: clamp(540px, 76vh, 800px);
  overflow: hidden;
  background: var(--ec-blush);
}
.ec-hero__media { position: absolute; inset: 0; }
.ec-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.ec-hero__card {
  position: relative;
  z-index: 1;
  width: min(580px, calc(100% - 2 * var(--ec-gutter)));
  padding: 54px 56px 46px;
  text-align: center;
  background: #fff;
}
.ec-hero__title {
  margin: 0 0 18px;
  font-family: var(--ec-serif);
  font-size: clamp(38px, 4.4vw, 58px);
  font-weight: 300;
  line-height: 1.04;
  letter-spacing: -.02em;
  font-variation-settings: "opsz" 72;
}
.ec-hero__title em, .ec-section__title em, .ec-edito__title em, .ec-newsletter__title em { font-style: italic; }
.ec-hero__text { max-width: 40ch; margin: 0 auto 30px; font-size: 16px; color: var(--ec-ink-soft); }
.ec-hero__meta { margin: 22px 0 0; font-size: 12px; letter-spacing: .06em; color: var(--ec-fog); }

.ec-section { padding-top: var(--ec-section); }
.ec-home > .ec-section:last-child { padding-bottom: var(--ec-section); }
.ec-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
}
.ec-section__title {
  margin: 0;
  font-family: var(--ec-serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -.015em;
}

/* Réassurance */
.ec-press { background: var(--ec-linen); border-bottom: 1px solid var(--ec-line); }
.ec-press__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
  margin: 0 auto;
  padding-top: 40px;
  padding-bottom: 40px;
  list-style: none;
}
.ec-press__item {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 14px;
  row-gap: 4px;
  align-items: start;
}
.ec-press__icon { grid-row: 1 / span 2; width: 26px; height: 26px; margin-top: 1px; color: var(--ec-sage-deep); stroke-width: 1.3; }
.ec-press__title { margin: 0; font-size: 11.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.ec-press__text { margin: 0; font-family: var(--ec-serif); font-size: 17px; line-height: 1.35; color: var(--ec-ink-soft); }

/* Univers */
.ec-universes__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-universe__link { display: block; color: var(--ec-ink); text-decoration: none; }
.ec-universe__link:hover { color: var(--ec-ink); }
.ec-universe__media { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--ec-blush-soft); }
.ec-universe__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ec-ease); }
.ec-universe__link:hover .ec-universe__media img { transform: scale(1.04); }
.ec-universe__label { display: block; margin-top: 14px; font-size: 18px; font-weight: 500; letter-spacing: .01em; }
.ec-universe__count { display: block; margin-top: 2px; font-size: 13px; letter-spacing: .02em; color: var(--ec-fog); }

/* Bloc éditorial */
.ec-edito__inner {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  align-items: stretch;
}
.ec-edito__media { background: var(--ec-blush-soft); }
.ec-edito__media img { display: block; width: 100%; height: 100%; aspect-ratio: 6 / 7; object-fit: cover; }
.ec-edito__body { align-self: center; padding: clamp(36px, 6vw, 96px); background: #fff; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.ec-edito__title {
  margin: 0 0 22px;
  font-family: var(--ec-serif);
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -.015em;
}
.ec-edito__text { max-width: 52ch; margin: 0 0 14px; font-size: 16px; line-height: 1.7; color: var(--ec-ink-soft); }
.ec-edito__body .ec-btn { margin-top: 18px; }

/* Marques */
.ec-brands__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 3 / 2;
  padding: 10px 18px;
  background: var(--ec-linen-deep);
  isolation: isolate;
  transition: background-color .2s;
}
.ec-brand img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; filter: grayscale(1); opacity: .8; transition: filter .3s, opacity .3s; }
.ec-brand:hover { background: #fff; }
.ec-brand:hover img { filter: none; opacity: 1; }

/* Conseils */
.ec-guides__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-guides__grid > li { display: flex; }
.ec-guide {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  padding: 32px 30px 30px;
  color: var(--ec-ink);
  text-decoration: none;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
  transition: border-color .2s;
}
.ec-guide:hover { color: var(--ec-ink); border-color: var(--ec-ink); }
.ec-guide__num { font-family: var(--ec-serif); font-size: 42px; font-style: italic; font-weight: 300; line-height: 1; color: var(--ec-blush-deep); }
.ec-guide .ec-eyebrow { margin: 16px 0 0; }
.ec-guide__title { font-family: var(--ec-serif); font-size: 24px; font-weight: 400; line-height: 1.2; }
.ec-guide__text { flex: 1; font-size: 14.5px; color: var(--ec-fog); }
.ec-guide .ec-link-arrow { align-self: flex-start; margin-top: 8px; }

@media (max-width: 1199px) {
  .ec-brands__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  .ec-press__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; padding-top: 28px; padding-bottom: 28px; }
  .ec-guides__grid { grid-template-columns: 1fr; }
  .ec-brands__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ec-hero { display: block; min-height: 0; background: none; }
  .ec-hero__media { position: relative; display: block; aspect-ratio: 4 / 5; }
  .ec-hero__card { width: calc(100% - 2 * var(--ec-gutter)); margin: -80px auto 0; padding: 34px 24px 30px; }
  .ec-section__head { align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 24px; }
  .ec-edito__inner { grid-template-columns: 1fr; }
  .ec-edito__media img { aspect-ratio: 4 / 3; }
  .ec-press__text { font-size: 15px; }
  .ec-brands__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Défilement horizontal sur mobile (univers, sélections) */
@media (max-width: 767px) {
  #wrapper .ec-scroller {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 46%;
    grid-template-columns: none;
    gap: 14px;
    margin: 0 calc(-1 * var(--ec-gutter));
    padding: 0 var(--ec-gutter) 6px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--ec-gutter);
    scrollbar-width: none;
  }
  #wrapper .ec-scroller::-webkit-scrollbar { display: none; }
  #wrapper .ec-scroller > * { scroll-snap-align: start; }
  #wrapper .ec-universes__grid.ec-scroller { grid-auto-columns: 40%; }
}

/* ---------- 10. Grilles et vignettes produit ---------- */
#wrapper .ec-grid,
#footer .ec-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 44px 20px;
  margin: 0;
  padding: 0;
}
#wrapper .ec-grid--listing { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1199px) {
  #wrapper .ec-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  #wrapper .ec-grid,
  #wrapper .ec-grid--listing { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 14px; }
}

.ec-card-wrap { min-width: 0; }
.ec-card.product-miniature {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: 100%;
}
.ec-card .ec-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  height: auto;
  margin: 0;
  overflow: hidden;
  background: var(--ec-tile);
  isolation: isolate;
}
.ec-card .ec-card__media .ec-card__image {
  position: absolute;
  inset: 0;
  display: block;
  height: 100%;
}
.ec-card .ec-card__image picture { display: block; width: 100%; height: 100%; }
.ec-card .ec-card__media .ec-card__img {
  position: static;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  mix-blend-mode: multiply;
  transform: none;
  transition: transform .8s var(--ec-ease);
}
.ec-card .ec-card__media .ec-card__img-alt {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .5s var(--ec-ease);
}
@media (hover: hover) {
  .ec-card:hover .ec-card__img-alt { opacity: 1; }
  .ec-card:hover .ec-card__img { transform: scale(1.03); }
}

/* Badges */
#wrapper .ec-flags,
.ec-flags {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  width: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}
#wrapper .ec-flags li.ec-flag {
  position: static;
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 5px 8px 4px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ec-ink);
  background: #fff;
  border-radius: 2px;
  box-shadow: none;
}
#wrapper .ec-flags li.ec-flag--new { background: var(--ec-ember); color: var(--ec-ink); }
#wrapper .ec-flags li.ec-flag--discount,
#wrapper .ec-flags li.ec-flag--on-sale { background: var(--ec-forest); color: #fff; }
#wrapper .ec-flags li.ec-flag--on-sale + li.ec-flag--discount { display: none; }
#wrapper .ec-flags li.ec-flag--out_of_stock { background: #fff; color: var(--ec-fog); }

/* Ajout rapide */
.ec-card__form { margin: 0; }
.ec-card .ec-card__add {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 42px;
  padding: 0 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ec-ink);
  text-decoration: none;
  background: rgba(255, 255, 255, .95);
  border: 0;
  cursor: pointer;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .25s, transform .25s var(--ec-ease), background-color .2s, color .2s;
}
.ec-card .ec-card__add .ec-i { width: 18px; height: 18px; }
.ec-card:hover .ec-card__add,
.ec-card:focus-within .ec-card__add { opacity: 1; transform: none; }
.ec-card .ec-card__add:hover,
.ec-card .ec-card__add:focus { color: #fff; background: var(--ec-forest); }
@media (hover: none) {
  .ec-card .ec-card__add {
    left: auto;
    right: 8px;
    bottom: 8px;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    opacity: 1;
    transform: none;
  }
  .ec-card .ec-card__add span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Liste d'envies (module blockwishlist) */
.ec-card .wishlist-button-add {
  position: absolute;
  top: 10px;
  right: 10px;
  left: auto;
  z-index: 4;
  width: 36px;
  min-width: 36px;
  height: 36px;
  padding: 0;
  background: rgba(255, 255, 255, .92);
  border: 0;
  border-radius: 50%;
  box-shadow: none;
}
.ec-card .wishlist-button-add i { font-size: 19px; color: var(--ec-ink); }

/* Texte de la vignette */
.ec-card .ec-card__body {
  position: static;
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: auto;
  padding: 14px 2px 0;
  text-align: left;
  background: none;
}
.ec-card .ec-card__body::after { content: none; }
.ec-card__brand { margin: 0; font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ec-fog); }
.ec-card .ec-card__title {
  margin: 0;
  font-family: var(--ec-sans);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: .01em;
  text-transform: none;
}
.ec-card .ec-card__title a {
  display: -webkit-box;
  overflow: hidden;
  font-size: inherit;
  font-weight: inherit;
  color: var(--ec-ink);
  text-align: left;
  text-decoration: none;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.ec-card .ec-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ec-card .ec-card__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  margin-top: 2px;
  font-size: 15px;
  font-weight: 500;
  color: var(--ec-ink);
  text-align: left;
}
.ec-card .ec-card__price .price { font-weight: 500; }
.ec-card .ec-card__price.has-discount .price { color: var(--ec-ember-ink); }
.ec-card .ec-card__price .regular-price { font-size: 13px; font-weight: 400; color: var(--ec-fog); text-decoration: line-through; }
.ec-card .variant-links {
  position: static;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  width: auto;
  min-height: 0;
  margin-top: 6px;
  padding: 0;
  background: none;
  text-align: left;
}
.ec-card .variant-links .color {
  width: 14px;
  height: 14px;
  margin: 0;
  border: 1px solid rgba(0, 0, 0, .14);
  border-radius: 50%;
  box-shadow: none;
}
.ec-card .variant-links .count { font-size: 12px; color: var(--ec-fog); }

/* Étoiles (module productcomments) */
.ec-card .product-list-reviews {
  position: static;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  width: auto;
  height: auto;
  margin: 4px 0 0;
  padding: 0;
  visibility: visible;
  background: none;
  text-align: left;
}
.ec-card .product-list-reviews .grade-stars { width: auto; }
.ec-card .product-list-reviews .comments-nb { font-size: 12px; color: var(--ec-fog); }

/* ---------- 11. Pages catégories ---------- */
#main.ec-listing { padding-bottom: 80px; }
.ec-listing__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 32px;
  padding: 10px 0 26px;
}
.ec-listing__title {
  margin: 0;
  font-family: var(--ec-serif);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 300;
  line-height: 1.04;
  letter-spacing: -.02em;
}
.ec-listing__desc { max-width: 64ch; margin-top: 14px; font-size: 15.5px; color: var(--ec-ink-soft); }
.ec-listing__desc p { margin: 0 0 8px; }
.ec-listing__cover img { width: 200px; aspect-ratio: 4 / 5; object-fit: cover; }

#subcategories.ec-subcats { margin: 0 0 28px; padding: 0; background: none; border: 0; box-shadow: none; }
#subcategories.ec-subcats .ec-subcats__list { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin: 0; padding: 0; list-style: none; }
#subcategories.ec-subcats .ec-subcats__list li {
  float: none;
  width: auto;
  min-width: 0;
  min-height: 0;
  height: auto;
  margin: 0;
  padding: 0;
  text-align: left;
}
#wrapper .ec-subcats__link {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 16px;
  font-size: 13.5px;
  color: var(--ec-ink);
  text-decoration: none;
  white-space: nowrap;
  background: transparent;
  border: 1px solid var(--ec-line);
  transition: border-color .2s, background-color .2s;
}
#wrapper .ec-subcats__link:hover { background: #fff; border-color: var(--ec-ink); }

.ec-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 22px;
  padding: 10px 0;
  border-top: 1px solid var(--ec-line);
  border-bottom: 1px solid var(--ec-line);
}
.ec-toolbar__count { margin: 0; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; color: var(--ec-fog); }
.ec-toolbar__actions { display: flex; align-items: center; gap: 8px; }
.ec-toolbar__filter {
  display: none;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 14px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ec-ink);
  background: none;
  border: 1px solid var(--ec-ink);
  cursor: pointer;
}
.ec-toolbar__filter .ec-i { width: 18px; height: 18px; }

.ec-sort { position: relative; }
.products-sort-order .ec-sort__btn,
.ec-sort .ec-sort__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto;
  height: 40px;
  padding: 0 4px 0 12px;
  font-size: 13.5px;
  color: var(--ec-ink);
  background: none;
  border: 0;
  cursor: pointer;
}
.ec-sort__prefix { color: var(--ec-fog); }
.ec-sort .ec-sort__btn .ec-i { width: 18px; height: 18px; }
.products-sort-order .ec-sort__menu,
.ec-sort .ec-sort__menu {
  right: 0;
  left: auto;
  width: auto;
  min-width: 250px;
  margin-top: 4px;
  padding: 8px 0;
  background: #fff;
  border: 1px solid var(--ec-line);
  border-radius: 0;
  box-shadow: none;
}
.ec-sort .ec-sort__menu .select-list {
  display: block;
  padding: 9px 18px;
  font-size: 14px;
  color: var(--ec-ink);
  text-decoration: none;
}
.ec-sort .ec-sort__menu .select-list:hover,
.ec-sort .ec-sort__menu .select-list.current { color: var(--ec-ink); background: var(--ec-linen); }

/* Filtres */
.ec-filters__head, .ec-filters__foot { display: none; }
#search_filters_wrapper.ec-filters,
#category #left-column #search_filters_wrapper.ec-filters { display: block; margin: 0; padding: 0; }
#search_filters.ec-facets { margin: 0; padding: 0; background: none; }
.ec-facets__clear { margin: 0 0 14px; }
#search_filters .ec-facet { margin: 0; border-top: 1px solid var(--ec-line); }
#search_filters .ec-facet:last-child { border-bottom: 1px solid var(--ec-line); }
#search_filters .ec-facet .ec-facet__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 16px 0;
  font-family: var(--ec-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--ec-ink);
  list-style: none;
  cursor: pointer;
}
#search_filters .ec-facet .ec-facet__title::-webkit-details-marker { display: none; }
#search_filters .ec-facet .ec-facet__title .ec-i { width: 18px; height: 18px; transition: transform .2s; }
#search_filters .ec-facet[open] .ec-facet__title .ec-i { transform: rotate(180deg); }
#search_filters .ec-facet .ec-facet__list {
  display: grid;
  gap: 10px;
  max-height: 290px;
  margin: 0 0 18px;
  padding: 0 0 0 1px;
  overflow-y: auto;
  list-style: none;
}
#search_filters .ec-facet .ec-facet__list.is-colors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#search_filters .ec-facet .ec-facet__list li { margin: 0; padding: 0; }
#search_filters .facet .ec-check {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 14px;
  color: var(--ec-ink);
  text-align: left;
  cursor: pointer;
}
#search_filters .ec-check .ec-check__input {
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.ec-check__box {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  background: #fff;
  border: 1px solid var(--ec-fog-light);
}
.ec-check__box .ec-i { width: 14px; height: 14px; color: #fff; stroke-width: 2.2; opacity: 0; }
.ec-check__input:checked + .ec-check__box { background: var(--ec-ink); border-color: var(--ec-ink); }
.ec-check__input:checked + .ec-check__box .ec-i { opacity: 1; }
.ec-check__input:focus-visible + .ec-check__box,
.ec-check__input:focus-visible + .ec-check__swatch { outline: 2px solid var(--ec-blue); outline-offset: 2px; }
.ec-check__swatch {
  flex: none;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(0, 0, 0, .14);
  border-radius: 50%;
  background-size: cover;
  box-shadow: 0 0 0 2px var(--ec-linen), 0 0 0 3px transparent;
}
.ec-check__input:checked + .ec-check__swatch { box-shadow: 0 0 0 2px var(--ec-linen), 0 0 0 3px var(--ec-ink); }
#search_filters .facet .ec-check a.ec-check__label {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  font-size: 14px;
  color: var(--ec-ink);
  text-decoration: none;
}
#search_filters .facet .ec-check a.ec-check__label:hover { color: var(--ec-ink); text-decoration: underline; text-underline-offset: 3px; }
#search_filters .facet .ec-check .magnitude { font-size: 12px; color: var(--ec-fog); }
.ec-facet__range { margin: 0 0 6px; font-size: 14px; color: var(--ec-ink-soft); }
#search_filters .ec-facet__slider { margin: 0 0 22px; padding: 0 8px; list-style: none; }
#search_filters .ui-slider {
  position: relative;
  height: 2px;
  margin: 20px 2px 10px;
  background: var(--ec-line);
  border: 0;
  border-radius: 0;
}
#search_filters .ui-slider .ui-slider-range { position: absolute; height: 100%; background: var(--ec-ink); border: 0; }
#search_filters .ui-slider .ui-slider-handle {
  position: absolute;
  top: -8px;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  background: #fff;
  border: 1px solid var(--ec-ink);
  border-radius: 50%;
  outline: none;
  cursor: grab;
}

/* Filtres actifs */
#js-active-search-filters.ec-active { margin: 0 0 18px; padding: 0; background: none; }
#js-active-search-filters.ec-active.hide { display: none; }
.ec-active__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ec-active .ec-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  margin: 0;
  padding: 0 4px 0 12px;
  font-size: 13px;
  color: var(--ec-ink);
  background: #fff;
  border: 1px solid var(--ec-line);
  box-shadow: none;
}
.ec-chip__facet { color: var(--ec-fog); }
.ec-active .ec-chip .ec-chip__remove { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; color: var(--ec-ink); }
.ec-chip__remove .ec-i { width: 14px; height: 14px; }

/* Pagination */
.ec-pagination {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 64px 0 0;
}
.ec-pagination .ec-pagination__summary { margin: 0; font-size: 12px; letter-spacing: .08em; line-height: 1.4; color: var(--ec-fog); }
.ec-pagination .ec-pagination__list { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; background: none; }
.ec-pagination .ec-pagination__list li { margin: 0; }
.ec-pagination .ec-pagination__list a,
.ec-pagination .ec-pagination__list .spacer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ec-ink);
  text-decoration: none;
  border: 1px solid transparent;
}
.ec-pagination .ec-pagination__list .current a { font-size: 14px; color: var(--ec-ink); border-color: var(--ec-ink); }
.ec-pagination .ec-pagination__list a:hover { border-color: var(--ec-line); }
.ec-pagination .ec-pagination__list a.disabled { opacity: .35; pointer-events: none; }
.ec-pagination .ec-pagination__list .ec-i { width: 18px; height: 18px; }

.ec-listing__seo {
  max-width: 820px;
  margin: 80px 0 0;
  padding-top: 40px;
  color: var(--ec-ink-soft);
  border-top: 1px solid var(--ec-line);
}
.ec-listing__seo h2 { margin: 0 0 12px; font-size: 28px; font-weight: 300; }

@media (max-width: 991px) {
  .ec-listing__header { grid-template-columns: 1fr; }
  .ec-listing__cover { display: none; }
  .ec-toolbar__filter { display: inline-flex; }
  .ec-sort__prefix { display: none; }

  .layout-left-column #left-column {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1002;
    width: min(92vw, 420px);
    overflow-y: auto;
    background: var(--ec-linen);
    visibility: hidden;
    transform: translateX(-100%);
    transition: transform .35s var(--ec-ease), visibility 0s linear .35s;
  }
  html.ec-filters-open .layout-left-column #left-column { visibility: visible; transform: none; transition-delay: 0s; }
  #search_filters_wrapper.ec-filters,
  #category #left-column #search_filters_wrapper.ec-filters { display: flex; flex-direction: column; min-height: 100%; }
  .ec-filters__head {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 8px 8px var(--ec-gutter);
    background: var(--ec-linen);
    border-bottom: 1px solid var(--ec-line);
  }
  .ec-filters__title { margin: 0; font-size: 11.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
  .ec-filters__body { flex: 1; padding: 14px var(--ec-gutter) 24px; }
  .ec-filters__foot {
    position: sticky;
    bottom: 0;
    display: block;
    padding: 14px var(--ec-gutter) calc(14px + env(safe-area-inset-bottom));
    background: var(--ec-linen);
    border-top: 1px solid var(--ec-line);
  }
  .ec-filters-backdrop { position: fixed; inset: 0; z-index: 1001; background: rgba(36, 31, 32, .4); }
}
@media (max-width: 767px) {
  #subcategories.ec-subcats .ec-subcats__list {
    flex-wrap: nowrap;
    margin: 0 calc(-1 * var(--ec-gutter));
    padding: 0 var(--ec-gutter);
    overflow-x: auto;
    scrollbar-width: none;
  }
  #subcategories.ec-subcats .ec-subcats__list::-webkit-scrollbar { display: none; }
  #subcategories.ec-subcats .ec-subcats__list li { flex: none; }
  .ec-toolbar { gap: 10px; }
}

/* ---------- 12. Fiche produit ---------- */
.ec-product { padding-top: 8px; }
#main .ec-product__grid,
.ec-product .ec-product__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 64px;
  margin: 0;
}
.ec-product .ec-product__grid::before,
.ec-product .ec-product__grid::after { content: none; }
.ec-product__media { position: relative; min-width: 0; }
#product #main .ec-product__media #content,
.ec-product__media .page-content {
  position: sticky;
  top: calc(var(--ec-header-h) + 20px);
  max-width: none;
  margin: 0;
  padding: 0;
}
.ec-product__media .ec-flags { top: 16px; left: 16px; }

.ec-gallery { margin: 0; }
.ec-gallery .ec-gallery__cover {
  position: relative;
  aspect-ratio: 1 / 1;
  margin: 0;
  overflow: hidden;
  background: var(--ec-tile);
  isolation: isolate;
}
.ec-gallery .ec-gallery__cover picture { display: block; width: 100%; height: 100%; }
.ec-gallery .ec-gallery__cover img.ec-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: none;
  mix-blend-mode: multiply;
}
.ec-gallery .ec-gallery__zoom {
  position: absolute;
  top: auto;
  left: auto;
  right: 14px;
  bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  color: var(--ec-ink);
  background: rgba(255, 255, 255, .92);
  border: 0;
  border-radius: 50%;
  opacity: 1;
  cursor: zoom-in;
}
#main .ec-gallery .ec-gallery__thumbs-wrap { margin-top: 12px; overflow-x: auto; white-space: normal; scrollbar-width: none; }
#main .ec-gallery .ec-gallery__thumbs-wrap::-webkit-scrollbar { display: none; }
#main .ec-gallery .ec-gallery__thumbs { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
#main .ec-gallery .ec-gallery__thumbs .thumb-container { display: block; flex: none; background: var(--ec-tile); isolation: isolate; }
#main .ec-gallery .ec-gallery__thumbs .thumb {
  display: block;
  width: 84px;
  height: 84px;
  margin: 0;
  object-fit: contain;
  mix-blend-mode: multiply;
  border: 1px solid transparent;
  cursor: pointer;
}
#main .ec-gallery .ec-gallery__thumbs .thumb.selected,
#main .ec-gallery .ec-gallery__thumbs .thumb:hover { border-color: var(--ec-ink); }

.ec-product__info { min-width: 0; padding-top: 4px; }
.ec-product__brand {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ec-fog);
  text-decoration: none;
}
.ec-product__brand:hover { color: var(--ec-ink); }
.ec-product .ec-product__title {
  margin: 0 0 12px;
  font-family: var(--ec-serif);
  font-size: clamp(30px, 3vw, 44px);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -.02em;
  text-transform: none;
}
.ec-product__rating { margin-bottom: 8px; }

.ec-product .ec-price { margin: 16px 0 18px; }
.ec-product .ec-price__row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin: 0; color: var(--ec-ink); }
.ec-product .ec-price__current { font-size: 25px; font-weight: 500; letter-spacing: .01em; color: var(--ec-ink); }
.ec-product .ec-price__row.has-discount .ec-price__current { color: var(--ec-ember-ink); }
.ec-product .ec-price .product-discount { margin: 0; }
.ec-product .ec-price .ec-price__old { margin: 0; font-size: 16px; font-weight: 400; color: var(--ec-fog); text-decoration: line-through; }
.ec-product .ec-price .ec-price__badge {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 4px 8px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  background: var(--ec-forest);
  border-radius: 2px;
}
.ec-product .ec-price__meta { margin: 4px 0 0; font-size: 12.5px; color: var(--ec-fog); }
.ec-product__short { margin-bottom: 6px; font-size: 15.5px; color: var(--ec-ink-soft); }
.ec-product__short p { margin: 0 0 8px; }

/* Déclinaisons */
.ec-variants { margin: 22px 0 6px; }
.ec-variants .ec-variants__group { margin: 0 0 18px; }
.product-actions .ec-variants .ec-variants__label {
  margin: 0 0 10px;
  font-size: 11.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ec-fog);
}
.ec-variants__label strong { font-weight: 600; color: var(--ec-ink); }
.ec-variants .ec-sizes,
.ec-variants .ec-swatches { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ec-variants .ec-sizes .input-container,
.ec-variants .ec-swatches .input-container { position: relative; float: none; margin: 0; }
.ec-variants .ec-size,
.ec-variants .ec-swatch { position: relative; display: block; margin: 0; cursor: pointer; }
.ec-variants .ec-size .input-radio,
.ec-variants .ec-swatch .input-color {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.ec-variants .ec-size .ec-size__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 46px;
  padding: 0 14px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ec-ink);
  background: #fff;
  border: 1px solid var(--ec-line);
  box-shadow: none;
  transition: border-color .15s, box-shadow .15s;
}
.ec-variants .ec-size:hover .ec-size__label { border-color: var(--ec-ink); }
.ec-variants .ec-size .input-radio:checked + .ec-size__label { border: 1px solid var(--ec-ink); box-shadow: inset 0 0 0 1px var(--ec-ink); }
.ec-variants .ec-size .input-radio:focus-visible + .ec-size__label { outline: 2px solid var(--ec-blue); outline-offset: 2px; }
.ec-variants .ec-swatch .ec-swatch__color {
  display: block;
  width: 30px;
  height: 30px;
  background-size: cover;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 50%;
  box-shadow: 0 0 0 3px var(--ec-linen), 0 0 0 4px transparent;
  transition: box-shadow .15s;
}
.ec-variants .ec-swatch:hover .ec-swatch__color,
.ec-variants .ec-swatch .input-color:checked + .ec-swatch__color { border: 1px solid rgba(0, 0, 0, .12); box-shadow: 0 0 0 3px var(--ec-linen), 0 0 0 4px var(--ec-ink); }
.ec-variants .ec-swatch .input-color:focus-visible + .ec-swatch__color { outline: 2px solid var(--ec-blue); outline-offset: 5px; }
.ec-variants .ec-select-native { width: 100%; max-width: 320px; }

/* Achat */
.ec-buy { margin-top: 6px; }
.ec-buy .ec-buy__row { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }
.ec-buy .ec-buy__qty { flex: none; }
.ec-buy .ec-buy__add { flex: 1 1 200px; }
@media (max-width: 480px) {
  .ec-buy .ec-buy__row { gap: 8px; }
  .ec-buy .ec-buy__add { flex: 1 1 120px; }
  .ec-buy__qty .bootstrap-touchspin { width: 108px; }
  .ec-buy__qty .bootstrap-touchspin #quantity_wanted { padding: 0 32px; }
  .ec-buy__qty .bootstrap-touchspin .btn-touchspin { width: 32px; }
  .product-actions .ec-buy .add-to-cart { padding: 0 12px; letter-spacing: .1em; }
}
.product-actions .ec-buy .add-to-cart { width: 100%; height: 54px; padding: 0 20px; }
.ec-buy__qty .bootstrap-touchspin {
  position: relative;
  display: flex;
  width: 132px;
  height: 54px;
  background: #fff;
  border: 1px solid var(--ec-line);
  box-shadow: none;
}
.ec-buy__qty .bootstrap-touchspin #quantity_wanted,
.ec-buy__qty #quantity_wanted {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0 40px;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  color: var(--ec-ink);
  background: transparent;
  border: 0;
  float: none;
}
.ec-buy__qty .bootstrap-touchspin .input-group-btn-vertical { position: static; display: contents; width: auto; }
.ec-buy__qty .bootstrap-touchspin .btn-touchspin {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  color: var(--ec-ink);
  background: transparent;
  border: 0;
  border-radius: 0;
}
.ec-buy__qty .bootstrap-touchspin .bootstrap-touchspin-down { left: 0; }
.ec-buy__qty .bootstrap-touchspin .bootstrap-touchspin-up { right: 0; }
.ec-buy__qty .bootstrap-touchspin .btn-touchspin i { display: none; }
.ec-buy__qty .bootstrap-touchspin .bootstrap-touchspin-up::after { content: "+"; font-size: 20px; font-weight: 300; line-height: 1; }
.ec-buy__qty .bootstrap-touchspin .bootstrap-touchspin-down::after { content: "\2212"; font-size: 20px; font-weight: 300; line-height: 1; }
.ec-buy__qty .bootstrap-touchspin .btn-touchspin:hover { background: var(--ec-linen); }

.ec-buy .wishlist-button-product,
.ec-buy .wishlist-button-add {
  width: 54px;
  min-width: 54px;
  height: 54px;
  margin: 0;
  padding: 0;
  background: #fff;
  border: 1px solid var(--ec-line);
  border-radius: 0;
  box-shadow: none;
}
.ec-buy .wishlist-button-add i { font-size: 22px; color: var(--ec-ink); }

#product-availability.ec-stock {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin: 16px 0 0;
  font-size: 13.5px;
  font-weight: 400;
  color: var(--ec-ink);
}
#product-availability.ec-stock:empty { display: none; }
.ec-stock__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ec-sage); box-shadow: 0 0 0 3px rgba(139, 189, 120, .28); }
.ec-stock--last_remaining_items .ec-stock__dot { background: var(--ec-ember); box-shadow: 0 0 0 3px rgba(255, 150, 91, .28); }
.ec-stock--unavailable .ec-stock__dot { background: var(--ec-fog-light); box-shadow: none; }
.ec-stock__delivery { color: var(--ec-fog); }
.ec-stock__delivery::before { content: "·"; margin-right: 10px; }
.product-minimal-quantity:empty { display: none; }

/* Réassurance compacte */
.ec-assure {
  display: grid;
  gap: 12px;
  margin: 28px 0 8px;
  padding: 20px 22px;
  list-style: none;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
}
.ec-assure__item { display: flex; align-items: flex-start; gap: 12px; font-size: 13.5px; line-height: 1.45; color: var(--ec-ink-soft); }
.ec-assure__item .ec-i { width: 20px; height: 20px; margin-top: 1px; color: var(--ec-sage-deep); }
.ec-assure__item strong { font-weight: 600; color: var(--ec-ink); }

/* Accordéons */
.ec-accordion { margin-top: 28px; border-bottom: 1px solid var(--ec-line); }
.ec-accordion__item { border-top: 1px solid var(--ec-line); }
.ec-accordion__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 0;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  list-style: none;
  cursor: pointer;
}
.ec-accordion__summary::-webkit-details-marker { display: none; }
.ec-accordion__summary .ec-i { width: 18px; height: 18px; transition: transform .25s var(--ec-ease); }
.ec-accordion__item[open] > .ec-accordion__summary .ec-i { transform: rotate(45deg); }
.ec-accordion__body { padding: 0 0 22px; font-size: 15px; color: var(--ec-ink-soft); }

.ec-rte { font-size: 15px; line-height: 1.7; color: var(--ec-ink-soft); }
.ec-rte h2, .ec-rte h3, .ec-rte h4 { margin: 1.2em 0 .45em; font-family: var(--ec-serif); font-weight: 400; color: var(--ec-ink); }
.ec-rte h2 { font-size: 24px; }
.ec-rte h3 { font-size: 19px; }
.ec-rte > :first-child { margin-top: 0; }
.ec-rte p { margin: 0 0 .9em; }
.ec-rte ul { margin: 0 0 1em; padding-left: 0; list-style: none; }
.ec-rte ul li { position: relative; margin-bottom: 6px; padding-left: 18px; list-style: none; }
.ec-rte ul li::marker { content: ""; }
.ec-rte ul li::before { content: ""; position: absolute; top: .66em; left: 2px; width: 6px; height: 6px; border-radius: 50%; background: var(--ec-sage); }
.ec-rte a { text-decoration: underline; text-underline-offset: 3px; }

.ec-specs { display: grid; margin: 0; }
.ec-specs__row {
  display: grid;
  grid-template-columns: minmax(120px, 38%) 1fr;
  gap: 16px;
  padding: 10px 0;
  font-size: 14px;
  border-bottom: 1px solid var(--ec-line-soft);
}
.ec-specs__row:last-child { border-bottom: 0; }
.ec-specs dt { font-weight: 500; color: var(--ec-fog); }
.ec-specs dd { margin: 0; color: var(--ec-ink); }

/* Étoiles (note moyenne) */
.ec-stars { position: relative; display: inline-flex; line-height: 0; }
.ec-stars .ec-i { width: 15px; height: 15px; margin-right: 2px; }
.ec-stars__base { display: inline-flex; color: var(--ec-line); }
.ec-stars__fill { position: absolute; top: 0; left: 0; display: inline-flex; overflow: hidden; white-space: nowrap; color: var(--ec-ember); }

/* Note sous le titre */
.ec-rating,
.product-comments-additional-info.ec-rating { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 6px 14px; margin: 0; padding: 0; }
.ec-rating .comments-note { display: flex; align-items: center; margin: 0; }
.ec-rating__link { font-size: 13px; color: var(--ec-ink); text-decoration: underline; text-underline-offset: 3px; }
.ec-rating__link:hover { color: var(--ec-ink-soft); }
.product-comments-additional-info.ec-rating .link-comment { margin: 0; padding: 0; border: 0; }
.product-comments-additional-info.ec-rating .link-comment::before,
.product-comments-additional-info.ec-rating .link-comment::after { content: none; }
.ec-product__rating .ec-link-btn { font-size: 11px; }

/* Avis clients */
.ec-reviews { padding-top: var(--ec-section); }
.ec-reviews .ec-reviews__head,
#product-comments-list-header.ec-reviews__head { display: flex; margin-bottom: 24px; padding: 0; background: none; border: 0; }
#product-comments-list-header .ec-reviews__summary { font-weight: 400; margin: 0; padding: 0; }
.ec-reviews__summary { display: flex; align-items: center; gap: 12px; margin: 0; }
.ec-reviews__summary .comments-note { display: flex; margin: 0; }
.ec-reviews__count { font-size: 13px; color: var(--ec-fog); }
#product-comments-list { display: grid; gap: 12px; }
#product-comments-list .ec-review {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
  margin: 0;
  padding: 26px 28px;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
}
#product-comments-list .ec-review::before,
#product-comments-list .ec-review::after { content: none; }
.ec-review__meta { display: grid; gap: 6px; align-content: start; }
.ec-review__meta .grade-stars { margin: 0 0 4px; }
.ec-review .ec-review__author { margin: 0; font-size: 14px; font-weight: 600; color: var(--ec-ink); }
.ec-review .ec-review__date { margin: 0; font-size: 12.5px; color: var(--ec-fog); }
.ec-review .ec-review__title { margin: 0 0 8px; font-family: var(--ec-serif); font-size: 21px; font-weight: 400; color: var(--ec-ink); }
.ec-review .ec-review__text { margin: 0; font-size: 15px; color: var(--ec-ink-soft); }
.ec-review__actions { display: flex; gap: 14px; margin-top: 14px; }
.ec-review__actions a { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--ec-fog); cursor: pointer; }
.ec-review__actions .material-icons { font-size: 16px; }
.ec-reviews__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; }
#product-comments-list-pagination ul { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
#product-comments-list-pagination li span { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; font-size: 13px; cursor: pointer; border: 1px solid transparent; }
#product-comments-list-pagination li.active span { border-color: var(--ec-ink); }
.ec-reviews__empty { padding: 28px; text-align: left; background: #fff; border: 1px solid var(--ec-line-soft); }
.ec-reviews__empty p { margin: 0 0 16px; color: var(--ec-ink-soft); }
@media (max-width: 767px) {
  #product-comments-list .ec-review { grid-template-columns: 1fr; gap: 12px; padding: 22px 20px; }
}

/* Fenêtres des avis (module) */
#post-product-comment-modal .modal-content,
#product-comment-posted-modal .modal-content,
#update-comment-usefulness-post-error .modal-content,
#report-comment-confirmation .modal-content,
#report-comment-posted .modal-content,
#report-comment-post-error .modal-content { border: 0; border-radius: 0; box-shadow: none; }
#post-product-comment-modal .modal-header h2,
#post-product-comment-modal .modal-header .h2 { font-family: var(--ec-serif); font-weight: 300; }

/* Sections sous la fiche */
.ec-related { padding-top: var(--ec-section); }

/* Barre d'achat mobile */
.ec-sticky-buy {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px var(--ec-gutter) calc(10px + env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid var(--ec-line);
  transform: translateY(110%);
  transition: transform .3s var(--ec-ease);
}
.ec-sticky-buy.is-visible { transform: none; }
.ec-sticky-buy__info { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.ec-sticky-buy__name { overflow: hidden; font-size: 13px; white-space: nowrap; text-overflow: ellipsis; }
.ec-sticky-buy__price { font-size: 15px; font-weight: 600; }
.ec-sticky-buy .ec-btn { min-height: 46px; padding: 0 18px; }
@media (min-width: 992px) { .ec-sticky-buy { display: none; } }

@media (max-width: 991px) {
  #main .ec-product__grid,
  .ec-product .ec-product__grid { grid-template-columns: 1fr; gap: 28px; }
  #product #main .ec-product__media #content,
  .ec-product__media .page-content { position: static; }
  .ec-gallery .ec-gallery__cover { margin: 0 calc(-1 * var(--ec-gutter)); }
}

/* ---------- 13. Tiroir « ajouté au panier » ---------- */
.modal-backdrop { background: var(--ec-ink); }
.modal-backdrop.in, .modal-backdrop.show { opacity: .35; }
#blockcart-modal.ec-drawer-modal { padding: 0 !important; }
#blockcart-modal.ec-drawer-modal .modal-dialog {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(440px, 100vw);
  max-width: none;
  height: 100%;
  margin: 0;
  transform: translateX(100%);
  transition: transform .35s var(--ec-ease);
}
#blockcart-modal.ec-drawer-modal.in .modal-dialog,
#blockcart-modal.ec-drawer-modal.show .modal-dialog { transform: none; }
#blockcart-modal.ec-drawer-modal .modal-content {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
#blockcart-modal .ec-drawer-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 12px 12px 24px;
  background: #fff;
  border-bottom: 1px solid var(--ec-line-soft);
}
#blockcart-modal .ec-drawer-modal__head::before,
#blockcart-modal .ec-drawer-modal__head::after { content: none; }
#blockcart-modal .ec-drawer-modal__head .close { float: none; margin: 0; opacity: 1; }
#blockcart-modal .ec-drawer-modal__title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: var(--ec-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--ec-ink);
}
#blockcart-modal .ec-drawer-modal__title .ec-i { color: var(--ec-sage-deep); }
#blockcart-modal .ec-drawer-modal__body { flex: 1; padding: 24px; overflow-y: auto; background: #fff; }
#blockcart-modal .ec-drawer-modal__foot {
  display: grid;
  gap: 10px;
  padding: 18px 24px calc(22px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--ec-line-soft);
}
#blockcart-modal .ec-drawer-modal__foot::before,
#blockcart-modal .ec-drawer-modal__foot::after { content: none; }
#blockcart-modal .ec-drawer-modal__foot .ec-btn { margin: 0; }
.ec-line { display: grid; grid-template-columns: 96px 1fr; gap: 16px; align-items: start; }
.ec-line__media { aspect-ratio: 1; background: var(--ec-tile); isolation: isolate; }
#blockcart-modal .ec-line__media img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
#blockcart-modal .ec-line__name { margin: 0 0 6px; font-size: 15px; font-weight: 500; color: var(--ec-ink); }
#blockcart-modal .ec-line__attr { margin: 0; font-size: 13px; color: var(--ec-fog); }
#blockcart-modal .ec-line__attr strong { font-weight: 500; color: var(--ec-ink); }
#blockcart-modal .ec-line__price { margin: 8px 0 0; font-size: 15px; font-weight: 600; color: var(--ec-ink); }
.ec-freeship { margin: 22px 0 0; padding: 14px 16px; background: var(--ec-linen); }
.ec-freeship .ec-freeship__text { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 13.5px; color: var(--ec-ink); }
.ec-freeship__text .ec-i { width: 18px; height: 18px; color: var(--ec-sage-deep); }
.ec-freeship__bar { height: 4px; overflow: hidden; background: var(--ec-line); }
.ec-freeship__bar span { display: block; height: 100%; background: var(--ec-sage-deep); transition: width .6s var(--ec-ease); }
.ec-drawer-modal__totals { display: grid; gap: 8px; margin: 22px 0 0; }
.ec-drawer-modal__totals > div { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--ec-ink); }
.ec-drawer-modal__totals dt { font-weight: 400; }
.ec-drawer-modal__totals dd { margin: 0; }
.ec-drawer-modal__totals .ec-drawer-modal__total { margin-top: 4px; padding-top: 12px; font-size: 15.5px; font-weight: 600; border-top: 1px solid var(--ec-line-soft); }
.ec-drawer-modal__totals .ec-drawer-modal__total dt { font-weight: 600; }
#blockcart-modal .ec-drawer-modal__note { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 4px 0 0; font-size: 12px; color: var(--ec-fog); }
#blockcart-modal .ec-drawer-modal__note .ec-i { width: 16px; height: 16px; }

/* ---------- 13b. Sélecteur de quantité (fiche produit, panier) ---------- */
.bootstrap-touchspin {
  position: relative;
  display: flex;
  width: 120px;
  height: 46px;
  background: #fff;
  border: 1px solid var(--ec-line);
  box-shadow: none;
}
.bootstrap-touchspin input.form-control,
.bootstrap-touchspin input[type="number"] {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0 36px;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  color: var(--ec-ink);
  background: transparent;
  border: 0;
  float: none;
}
.bootstrap-touchspin .input-group-btn-vertical { position: static; display: contents; width: auto; }
.bootstrap-touchspin .btn-touchspin,
.bootstrap-touchspin .input-group-btn-vertical > .btn {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: auto;
  min-height: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--ec-ink);
  background: transparent;
  border: 0;
  border-radius: 0;
}
.bootstrap-touchspin .bootstrap-touchspin-down { left: 0; margin: 0; }
.bootstrap-touchspin .bootstrap-touchspin-up { right: 0; }
.bootstrap-touchspin .btn-touchspin i,
.bootstrap-touchspin .input-group-btn-vertical i { display: none; }
.bootstrap-touchspin .bootstrap-touchspin-up::after { content: "+"; font-size: 20px; font-weight: 300; line-height: 1; }
.bootstrap-touchspin .bootstrap-touchspin-down::after { content: "\2212"; font-size: 20px; font-weight: 300; line-height: 1; }
.bootstrap-touchspin .btn-touchspin:hover { background: var(--ec-linen); }

/* ---------- 13c. Panier ---------- */
.ec-cart { padding-bottom: 80px; }
.ec-cart__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 12px 0 28px; }
.ec-cart__title { margin: 0; font-family: var(--ec-serif); font-size: clamp(32px, 3.6vw, 48px); font-weight: 300; line-height: 1.05; letter-spacing: -.015em; }
#main .ec-cart__grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; margin: 0; }
#main .ec-cart__grid::before,
#main .ec-cart__grid::after { content: none; }
.ec-cart__body, .ec-cart__aside { width: auto; max-width: none; float: none; padding: 0; min-width: 0; }
.ec-panel.card { padding: 0 28px; margin: 0 0 16px; background: #fff; border: 1px solid var(--ec-line-soft); }
.ec-cart .cart-overview { padding: 0; }
.ec-cart .cart-items { margin: 0; padding: 0; list-style: none; }
.ec-cart .cart-item { padding: 24px 0; margin: 0; border-bottom: 1px solid var(--ec-line-soft); }
.ec-cart .cart-item:last-child { border-bottom: 0; }
.ec-cart .no-items { display: block; padding: 32px 0; font-size: 15px; color: var(--ec-ink-soft); }
.ec-cart-line { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 20px; align-items: start; }
.ec-cart-line::before, .ec-cart-line::after { content: none; }
.ec-cart-line > [class*="product-line-grid"] { width: auto; max-width: none; float: none; padding: 0; }
.ec-cart-line__media .product-image { display: block; aspect-ratio: 1; background: var(--ec-tile); isolation: isolate; }
.ec-cart-line__media img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.ec-cart .ec-cart-line__name { font-size: 15.5px; font-weight: 500; color: var(--ec-ink); text-decoration: none; }
.ec-cart .ec-cart-line__name:hover { text-decoration: underline; text-underline-offset: 3px; }
.ec-cart .ec-cart-line__attr { margin-top: 4px; font-size: 13px; color: var(--ec-fog); }
.ec-cart .ec-cart-line__attr .label { font-weight: 400; color: var(--ec-fog); }
.ec-cart .ec-cart-line__attr .value { color: var(--ec-ink); }
.ec-cart .ec-cart-line__unit { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-top: 10px; font-family: var(--ec-sans); font-size: 14px; font-weight: 500; color: var(--ec-ink); }
.ec-cart .ec-cart-line__unit .regular-price { font-size: 13px; font-weight: 400; color: var(--ec-fog); text-decoration: line-through; }
.ec-cart .ec-cart-line__unit .discount { padding: 3px 6px; font-size: 10.5px; font-weight: 600; letter-spacing: .1em; color: #fff; background: var(--ec-forest); border-radius: 2px; }
.ec-cart .ec-cart-line__unit.has-discount .price { color: var(--ec-ember-ink); }
.ec-cart-line__actions { display: flex; align-items: center; gap: 18px; }
.ec-cart-line__actions > div { width: auto; float: none; padding: 0; }
.ec-cart .ec-cart-line__total { min-width: 84px; font-size: 15px; text-align: right; }
.ec-cart .ec-cart-line__total strong { font-weight: 600; }
.ec-cart .ec-cart-line__remove { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; color: var(--ec-fog); }
.ec-cart .ec-cart-line__remove:hover { color: var(--ec-ink); }
.ec-cart .ec-cart-line__remove .ec-i { width: 18px; height: 18px; }

.ec-summary.card { padding: 26px 26px 28px; }
.ec-summary__title { margin: 0 0 16px; font-size: 11.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.ec-summary .ec-freeship { margin: 0 0 18px; }
.cart-summary .card-block,
.cart-detailed-totals .card-block { padding: 0; }
.cart-summary-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 10px; font-size: 14px; }
.cart-summary-line > .label { margin-right: auto; }
.cart-summary-line > div:not(.label):not(.value) { flex-basis: 100%; }
.cart-summary-line::after { content: none; }
.cart-summary-line .label, .cart-summary-line .value { float: none; font-size: 14px; color: var(--ec-ink); }
.cart-summary-line .label { font-weight: 400; }
.cart-summary-line.cart-total,
.cart-summary-totals .cart-summary-line.cart-total { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ec-line-soft); }
.card-block.cart-summary-totals .cart-summary-line.cart-total .label,
.card-block.cart-summary-totals .cart-summary-line.cart-total .value,
.cart-summary-line.cart-total .label,
.cart-summary-line.cart-total .value { font-size: 16px; font-weight: 600; }
.cart-summary-line .shipping_value, .cart-summary-line small { color: var(--ec-fog); }
.ec-cart hr.separator, .cart-summary hr.separator { margin: 12px 0; border-color: var(--ec-line-soft); }
.cart-detailed-actions.card-block { padding: 18px 0 0; }
.cart-detailed-actions .btn,
.checkout .btn { width: 100%; min-height: 54px; }
.block-promo { margin: 8px 0 0; }
.block-promo .promo-code-button, .block-promo .collapse-button { font-size: 13px; color: var(--ec-ink); text-decoration: underline; text-underline-offset: 3px; }
.block-promo .promo-code { padding: 12px 0 0; background: none; }
.block-promo .promo-input { height: 46px; }
.block-promo .promo-code form { display: flex; gap: 8px; }
.block-promo .promo-code .btn { min-height: 46px; padding: 0 16px; }
.ec-cart__aside .ec-assure { margin-top: 0; }

@media (max-width: 991px) {
  #main .ec-cart__grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 575px) {
  .ec-panel.card { padding: 0 16px; }
  .ec-cart-line { grid-template-columns: 84px minmax(0, 1fr); gap: 14px; }
  .ec-cart-line__actions { grid-column: 1 / -1; justify-content: space-between; }
}

/* ---------- 13d. Tunnel de commande ---------- */
.ec-checkout-header { background: var(--ec-linen); border-bottom: 1px solid var(--ec-line); }
.ec-checkout-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; height: 72px; }
#header .ec-checkout-header__back { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--ec-ink); text-decoration: none; }
.ec-checkout-header__back .ec-i { width: 18px; height: 18px; }
.ec-checkout-header__secure { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; font-size: 11.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--ec-sage-deep); }
.ec-checkout-header__secure .ec-i { width: 18px; height: 18px; }
@media (max-width: 575px) {
  .ec-checkout-header__back span, .ec-checkout-header__secure span { display: none; }
}
body#checkout #wrapper { padding-top: 24px; }
body#checkout #footer { color: var(--ec-fog); background: var(--ec-linen); padding: 0; }
.ec-checkout-footer { border-top: 1px solid var(--ec-line); }
.ec-checkout-footer__inner { display: grid; gap: 8px; padding-top: 28px; padding-bottom: 36px; font-size: 12.5px; text-align: center; color: var(--ec-fog); }
.ec-checkout-footer__inner p { margin: 0; }
.ec-checkout-footer .js-terms a { color: var(--ec-ink); text-decoration: underline; }

body#checkout section#content > .row { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; margin: 0; }
body#checkout section#content > .row::before,
body#checkout section#content > .row::after { content: none; }
body#checkout .cart-grid-body,
body#checkout .cart-grid-right { width: auto; max-width: none; float: none; padding: 0; min-width: 0; }
@media (max-width: 991px) {
  body#checkout section#content > .row { grid-template-columns: 1fr; }
}

body#checkout section.checkout-step {
  margin: 0 0 12px;
  padding: 22px 28px;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
  border-bottom: 1px solid var(--ec-line-soft);
  box-shadow: none;
}
body#checkout section.checkout-step .step-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-family: var(--ec-serif);
  font-size: 22px;
  font-weight: 400;
  text-transform: none;
  color: var(--ec-ink);
}
body#checkout section.checkout-step .step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin: 0;
  font-family: var(--ec-sans);
  font-size: 13px;
  font-weight: 600;
  color: var(--ec-ink);
  background: var(--ec-linen);
  border: 1px solid var(--ec-line);
  border-radius: 50%;
}
body#checkout section.checkout-step.-current .step-title .step-number,
body#checkout section.checkout-step.-current .step-number { color: #fff; background: var(--ec-forest); border-color: var(--ec-forest); }
body#checkout section.checkout-step.-complete .step-title .step-number { color: var(--ec-ink); background: var(--ec-linen); border-color: var(--ec-line); }
.input-group.focus { outline: none; }
.input-group.focus .form-control { border-color: var(--ec-ink); }
.input-group .input-group-btn > .btn,
.input-group .input-group-btn > .btn[data-action="show-password"] {
  min-height: 48px;
  height: 100%;
  padding: 0 16px;
  font-size: 11px;
  color: var(--ec-ink);
  background: var(--ec-linen);
  border: 1px solid var(--ec-line);
  border-left: 0;
}
body#checkout section.checkout-step .step-title .done { color: var(--ec-sage-deep); }
body#checkout section.checkout-step .step-edit { margin-left: auto; font-family: var(--ec-sans); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ec-ink); text-decoration: underline; cursor: pointer; }
body#checkout section.checkout-step.-unreachable .step-title { color: var(--ec-fog-light); }
body#checkout section.checkout-step .content { padding: 18px 0 4px; }
body#checkout section.checkout-step .nav { margin-bottom: 18px; }
body#checkout section.checkout-step .nav .nav-link { font-size: 13px; font-weight: 500; color: var(--ec-fog); }
body#checkout section.checkout-step .nav .nav-link.active { color: var(--ec-ink); text-decoration: underline; text-underline-offset: 4px; }
body#checkout section.checkout-step .nav-separator { color: var(--ec-line); }
body#checkout section.checkout-step .form-footer,
body#checkout section.checkout-step .continue { margin-top: 12px; }
body#checkout section.checkout-step .continue.btn { float: none; width: 100%; max-width: 360px; }
body#checkout .form-group.row { display: flex; flex-direction: column; margin: 0 0 16px; }
body#checkout .form-group.row > [class*="col-"] { width: 100%; max-width: none; flex: none; float: none; padding: 0; text-align: left; }
body#checkout .form-group.row > .form-control-label { margin-bottom: 6px; padding: 0; font-size: 13px; font-weight: 500; text-align: left; }
body#checkout .form-group.row > .form-control-comment { padding-top: 4px; font-size: 12px; }
body#checkout section.checkout-step .delivery-options .delivery-option,
body#checkout .delivery-options .delivery-option {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--ec-line);
}
body#checkout .delivery-options .delivery-option > [class*="col-"] { width: auto; float: none; padding: 0; }
body#checkout .delivery-options .delivery-option label { flex: 1; margin: 0; }
body#checkout .delivery-options .delivery-option .carrier-name { font-weight: 600; color: var(--ec-ink); }
body#checkout .delivery-options .delivery-option .carrier-delay,
body#checkout .delivery-options .delivery-option .carrier-price { font-size: 13.5px; color: var(--ec-ink-soft); }
body#checkout .payment-options .payment-option { margin: 0 0 10px; padding: 14px 16px; background: #fff; border: 1px solid var(--ec-line); }
body#checkout .payment-options .payment-option label { margin: 0 0 0 8px; font-weight: 500; }
body#checkout #conditions-to-approve { margin: 18px 0; }
body#checkout #conditions-to-approve label { font-size: 13.5px; text-align: left; }
body#checkout #payment-confirmation .btn { width: 100%; min-height: 56px; }
body#checkout .cart-grid-right .card.cart-summary,
body#checkout #js-checkout-summary { padding: 24px; background: #fff; border: 1px solid var(--ec-line-soft); }
body#checkout .cart-summary-products p { font-size: 13.5px; }
body#checkout .cart-summary-products .media-list { margin: 12px 0 0; }
body#checkout .cart-summary-products .media { display: flex; gap: 12px; margin-bottom: 12px; }
body#checkout .cart-summary-products .media-left img { width: 64px; height: 64px; object-fit: contain; background: var(--ec-tile); }
body#checkout .cart-summary-products .product-name { font-size: 13.5px; font-weight: 500; }

/* ---------- 13e. Confirmation de commande ---------- */
#order-confirmation #content-hook_order_confirmation,
#order-confirmation #content.page-content,
#order-confirmation #content-hook-order-confirmation-footer > section {
  margin: 0 0 16px;
  padding: 28px 32px;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
}
#order-confirmation #content-hook_order_confirmation .card-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 8px;
  font-family: var(--ec-serif);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 300;
  text-transform: none;
}
#order-confirmation #content-hook_order_confirmation .card-title .material-icons { font-size: 30px; color: var(--ec-sage-deep); }
#order-confirmation #order-items .card-title,
#order-confirmation #order-details .card-title,
#order-confirmation #order-items h3,
#order-confirmation #order-details h3 {
  font-family: var(--ec-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
}
#order-confirmation #order-items .order-line .image img,
#order-confirmation #order-items img { background: var(--ec-tile); mix-blend-mode: multiply; }
#order-confirmation #order-items table tr td { padding: 8px 6px; border-color: var(--ec-line-soft); }
#order-confirmation #order-items .total-value td { background: var(--ec-linen); font-weight: 600; }
#order-confirmation #order-details ul { padding: 0; list-style: none; }
#order-confirmation #order-details ul li { margin-bottom: 6px; }

/* ---------- 13f. Compte client, connexion, contact, pages de contenu ---------- */
#authentication #content,
#registration #content,
#password #content,
#identity #content,
#address #content,
#addresses #content,
#history #content,
#order-detail #content,
#discount #content,
#order-slip #content,
#module-psgdpr-gdpr #content,
#module-blockwishlist-lists #content,
#module-blockwishlist-view #content {
  max-width: 720px;
  padding: 32px 36px;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
}
#my-account #content,
#history #content,
#order-detail #content,
#addresses #content { max-width: none; }
#authentication #content,
#registration #content,
#password #content,
#identity #content,
#address #content { margin-left: 0; margin-right: 0; }
#my-account #content { padding: 0; background: none; border: 0; }
#my-account .links { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin: 0; }
#my-account .links::before, #my-account .links::after { content: none; }
#my-account .links a {
  display: block;
  width: auto;
  max-width: none;
  float: none;
  margin: 0;
  padding: 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ec-ink);
}
#my-account .links a span.link-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  height: 100%;
  padding: 24px;
  text-align: left;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
  box-shadow: none;
  transition: border-color .2s;
}
#my-account .links a:hover span.link-item { border-color: var(--ec-ink); }
#my-account .links a i { font-size: 26px; color: var(--ec-sage-deep); padding: 0; width: auto; }
.page-footer .account-link,
.page-footer .text-sm-center a { font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ec-ink); }
#authentication .forgot-password,
#authentication .no-account { text-align: left; margin-top: 12px; }
#authentication .no-account a { font-weight: 600; color: var(--ec-ink); text-decoration: underline; text-underline-offset: 3px; }
.login-form .form-footer .btn,
.register-form .form-footer .btn,
#customer-form .form-footer .btn { width: 100%; max-width: 360px; }
#wrapper form .form-group.row { display: flex; flex-direction: column; margin: 0 0 16px; }
#wrapper form .form-group.row > [class*="col-"] { width: 100%; max-width: none; flex: none; float: none; padding: 0; text-align: left; }
#wrapper form .form-group.row > .form-control-label { margin-bottom: 6px; font-size: 13px; font-weight: 500; }
#wrapper form .form-group.row > .form-control-comment { padding-top: 4px; font-size: 12px; }
#wrapper form .form-group.row > .offset-md-3 { margin-left: 0; }
#contact .contact-form .form-group.row { display: flex; flex-direction: column; margin: 0 0 16px; }
#contact .contact-form .form-group.row > [class*="col-"] { width: 100%; max-width: none; float: none; padding: 0; text-align: left; }
#contact .contact-form .form-control-label { margin-bottom: 6px; text-align: left; }
#contact .contact-form .bootstrap-filestyle .btn { min-height: 48px; padding: 0 14px; font-size: 11px; }

.page-cms .page-content,
#cms #content.page-content,
#cms .page-content.page-cms {
  max-width: 760px;
  padding: 0 0 var(--ec-section);
  font-size: 16px;
  line-height: 1.75;
  color: var(--ec-ink-soft);
  background: none;
}
#cms .page-content h2 { margin: 1.5em 0 .5em; font-family: var(--ec-serif); font-size: 28px; font-weight: 300; color: var(--ec-ink); }
#cms .page-content h3 { margin: 1.3em 0 .4em; font-family: var(--ec-serif); font-size: 21px; font-weight: 400; color: var(--ec-ink); }
#cms .page-content p { margin: 0 0 1em; font-size: 16px; color: var(--ec-ink-soft); }
#cms .page-content a { text-decoration: underline; text-underline-offset: 3px; }
#cms-category #content, #cms #content { background: none; }
#cms-category .cms-sub-categories, #cms-category .cms-sub-categories + ul,
#cms-category #content ul { padding: 0; list-style: none; }
#cms-category #content li { margin-bottom: 10px; }
#cms-category #content li a { font-family: var(--ec-serif); font-size: 22px; color: var(--ec-ink); }

#contact #content,
#contact .contact-form { background: none; }
#contact .contact-form { max-width: 760px; padding: 32px 36px; background: #fff; border: 1px solid var(--ec-line-soft); }
#contact .contact-form h3 { margin: 0 0 20px; font-family: var(--ec-serif); font-size: 28px; font-weight: 300; text-transform: none; }
#contact .contact-rich { padding: 24px; background: #fff; border: 1px solid var(--ec-line-soft); }
#contact .contact-rich h4 { font-family: var(--ec-sans); font-size: 11.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
#contact .contact-rich .block .icon i { color: var(--ec-sage-deep); }

/* ---------- 14. Avant le pied de page : réassurance + newsletter ---------- */
.ec-prefooter .ec-press { color: var(--ec-ink); border-top: 1px solid var(--ec-line); border-bottom: 0; }
#footer .block_newsletter.ec-newsletter,
.ec-newsletter { margin: 0; padding: 0; color: var(--ec-linen); background: var(--ec-forest); }
.ec-newsletter__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 56px;
  padding-top: 68px;
  padding-bottom: 68px;
}
.ec-newsletter .ec-eyebrow { color: rgba(245, 244, 238, .7); }
.ec-newsletter .ec-newsletter__title {
  margin: 0 0 12px;
  font-family: var(--ec-serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -.015em;
  color: var(--ec-linen);
}
.ec-newsletter .ec-newsletter__text { max-width: 46ch; margin: 0; padding: 0; color: rgba(245, 244, 238, .78); }
#footer .block_newsletter.ec-newsletter {
  float: none;
  clear: both;
  width: 100%;
  max-width: none;
  margin: 0;
  font-size: 15px;
  background: var(--ec-forest);
}
.ec-newsletter__form { margin: 0; }
.ec-newsletter__field { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(245, 244, 238, .5); }
#footer .ec-newsletter__field input[type="email"]:focus {
  padding: 0 4px;
  border: 0;
  outline: none;
  color: var(--ec-linen);
  background: transparent;
}
#footer .ec-newsletter__field button[type="submit"] {
  position: static;
  flex: none;
  color: var(--ec-forest);
  background: var(--ec-linen);
  border: 1px solid var(--ec-linen);
}
#footer .ec-newsletter__field button[type="submit"]:hover,
#footer .ec-newsletter__field button[type="submit"]:focus { color: var(--ec-forest); background: #fff; border-color: #fff; }
#footer .ec-newsletter .ec-newsletter__legal a { color: var(--ec-linen); text-decoration: underline; text-underline-offset: 3px; letter-spacing: normal; text-transform: none; font-size: inherit; }
#footer .ec-newsletter__field input[type="email"],
.ec-newsletter__field input[type="email"] {
  flex: 1;
  min-width: 0;
  height: 56px;
  padding: 0 4px;
  font-size: 15px;
  color: var(--ec-linen);
  background: transparent;
  border: 0;
}
.ec-newsletter__field input[type="email"]::placeholder { color: rgba(245, 244, 238, .6); }
.ec-newsletter__field .ec-btn { min-height: 44px; padding: 0 20px; }
#footer .ec-newsletter .ec-newsletter__legal,
.ec-newsletter .ec-newsletter__legal { margin: 12px 0 0; padding: 0; font-size: 12px; color: rgba(245, 244, 238, .6); }
.ec-newsletter .alert { margin: 14px 0 0; }
.ec-newsletter .psgdpr_consent_message,
.ec-newsletter .gdpr_consent { margin-top: 12px; font-size: 12px; color: rgba(245, 244, 238, .7); }
.ec-newsletter .psgdpr_consent_message a,
.ec-newsletter .gdpr_consent a { color: var(--ec-linen); }

/* ---------- 15. Pied de page ---------- */
#footer { padding-top: 0; color: rgba(245, 244, 238, .74); background: var(--ec-charcoal); }
.ec-footer.footer-container { padding-top: 0; overflow: visible; color: rgba(245, 244, 238, .74); background: var(--ec-charcoal); }
.ec-footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 3fr);
  gap: 64px;
  padding-top: 72px;
  padding-bottom: 56px;
}
.ec-footer .ec-logo--footer .ec-logo__text { font-size: 24px; color: var(--ec-linen); }
.ec-footer .ec-footer__about { max-width: 34ch; margin: 18px 0 22px; font-size: 14px; line-height: 1.7; color: rgba(245, 244, 238, .7); }
.ec-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 32px; }
.ec-footer__col { min-width: 0; }
.ec-footer .ec-footer__title {
  margin: 0 0 16px;
  font-family: var(--ec-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--ec-linen);
}
.ec-footer .ec-footer__links { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ec-footer .ec-footer__links li { margin: 0; }
.ec-footer .ec-footer__links a,
.ec-footer .ec-footer__contact a { font-size: 14px; color: rgba(245, 244, 238, .74); text-decoration: none; }
.ec-footer .ec-footer__links a:hover,
.ec-footer .ec-footer__contact a:hover { color: var(--ec-linen); text-decoration: underline; text-underline-offset: 3px; }
.ec-footer .ec-footer__contact li { display: flex; align-items: center; gap: 10px; }
.ec-footer .ec-footer__contact .ec-i { width: 18px; height: 18px; color: var(--ec-sage); }
.ec-footer .ec-footer__hint { max-width: 30ch; margin: 16px 0 0; font-size: 13px; color: rgba(245, 244, 238, .55); }
.ec-social { display: flex; flex-wrap: wrap; gap: 10px 20px; margin: 0; padding: 0; list-style: none; }
.ec-footer .ec-social a {
  padding-bottom: 2px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ec-linen);
  text-decoration: none;
  border-bottom: 1px solid rgba(245, 244, 238, .35);
}
.ec-footer .ec-social a:hover { border-bottom-color: var(--ec-linen); }
.ec-footer__after { padding-bottom: 24px; }
.ec-footer__bottom { border-top: 1px solid rgba(245, 244, 238, .12); }
.ec-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 22px;
  padding-bottom: 22px;
}
.ec-footer .ec-footer__legal { margin: 0; font-size: 12.5px; color: rgba(245, 244, 238, .55); }
.ec-footer__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(245, 244, 238, .7);
}
.ec-footer__badges li { display: flex; align-items: center; gap: 8px; }
.ec-footer__badges .ec-i { width: 16px; height: 16px; color: var(--ec-sage); }
.ec-footer__adult { padding: 3px 7px; letter-spacing: .06em; border: 1px solid rgba(245, 244, 238, .45); }

@media (max-width: 991px) {
  .ec-newsletter__inner { grid-template-columns: 1fr; gap: 26px; padding-top: 52px; padding-bottom: 52px; }
  .ec-footer__top { grid-template-columns: 1fr; gap: 44px; padding-top: 56px; }
  .ec-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; }
}
@media (max-width: 480px) {
  .ec-footer__cols { grid-template-columns: 1fr 1fr; }
  .ec-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
}

/* ---------- 15b. Pages d'erreur, maintenance ---------- */
.ec-error { max-width: 720px; padding: 32px 0 var(--ec-section); }
.ec-error .page-header h1 { margin-top: 0; }
.ec-error__content p { margin-bottom: 24px; font-size: 16px; color: var(--ec-ink-soft); }
.ec-notfound { max-width: 640px; margin: 0 auto; padding: 48px 0 var(--ec-section); text-align: center; }
#wrapper .ec-notfound.page-not-found { max-width: 640px; background: none; box-shadow: none; }
.ec-notfound h4,
.ec-notfound .ec-notfound__title { margin: 0 0 14px; font-family: var(--ec-serif); font-size: clamp(30px, 3.4vw, 44px); font-weight: 300; line-height: 1.1; }
.ec-notfound p, .ec-notfound .ec-notfound__text { margin: 0 auto 26px; max-width: 48ch; color: var(--ec-ink-soft); }
.ec-notfound__search { max-width: 420px; margin: 0 auto 28px; }
.ec-notfound__search #search_widget { width: 100%; }
.ec-notfound__home { margin-top: 4px; }
#products .ec-notfound { padding-top: 24px; }

body.ec-standalone { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--ec-linen); }
#layout-error.ec-standalone__wrap { width: min(560px, 100%); margin: 0 auto; padding: 40px 20px; text-align: center; background: none; }
.ec-standalone__logo { margin: 0 0 32px; }
.ec-standalone__card { padding: 48px 40px; background: #fff; border: 1px solid var(--ec-line-soft); }
.ec-standalone__card .page-header h1 { margin: 0 0 14px; font-family: var(--ec-serif); font-size: 38px; font-weight: 300; }
.ec-standalone__card .page-content { font-size: 15.5px; color: var(--ec-ink-soft); }

/* ---------- 16. Contrôle de l'âge ---------- */
html.ec-agegate-open, html.ec-agegate-open body { overflow: hidden; }
.ec-agegate {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(245, 244, 238, .97);
}
.ec-agegate[hidden] { display: none; }
.ec-agegate__card {
  width: min(460px, 100%);
  padding: 48px 40px 36px;
  text-align: center;
  background: #fff;
  border: 1px solid var(--ec-line-soft);
}
.ec-agegate .ec-agegate__logo { margin: 0 0 28px; font-size: 20px; }
.ec-agegate .ec-agegate__title { margin: 0 0 12px; font-family: var(--ec-serif); font-size: 38px; font-weight: 300; }
.ec-agegate .ec-agegate__text { margin: 0 0 28px; font-size: 15px; color: var(--ec-ink-soft); }
.ec-agegate__actions { display: grid; gap: 10px; }
.ec-agegate .ec-agegate__note { margin: 20px 0 0; font-size: 12px; color: var(--ec-fog); }
@media (max-width: 480px) {
  .ec-agegate__card { padding: 36px 22px 28px; }
  .ec-agegate .ec-agegate__title { font-size: 32px; }
}

/* ---------- 17. Réduction des animations ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}
