/*
Theme Name: Jardins de Courances
Theme URI: https://jardinsdecourances.fr
Author: Les Jardins de Courances
Author URI: https://jardinsdecourances.fr
Description: Theme WordPress block sur mesure pour Les Jardins de Courances — direction visuelle « La Cueillette » : papier aquarelle vivant pour le pérenne, cartes post-it nettes pour le changeant.
Version: 1.1.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jardins-de-courances
*/

/* ==========================================================================
   Base
   ========================================================================== */

:root {
  /* Source de vérité : JDC website redesign project, export Claude Design. */
  --jdc-font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --jdc-font-body: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  --jdc-green-900: #2E3B26;
  --jdc-green-800: #3A4A31;
  --jdc-green-700: #3F5233;
  --jdc-green-600: #4A5D3A;
  --jdc-green-500: #7FA05F;
  --jdc-green-400: #8FA277;
  --jdc-green-300: #A9C185;
  --jdc-green-200: #CBD9AE;
  --jdc-green-100: #E3EACF;
  --jdc-sand-700: #7C7563;
  --jdc-sand-500: #9AA389;
  --jdc-sand-300: #E4D9BE;
  --jdc-sand-200: #EFE7D6;
  --jdc-sand-100: #F3EFE3;
  --jdc-sand-50: #FAF6EC;
  --jdc-card-cream: #FBF6EA;
  --jdc-card-cream-alt: #FFFDF4;
  --jdc-gold-600: #E8B54B;
  --jdc-orange-600: #E07B39;
  --jdc-terracotta-600: #C4452F;
  --jdc-green-almond: #B7C08D;
  --jdc-green-almond-hover: #A2AD74;
  --jdc-green-almond-active: #8E9A61;
  --jdc-green-almond-ink: #5C6B45;
  --jdc-container: 1200px;
  --jdc-container-narrow: 760px;
  --jdc-space-1: 4px;
  --jdc-space-2: 8px;
  --jdc-space-3: 12px;
  --jdc-space-4: 16px;
  --jdc-space-5: 20px;
  --jdc-space-6: 24px;
  --jdc-space-8: 32px;
  --jdc-space-10: 40px;
  --jdc-space-12: 48px;
  --jdc-space-16: 64px;
  --jdc-space-20: 80px;
  --jdc-space-24: 96px;
  --jdc-space-32: 128px;
  --jdc-radius-sm: 2px;
  --jdc-radius-md: 3px;
  --jdc-radius-lg: 4px;
  --jdc-radius-xl: 6px;
  --jdc-shadow-sm: 0 2px 8px rgba(46, 59, 38, .08);
  --jdc-shadow-md: 0 8px 26px rgba(46, 59, 38, .16);
  --jdc-shadow-lg: 0 14px 40px rgba(46, 59, 38, .28);
  --jdc-ease: cubic-bezier(.4, .2, .2, 1);
  --jdc-duration-fast: 120ms;
  --jdc-duration-base: 220ms;
  --jdc-duration-slow: 400ms;
}

html,
body {
  font-family: var(--jdc-font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

* {
  box-sizing: border-box;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
  font-family: var(--jdc-font-display);
}

p {
  margin-top: 0;
  margin-bottom: 0;
}

.wp-block-post-content p,
.entry-content p {
  margin-bottom: 1.1em;
}

a {
  text-decoration-color: rgba(46, 59, 38, .28);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color .22s cubic-bezier(.4, .2, .2, 1);
}

/* Links on dark (ink) backgrounds must inherit the surrounding light text color
   instead of the global dark link color, or they become invisible. */
.has-ink-background-color a {
  color: inherit;
  text-decoration-color: rgba(250, 246, 236, .35);
}
.has-ink-background-color a:hover {
  color: var(--wp--preset--color--honey);
}

.wp-site-blocks > footer {
  margin-block-start: 0;
}

.wp-block-group[style*="margin-top:0"],
.jdc-section {
  margin-top: 0 !important;
}

/* ==========================================================================
   Layout helpers
   ========================================================================== */

.equal-cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  flex-grow: 0;
}
.equal-cards > .wp-block-column > .wp-block-group {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.equal-cards .cta-bottom {
  margin-top: auto;
  justify-content: center;
}

/* Reset default paragraph margin on all UI atoms built from <p> tags. */
.jdc-postit-row-name,
.jdc-postit-row-qty,
.jdc-group-chip,
.jdc-group-legend-item,
.jdc-status-pill,
.jdc-hours-pill,
.jdc-flipcard-name,
.jdc-flipcard-price,
.jdc-flipcard-badge,
.jdc-postit-label,
.jdc-eyebrow-muted,
.jdc-kicker,
.jdc-wordmark,
.jdc-postit-price,
.jdc-ribbon-kicker {
  margin: 0;
}

/* ==========================================================================
   Alerte / bandeau prioritaire
   ========================================================================== */

.jdc-alert-bar {
  background: #C4452F;
  padding: 10px 24px;
}
.jdc-alert-bar p {
  margin: 0;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .02em;
  color: #FAF6EC;
}
.jdc-alert-bar.is-info {
  background: #8FA277;
}
.jdc-alert-bar.is-info p {
  color: #2E3B26;
}

/* ==========================================================================
   Watercolor / "papier aquarelle vivant" — zones pérennes
   ========================================================================== */

.jdc-watercolor {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
}
.jdc-watercolor::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  filter: blur(10px);
  background:
    radial-gradient(ellipse 42% 55% at 60% 32%, rgba(127, 160, 95, .55), transparent 62%),
    radial-gradient(ellipse 34% 44% at 82% 68%, rgba(224, 123, 57, .5), transparent 60%),
    radial-gradient(ellipse 30% 40% at 44% 78%, rgba(156, 192, 106, .5), transparent 62%),
    radial-gradient(ellipse 26% 34% at 92% 24%, rgba(232, 181, 75, .55), transparent 64%),
    radial-gradient(ellipse 24% 30% at 70% 92%, rgba(196, 69, 47, .4), transparent 66%),
    radial-gradient(ellipse 40% 50% at 30% 22%, rgba(143, 162, 119, .35), transparent 66%);
}
.jdc-watercolor.is-warm::before {
  background:
    radial-gradient(ellipse 45% 55% at 85% 60%, rgba(224, 123, 57, .4), transparent 62%),
    radial-gradient(ellipse 38% 44% at 20% 24%, rgba(127, 160, 95, .48), transparent 64%),
    radial-gradient(ellipse 28% 34% at 55% 88%, rgba(232, 181, 75, .34), transparent 64%);
}
.jdc-watercolor.is-golden::before {
  background:
    radial-gradient(ellipse 50% 60% at 80% 30%, rgba(232, 181, 75, .42), transparent 62%),
    radial-gradient(ellipse 42% 48% at 15% 68%, rgba(127, 160, 95, .5), transparent 64%),
    radial-gradient(ellipse 30% 38% at 60% 85%, rgba(224, 123, 57, .32), transparent 64%);
}
.jdc-watercolor.is-sober::before {
  background:
    radial-gradient(ellipse 40% 50% at 70% 30%, rgba(143, 162, 119, .3), transparent 64%),
    radial-gradient(ellipse 34% 40% at 20% 76%, rgba(228, 217, 190, .55), transparent 66%);
}
.jdc-watercolor > .wp-block-group,
.jdc-watercolor > .wp-block-columns {
  position: relative;
  z-index: 1;
}
.jdc-watercolor.has-frame {
  border: 1px solid rgba(46, 59, 38, .12);
  box-shadow: 0 2px 10px rgba(46, 59, 38, .08);
}

/* Cadres éditoriaux du bas de l'accueil — même surface que Card dans le
   design system : crème, trait végétal translucide, rayon 8 px, ombre douce. */
.jdc-image-frame {
  position: relative;
  width: 100%;
  min-height: 230px;
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid rgba(46, 59, 38, .12);
  border-radius: 8px !important;
  background: #FBF6EA;
  box-shadow: 0 2px 10px rgba(46, 59, 38, .08);
}
.jdc-image-frame > * {
  position: relative;
  z-index: 1;
}
.jdc-image-frame.is-sage {
  min-height: 300px;
  background:
    radial-gradient(ellipse at 72% 28%, rgba(143, 162, 119, .22), transparent 56%),
    #FBF6EA;
}
.jdc-image-frame.is-warm {
  min-height: 280px;
  background:
    radial-gradient(ellipse at 28% 72%, rgba(224, 123, 57, .16), transparent 58%),
    #FFFDF4;
}
.jdc-image-frame.is-kosmos {
  min-height: 150px;
  background:
    radial-gradient(ellipse at 72% 25%, rgba(127, 160, 95, .2), transparent 54%),
    #EFE7D6;
}

.jdc-watercolor-accent {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: .9;
  filter: drop-shadow(0 6px 14px rgba(46, 59, 38, .14));
}

/* ==========================================================================
   Header / navigation
   ========================================================================== */

.jdc-header {
  border-bottom: 1px solid rgba(46, 59, 38, .1);
  background: #FAF6EC;
}
.jdc-wordmark {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.2rem;
  letter-spacing: .01em;
  color: #2E3B26;
  text-decoration: none;
}
.jdc-nav .wp-block-navigation-item > a {
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  font-size: .72rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #5B6B4E;
  text-decoration: none;
}
.jdc-nav .wp-block-navigation-item > a:hover {
  color: #7FA05F;
}
.jdc-basket-glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #2E3B26;
  color: #FAF6EC;
  font-size: .78rem;
  text-decoration: none;
}
.jdc-header-actions .wc-block-customer-account__link,
.jdc-header-actions .wc-block-mini-cart__button {
  color: #2E3B26;
  transition: color .2s cubic-bezier(.4, .2, .2, 1);
}
.jdc-header-actions .wc-block-customer-account__link:hover,
.jdc-header-actions .wc-block-mini-cart__button:hover {
  color: #7FA05F;
}
.jdc-header-actions .wc-block-customer-account__account-icon,
.jdc-header-actions .wc-block-mini-cart__icon {
  width: 22px;
  height: 22px;
}
.jdc-header-actions .wc-block-mini-cart__badge {
  background: #C4452F !important;
}

/* ==========================================================================
   Entête public commun
   ========================================================================== */
