/* Tomate ô Cœur : ajustements maintenables, aucune génération au runtime. */
:root { --toc-red: #a60015; --toc-green: #608a32; --toc-content-width: 1200px; }
.toc-slides { padding: 0; margin: 0; list-style: none; position: relative; }
.toc-slides > .slide { display: none; }
.toc-slides > .slide:first-child, .toc-slides > .slide.is-active { display: block; }
.toc-slides:has(.is-active) > .slide:not(.is-active) { display: none; }
.toc-slides img { display: block; width: 100%; height: auto; }
.toc-slider-controls { display: flex; justify-content: center; gap: .5rem; margin: .5rem 0; }
.toc-slider-controls button { border: 1px solid #aaa; background: white; color: #333; padding: .35rem .6rem; cursor: pointer; }
.toc-slider-controls button[aria-pressed="true"] { background: #a60015; color: white; }
#featuredproducts-grid::after { content: ''; display: block; clear: both; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } }

.homeslider-container { position: relative; }
.toc-slider-controls { position: absolute; top: 54%; left: 6%; right: 6%; margin: 0; justify-content: space-between; pointer-events: none; }
.toc-slider-controls button { pointer-events: auto; border: 0; background: transparent; color: white; font: 48px/1 sans-serif; padding: 0; width: 45px; height: 60px; }
.toc-slider-controls button[aria-pressed="true"] { background: transparent; }
.toc-slider-pause { position: absolute; right: 0; top: 80px; font-size: 16px !important; opacity: 0; }
.homeslider-container:hover .toc-slider-pause, .toc-slider-pause:focus { opacity: 1; }
@media (max-width: 767px) {
  #about-text .about-page { flex-wrap: wrap; gap: 12px 0; }
  #about-text .about-page .desc { flex: 0 0 50%; max-width: 50%; }
  .product-miniature .product-flags li.product-flag { left: 0 !important; right: auto !important; }
}

.user-info button.user-icon{background:none;border:0;color:inherit;padding:0;cursor:pointer;font:inherit}

/* Categories: full-width listing with fluid outer gutters on every screen. */
body#category #wrapper > .container {
  width: 100%;
  max-width: none;
  padding-left: clamp(16px, 2.4vw, 32px);
  padding-right: clamp(16px, 2.4vw, 32px);
}
body#category #products .products.row {
  margin-left: 0;
  margin-right: 0;
}

/* Shop navigation card, including the CMS sidebar. */
#left-column .category-tree {
  background: #faf8f3;
  border: 1px solid #e9e3d8;
  border-top: 3px solid var(--toc-red);
  border-radius: 8px;
  padding: 8px 18px 14px;
  margin-bottom: 24px;
  box-shadow: 0 4px 16px rgba(55, 40, 20, .05);
}
#left-column .category-tree ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
#left-column .category-tree > ul > li:first-child > a {
  display: block;
  color: #38362f;
  font-family: 'Roboto Slab', serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  padding: 14px 4px;
  margin-bottom: 6px;
  border-bottom: 1px solid #e4ded2;
}
#left-column .category-tree ul ul a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 10px;
  border-radius: 5px;
  color: #555349;
  font-size: 14px;
  line-height: 1.5;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease;
}
#left-column .category-tree ul ul a::after {
  content: '›';
  font-size: 22px;
  line-height: 1;
  color: #a98b4c;
}
#left-column .category-tree ul ul a:hover,
#left-column .category-tree ul ul a:focus-visible {
  background: #f0e9dd;
  color: var(--toc-red);
}
#left-column .category-tree a:focus-visible {
  outline: 2px solid var(--toc-red);
  outline-offset: 2px;
}
@media (max-width: 767px) {
  #left-column .category-tree { margin-bottom: 24px; }
}