.jdc-site-header {
  border-bottom: 1px solid rgba(46, 59, 38, .12);
  background: #FAF6EC;
}
.jdc-site-header-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 20px 40px;
}
.jdc-site-wordmark {
  flex: none;
  font: 600 19px/1 'Playfair Display', serif;
  letter-spacing: .01em;
  color: #2E3B26;
  text-decoration: none;
}
.jdc-site-header-right,
.jdc-site-navigation {
  display: flex;
  align-items: center;
}
.jdc-site-header-right { gap: 26px; }
.jdc-site-navigation { gap: 26px; }
.jdc-site-navigation a,
.jdc-site-account {
  white-space: nowrap;
  font: 500 11px/1 'DM Sans', sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #5B6B4E;
  text-decoration: none;
}
.jdc-site-navigation a.is-active,
.jdc-site-navigation a:hover,
.jdc-site-account:hover { color: #2E3B26; }
.jdc-site-navigation a.is-active { font-weight: 600; }
.jdc-site-account {
  font-weight: 600;
  color: #2E3B26;
  text-transform: none;
  letter-spacing: .04em;
}
.jdc-site-header-divider {
  width: 1px;
  height: 20px;
  background: rgba(46, 59, 38, .2);
}
.jdc-site-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex: none;
  border-radius: 50%;
  background: var(--jdc-green-almond);
  text-decoration: none;
}
.jdc-site-cart > span {
  color: var(--jdc-green-900);
  font: 600 12px/1 var(--jdc-font-body);
}
.jdc-site-cart b {
  position: absolute;
  top: -5px;
  right: -4px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 3px;
  border-radius: 20px;
  background: #C4452F;
  color: #fff;
  font: 700 .6rem/1 'DM Sans', sans-serif;
}
.jdc-breadcrumbs {
  display: flex;
  align-items: center;
  gap: 10px;
  width: calc(100% - 48px);
  max-width: 1180px;
  min-height: 48px;
  margin: 0 auto;
  border-top: 1px solid rgba(46, 59, 38, .1);
  color: #8D8979;
  font-size: .76rem;
}
.jdc-breadcrumbs a { color: #8D8979; }
.jdc-breadcrumbs strong { color: #2E3B26; font-weight: 600; }
.jdc-site-menu-toggle { display: none; }

/* Un même axe de 1180 px pour les pages éditoriales et WooCommerce. */
.jdc-page-hero > *,
.jdc-page-content,
.jdc-shop-page-hero > * {
  width: 100%;
  max-width: 1180px !important;
  box-sizing: border-box;
}
.jdc-shop-page-hero {
  width: 100% !important;
  max-width: none !important;
}
.jdc-page-content > .wp-block-post-content {
  width: 100%;
  max-width: 1180px !important;
}
.jdc-page-content > .wp-block-post-content > p,
.jdc-page-content > .wp-block-post-content > h2,
.jdc-page-content > .wp-block-post-content > h3,
.jdc-page-content > .wp-block-post-content > h4,
.jdc-page-content > .wp-block-post-content > ul,
.jdc-page-content > .wp-block-post-content > ol {
  max-width: 780px;
}
@media (max-width: 1040px) {
  .jdc-site-menu-toggle {
    display: inline-flex;
    padding: 9px 12px;
    border: 1px solid rgba(46, 59, 38, .25);
    border-radius: 5px;
    background: transparent;
    color: #2E3B26;
    font: 600 .72rem 'DM Sans', sans-serif;
  }
  .jdc-site-header-right {
    display: none;
    position: absolute;
    z-index: 30;
    top: 78px;
    right: 16px;
    left: 16px;
    align-items: stretch;
    flex-direction: column;
    padding: 22px;
    border: 1px solid rgba(46, 59, 38, .12);
    border-radius: var(--jdc-radius-md);
    background: #FBF6EA;
    box-shadow: 0 8px 24px rgba(46, 59, 38, .12);
  }
  .jdc-site-header-right.is-open { display: flex; }
  .jdc-site-navigation { align-items: stretch; flex-direction: column; gap: 18px; }
  .jdc-site-header-divider { width: 100%; height: 1px; }
  .jdc-site-account { text-align: center; }
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.jdc-btn-primary .wp-block-button__link,
.wp-block-button__link {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  letter-spacing: .02em;
  padding: 14px 26px;
  transition: background .22s cubic-bezier(.4, .2, .2, 1), box-shadow .22s cubic-bezier(.4, .2, .2, 1), transform .12s cubic-bezier(.4, .2, .2, 1);
}
.wp-block-button__link:hover {
  box-shadow: 0 8px 26px rgba(46, 59, 38, .16);
  transform: translateY(-1px);
}
.jdc-btn-outline .wp-block-button__link {
  background: transparent !important;
  color: #2E3B26 !important;
  border: 1.5px solid #2E3B26;
}
.jdc-btn-outline .wp-block-button__link:hover {
  border-color: #A2AD74 !important;
  background: #E3EACF !important;
  color: #4A5D3A !important;
}
.jdc-btn-gold .wp-block-button__link {
  background: #E8B54B !important;
  color: #2E3B26 !important;
}

/* ==========================================================================
   Newsletter ribbon — "Le fil du jardin"
   ========================================================================== */

.jdc-ribbon {
  background: #2E3B26;
  border-radius: 8px;
  padding: 26px 28px;
}
.jdc-ribbon .jdc-ribbon-kicker {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #E8B54B;
}
.jdc-ribbon h2,
.jdc-ribbon h3 {
  color: #FAF6EC;
}
.jdc-ribbon p {
  color: #DCE3CE;
}
.jdc-ribbon-card {
  background: #FBF6EA;
  border-radius: 9px;
  padding: 26px 28px;
}
.jdc-ribbon input[type="email"] {
  font-family: 'DM Sans', sans-serif;
  border: 1.5px solid #7FA05F;
  border-radius: 6px;
  padding: 14px 15px;
  font-size: .875rem;
  color: #2E3B26;
  background: #fff;
  width: 100%;
  box-sizing: border-box;
}

.jdc-newsletter-wrap {
  position: relative;
  z-index: 2;
}
.jdc-newsletter-wrap > .jdc-newsletter,
.jdc-newsletter-wrap > .wp-block-jdc-newsletter-ribbon {
  width: 100%;
  max-width: 1180px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  box-sizing: border-box;
}
.jdc-newsletter {
  padding: 22px 24px;
  border-radius: 9px;
  background: #2E3B26;
  color: #FAF6EC;
}
.jdc-newsletter.is-subscriber-state,
.jdc-newsletter.is-member-state {
  padding: 0;
  background: transparent;
  color: #2E3B26;
}
.jdc-newsletter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 44px;
}
.jdc-newsletter-bar[hidden],
.jdc-newsletter-panel[hidden] { display: none !important; }
.jdc-newsletter-bar strong {
  display: block;
  margin-top: 3px;
  font-size: .92rem;
}
.jdc-newsletter-kicker {
  display: block;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #E8B54B;
}
.jdc-newsletter-toggle,
.jdc-newsletter-form > button {
  padding: 12px 22px;
  border: 0;
  border-radius: 6px;
  background: #E8B54B;
  color: #2E3B26;
  font: 700 .78rem 'DM Sans', sans-serif;
  cursor: pointer;
}
.jdc-newsletter.is-open .jdc-newsletter-toggle {
  outline: 2px solid #E8B54B;
  outline-offset: 2px;
  background: transparent;
  color: #FAF6EC;
}
.jdc-newsletter-panel {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 40px;
  margin-top: 18px;
  padding: 30px 34px;
  border-radius: 9px;
  background: #FBF6EA;
  color: #2E3B26;
}
.jdc-newsletter-copy h2 {
  margin: 10px 0 8px;
  font-size: 1.75rem;
}
.jdc-newsletter-copy p {
  margin: 0;
  font-size: .88rem;
  line-height: 1.65;
}
.jdc-newsletter-copy p strong { color: #C4452F; }
.jdc-newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.jdc-newsletter-form input[type="email"] {
  min-height: 52px;
  padding: 0 16px;
  border: 1.5px solid #7FA05F;
  border-radius: 6px;
  font: 500 .88rem 'DM Sans', sans-serif;
}
.jdc-newsletter-form > button {
  width: 100%;
  min-height: 48px;
  background: #B7C08D;
  color: #5C6B45;
}
.jdc-newsletter-form-meta {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: #8B927F;
}
.jdc-newsletter-link {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: 600 .72rem 'DM Sans', sans-serif;
  text-decoration: underline;
  cursor: pointer;
}
.jdc-newsletter-bar.is-subscriber {
  margin: 0;
  min-height: 24px;
  padding: 10px 18px;
  border-radius: 7px;
  background: #E3EACF;
  color: #3F5233;
}
.jdc-newsletter-bar.is-member {
  margin: 0;
  min-height: 24px;
  padding: 10px 18px;
  border-radius: 7px;
  background: #9BAD83;
  color: #2E3B26;
}
@media (max-width: 700px) {
  .jdc-newsletter { padding: 18px; }
  .jdc-newsletter-bar { align-items: flex-start; }
  .jdc-newsletter-panel { grid-template-columns: 1fr; gap: 22px; padding: 24px 20px; }
}

/* ==========================================================================
   Boutique — composition conforme au modèle BOUTIQUE
   ========================================================================== */
.jdc-shop-panier-intro,
.jdc-shop-basket-layout,
.jdc-shop-catalogue-heading,
.jdc-shop-filters,
.jdc-sort-pills,
.jdc-shop-toolbar,
.jdc-shop-grid {
  width: calc(100% - 48px);
  max-width: 1180px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  box-sizing: border-box;
}
.jdc-shop-panier-intro {
  gap: 12px !important;
}
.jdc-shop-basket-title {
  max-width: 850px;
  margin: 6px 0 0;
  font: 500 clamp(2.2rem, 4vw, 3.15rem)/1.1 'Playfair Display', serif;
}
.jdc-shop-panier-lead {
  max-width: 650px;
  margin-top: 0;
  font-size: .9rem;
  line-height: 1.65;
  color: #5B6B4E;
}
.jdc-shop-basket-layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(238px, 1fr);
  align-items: start;
  gap: 34px;
  margin-top: 34px;
}
.jdc-shop-basket-cards {
  align-items: start !important;
  gap: 28px !important;
  margin: 0 !important;
}
.jdc-shop-basket-cards > .wp-block-column {
  min-width: 0;
}
.jdc-shop-basket-cards .jdc-postit {
  min-height: 0;
  padding: 24px 22px 22px;
}
.jdc-shop-basket-cards .jdc-postit-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.jdc-shop-basket-cards .jdc-postit-title {
  width: 100%;
  max-width: calc(100% - 8px);
  min-height: 2.3em;
  margin-top: 8px;
  font-size: 1.45rem;
}
.jdc-shop-basket-cards .jdc-postit-price {
  position: static;
  flex: none;
  margin: 0;
  padding: 9px 12px;
  font-size: .8rem;
}
.jdc-shop-basket-cards .jdc-postit-tagline {
  min-height: 2.4em;
  margin-top: 7px;
  font-size: .73rem;
}
.jdc-shop-basket-cards .jdc-postit-rows {
  gap: 0;
  margin-top: 12px;
}
.jdc-shop-basket-cards .jdc-postit-row {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  border-width: 0 0 1px;
  border-radius: 0;
  clip-path: none;
  background: rgba(255, 253, 244, .62);
}
.jdc-shop-basket-cards .jdc-postit-row-thumb {
  border-style: dashed;
}
.jdc-shop-basket-cards .jdc-postit-cta {
  margin-top: 14px;
  padding: 12px 10px;
}
.jdc-shop-basket-aside {
  display: grid;
  gap: 20px;
}
.jdc-shop-garden-visual {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 365px;
  padding: 28px;
  border: 1px dashed rgba(46, 59, 38, .34);
  border-radius: var(--jdc-radius-card);
  background: #F3EEE4;
  color: #77746D;
  text-align: center;
}
.jdc-shop-garden-visual span {
  display: block;
  margin-bottom: 8px;
  font-size: 1.7rem;
  color: #A8A69E;
}
.jdc-shop-garden-visual strong {
  font-size: .78rem;
  font-weight: 500;
}
.jdc-shop-cart-summary {
  padding: 20px 22px;
  border: 2px solid #5B6B4E;
  border-radius: 7px;
  background: #FAF6EC;
  box-shadow: 0 8px 24px rgba(46, 59, 38, .08);
  color: #2E3B26;
  text-align: center;
}
.jdc-shop-cart-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: 0 auto 10px;
  border-radius: 50%;
  background: #B4C28D;
}
.jdc-shop-cart-kicker {
  margin: 0 0 18px;
  color: #7FA05F;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
}
.jdc-shop-cart-empty {
  min-height: 66px;
  margin: 0;
  color: #9AA389;
  font-size: .72rem;
  line-height: 1.55;
  text-align: left;
}
.jdc-postit-cta.is-selected {
  border: 2px solid currentColor;
  background: #B7C08D;
  color: #5C6B45;
}
.jdc-shop-selected-basket {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding: 16px 46px 16px 16px;
  border-radius: 7px;
  background: #8FA277;
  font: 600 .9rem 'Playfair Display', serif;
  text-align: left;
}
.jdc-shop-remove-basket {
  position: absolute;
  top: 50%;
  right: 12px;
  width: 26px;
  height: 26px;
  padding: 0;
  transform: translateY(-50%);
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}
.jdc-shop-selected-basket.tone-m {
  background: #E8B54B;
}
.jdc-shop-selected-basket.tone-xl {
  background: #C4452F;
  color: #FAF6EC;
}
.jdc-shop-cart-items {
  display: grid;
  gap: 8px;
}
.jdc-shop-cart-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 25px auto 25px 25px;
  align-items: center;
  gap: 7px;
  padding: 7px;
  border: 1px solid rgba(224, 123, 57, .3);
  border-radius: 7px;
  background: #FFFDF7;
  text-align: left;
}
.jdc-shop-cart-item .jdc-shop-remove-item {
  border-color: rgba(196, 69, 47, .45);
  color: #C4452F;
}
.jdc-shop-cart-item > img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  border-radius: 4px;
  background: #EFE7D6;
}
.jdc-shop-cart-item-copy {
  min-width: 0;
}
.jdc-shop-cart-item-copy strong,
.jdc-shop-cart-item-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jdc-shop-cart-item-copy strong {
  font: 500 .7rem 'Playfair Display', serif;
}
.jdc-shop-cart-item-copy small {
  margin-top: 2px;
  color: #9AA389;
  font-size: .57rem;
}
.jdc-shop-cart-item button {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 1px solid rgba(46, 59, 38, .22);
  background: #fff;
  color: #2E3B26;
  cursor: pointer;
}
.jdc-shop-cart-item > b {
  white-space: nowrap;
  font-size: .62rem;
}
.jdc-shop-cart-total {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(46, 59, 38, .14);
  font-size: .76rem;
}
.jdc-shop-cart-total strong:last-child {
  font-size: 1.1rem;
}
.jdc-shop-cart-checkout {
  display: block;
  margin-top: 14px;
  padding: 13px 12px;
  border: 1px solid #B4C28D;
  border-radius: var(--jdc-radius-control);
  background: #B4C28D;
  color: #2E3B26;
  font-size: .76rem;
  font-weight: 700;
  text-decoration: none;
}
.jdc-shop-cart-summary small {
  display: block;
  margin-top: 14px;
  color: #A0A895;
  font-size: .61rem;
  line-height: 1.45;
  text-align: left;
}
.jdc-shop-catalogue-heading h2 {
  margin: 0;
  font-size: 2rem;
}
.jdc-shop-catalogue-heading .jdc-shop-subtitle {
  margin-top: 6px;
}
.jdc-group-filter {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 12px;
}
.jdc-group-filter > .wp-block-group {
  grid-column: 1 / -1;
}
.jdc-shop-all-groups,
.jdc-group-filter .wc-block-product-filter-chips__item {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 7px 14px;
  border: 1px solid rgba(46, 59, 38, .16);
  border-radius: 7px !important;
  background: #FAF6EC;
  color: #667058;
  font-size: .72rem;
  font-weight: 600;
  text-decoration: none;
  box-sizing: border-box;
}
.jdc-shop-all-groups {
  gap: 10px;
  border: 2px solid #7FA05F;
  background: #E3EACF;
  color: #2E3B26;
}
.jdc-group-filter .wc-block-product-filter-chips {
  display: contents;
}
.jdc-group-filter .wc-block-product-filter-chips__items {
  display: contents;
}
.jdc-group-filter .wc-block-product-filter-chips__item {
  width: 100%;
}