/* Keep the basket artwork and counter inside the clickable link. */
#header .blockcart > .header > a {
  position: relative;
  display: block;
  width: 40px;
  min-height: 35px;
}
#header .blockcart > .header > a:focus-visible {
  outline: 2px solid #c58800;
  outline-offset: 3px;
  border-radius: 4px;
}

/* Blog listings: a readable vertical flow at every viewport width. */
body#module-everpsblog-blog #content .everpsblog-blog-header {
  width: 100%;
  max-width: 100%;
  margin: 0 0 24px;
  padding: 0;
  left: auto;
  right: auto;
  background: #fff;
  color: #111;
}
body#module-everpsblog-blog #content .everpsblog-blog-header__inner {
  background: #fff;
  color: #111;
  padding: clamp(28px, 4vw, 48px) 16px;
}
body#module-everpsblog-blog #content .everpsblog-blog-header__title {
  /* The module's custom stylesheet forces white with !important. */
  color: #111 !important;
  font: 700 clamp(34px, 4.5vw, 48px)/1.25 'Roboto Slab', serif;
  margin: 0;
}
#everpsblog-posts {
  display: block;
  margin: 0;
}
#content:has(.everpsblog-blog-header) > .container {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.toc-news-item {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: clamp(28px, 4vw, 48px) 0;
  border: 0;
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fff;
  text-align: left;
}
.toc-news-item:last-child { border-bottom: 0; }
.toc-news-title {
  margin: 0 0 22px;
  font: 700 clamp(21px, 2.3vw, 28px)/1.35 'Roboto Slab', serif;
}
.toc-news-title a { color: #24231f; }
.toc-news-title a:hover { color: var(--toc-red); }
.toc-news-summary {
  display: block;
  width: 100%;
  margin: 0 0 28px;
  color: #555349;
  font-size: 15px;
  line-height: 1.75;
}
.toc-news-details { display: inline-block; text-transform: none; }

/* Article pages: compact white heading and readable black body text. */
body#module-everpsblog-post #content .toc-post-heading {
  background: #fff;
  color: #111;
  padding: 16px clamp(16px, 3vw, 32px) 20px;
  margin: 0;
}
body#module-everpsblog-post #content .toc-post-title {
  color: #111;
  font: 700 clamp(28px, 3.2vw, 40px)/1.3 'Roboto Slab', serif;
  margin: 0;
}
body#module-everpsblog-post #content .container {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
body#module-everpsblog-post #content .everpsblog-post-card {
  background: #fff;
  color: #111;
  border: 0;
  box-shadow: none;
  margin: 0 0 20px;
}
body#module-everpsblog-post #content .postcontent {
  background: #fff;
  color: #111;
  padding: 12px clamp(0px, 1vw, 16px) 24px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
body#module-everpsblog-post #content .postcontent :is(p, h2, h3, h4, li, span, strong, em) {
  color: #111;
}
body#module-everpsblog-post #content .postcontent img {
  max-width: 100%;
  height: auto;
}

/* The mobile header adds padding: make its entire basket area a link. */
#header .blockcart > .header {
  position: relative;
  min-width: 40px;
  min-height: 35px;
}
#header .blockcart > .header > a {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
#header .blockcart > .header > a::before {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
#header .blockcart > .header .cart-products-count {
  right: 0;
  margin-left: 0;
}
@media (max-width: 767px) {
  #header .blockcart > .header .cart-products-count { right: 14px; top: 6px; }
}

/* Subcategory navigation never reserves space for thumbnails. */
#category #subcategories { padding: 20px; margin-bottom: 24px; }
#category #subcategories .subcategories-list {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 28px;
  list-style: none;
  margin: 0;
  padding: 0;
}
#category #subcategories .subcategories-list > li {
  float: none;
  width: auto;
  min-height: 0;
  height: auto;
  margin: 0;
  padding: 0;
  text-align: left;
}
#category #subcategories h5 { margin: 0 0 6px; }
#category #subcategories .cat_desc { margin: 0; }

/* Compact, touch-friendly subcategory buttons. */
#category #subcategories .subcategory-heading {
  font: 700 19px/1.4 'Roboto Slab', serif;
  color: #38362f;
  margin: 0 0 18px;
}
#category #subcategories .subcategories-list { gap: 12px; }
#category #subcategories h5 { margin: 0; }
#category #subcategories .subcategory-name {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 46px;
  padding: 11px 20px;
  border: 1px solid #decfae;
  border-radius: 999px;
  background: #faf5e9;
  color: #654b19;
  font: 500 14px/1.5 'Poppins', sans-serif;
  text-transform: none;
  text-decoration: none;
  box-shadow: 0 2px 4px rgba(90, 65, 20, .05);
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
#category #subcategories .subcategory-name::after {
  content: '→';
  font-size: 18px;
  line-height: 1;
}
#category #subcategories .subcategory-name:hover {
  background: var(--toc-red);
  border-color: var(--toc-red);
  color: #fff;
}
#category #subcategories .subcategory-name:focus-visible {
  outline: 2px solid var(--toc-red);
  outline-offset: 3px;
}
@media (max-width: 575px) {
  #category #subcategories .subcategories-list > li { width: 100%; }
  #category #subcategories .subcategory-name { width: 100%; }
}

/* Balanced reassurance spacing in the basket and checkout summary. */
.cart-grid-right .blockreassurance_product > div:not(.clearfix) {
  padding: 16px 18px;
}
.cart-grid-right .blockreassurance_product .item-product:has(.invisible) {
  display: none;
}
.cart-grid-right .blockreassurance_product p.block-title {
  display: block;
  margin: 0;
  padding: 0;
  line-height: 1.6;
  height: auto;
  min-height: 0;
  max-width: 100%;
}

/* Social links occupy the fourth footer column on desktop. */
#footer .toc-footer-social p { margin: 0 0 16px; }
#footer .toc-footer-social-links { display: flex; gap: 14px; }
#footer .toc-footer-social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: 1px solid #e5ddce;
  border-radius: 50%;
  background: #faf8f3;
  color: #655b49;
  font-size: 30px;
}
#footer .toc-footer-social-links a:hover { color: #a60015; border-color: #a60015; }
#footer .toc-footer-social-links a:focus-visible { outline: 2px solid #a60015; outline-offset: 3px; }
@media (max-width: 767px) {
  #footer .toc-footer-social { clear: both; width: 100%; padding-top: 24px; }
}

/* Category listing rhythm and product labels. */
body#category #js-product-list-top { margin-bottom: 28px; }
body#category #products .product-description,
body#category #products .product-title,
body#category #products .product-price-and-shipping { text-align: center; }
body#category #products .product-title a {
  font-size: 18px;
  line-height: 1.45;
}
body#category #products .product-price-and-shipping {
  margin-top: 8px;
  font-size: 19px;
  line-height: 1.4;
}
body#category #products .product-price-and-shipping .price {
  font-size: 19px;
  font-weight: 700;
}
/* Solid newsletter call to action contrasts with the photographic banner. */
#footer .block_newsletter input[name="submitNewsletter"] {
  background: #a60015;
  border-color: #a60015;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .18);
}
#footer .block_newsletter input[name="submitNewsletter"]:hover {
  background: #810011;
  border-color: #810011;
  color: #fff;
}
#footer .block_newsletter input[name="submitNewsletter"]:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

/* Compact breadcrumb band, aligned with the header's logo container. */
@media (min-width: 768px) {
  .breadcumb_inner { padding: 200px 0 24px; }
  .breadcumb_inner .toc-breadcrumb-container { padding-left: 0; padding-right: 0; }
  .breadcumb_inner .breadcrumb,
  .breadcumb_inner .breadcrumb ol { text-align: left; margin: 0; }
}