@media (max-width: 980px) {
  .jdc-shop-basket-layout {
    grid-template-columns: 1fr;
  }
  .jdc-shop-basket-aside {
    grid-template-columns: 1fr 1fr;
  }
  .jdc-shop-garden-visual {
    min-height: 280px;
  }
  .jdc-group-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .jdc-shop-panier-intro,
  .jdc-shop-basket-layout,
  .jdc-shop-catalogue-heading,
  .jdc-shop-filters,
  .jdc-sort-pills,
  .jdc-shop-toolbar,
  .jdc-shop-grid {
    width: calc(100% - 32px);
  }
  .jdc-shop-basket-title {
    font-size: 2.2rem;
  }
  .jdc-shop-basket-cards,
  .jdc-shop-basket-aside {
    display: grid !important;
    grid-template-columns: 1fr;
  }
  .jdc-group-filter {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Panier post-it — S / M / XL
   ========================================================================== */

.jdc-postit {
  position: relative;
  background: #FFFDF4 repeating-linear-gradient(178deg, rgba(46, 59, 38, .025) 0px, rgba(46, 59, 38, .025) 1px, transparent 1px, transparent 3px);
  border-radius: 3px;
  box-shadow: 0 3px 6px rgba(46, 59, 38, .1), 0 14px 28px rgba(46, 59, 38, .2);
  padding: 26px 26px 28px;
}
.jdc-postit.rotate-left { transform: rotate(-1.2deg); }
.jdc-postit.rotate-right { transform: rotate(0.9deg); }
.jdc-postit.rotate-back { transform: rotate(-0.7deg); }
.jdc-postit::before {
  content: "";
  position: absolute;
  top: -9px;
  left: 50%;
  transform: translateX(-50%) rotate(-2deg);
  width: 64px;
  height: 18px;
  background: rgba(232, 181, 75, .55);
}
.jdc-postit-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #7FA05F;
  display: block;
  margin-bottom: 2px;
}
.jdc-postit-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  line-height: 1.15;
  color: #2E3B26;
  margin: 0;
}
.jdc-postit-price {
  display: inline-block;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .82rem;
  color: #2E3B26;
  padding: 7px 12px;
  border-radius: 5px;
}
.jdc-postit-price.tone-sage { background: #8FA277; }
.jdc-postit-price.tone-honey { background: #E8B54B; }
.jdc-postit-price.tone-terracotta { background: #C4452F; color: #FAF6EC; }
.jdc-postit-tagline {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .78rem;
  line-height: 1.5;
  color: #7C7563;
  display: block;
  margin: 8px 0 0;
}
.jdc-postit-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 16px 0 0;
}
.jdc-postit-row {
  position: relative;
  width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  max-height: 46px !important;
  border-radius: 7px;
  overflow: hidden !important;
  clip-path: inset(0 round 7px);
  background: #FFFDF4;
  border: 1px solid rgba(46, 59, 38, .08);
}
.jdc-postit-row-face {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 8px;
}
.jdc-postit-row-thumb {
  width: 30px;
  height: 30px;
  margin: 0;
  border-radius: 6px;
  flex: none;
  overflow: hidden;
  background: var(--jdc-group-pastel, #EFE7D6);
  border: 1px solid color-mix(in srgb, var(--jdc-group, #8FA277) 40%, transparent);
}
.jdc-postit-row-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.jdc-postit-row-name {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: 'Playfair Display', serif;
  font-size: .78rem;
  color: #2E3B26;
}
.jdc-postit-row-qty {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .56rem;
  color: #9aa389;
}
.jdc-postit-row-desc {
  position: absolute;
  top: 0 !important;
  left: 0;
  right: 0;
  margin: 0 !important;
  width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  max-height: 46px !important;
  display: flex;
  align-items: center;
  overflow: hidden;
  box-sizing: border-box;
  padding: 0 12px;
  background: color-mix(in srgb, var(--jdc-group-pastel, #cbd9ae) 96%, transparent);
  transform: translateY(46px);
  transition: transform .32s cubic-bezier(.4, .2, .2, 1);
}
.jdc-postit-row:hover .jdc-postit-row-desc {
  transform: translateY(0);
}
.jdc-postit-row-desc p,
.jdc-postit-row-desc span {
  margin: 0;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .68rem;
  line-height: 1.35;
  color: #2E3B26;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.jdc-postit-cta {
  margin-top: 16px;
  width: 100%;
  text-align: center;
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .02em;
  padding: 11px;
  border-radius: 5px;
  text-decoration: none;
  box-sizing: border-box;
}
.jdc-postit-cta.tone-sage { background: #8FA277; color: #2E3B26; }
.jdc-postit-cta.tone-honey { background: #E8B54B; color: #2E3B26; }
.jdc-postit-cta.tone-terracotta { background: #C4452F; color: #FAF6EC; }
.jdc-postit-cta:hover {
  color: inherit;
  filter: brightness(.96);
}

/* ==========================================================================
   Groupes botaniques — variables de couleur par groupe
   ========================================================================== */

.jdc-group-racines { --jdc-group: #eea03a; --jdc-group-pastel: #e7cbab; }
.jdc-group-bulbes { --jdc-group: #9f71d3; --jdc-group-pastel: #d1c0e4; }
.jdc-group-salades { --jdc-group: #b7e532; --jdc-group-pastel: #dbe9b4; }
.jdc-group-choux { --jdc-group: #84b738; --jdc-group-pastel: #d6e8af; }
.jdc-group-legumesfruits { --jdc-group: #e9b323; --jdc-group-pastel: #eadeb5; }
.jdc-group-aromatiques { --jdc-group: #70c956; --jdc-group-pastel: #cbe4c3; }
.jdc-group-fruits { --jdc-group: #d83d31; --jdc-group-pastel: #eac0b5; }

/* ==========================================================================
   Product flip card
   ========================================================================== */

.jdc-flipcard {
  width: 100%;
  border-radius: 9px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(46, 59, 38, .08);
  border: 1px solid color-mix(in srgb, var(--jdc-group, #8FA277) 35%, transparent);
  background: color-mix(in srgb, var(--jdc-group-pastel, #E3EACF) 30%, #FBF6EA);
}
/* Les groupes Gutenberg « constrained » réduisent sinon les deux faces de la
   carte à la largeur de contenu. L'image et le bandeau inférieur doivent
   suivre exactement les bords de la carte. */
.jdc-flipcard > .jdc-flipcard-visual,
.jdc-flipcard > .jdc-flipcard-body {
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}
.jdc-flipcard > .jdc-flipcard-body {
  margin-top: 0 !important;
}
.jdc-flipcard-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-top: 2px solid var(--jdc-group, #8FA277);
  border-left: 2px solid var(--jdc-group, #8FA277);
  border-right: 2px solid var(--jdc-group, #8FA277);
  box-sizing: border-box;
  background: var(--jdc-group-pastel, #E3EACF);
}
.jdc-flipcard-visual figure {
  margin: 0;
  width: 100%;
  height: 100%;
}
.jdc-flipcard-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14%;
  box-sizing: border-box;
}
.jdc-hero-accent {
  margin: 0 auto !important;
}
.jdc-flipcard-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .58rem;
  letter-spacing: .04em;
  color: #3a3226;
  background: var(--jdc-group-pastel, #E3EACF);
  padding: 4px 9px;
  border-radius: 20px;
}
.jdc-flipcard-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 0 16px;
  background: var(--jdc-group-pastel, #E3EACF);
  transform: translateY(100%);
  transition: transform .32s cubic-bezier(.4, .2, .2, 1);
}
.jdc-flipcard:hover .jdc-flipcard-overlay,
.jdc-flipcard:focus-within .jdc-flipcard-overlay {
  transform: translateY(0%);
}
.jdc-flipcard-overlay span {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .82rem;
  line-height: 1.4;
  color: #2E3B26;
}
.jdc-flipcard-body {
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-top: 3px solid var(--jdc-group, #8FA277);
  background: color-mix(in srgb, var(--jdc-group-pastel, #E3EACF) 20%, #FBF6EA);
}
.jdc-flipcard-name {
  font-family: 'Playfair Display', serif;
  font-size: .92rem;
  color: #2E3B26;
}
.jdc-flipcard-price {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .78rem;
  color: #2E3B26;
}
.jdc-flipcard-price .unit {
  font-weight: 400;
  font-size: .68rem;
  color: #9aa389;
}
.jdc-flipcard-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .03em;
  width: 100%;
  box-sizing: border-box;
  color: #5C6B45;
  background: #B7C08D;
  padding: 9px;
  border-radius: 6px;
  border: 1px solid #B7C08D;
  text-decoration: none;
  transition: all .18s cubic-bezier(.4, .2, .2, 1);
}
.jdc-flipcard-add:hover {
  gap: 10px;
  background: #A2AD74;
  color: #4A5D3A;
  border-color: #A2AD74;
}

.jdc-flipcard-hero {
  border: none;
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(46, 59, 38, .08));
}
.jdc-flipcard-hero .jdc-flipcard-visual {
  border: none;
  background: var(--jdc-group-wash, rgba(143, 162, 119, .16));
}
.jdc-flipcard-hero .jdc-flipcard-overlay {
  background: color-mix(in srgb, var(--jdc-group-pastel, #E3EACF) 92%, transparent);
}
.jdc-flipcard-hero .jdc-flipcard-body {
  border-top: none;
  background: transparent;
  padding: 15px 4px 4px;
}
.jdc-flipcard-hero .jdc-flipcard-name { font-size: 1.05rem; }
.jdc-flipcard-hero .jdc-flipcard-add {
  background: #B7C08D;
  color: #5C6B45;
  border: none;
  padding: 12px;
}
.jdc-flipcard-hero .jdc-flipcard-add:hover { background: #A2AD74; color: #4A5D3A; }

/* ==========================================================================
   Group buttons (filtre catalogue)
   ========================================================================== */

.jdc-group-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.jdc-group-chip {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .02em;
  padding: 7px 16px 7px 7px;
  border-radius: 20px;
  text-decoration: none;
  color: #5a6350;
  background: #FBF6EA;
  border: 1.5px solid rgba(46, 59, 38, .14);
  transition: all .18s cubic-bezier(.4, .2, .2, 1);
}
.jdc-group-chip:hover {
  transform: translateY(-2px);
  color: #2E3B26;
  box-shadow: 0 4px 14px rgba(46, 59, 38, .18);
}
.jdc-group-chip-dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  flex: none;
  border: 2px solid var(--jdc-group, #8FA277);
  overflow: hidden;
  background: #fff;
}
.jdc-group-chip-dot img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 3px;
  box-sizing: border-box;
}
.jdc-group-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
}
.jdc-group-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  font-size: .625rem;
  color: #5a6350;
}
.jdc-group-legend-swatch {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: inline-block;
}

/* ==========================================================================
   Points de vente / horaires — cartes post-it "info"
   ========================================================================== */

.jdc-info-card {
  background: #FBF6EA;
  border: 1px solid rgba(46, 59, 38, .12);
  border-radius: 9px;
  box-shadow: 0 2px 10px rgba(46, 59, 38, .08);
  overflow: hidden;
}
.jdc-location-card {
  padding: 0 !important;
}
.jdc-location-card-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: none !important;
  min-height: 160px;
  margin: 0 !important;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 28% 68%, rgba(224, 123, 57, .18), transparent 46%),
    radial-gradient(ellipse at 72% 30%, rgba(143, 162, 119, .28), transparent 54%),
    #EFE7D6;
}
.jdc-location-card-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 38%, rgba(255, 253, 244, .48), transparent 64%);
}
.jdc-location-card-visual span {
  position: relative;
  z-index: 1;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #756e5c;
}
.jdc-location-card-body {
  padding: 24px 26px 26px;
}
.jdc-location-card-body > :first-child { margin-top: 0; }
.jdc-location-card-body > :last-child { margin-bottom: 0; }

.jdc-kosmos-grid > .wp-block-column,
.jdc-kosmos-grid > .wp-block-column > .wp-block-group,
.jdc-kosmos-links,
.jdc-kosmos-links > .wp-block-group {
  width: 100%;
  max-width: none !important;
  box-sizing: border-box;
}
.jdc-kosmos-links {
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
}
.jdc-kosmos-links > .jdc-info-card { flex: 1; }

/* Les cadres éditoriaux de l'accueil restent dans la même colonne que les
   produits et le ruban : aucun panneau ne touche les bords de la fenêtre. */
.jdc-home-editorial,
.jdc-kosmos-grid {
  width: calc(100% - 48px) !important;
  max-width: 1180px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  box-sizing: border-box;
}
@media (max-width: 700px) {
  .jdc-home-editorial,
  .jdc-kosmos-grid {
    width: calc(100% - 32px) !important;
  }
}
.jdc-hours-pill {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  width: fit-content;
  background: #8FA277;
  border: 0;
  border-radius: 2px;
  padding: 10px 14px;
  box-shadow: none;
  cursor: default;
}
.jdc-hours-pill .day {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .88rem;
  color: #2E3B26;
}
.jdc-hours-pill .time {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .03em;
  color: #2E3B26;
}
.jdc-status-pill {
  display: inline-block;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .55rem;
  letter-spacing: .02em;
  background: #E3EACF;
  color: #3F5233;
  padding: 4px 10px;
  border-radius: 20px;
}
.jdc-status-pill.is-exception {
  background: #F3E2AE;
  color: #8a6a1e;
}

/* ==========================================================================
   Kicker / eyebrow labels
   ========================================================================== */

.jdc-kicker {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #7FA05F;
  margin-bottom: 6px;
}
.jdc-eyebrow-muted {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #AFA88E;
}

/* ==========================================================================
   Sober register — Qui sommes-nous
   ========================================================================== */

.jdc-sober {
  background: #F3EFE3;
}
.jdc-sober h1,
.jdc-sober h2,
.jdc-sober h3 {
  font-weight: 400;
}

/* ==========================================================================
   Motion — fondus doux, jamais de rebond
   ========================================================================== */

.fade-up {
  opacity: 0;
  transform: translateY(24px);
  animation: jdcFadeUp .6s cubic-bezier(.4, .2, .2, 1) forwards;
}
.fade-in {
  opacity: 0;
  animation: jdcFadeIn .7s cubic-bezier(.4, .2, .2, 1) forwards;
}
.slide-in-left {
  opacity: 0;
  transform: translateX(-32px);
  animation: jdcSlideIn .7s cubic-bezier(.4, .2, .2, 1) forwards;
}
.slide-in-right {
  opacity: 0;
  transform: translateX(32px);
  animation: jdcSlideIn .7s cubic-bezier(.4, .2, .2, 1) forwards;
}
.animate-on-scroll {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .6s cubic-bezier(.4, .2, .2, 1), transform .6s cubic-bezier(.4, .2, .2, 1);
}
.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.stagger-children > * {
  opacity: 0;
  transform: translateY(18px);
  animation: jdcFadeUp .55s cubic-bezier(.4, .2, .2, 1) forwards;
}
.stagger-children > *:nth-child(1) { animation-delay: .08s; }
.stagger-children > *:nth-child(2) { animation-delay: .16s; }
.stagger-children > *:nth-child(3) { animation-delay: .24s; }
.stagger-children > *:nth-child(4) { animation-delay: .32s; }

@keyframes jdcFadeUp { to { opacity: 1; transform: translateY(0); } }
@keyframes jdcFadeIn { to { opacity: 1; } }
@keyframes jdcSlideIn { to { opacity: 1; transform: translateX(0); } }

.hover-lift {
  transition: transform .22s cubic-bezier(.4, .2, .2, 1), box-shadow .22s cubic-bezier(.4, .2, .2, 1);
}
.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(46, 59, 38, .18);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
  .animate-on-scroll,
  .fade-up,
  .fade-in,
  .slide-in-left,
  .slide-in-right,
  .stagger-children > * {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ==========================================================================
   Boutique — barre de filtres sticky compacte
   Le panneau vient toucher le haut du viewport. Les huit groupes occupent
   toute sa largeur ; Exotique, couleurs et prix partagent une seule ligne.
   ========================================================================== */
@media (max-width: 0px) {
.jdc-filter-sticky-panel.is-sticky-filters {
  position: fixed;
  top: 0;
  display: block;
  padding: 10px 12px 50px;
  border-radius: 0 0 var(--jdc-radius-md) var(--jdc-radius-md);
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters {
  display: block;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 10px;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter > .wp-block-group {
  display: none;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__items {
  display: contents;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-all-groups,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__item {
  width: 100%;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  padding: 5px 10px 5px 6px;
  border-radius: var(--jdc-radius-md) !important;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__item::before,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-all-groups .jdc-group-filter-icon {
  width: 25px;
  height: 25px;
  flex-basis: 25px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-all-groups > span:last-child,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__item > span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
  position: absolute;
  bottom: 10px;
  grid-column: auto;
  grid-row: auto;
  margin: 0 !important;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
  left: 12px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter {
  right: 190px;
  left: 132px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
  right: 12px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wp-block-group {
  display: none;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__items,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wc-block-product-filter-checkbox-list__items {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 12px;
  height: 30px;
  margin: 0;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__item {
  height: 30px;
  min-height: 30px;
  padding: 3px 5px 3px 1px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wc-block-product-filter-checkbox-list__item,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wc-block-product-filter-checkbox-list__item label {
  min-height: 30px;
  margin: 0;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
  align-items: center;
  height: 30px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pill {
  min-height: 30px;
  height: 30px;
  padding: 5px 9px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pill:focus,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pill:focus-visible {
  outline: 0;
  border-color: #E8B54B;
  box-shadow: 0 0 0 2px rgba(232, 181, 75, .28);
}

/* Panneau flottant : groupes, Exotique, couleurs et prix. */
.jdc-filter-sticky-panel {
  grid-column: 1;
  width: 100%;
}
.jdc-filter-sticky-placeholder {
  height: 0;
  grid-column: 1;
  width: 100%;
  min-width: 0;
}
.jdc-filter-sticky-panel.is-sticky-filters {
  position: fixed;
  top: 12px;
  left: var(--jdc-sticky-left);
  z-index: 80;
  width: var(--jdc-sticky-width);
  min-width: 0;
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid rgba(127, 160, 95, .34);
  border-radius: var(--jdc-radius-xl);
  background: rgba(250, 246, 236, .96);
  box-shadow:
    0 12px 28px rgba(46, 59, 38, .16),
    0 2px 7px rgba(46, 59, 38, .08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter > .wp-block-group {
  display: none;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px 14px;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter {
  grid-column: 1 / -1;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
  align-self: center;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter {
  min-width: 0;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wp-block-group {
  display: none;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wc-block-product-filter-checkbox-list__items {
  margin-top: 0;
  gap: 5px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
  width: 100%;
  max-width: none !important;
  margin: 10px 0 0 !important;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-all-groups,
.jdc-filter-sticky-panel.is-sticky-filters .wc-block-product-filter-chips__item {
  min-height: 38px;
  height: 38px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__item::before {
  width: 22px;
  height: 22px;
}

@media (max-width: 980px) {
  .jdc-filter-sticky-panel.is-sticky-filters {
    position: static;
    width: auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
}
}

/* La formule dans « Mon panier » reprend l'état premium du bouton choisi. */
.jdc-shop-selected-basket,
.jdc-shop-selected-basket.tone-m,
.jdc-shop-selected-basket.tone-xl {
  --jdc-selected-accent: #A9C185;
  --jdc-selected-bg: #8FA277;
  --jdc-selected-ink: #2E3B26;
  width: 100%;
  height: 44px;
  min-height: 44px;
  box-sizing: border-box;
  border: 1.5px solid var(--jdc-selected-accent);
  border-radius: var(--jdc-radius-md);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .09), transparent 46%),
    var(--jdc-selected-bg);
  color: var(--jdc-selected-ink);
  box-shadow:
    0 9px 18px rgba(46, 59, 38, .19),
    0 2px 4px rgba(46, 59, 38, .13),
    inset 0 1px 0 rgba(255, 255, 255, .15),
    inset 0 0 0 1px rgba(255, 253, 244, .05);
  text-shadow: 0 1px 1px rgba(0, 0, 0, .25);
}
.jdc-shop-selected-basket.tone-m {
  --jdc-selected-accent: #E8B54B;
  --jdc-selected-bg: #E8B54B;
  --jdc-selected-ink: #2E3B26;
}
.jdc-shop-selected-basket.tone-xl {
  --jdc-selected-accent: #D96A50;
  --jdc-selected-bg: #C4452F;
  --jdc-selected-ink: #FFFDF4;
}
.jdc-shop-selected-basket::after {
  content: "";
  position: absolute;
  right: 46px;
  bottom: 5px;
  left: 14px;
  height: 1px;
  opacity: .5;
  background: linear-gradient(90deg, transparent, var(--jdc-selected-accent), transparent);
}
.jdc-shop-selected-basket > strong {
  color: inherit;
}
.jdc-shop-selected-basket .jdc-shop-remove-basket {
  border-color: color-mix(in srgb, currentColor 68%, transparent);
  border-radius: var(--jdc-radius-sm);
  background: rgba(255, 253, 244, .12);
  color: inherit;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}
.jdc-shop-selected-basket .jdc-shop-remove-basket:hover {
  border-color: currentColor;
  background: rgba(255, 253, 244, .24);
}

/* === Editor: keep animated content visible while editing === */
.editor-styles-wrapper .fade-up,
.editor-styles-wrapper .fade-in,
.editor-styles-wrapper .slide-in-left,
.editor-styles-wrapper .slide-in-right,
.editor-styles-wrapper .animate-on-scroll,
.editor-styles-wrapper .stagger-children > * {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 782px) {
  .jdc-postit,
  .jdc-postit.rotate-left,
  .jdc-postit.rotate-right,
  .jdc-postit.rotate-back {
    transform: none;
  }
}

/* ==========================================================================
   Boutique — archive produits WooCommerce (direction « La Cueillette »)
   ========================================================================== */

/* Correspondance catégories WooCommerce → couleurs de groupe.
   Les slugs doivent rester alignés avec l'import du catalogue. */
.jdc-shop-grid li.product_cat-racines-tubercules { --jdc-group: #eea03a; --jdc-group-pastel: #e7cbab; }
.jdc-shop-grid li.product_cat-bulbes-poireaux { --jdc-group: #9f71d3; --jdc-group-pastel: #d1c0e4; }
.jdc-shop-grid li.product_cat-salades-feuilles { --jdc-group: #b7e532; --jdc-group-pastel: #dbe9b4; }
.jdc-shop-grid li.product_cat-choux-brocolis { --jdc-group: #84b738; --jdc-group-pastel: #d6e8af; }
.jdc-shop-grid li.product_cat-legumes-fruits-fleurs { --jdc-group: #e9b323; --jdc-group-pastel: #eadeb5; }
.jdc-shop-grid li.product_cat-aromatiques { --jdc-group: #70c956; --jdc-group-pastel: #cbe4c3; }
.jdc-shop-grid li.product_cat-fruits { --jdc-group: #d83d31; --jdc-group-pastel: #eac0b5; }

.jdc-shop-breadcrumbs,
.jdc-shop-breadcrumbs a {
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem;
  color: #7C7563;
}
.jdc-shop-title {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  font-size: 2.4rem;
  line-height: 1.15;
  color: #2E3B26;
  margin: 8px 0 0;
}
.jdc-shop-subtitle {
  font-family: 'DM Sans', sans-serif;
  font-size: .88rem;
  line-height: 1.6;
  color: #7C7563;
  margin: 0;
}
.jdc-shop-panier-intro {
  gap: 10px !important;
}
.jdc-shop-section-title {
  margin: 0;
  font: 500 1.9rem/1.25 'Playfair Display', serif;
  color: #2E3B26;
}
.jdc-shop-panier-lead {
  margin: 0;
  font-size: .95rem;
  line-height: 1.55;
}

.jdc-shop-panier-band {
  background: #8FA277;
  border-radius: 9px;
  padding: 14px 20px;
  align-items: center;
}
.jdc-shop-panier-band-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .8rem;
  color: #2E3B26;
}
.jdc-shop-panier-band-text strong {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  font-size: .95rem;
}
.jdc-shop-panier-band-link a {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .74rem;
  color: #2E3B26;
  background: #FBF6EA;
  padding: 9px 14px;
  border-radius: 5px;
  text-decoration: none;
  display: inline-block;
  transition: all .18s cubic-bezier(.4, .2, .2, 1);
}
.jdc-shop-panier-band-link a:hover {
  background: #E3EACF;
  color: #4A5D3A;
}

.jdc-group-chip a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: inherit;
  text-decoration: none;
}
.jdc-group-chip-dot-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  color: #2E3B26;
  background: #E3EACF;
  border-color: #7FA05F;
}

.jdc-shop-toolbar .woocommerce-result-count {
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem;
  color: #9aa389;
  margin: 0;
}
.jdc-shop-toolbar .wc-block-catalog-sorting select,
.jdc-shop-toolbar select.orderby {
  font-family: 'DM Sans', sans-serif;
  font-size: .74rem;
  color: #2E3B26;
  background-color: #FBF6EA;
  border: 1.5px solid rgba(46, 59, 38, .18);
  border-radius: 7px;
  padding: 7px 10px;
}

/* Carte produit — même vocabulaire que les flip cards de l'accueil */
.jdc-shop-grid li.wc-block-product {
  position: relative;
  background: color-mix(in srgb, var(--jdc-variety, var(--jdc-group, #8FA277)) 10%, #FFFDF4);
  border: 1px solid color-mix(in srgb, var(--jdc-variety, var(--jdc-group, #8FA277)) 35%, transparent);
  border-radius: 9px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(46, 59, 38, .08);
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  transition: transform .22s cubic-bezier(.4, .2, .2, 1), box-shadow .22s cubic-bezier(.4, .2, .2, 1);
}
.jdc-shop-grid li.wc-block-product:hover,
.jdc-shop-grid li.wc-block-product:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(46, 59, 38, .16);
}
.jdc-shop-card-visual {
  background: color-mix(in srgb, var(--jdc-variety, var(--jdc-group, #8FA277)) 18%, #FFFDF4);
  margin: 0 0 0;
  position: relative;
}
.jdc-shop-card-visual::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--jdc-variety, var(--jdc-group, #8FA277));
  border: 1.5px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .35);
}
.jdc-shop-card-visual img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  padding: 10%;
  box-sizing: border-box;
}

/* Badge ★ Exotique — bloc post-terms(product_tag), masqué si aucune étiquette */
.jdc-shop-card-badge-exo {
  position: absolute;
  top: 9px;
  right: 9px;
  z-index: 3;
  margin: 0;
}
.jdc-shop-card-badge-exo:empty {
  display: none;
}
.jdc-shop-card-badge-exo a {
  font-size: 0;
}
.jdc-shop-card-badge-exo a::before {
  content: "★ Exo.";
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .58rem;
  letter-spacing: .03em;
  color: #8a5a17;
  background: rgba(255, 253, 246, .9);
  padding: 3px 6px;
  border-radius: 20px;
  text-decoration: none;
}

/* Overlay au survol — nom du groupe + "Récolte de la semaine", même logique que les flip cards de l'accueil */
.jdc-shop-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  aspect-ratio: 1 / 1;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 0 16px;
  background: color-mix(in srgb, var(--jdc-group-pastel, #E3EACF) 96%, transparent);
  opacity: 0;
  transition: opacity .3s cubic-bezier(.4, .2, .2, 1);
  pointer-events: none;
}
.jdc-shop-grid li.wc-block-product:hover .jdc-shop-card-overlay,
.jdc-shop-grid li.wc-block-product:focus-within .jdc-shop-card-overlay {
  opacity: 1;
}
.jdc-shop-card-overlay-group {
  margin: 0;
}
.jdc-shop-card-overlay-group a {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .82rem;
  color: #3a4530;
  text-decoration: none;
}
.jdc-shop-card-overlay-tag {
  margin: 0;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .58rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #5a6a45;
}

.jdc-group-chip.jdc-chip-exotique {
  border: 1.5px dashed #c9a13d;
  color: #8a6a1e;
  background: none;
}
.jdc-group-chip.jdc-chip-exotique a {
  color: #8a6a1e;
}
.jdc-shop-card-name {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  font-size: .92rem;
  line-height: 1.25;
  margin: 0;
  padding: 12px 14px 0;
  border-top: 4px solid var(--jdc-group, #8FA277);
}
.jdc-shop-card-name a {
  color: #2E3B26;
  text-decoration: none;
}
.jdc-shop-card-name a:hover {
  color: #7FA05F;
}
.jdc-shop-card-price {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .78rem;
  color: #2E3B26;
  padding: 5px 14px 0;
}
/* Les actions des cartes catalogue sont exclusivement définies dans
   assets/css/woocommerce-jdc.css, chargé après WooCommerce. */

.jdc-shop-pagination {
  margin-top: var(--wp--preset--spacing--40, 48px);
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
}
.jdc-shop-pagination a,
.jdc-shop-pagination .page-numbers {
  color: #2E3B26;
}

.jdc-shop-noresults {
  padding: var(--wp--preset--spacing--40, 48px) 0;
  text-align: center;
}
.jdc-shop-noresults-title {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 1.15rem;
  color: #2E3B26;
}
.jdc-shop-noresults-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .8rem;
  color: #7C7563;
}

.jdc-price-unit {
  font-weight: 400;
  font-size: .68rem;
  color: #9aa389;
}

/* Produit sans aquarelle : masquer le placeholder gris WooCommerce,
   le fond pastel du groupe fait office de slot en attente (comme au mockup). */
.jdc-shop-grid .jdc-shop-card-visual img[src*="woocommerce-placeholder"] {
  opacity: 0;
}

/* ==========================================================================
   Widget Actu du jardin (accueil) — jusqu'à 3 actus récentes, en onglets
   ========================================================================== */

.jdc-actu-widget-wrap {
  display: flex;
  justify-content: flex-end;
  width: 100%;
}
.jdc-actu-widget {
  width: 100%;
  max-width: 340px;
  background: #FBF6EA;
  border: 1px solid rgba(46, 59, 38, .16);
  border-radius: 10px;
  box-shadow: 0 8px 26px rgba(46, 59, 38, .16);
  overflow: hidden;
}
.jdc-actu-widget-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 15px 10px;
}
.jdc-actu-widget-eyebrow {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #7FA05F;
}
.jdc-actu-widget-live {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #C4643A;
}
.jdc-actu-widget-empty {
  padding: 18px 15px 22px;
}
.jdc-actu-widget-empty p {
  margin: 0;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .88rem;
  color: #6b7360;
}

.jdc-actu-widget-tabs {
  display: flex;
  border-bottom: 1px solid rgba(46, 59, 38, .1);
  padding: 0 6px;
}
.jdc-actu-widget-tab {
  flex: 1;
  text-align: center;
  padding: 9px 4px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #a7ad97;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
}
.jdc-actu-widget-tab.is-active {
  color: #2E3B26;
  border-bottom-color: #7FA05F;
}
.jdc-actu-widget-tab.is-date {
  text-transform: none;
}

.jdc-actu-widget-panel {
  display: none;
}
.jdc-actu-widget-panel.is-active {
  display: block;
}

.jdc-actu-widget-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.jdc-actu-widget-photo,
.jdc-actu-widget-photo-empty {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.jdc-actu-widget-photo-empty {
  background: linear-gradient(135deg, #E3EACF, #F3EFE3);
}
.jdc-actu-widget-badge {
  position: absolute;
  top: 12px;
  left: 14px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(250, 246, 236, .95);
  background: rgba(46, 59, 38, .42);
  padding: 5px 8px;
  border-radius: 3px;
}
.jdc-actu-widget-date {
  position: absolute;
  bottom: 12px;
  left: 14px;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .78rem;
  color: #FAF6EC;
  text-shadow: 0 1px 3px rgba(46, 59, 38, .55);
}
.jdc-actu-widget-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: #CBD9AE;
  padding: 12px 15px;
}
.jdc-actu-widget-title {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  font-size: .88rem;
  color: #2E3B26;
}
.jdc-actu-widget-link {
  flex: none;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .02em;
  color: #3F5233;
  white-space: nowrap;
  appearance: none;
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
}
.jdc-actu-widget-detail {
  display: grid;
  grid-template-rows: 0fr;
  background: #E3EACF;
  transition: grid-template-rows .28s cubic-bezier(.4, .2, .2, 1);
}
.jdc-actu-widget-detail.is-open {
  grid-template-rows: 1fr;
}
.jdc-actu-widget-detail-inner {
  min-height: 0;
  overflow: hidden;
  padding: 0 15px;
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem;
  line-height: 1.55;
  color: #3F5233;
  transition: padding .28s cubic-bezier(.4, .2, .2, 1);
}
.jdc-actu-widget-detail.is-open .jdc-actu-widget-detail-inner {
  padding-top: 13px;
  padding-bottom: 15px;
}
.jdc-actu-widget-detail-inner p {
  margin: 0;
}

/* ==========================================================================
   Fiche produit individuelle
   ========================================================================== */

body.single-product.product_cat-racines-tubercules { --jdc-group: #eea03a; --jdc-group-pastel: #e7cbab; }
body.single-product.product_cat-bulbes-poireaux { --jdc-group: #9f71d3; --jdc-group-pastel: #d1c0e4; }
body.single-product.product_cat-salades-feuilles { --jdc-group: #b7e532; --jdc-group-pastel: #dbe9b4; }
body.single-product.product_cat-choux-brocolis { --jdc-group: #84b738; --jdc-group-pastel: #d6e8af; }
body.single-product.product_cat-legumes-fruits-fleurs { --jdc-group: #e9b323; --jdc-group-pastel: #eadeb5; }
body.single-product.product_cat-aromatiques { --jdc-group: #70c956; --jdc-group-pastel: #cbe4c3; }
body.single-product.product_cat-fruits { --jdc-group: #d83d31; --jdc-group-pastel: #eac0b5; }

.jdc-product-gallery {
  background: var(--jdc-group-pastel, #E3EACF);
  border: 1px solid color-mix(in srgb, var(--jdc-group, #8FA277) 35%, transparent);
  border-radius: 10px;
  overflow: hidden;
}
.jdc-product-gallery img {
  object-fit: contain;
  padding: 8%;
  box-sizing: border-box;
  mix-blend-mode: multiply;
}

.jdc-product-group {
  display: inline-block;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--jdc-group, #8FA277) 65%, #2E3B26);
  background: var(--jdc-group-pastel, #E3EACF);
  padding: 5px 12px;
  border-radius: 20px;
  margin-bottom: 12px;
}
.jdc-product-group a { color: inherit; text-decoration: none; }

.jdc-product-title {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  font-size: 2.1rem;
  line-height: 1.15;
  color: #2E3B26;
  margin: 0 0 10px;
  border-top: 4px solid var(--jdc-group, #8FA277);
  padding-top: 14px;
}
.jdc-product-price {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
  color: #2E3B26;
  margin-bottom: 14px;
}
.jdc-product-summary p {
  font-family: 'DM Sans', sans-serif;
  font-size: .92rem;
  line-height: 1.7;
  color: #4A5D3A;
  margin-bottom: 22px;
}
.jdc-product-add-form .quantity input {
  font-family: 'DM Sans', sans-serif;
  border: 1.5px solid rgba(46, 59, 38, .2);
  border-radius: 6px;
  padding: 12px;
}
.jdc-product-add-form button.single_add_to_cart_button {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: .85rem;
  letter-spacing: .02em;
  color: #5C6B45;
  background: #B7C08D;
  border: none;
  border-radius: 6px;
  padding: 14px 26px;
  transition: background .2s cubic-bezier(.4, .2, .2, 1);
}
.jdc-product-add-form button.single_add_to_cart_button:hover {
  background: #A2AD74;
  color: #4A5D3A;
}
.jdc-product-note {
  font-family: 'DM Sans', sans-serif;
  font-size: .76rem;
  color: #9aa389;
  margin-top: 16px;
}
.jdc-product-back a {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .8rem;
  color: #2E3B26;
}

/* ==========================================================================
   Filtre boutique par couleur (bloc natif WooCommerce)
   ========================================================================== */

.jdc-color-filter .wp-block-heading,
.jdc-color-filter legend {
  display: none; /* le libellé "Couleur" natif est remplacé par notre eyebrow au-dessus */
}
.jdc-color-filter .wc-block-product-filter-checkbox-list__items {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 0;
  padding: 0;
}
.jdc-color-filter .wc-block-product-filter-checkbox-list__item {
  margin: 0;
}
.jdc-color-filter .wc-block-product-filter-checkbox-list__item label,
.jdc-color-filter .wc-block-product-filter-checkbox-list__item-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .02em;
  color: #5a6350;
  background: #FBF6EA;
  border: 1.5px solid rgba(46, 59, 38, .14);
  padding: 7px 14px 7px 7px;
  border-radius: 20px;
  cursor: pointer;
  transition: all .18s cubic-bezier(.4, .2, .2, 1);
}
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:hover label {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(46, 59, 38, .14);
}
.jdc-color-filter input[type="checkbox"] {
  accent-color: #2E3B26;
  width: 14px;
  height: 14px;
}
.jdc-color-filter .wc-block-product-filter-checkbox-list__item-count {
  color: #9aa389;
  font-weight: 400;
}

/* Filtres boutique par groupe / exotique (bloc natif "product-filter-chips") */

.jdc-group-filter .wp-block-heading,
.jdc-group-filter legend,
.jdc-exotique-filter .wp-block-heading,
.jdc-exotique-filter legend {
  display: none;
}
.jdc-group-filter .wc-block-product-filter-chips__items,
.jdc-exotique-filter .wc-block-product-filter-chips__items {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.jdc-group-filter .wc-block-product-filter-chips__item,
.jdc-exotique-filter .wc-block-product-filter-chips__item {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .02em;
  color: #5a6350;
  background: #FBF6EA;
  border: 1.5px solid rgba(46, 59, 38, .14);
  padding: 7px 14px;
  border-radius: 20px;
  cursor: pointer;
  transition: all .18s cubic-bezier(.4, .2, .2, 1);
}
.jdc-group-filter .wc-block-product-filter-chips__item {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 16px 7px 7px;
}
.jdc-group-filter .wc-block-product-filter-chips__item::before {
  content: "";
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  border: 2px solid rgba(46, 59, 38, .3);
  background: #fff center/contain no-repeat;
}
.jdc-group-filter .wc-block-product-filter-chips__item.is-selected::before,
.jdc-group-filter .wc-block-product-filter-chips__item[aria-checked="true"]::before {
  border-color: #FBF6EA;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="racines-tubercules"]::before {
  background-image: url("/wp-content/themes/jardins-de-courances/assets/images/watercolors/carottes.png");
  border-color: #eea03a;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="bulbes-poireaux"]::before {
  background-image: url("/wp-content/themes/jardins-de-courances/assets/images/watercolors/poireaux.png");
  border-color: #9f71d3;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="salades-feuilles"]::before {
  background-image: url("/wp-content/themes/jardins-de-courances/assets/images/watercolors/laitue.png");
  border-color: #b7e532;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="choux-brocolis"]::before {
  background-image: url("/wp-content/themes/jardins-de-courances/assets/images/watercolors/chou-frise.png");
  border-color: #84b738;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="legumes-fruits-fleurs"]::before {
  background-image: url("/wp-content/themes/jardins-de-courances/assets/images/watercolors/tomate.png");
  border-color: #e9b323;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="aromatiques"]::before {
  background-image: url("/wp-content/themes/jardins-de-courances/assets/images/watercolors/basilic.png");
  border-color: #70c956;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="fruits"]::before {
  background-image: url("/wp-content/themes/jardins-de-courances/assets/images/watercolors/fraise.png");
  border-color: #d83d31;
}
.jdc-group-filter .wc-block-product-filter-chips__item:hover,
.jdc-exotique-filter .wc-block-product-filter-chips__item:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(46, 59, 38, .14);
}
.jdc-group-filter .wc-block-product-filter-chips__item.is-selected,
.jdc-group-filter .wc-block-product-filter-chips__item[aria-checked="true"],
.jdc-exotique-filter .wc-block-product-filter-chips__item.is-selected,
.jdc-exotique-filter .wc-block-product-filter-chips__item[aria-checked="true"] {
  background: color-mix(in srgb, var(--jdc-filter-code, #7FA05F) 22%, #FBF6EA);
  border-color: var(--jdc-filter-code, #7FA05F);
  color: #2E3B26;
}
.jdc-group-filter .wc-block-product-filter-chips__item-truncated-count,
.jdc-exotique-filter .wc-block-product-filter-chips__item-truncated-count {
  color: inherit;
  opacity: .65;
  font-weight: 400;
}
.jdc-exotique-filter .wc-block-product-filter-chips__item {
  border-style: dashed;
  border-color: #C97C4B;
}
.jdc-exotique-filter .wc-block-product-filter-chips__item.is-selected,
.jdc-exotique-filter .wc-block-product-filter-chips__item[aria-checked="true"] {
  background: #C97C4B;
  border-color: #C97C4B;
}

/* Pilules de tri par prix — raccourci visuel vers le tri natif WooCommerce */
.jdc-sort-pills {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.jdc-sort-pills-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .53rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #AFA88E;
}
.jdc-sort-pill {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .59rem;
  padding: 6px 12px;
  border-radius: 14px;
  cursor: pointer;
  border: 1px solid rgba(46, 59, 38, .2);
  background: #FBF6EA;
  color: #2E3B26;
}
.jdc-sort-pill.is-active {
  background: #8FA277;
}
/* ==========================================================================
   Système visuel « Site vitrine » — juillet 2026
   Couche partagée : angles presque droits, filets légers, surfaces mates.
   ========================================================================== */
:root {
  --jdc-radius-control: 2px;
  --jdc-radius-card: 2px;
  --jdc-line: rgba(46, 59, 38, .18);
  --jdc-line-soft: rgba(46, 59, 38, .12);
  --jdc-shadow-card: 0 1px 4px rgba(46, 59, 38, .08);
  --jdc-shadow-paper: 0 3px 12px rgba(46, 59, 38, .12);
}

body {
  background: #FAF6EC;
  color: #2E3B26;
}

/* Contrôles et appels à l'action */
.wp-element-button,
.wp-block-button__link,
button,
select,
textarea,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  border-radius: var(--jdc-radius-control) !important;
}
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  border: 1px solid transparent;
  background: #B4C28D;
  color: #2E3B26;
  box-shadow: none;
  font-weight: 700;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  border-color: #A2AD74;
  background: #A2AD74;
  color: #4A5D3A;
  box-shadow: none;
  transform: none;
}
.jdc-btn-outline .wp-block-button__link {
  border-width: 1px;
  background: transparent !important;
}
.jdc-btn-gold .wp-block-button__link {
  border-color: #E8B54B;
}

/* Entête et navigation */
.jdc-site-header-main {
  min-height: 70px;
}
.jdc-site-header,
.jdc-header {
  box-shadow: none;
}
.jdc-site-cart,
.jdc-basket-glyph {
  background: #B4C28D;
  color: #2E3B26;
}
.jdc-site-cart b {
  border-radius: 50%;
}
.jdc-breadcrumbs {
  min-height: 44px;
}
.jdc-site-menu-toggle,
.jdc-site-header-right {
  border-radius: var(--jdc-radius-card);
}

/* Aquarelles, héros et cadres éditoriaux */
.jdc-watercolor,
.jdc-watercolor.has-frame,
.jdc-image-frame,
.jdc-info-card,
.jdc-location-card,
.jdc-location-card-visual,
.jdc-product-gallery,
.jdc-product-summary,
.jdc-account-card {
  border-radius: var(--jdc-radius-card) !important;
}
.jdc-watercolor.has-frame,
.jdc-image-frame,
.jdc-info-card,
.jdc-location-card {
  border: 1px solid var(--jdc-line-soft);
  box-shadow: var(--jdc-shadow-card);
}
.jdc-page-hero,
.jdc-shop-page-hero {
  border-radius: 0 !important;
}
.jdc-image-frame {
  box-shadow: none;
}

/* Newsletter sous le héros */
.jdc-newsletter {
  border-radius: var(--jdc-radius-card);
  background: #B4C28D;
  color: #2E3B26;
}
.jdc-newsletter-kicker {
  color: #5F7449;
}
.jdc-newsletter-toggle,
.jdc-newsletter-form > button {
  border: 1px solid #E8B54B;
  border-radius: var(--jdc-radius-control);
  background: #E8B54B;
}
.jdc-newsletter.is-open .jdc-newsletter-toggle {
  border-color: #2E3B26;
  outline: 0;
  background: transparent;
  color: #2E3B26;
}
.jdc-newsletter-panel {
  border: 1px solid var(--jdc-line-soft);
  border-radius: var(--jdc-radius-card);
  background: #FAF6EC;
}
.jdc-newsletter-form input[type="email"] {
  border-width: 1px;
  border-radius: var(--jdc-radius-control);
}
.jdc-newsletter-form > button {
  border-color: #B7C08D;
  background: #B7C08D;
  color: #5C6B45;
}
.jdc-newsletter-bar.is-subscriber,
.jdc-newsletter-bar.is-member {
  border-radius: var(--jdc-radius-card);
}

/* Produits de l'accueil et catalogue */
.jdc-flipcard,
.jdc-shop-grid li.wc-block-product {
  border-radius: var(--jdc-radius-card);
  box-shadow: var(--jdc-shadow-card);
}
.jdc-flipcard {
  border-style: solid;
}
.jdc-flipcard-badge,
.jdc-group-chip,
.jdc-status-pill {
  border-radius: 999px;
}
.jdc-flipcard-add {
  border: 1px solid #B4C28D;
  border-radius: var(--jdc-radius-control);
  background: #B4C28D;
  color: #2E3B26;
  box-shadow: none;
}
.jdc-flipcard-add:hover {
  border-color: #A2AD74;
  background: #A2AD74;
  color: #4A5D3A;
}
.jdc-shop-grid li.wc-block-product:hover,
.jdc-shop-grid li.wc-block-product:focus-within {
  box-shadow: 0 2px 8px rgba(46, 59, 38, .12);
  transform: none;
}

/* Paniers papier : le ruban reste tactile, le reste devient plus net. */
.jdc-postit {
  border-radius: var(--jdc-radius-card);
  box-shadow: var(--jdc-shadow-paper);
}
.jdc-postit-row,
.jdc-postit-row-thumb,
.jdc-postit-price,
.jdc-postit-cta {
  border-radius: var(--jdc-radius-control);
}

/* Cartes d'information, lieux et contenus éditoriaux */
.jdc-info-card {
  box-shadow: none;
}
.jdc-location-card-visual {
  border-bottom: 1px dashed rgba(46, 59, 38, .28);
}
.jdc-kosmos-card,
.jdc-editorial-card,
.jdc-pascal-card {
  border-radius: var(--jdc-radius-card) !important;
}

/* Formulaires et états WooCommerce */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce select,
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input {
  border: 1px solid var(--jdc-line);
  border-radius: var(--jdc-radius-control) !important;
  background: #FFFDF7;
  box-shadow: none;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
  border-radius: var(--jdc-radius-card) !important;
  box-shadow: none;
}

/* Ruban d'inscription du pied de page */
.jdc-ribbon {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 18px 24px;
  border-radius: var(--jdc-radius-card);
  background: #34472B;
}
.jdc-footer-ribbon-copy {
  flex: 1 1 460px;
  margin: 0;
  color: #FAF6EC !important;
  font-size: .78rem;
}
.jdc-footer-ribbon-form {
  display: grid;
  grid-template-columns: minmax(180px, 240px) auto;
  gap: 10px;
}
.jdc-footer-ribbon-form input {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid rgba(250, 246, 236, .2);
  background: #2E3B26;
  color: #FAF6EC;
}
.jdc-footer-ribbon-form button {
  min-height: 40px;
  padding: 0 20px;
  border: 1px solid #E8B54B;
  background: #E8B54B;
  color: #2E3B26;
  font: 700 .72rem 'DM Sans', sans-serif;
}
.jdc-footer-account-link {
  color: #FAF6EC !important;
  font-size: .75rem;
  font-weight: 700;
}

@media (max-width: 700px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }
  .jdc-site-header-main {
    width: 100%;
    gap: 12px;
    padding: 18px 16px;
  }
  .jdc-site-wordmark {
    max-width: calc(100% - 82px);
    font-size: 1rem;
  }
  .jdc-site-menu-toggle {
    flex: none;
  }
  .jdc-watercolor > .wp-block-columns,
  .jdc-watercolor > .wp-block-columns > .wp-block-column {
    width: 100%;
    min-width: 0;
  }
  .jdc-watercolor > .wp-block-columns {
    display: flex;
    flex-direction: column;
  }
  .jdc-watercolor > .wp-block-columns > .wp-block-column {
    flex-basis: 100% !important;
  }
  .jdc-watercolor h1 {
    max-width: 100%;
    font-size: clamp(2rem, 9.5vw, 2.55rem) !important;
    overflow-wrap: anywhere;
  }
  .wp-block-jdc-actu-widget,
  .jdc-actu-widget,
  .jdc-newsletter,
  .jdc-newsletter-panel {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .jdc-actu-widget {
    overflow: hidden;
  }
  .jdc-newsletter-bar {
    align-items: center;
    gap: 14px;
  }
  .jdc-newsletter-bar > div {
    min-width: 0;
  }
  .jdc-newsletter-bar strong {
    overflow-wrap: anywhere;
  }
  .jdc-newsletter-toggle {
    flex: none;
    padding-right: 16px;
    padding-left: 16px;
  }
  .jdc-ribbon {
    align-items: stretch;
    flex-direction: column;
  }
  .jdc-footer-ribbon-form {
    grid-template-columns: 1fr;
  }
}

/* Boutique — ajustements de la maquette du 29 juillet, 17 h 50. */
.jdc-shop-basket-title {
  max-width: 640px;
  font-size: 2.125rem;
  line-height: 1.15;
}
.jdc-shop-panier-lead {
  max-width: 640px;
  font-size: .875rem;
}
.jdc-shop-basket-layout {
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 32px;
}
.jdc-shop-basket-cards {
  gap: 34px !important;
}
.jdc-shop-basket-cards .jdc-postit {
  padding: 22px 22px 24px;
}
.jdc-shop-basket-cards .jdc-postit-title {
  font-size: 1.3125rem;
}
.jdc-shop-basket-cards .jdc-postit-price {
  padding: 7px 12px;
  border-radius: 5px;
}
.jdc-shop-garden-visual {
  min-height: 180px;
  height: 180px;
  padding: 20px;
  border: 0;
  border-radius: 10px;
  background: #F3EFE3;
  box-shadow: 0 4px 14px rgba(46, 59, 38, .14);
}
.jdc-shop-cart-summary {
  position: sticky;
  top: 20px;
  padding: 20px;
  border: 0;
  border-radius: 10px;
  background: #E3EACF;
  box-shadow: 0 8px 26px rgba(46, 59, 38, .16);
}
.jdc-shop-selected-basket {
  border-radius: 8px;
}
.jdc-shop-cart-item {
  position: relative;
  display: flex;
  align-items: stretch;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 8px;
}
.jdc-shop-cart-item-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-right: 26px;
}
.jdc-shop-cart-item-head > img {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 6px;
  object-fit: contain;
}
.jdc-shop-cart-item-copy strong {
  font-size: .875rem;
  line-height: 1.3;
}
.jdc-shop-cart-item-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.jdc-shop-cart-item-foot > small {
  color: #7C7563;
  font-size: .7rem;
  font-weight: 600;
}
.jdc-shop-cart-quantity {
  display: flex;
  align-items: center;
  gap: 8px;
}
.jdc-shop-cart-quantity b {
  min-width: 44px;
  white-space: nowrap;
  font-size: .75rem;
  text-align: center;
}
.jdc-shop-cart-item .jdc-shop-remove-item {
  position: absolute;
  top: 10px;
  right: 10px;
}
.jdc-shop-cart-item button {
  width: 26px;
  height: 26px;
  border-width: 1.5px;
  border-radius: 5px !important;
}
.jdc-shop-cart-checkout {
  border: 0;
  border-radius: 6px;
}

@media (max-width: 980px) {
  .jdc-shop-basket-layout {
    grid-template-columns: 1fr;
  }
  .jdc-shop-cart-summary {
    position: static;
  }
}

/* Boutique — grille des groupes selon GroupFilterButton.dc.html.
   Le conteneur interne WooCommerce doit participer à la grille ; s'il reste
   en flex, le premier bouton est étiré à la hauteur des sept autres. */
.jdc-group-filter {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  gap: 10px;
}
.jdc-group-filter > .wp-block-group {
  grid-column: 1 / -1;
}
.jdc-group-filter .wc-block-product-filter-chips,
.jdc-group-filter .wc-block-product-filter-chips__items {
  display: contents;
}
.jdc-shop-all-groups,
.jdc-group-filter .wc-block-product-filter-chips__item {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  height: 42px;
  margin: 0;
  padding: 8px 12px;
  border-width: 1.5px;
  border-radius: var(--jdc-radius-xl) !important;
  box-sizing: border-box;
  overflow: hidden;
}
.jdc-group-filter .wc-block-product-filter-chips__item {
  display: flex;
  flex-wrap: nowrap;
}
.jdc-group-filter .wc-block-product-filter-chips__item::before {
  width: 24px;
  height: 24px;
}
.jdc-group-filter .wc-block-product-filter-chips__item > span,
.jdc-shop-all-groups {
  white-space: nowrap;
  text-overflow: ellipsis;
}

@media (max-width: 980px) {
  .jdc-group-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .jdc-group-filter {
    grid-template-columns: 1fr;
  }
}

/* Boutique — rail panier persistant.
   Le catalogue reste dans la colonne principale et ne passe jamais sous le
   panier. Le wrapper dynamique du bloc paniers devient transparent à la
   grille afin que l'aside puisse couvrir toute la hauteur de la page. */
.jdc-shop-page-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  grid-auto-flow: row;
  column-gap: 32px;
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-right: auto !important;
  margin-left: auto !important;
}
.jdc-shop-page-grid > .jdc-shop-panier-intro,
.jdc-shop-page-grid > .jdc-shop-catalogue-heading,
.jdc-shop-page-grid > .jdc-shop-filters,
.jdc-shop-page-grid > .jdc-sort-pills,
.jdc-shop-page-grid > .wp-block-woocommerce-store-notices,
.jdc-shop-page-grid > .jdc-shop-toolbar,
.jdc-shop-page-grid > .jdc-shop-grid {
  grid-column: 1;
  width: 100%;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}
.jdc-shop-page-grid > .wp-block-jdc-paniers-semaine,
.jdc-shop-page-grid > .jdc-shop-basket-layout {
  display: contents;
}
.jdc-shop-page-grid .jdc-shop-basket-cards {
  grid-column: 1;
  width: 100%;
  margin-top: 34px !important;
}
.jdc-shop-page-grid .jdc-shop-basket-aside {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  grid-column: 2;
  grid-row: 2 / span 20;
  align-self: stretch;
  margin-top: 34px;
}
.jdc-shop-page-grid .jdc-shop-cart-summary {
  position: sticky;
  top: 20px;
}

@media (max-width: 980px) {
  .jdc-shop-page-grid {
    display: block;
    width: calc(100% - 48px);
  }
  .jdc-shop-page-grid .jdc-shop-basket-aside {
    position: static;
    display: grid;
    margin-top: 20px;
  }
  .jdc-shop-page-grid .jdc-shop-cart-summary {
    position: static;
  }
  .jdc-shop-page-grid > .jdc-shop-panier-intro,
  .jdc-shop-page-grid > .jdc-shop-catalogue-heading,
  .jdc-shop-page-grid > .jdc-shop-filters,
  .jdc-shop-page-grid > .jdc-sort-pills,
  .jdc-shop-page-grid > .jdc-shop-toolbar,
  .jdc-shop-page-grid > .jdc-shop-grid {
    width: 100%;
  }
}

/* Mon panier — carte crème, médaillon en relief et filets végétaux. */
.jdc-shop-cart-summary {
  position: relative;
  margin-top: 28px;
  padding: 38px 20px 20px;
  overflow: visible;
  border: 1.5px solid #A9C185;
  border-radius: var(--jdc-radius-xl);
  background:
    radial-gradient(circle at 8% 4%, rgba(169, 193, 133, .14), transparent 24%),
    radial-gradient(circle at 94% 96%, rgba(232, 181, 75, .09), transparent 28%),
    #FFFDF4;
  box-shadow:
    0 16px 34px rgba(46, 59, 38, .14),
    0 3px 8px rgba(46, 59, 38, .08);
}
.jdc-shop-cart-summary::before {
  content: "";
  position: absolute;
  top: 17px;
  right: 18px;
  left: 18px;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      rgba(143, 162, 119, .12),
      rgba(143, 162, 119, .58) 31%,
      transparent 31%,
      transparent 69%,
      rgba(143, 162, 119, .58) 69%,
      rgba(143, 162, 119, .12)
    );
}
.jdc-shop-cart-summary::after {
  content: "";
  position: absolute;
  inset: 5px;
  z-index: 0;
  pointer-events: none;
  border: 1px solid rgba(169, 193, 133, .22);
  border-radius: 2px;
}
.jdc-shop-cart-summary > * {
  position: relative;
  z-index: 1;
}
.jdc-shop-cart-icon {
  position: absolute;
  top: -28px;
  left: 50%;
  z-index: 2;
  width: 56px;
  height: 56px;
  margin: 0;
  transform: translateX(-50%);
  border: 1px solid #8FA277;
  background:
    radial-gradient(circle at 34% 28%, #DDE7BD 0 20%, transparent 21%),
    linear-gradient(145deg, #B9C98E, #8FA277);
  box-shadow:
    0 0 0 5px #FFFDF4,
    0 0 0 6px #A9C185,
    0 9px 20px rgba(46, 59, 38, .24);
  font-size: 1.35rem;
}
.jdc-shop-cart-icon svg {
  width: 27px;
  height: 27px;
  overflow: visible;
  fill: rgba(255, 253, 244, .28);
  stroke: #2E3B26;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jdc-shop-cart-kicker {
  margin-bottom: 20px;
  color: #657E4C;
  letter-spacing: .18em;
}
.jdc-shop-basket-placeholder {
  position: relative;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  min-height: 104px;
  margin-bottom: 14px;
  padding: 16px 14px;
  border: 1.5px dashed rgba(127, 160, 95, .48);
  border-radius: var(--jdc-radius-lg);
  background:
    repeating-linear-gradient(
      -45deg,
      rgba(227, 234, 207, .22) 0,
      rgba(227, 234, 207, .22) 5px,
      rgba(255, 253, 244, .28) 5px,
      rgba(255, 253, 244, .28) 10px
    );
  color: #88947A;
  text-align: center;
}
.jdc-shop-basket-placeholder::before,
.jdc-shop-basket-placeholder::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  opacity: .42;
}
.jdc-shop-basket-placeholder::before {
  top: 7px;
  left: 7px;
  border-top: 1px solid #8FA277;
  border-left: 1px solid #8FA277;
}
.jdc-shop-basket-placeholder::after {
  right: 7px;
  bottom: 7px;
  border-right: 1px solid #8FA277;
  border-bottom: 1px solid #8FA277;
}
.jdc-shop-basket-placeholder-formats {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 7px;
  color: rgba(92, 107, 69, .48);
}
.jdc-shop-basket-placeholder-formats i {
  display: grid;
  place-items: center;
  width: 30px;
  height: 25px;
  border: 1px solid rgba(127, 160, 95, .34);
  border-radius: 2px;
  background: rgba(255, 253, 244, .72);
  box-shadow: 0 2px 5px rgba(46, 59, 38, .06);
  font: normal 700 .58rem/1 var(--jdc-font-body);
  letter-spacing: .06em;
}
.jdc-shop-basket-placeholder-formats i:nth-child(2) {
  height: 29px;
  border-color: rgba(232, 181, 75, .4);
}
.jdc-shop-basket-placeholder-formats i:nth-child(3) {
  height: 33px;
  border-color: rgba(196, 69, 47, .3);
}
.jdc-shop-basket-placeholder p {
  margin: 0;
  color: #758168;
  font: 500 .72rem/1.35 var(--jdc-font-body);
}
.jdc-shop-page-grid .jdc-shop-cart-summary {
  top: 48px;
}

@media (max-width: 980px) {
  .jdc-shop-page-grid .jdc-shop-cart-summary {
    top: auto;
  }
}

/* État sélectionné des paniers S / M / XL — bouton en relief. */
.jdc-postit-cta.is-selected {
  --jdc-selected-bg: #A9C185;
  --jdc-selected-ink: #2E3B26;
  position: relative;
  min-height: 44px;
  border: 1.5px solid var(--jdc-selected-accent, #E8B54B);
  border-radius: var(--jdc-radius-md);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .09), transparent 46%),
    var(--jdc-selected-bg);
  color: var(--jdc-selected-ink);
  box-shadow:
    0 8px 16px rgba(46, 59, 38, .2),
    0 2px 4px rgba(46, 59, 38, .14),
    inset 0 1px 0 rgba(255, 255, 255, .15),
    inset 0 0 0 1px rgba(255, 253, 244, .05);
  letter-spacing: .035em;
  text-shadow: none;
  transform: translateY(-1px);
  transition:
    transform var(--jdc-duration-fast) var(--jdc-ease),
    box-shadow var(--jdc-duration-fast) var(--jdc-ease),
    background var(--jdc-duration-fast) var(--jdc-ease);
}
.jdc-postit-cta.tone-sage.is-selected {
  --jdc-selected-accent: #A9C185;
  --jdc-selected-bg: #A9C185;
}
.jdc-postit-cta.tone-honey.is-selected {
  --jdc-selected-accent: #E8B54B;
  --jdc-selected-bg: #E8B54B;
}
.jdc-postit-cta.tone-terracotta.is-selected {
  --jdc-selected-accent: #D96A50;
  --jdc-selected-bg: #C4452F;
  --jdc-selected-ink: #FFFDF4;
}
.jdc-postit-cta.is-selected::after {
  content: "";
  position: absolute;
  right: 12px;
  bottom: 7px;
  left: 12px;
  height: 1px;
  opacity: .5;
  background: linear-gradient(90deg, transparent, var(--jdc-selected-accent), transparent);
}
.jdc-postit-cta.is-selected:hover {
  border-color: var(--jdc-selected-accent);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 50%),
    color-mix(in srgb, var(--jdc-selected-bg) 86%, #FFFDF4);
  color: var(--jdc-selected-ink);
  box-shadow:
    0 11px 22px rgba(46, 59, 38, .24),
    0 3px 6px rgba(46, 59, 38, .16),
    inset 0 1px 0 rgba(255, 255, 255, .18);
  transform: translateY(-2px);
}
.jdc-postit-cta.is-selected:active {
  box-shadow:
    0 3px 7px rgba(46, 59, 38, .18),
    inset 0 2px 5px rgba(0, 0, 0, .2);
  transform: translateY(0);
}

/* Confirmation visuelle avant le passage Accueil → Boutique. */
.jdc-postit.is-confirming-selection {
  z-index: 5;
  animation: jdc-basket-card-confirm 760ms var(--jdc-ease) both;
}
.jdc-basket-fly-button {
  position: fixed;
  z-index: 10000;
  display: flex;
  align-items: center;
  place-items: center;
  justify-content: center;
  padding: 0 12px;
  overflow: hidden;
  box-sizing: border-box;
  will-change: transform, opacity;
  pointer-events: none;
  border: 1.5px solid #E8B54B;
  border-radius: var(--jdc-radius-md);
  background: #B7C08D;
  color: #5C6B45;
  box-shadow:
    0 10px 24px rgba(46, 59, 38, .28),
    0 0 0 3px rgba(255, 253, 244, .7);
  font: 700 .7rem/1 var(--jdc-font-body);
  letter-spacing: .04em;
  white-space: nowrap;
}
.jdc-basket-fly-button::after {
  content: "";
  position: absolute;
  inset: -5px;
  pointer-events: none;
  background:
    radial-gradient(circle at 8% 34%, #E8B54B 0 2px, transparent 2.5px),
    radial-gradient(circle at 31% 8%, #FFFDF4 0 1.5px, transparent 2px),
    radial-gradient(circle at 62% 82%, #A9C185 0 2px, transparent 2.5px),
    radial-gradient(circle at 91% 24%, #FFFDF4 0 1.5px, transparent 2px);
  opacity: 0;
  animation: jdc-basket-flight-glitter 920ms var(--jdc-ease) both;
}
.jdc-shop-selected-basket.is-receiving-selection,
.jdc-shop-basket-placeholder.is-receiving-selection {
  animation: jdc-basket-slot-receive 360ms var(--jdc-ease) both;
}

@keyframes jdc-basket-card-confirm {
  0% {
    transform: translateY(0);
    filter: brightness(1);
  }
  42% {
    transform: translateY(-7px);
    filter: brightness(1.025);
    box-shadow: 0 18px 34px rgba(46, 59, 38, .23);
  }
  100% {
    transform: translateY(-3px);
    filter: brightness(1.01);
  }
}
@keyframes jdc-basket-flight-glitter {
  0% { opacity: 0; transform: translateX(-8px); }
  22% { opacity: .95; }
  72% { opacity: .72; }
  100% { opacity: 0; transform: translateX(12px); }
}
@keyframes jdc-basket-slot-receive {
  0%, 100% {
    filter: brightness(1);
  }
  45% {
    filter: brightness(1.1);
    box-shadow:
      0 0 0 3px rgba(232, 181, 75, .2),
      0 10px 22px rgba(46, 59, 38, .2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .jdc-postit.is-confirming-selection,
  .jdc-shop-selected-basket.is-receiving-selection,
  .jdc-shop-basket-placeholder.is-receiving-selection {
    animation: none;
  }
  .jdc-basket-fly-button {
    display: none;
  }
}

/* Arrivée dans le catalogue : vague typographique et scintillement 1 s. */
.jdc-shop-catalogue-title {
  position: relative;
  scroll-margin-top: 28px;
  width: fit-content;
}
.jdc-shop-catalogue-title.is-catalogue-arrival span {
  display: inline-block;
  animation: jdc-catalogue-title-wave 720ms var(--jdc-ease) both;
  animation-delay: calc(var(--jdc-letter, 0) * 55ms);
}
.jdc-shop-catalogue-title.is-catalogue-arrival span.is-space {
  width: .28em;
}
.jdc-shop-catalogue-title.is-catalogue-arrival::after {
  content: "";
  position: absolute;
  inset: -8px -22px;
  pointer-events: none;
  background:
    radial-gradient(circle at 8% 42%, #E8B54B 0 2px, transparent 2.5px),
    radial-gradient(circle at 36% 8%, #FFFDF4 0 1.5px, transparent 2px),
    radial-gradient(circle at 64% 78%, #A9C185 0 2px, transparent 2.5px),
    radial-gradient(circle at 92% 24%, #E8B54B 0 1.5px, transparent 2px);
  opacity: 0;
  animation: jdc-catalogue-glitter 1s var(--jdc-ease) both;
}
@keyframes jdc-catalogue-title-wave {
  0%, 100% { transform: translateY(0) rotate(0); }
  38% { transform: translateY(-8px) rotate(-1deg); color: #7FA05F; }
  68% { transform: translateY(2px) rotate(.5deg); color: #2E3B26; }
}
@keyframes jdc-catalogue-glitter {
  0% { opacity: 0; transform: translateX(-10px) scale(.94); }
  24% { opacity: .95; }
  72% { opacity: .7; }
  100% { opacity: 0; transform: translateX(16px) scale(1.04); }
}

/* Transition Accueil → Boutique, dans le registre aquarelle du design system. */
.jdc-page-transition {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: grid;
  place-items: center;
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(ellipse 34% 42% at 22% 32%, rgba(169, 193, 133, .46), transparent 68%),
    radial-gradient(ellipse 30% 38% at 78% 68%, rgba(232, 181, 75, .34), transparent 70%),
    radial-gradient(ellipse 24% 34% at 64% 22%, rgba(224, 123, 57, .18), transparent 70%),
    #FAF6EC;
  transition: opacity 460ms var(--jdc-ease);
}
.jdc-page-transition::before {
  content: "";
  position: absolute;
  inset: -30px;
  opacity: .52;
  background:
    radial-gradient(circle at 38% 62%, rgba(127, 160, 95, .26), transparent 28%),
    radial-gradient(circle at 72% 36%, rgba(196, 69, 47, .12), transparent 24%);
  filter: blur(18px);
  animation: jdc-transition-watercolor 2.4s ease-in-out infinite alternate;
}
.jdc-page-transition.is-visible {
  pointer-events: auto;
  opacity: 1;
}
.jdc-page-transition.is-leaving {
  opacity: 0;
}
.jdc-page-transition-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  flex-direction: column;
  width: min(390px, calc(100% - 48px));
  color: #2E3B26;
  text-align: center;
}
.jdc-page-transition-medallion {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin-bottom: 22px;
  border: 1px solid #8FA277;
  border-radius: 50%;
  background: rgba(255, 253, 244, .8);
  box-shadow:
    0 0 0 7px rgba(227, 234, 207, .78),
    0 10px 26px rgba(46, 59, 38, .16);
}
.jdc-page-transition-medallion svg {
  width: 28px;
  height: 28px;
  fill: rgba(169, 193, 133, .32);
  stroke: #2E3B26;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jdc-page-transition-inner strong {
  font: 500 clamp(1.7rem, 4vw, 2.25rem)/1.15 var(--jdc-font-display);
}
.jdc-page-transition-inner small {
  margin-top: 9px;
  color: #65735A;
  font: 600 .68rem/1.4 var(--jdc-font-body);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.jdc-page-transition-line {
  position: relative;
  width: 180px;
  height: 2px;
  margin-top: 28px;
  overflow: hidden;
  background: rgba(143, 162, 119, .22);
}
.jdc-page-transition-line i {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #8FA277, #E8B54B);
  transform: translateX(-100%);
  animation: jdc-transition-progress 1.15s var(--jdc-ease) infinite;
}
@keyframes jdc-transition-progress {
  0% { transform: translateX(-100%); }
  70%, 100% { transform: translateX(100%); }
}
@keyframes jdc-transition-watercolor {
  from { transform: scale(1) translate3d(-8px, 2px, 0); }
  to { transform: scale(1.05) translate3d(10px, -5px, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .jdc-page-transition::before,
  .jdc-page-transition-line i {
    animation: none;
  }
}

/* Cascade finale du composant GroupFilterButton : garde le Design System
   prioritaire sur les anciennes variantes de la boutique et du mode sticky. */
.jdc-shop-all-groups,
.jdc-group-filter .wc-block-product-filter-chips__item,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-all-groups,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__item {
  --jdc-filter-code: #7FA05F;
  gap: 9px;
  height: 42px;
  min-height: 42px;
  padding: 10px 14px;
  border: 1.5px solid rgba(46, 59, 38, .16);
  border-radius: 6px !important;
  background: #FBF6EA;
  box-shadow: none;
  color: #7C7563;
  font: 600 11px/1 "DM Sans", sans-serif;
  letter-spacing: 0;
  transform: none;
}
.jdc-group-filter .wc-block-product-filter-chips__item[value="racines-tubercules"] { --jdc-filter-code: #EEA03A; }
.jdc-group-filter .wc-block-product-filter-chips__item[value="bulbes-poireaux"] { --jdc-filter-code: #9F71D3; }
.jdc-group-filter .wc-block-product-filter-chips__item[value="salades-feuilles"] { --jdc-filter-code: #B7E532; }
.jdc-group-filter .wc-block-product-filter-chips__item[value="choux-brocolis"] { --jdc-filter-code: #84B738; }
.jdc-group-filter .wc-block-product-filter-chips__item[value="legumes-fruits-fleurs"] { --jdc-filter-code: #E9B323; }
.jdc-group-filter .wc-block-product-filter-chips__item[value="aromatiques"] { --jdc-filter-code: #70C956; }
.jdc-group-filter .wc-block-product-filter-chips__item[value="fruits"] { --jdc-filter-code: #D83D31; }
.jdc-group-filter .wc-block-product-filter-chips__item::before,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__item::before,
.jdc-shop-all-groups .jdc-group-filter-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-width: 1.5px;
  border-color: var(--jdc-filter-code);
  background-color: #FFFDF4;
}
.jdc-shop-all-groups:hover,
.jdc-group-filter .wc-block-product-filter-chips__item:hover {
  border-color: color-mix(in srgb, var(--jdc-filter-code) 68%, rgba(46, 59, 38, .16));
  background: color-mix(in srgb, var(--jdc-filter-code) 9%, #FBF6EA);
  color: #2E3B26;
  box-shadow: 0 2px 8px rgba(46, 59, 38, .08);
  transform: none;
}
.jdc-shop-all-groups.is-active,
.jdc-group-filter .wc-block-product-filter-chips__item.is-selected,
.jdc-group-filter .wc-block-product-filter-chips__item[aria-checked="true"] {
  border-color: var(--jdc-filter-code);
  background: color-mix(in srgb, var(--jdc-filter-code) 22%, #FBF6EA);
  color: #2E3B26;
  box-shadow: none;
  font-weight: 700;
}
.jdc-group-filter:has(.wc-block-product-filter-chips__item.is-selected) .jdc-shop-all-groups,
.jdc-group-filter:has(.wc-block-product-filter-chips__item[aria-checked="true"]) .jdc-shop-all-groups {
  border-color: rgba(46, 59, 38, .16);
  background: #FBF6EA;
  color: #7C7563;
  font-weight: 600;
}

/* Composition des filtres : 8 groupes puis une ligne utilitaire compacte.
   Exotique est replacé avec les couleurs et le prix au lieu de flotter seul. */
.jdc-filter-sticky-panel,
.jdc-filter-sticky-panel.is-sticky-filters {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px 18px;
}
.jdc-filter-sticky-panel .jdc-shop-filters,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters {
  display: contents;
}
.jdc-filter-sticky-panel .jdc-group-filter,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter {
  grid-column: 1 / -1;
  grid-row: 1;
  gap: 10px;
}
.jdc-filter-sticky-panel .jdc-exotique-filter,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  justify-self: start;
  margin: 0 !important;
}
.jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__items,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__items {
  margin: 0;
}
.jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__item,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__item {
  height: 34px;
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 3px;
}
.jdc-filter-sticky-panel .jdc-color-filter,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  margin: 0 !important;
}
.jdc-filter-sticky-panel .jdc-color-filter .wp-block-group {
  margin-bottom: 3px;
}
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wp-block-group {
  display: none;
}
.jdc-filter-sticky-panel .jdc-color-filter .wc-block-product-filter-checkbox-list__items,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wc-block-product-filter-checkbox-list__items {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 13px;
  margin: 0;
}
/* Les couleurs sont des cases de filtre, pas des pilules. */
.jdc-filter-sticky-panel .jdc-color-filter .wc-block-product-filter-checkbox-list__item label,
.jdc-filter-sticky-panel .jdc-color-filter .wc-block-product-filter-checkbox-list__item-label,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wc-block-product-filter-checkbox-list__item label,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter .wc-block-product-filter-checkbox-list__item-label {
  min-height: 28px;
  padding: 3px 1px;
  gap: 6px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #5A6350;
  font: 600 11px/1 "DM Sans", sans-serif;
  transform: none;
}
.jdc-filter-sticky-panel .jdc-color-filter .wc-block-product-filter-checkbox-list__item:hover label,
.jdc-filter-sticky-panel .jdc-color-filter .wc-block-product-filter-checkbox-list__item:hover .wc-block-product-filter-checkbox-list__item-label {
  color: #2E3B26;
  box-shadow: none;
  transform: none;
}
.jdc-filter-sticky-panel .jdc-color-filter input[type="checkbox"] {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  border-radius: 2px;
}
.jdc-filter-sticky-panel .jdc-sort-pills,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
  grid-column: 3;
  grid-row: 2;
  align-self: end;
  width: auto;
  margin: 0 !important;
  gap: 4px;
  white-space: nowrap;
}
.jdc-filter-sticky-panel .jdc-sort-pill,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pill {
  min-height: 34px;
  padding: 7px 10px;
  border-radius: 3px;
}

@media (max-width: 980px) {
  .jdc-filter-sticky-panel,
  .jdc-filter-sticky-panel.is-sticky-filters {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
  }
  .jdc-filter-sticky-panel .jdc-sort-pills,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 620px) {
  .jdc-filter-sticky-panel,
  .jdc-filter-sticky-panel.is-sticky-filters {
    grid-template-columns: 1fr;
  }
  .jdc-filter-sticky-panel .jdc-group-filter,
  .jdc-filter-sticky-panel .jdc-exotique-filter,
  .jdc-filter-sticky-panel .jdc-color-filter,
  .jdc-filter-sticky-panel .jdc-sort-pills,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
    grid-column: 1;
    grid-row: auto;
  }
  .jdc-filter-sticky-panel .jdc-group-filter,
  .jdc-filter-sticky-panel .jdc-exotique-filter,
  .jdc-filter-sticky-panel .jdc-color-filter,
  .jdc-filter-sticky-panel .jdc-sort-pills,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter,
  .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
    grid-row: auto;
  }
}

/* ==========================================================================
   Boutons standards — règle canonique du Design System
   --------------------------------------------------------------------------
   Sont volontairement exclus : paniers S/M/XL, résumé « Mon panier »,
   quantités, suppressions, filtres, onglets et navigation.
   ========================================================================== */
:root {
  --jdc-button-bg: #B7C08D;
  --jdc-button-bg-hover: #AAB77F;
  --jdc-button-border: #9EAD73;
  --jdc-button-ink: #2E3B26;
  --jdc-button-radius: 3px;
  --jdc-button-shadow:
    0 5px 12px rgba(46, 59, 38, .13),
    0 1px 3px rgba(46, 59, 38, .09);
  --jdc-button-shadow-hover:
    0 7px 16px rgba(46, 59, 38, .16),
    0 2px 4px rgba(46, 59, 38, .10);
}

:where(
  .wp-block-button__link,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .jdc-flipcard-add,
  .jdc-product-add-form .single_add_to_cart_button,
  .jdc-newsletter-toggle,
  .jdc-newsletter-form > button,
  .jdc-footer-ribbon-form button
) {
  min-height: 42px;
  padding: 11px 20px;
  border: 1px solid var(--jdc-button-border) !important;
  border-radius: var(--jdc-button-radius) !important;
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 253, 244, .34), transparent 31%),
    radial-gradient(circle at 82% 88%, rgba(127, 160, 95, .16), transparent 38%),
    var(--jdc-button-bg) !important;
  box-shadow: var(--jdc-button-shadow) !important;
  color: var(--jdc-button-ink) !important;
  font: 700 .75rem/1.2 "DM Sans", sans-serif !important;
  letter-spacing: .015em;
  text-align: center;
  text-decoration: none;
  transform: translateY(0);
  transition:
    background-color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease !important;
}

:where(
  .wp-block-button__link,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .jdc-flipcard-add,
  .jdc-product-add-form .single_add_to_cart_button,
  .jdc-newsletter-toggle,
  .jdc-newsletter-form > button,
  .jdc-footer-ribbon-form button
):hover {
  border-color: #8F9C66 !important;
  background:
    radial-gradient(circle at 24% 18%, rgba(255, 253, 244, .46), transparent 34%),
    radial-gradient(circle at 76% 82%, rgba(232, 181, 75, .14), transparent 42%),
    var(--jdc-button-bg-hover) !important;
  box-shadow: var(--jdc-button-shadow-hover) !important;
  color: var(--jdc-button-ink) !important;
  transform: translateY(-1px);
}

:where(
  .wp-block-button__link,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .jdc-flipcard-add,
  .jdc-product-add-form .single_add_to_cart_button,
  .jdc-newsletter-toggle,
  .jdc-newsletter-form > button,
  .jdc-footer-ribbon-form button
):active {
  box-shadow: 0 2px 5px rgba(46, 59, 38, .12) !important;
  transform: translateY(0);
}

:where(
  .wp-block-button__link,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .jdc-flipcard-add,
  .jdc-product-add-form .single_add_to_cart_button,
  .jdc-newsletter-toggle,
  .jdc-newsletter-form > button,
  .jdc-footer-ribbon-form button
):focus-visible {
  outline: 2px solid #E8B54B;
  outline-offset: 3px;
}

/* Variante secondaire : même géométrie et même typographie, surface crème. */
.jdc-btn-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
  border-color: var(--jdc-button-border) !important;
  background:
    radial-gradient(circle at 18% 15%, rgba(183, 192, 141, .13), transparent 34%),
    #FFFDF4 !important;
  color: var(--jdc-button-ink) !important;
}
.jdc-btn-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background:
    radial-gradient(circle at 24% 18%, rgba(255, 253, 244, .5), transparent 34%),
    #E3EACF !important;
}

@media (prefers-reduced-motion: reduce) {
  :where(
    .wp-block-button__link,
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button,
    .jdc-flipcard-add,
    .jdc-product-add-form .single_add_to_cart_button,
    .jdc-newsletter-toggle,
    .jdc-newsletter-form > button,
    .jdc-footer-ribbon-form button
  ) {
    transition: none !important;
  }
}

/* Les actions et quantités du catalogue appartiennent à l’adaptateur
   WooCommerce terminal : assets/css/woocommerce-jdc.css. */

/* Mon panier — les intitulés longs restent dans le rail et passent à la ligne. */
.jdc-shop-cart-items {
  width: 100%;
  min-width: 0;
}
.jdc-shop-cart-item {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.jdc-shop-cart-item-head {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.jdc-shop-cart-item-copy {
  flex: 1 1 auto;
  min-width: 0;
}
.jdc-shop-cart-item-copy strong {
  display: block;
  overflow: visible;
  white-space: normal;
  text-overflow: clip;
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Filtres — aucun cerne noir : le focus reprend la couleur du groupe. */
.jdc-shop-all-groups:focus,
.jdc-shop-all-groups:focus-visible,
.jdc-group-filter .wc-block-product-filter-chips__item:focus,
.jdc-group-filter .wc-block-product-filter-chips__item:focus-visible {
  outline: 0;
  border-color: var(--jdc-filter-code) !important;
  box-shadow:
    0 0 0 2px #FAF6EC,
    0 0 0 4px color-mix(in srgb, var(--jdc-filter-code) 58%, transparent) !important;
}

/* Couleurs : disques pleins bord à bord, sans pilule ni carré intérieur. */
.jdc-filter-sticky-panel .jdc-color-filter input[type="checkbox"],
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin: 0;
  border: 0;
  border-radius: 50%;
  outline: 0;
  background: var(--jdc-choice-color, #E4D9BE);
  box-shadow: none;
}
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:nth-child(1) { --jdc-choice-color: #70C956; }
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:nth-child(2) { --jdc-choice-color: #E07B39; }
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:nth-child(3) { --jdc-choice-color: #D83D31; }
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:nth-child(4) { --jdc-choice-color: #9F71D3; }
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:nth-child(5) { --jdc-choice-color: #E9B323; }
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:nth-child(6) { --jdc-choice-color: #E7A6B4; }
.jdc-color-filter .wc-block-product-filter-checkbox-list__item:nth-child(7) { --jdc-choice-color: #6FA8CF; }
.jdc-filter-sticky-panel .jdc-color-filter input[type="checkbox"]:checked,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter input[type="checkbox"]:checked {
  border: 0;
  background: var(--jdc-choice-color, #E4D9BE);
  box-shadow:
    0 0 0 2px #FAF6EC,
    0 0 0 4px var(--jdc-choice-color, #E4D9BE);
}
.jdc-filter-sticky-panel .jdc-color-filter input[type="checkbox"]:focus-visible,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter input[type="checkbox"]:focus-visible {
  outline: 0;
  box-shadow:
    0 0 0 2px #FAF6EC,
    0 0 0 4px color-mix(in srgb, var(--jdc-choice-color, #E4D9BE) 72%, #7C7563);
}

/* Exotique devient un filtre secondaire de la même hauteur que les couleurs. */
.jdc-filter-sticky-panel .jdc-exotique-filter,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
  align-self: end;
}
.jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__item,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 28px;
  min-height: 28px;
  padding: 3px 1px;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
  color: #5A6350;
  font: 600 11px/1 "DM Sans", sans-serif;
}
.jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__item::before,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__item::before {
  content: "★";
  display: grid;
  place-items: center;
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  border: 0;
  border-radius: 50%;
  background: #D1A748;
  color: #FFFDF4;
  font: 700 8px/1 "DM Sans", sans-serif;
}
.jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__item:hover,
.jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__item:focus-visible,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__item:hover,
.jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__item:focus-visible {
  border: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
  color: #2E3B26;
}

/* Les actions principales utilisent le sauge clair du Design System.
   Le vert forêt reste réservé à l'encre, aux filets et aux structures. */
.jdc-btn-primary .wp-block-button__link,
.wp-block-button:not(.jdc-btn-outline):not(.is-style-outline) .wp-block-button__link {
  border-color: #A2AD74 !important;
  background: #B7C08D !important;
  color: #2E3B26 !important;
}
.jdc-btn-primary .wp-block-button__link:hover,
.wp-block-button:not(.jdc-btn-outline):not(.is-style-outline) .wp-block-button__link:hover {
  border-color: #8F9C66 !important;
  background: #AAB77F !important;
  color: #2E3B26 !important;
}

/* Correctifs responsive de structure : le résumé conserve son contexte de
   positionnement et les post-its ne débordent jamais du viewport. */
@media (max-width: 980px) {
  .jdc-shop-page-grid .jdc-shop-cart-summary {
    position: relative;
  }
  .jdc-shop-basket-cards {
    display: flex !important;
    align-items: stretch !important;
    flex-direction: column;
    width: 100%;
    gap: 28px !important;
  }
  .jdc-shop-basket-cards > .wp-block-column,
  .jdc-shop-basket-cards .jdc-postit {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
}

@media (max-width: 620px) {
  .jdc-shop-page-grid {
    width: calc(100vw - 32px);
    max-width: calc(100vw - 32px);
    margin-right: 16px !important;
    margin-left: 16px !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    box-sizing: border-box;
  }
  .jdc-shop-page-grid > *,
  .jdc-shop-page-grid .jdc-shop-basket-layout,
  .jdc-shop-page-grid .jdc-shop-basket-cards,
  .jdc-shop-page-grid .jdc-shop-basket-aside,
  .jdc-shop-page-grid .jdc-postit {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    min-width: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    box-sizing: border-box;
  }
  .jdc-shop-panier-intro {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .jdc-shop-basket-title {
    width: calc(100vw - 32px);
    max-width: calc(100vw - 32px);
    font-size: clamp(2rem, 10vw, 2.55rem);
    overflow-wrap: break-word;
  }
  .jdc-shop-basket-cards .jdc-postit {
    padding-right: 18px;
    padding-left: 18px;
  }
}

/* Anciennes rustines du panneau conservées temporairement pour historique,
   mais sorties de la cascade. La feuille assets/css/shop-filters.css est
   désormais l'unique autorité du composant. */
@media (max-width: 0px) {

/* Dernier mot de cascade pour l’état sticky : les anciennes compositions
   incrémentales ne doivent plus recréer de rangées ou d’espaces fantômes. */
body .jdc-filter-sticky-panel.is-sticky-filters {
  top: 0;
  display: block !important;
  padding: 10px 12px 50px;
  border-radius: 0 0 var(--jdc-radius-md) var(--jdc-radius-md);
}
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters {
  display: block !important;
  width: 100% !important;
}
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px 10px !important;
  width: 100% !important;
}
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
  position: absolute !important;
  bottom: 10px !important;
  grid-column: auto !important;
  grid-row: auto !important;
}
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
  left: 12px !important;
}
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter {
  right: 190px !important;
  left: 132px !important;
}
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
  right: 12px !important;
}

/* Le composant ne change jamais d'apparence au passage sticky.
   Seuls son mode de positionnement et ses coordonnées sont modifiés. */
body .jdc-filter-sticky-panel {
  position: relative;
  display: block !important;
  width: 100%;
  min-width: 0;
  padding: 10px 12px 50px;
  overflow: visible;
  border: 1px solid rgba(127, 160, 95, .34);
  border-radius: var(--jdc-radius-md);
  background: rgba(250, 246, 236, .96);
  box-shadow:
    0 12px 28px rgba(46, 59, 38, .16),
    0 2px 7px rgba(46, 59, 38, .08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
body .jdc-filter-sticky-panel.is-sticky-filters {
  position: fixed;
  top: 0;
  left: var(--jdc-sticky-left);
  width: var(--jdc-sticky-width);
  border-radius: var(--jdc-radius-md);
}
body .jdc-filter-sticky-panel .jdc-shop-filters {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body .jdc-filter-sticky-panel .jdc-group-filter {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px 10px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body .jdc-filter-sticky-panel .jdc-group-filter > .wp-block-group,
body .jdc-filter-sticky-panel .jdc-color-filter > .wp-block-group {
  display: none;
}
body .jdc-filter-sticky-panel .jdc-group-filter .wc-block-product-filter-chips,
body .jdc-filter-sticky-panel .jdc-group-filter .wc-block-product-filter-chips__items {
  display: contents;
}
body .jdc-filter-sticky-panel .jdc-shop-all-groups,
body .jdc-filter-sticky-panel .jdc-group-filter .wc-block-product-filter-chips__item {
  width: 100%;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  padding: 5px 10px 5px 6px;
  border-radius: var(--jdc-radius-md) !important;
}
body .jdc-filter-sticky-panel .jdc-exotique-filter,
body .jdc-filter-sticky-panel .jdc-color-filter,
body .jdc-filter-sticky-panel .jdc-sort-pills {
  position: absolute !important;
  bottom: 10px !important;
  grid-column: auto !important;
  grid-row: auto !important;
  margin: 0 !important;
}
body .jdc-filter-sticky-panel .jdc-exotique-filter {
  left: 12px !important;
}
body .jdc-filter-sticky-panel .jdc-color-filter {
  right: 190px !important;
  left: 132px !important;
}
body .jdc-filter-sticky-panel .jdc-sort-pills {
  right: 12px !important;
}
body .jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__items,
body .jdc-filter-sticky-panel .jdc-color-filter .wc-block-product-filter-checkbox-list__items {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 12px;
  height: 30px;
  margin: 0;
}

@media (max-width: 980px) {
  body .jdc-filter-sticky-panel,
  body .jdc-filter-sticky-panel.is-sticky-filters {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    padding: 10px 12px;
  }
  body .jdc-filter-sticky-panel .jdc-group-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body .jdc-filter-sticky-panel .jdc-exotique-filter,
  body .jdc-filter-sticky-panel .jdc-color-filter,
  body .jdc-filter-sticky-panel .jdc-sort-pills {
    position: static !important;
    display: block;
    margin-top: 10px !important;
  }
  body .jdc-filter-sticky-panel .jdc-color-filter .wc-block-product-filter-checkbox-list__items {
    flex-wrap: wrap;
    height: auto;
  }
}

@media (max-width: 620px) {
  body .jdc-filter-sticky-panel .jdc-group-filter {
    grid-template-columns: 1fr !important;
  }
}

/* Composition robuste : la hauteur est dictée par le contenu, sans
   superposition absolue entre la seconde rangée et les filtres secondaires. */
@media (min-width: 981px) {
  body .jdc-filter-sticky-panel,
  body .jdc-filter-sticky-panel.is-sticky-filters {
    display: block !important;
    padding: 10px 12px !important;
  }
  body .jdc-filter-sticky-panel .jdc-shop-filters,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px 14px;
  }
  body .jdc-filter-sticky-panel .jdc-group-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }
  body .jdc-filter-sticky-panel .jdc-exotique-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
    position: static !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
    margin: 0 !important;
  }
  body .jdc-filter-sticky-panel .jdc-color-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter,
  body .jdc-filter-sticky-panel .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute {
    position: static !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    min-width: 0;
    margin: 0 178px 0 0 !important;
  }
  body .jdc-filter-sticky-panel .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute > .wp-block-group,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute > .wp-block-group {
    display: none !important;
  }
  body .jdc-filter-sticky-panel .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute .wc-block-product-filter-checkbox-list__items,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute .wc-block-product-filter-checkbox-list__items {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 12px;
    height: 30px;
    margin: 0;
  }
  body .jdc-filter-sticky-panel .jdc-sort-pills,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
    position: absolute !important;
    right: 12px !important;
    bottom: 10px !important;
    margin: 0 !important;
  }
}

/* État unique du panneau de filtres.
   La classe sticky ne modifie que le positionnement du panneau : sa grille,
   ses espacements et son rendu restent strictement identiques. */
@media (min-width: 981px) {
  body .jdc-filter-sticky-panel,
  body .jdc-filter-sticky-panel.is-sticky-filters {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 8px 14px !important;
    padding: 10px 12px !important;
    overflow: hidden !important;
    box-shadow: none !important;
  }

  body .jdc-filter-sticky-panel .jdc-shop-filters,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters {
    display: contents !important;
  }

  body .jdc-filter-sticky-panel .jdc-group-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter {
    position: static !important;
    display: grid !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 8px 10px !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
  }

  body .jdc-filter-sticky-panel .jdc-exotique-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
    position: static !important;
    display: block !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
    align-self: center !important;
    justify-self: start !important;
    margin: 0 !important;
  }

  body .jdc-filter-sticky-panel .jdc-color-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter,
  body .jdc-filter-sticky-panel .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters > .wp-block-woocommerce-product-filter-attribute {
    position: static !important;
    display: block !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: center !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  body .jdc-filter-sticky-panel .jdc-sort-pills,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
    position: static !important;
    display: flex !important;
    grid-column: 3 !important;
    grid-row: 2 !important;
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
  }
}

body .jdc-filter-sticky-panel,
body .jdc-filter-sticky-panel.is-sticky-filters {
  box-shadow: none !important;
}

/* WooCommerce ajoute des fieldsets intermédiaires. Ils doivent être
   transparents pour la grille, sinon ils recréent des cellules et des
   espaces vides entre les boutons. */
body .jdc-filter-sticky-panel .jdc-group-filter .wc-block-product-filter-chips,
body .jdc-filter-sticky-panel .jdc-group-filter .wc-block-product-filter-chips__fieldset,
body .jdc-filter-sticky-panel .jdc-group-filter .wc-block-product-filter-chips__items,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__fieldset,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__items {
  display: contents !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body .jdc-filter-sticky-panel .jdc-group-filter .wc-block-product-filter-chips__item,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter .wc-block-product-filter-chips__item,
body .jdc-filter-sticky-panel .jdc-shop-all-groups,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-all-groups {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
}

body .jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips,
body .jdc-filter-sticky-panel .jdc-exotique-filter .wc-block-product-filter-chips__fieldset,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips,
body .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter .wc-block-product-filter-chips__fieldset {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* La grille visible appartient au contenu de l’overlay WooCommerce, qui
   enveloppe réellement les trois filtres et le tri. */
@media (min-width: 981px) {
  body .jdc-filter-sticky-panel,
  body .jdc-filter-sticky-panel.is-sticky-filters {
    display: block !important;
    padding: 10px 12px !important;
  }

  body .jdc-filter-sticky-panel .jdc-shop-filters,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-shop-filters {
    display: block !important;
    width: 100% !important;
  }

  body .jdc-filter-sticky-panel .wc-block-product-filters__overlay-content,
  body .jdc-filter-sticky-panel.is-sticky-filters .wc-block-product-filters__overlay-content {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 8px 14px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body .jdc-filter-sticky-panel .jdc-group-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-group-filter {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }

  body .jdc-filter-sticky-panel .jdc-exotique-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-exotique-filter {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }

  body .jdc-filter-sticky-panel .jdc-color-filter,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-color-filter {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  body .jdc-filter-sticky-panel .jdc-sort-pills,
  body .jdc-filter-sticky-panel.is-sticky-filters .jdc-sort-pills {
    position: static !important;
    grid-column: 3 !important;
    grid-row: 2 !important;
    justify-self: end !important;
  }

  body .jdc-filter-sticky-panel .wc-block-product-filters__open-overlay,
  body .jdc-filter-sticky-panel .wc-block-product-filters__overlay > header,
  body .jdc-filter-sticky-panel.is-sticky-filters .wc-block-product-filters__open-overlay,
  body .jdc-filter-sticky-panel.is-sticky-filters .wc-block-product-filters__overlay > header {
    display: none !important;
  }
}

}