/* The existing tablet navigation wraps into multiple rows. */
@media (min-width: 992px) and (max-width: 1199px) {
  .breadcumb_inner { padding-top: 324px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .breadcumb_inner { padding-top: 362px; }
}

/* Product photos share the centered axis of their names and prices. */
body#category #products .product-thumbnail picture { display: block; }
body#category #products .product-thumbnail img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  height: auto;
}

/* Prefix belongs to the navigation, outside the ordered path items. */
.breadcumb_inner .breadcrumb .toc-breadcrumb-prefix { margin-right: 6px; }
.breadcumb_inner .breadcrumb ol { display: inline; }

/* About page: the main heading leads the section hierarchy. */
body.cms-id-4 #main > .page-header h1 {
  font-size: clamp(36px, 3.2vw, 44px);
  line-height: 1.25;
  font-weight: 700;
  margin-bottom: 28px;
  text-align: left;
}

/* Article photos stay within a readable height without cropping. */
body#module-everpsblog-post #content .postcontent img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 380px;
  object-fit: contain;
  margin: 20px auto 28px;
  border-radius: 6px;
}
@media (max-width: 767px) {
  body#module-everpsblog-post #content .postcontent img {
    max-height: 260px;
    margin-top: 16px;
    margin-bottom: 20px;
  }
}

/* No action strip remains when there are no variant selectors. */
.thumbnail-container .highlighted-informations.no-variants { display: none; }

/* Purchase action and compact availability share a single flexible row. */
#product .product-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
#product .product-add-to-cart > .control-label { flex-basis: 100%; margin: 0; }
#product .product-add-to-cart .product-quantity {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  float: none;
}
#product .product-quantity .qty,
#product .product-quantity .add { margin: 0; float: none; }
#product .product-add-to-cart .add-to-cart {
  background: #a60015;
  border: 1px solid #a60015;
  color: #fff;
  min-height: 48px;
  padding: 12px 20px;
  font-size: 16px;
  font-weight: 700;
  text-transform: none;
  box-shadow: 0 4px 12px rgba(166, 0, 21, .18);
}
#product .product-add-to-cart .add-to-cart:hover:not(:disabled) {
  background: #810011;
  border-color: #810011;
}
#product .product-add-to-cart .add-to-cart:focus-visible {
  outline: 2px solid #a60015;
  outline-offset: 3px;
}
#product .product-add-to-cart .add-to-cart:disabled { opacity: .5; box-shadow: none; }
#product #product-availability { margin: 0; padding: 0; float: none; }
#product #product-availability .alert {
  margin: 0;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.4;
}
#product #product-availability .alert-content-wrapper,
#product #product-availability .alert-content-wrapper > div {
  display: flex;
  align-items: center;
  gap: 5px;
}
#product #product-availability .material-icons { font-size: 16px; }
#product .product-add-to-cart .product-minimal-quantity { flex-basis: 100%; margin: 0; }
#product .product-add-to-cart .product-minimal-quantity:empty { display: none; }

/* Clear product hierarchy: prominent price, restrained short description. */
#product .product-prices .current-price-value {
  font-size: 30px;
  line-height: 1.3;
  font-weight: 700;
}
#product [id^="product-description-short-"] {
  font-size: 16px;
  line-height: 1.6;
}
#product [id^="product-description-short-"] :is(h1, h2, h3, h4, p, strong, span) {
  font-size: inherit;
  line-height: inherit;
  font-weight: 400;
}
#product [id^="product-description-short-"] :is(h1, h2, h3, h4, p) { margin: 0 0 12px; }
/* Reassurance text has equal top and bottom breathing room on product pages. */
#product .product-information .blockreassurance_product > div:not(.clearfix) { padding: 14px 18px; }
#product .product-information .blockreassurance_product .item-product:has(.invisible) { display: none; }
#product .product-information .blockreassurance_product p.block-title {
  display: block;
  margin: 0;
  padding: 0;
  line-height: 1.6;
  height: auto;
  min-height: 0;
  max-width: 100%;
}
