@charset "UTF-8";
/* Main shop stylesheet loaded by the Sylius shop layout.
   Keep feature styles in their dedicated SCSS files and import them here. */
/* Inter auto-hébergé (ex-@import Google Fonts) — supprime la requête tierce et le blocage de rendu. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/inter/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/inter/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/fonts/Manrope-VariableFont_wght.woff2") format("woff2"); }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-Thin.woff2") format("woff2"), url("/fonts/MontserratED-Thin.woff") format("woff"), url("/fonts/MontserratED-Thin.ttf") format("ttf");
  font-weight: 100;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-ThinItalic.woff2") format("woff2"), url("/fonts/MontserratED-ThinItalic.woff") format("woff"), url("/fonts/MontserratED-ThinItalic.ttf") format("ttf");
  font-weight: 100;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-ExtraLight.woff2") format("woff2"), url("/fonts/MontserratED-ExtraLight.woff") format("woff"), url("/fonts/MontserratED-ExtraLight.ttf") format("ttf");
  font-weight: 200;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-ExtraLightItalic.woff2") format("woff2"), url("/fonts/MontserratED-ExtraLightItalic.woff") format("woff"), url("/fonts/MontserratED-ExtraLightItalic.ttf") format("ttf");
  font-weight: 200;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-Light.woff2") format("woff2"), url("/fonts/MontserratED-Light.woff") format("woff"), url("/fonts/MontserratED-Light.ttf") format("ttf");
  font-weight: 300;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-LightItalic.woff2") format("woff2"), url("/fonts/MontserratED-LightItalic.woff") format("woff"), url("/fonts/MontserratED-LightItalic.ttf") format("ttf");
  font-weight: 300;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-Regular.woff2") format("woff2"), url("/fonts/MontserratED-Regular.woff") format("woff"), url("/fonts/MontserratED-Regular.ttf") format("ttf");
  font-weight: 400;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-Italic.woff2") format("woff2"), url("/fonts/MontserratED-Italic.woff") format("woff"), url("/fonts/MontserratED-Italic.ttf") format("ttf");
  font-weight: 400;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-Medium.woff2") format("woff2"), url("/fonts/MontserratED-Medium.woff") format("woff"), url("/fonts/MontserratED-Medium.ttf") format("ttf");
  font-weight: 500;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-MediumItalic.woff2") format("woff2"), url("/fonts/MontserratED-MediumItalic.woff") format("woff"), url("/fonts/MontserratED-MediumItalic.ttf") format("ttf");
  font-weight: 500;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-SemiBold.woff2") format("woff2"), url("/fonts/MontserratED-SemiBold.woff") format("woff"), url("/fonts/MontserratED-SemiBold.ttf") format("ttf");
  font-weight: 600;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-SemiBoldItalic.woff2") format("woff2"), url("/fonts/MontserratED-SemiBoldItalic.woff") format("woff"), url("/fonts/MontserratED-SemiBoldItalic.ttf") format("ttf");
  font-weight: 600;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-Bold.woff2") format("woff2"), url("/fonts/MontserratED-Bold.woff") format("woff"), url("/fonts/MontserratED-Bold.ttf") format("ttf");
  font-weight: 700;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-BoldItalic.woff2") format("woff2"), url("/fonts/MontserratED-BoldItalic.woff") format("woff"), url("/fonts/MontserratED-BoldItalic.ttf") format("ttf");
  font-weight: 700;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-ExtraBold.woff2") format("woff2"), url("/fonts/MontserratED-ExtraBold.woff") format("woff"), url("/fonts/MontserratED-ExtraBold.ttf") format("ttf");
  font-weight: 800;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-ExtraBoldItalic.woff2") format("woff2"), url("/fonts/MontserratED-ExtraBoldItalic.woff") format("woff"), url("/fonts/MontserratED-ExtraBoldItalic.ttf") format("ttf");
  font-weight: 800;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-Black.woff2") format("woff2"), url("/fonts/MontserratED-Black.woff") format("woff"), url("/fonts/MontserratED-Black.ttf") format("ttf");
  font-weight: 900;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'MontserratED';
  src: url("/fonts/MontserratED-BlackItalic.woff2") format("woff2"), url("/fonts/MontserratED-BlackItalic.woff") format("woff"), url("/fonts/MontserratED-BlackItalic.ttf") format("ttf");
  font-weight: 900;
  font-style: italic;
  font-display: swap; }

/* ============================================= */
/* === MonComtéBon Design System V2 — Tokens === */
/* ============================================= */
/* Source of vérité unique.                      */
/* Aucun hex ne doit apparaître hors de ce       */
/* fichier dans les composants V2.               */
/* ============================================= */
:root {
  /* --- Neutrals (warm ivory/sable) --- */
  --mcb-n-0: #ffffff;
  --mcb-n-25: #FBF7EF;
  /* Main page background */
  --mcb-n-50: #F4ECD8;
  /* Light paper / ivory */
  --mcb-n-75: #EFE7D2;
  /* Muted paper */
  --mcb-n-100: #E6DFCB;
  /* Borders */
  --mcb-n-150: #d4d0c8;
  --mcb-n-200: #c4c0b8;
  --mcb-n-500: #7A6A4A;
  /* Muted text */
  --mcb-n-700: #5C5340;
  /* Secondary text */
  --mcb-n-900: #1c1a17;
  /* --- Accent (forest green) --- */
  --mcb-a-50: #eef6f1;
  --mcb-a-100: #d4ebdf;
  --mcb-a-200: #a8d4ba;
  --mcb-a-500: #2A4A36;
  /* Brand green */
  --mcb-a-600: #355A45;
  /* Brand green hover */
  --mcb-a-700: #1C5636;
  /* --- Brand Gold --- */
  --mcb-gold-main: #E8C26B;
  --mcb-gold-hover: #F0CF82;
  --mcb-gold-dark: #C28A3A;
  /* Doré "encre" : doré lisible en PETIT TEXTE sur fond clair (AA ≈ 4.8:1).
       Le doré clair/vif reste réservé au décoratif (icônes, filets, texte sur fond foncé). */
  --mcb-gold-ink: #8C5E16;
  /* --- Canonical brand green (buttons, topbar, CTAs) --- */
  --mcb-green-main: var(--mcb-a-500);
  --mcb-green-hover: var(--mcb-a-600);
  --mcb-green-active: #153826;
  --mcb-green-soft: rgba(42, 74, 54, 0.08);
  --mcb-green-border-soft: rgba(42, 74, 54, 0.25);
  /* --- Semantic: Warning --- */
  --mcb-warn-100: #f5f0e5;
  --mcb-warn-200: rgba(122, 98, 50, 0.25);
  --mcb-warn-700: #7a6232;
  /* --- Semantic: Danger --- */
  --mcb-danger-100: #f8ebe8;
  --mcb-danger-200: rgba(158, 61, 53, 0.2);
  --mcb-danger-600: #9e3d35;
  /* --- Semantic: Stars --- */
  --mcb-star-fill: var(--mcb-gold-dark);
  --mcb-star-empty: var(--mcb-n-150);
  /* --- Text --- */
  --mcb-text-primary: var(--mcb-n-900);
  --mcb-text-secondary: var(--mcb-n-700);
  --mcb-text-muted: var(--mcb-n-500);
  --mcb-text-accent: var(--mcb-green-main);
  --mcb-text-accent-sm: var(--mcb-green-active);
  --mcb-text-on-accent: var(--mcb-n-50);
  --mcb-text-disabled: var(--mcb-n-500);
  /* --- Shadows (warm brown, never colored) --- */
  --mcb-shadow-rest: 0 2px 8px rgba(30, 24, 18, 0.06);
  --mcb-shadow-elevated: 0 8px 24px rgba(30, 24, 18, 0.10);
  --mcb-shadow-floating: 0 18px 44px rgba(30, 24, 18, 0.14);
  /* --- Shared surfaces --- */
  --mcb-surface-canvas: var(--mcb-n-25);
  --mcb-surface-panel: var(--mcb-n-0);
  --mcb-surface-panel-soft: var(--mcb-n-25);
  --mcb-surface-panel-muted: var(--mcb-n-50);
  --mcb-surface-panel-strong: var(--mcb-n-75);
  /* --- Shared borders --- */
  --mcb-border-subtle: rgba(212, 208, 200, 0.72);
  --mcb-border-default: var(--mcb-n-100);
  --mcb-border-strong: var(--mcb-n-150);
  /* --- Shared focus --- */
  --mcb-focus-ring: rgba(42, 74, 54, 0.18);
  --mcb-focus-ring-strong: rgba(42, 74, 54, 0.28);
  /* --- Buttons --- */
  --mcb-btn-primary-bg: var(--mcb-green-main);
  --mcb-btn-primary-border: var(--mcb-green-main);
  --mcb-btn-primary-bg-hover: var(--mcb-green-hover);
  --mcb-btn-primary-border-hover: var(--mcb-green-hover);
  --mcb-btn-primary-bg-active: var(--mcb-green-active);
  --mcb-btn-primary-border-active: var(--mcb-green-active);
  --mcb-btn-primary-text: var(--mcb-n-50);
  --mcb-btn-gold-bg: var(--mcb-gold-main);
  --mcb-btn-gold-bg-hover: var(--mcb-gold-hover);
  --mcb-btn-gold-text: var(--mcb-green-main);
  --mcb-btn-secondary-bg: transparent;
  --mcb-btn-secondary-border: var(--mcb-green-border-soft);
  --mcb-btn-secondary-bg-hover: var(--mcb-green-soft);
  --mcb-btn-secondary-border-hover: var(--mcb-green-main);
  --mcb-btn-secondary-text: var(--mcb-green-main);
  --mcb-btn-disabled-bg: var(--mcb-n-50);
  --mcb-btn-disabled-border: var(--mcb-n-100);
  --mcb-btn-disabled-text: var(--mcb-text-muted);
  /* --- Form controls --- */
  --mcb-input-bg: #fbfaf7;
  --mcb-input-bg-focus: var(--mcb-n-0);
  --mcb-input-border: var(--mcb-border-default);
  --mcb-input-border-strong: var(--mcb-border-strong);
  --mcb-input-text: var(--mcb-text-primary);
  --mcb-input-placeholder: #857f76;
  /* --- Footer --- */
  --mcb-footer-bg: var(--mcb-green-main);
  --mcb-footer-border: rgba(244, 236, 216, 0.1);
  --mcb-footer-text: var(--mcb-n-50);
  --mcb-footer-text-strong: var(--mcb-n-25);
  /* --- Status --- */
  --mcb-success-50: var(--mcb-a-50);
  --mcb-success-500: var(--mcb-a-600);
  /* --- Radius --- */
  --mcb-radius-structural: 14px;
  --mcb-radius-interactive: 10px;
  --mcb-radius-chip: 999px;
  /* --- Spacing (échelle unique — source de vérité, réutilisable partout) --- */
  --mcb-space-xs: 4px;
  /* 4px  — gouttière fine / micro-ajustement */
  --mcb-space-sm: 8px;
  /* 8px  — gouttière serrée */
  --mcb-space-md: 12px;
  /* 12px — respiration interne / gouttière inter-éléments */
  --mcb-space-lg: 16px;
  /* 16px — respiration interne (paddings) / petit rythme entre blocs */
  --mcb-space-xl: 24px;
  /* 24px — rythme entre blocs proches (en-tête ↔ hero) */
  --mcb-space-2xl: 32px;
  /* 32px — rythme entre sections (hero ↔ section suivante) */
  --mcb-space-3xl: 48px;
  /* 48px — rythme ample entre grandes sections */
  /* --- Layout shell (largeur mobile bornée, parité maquette max-w-[480px]) --- */
  --mcb-shell-max: 480px;
  /* --- Z-index (couches d'empilement partagées) --- */
  --mcb-z-sticky: 30;
  /* barres d'action collantes */
  /* Backdrops + drawers modaux (filtres, tri, variante, format PDP, nav).
       DOIT passer AU-DESSUS du header sticky (#site-header = 1100), du drawer
       nav bespoke (.mcb-mobile-drawer = 1120) et des widgets footer (1200/1300),
       sinon le voile ne recouvre pas le header et la croix flottante d'un drawer
       bas se glisse DERRIÈRE la barre de recherche (bug S25 / grands écrans).
       Reste sous le drawer panier (12000), le checkout (10050) et les toasts
       (13000), volontairement plus hauts. */
  --mcb-z-overlay: 1400;
  /* --- Transitions --- */
  --mcb-transition-fast: 120ms ease;
  --mcb-transition-base: 160ms ease;
  --mcb-transition-slow: 240ms ease;
  /* --- Typography families --- */
  --mcb-font-primary: "Manrope", system-ui, sans-serif;
  --mcb-font-inter: "Inter", system-ui, -apple-system, sans-serif;
  --mcb-font-secondary: "MontserratED", sans-serif;
  --mcb-font-numeric: var(--mcb-font-primary);
  /* --- Typography roles --- */
  --mcb-font-heading: var(--mcb-font-primary);
  --mcb-font-body: var(--mcb-font-inter);
  --mcb-font-meta: var(--mcb-font-inter);
  --mcb-font-label: var(--mcb-font-inter);
  --mcb-font-badge: var(--mcb-font-inter);
  --mcb-font-price: var(--mcb-font-primary);
  --mcb-font-cta: var(--mcb-font-primary);
  --mcb-font-control: var(--mcb-font-primary);
  /* --- Typography weights --- */
  --mcb-fw-medium: 500;
  --mcb-fw-semi: 600;
  --mcb-fw-bold: 700; }

:root {
  color-scheme: light; }

html,
body.pushable {
  background: var(--mcb-surface-canvas) !important;
  background-image: none !important;
  color: var(--mcb-text-primary);
  width: 100%;
  max-width: 100%;
  overflow-x: clip !important; }

body.pushable > .pusher {
  min-height: 100vh;
  background: var(--mcb-surface-canvas) !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
  width: 100%;
  max-width: 100%;
  overflow-x: clip !important; }

@supports not (overflow: clip) {
  html,
  body.pushable,
  body.pushable > .pusher {
    overflow-x: hidden !important; } }

body.pushable > .pusher:not(.dimmed)::after {
  background: transparent !important;
  box-shadow: none !important; }

::selection {
  background: rgba(42, 123, 78, 0.14);
  color: var(--mcb-text-primary); }

.site-main-container.ui.container {
  padding-bottom: 48px; }

/* ==========================================================================
   MCB CANONICAL BUTTON SYSTEM
   One system. Used everywhere. No exceptions.
   ========================================================================== */
.mcb-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 20px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--mcb-text-primary);
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  font-weight: var(--mcb-fw-semi);
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), color var(--mcb-transition-base), box-shadow var(--mcb-transition-base), transform var(--mcb-transition-fast); }

/* ── Primary ── */
.mcb-button--primary,
.ui.primary.button,
.ui.green.button,
.ui.primary.buttons .button,
.ui.submit.button.primary,
.btn--primary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  background: var(--mcb-green-main) !important;
  border: 1px solid var(--mcb-green-main) !important;
  color: var(--mcb-n-50) !important;
  min-height: 44px;
  padding: 0 20px !important;
  border-radius: 999px !important;
  font-family: var(--mcb-btn-primary-font-family, var(--mcb-font-inter)) !important;
  font-size: 14px !important;
  font-weight: var(--mcb-fw-semi) !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none !important;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), color var(--mcb-transition-base), box-shadow var(--mcb-transition-base), transform var(--mcb-transition-fast); }

.mcb-button--primary:hover,
.ui.primary.button:hover,
.ui.green.button:hover,
.ui.primary.buttons .button:hover,
.ui.submit.button.primary:hover,
.btn--primary:hover {
  background: var(--mcb-btn-primary-bg-hover) !important;
  border-color: var(--mcb-btn-primary-border-hover) !important;
  color: var(--mcb-btn-primary-text) !important;
  box-shadow: none !important;
  transform: none; }

.mcb-button--primary:focus-visible,
.ui.primary.button:focus-visible,
.ui.green.button:focus-visible,
.ui.primary.buttons .button:focus-visible,
.ui.submit.button.primary:focus-visible,
.btn--primary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--mcb-text-on-accent), 0 0 0 5px var(--mcb-focus-ring-strong) !important; }

.mcb-button--primary:active,
.ui.primary.button:active,
.ui.green.button:active,
.ui.primary.buttons .button:active,
.ui.submit.button.primary:active,
.btn--primary:active {
  background: var(--mcb-btn-primary-bg-active) !important;
  border-color: var(--mcb-btn-primary-border-active) !important; }

.mcb-button--primary[disabled],
.mcb-button--primary.disabled,
.ui.primary.button[disabled],
.ui.primary.button.disabled,
.ui.green.button[disabled],
.ui.green.button.disabled,
.btn--primary[disabled],
.btn--primary:disabled {
  background: var(--mcb-btn-disabled-bg) !important;
  border-color: var(--mcb-btn-disabled-border) !important;
  color: var(--mcb-btn-disabled-text) !important;
  box-shadow: none !important;
  opacity: 1 !important;
  cursor: default; }

/* ── Secondary ── */
.mcb-button--secondary,
.btn--secondary {
  background: var(--mcb-btn-secondary-bg) !important;
  border: 1px solid rgba(42, 74, 54, 0.2) !important;
  color: var(--mcb-btn-secondary-text) !important;
  min-height: 44px;
  padding: 0 20px !important;
  border-radius: 999px !important;
  font-family: var(--mcb-font-inter) !important;
  font-size: 14px !important;
  font-weight: var(--mcb-fw-semi) !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none !important;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), color var(--mcb-transition-base), box-shadow var(--mcb-transition-base), transform var(--mcb-transition-fast); }

.mcb-button--secondary:hover,
.btn--secondary:hover {
  background: var(--mcb-btn-secondary-bg-hover) !important;
  border-color: var(--mcb-btn-secondary-border-hover) !important;
  color: var(--mcb-btn-secondary-text) !important;
  box-shadow: none !important;
  transform: none; }

.mcb-button--secondary:focus-visible,
.btn--secondary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(35, 104, 67, 0.12) !important; }

.mcb-button--secondary:active,
.btn--secondary:active {
  background: rgba(35, 104, 67, 0.12) !important;
  border-color: var(--mcb-green-main) !important;
  color: var(--mcb-btn-secondary-text) !important; }

.mcb-button--secondary[disabled],
.mcb-button--secondary.disabled {
  background: var(--mcb-btn-disabled-bg) !important;
  border-color: var(--mcb-btn-disabled-border) !important;
  color: var(--mcb-btn-disabled-text) !important;
  box-shadow: none !important;
  opacity: 1 !important;
  cursor: default; }

.mcb-button--secondary-progressive,
.btn--secondary-progressive {
  background: var(--mcb-btn-secondary-bg) !important;
  border: 1px solid rgba(42, 74, 54, 0.2) !important;
  color: var(--mcb-btn-secondary-text) !important;
  font-family: Manrope, Inter, system-ui, sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important; }

.mcb-button--secondary-progressive:hover,
.btn--secondary-progressive:hover {
  background: var(--mcb-btn-primary-bg) !important;
  border-color: var(--mcb-btn-primary-border) !important;
  color: var(--mcb-btn-primary-text) !important;
  box-shadow: none !important;
  transform: none; }

.mcb-button--secondary-progressive:focus-visible,
.btn--secondary-progressive:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(35, 104, 67, 0.12) !important; }

.mcb-button--secondary-progressive:active,
.btn--secondary-progressive:active {
  background: var(--mcb-btn-primary-bg-hover) !important;
  border-color: var(--mcb-btn-primary-border-hover) !important;
  color: var(--mcb-btn-primary-text) !important; }

.mcb-button--secondary-progressive[disabled],
.mcb-button--secondary-progressive.disabled,
.btn--secondary-progressive[disabled],
.btn--secondary-progressive:disabled {
  background: var(--mcb-btn-disabled-bg) !important;
  border-color: var(--mcb-btn-disabled-border) !important;
  color: var(--mcb-btn-disabled-text) !important;
  box-shadow: none !important;
  opacity: 1 !important;
  cursor: default; }

/* ── Ghost ── */
.mcb-button--ghost {
  min-height: 42px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--mcb-text-secondary);
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  font-weight: var(--mcb-fw-medium);
  line-height: 1.5;
  text-decoration: none;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), color var(--mcb-transition-base); }

.mcb-button--ghost:hover,
.mcb-button--ghost:focus-visible {
  background: rgba(42, 74, 54, 0.06);
  color: var(--mcb-green-main);
  outline: none; }

.mcb-button--accent {
  background: var(--mcb-gold-main) !important;
  border: 1px solid var(--mcb-gold-main) !important;
  color: var(--mcb-green-main) !important; }

.mcb-button--accent:hover,
.mcb-button--accent:focus-visible {
  background: var(--mcb-gold-hover) !important;
  border-color: var(--mcb-gold-hover) !important;
  color: var(--mcb-green-main) !important;
  outline: none; }

/* ── Modifiers ── */
.mcb-button--full {
  display: flex;
  width: 100%; }

.mcb-button--compact {
  min-height: 36px;
  padding: 0 14px !important;
  font-size: 12px !important; }

.ui.form .field > label,
.ui.form .inline.fields > label,
.ui.form .fields > .field > label {
  color: var(--mcb-text-secondary);
  font-family: var(--mcb-font-primary);
  font-size: 13px;
  font-weight: var(--mcb-fw-medium);
  letter-spacing: 0.01em; }

.ui.form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ui.form textarea,
.ui.form select,
.ui.form .ui.selection.dropdown,
.ui.form .ui.input > input:not([type="checkbox"]):not([type="radio"]) {
  border-radius: var(--mcb-radius-interactive) !important;
  border: 1px solid var(--mcb-input-border) !important;
  background: var(--mcb-input-bg) !important;
  color: var(--mcb-input-text) !important;
  font-family: var(--mcb-font-primary) !important;
  font-size: 14px !important;
  font-weight: var(--mcb-fw-medium);
  padding: 0.92rem 1rem !important;
  box-shadow: none !important;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), box-shadow var(--mcb-transition-base); }

.ui.form input::placeholder,
.ui.form textarea::placeholder {
  color: var(--mcb-input-placeholder) !important;
  opacity: 1; }

/* Anti-zoom iOS (R3) : Safari iOS zoome automatiquement lorsqu'un champ de
   saisie a une font-size < 16px et reçoit le focus. Sur mobile, on force donc
   tous les champs de formulaire à 16px minimum. Scopé <= 767px pour préserver
   la densité 14px du design desktop. Placé après le bloc principal (même
   spécificité) : gagne par ordre de source, y compris sur le 14px !important. */
@media (max-width: 767px) {
  .ui.form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .ui.form textarea,
  .ui.form select,
  .ui.form .ui.selection.dropdown,
  .ui.form .ui.input > input:not([type="checkbox"]):not([type="radio"]) {
    font-size: 16px !important; } }

/* Les <select> natifs gèrent mal le gros padding vertical hérité des inputs
   (texte rogné en haut/bas). On leur donne une hauteur auto, un line-height
   confortable et un padding vertical légèrement réduit. Scopé aux select :
   n'affecte pas les champs texte ni le dropdown Semantic UI custom. */
.ui.form select {
  height: auto !important;
  min-height: 48px;
  line-height: 1.4 !important;
  padding-top: 0.7rem !important;
  padding-bottom: 0.7rem !important; }

.ui.form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.ui.form textarea:focus,
.ui.form select:focus,
.ui.form .ui.selection.dropdown:focus,
.ui.form .ui.selection.dropdown.active,
.ui.form .ui.input > input:not([type="checkbox"]):not([type="radio"]):focus {
  background: var(--mcb-input-bg-focus) !important;
  border-color: var(--mcb-a-200) !important;
  box-shadow: 0 0 0 4px var(--mcb-focus-ring) !important;
  outline: none; }

.ui.form input:disabled,
.ui.form textarea:disabled,
.ui.form select:disabled {
  background: var(--mcb-surface-panel-muted) !important;
  color: var(--mcb-text-muted) !important;
  cursor: not-allowed; }

.ui.form input.field-success,
.ui.form .ui.input input.field-success,
input.field-success {
  border-color: rgba(42, 123, 78, 0.4) !important;
  background: #fbfdfb !important; }

.ui.form .ui.toggle.checkbox label {
  color: var(--mcb-text-primary);
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: var(--mcb-fw-medium); }

.ui.toggle.checkbox label::before,
.ui.toggle.checkbox .box::before {
  background: var(--mcb-surface-panel-strong) !important;
  border: 1px solid var(--mcb-border-default) !important;
  box-shadow: none !important; }

.ui.toggle.checkbox label::after,
.ui.toggle.checkbox .box::after {
  background: var(--mcb-n-0) !important;
  box-shadow: 0 1px 3px rgba(30, 24, 18, 0.12) !important; }

.ui.toggle.checkbox input:checked ~ label::before,
.ui.toggle.checkbox input:checked ~ .box::before {
  background: var(--mcb-a-500) !important;
  border-color: var(--mcb-a-500) !important; }

.ui.toggle.checkbox input:focus ~ label::before,
.ui.toggle.checkbox input:focus ~ .box::before {
  box-shadow: 0 0 0 4px var(--mcb-focus-ring) !important; }

.ui.message,
.ui.icon.message {
  border-radius: var(--mcb-radius-interactive);
  box-shadow: none; }

.field-error-message {
  color: var(--mcb-danger-600);
  font-family: var(--mcb-font-primary);
  font-size: 12px;
  font-weight: var(--mcb-fw-medium);
  line-height: 1.4; }

/* ==========================================================================
   REGISTRATION: CONSENT ROWS
   ========================================================================== */
.mcb-consent-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 24px; }

.mcb-consent-field {
  margin: 0 !important; }

.mcb-consent-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 12px;
  cursor: pointer;
  position: relative;
  padding: 2px 0;
  margin: 0 !important;
  width: 100%; }

.mcb-consent-row input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  background-color: #fff;
  margin: 2px 0 0 0 !important;
  /* Optical alignment with text cap-height */
  width: 20px;
  height: 20px;
  border: 1.5px solid var(--mcb-border-default);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: all 0.2s ease;
  flex-shrink: 0;
  cursor: pointer; }

.mcb-consent-row input[type="checkbox"]::before {
  content: "";
  width: 10px;
  height: 10px;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  background-color: white;
  transform-origin: center;
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); }

.mcb-consent-row input[type="checkbox"]:checked {
  background-color: var(--mcb-green-main);
  border-color: var(--mcb-green-main); }

.mcb-consent-row input[type="checkbox"]:checked::before {
  transform: scale(1); }

.mcb-consent-row input[type="checkbox"]:focus-visible {
  box-shadow: 0 0 0 3px var(--mcb-focus-ring); }

.mcb-consent-row:hover input[type="checkbox"]:not(:checked) {
  border-color: var(--mcb-green-main); }

.mcb-consent-row-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1; }

.mcb-consent-row-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--mcb-text-primary);
  line-height: 20px;
  /* Aligns with 20px checkbox */
  display: block; }

.mcb-consent-row-text {
  font-size: 13px;
  color: var(--mcb-text-secondary);
  line-height: 1.4;
  display: block; }

/* ==========================================================================
   REGISTRATION: VERY LIGHT SEGMENTED CONTROL (CIVILITY)
   ========================================================================== */
.mcb-civility-segmented {
  display: flex;
  width: 100%;
  background: #fdfaf5;
  /* Very subtle off-white/beige */
  border: 1px solid var(--mcb-border-default);
  border-radius: var(--mcb-radius-interactive);
  overflow: hidden; }

.mcb-civility-segmented-option {
  flex: 1;
  position: relative;
  cursor: pointer;
  margin: 0 !important; }

.mcb-civility-segmented-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0; }

.mcb-civility-segmented-option span {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  font-size: 14px;
  font-weight: 500;
  color: var(--mcb-text-secondary);
  transition: all 0.2s ease;
  user-select: none;
  border-right: 1px solid var(--mcb-border-default); }

.mcb-civility-segmented-option:hover span {
  background: #f5f0e6; }

.mcb-civility-segmented-option:last-child span {
  border-right: none; }

.mcb-civility-segmented-option input[type="radio"]:checked + span,
.mcb-civility-segmented-option input[type="radio"]:checked:hover + span {
  background: #fff;
  color: var(--mcb-green-main);
  font-weight: 600;
  box-shadow: inset 0 -2px 0 var(--mcb-green-main); }

.mcb-civility-segmented-option input[type="radio"]:focus-visible + span {
  background: #fff;
  box-shadow: inset 0 0 0 2px var(--mcb-focus-ring); }

/* ==========================================================================
   GLOBAL OVERRIDES (Semantic UI)
   ========================================================================== */
.ui.popup {
  border-radius: 1rem !important; }

body.mcb-overlay-open {
  overflow: hidden; }

#cartContent {
  overflow: auto; }

#cartContent-mobile {
  overflow: auto; }

#cartContent-flottant {
  overflow: auto; }

.ui.inverted.menu .item {
  color: black; }

#basketContent {
  padding-top: 0;
  padding-bottom: 0; }

#cartContent {
  z-index: 9999; }

.cartItemLine {
  position: relative;
  line-height: 40px !important;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  border-bottom: none; }

.cartItemCell {
  line-height: 40px !important;
  border: none !important; }

.cartItemCell.header {
  font-size: 13px;
  font-weight: 600 !important; }

.cartItemCell.centered {
  text-align: center !important; }

.sylius-quantity.ui.form > input {
  width: 75px; }

#sylius-cart-items {
  border-collapse: collapse; }

#basketContent.mcb-cart-items-card {
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid #E6DFCB !important;
  border-radius: 16px !important;
  background: #FFFEFC !important;
  box-shadow: 0 8px 30px -24px rgba(31, 58, 45, 0.35) !important; }

#basketContent.mcb-cart-items-card > form {
  margin: 0; }

#basketContent.mcb-cart-items-card.loading::before,
#basketContent.mcb-cart-items-card.loading::after,
#basketContent.mcb-cart-items-card .ui.form.loading::before,
#basketContent.mcb-cart-items-card .ui.form.loading::after {
  display: none !important;
  content: none !important; }

#sylius-cart-items.mcb-cart-items {
  width: 100%;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: separate;
  border-spacing: 0;
  color: #2A4A36;
  font-family: Inter, sans-serif; }

#sylius-cart-items.mcb-cart-items thead,
#sylius-cart-items.mcb-cart-items tbody {
  display: block; }

#sylius-cart-items.mcb-cart-items thead tr,
#sylius-cart-items.mcb-cart-items .mcb-cart-item-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 118px 146px 120px;
  align-items: center;
  column-gap: 18px; }

#sylius-cart-items.mcb-cart-items thead tr {
  min-height: 48px;
  padding: 0 24px;
  border-bottom: 1px solid #EFE7D2; }

#sylius-cart-items.mcb-cart-items .cartItemCell.header {
  padding: 0 !important;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.14em;
  text-align: left !important;
  text-transform: uppercase; }

#sylius-cart-items.mcb-cart-items .mcb-cart-items__subtotal-header {
  text-align: right !important; }

#sylius-cart-items.mcb-cart-items .mcb-cart-item-row {
  min-height: 136px;
  padding: 20px 24px;
  border-top: 0;
  border-bottom: 1px solid #EFE7D2;
  line-height: 1.3 !important; }

#sylius-cart-items.mcb-cart-items .mcb-cart-item-row:last-child {
  border-bottom: 0; }

#sylius-cart-items.mcb-cart-items .cartItemCell {
  padding: 0 !important;
  line-height: 1.3 !important;
  vertical-align: middle; }

.mcb-cart-item-product {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 16px; }

.mcb-cart-item-product__media {
  display: block;
  width: 104px;
  height: 104px;
  flex: 0 0 104px;
  overflow: hidden;
  border: 1px solid #EFE7D2;
  border-radius: 12px;
  background: #FBF7EF; }

.mcb-cart-item-product__media .productImg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  object-fit: cover; }

.mcb-cart-item-product__media .productImg.productImg--fallback {
  object-fit: contain;
  padding: 18px;
  opacity: 0.72; }

.mcb-cart-item-product__content {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
  padding: 3px 0; }

.mcb-cart-item-product__name {
  color: #2A4A36;
  font-family: Manrope, Inter, sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none; }

.mcb-cart-item-product__name:hover,
.mcb-cart-item-product__name:focus-visible {
  color: #C28A3A;
  text-decoration: none; }

.mcb-cart-item-product__variant {
  margin-top: 5px;
  color: #5C5340;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35; }

.mcb-cart-item-product__variant span + span::before {
  content: " · "; }

.mcb-cart-item-product__unit-price {
  display: none; }

.mcb-cart-item-product__remove {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  margin-top: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #7A6A4A;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  transition: color 0.18s ease; }

.mcb-cart-item-product__remove:hover,
.mcb-cart-item-product__remove:focus-visible {
  color: #9E3D35;
  outline: none; }

.mcb-cart-item-cell--price,
.mcb-cart-item-cell--subtotal {
  color: #2A4A36;
  font-family: Manrope, Inter, sans-serif;
  font-size: 16px;
  font-weight: 600; }

.mcb-cart-item-cell--price {
  text-align: left !important; }

.mcb-cart-item-cell--subtotal {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  text-align: right !important; }

@keyframes mcb-cart-shimmer {
  0% {
    background-position: 120% 0; }
  100% {
    background-position: -120% 0; } }

.mcb-cart-shimmer,
.mcb-cart-item-row.is-updating .mcb-cart-item-cell--subtotal .sylius-total,
.mcb-cart-item-row.is-removing .mcb-cart-item-cell--subtotal .sylius-total,
.mcb-cart-summary-card.is-updating #sylius-cart-items-subtotal,
.mcb-cart-summary-card.is-updating #sylius-cart-promotion-total,
.mcb-cart-summary-card.is-updating #sylius-cart-shipping-total,
.mcb-cart-summary-card.is-updating #sylius-cart-shipping-unknow,
.mcb-cart-summary-card.is-updating #sylius-cart-grand-total,
.mcb-cart-summary-card.is-updating #sylius-cart-base-grand-total {
  display: inline-block;
  min-width: 74px;
  min-height: 1em;
  overflow: hidden;
  border-radius: 999px;
  background: linear-gradient(90deg, #EFE7D2 0%, #F8F3E8 44%, #E8DDC6 68%, #EFE7D2 100%);
  background-size: 220% 100%;
  color: transparent !important;
  animation: mcb-cart-shimmer 1.05s ease-in-out infinite; }

.mcb-cart-summary-card.is-updating #sylius-cart-grand-total {
  min-width: 118px;
  min-height: 30px; }

.mcb-cart-item-row.is-updating,
.mcb-cart-item-row.is-removing {
  transition: opacity 0.18s ease; }

.mcb-cart-item-row.is-removing {
  opacity: 0.68; }

.mcb-cart-item-row.is-updating .mcb-cart-quantity,
.mcb-cart-item-row.is-removing .mcb-cart-quantity {
  opacity: 0.72;
  cursor: wait; }

.mcb-cart-item-row.is-updating .mcb-cart-quantity__button,
.mcb-cart-item-row.is-removing .mcb-cart-quantity__button,
.mcb-cart-item-row.is-removing .mcb-cart-item-product__remove {
  cursor: wait; }

.mcb-cart-item-cell__label {
  display: none;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500; }

.mcb-cart-quantity {
  display: inline-grid !important;
  grid-template-columns: 34px 38px 34px !important;
  align-items: center !important;
  width: 106px !important;
  height: 36px !important;
  overflow: hidden !important;
  border: 1px solid #D8CDBA !important;
  border-radius: 999px !important;
  background: #FFFEFC !important;
  box-shadow: none !important; }

.mcb-cart-quantity__button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #536C57 !important;
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease; }

.mcb-cart-quantity__button:hover,
.mcb-cart-quantity__button:focus-visible {
  background: #F3F0EB;
  color: #2A4A36;
  outline: none; }

.mcb-cart-quantity .sylius-quantity.ui.form {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  width: 38px !important;
  height: 34px !important;
  min-height: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important; }

.sylius-quantity.ui.form > input.mcb-cart-quantity__input,
.mcb-cart-quantity .sylius-quantity.ui.form > input {
  position: absolute !important;
  inset: 0 !important;
  width: 38px !important;
  height: 34px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: transparent !important;
  font-family: Inter, sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 34px !important;
  text-align: center !important;
  box-shadow: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  -moz-appearance: textfield; }

.mcb-cart-quantity__value {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 38px;
  height: 34px;
  color: #2A4A36;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  pointer-events: none; }

.mcb-cart-quantity .sylius-quantity.ui.form > input::-webkit-outer-spin-button,
.mcb-cart-quantity .sylius-quantity.ui.form > input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none; }

.mcb-cart-items-actions__hidden-update {
  display: none !important; }

@media only screen and (max-width: 766px) {
  #basketContent.mcb-cart-items-card {
    border-radius: 14px !important; }
  #sylius-cart-items.mcb-cart-items thead {
    display: none !important; }
  #sylius-cart-items.mcb-cart-items .mcb-cart-item-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    min-height: 0;
    padding: 16px; }
  #sylius-cart-items.mcb-cart-items .cartItemCell {
    display: block !important;
    width: 100% !important; }
  .mcb-cart-item-product {
    align-items: flex-start;
    gap: 12px; }
  .mcb-cart-item-product__media {
    width: 86px;
    height: 86px;
    flex-basis: 86px;
    border-radius: 10px; }
  .mcb-cart-item-product__name {
    font-size: 15px; }
  .mcb-cart-item-product__variant {
    font-size: 12.5px; }
  .mcb-cart-item-product__unit-price {
    display: flex !important;
    align-items: baseline;
    gap: 4px;
    margin-top: 8px;
    color: #2A4A36;
    font-family: Manrope, Inter, sans-serif;
    line-height: 1.2; }
  .mcb-cart-item-product__unit-price span {
    font-size: 15.5px;
    font-weight: 700; }
  .mcb-cart-item-product__unit-price small {
    color: #7A6A4A;
    font-family: Inter, sans-serif;
    font-size: 11.5px;
    font-weight: 500; }
  .mcb-cart-item-product__remove {
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    margin-top: 8px; }
  #sylius-cart-items.mcb-cart-items .mcb-cart-item-row {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: end;
    row-gap: 12px;
    column-gap: 12px; }
  .mcb-cart-item-cell--product {
    grid-column: 1 / -1; }
  .mcb-cart-item-cell--price {
    display: none !important; }
  .mcb-cart-item-cell--price .sylius-unit-price,
  .mcb-cart-item-cell--price .sylius-regular-unit-price {
    display: none !important; }
  .mcb-cart-item-cell--quantity {
    grid-column: 1;
    justify-self: start; }
  .mcb-cart-item-cell--subtotal {
    grid-column: 2;
    justify-self: end;
    display: flex !important;
    align-items: center;
    justify-content: flex-end; }
  .mcb-cart-item-cell--price::before,
  .mcb-cart-item-cell--quantity::before {
    display: none;
    content: none; }
  .mcb-cart-item-cell__label {
    display: none; }
  .mcb-cart-item-cell--subtotal .sylius-total {
    color: #2A4A36;
    font-family: Manrope, Inter, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.1; }
  .mcb-cart-quantity {
    grid-template-columns: 44px minmax(40px, 1fr) 44px !important;
    width: auto !important;
    min-width: 132px !important;
    height: 44px !important; }
  .mcb-cart-quantity__button {
    min-width: 44px;
    min-height: 44px;
    width: 44px !important;
    height: 44px !important; }
  .mcb-cart-quantity .sylius-quantity.ui.form,
  .sylius-quantity.ui.form > input.mcb-cart-quantity__input,
  .mcb-cart-quantity .sylius-quantity.ui.form > input,
  .mcb-cart-quantity__value {
    width: 100% !important;
    height: 44px !important;
    line-height: 44px !important; } }

#basketHeader {
  margin-top: 40px;
  text-transform: uppercase;
  font-family: 'MontserratED';
  font-weight: 500;
  font-size: 22px; }

#recapHeader {
  margin-top: 40px !important;
  text-transform: uppercase !important;
  font-family: 'MontserratED';
  font-weight: 500;
  font-size: 22px; }

.align-right {
  text-align: right !important; }

.province-container.field {
  display: none !important; }

.callImg {
  width: 100px !important;
  margin-left: calc(50% - 50px) !important;
  margin: 0 0 0.6em; }

#total_band_mobile .delivery-info-message {
  display: none !important; }

#total_band_mobile.mobile-action-bar {
  display: none !important; }

@media (max-width: 991px) {
  #total_band_mobile.mobile-action-bar {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: var(--mcb-z-sticky, 30);
    margin-inline: auto;
    max-width: var(--mcb-shell-max, 480px);
    background: color-mix(in srgb, var(--mcb-surface-panel) 95%, transparent);
    border-top: 1px solid var(--mcb-border-subtle);
    padding: 0.75rem 1rem;
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
    display: flex !important;
    align-items: center;
    gap: 12px;
    box-shadow: 0 -14px 34px rgba(31, 58, 45, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px); } }
  @media (max-width: 991px) and (min-width: 992px) {
    #total_band_mobile.mobile-action-bar {
      position: static;
      max-width: none; } }

@media (max-width: 991px) {
  #total_band_mobile .mobile-action-bar__info {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 3px;
    min-width: 88px; }
  #total_band_mobile .mobile-action-bar__info::before {
    content: "Total";
    color: #7A6A4A;
    font-family: Inter, sans-serif;
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1;
    opacity: 0.82; }
  #total_band_mobile .mobile-action-bar__cta {
    flex: 1 1 auto;
    min-width: 0; }
  #total_band_mobile .mobile-action-bar__checkout {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #2A4A36 !important;
    color: #F4ECD8 !important;
    font-family: Inter, sans-serif !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-transform: none !important;
    box-shadow: none !important; }
  #total_band_mobile .mobile-action-bar__checkout > i.icon {
    display: none !important; }
  #total_band_mobile .mobile-action-bar__checkout > svg {
    flex: 0 0 auto; }
  #total_band_mobile .mobile-action-bar__checkout.is-disabled,
  #total_band_mobile .mobile-action-bar__checkout[aria-disabled="true"] {
    background: #7A837A !important;
    color: rgba(244, 236, 216, 0.82) !important;
    cursor: wait !important;
    pointer-events: none;
    opacity: 0.82; } }

.mcb-cart-page {
  padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  @media (min-width: 992px) {
    .mcb-cart-page {
      padding-bottom: 0; } }

.mcb-cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 64px 24px;
  text-align: center; }

.mcb-cart-empty__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 999px;
  background: rgba(42, 74, 54, 0.08);
  color: #2A4A36; }

.mcb-cart-empty__title {
  margin: 20px 0 0 !important;
  color: #2A4A36 !important;
  font-family: Manrope, system-ui, sans-serif !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  text-transform: none !important; }

.mcb-cart-empty__text {
  margin: 8px 0 0;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.4; }

.mcb-cart-empty__cta {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 24px;
  padding: 12px 28px;
  border-radius: 999px;
  background: #2A4A36;
  color: #F4ECD8 !important;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 0.2s ease; }

.mcb-cart-empty__cta:hover,
.mcb-cart-empty__cta:focus-visible {
  background: #355A45;
  color: #F4ECD8 !important;
  outline: none; }

#btn_cta_mobile {
  margin-left: 0; }

#total_mobile {
  color: #2A4A36;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  align-self: center;
  text-align: left; }

#nedac-checkout-button {
  padding-bottom: 12px;
  padding-top: 12px;
  margin: 0 0 0.6em;
  font-size: 1rem;
  font-family: 'MontserratED';
  color: white;
  font-weight: 600;
  text-transform: uppercase;
  border-radius: 5px; }

.delivery-info-message {
  display: flex !important;
  align-items: flex-start;
  gap: 15px; }

.delivery-info-message img {
  width: 40px;
  height: auto;
  flex-shrink: 0;
  filter: invert(19%) sepia(54%) saturate(2421%) hue-rotate(345deg) brightness(90%) contrast(92%); }

.delivery-info-message .content {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }

.delivery-info-message .content .header {
  font-size: 1.143rem;
  margin-bottom: 5px; }

.delivery-info-message .content p {
  font-size: 0.9rem;
  line-height: 1.5; }

#sylius-cart-promotion-total {
  color: #008937;
  font-weight: bold; }

#sylius-cart-promotion-total,
.sylius-cart-promotion-label {
  color: #008937;
  font-weight: bold; }

/* Livraison offerte : mise en avant marque (vert), cohérente avec la remise. */
.mcb-cart-summary-card__free-shipping {
  color: #008937;
  font-weight: 700; }

#basketContent > form > .ui.divider {
  display: none !important; }

.mcb-cart-header {
  margin: 24px 0 20px;
  color: #2A4A36; }

.mcb-cart-header__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 10px; }

.mcb-cart-return {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 0;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  transition: color 0.18s ease, transform 0.18s ease; }

.mcb-cart-return:hover,
.mcb-cart-return:focus-visible {
  color: #2A4A36;
  outline: none; }

.mcb-cart-return:hover svg,
.mcb-cart-return:focus-visible svg {
  transform: translateX(-2px); }

.mcb-cart-return svg {
  display: block;
  flex: 0 0 auto;
  transition: transform 0.18s ease; }

.mcb-cart-return__label-full {
  display: inline; }

.mcb-cart-return__label-short {
  display: none; }

.mcb-cart-header__main {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 11px; }

.mcb-cart-header__copy {
  min-width: 0; }

.mcb-cart-header__title {
  margin: 0 !important;
  color: #2A4A36 !important;
  font-family: Manrope, system-ui, sans-serif !important;
  font-size: clamp(29px, 2.95vw, 38px) !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  text-transform: none !important; }

.mcb-cart-header__title span {
  color: #C28A3A; }

.mcb-cart-steps {
  flex: 0 0 auto;
  transform: translateY(1px); }

.mcb-cart-steps__list {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none; }

.mcb-cart-steps__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 11px;
  line-height: 1.2;
  white-space: nowrap; }

.mcb-cart-steps__item:not(:last-child)::after {
  content: "";
  width: 12px;
  height: 12px;
  margin-left: 2px;
  background: currentColor;
  opacity: 0.45;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat; }

.mcb-cart-steps__number {
  width: 24px;
  height: 24px;
  min-width: 24px;
  padding: 0;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: #EFE7D2;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-align: center; }

.mcb-cart-steps__label {
  font-weight: 400; }

.mcb-cart-steps__item.is-active {
  color: #2A4A36; }

.mcb-cart-steps__item.is-active .mcb-cart-steps__number {
  background: #2A4A36;
  color: #F4ECD8; }

.mcb-cart-steps__item.is-active .mcb-cart-steps__label {
  font-weight: 600; }

.mcb-cart-delivery {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  margin-bottom: 16px;
  padding: 12px 16px;
  border: 1px solid #E6DFCB;
  border-radius: 14px;
  background: #FFFEFC;
  box-shadow: 0 8px 24px -22px rgba(31, 58, 45, 0.34); }

.mcb-cart-delivery__icon {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  flex: 0 0 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(42, 74, 54, 0.08);
  color: #2A4A36; }

.mcb-cart-delivery__icon-svg {
  display: block; }

.mcb-cart-delivery__icon-svg--package-check {
  width: 15px !important;
  height: 15px !important; }

.mcb-cart-delivery__icon-svg--check {
  width: 14px !important;
  height: 14px !important; }

.mcb-cart-delivery--unlocked .mcb-cart-delivery__icon {
  width: 24px !important;
  height: 24px !important;
  flex-basis: 24px !important;
  background: #2A4A36;
  color: #F4ECD8; }

.mcb-cart-delivery__content {
  min-width: 0;
  flex: 1 1 auto; }

.mcb-cart-delivery__text {
  margin: 0;
  color: #2A4A36;
  font-family: Inter, sans-serif;
  font-size: 13px;
  line-height: 1.35; }

.mcb-cart-delivery__text strong {
  font-weight: 700; }

.mcb-cart-delivery__note {
  margin: 3px 0 0;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 11.5px;
  line-height: 1.3; }

.mcb-cart-delivery__bar {
  height: 5px;
  margin-top: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #EFE7D2; }

.mcb-cart-delivery__bar-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2A4A36 0%, #C28A3A 100%);
  transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1); }

.mcb-cart-summary-card {
  position: sticky;
  top: 132px;
  z-index: 3;
  max-height: calc(100vh - 156px);
  overflow-y: auto;
  padding: 24px;
  border: 1px solid #E6DFCB;
  border-radius: 16px;
  background: #FFFEFC;
  box-shadow: 0 8px 30px -20px rgba(31, 58, 45, 0.4);
  color: #2A4A36; }

.mcb-cart-summary-card__eyebrow {
  margin-bottom: 4px;
  color: #C28A3A;
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.18em;
  text-transform: uppercase; }

.mcb-cart-summary-card #recapHeader,
.mcb-cart-summary-card__title {
  margin: 0 0 20px !important;
  color: #263D30 !important;
  font-family: Manrope, system-ui, sans-serif !important;
  font-size: 26px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  text-transform: none !important; }

.mcb-cart-summary-card__lines {
  display: grid;
  gap: 12px;
  margin: 0;
  color: #5C5340;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.4; }

.mcb-cart-summary-card__line,
.mcb-cart-summary-card__total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px; }

.mcb-cart-summary-card__line dt,
.mcb-cart-summary-card__line dd {
  margin: 0; }

.mcb-cart-summary-card__line dd {
  color: #263D30;
  font-weight: 500;
  text-align: right; }

.mcb-cart-summary-card__line--discount dt,
.mcb-cart-summary-card__line--discount dd {
  color: #2A7B4E; }

.mcb-cart-summary-card__promo {
  margin-top: 14px; }

.mcb-cart-summary-card__promo-trigger {
  /* Affordance « coupon » : pill discrète mais repérable (bordure pointillée +
       fond doré très léger + icône ticket), sans prendre toute la largeur. */
  width: fit-content;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  border: 0;
  background: none;
  color: #2A4A36;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  list-style: none;
  transition: border-color 0.15s ease, background-color 0.15s ease; }

.mcb-cart-summary-card__promo-icon {
  flex: 0 0 auto;
  color: #C28A3A; }

.mcb-cart-summary-card__promo-trigger::-webkit-details-marker {
  display: none; }

.mcb-cart-summary-card__promo-trigger:focus-visible {
  outline: 2px solid rgba(42, 74, 54, 0.22);
  outline-offset: 4px;
  border-radius: 6px; }

.mcb-cart-summary-card__promo-chevron {
  color: currentColor;
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1); }

.mcb-cart-summary-card__promo-trigger:hover,
.mcb-cart-summary-card__promo-trigger:focus-visible {
  color: #355A45; }

.mcb-cart-summary-card__promo-title {
  text-decoration: underline;
  text-decoration-color: rgba(42, 74, 54, 0.35);
  text-underline-offset: 3px; }

.mcb-cart-summary-card__promo-trigger:hover .mcb-cart-summary-card__promo-title,
.mcb-cart-summary-card__promo-trigger:focus-visible .mcb-cart-summary-card__promo-title {
  text-decoration-color: #2A4A36; }

.mcb-cart-summary-card__promo-trigger:hover span,
.mcb-cart-summary-card__promo-trigger:focus-visible span {
  text-decoration: none;
  text-underline-offset: 4px; }

.mcb-cart-summary-card__promo-trigger:hover .mcb-cart-summary-card__promo-chevron,
.mcb-cart-summary-card__promo-trigger:focus-visible .mcb-cart-summary-card__promo-chevron {
  transform: translateX(2px); }

.mcb-cart-summary-card__promo[open] .mcb-cart-summary-card__promo-chevron {
  transform: rotate(90deg); }

.mcb-cart-summary-card__promo-panel {
  padding-top: 10px; }

.mcb-cart-summary-card__promo-applied {
  margin-bottom: 9px;
  padding: 9px 10px;
  border-radius: 10px;
  background: rgba(42, 123, 78, 0.08);
  color: #2A7B4E;
  font-family: Inter, sans-serif;
  font-size: 12px;
  line-height: 1.35; }

.mcb-cart-summary-card__promo-form {
  margin: 0; }

.mcb-cart-summary-card__promo-label {
  display: block;
  margin-bottom: 7px;
  color: #5C5340;
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.25; }

.mcb-cart-summary-card__promo-row {
  display: flex;
  gap: 8px; }

.mcb-cart-summary-card__promo-input {
  min-width: 0;
  height: 42px;
  flex: 1 1 auto;
  padding: 0 13px;
  border: 1px solid #E6DFCB;
  border-radius: 10px;
  background: #FFFEFC;
  color: #2A4A36;
  font-family: Inter, sans-serif;
  font-size: 13px;
  line-height: 1.2;
  box-shadow: none; }

.mcb-cart-summary-card__promo-input::placeholder {
  color: #9B907A; }

.mcb-cart-summary-card__promo-input:focus {
  border-color: rgba(194, 138, 58, 0.65);
  outline: none;
  box-shadow: 0 0 0 3px rgba(194, 138, 58, 0.12); }

.mcb-cart-summary-card__promo-input--invalid {
  border-color: rgba(158, 61, 53, 0.78);
  background: #FFFBF9;
  color: #7F2F2A; }

.mcb-cart-summary-card__promo-input--invalid:focus {
  border-color: #9E3D35;
  box-shadow: 0 0 0 3px rgba(158, 61, 53, 0.12); }

.mcb-cart-summary-card__promo-submit {
  height: 42px;
  flex: 0 0 auto;
  min-width: 104px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: #2A4A36;
  color: #F4ECD8;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  transition: background-color 0.18s ease, transform 0.18s ease; }

.mcb-cart-summary-card__promo-submit:hover,
.mcb-cart-summary-card__promo-submit:focus-visible {
  background: #355A45;
  outline: none; }

.mcb-cart-summary-card__promo-submit:active {
  transform: translateY(1px); }

.mcb-cart-summary-card__promo-error {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(158, 61, 53, 0.22);
  border-radius: 10px;
  background: rgba(158, 61, 53, 0.07);
  color: #9E3D35;
  font-family: Inter, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.35; }

.mcb-cart-summary-card__promo-error .ui.red.pointing.label.sylius-validation-error {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important; }

.mcb-cart-summary-card__promo-error .ui.red.pointing.label.sylius-validation-error::before,
.mcb-cart-summary-card__promo-error .ui.red.pointing.label.sylius-validation-error::after {
  display: none !important; }

.mcb-cart-summary-card__promo-error ul {
  margin: 0;
  padding-left: 16px; }

.mcb-cart-summary-card__divider {
  height: 1px;
  margin: 20px 0;
  background: #EFE7D2; }

.mcb-cart-summary-card__total-row {
  align-items: flex-end;
  margin-bottom: 4px; }

.mcb-cart-summary-card__total-label {
  color: #2A4A36;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.2; }

.mcb-cart-summary-card__total {
  color: #2A4A36;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 1;
  text-align: right; }

.mcb-cart-summary-card__tax-note,
.mcb-cart-summary-card__base-total {
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 12px;
  line-height: 1.4;
  text-align: right; }

.mcb-cart-summary-card__base-total {
  margin-top: 8px; }

.mcb-cart-summary-card__wallet {
  margin-top: 16px; }

.mcb-cart-summary-card__wallet-link {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border: 1px solid rgba(42, 74, 54, 0.18);
  border-radius: 999px;
  background: #FBF7EF;
  color: #2A4A36;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease; }

.mcb-cart-summary-card__wallet-link:hover,
.mcb-cart-summary-card__wallet-link:focus-visible {
  border-color: rgba(42, 74, 54, 0.32);
  background: #F3EFE5;
  color: #2A4A36;
  outline: none; }

.mcb-cart-summary-card__notice {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
  padding: 12px;
  border: 1px solid rgba(158, 61, 53, 0.18);
  border-radius: 12px;
  background: rgba(158, 61, 53, 0.06);
  color: #5C5340;
  font-family: Inter, sans-serif;
  font-size: 12px;
  line-height: 1.4; }

.mcb-cart-summary-card__notice--info {
  border-color: rgba(42, 74, 54, 0.18);
  background: rgba(42, 74, 54, 0.045);
  color: #4E5B4A; }

.mcb-cart-summary-card__notice img {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  object-fit: contain;
  filter: invert(25%) sepia(16%) saturate(1371%) hue-rotate(321deg) brightness(92%) contrast(90%); }

.mcb-cart-summary-card__notice--info img {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
  filter: invert(24%) sepia(18%) saturate(925%) hue-rotate(89deg) brightness(90%) contrast(92%); }

.mcb-cart-summary-card__notice strong {
  display: block;
  margin-bottom: 2px;
  color: #9E3D35;
  font-size: 13px; }

.mcb-cart-summary-card__notice--info strong {
  color: #2A4A36; }

.mcb-cart-summary-card__notice p {
  margin: 0; }

.mcb-cart-summary-card__checkout {
  width: 100%;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  padding: 14px 18px;
  border: 0;
  border-radius: 999px;
  background: #2A4A36;
  color: #F4ECD8 !important;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  box-shadow: none;
  transition: background-color 0.2s ease; }

.mcb-cart-summary-card #nedac-checkout-button {
  width: 100% !important;
  min-height: 52px !important;
  margin: 20px 0 0 !important;
  padding: 14px 18px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #2A4A36 !important;
  color: #F4ECD8 !important;
  font-family: Inter, sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-transform: none !important; }

.mcb-cart-summary-card__checkout:hover,
.mcb-cart-summary-card__checkout:focus-visible {
  background: #355A45;
  color: #F4ECD8 !important;
  outline: none; }

.mcb-cart-summary-card__checkout.is-disabled,
.mcb-cart-summary-card__checkout[aria-disabled="true"],
.mcb-cart-summary-card #nedac-checkout-button.is-disabled,
.mcb-cart-summary-card #nedac-checkout-button[aria-disabled="true"] {
  background: #627367 !important;
  color: #F4ECD8 !important;
  cursor: wait !important;
  pointer-events: none;
  opacity: 1;
  box-shadow: none !important;
  filter: none !important; }

.mcb-cart-summary-card__checkout svg {
  flex: 0 0 auto; }

.mcb-cart-summary-card__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 12px;
  line-height: 1.3;
  text-align: center; }

.mcb-cart-summary-card__secure svg {
  flex: 0 0 auto; }

.mcb-cart-toast-region {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 10070;
  width: calc(100vw - 32px);
  max-width: 420px;
  pointer-events: none; }

.mcb-cart-toast {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 14px 14px 16px;
  border: 1px solid rgba(42, 74, 54, 0.2);
  border-radius: 14px;
  background: #2A4A36;
  color: #F4ECD8;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  box-shadow: 0 18px 42px rgba(30, 24, 18, 0.16);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: auto; }

.mcb-cart-toast.is-visible {
  opacity: 1;
  transform: translateY(0); }

.mcb-cart-toast--error {
  border-color: rgba(158, 61, 53, 0.22);
  background: #9E3D35; }

.mcb-cart-toast__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: currentColor;
  cursor: pointer;
  opacity: 0.82; }

.mcb-cart-toast__close:hover,
.mcb-cart-toast__close:focus-visible {
  background: rgba(244, 236, 216, 0.12);
  opacity: 1;
  outline: none; }

@media only screen and (max-width: 991px) {
  .mcb-cart-summary-card {
    position: relative;
    top: auto;
    z-index: auto;
    max-height: none;
    overflow: visible; }
  .mcb-cart-header__topline {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px; }
  .mcb-cart-header__main {
    align-items: flex-start;
    flex-direction: column; }
  .mcb-cart-steps {
    width: 100%;
    overflow-x: auto;
    padding-bottom: 2px; } }

@media only screen and (max-width: 767px) {
  body:has(.mcb-cart-page-marker) .mcb-header__topbar {
    display: none !important; }
  .mcb-cart-header {
    margin-top: 16px;
    margin-bottom: 16px; }
  .mcb-cart-header__topline {
    align-items: center;
    flex-direction: row;
    gap: 10px;
    margin-bottom: 12px;
    overflow: hidden; }
  .mcb-cart-header__main {
    margin-bottom: 10px; }
  .mcb-cart-header__title {
    font-size: 30px !important; }
  .mcb-cart-return {
    gap: 5px;
    flex: 0 0 auto;
    font-size: 12.5px; }
  .mcb-cart-return__label-full {
    display: none; }
  .mcb-cart-return__label-short {
    display: inline; }
  .mcb-cart-steps {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 0;
    transform: none;
    scrollbar-width: none; }
  .mcb-cart-steps::-webkit-scrollbar {
    display: none; }
  .mcb-cart-steps__list {
    justify-content: flex-end;
    gap: 5px; }
  .mcb-cart-steps__item {
    gap: 5px;
    font-size: 11.5px; }
  .mcb-cart-steps__item:not(:last-child)::after {
    width: 10px;
    height: 10px;
    margin-left: 0; }
  .mcb-cart-steps__number {
    width: 22px;
    height: 22px;
    min-width: 22px;
    font-size: 10.5px; }
  .mcb-cart-delivery {
    align-items: center;
    gap: 11px;
    padding: 12px;
    border-radius: 14px; }
  .mcb-cart-delivery__icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px; }
  .mcb-cart-delivery--unlocked .mcb-cart-delivery__icon {
    width: 24px !important;
    height: 24px !important;
    flex-basis: 24px !important; } }

.complete-shopping-button {
  font-family: 'MontserratED', sans-serif !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  border-radius: 5px !important;
  font-size: 0.857rem !important;
  padding: 10px 16px !important;
  color: #ffffff !important;
  border: none !important;
  background-color: #386994 !important;
  transition: all 0.3s ease-in-out !important;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) !important;
  margin-bottom: 10px !important; }

.complete-shopping-button:hover {
  background-color: #4a7dab !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); }

.ui.button[name*="promotionCoupon"] {
  background-color: #2a9d8f !important;
  color: #ffffff !important;
  transition: background-color 0.2s ease-in-out !important;
  font-family: 'MontserratED';
  font-weight: 600;
  font-size: 12px; }

.ui.button[name*="promotionCoupon"]:hover {
  background-color: #268a7e !important; }

.delivery-info-message img[src*="icone_livraison_express_SVG.svg"] {
  filter: invert(17%) sepia(88%) saturate(747%) hue-rotate(340deg) brightness(97%) contrast(93%); }

.sylius-product-name {
  font-size: 1.1rem; }

#cartContent {
  max-width: 360px;
  padding: 0.5rem 1.25rem 1rem 1.25rem;
  z-index: 9999;
  overflow: auto; }
  #cartContent .ui.list {
    padding: 0; }
    #cartContent .ui.list .item {
      padding: 0.5rem 0; }
  #cartContent .cartWidgetLine {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    padding: 0.8rem 0; }
  #cartContent .imgCartWidget .imgMiniature {
    width: 55px;
    height: 55px;
    object-fit: cover;
    border-radius: 4px;
    display: block; }
  #cartContent .cart-item-main-content {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-grow: 1;
    min-width: 0; }
  #cartContent .cart-item-details {
    flex-grow: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem; }
  #cartContent .name p {
    font-size: 1.01rem;
    font-weight: 600;
    font-family: 'MontserratED';
    color: #253053;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  #cartContent .detail {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: #818181; }
  #cartContent .sylius-cart-remove-button {
    flex-shrink: 0;
    margin: 0; }
  #cartContent .ui.divider {
    margin: 0.5rem 0;
    margin-bottom: 0; }
  #cartContent #popupBasketSubtotal {
    text-align: center !important;
    padding: 0.9rem;
    font-size: 1.2rem;
    font-family: 'MontserratED';
    font-weight: 500;
    color: #18273d; }
    #cartContent #popupBasketSubtotal .sub-total-amount {
      font-weight: bold;
      color: #386994;
      margin-left: 0.5em; }
  #cartContent #popupBasketActions .cagnotte-actions {
    margin-bottom: 0.75rem; }
  #cartContent #popupBasketActions .main-actions {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem; }
  #cartContent #popupBasketActions .button {
    font-family: "MontserratED", sans-serif !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    font-size: 0.95rem !important;
    padding: 10px 12px;
    border-radius: 5px;
    margin: 0 !important;
    flex-grow: 1; }

/* ==========================================================================
   CART DRAWER – V2 "Clean Terroir Counter"
   ========================================================================== */
/* Scroll-lock du body : désormais fourni par la classe d'état globale
   partagée `body.mcb-overlay-open` (_responsive-patterns.scss), posée/retirée
   par le gestionnaire générique mcb-overlay.js. Plus de `body.cart-drawer-open`. */
/* Conteneur d'overlay : présent en permanence (plus de gate `is-rendered`),
   non interactif tant que fermé. L'état ouvert est porté par `.is-open`
   (ajouté sur #cart-drawer par mcb-overlay.js — contrat data-mcb-overlay-*). */
.cart-drawer {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 12000;
  pointer-events: none;
  width: 100%;
  max-width: 100%;
  overflow: hidden; }

.cart-drawer.is-open {
  pointer-events: auto; }

/* Texte du panneau (hérité par le contenu, mobile comme desktop). */
.cart-drawer__panel {
  color: var(--mcb-text-primary);
  font-family: var(--mcb-font-inter); }

/* ------------------------------------------------------------------
   Desktop (>= lg) : panneau latéral droit historique CONSERVÉ (R8).
   Sous lg, la présentation Drawer_Bas provient des classes génériques
   .mcb-overlay__panel / .mcb-drawer--bottom / .mcb-overlay__backdrop
   (stylées dans _header-nav.scss via respond-below('lg')). On borne donc
   ici le comportement latéral à respond-to('lg') pour éviter tout conflit.
   ------------------------------------------------------------------ */
@media (min-width: 992px) {
  .cart-drawer__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(31, 42, 34, 0.4);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: visible;
    transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    will-change: opacity; }
  .cart-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    max-width: 420px;
    height: 100%;
    overflow: hidden;
    background: var(--mcb-n-25);
    box-shadow: 0 0 60px rgba(31, 42, 34, 0.25);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform;
    pointer-events: auto;
    outline: none; }
  .cart-drawer.is-open .cart-drawer__backdrop {
    opacity: 1;
    pointer-events: auto; }
  .cart-drawer.is-open .cart-drawer__panel {
    transform: translateX(0); } }

/* ------------------------------------------------------------------
   Mobile (< lg) : Drawer_Bas. Le glissement/scroll/backdrop/safe-area
   proviennent des classes génériques (mcb-drawer-bottom 85vh, R15.1/R15.2).
   Ici : seulement les ajustements propres au mini-panier (safe-area du pied,
   cibles tactiles des actions — R15.3).
   ------------------------------------------------------------------ */
@media (max-width: 991px) {
  /* Pied d'actions : sous-total + « Voir mon panier » / « Commander »,
       avec intégration de la Zone_Sure (R15.3). */
  .cart-drawer__footer {
    padding-bottom: max(20px, env(safe-area-inset-bottom)); }
  /* Actions du pied : chaque bouton respecte la cible tactile mini (R15.3).
       (.mcb-button pose déjà >= 44px ; garde explicite pour le mini-panier.) */
  .cart-drawer__actions .mcb-button {
    min-width: 44px;
    min-height: 44px; } }

.cart-drawer__handle {
  display: none; }

/* ── Header ── */
.cart-drawer__header {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 20px 20px 14px;
  background: var(--mcb-n-25);
  border-bottom: 1px solid var(--mcb-border-default); }

.cart-drawer__header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px; }

.cart-drawer__header-copy {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0; }

.cart-drawer__title {
  margin: 0;
  font-family: var(--mcb-font-primary);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.1;
  color: var(--mcb-green-main); }

.cart-drawer__count {
  margin: 0;
  font-family: var(--mcb-font-inter);
  font-size: 13px;
  font-weight: 400;
  color: var(--mcb-text-secondary); }

.cart-drawer__close.mcb-overlay__close {
  /* Cible tactile alignée sur les autres croix de drawer (>= 44px, R5).
       Croix cerclée bien visible (même traitement que .mcb-nav-drawer__close
       du menu burger) : bordure + fond de panneau, pour ne pas se perdre. */
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid var(--mcb-border-default);
  padding: 0;
  background: var(--mcb-surface-panel, #FBF7EF);
  color: var(--mcb-green-main);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
  flex-shrink: 0; }

.cart-drawer__close:hover {
  background: var(--mcb-n-50, #EFE7D2);
  border-color: var(--mcb-green-main); }

/* ── Delivery advantage bar (in header) ── */
.cart-drawer__advantage {
  padding: 0;
  margin: 0;
  border: none; }

.cart-drawer__advantage-text {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 6px;
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  line-height: 1.4;
  color: var(--mcb-text-secondary); }

.cart-drawer__advantage-amount {
  font-weight: 600;
  color: var(--mcb-green-main); }

.cart-drawer__advantage-bar-track {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: var(--mcb-border-default);
  overflow: hidden;
  margin: 0; }

.cart-drawer__advantage-bar-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--mcb-green-main), var(--mcb-gold-main));
  transition: width 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  min-width: 0; }

.cart-drawer__advantage-bar-fill--shimmer {
  position: relative;
  overflow: hidden; }

.cart-drawer__advantage-bar-fill--shimmer::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.4) 50%, transparent 100%);
  animation: advantage-shimmer 2s ease-in-out 2; }

@keyframes advantage-shimmer {
  0% {
    left: -100%; }
  100% {
    left: 200%; } }

.cart-drawer__advantage--unlocked .cart-drawer__advantage-text {
  color: var(--mcb-green-main);
  font-weight: 500; }

.cart-drawer__advantage-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-right: 2px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  color: var(--mcb-n-0);
  background: var(--mcb-green-main);
  border-radius: 50%;
  vertical-align: middle; }

.cart-drawer__advantage--unknown {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px; }

.cart-drawer__advantage-link {
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  color: var(--mcb-text-secondary);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s ease; }

.cart-drawer__advantage-link:hover {
  color: var(--mcb-green-main);
  text-decoration: underline; }

/* ── Viewport & Content ── */
.cart-drawer__viewport {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%; }

.cart-drawer__content {
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--mcb-n-25); }

.cart-drawer__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 16px 20px; }

/* ── Items (flat layout, no cards) ── */
.cart-drawer__items {
  display: flex;
  flex-direction: column; }

.cart-drawer__item {
  position: relative;
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid var(--mcb-border-default);
  background: transparent;
  opacity: 1; }

.cart-drawer__item:last-child {
  border-bottom: none; }

.cart-drawer__item.is-loading {
  opacity: 0.7; }

.cart-drawer__item.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(251, 247, 239, 0.4);
  pointer-events: none; }

/* ── Thumb ── */
.cart-drawer__thumb {
  display: block;
  position: relative;
  flex: 0 0 80px;
  width: 80px;
  height: 80px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--mcb-n-0);
  text-decoration: none !important; }

.cart-drawer__thumb-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, rgba(246, 240, 231, 0.98), rgba(236, 229, 217, 0.92)); }

.cart-drawer__thumb-fallback::before {
  content: "";
  width: 26px;
  height: 20px;
  border: 1.4px solid rgba(134, 121, 103, 0.28);
  border-radius: 7px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3); }

.cart-drawer__thumb.is-placeholder .cart-drawer__thumb-fallback::after {
  content: "";
  position: absolute;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 1.4px solid rgba(134, 121, 103, 0.22);
  background: rgba(255, 255, 255, 0.18); }

.cart-drawer__thumb-image {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.cart-drawer__thumb.is-fallback {
  background: var(--mcb-n-25); }

/* ── Item copy ── */
.cart-drawer__item-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px; }

.cart-drawer__item-top {
  display: flex;
  align-items: flex-start;
  gap: 8px; }

.cart-drawer__item-copy {
  min-width: 0;
  flex: 1 1 auto; }

.cart-drawer__item-name {
  display: block;
  margin: 0;
  text-decoration: none !important;
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--mcb-green-main);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.15s ease; }

.cart-drawer__item-name:hover {
  color: var(--mcb-green-hover); }

.cart-drawer__item-variant {
  margin: 2px 0 0;
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  color: var(--mcb-text-secondary); }

/* ── Pricing & controls ── */
.cart-drawer__item-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px; }

.cart-drawer__item-pricing {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px; }

.cart-drawer__item-price {
  margin: 0;
  font-family: var(--mcb-font-inter);
  font-size: 16px;
  font-weight: 700;
  color: var(--mcb-text-primary);
  letter-spacing: -0.01em; }

.cart-drawer__item-unit-price {
  font-family: var(--mcb-font-inter);
  font-size: 11px;
  color: var(--mcb-text-secondary); }

.cart-drawer__item-controls {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 0 0 auto;
  min-width: 92px; }

.cart-drawer__stepper {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1.5px solid var(--mcb-border-default);
  background: var(--mcb-n-0);
  height: 32px;
  padding: 0 4px; }

.cart-drawer__stepper-btn {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: none;
  background: transparent;
  color: var(--mcb-green-main);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease; }

.cart-drawer__stepper-btn:hover:not([disabled]) {
  background: var(--mcb-n-25);
  color: var(--mcb-gold-main); }

.cart-drawer__stepper-btn[disabled] {
  opacity: 0.38;
  cursor: default; }

.cart-drawer__stepper-value {
  position: relative;
  min-height: 18px;
  min-width: 24px;
  text-align: center;
  font-family: var(--mcb-font-inter);
  font-size: 13px;
  font-weight: 600;
  color: var(--mcb-green-main);
  line-height: 18px; }

.cart-drawer__item.is-loading .cart-drawer__stepper-value {
  color: transparent; }

.cart-drawer__item.is-loading .cart-drawer__stepper-value::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  margin-left: -6px;
  border-radius: 50%;
  border: 1.8px solid rgba(42, 74, 54, 0.2);
  border-top-color: var(--mcb-green-main);
  animation: mcb-loader-spin 0.68s linear infinite; }

.cart-drawer__item-loading {
  display: none;
  font-family: var(--mcb-font-inter);
  font-size: 10px;
  color: var(--mcb-text-secondary);
  white-space: nowrap;
  line-height: 1.2; }

.cart-drawer__item.is-loading .cart-drawer__item-loading,
.cart-drawer__item.is-error .cart-drawer__item-loading {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  position: relative;
  z-index: 1; }

.cart-drawer__item.is-error .cart-drawer__item-loading {
  color: var(--mcb-red-error, #d32f2f); }

.cart-drawer__item.is-loading .cart-drawer__item-loading::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.6px solid rgba(42, 74, 54, 0.2);
  border-top-color: var(--mcb-green-main);
  animation: mcb-loader-spin 0.68s linear infinite; }

/* ── Empty state ── */
.cart-drawer__empty,
.cart-drawer__error {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 20px; }

.cart-drawer__empty-title,
.cart-drawer__error-title {
  margin: 0;
  font-family: var(--mcb-font-primary);
  font-size: 20px;
  font-weight: 600;
  color: var(--mcb-text-primary); }

.cart-drawer__empty-text {
  margin: 8px 0 24px;
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  line-height: 1.5;
  color: var(--mcb-text-secondary); }

.cart-drawer__empty-cta,
.cart-drawer__error-retry {
  min-height: 44px;
  padding: 0 24px;
  border-radius: var(--mcb-radius-chip);
  border: none;
  background: var(--mcb-green-main);
  color: var(--mcb-n-0);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color 0.15s ease; }

.cart-drawer__empty-cta:hover,
.cart-drawer__error-retry:hover {
  color: var(--mcb-n-0) !important;
  background: var(--mcb-green-hover) !important;
  text-decoration: none !important; }

/* ── Footer ── */
.cart-drawer__footer {
  position: sticky;
  bottom: 0;
  z-index: 2;
  padding: 16px 20px 20px;
  border-top: 1px solid var(--mcb-border-default);
  background: var(--mcb-n-0); }

/* Lignes de ventilation (sous-total régulier / réduction) au-dessus du net. */
.cart-drawer__summary-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 4px;
  font-family: var(--mcb-font-inter);
  font-size: 13px;
  color: var(--mcb-text-secondary); }

.cart-drawer__summary-line--discount .cart-drawer__summary-value,
.cart-drawer__summary-line--discount .cart-drawer__summary-label {
  color: #008937;
  font-weight: 700; }

.cart-drawer__subtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 4px; }

.cart-drawer__subtotal-label {
  font-family: var(--mcb-font-inter);
  font-size: 13px;
  color: var(--mcb-text-secondary); }

.cart-drawer__subtotal-value {
  font-family: var(--mcb-font-primary);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  color: var(--mcb-green-main); }

.cart-drawer__shipping-note {
  margin: 0 0 12px;
  font-family: var(--mcb-font-inter);
  font-size: 11.5px;
  color: var(--mcb-text-secondary); }

.cart-drawer__actions {
  display: flex;
  flex-direction: column;
  gap: 10px; }

.cart-drawer__actions--row {
  flex-direction: row;
  gap: 8px; }

.cart-drawer__actions--row .mcb-button:first-child {
  flex: 1; }

.cart-drawer__actions--row .mcb-button:last-child {
  flex: 1.4; }

.cart-drawer__trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
  font-family: var(--mcb-font-inter);
  font-size: 11px;
  color: var(--mcb-text-secondary); }

/* Sur mobile, le drawer panier peut vite paraître surchargé : on masque la
   ligne « Paiement sécurisé… » (l'info reste présente au checkout). */
@media (max-width: 767px) {
  .cart-drawer__trust {
    display: none; } }

/* ── Skeletons ── */
.cart-drawer__skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px; }

.cart-drawer__skeleton-item {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  padding: 12px 0; }

.cart-drawer__skeleton-thumb,
.cart-drawer__skeleton-line {
  position: relative;
  overflow: hidden;
  background: var(--mcb-border-default); }

.cart-drawer__skeleton-thumb::after,
.cart-drawer__skeleton-line::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
  animation: cartDrawerShimmer 1.1s ease-in-out infinite; }

.cart-drawer__skeleton-thumb {
  width: 64px;
  height: 64px;
  border-radius: var(--mcb-radius-chip); }

.cart-drawer__skeleton-lines {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px; }

.cart-drawer__skeleton-line {
  height: 11px;
  border-radius: 999px; }

.cart-drawer__skeleton-line--title {
  width: 72%;
  height: 14px; }

.cart-drawer__skeleton-line--meta {
  width: 34%; }

.cart-drawer__skeleton-line--price {
  width: 26%; }

@keyframes cartDrawerShimmer {
  100% {
    transform: translateX(100%); } }

@keyframes mcb-loader-spin {
  to {
    transform: rotate(360deg); } }

/* ── Custom Scrollbar ── */
.cart-drawer__body::-webkit-scrollbar {
  width: 5px; }

.cart-drawer__body::-webkit-scrollbar-track {
  background: transparent; }

.cart-drawer__body::-webkit-scrollbar-thumb {
  background-color: var(--mcb-border-default);
  border-radius: 999px; }

/* ── Responsive: Mobile bottom sheet ── */
@media only screen and (max-width: 766px) {
  .cart-drawer__backdrop {
    background: rgba(31, 42, 34, 0.45); }
  .cart-drawer__panel {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: 90vh;
    height: auto;
    border-radius: 20px 20px 0 0;
    transform: translateY(100%);
    box-shadow: 0 -18px 44px rgba(31, 42, 34, 0.18); }
  .cart-drawer.is-open .cart-drawer__panel {
    transform: translateY(0); }
  .cart-drawer__handle {
    display: block;
    width: 48px;
    height: 4px;
    border-radius: 999px;
    background: var(--mcb-border-default);
    margin: 8px auto 0;
    flex: 0 0 auto; }
  .cart-drawer__header {
    padding-top: 12px; }
  .cart-drawer__body {
    padding: 12px 16px; }
  .cart-drawer__footer {
    padding: 14px 16px calc(16px + env(safe-area-inset-bottom, 0px)); }
  .cart-drawer__actions--row {
    flex-direction: column; }
  .cart-drawer__item {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 12px; }
  .cart-drawer__thumb {
    width: 64px;
    height: 64px; } }

/* ==========================================================================
   DELIVERY ADVANTAGE MODULE (now inside viewport content)
   ========================================================================== */
.cart-drawer__advantage-wrapper {
  padding: 12px 20px;
  border-bottom: 1px solid var(--mcb-border-default);
  background: var(--mcb-n-25); }

.cart-drawer__advantage {
  padding: 0;
  margin: 0;
  border: none; }

.cart-drawer__advantage-icon {
  flex-shrink: 0;
  color: var(--mcb-green-main); }

.cart-drawer__advantage-text {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 6px;
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  line-height: 1.4;
  color: var(--mcb-text-secondary); }

.cart-drawer__advantage-amount {
  font-weight: 600;
  color: var(--mcb-green-main); }

.cart-drawer__advantage-bar-track {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: var(--mcb-border-default);
  overflow: hidden;
  margin: 0; }

.cart-drawer__advantage-bar-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--mcb-green-main), var(--mcb-gold-main));
  transition: width 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  min-width: 0; }

.cart-drawer__advantage-bar-fill--shimmer {
  position: relative;
  overflow: hidden; }

.cart-drawer__advantage-bar-fill--shimmer::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.4) 50%, transparent 100%);
  animation: advantage-shimmer 2s ease-in-out 2; }

@keyframes advantage-shimmer {
  0% {
    left: -100%; }
  100% {
    left: 200%; } }

/* ── Unlocked state ── */
.cart-drawer__advantage--unlocked .cart-drawer__advantage-text {
  color: var(--mcb-green-main);
  font-weight: 500; }

.cart-drawer__advantage-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-right: 2px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  color: var(--mcb-n-0);
  background: var(--mcb-green-main);
  border-radius: 50%;
  vertical-align: middle; }

/* ── Unknown state ── */
.cart-drawer__advantage--unknown {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px; }

.cart-drawer__advantage-link {
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  color: var(--mcb-text-secondary);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s ease; }

.cart-drawer__advantage-link:hover {
  color: var(--mcb-green-main);
  text-decoration: underline; }

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .cart-drawer__advantage-bar-fill--shimmer::after {
    animation: none; }
  .cart-drawer__advantage-bar-fill {
    transition: none; }
  .cart-drawer__panel {
    transition-duration: 0.01ms; }
  .cart-drawer__backdrop {
    transition-duration: 0.01ms; } }

/* ==========================================================================
   Code promo — ÉTAPE CONFIRMATION (réutilise la pill du panier
   .mcb-cart-summary-card__promo-*). Ici : intégration dans la sidebar +
   action « retirer le code ».
   ========================================================================== */
.mcb-checkout-coupon {
  margin-top: 16px; }

.mcb-checkout-coupon__remove {
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--mcb-text-secondary, #5C5340);
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer; }

.mcb-checkout-coupon__remove:hover,
.mcb-checkout-coupon__remove:focus-visible {
  color: #9E3D35;
  outline: none; }

.mcb-auth-page.login.segment,
.login.segment {
  width: 100%;
  max-width: 460px;
  margin: 56px auto 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important; }

.mcb-auth-page.login.segment .ui.segment,
.login.segment .ui.segment,
.mcb-auth-redirect.ui.segment {
  margin-top: 0 !important;
  padding: 28px 28px 24px !important;
  border: 1px solid var(--mcb-border-default) !important;
  border-radius: 20px !important;
  background: linear-gradient(180deg, var(--mcb-surface-panel) 0%, var(--mcb-surface-panel-soft) 100%) !important;
  box-shadow: var(--mcb-shadow-elevated) !important; }

.mcb-auth-page .ui.form,
.mcb-auth-page .ui.form .field {
  text-align: left; }

.mcb-auth-page .ui.form .field {
  margin-bottom: 14px; }

.login-title {
  width: 100%;
  margin: 0 0 12px;
  padding: 0;
  color: var(--mcb-text-primary);
  font-family: "MontserratED", sans-serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.08;
  text-align: center;
  text-transform: none;
  letter-spacing: -0.02em; }

.mcb-auth-subtitle {
  margin: -2px 0 18px;
  color: var(--mcb-text-secondary);
  font-family: "MontserratED", sans-serif;
  font-size: 14px;
  line-height: 1.45;
  text-align: center; }

.divider {
  width: 100%;
  margin: 28px 0 20px;
  border-bottom: 1px solid var(--mcb-border-default);
  line-height: 0.1em;
  text-align: center; }

.divider span {
  padding: 0 12px;
  background: var(--mcb-surface-panel);
  color: var(--mcb-text-muted);
  font-family: "MontserratED", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.mcb-auth-submit {
  width: 100%;
  margin: 12px 0 0 !important; }

.mcb-auth-submit--secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 0;
  text-decoration: none !important; }

.mcb-auth-link {
  display: inline-flex;
  margin-top: 12px;
  color: var(--mcb-a-700);
  font-family: "MontserratED", sans-serif;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none; }

.mcb-auth-link:hover,
.mcb-auth-link:focus-visible {
  color: var(--mcb-a-600);
  text-decoration: underline;
  outline: none; }

.mcb-auth-page .ui.toggle.checkbox {
  margin-top: 4px; }

.mcb-auth-page .ui.toggle.checkbox label {
  color: var(--mcb-text-secondary); }

.mcb-auth-redirect {
  width: 100%;
  max-width: 460px;
  margin: 56px auto 0 !important;
  text-align: center; }

.mcb-auth-redirect p {
  margin: 0 0 18px;
  color: var(--mcb-text-secondary);
  font-family: "MontserratED", sans-serif;
  line-height: 1.5; }

@media only screen and (max-width: 767px) {
  .ui.three.column.centered.stackable.grid {
    margin-top: 32px; }
  .mcb-auth-page.login.segment,
  .login.segment,
  .mcb-auth-redirect.ui.segment {
    width: calc(100vw - 32px) !important;
    max-width: 460px;
    margin-top: 28px !important; }
  .mcb-auth-page.login.segment .ui.segment,
  .login.segment .ui.segment,
  .mcb-auth-redirect.ui.segment {
    padding: 22px 20px 20px !important; } }

body, .pusher {
  overflow: visible !important; }

.checkout-layout {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 1rem;
  min-height: 100vh; }
  @media (min-width: 768px) {
    .checkout-layout {
      padding: 1.5rem; } }
  @media (min-width: 992px) {
    .checkout-layout {
      flex-direction: row;
      align-items: flex-start;
      gap: 3rem;
      padding: 2rem;
      max-width: 1200px;
      margin: 0 auto; } }
  .checkout-layout__main {
    flex: 1;
    min-width: 0;
    order: 1; }
  .checkout-layout__sidebar {
    width: 100%;
    order: 2; }
    @media (min-width: 992px) {
      .checkout-layout__sidebar {
        width: 380px;
        flex-shrink: 0;
        align-self: flex-start;
        position: sticky;
        top: 2rem;
        max-height: calc(100vh - 2rem); } }

.checkout-card {
  background-color: #ffffff;
  border: 1px solid #e2ddd6;
  border-radius: 14px;
  padding: 2rem;
  box-shadow: 0 8px 24px rgba(30, 24, 18, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease; }
  .checkout-card:hover {
    box-shadow: 0 14px 32px rgba(30, 24, 18, 0.11);
    border-color: #dad3ca; }

.sidebar-title {
  font-family: "MontserratED", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 1rem 0;
  color: #2b251f; }

.checkout-section-title {
  font-family: "MontserratED", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 1rem 0;
  color: #2b251f; }

.checkout-header {
  background-color: #ffffff;
  border-bottom: 1px solid #e2ddd6;
  padding: 1.5rem 2rem; }
  .checkout-header__container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    gap: 1rem;
    flex-wrap: wrap; }
    @media (min-width: 768px) {
      .checkout-header__container {
        flex-wrap: nowrap; } }
  .checkout-header__logo a {
    display: flex;
    align-items: center; }
    .checkout-header__logo a img {
      max-height: 45px;
      width: auto; }
      @media (min-width: 768px) {
        .checkout-header__logo a img {
          max-height: 50px; } }
  .checkout-header__actions {
    display: flex;
    align-items: center;
    gap: 1rem; }
    @media (max-width: 767px) {
      .checkout-header__actions {
        display: none !important; } }
    @media (min-width: 768px) {
      .checkout-header__actions {
        gap: 2rem; } }
  .checkout-header .checkout-header__phone .icon,
  .checkout-header .checkout-header__secure-badge .icon {
    line-height: 1 !important;
    vertical-align: middle; }
  .checkout-header__secure-badge {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #5f574f;
    font-weight: 500;
    font-size: 0.875rem; }
    .checkout-header__secure-badge .icon {
      color: #2A4A36;
      line-height: 1; }
  .checkout-header__phone {
    display: none; }
    @media (min-width: 768px) {
      .checkout-header__phone {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-size: 0.875rem;
        color: #5f574f; }
        .checkout-header__phone .icon {
          color: #2A4A36; }
        .checkout-header__phone a {
          color: #2b251f;
          font-weight: 500;
          text-decoration: none; }
          .checkout-header__phone a:hover {
            color: #2A4A36; } }
  @media (max-width: 767px) {
    .checkout-header {
      padding: 22px 1rem 18px; }
      .checkout-header__container {
        justify-content: center;
        text-align: center;
        gap: 18px; }
      .checkout-header__logo {
        display: flex;
        justify-content: center;
        width: 100%; }
        .checkout-header__logo a {
          justify-content: center; }
        .checkout-header__logo img {
          width: 82vw;
          max-width: 280px; }
      .checkout-header__actions {
        justify-content: center;
        width: 100%;
        gap: 12px 20px; } }

.checkout-footer {
  border-top: 1px solid #e2ddd6;
  background: #ffffff;
  color: #5f574f;
  font-family: "MontserratED", sans-serif; }

.checkout-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 2rem; }

.checkout-footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px; }
  .checkout-footer__links a {
    color: #5f574f;
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none; }
    .checkout-footer__links a:hover, .checkout-footer__links a:focus-visible {
      color: #2A4A36;
      text-decoration: underline; }

.checkout-footer__secure {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #5f574f;
  font-size: 0.875rem;
  font-weight: 500;
  white-space: nowrap; }
  .checkout-footer__secure .icon {
    color: #2A4A36;
    margin: 0; }

@media (max-width: 767px) {
  .checkout-footer__inner {
    flex-direction: column;
    align-items: center;
    padding: 22px 1rem 26px;
    text-align: center; }
  .checkout-footer__links {
    justify-content: center;
    gap: 10px 18px; }
  .checkout-footer__secure {
    white-space: normal; } }

.checkout-return-link {
  margin-top: 2rem; }

.checkout-address-block {
  margin-bottom: 2.5rem; }
  .checkout-address-block__title {
    font-family: "MontserratED", sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    padding-bottom: 0.75rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid #e2ddd6;
    display: flex;
    align-items: center;
    gap: 0.75rem; }
    .checkout-address-block__title .icon {
      color: #2A4A36;
      line-height: 1; }

.address-summary {
  position: relative;
  border: 1px solid #e2ddd6;
  border-radius: 14px;
  padding: 1.5rem;
  background-color: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.3s ease; }
  .address-summary:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); }
  .address-summary .address-selection-view {
    padding-top: 2rem; }
    .address-summary .address-selection-view .address-selection-header {
      margin-bottom: 2rem !important; }
  .address-summary .address-cards-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem; }
    @media (min-width: 768px) {
      .address-summary .address-cards-grid {
        grid-template-columns: repeat(2, 1fr); } }
  .address-summary__content {
    color: #5f574f;
    line-height: 1.6;
    padding-right: 100px; }
    @media (max-width: 479px) {
      .address-summary__content {
        padding-right: 0; } }
    .address-summary__content p {
      margin: 0; }
      .address-summary__content p + p {
        margin-top: 0.25rem; }
    .address-summary__content strong {
      color: #2b251f;
      display: block;
      margin-bottom: 0.5rem;
      font-size: 1rem; }
  .address-summary__edit-btn {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    background-color: transparent;
    color: #2A4A36;
    border: 1px solid #e2ddd6;
    padding: 0.5rem 1rem;
    font-size: 1.1rem;
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap; }
    .address-summary__edit-btn .icon {
      margin: 0;
      font-size: 0.9em; }
    .address-summary__edit-btn:hover {
      background-color: #EEF3EC;
      border-color: #2A4A36; }
    .address-summary__edit-btn:active {
      transform: scale(0.98); }
    @media (max-width: 479px) {
      .address-summary__edit-btn {
        position: static;
        width: 100%;
        justify-content: center;
        margin-top: 1.5rem; } }
  .address-summary__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(42, 74, 54, 0.1);
    color: #2A4A36;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    margin-top: 1rem; }
    .address-summary__badge .icon {
      margin: 0;
      font-size: 0.9em; }

.address-form__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e2ddd6; }
  @media (max-width: 767px) {
    .address-form__header {
      flex-direction: column;
      align-items: flex-start;
      gap: 1rem; } }

.address-form__title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.75rem; }
  .address-form__title .icon {
    color: #2A4A36; }

.address-form__actions {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e2ddd6; }
  @media (max-width: 767px) {
    .address-form__actions {
      flex-direction: column-reverse; }
      .address-form__actions .btn {
        width: 100%; } }

.address-selection {
  max-width: 800px;
  margin: 0 auto;
  padding: 2rem 1rem; }
  .address-selection__header {
    margin-bottom: 2.5rem; }
    .address-selection__header h1 {
      font-family: "MontserratED", sans-serif;
      font-size: 1.5rem;
      font-weight: 700;
      color: #2b251f;
      margin: 0 0 1rem 0;
      display: flex;
      align-items: center;
      gap: 1rem; }
      .address-selection__header h1 .icon {
        color: #2A4A36; }
    .address-selection__header p {
      color: #5f574f;
      margin: 0; }
  .address-selection__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem; }
    @media (min-width: 768px) {
      .address-selection__grid {
        grid-template-columns: repeat(2, 1fr); } }
  .address-selection__actions {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid #e2ddd6;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem; }
    @media (max-width: 767px) {
      .address-selection__actions {
        flex-direction: column; }
        .address-selection__actions .btn {
          width: 100%; } }

.address-card {
  position: relative;
  border: 2px solid #e2ddd6;
  border-radius: 14px;
  padding: 1.5rem;
  background-color: #ffffff;
  transition: all 0.3s ease; }
  .address-card:hover {
    border-color: rgba(42, 74, 54, 0.3);
    box-shadow: 0 4px 12px rgba(42, 74, 54, 0.1); }
  .address-card.is-selected {
    border-color: #2A4A36;
    background: rgba(42, 74, 54, 0.03);
    box-shadow: 0 4px 16px rgba(42, 74, 54, 0.15); }
    .address-card.is-selected .address-card__check {
      opacity: 1; }
    .address-card.is-selected .address-card__select-btn {
      background: #2A4A36;
      color: white;
      border-color: #2A4A36; }
      .address-card.is-selected .address-card__select-btn:hover {
        background: #355A45; }
  .address-card__check {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 28px;
    height: 28px;
    background: #2A4A36;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1rem;
    opacity: 0;
    transition: opacity 0.3s ease; }
    .address-card__check .icon {
      margin: 0 !important;
      padding: 0 !important;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center; }
  .address-card__content {
    padding-right: 40px; }
    .address-card__content strong {
      display: block;
      color: #2b251f;
      font-size: 1rem;
      font-weight: 500;
      margin-bottom: 0.5rem; }
    .address-card__content p {
      color: #5f574f;
      font-size: 1rem;
      line-height: 1.5;
      margin: 0; }
      .address-card__content p + p {
        margin-top: 0.25rem; }
  .address-card__actions {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #e2ddd6;
    display: flex;
    gap: 1rem;
    justify-content: space-between; }
  .address-card__select-btn {
    flex: 1;
    background: white;
    color: #2A4A36;
    border: 1.5px solid #2A4A36;
    padding: 0.6rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem; }
    .address-card__select-btn .icon {
      margin: 0;
      font-size: 0.9em; }
    .address-card__select-btn:hover {
      background: rgba(42, 74, 54, 0.1); }
    .address-card__select-btn:active {
      transform: scale(0.98); }
  .address-card__edit-btn {
    flex-shrink: 0;
    background: transparent;
    border: 1.5px solid #e2ddd6;
    color: #5f574f;
    padding: 0.6rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap; }
    .address-card__edit-btn .icon {
      margin: 0;
      font-size: 0.9em; }
    .address-card__edit-btn:hover {
      background: rgba(95, 87, 79, 0.05);
      border-color: #5f574f;
      color: #2b251f; }
    .address-card__edit-btn:active {
      transform: scale(0.98); }
  .address-card--add {
    border-style: dashed;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 180px;
    cursor: pointer;
    transition: all 0.3s ease; }
    .address-card--add .icon {
      font-size: 2.5rem;
      color: #2A4A36;
      margin: 0; }
    .address-card--add span {
      color: #5f574f;
      font-weight: 500; }
    .address-card--add:hover {
      border-color: #2A4A36;
      background: rgba(42, 74, 54, 0.03); }
      .address-card--add:hover span {
        color: #2A4A36; }

.address-card--add {
  border-style: dashed;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  cursor: pointer;
  background: #fbf9f5; }
  .address-card--add:hover {
    background: rgba(42, 74, 54, 0.05);
    border-color: #2A4A36; }
  .address-card--add .icon {
    font-size: 2.5rem;
    color: #2A4A36;
    margin-bottom: 1rem; }
  .address-card--add span {
    font-size: 1rem;
    font-weight: 500;
    color: #2A4A36; }

.btn-loader {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2.5px solid transparent;
  border-top-color: currentColor;
  border-radius: 50%;
  animation: btn-spin 0.6s linear infinite; }

@keyframes btn-spin {
  to {
    transform: rotate(360deg); } }

.billing-address-toggle {
  margin-top: 2rem;
  margin-bottom: 2rem;
  padding: 1.5rem;
  background: var(--mcb-surface-panel, #FFFFFF);
  border-radius: 14px;
  border: 1px solid #e2ddd6; }
  .billing-address-toggle label {
    display: flex;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 500;
    color: #2b251f; }
    .billing-address-toggle label input[type="checkbox"] {
      width: 20px;
      height: 20px;
      cursor: pointer; }

.is-hidden {
  display: none; }

#checkout-container .ui.form.loading:after,
#checkout-container .ui.segment.loading:after,
#checkout-container .ui.form.loading:before,
#checkout-container .ui.segment.loading:before {
  display: none !important; }

.ui.form.loading,
.ui.segment.loading {
  position: relative !important; }

.ui.form input:focus,
.ui.form select:focus,
.ui.form textarea:focus {
  outline: none;
  border-color: #2A4A36 !important;
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.1) !important; }

.checkout-navigation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2rem;
  border-top: 1px solid #e2ddd6;
  padding-top: 1.5rem; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.8em 1.75em;
  font-family: "MontserratED", sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.12s ease;
  min-height: 48px; }
  .btn .icon {
    margin: 0 !important;
    line-height: 1; }
  @media (max-width: 767px) {
    .btn {
      width: 100%;
      padding: 1rem;
      font-size: 1rem; } }

.btn--primary {
  background-color: #2A4A36;
  color: #ffffff;
  border-color: #2A4A36;
  box-shadow: 0 10px 22px rgba(35, 104, 67, 0.16); }
  .btn--primary:hover:not(:disabled) {
    background-color: #355A45;
    border-color: #355A45;
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(35, 104, 67, 0.18); }
  .btn--primary:active:not(:disabled) {
    transform: none; }
  .btn--primary:disabled {
    background-color: #e5e0d8;
    border-color: #e5e0d8;
    color: #8b8379;
    cursor: not-allowed;
    box-shadow: none;
    opacity: 1; }
  .btn--primary.loading {
    position: relative;
    color: transparent;
    pointer-events: none; }
    .btn--primary.loading::after {
      content: "";
      position: absolute;
      width: 16px;
      height: 16px;
      top: 50%;
      left: 50%;
      margin: -8px 0 0 -8px;
      border: 2px solid white;
      border-radius: 50%;
      border-top-color: transparent;
      animation: spinner 0.6s linear infinite; }

.btn--secondary {
  background-color: #ffffff;
  color: #2b251f;
  border-color: #e2ddd6; }
  .btn--secondary:hover:not(:disabled) {
    background-color: #fbf9f5;
    border-color: #d5cec4;
    color: #2b251f; }
  .btn--secondary:disabled {
    color: #8b8379;
    cursor: not-allowed;
    opacity: 0.65; }

.btn--secondary-progressive {
  background-color: #ffffff;
  color: #2b251f;
  border-color: #e2ddd6;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 700; }
  .btn--secondary-progressive:hover:not(:disabled) {
    background-color: #2A4A36;
    border-color: #2A4A36;
    color: #ffffff; }
  .btn--secondary-progressive:active:not(:disabled) {
    background-color: #355A45;
    border-color: #355A45;
    color: #ffffff;
    transform: none; }
  .btn--secondary-progressive:disabled {
    color: #8b8379;
    cursor: not-allowed;
    opacity: 0.65; }

@keyframes spinner {
  to {
    transform: rotate(360deg); } }

.checkout-message {
  border-radius: 8px;
  padding: 1rem 1.5rem;
  margin-bottom: 2rem;
  display: flex;
  align-items: center;
  gap: 1rem; }
  .checkout-message__icon {
    flex-shrink: 0; }
    .checkout-message__icon svg {
      display: block;
      width: 40px;
      height: 40px; }
  .checkout-message__content .header {
    font-weight: 500;
    font-size: 1.125rem;
    margin-bottom: 0.25rem; }
  .checkout-message__content p {
    margin: 0;
    opacity: 0.9; }
  .checkout-message--negative {
    background-color: #ffebee;
    border: 1px solid #f8d7da;
    color: #c52626; }
    .checkout-message--negative svg path {
      fill: currentColor; }

.order-summary__tax-note {
  margin-top: 4px;
  color: #8b8379;
  font-size: 0.875rem;
  text-align: right; }

.order-summary__free-shipping {
  color: #2A7B4E;
  font-weight: 700; }

/* Ligne remise : le montant en vert marque + gras (cohérent avec le panier),
   le libellé reste neutre. */
#sylius-checkout-promotion-total {
  color: #008937;
  font-weight: 700; }

/* État « busy » du récap pendant l'application / mise à jour / retrait d'un code
   promo (soumission full-page PRG) : récap grisé + spinner central, jusqu'au
   rechargement. Évite le double-clic et donne un feedback immédiat. */
.order-summary.is-updating {
  position: relative;
  pointer-events: none; }

.order-summary.is-updating .order-summary__content {
  opacity: 0.5;
  transition: opacity 0.15s ease; }

.order-summary.is-updating::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border: 3px solid rgba(42, 74, 54, 0.22);
  border-top-color: #2A4A36;
  border-radius: 50%;
  animation: mcb-coupon-spin 0.7s linear infinite;
  z-index: 2; }

@keyframes mcb-coupon-spin {
  to {
    transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .order-summary.is-updating::after {
    animation-duration: 1.6s; } }

.order-summary {
  background: #ffffff;
  border: 1px solid #e2ddd6;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(30, 24, 18, 0.08);
  padding: 0;
  margin-bottom: 2rem; }
  .order-summary__content {
    padding: 2rem; }
    @media (max-width: 767px) {
      .order-summary__content {
        padding: 1.5rem; } }
  .order-summary__products-toggle-row {
    margin-bottom: 1rem; }
  .order-summary__products-toggle {
    background: none;
    border: none;
    width: 100%;
    padding: 1rem;
    color: #2b251f;
    font-size: 1rem;
    font-family: "MontserratED", sans-serif;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 8px;
    gap: 1rem; }
    .order-summary__products-toggle:hover {
      background: rgba(42, 74, 54, 0.05); }
    .order-summary__products-toggle .order-summary__products-label {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      flex: 1;
      min-width: 0; }
      .order-summary__products-toggle .order-summary__products-label .products-count {
        color: #8b8379;
        font-weight: 400;
        white-space: nowrap; }
    .order-summary__products-toggle .order-summary__show-detail {
      color: #2A4A36;
      font-size: 0.875rem;
      font-weight: 500;
      margin-right: 0.5rem;
      white-space: nowrap;
      flex-shrink: 0; }
    .order-summary__products-toggle .order-summary__chevron {
      transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      color: #2A4A36;
      flex-shrink: 0;
      transform: rotate(0deg);
      display: block; }
      .order-summary__products-toggle .order-summary__chevron.is-rotated {
        transform: rotate(180deg); }
  .order-summary__products-list {
    padding: 0;
    background: transparent;
    overflow: hidden; }
    .order-summary__products-list.is-hidden {
      display: none !important; }
    .order-summary__products-list.is-visible {
      display: block !important; }
    .order-summary__products-list.is-visible {
      background: transparent;
      border: 1px solid #e2ddd6;
      border-radius: 8px;
      padding: 1rem;
      margin-bottom: 1rem; }
    .order-summary__products-list.animating {
      animation: expandDown 250ms ease-out; }

@keyframes expandDown {
  0% {
    opacity: 0;
    max-height: 0;
    margin-top: -1rem; }
  100% {
    opacity: 1;
    max-height: 500px;
    margin-top: 0; } }
  .order-summary__product-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    gap: 1rem;
    border-bottom: 1px solid rgba(226, 221, 214, 0.7); }
    .order-summary__product-line:last-child {
      border-bottom: none; }
    .order-summary__product-line .product-name {
      flex: 2;
      font-size: 0.875rem;
      color: #5f574f;
      line-height: 1.4; }
    .order-summary__product-line .product-qty {
      flex: 0 0 auto;
      min-width: 50px;
      text-align: center;
      color: #8b8379;
      font-size: 0.875rem; }
    .order-summary__product-line .product-price {
      flex: 0 0 auto;
      min-width: 80px;
      text-align: right;
      font-weight: 500;
      color: #2b251f;
      font-size: 1rem; }
    .order-summary__product-line--with-thumb {
      display: grid;
      grid-template-columns: 44px minmax(0, 1fr) auto auto;
      justify-content: stretch; }
      .order-summary__product-line--with-thumb .order-summary__product-thumb {
        width: 44px;
        height: 44px;
        border: 1px solid rgba(226, 221, 214, 0.85);
        border-radius: 8px;
        background: #ffffff;
        overflow: hidden; }
      .order-summary__product-line--with-thumb .order-summary__product-thumb img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover; }
      .order-summary__product-line--with-thumb .product-name {
        flex: none;
        min-width: 0;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden; }
      .order-summary__product-line--with-thumb .product-qty {
        min-width: 26px;
        font-size: 0.75rem; }
      .order-summary__product-line--with-thumb .product-price {
        min-width: 76px;
        font-size: 0.875rem; }
  .order-summary__line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid #f8f9fa;
    font-size: 1rem; }
    .order-summary__line .label {
      color: #5f574f;
      font-size: 0.875rem; }
    .order-summary__line .value {
      font-weight: 500;
      color: #2b251f; }
    .order-summary__line--promotion .label,
    .order-summary__line--promotion .value {
      color: #2A4A36;
      font-weight: 500; }
  .order-summary__free-shipping {
    color: #2A4A36;
    font-weight: 700; }
  .order-summary__grand-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 0;
    margin-top: 1rem;
    border-top: 2px solid #e2ddd6;
    font-size: 1.25rem; }
    .order-summary__grand-total .label {
      font-weight: 700;
      color: #2b251f; }
    .order-summary__grand-total .value {
      font-weight: 700;
      color: #2A4A36;
      font-size: 1.4em;
      letter-spacing: -0.02em; }
  .order-summary__cta-wrapper {
    margin-top: 1rem; }
  .order-summary__legal {
    margin: 1rem 0 0;
    color: #8b8379;
    font-size: 11px;
    line-height: 1.45;
    text-align: center; }
    .order-summary__legal a {
      color: #2A4A36;
      font-weight: 700;
      text-decoration: none; }
      .order-summary__legal a:hover, .order-summary__legal a:focus-visible {
        text-decoration: underline; }
  .order-summary--final {
    margin-bottom: 0; }
  .order-summary .btn--full-width {
    width: 100%;
    justify-content: center;
    font-size: 1rem;
    padding: 1rem 1.5rem;
    font-weight: 700;
    box-shadow: 0 8px 24px rgba(30, 24, 18, 0.08); }
    .order-summary .btn--full-width:hover:not(:disabled) {
      box-shadow: 0 14px 32px rgba(30, 24, 18, 0.11); }
    .order-summary .btn--full-width .icon {
      margin-left: 0.5rem !important; }
  .order-summary--final .btn--full-width .icon {
    margin: 0 0.5rem 0 0 !important; }
  @media (max-width: 767px) {
    .order-summary__product-line {
      font-size: 0.875rem;
      gap: 0.5rem; }
      .order-summary__product-line .product-name {
        flex: 3; }
      .order-summary__product-line .product-qty {
        min-width: 40px;
        font-size: 0.75rem; }
      .order-summary__product-line .product-price {
        min-width: 70px;
        font-size: 0.875rem; }
      .order-summary__product-line--with-thumb {
        grid-template-columns: 44px minmax(0, 1fr) auto;
        gap: 0.5rem 1rem;
        align-items: center; }
        .order-summary__product-line--with-thumb .product-name {
          grid-column: 2;
          flex: none; }
        .order-summary__product-line--with-thumb .product-qty {
          grid-column: 3;
          min-width: 26px; }
        .order-summary__product-line--with-thumb .product-price {
          grid-column: 2 / 4;
          justify-self: end;
          min-width: auto; }
    .order-summary__grand-total {
      padding: 1rem 0; }
      .order-summary__grand-total .value {
        font-size: 1.3em; }
    .order-summary__cta-wrapper {
      position: fixed;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 10050;
      margin-top: 0;
      padding: 14px 16px;
      padding-bottom: max(14px, env(safe-area-inset-bottom));
      border-top: 1px solid #e2ddd6;
      background: rgba(255, 254, 252, 0.97);
      box-shadow: 0 -14px 34px rgba(31, 58, 45, 0.12);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px); }
    .order-summary .btn--full-width {
      min-height: 48px;
      padding: 0 1rem;
      font-size: 0.875rem;
      box-shadow: none; } }

@media (max-width: 767px) {
  .checkout-layout,
  .checkout-complete {
    padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); } }

.support-block {
  text-align: center;
  padding-top: 1.5rem;
  margin-top: 1.5rem;
  border-top: 1px solid #e2ddd6; }
  .support-block__icon .icon {
    font-size: 1.8rem;
    color: #2A4A36; }
  .support-block__phone {
    display: block;
    font-size: 1.25rem;
    font-weight: 500;
    color: #2b251f;
    margin: 0.5rem 0;
    text-decoration: none; }
  .support-block__text {
    font-size: 0.875rem;
    color: #5f574f; }

.checkout-stepper {
  width: calc(100% - 24px);
  max-width: 620px;
  margin: 28px auto 2rem auto; }
  .checkout-stepper__list {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative; }
  .checkout-stepper__step {
    display: grid;
    justify-items: center;
    font-family: "MontserratED", sans-serif;
    font-weight: 500;
    font-size: 13px;
    text-align: center;
    flex: 1;
    position: relative;
    color: #8b8379; }
    .checkout-stepper__step:not(:first-child)::before {
      content: '';
      position: absolute;
      top: 16px;
      right: 50%;
      width: 100%;
      height: 2px;
      background-color: #e2ddd6;
      transition: background-color 0.3s ease;
      z-index: 1;
      pointer-events: none; }
  .checkout-stepper__link {
    display: grid;
    justify-items: center;
    gap: 8px;
    position: relative;
    color: inherit;
    line-height: 1.25;
    text-decoration: none;
    z-index: 2; }
  .checkout-stepper__circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 2px solid #e2ddd6;
    border-radius: 50%;
    background: #FCFBF8;
    color: #8b8379;
    font-size: 15px;
    font-weight: 700;
    line-height: 1; }
  .checkout-stepper__step.is-completed .checkout-stepper__circle {
    background-color: #2A4A36;
    border-color: #2A4A36;
    color: #fbfaf7; }
  .checkout-stepper__step.is-completed::before {
    background-color: #2A4A36; }
  .checkout-stepper__step.is-completed .checkout-stepper__link {
    color: #2b251f;
    cursor: pointer; }
    .checkout-stepper__step.is-completed .checkout-stepper__link:hover {
      color: #2A4A36; }
  .checkout-stepper__step.is-active {
    color: #2b251f;
    font-weight: 700; }
    .checkout-stepper__step.is-active .checkout-stepper__circle {
      background-color: #2A4A36;
      border-color: #2A4A36;
      color: #fbfaf7; }
    .checkout-stepper__step.is-active::before {
      background-color: #2A4A36; }
    .checkout-stepper__step.is-active .checkout-stepper__link {
      cursor: default; }
  .checkout-stepper__step.is-disabled .checkout-stepper__link {
    cursor: not-allowed;
    pointer-events: none; }
  @media (max-width: 479px) {
    .checkout-stepper {
      width: calc(100% - 24px);
      max-width: 360px;
      margin-top: 22px;
      margin-bottom: 2rem; }
      .checkout-stepper__step {
        font-size: 12px; }
      .checkout-stepper__circle {
        width: 28px;
        height: 28px;
        font-size: 13px; }
      .checkout-stepper__step:not(:first-child)::before {
        top: 14px; } }

.address-selection-view {
  width: 100%;
  padding: 2rem 1rem;
  animation: fadeInCheckout 0.3s ease; }
  @media (min-width: 768px) {
    .address-selection-view {
      padding: 2rem; } }
  .address-selection-view-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e2ddd6; }
    .address-selection-view-header h2 {
      font-family: "MontserratED", sans-serif;
      font-size: 1.5rem;
      font-weight: 700;
      color: #2b251f;
      margin: 0;
      display: flex;
      align-items: center;
      gap: 1rem;
      flex: 1; }
      .address-selection-view-header h2 .icon {
        color: #2A4A36; }
    @media (max-width: 479px) {
      .address-selection-view-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem; }
        .address-selection-view-header h2 {
          font-size: 1.25rem; } }
  .address-selection-view-actions {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid #e2ddd6;
    display: flex;
    justify-content: center;
    gap: 1.5rem; }
    @media (max-width: 767px) {
      .address-selection-view-actions {
        flex-direction: column; }
        .address-selection-view-actions .btn {
          width: 100%; } }

.address-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 2rem; }
  @media (min-width: 768px) {
    .address-cards-grid {
      grid-template-columns: repeat(2, 1fr); } }
  @media (min-width: 992px) {
    .address-cards-grid {
      grid-template-columns: repeat(3, 1fr); } }

@keyframes fadeInCheckout {
  from {
    opacity: 0;
    transform: translateY(20px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

.address-cards-grid .address-card__phone {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #8b8379;
  font-size: 1rem;
  margin-top: 0.5rem; }
  .address-cards-grid .address-card__phone .icon {
    font-size: 0.9em; }

.address-edit-view {
  display: block;
  max-width: 800px;
  margin: 0 auto;
  padding: 3rem; }
  .address-edit-view.is-hidden {
    display: none; }

.address-edit-header {
  margin-bottom: 3rem; }
  .address-edit-header button {
    margin-bottom: 2rem; }
  .address-edit-header h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #2b251f; }

.address-edit-form {
  background: #ffffff;
  padding: 3rem;
  border-radius: 14px;
  border: 1px solid #e2ddd6; }
  .address-edit-form .form-hint {
    color: #8b8379;
    margin-bottom: 2rem; }

.address-card__actions {
  display: flex;
  gap: 1.5rem; }
  .address-card__actions .address-card__select-btn {
    flex: 1; }
  .address-card__actions .address-card__edit-btn {
    width: 80px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #e2ddd6;
    color: #5f574f; }
    .address-card__actions .address-card__edit-btn:hover {
      background: #fbf9f5;
      color: #2A4A36; }

.checkout-container {
  position: relative;
  width: 100%; }
  .checkout-container #form-view {
    transition: opacity 0.3s ease; }
    .checkout-container #form-view.is-hidden {
      opacity: 0;
      pointer-events: none;
      position: absolute;
      width: 100%; }
  .checkout-container #address-selection-view.is-hidden {
    display: none; }

.checkout-toast {
  position: fixed;
  bottom: 30px;
  right: 30px;
  background: #2A4A36;
  color: white;
  padding: 1rem 2rem;
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  gap: 1rem;
  z-index: 9999;
  transform: translateY(100px);
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
  .checkout-toast.is-visible {
    transform: translateY(0);
    opacity: 1; }
  .checkout-toast .icon {
    font-size: 1.2em;
    line-height: 1; }
  .checkout-toast span {
    font-weight: 500;
    font-size: 1rem; }
  @media (max-width: 479px) {
    .checkout-toast {
      left: 20px;
      right: 20px;
      bottom: 20px; } }

input.field-success,
select.field-success {
  border-color: #2A4A36 !important;
  box-shadow: 0 0 0 2px rgba(42, 74, 54, 0.1) !important; }

input.field-error,
select.field-error {
  border-color: #c52626 !important;
  box-shadow: 0 0 0 2px rgba(197, 38, 38, 0.1) !important; }

.field-error-message {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #ffebee;
  border: 1px solid #f8d7da;
  color: #c52626;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  opacity: 0;
  transform: translateY(-10px);
  transition: all 0.3s ease; }
  .field-error-message.is-visible {
    opacity: 1;
    transform: translateY(0); }
  .field-error-message .icon {
    color: #c52626;
    margin: 0;
    font-size: 1.1em; }
  .field-error-message span {
    flex: 1; }

input.field-error,
select.field-error,
.ui.form input.field-error,
.ui.form select.field-error {
  border-color: #c52626 !important;
  box-shadow: 0 0 0 2px rgba(197, 38, 38, 0.1) !important; }

/* État erreur - EN focus (ULTRA PRIORITÉ) */
input.field-error:focus,
select.field-error:focus,
input.field-error:focus:not(:disabled),
select.field-error:focus:not(:disabled),
.ui.form input.field-error:focus,
.ui.form select.field-error:focus,
.ui.input input.field-error:focus {
  border-color: #c52626 !important;
  box-shadow: 0 0 0 3px rgba(197, 38, 38, 0.2) !important; }

/* État succès - HORS focus */
input.field-success,
select.field-success,
.ui.form input.field-success,
.ui.form select.field-success {
  border-color: #2A4A36 !important;
  box-shadow: 0 0 0 2px rgba(42, 74, 54, 0.1) !important; }

/* État succès - EN focus */
input.field-success:focus,
select.field-success:focus,
input.field-success:focus:not(:disabled),
select.field-success:focus:not(:disabled),
.ui.form input.field-success:focus,
.ui.form select.field-success:focus,
.ui.input input.field-success:focus {
  border-color: #2A4A36 !important;
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.2) !important; }

#checkout-form .sylius-validation-error {
  background: #ffebee !important;
  border: 1px solid #f8d7da !important;
  border-radius: 6px !important;
  padding: 0.75rem 1rem !important;
  margin-top: 0.5rem !important;
  color: #c52626 !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important; }
  #checkout-form .sylius-validation-error::before, #checkout-form .sylius-validation-error::after {
    display: none !important; }

#checkout-form .field.error input,
#checkout-form .field.error select {
  border-color: #c52626 !important;
  box-shadow: 0 0 0 2px rgba(197, 38, 38, 0.1) !important; }

.address-card__default-badge {
  position: absolute;
  top: 15px;
  right: 55px;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  font-size: 0.7rem;
  font-weight: 600;
  color: #2c662d;
  background: #f0f8f1;
  border: 1px solid #d4e8d6;
  border-radius: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap; }

.shipping-methods-container {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

.checkout-complete {
  --checkout-complete-green: #2d6a4f;
  --checkout-complete-green-dark: #245c43;
  width: calc(100vw - 32px);
  max-width: 1220px;
  margin: 0 auto 64px;
  color: var(--mcb-text-primary, #1c1a17);
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif); }

.checkout-complete__sr-title {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0; }

.checkout-complete-form {
  margin: 0 !important; }

.checkout-complete__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 24px;
  align-items: start; }

.checkout-complete__main,
.checkout-complete__sidebar {
  display: grid;
  gap: 16px; }

.checkout-complete__sidebar {
  position: sticky;
  top: 16px; }

.checkout-complete__sidebar .sidebar-title {
  margin-bottom: 0;
  font-size: 22px;
  line-height: 1.15; }

.checkout-complete__column-title {
  margin: 0;
  color: #2b251f;
  font-family: "MontserratED", sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.15; }

.checkout-complete-card {
  border: 0.5px solid var(--mcb-border-default, #E6DFCB);
  border-radius: 12px;
  background: var(--mcb-surface-panel, #FCFBF8);
  box-shadow: 0 8px 24px rgba(30, 24, 18, 0.06);
  padding: 18px 20px; }

.checkout-complete-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px; }

.checkout-complete-card__header h2 {
  margin: 0;
  color: var(--mcb-text-secondary, #3D3832);
  font-family: "MontserratED", sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.3;
  text-transform: uppercase; }

.checkout-complete-card__header a,
.checkout-complete-address__header a {
  color: var(--checkout-complete-green);
  font-family: "MontserratED", sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none; }

.checkout-complete-card__header a:hover,
.checkout-complete-card__header a:focus-visible,
.checkout-complete-address__header a:hover,
.checkout-complete-address__header a:focus-visible {
  color: var(--checkout-complete-green-dark);
  text-decoration: underline; }

.checkout-complete-card__description {
  margin: -4px 0 12px;
  color: var(--mcb-text-muted, #7A6A4A);
  font-size: 13px;
  line-height: 1.5; }

.checkout-complete-address-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px; }

.checkout-complete-address {
  border: 0.5px solid var(--mcb-border-default, #E6DFCB);
  border-radius: 8px;
  background: var(--mcb-surface-panel, #FFFFFF);
  padding: 14px; }

.checkout-complete-address__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  color: var(--mcb-text-muted, #7A6A4A);
  font-size: 12px;
  font-weight: 700; }

.checkout-complete-address__body {
  display: grid;
  gap: 3px;
  color: var(--mcb-text-secondary, #3D3832);
  font-size: 13px;
  line-height: 1.45; }

.checkout-complete-address__name {
  color: var(--mcb-text-primary, #1c1a17);
  font-weight: 800; }

.checkout-complete-shipping-list {
  display: grid;
  gap: 8px; }

.checkout-complete-shipping {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 0.5px solid var(--mcb-border-default, #E6DFCB);
  border-radius: 8px;
  background: var(--mcb-surface-panel, #FFFFFF);
  padding: 12px; }

.checkout-complete-shipping__content {
  display: grid;
  gap: 3px; }

.checkout-complete-shipping__content strong {
  color: var(--mcb-text-primary, #1c1a17);
  font-size: 14px;
  line-height: 1.3; }

.checkout-complete-shipping__content small {
  color: var(--mcb-text-muted, #7A6A4A);
  font-size: 12px;
  line-height: 1.35; }

.checkout-complete-shipping__price {
  color: var(--checkout-complete-green);
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap; }

.checkout-complete-notes__textarea {
  width: 100% !important;
  min-height: 86px !important;
  border: 0.5px solid var(--mcb-border-default, #E6DFCB) !important;
  border-radius: 8px !important;
  background: var(--mcb-surface-panel, #FFFFFF) !important;
  color: var(--mcb-text-primary, #1c1a17) !important;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  resize: vertical !important; }

.checkout-complete-notes__textarea:focus {
  border-color: var(--checkout-complete-green) !important;
  box-shadow: 0 0 0 4px rgba(45, 106, 79, 0.14) !important; }

@media (max-width: 991px) {
  .checkout-complete__layout {
    grid-template-columns: 1fr; }
  .checkout-complete__sidebar {
    position: static; } }

@media (max-width: 767px) {
  .checkout-complete {
    width: calc(100% - 24px);
    max-width: 680px;
    margin-bottom: 40px; }
  .checkout-complete__column-title {
    font-size: 20px; }
  .checkout-complete-card {
    padding: 16px; }
  .checkout-complete-address-grid {
    grid-template-columns: 1fr; }
  .checkout-complete-shipping {
    grid-template-columns: 1fr; }
  .checkout-complete-shipping__price {
    justify-self: start; } }

.shipping-method-card {
  display: flex;
  align-items: flex-start;
  padding: 1.5rem;
  border: 2px solid #e9ecef;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s ease-in-out; }

.shipping-method-card:hover {
  border-color: rgba(42, 74, 54, 0.3); }

.shipping-method-card.is-selected {
  border-color: #2A4A36;
  background-color: #f0f9f3; }

.shipping-method-card .radio-container {
  width: 0;
  height: 0;
  opacity: 0;
  overflow: hidden; }

.shipping-method-card .content {
  flex: 1; }

.shipping-method-card .content .header {
  font-size: 1.1em;
  font-weight: 600;
  color: #333;
  margin: 0; }

.shipping-method-card .content .description {
  font-size: 0.9em;
  color: #666;
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5em; }

/* Keyframe manquant : sans lui, tous les loaders `animation: spin` restaient
   FIGÉS (ne tournaient pas). Défini une fois, global (checkout + homepage). */
@keyframes spin {
  to {
    transform: rotate(360deg); } }

/* Loaders checkout unifiés sur le même style que le récap panier/tunnel :
   contenu grisé (opacité 0.5), zone bien délimitée, spinner central de marque.
   Pas de bloc blanc opaque qui masque tout. */
.checkout-card.loading {
  position: relative;
  user-select: none;
  pointer-events: none; }

.checkout-card.loading > * {
  opacity: 0.5;
  transition: opacity 0.15s ease; }

.checkout-card.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border: 3px solid rgba(42, 74, 54, 0.22);
  border-top-color: #2A4A36;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
  z-index: 10; }

/* --- Loader pour la Sidebar (récap) --- */
#sylius-checkout-subtotal.loading {
  position: relative;
  pointer-events: none; }

#sylius-checkout-subtotal.loading .order-summary__content {
  opacity: 0.5;
  transition: opacity 0.15s ease; }

#sylius-checkout-subtotal.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border: 3px solid rgba(42, 74, 54, 0.22);
  border-top-color: #2A4A36;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
  z-index: 11; }

@media (prefers-reduced-motion: reduce) {
  .checkout-card.loading::after,
  #sylius-checkout-subtotal.loading::after {
    animation-duration: 1.6s; } }

/* --- Page choix de livraison --- */
.shipping-method-card .header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem; }

.shipping-method-card .header .method-name {
  font-size: 1.1em;
  font-weight: 600;
  color: #333; }

.shipping-method-card .header .method-price {
  font-size: 1rem;
  font-family: 'MontserratED', sans-serif;
  color: #2A4A36;
  font-weight: 700; }

.shipping-method-card__title svg,
.shipping-method-card__title .icon {
  width: 18px;
  height: 18px;
  vertical-align: middle;
  display: inline-block;
  margin-right: 8px; }

.shipping-method-card .content .description i.icon {
  font-size: 16px !important;
  width: auto !important;
  height: auto !important;
  line-height: 1 !important;
  vertical-align: middle !important; }

.shipping-method-card .content .description svg {
  width: 16px;
  height: 16px;
  vertical-align: middle; }

.shipping-section {
  margin-bottom: 2rem; }

.shipping-section .section-title {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #e0e0e0; }

.shipping-methods-container {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

/* Mention d'information prospection (soft opt-in client) — page checkout/complete */
.checkout-operations-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
  padding: 12px 14px;
  background: var(--mcb-paper, #FBF7EF);
  border: 1px solid var(--mcb-border-default, #E6DFCB);
  border-radius: 12px; }

.checkout-operations-notice__icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 1px;
  color: var(--mcb-gold-deep, #8C5E16); }

.checkout-operations-notice__text {
  margin: 0;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12px;
  line-height: 1.5;
  color: var(--mcb-text-muted, #7A6A4A); }

.checkout-operations-notice__text a {
  color: var(--mcb-gold-deep, #8C5E16);
  font-weight: 600;
  text-decoration: none; }

.checkout-operations-notice__text a:hover {
  text-decoration: underline; }

@media (max-width: 991px) {
  .checkout-container,
  .checkout-layout,
  .checkout-layout__main,
  .checkout-card {
    max-width: 100%;
    min-width: 0; } }

@media (max-width: 767px) {
  #checkout-container .two.fields {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 0 0 1rem; }
    #checkout-container .two.fields > .field {
      width: auto !important;
      margin: 0 !important;
      padding: 0 !important; } }

@media (max-width: 991px) {
  .order-summary__line,
  .order-summary__grand-total {
    gap: 1rem; }
    .order-summary__line .label,
    .order-summary__grand-total .label {
      min-width: 0; }
    .order-summary__line .value,
    .order-summary__grand-total .value {
      flex-shrink: 0;
      text-align: right;
      white-space: nowrap; } }

@media (max-width: 991px) {
  .checkout-stepper {
    max-width: 100%; }
    .checkout-stepper__step {
      min-width: 0; }
    .checkout-stepper__label {
      min-width: 0;
      overflow-wrap: anywhere; } }

@media (max-width: 991px) {
  .shipping-method-card {
    min-width: 44px;
    min-height: 44px;
    cursor: pointer; } }

/* --------------------------------------------- */
/* -- VARIABLES V2 REFACTORED ------------------ */
/* --------------------------------------------- */
.pusher {
  overflow: visible !important; }

#site-header.mcb-header {
  position: sticky;
  top: 0;
  z-index: 1100;
  overflow: visible !important;
  isolation: isolate;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--mcb-n-25) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 1px solid var(--mcb-border-default);
  box-shadow: none !important;
  filter: none !important;
  text-align: initial !important; }

#site-header.mcb-header,
#site-header.mcb-header .mcb-header__main,
#site-header.mcb-header .mcb-header__nav {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
  overflow: visible !important; }

.mcb-header__container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  /* Gouttière HORIZONTALE uniquement. NE PAS utiliser le raccourci
       `padding: 0 X` : cette classe est aussi portée par
       `.mcb-header__mobile-search`, et le raccourci remettrait son
       padding-top/bottom à 0 (barre de recherche « collée » en bas). */
  padding-left: var(--mcb-space-lg);
  padding-right: var(--mcb-space-lg); }

.site-main-container.ui.container {
  width: 100% !important;
  max-width: 1240px !important; }

/* ============================================= */
/* === TOPBAR ================================== */
/* ============================================= */
.mcb-header__topbar {
  background: var(--mcb-green-main);
  color: var(--mcb-n-50);
  font-size: 12px; }

/* Rotateur de messages : masqué en desktop (liens statiques), activé sous lg. */
.mcb-header__topbar-rotator {
  display: none; }

.mcb-header__topbar-inner {
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--mcb-space-md); }

.mcb-header__topbar-left {
  margin: 0;
  font-family: var(--mcb-font-inter);
  color: var(--mcb-n-50);
  display: inline-flex;
  align-items: center; }

.mcb-header__topbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mcb-font-inter); }

.mcb-header__topbar-link {
  color: var(--mcb-n-50);
  text-decoration: none;
  transition: color 0.15s ease; }

.mcb-header__topbar-link:hover {
  color: var(--mcb-gold-main); }

.mcb-header__topbar-link--review {
  display: inline-flex;
  align-items: center;
  gap: 6px; }

/* Lien offre de bienvenue : icône cadeau dorée + libellé alignés. */
.mcb-header__topbar-link--offer {
  display: inline-flex;
  align-items: center;
  gap: 5px; }

.mcb-header__topbar-gift {
  flex: 0 0 auto;
  color: var(--mcb-gold-main); }

.mcb-header__topbar-star {
  color: var(--mcb-gold-main);
  fill: var(--mcb-gold-main); }

.mcb-header__topbar-review-bold {
  font-weight: 700; }

.mcb-header__topbar-review-light {
  font-weight: 400;
  opacity: 0.9; }

.mcb-header__topbar-separator {
  color: color-mix(in srgb, var(--mcb-n-50) 40%, transparent);
  margin: 0 4px; }

.mcb-header__topbar-accent {
  color: var(--mcb-gold-main);
  font-weight: 700; }

.mcb-header__topbar-desktop-only {
  display: none; }

@media (min-width: 768px) {
  .mcb-header__topbar-desktop-only {
    display: inline-flex; } }

/* ============================================= */
/* === MAIN HEADER ============================= */
/* ============================================= */
.mcb-header__main {
  background: transparent; }

.mcb-header__main-inner {
  height: 84px;
  display: flex;
  align-items: center;
  gap: var(--mcb-space-xl); }

/* --- Brand --- */
.mcb-header__brand {
  display: flex;
  align-items: center;
  gap: var(--mcb-space-md);
  flex-shrink: 0; }

.mcb-header__brand-link {
  display: flex;
  align-items: center;
  gap: var(--mcb-space-md);
  text-decoration: none; }

/* .mcb-header__brand-icon / -text / -wordmark / -baseline : règles retirées
   (dead code). Le logo header est désormais rendu comme <img> via le média
   admin `logoWebsite` ; ces sélecteurs ne matchent plus aucun élément du DOM.
   Les règles de .mcb-header__brand-link img (héritées) sont conservées. */
.mcb-header__mobile-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--mcb-border-default);
  border-radius: 12px;
  background: var(--mcb-n-25);
  color: var(--mcb-green-main);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  box-shadow: none; }

.mcb-header__mobile-toggle-line {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: currentColor; }

/* --- Search --- */
.mcb-header__search {
  flex: 1;
  max-width: 560px;
  display: none; }

@media (min-width: 768px) {
  .mcb-header__search {
    display: flex; } }

.mcb-header__search-form {
  width: 100%;
  position: relative; }

.mcb-header__search-wrapper {
  position: relative;
  width: 100%; }

.mcb-header__search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: color-mix(in srgb, var(--mcb-text-primary) 60%, transparent);
  pointer-events: none; }

.mcb-header__search-input {
  width: 100%;
  height: 44px;
  padding-left: 40px;
  padding-right: 16px;
  border-radius: var(--mcb-radius-chip);
  background: var(--mcb-n-0);
  border: 1px solid var(--mcb-border-default);
  font-size: 13px;
  font-family: var(--mcb-font-inter);
  color: var(--mcb-text-primary);
  outline: none;
  transition: border-color 0.15s ease; }

/* Anti-zoom iOS (R3) : le champ de recherche n'est pas un .ui.form, il faut
   donc relever sa font-size à 16px sur mobile pour éviter le zoom auto Safari
   iOS au focus. Le design desktop conserve 13px. */
@media (max-width: 767px) {
  .mcb-header__search-input {
    font-size: 16px; } }

.mcb-header__search-input::placeholder {
  color: color-mix(in srgb, var(--mcb-text-primary) 50%, transparent); }

.mcb-header__search-input:focus {
  border-color: var(--mcb-green-main); }

.search-suggestions {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 100%;
  background: var(--mcb-n-0);
  border-radius: var(--mcb-radius-interactive);
  box-shadow: var(--mcb-shadow-elevated);
  z-index: 50; }

/* --- Actions --- */
.mcb-header__actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 2; }

@media (min-width: 640px) {
  .mcb-header__actions {
    gap: 16px; } }

/* --- Account --- */
.mcb-header__account-menu {
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important; }

.mcb-header__account-link {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--mcb-green-main) !important;
  text-decoration: none !important;
  padding: 4px !important;
  background: transparent !important;
  border: 0 !important;
  transition: color 0.15s ease !important;
  min-width: 44px; }

@media (max-width: 639px) {
  .mcb-header__account-link {
    width: 40px;
    height: 40px;
    border-radius: var(--mcb-radius-chip) !important; }
  .mcb-header__account-link:hover {
    background: var(--mcb-n-75) !important; } }

@media (min-width: 640px) {
  .mcb-header__account-link:hover {
    color: var(--mcb-gold-dark) !important; } }

.mcb-header__account-icon {
  display: flex;
  align-items: center;
  justify-content: center; }

.mcb-header__account-copy {
  display: contents;
  margin-top: 0; }

.mcb-header__account-label {
  display: block;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: calc(var(--spacing, 4px) * 0.5); }

/* --- Cart --- */
.mcb-header__cart-button {
  position: relative;
  height: 48px;
  padding-left: 16px;
  padding-right: 16px;
  border-radius: var(--mcb-radius-chip);
  background: var(--mcb-green-main);
  color: var(--mcb-n-50);
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  transition: background-color 0.15s ease;
  border: 0; }

.mcb-header__cart-button:hover {
  background: var(--mcb-green-hover);
  color: var(--mcb-n-50); }

.mcb-header__cart-icon {
  color: inherit;
  flex-shrink: 0; }

.mcb-header__cart-text-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.1; }

.mcb-header__cart-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: color-mix(in srgb, var(--mcb-n-50) 80%, transparent); }

.mcb-header__cart-total {
  font-size: 13.5px;
  font-weight: 600; }

.mcb-header__cart-badge {
  background: var(--mcb-gold-main);
  color: var(--mcb-green-main);
  border-radius: var(--mcb-radius-chip);
  padding: 0 6px;
  min-width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600; }

#sylius-cart-nb-item {
  position: static !important;
  top: auto !important;
  right: auto !important;
  transform: none !important; }

.mcb-header__cart-label-mobile {
  font-size: 13px;
  display: none; }

@media (max-width: 639px) {
  .mcb-header__cart-button {
    padding-left: 12px;
    padding-right: 12px; }
  .mcb-header__cart-text-group {
    display: none; }
  .mcb-header__cart-label-mobile {
    display: block; } }

.hidden {
  display: none !important; }

.hidden-mobile {
  display: none; }

@media (min-width: 640px) {
  .hidden-mobile {
    display: flex; } }

.mobile-only {
  display: inline-block; }

@media (min-width: 640px) {
  .mobile-only {
    display: none; } }

.mcb-header__nav {
  position: relative;
  background: var(--mcb-cream-100);
  border-bottom: 1px solid rgba(216, 205, 186, 0.45); }

.mcb-header__nav-inner {
  min-height: 46px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  width: 100%;
  max-width: var(--mcb-header-max-width, 1280px);
  margin: 0 auto;
  padding: 0 20px; }

.mcb-header__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.45vw, 22px);
  position: relative;
  min-width: 0; }

.mcb-header__nav-item,
.mcb-header__selection {
  position: static; }

.mcb-header__nav-item.is-open,
.mcb-header__selection.is-open {
  z-index: 3; }

.mcb-header__nav-link,
.mcb-header__selection-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  color: var(--mcb-green-800);
  text-decoration: none;
  font-family: "MontserratED", sans-serif;
  font-size: clamp(12.2px, 1vw, 13.4px);
  font-weight: 600;
  letter-spacing: 0.004em;
  transition: color 0.16s ease;
  white-space: nowrap; }

.mcb-header__nav-link--has-menu,
.mcb-header__selection-link {
  gap: 7px; }

.mcb-header__nav-chevron,
.mcb-header__selection-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  color: currentColor;
  transition: transform 0.16s ease, opacity 0.16s ease;
  opacity: 0.72; }

.mcb-header__nav-chevron svg,
.mcb-header__selection-chevron svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  stroke-width: 1.85;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round; }

.mcb-header__nav-link::after,
.mcb-header__selection-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 9px;
  width: 100%;
  height: 1px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(0.72);
  transform-origin: center;
  transition: opacity 0.16s ease, transform 0.16s ease; }

.mcb-header__nav-link:hover,
.mcb-header__nav-link:focus-visible,
.mcb-header__nav-link.is-active,
.mcb-header__nav-link[aria-current="page"],
.mcb-header__nav-item.is-open > .mcb-header__nav-link,
.mcb-header__selection-link:hover,
.mcb-header__selection-link:focus-visible,
.mcb-header__selection-link.is-active,
.mcb-header__selection-link[aria-current="page"],
.mcb-header__selection.is-open > .mcb-header__selection-link {
  color: var(--mcb-green-800); }

.mcb-header__nav-link:hover::after,
.mcb-header__nav-link:focus-visible::after,
.mcb-header__nav-link.is-active::after,
.mcb-header__nav-link[aria-current="page"]::after,
.mcb-header__nav-item.is-open > .mcb-header__nav-link::after,
.mcb-header__selection-link:hover::after,
.mcb-header__selection-link:focus-visible::after,
.mcb-header__selection-link.is-active::after,
.mcb-header__selection-link[aria-current="page"]::after,
.mcb-header__selection.is-open > .mcb-header__selection-link::after {
  opacity: 1;
  transform: scaleX(1); }

.mcb-header__nav-item.is-open .mcb-header__nav-chevron,
.mcb-header__selection.is-open .mcb-header__selection-chevron {
  transform: rotate(180deg);
  opacity: 1; }

.mcb-header__selection {
  justify-self: end; }

.mcb-header__selection-link {
  min-height: 32px;
  padding: 0 15px;
  border: 1px solid rgba(33, 76, 54, 0.82);
  border-radius: 999px;
  background: transparent;
  color: var(--mcb-green-800);
  box-shadow: none; }

.mcb-header__selection-link::after {
  display: none; }

.mcb-header__selection-link:hover,
.mcb-header__selection-link:focus-visible,
.mcb-header__selection-link.is-active,
.mcb-header__selection-link[aria-current="page"],
.mcb-header__selection.is-open > .mcb-header__selection-link {
  border-color: var(--mcb-green-800);
  background: var(--mcb-green-800);
  color: var(--mcb-cream-50, #FBF7EF); }

.mcb-header__mega-menu {
  position: absolute;
  top: 100%;
  left: 20px;
  right: 20px;
  width: auto;
  max-width: none;
  transform: translateY(-6px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, visibility 0.18s ease, transform 0.18s ease; }

/* Hover bridge: invisible zone between trigger and dropdown to prevent accidental close */
.mcb-header__nav-item.has-mega::after,
.mcb-header__selection::after {
  content: "";
  position: absolute;
  left: auto;
  right: auto;
  width: 120px;
  top: 100%;
  height: 10px;
  pointer-events: none; }

.mcb-header__nav-item.has-mega.is-open::after,
.mcb-header__selection.is-open::after {
  pointer-events: auto; }

.mcb-header__mega-menu--1 {
  max-width: none; }

.mcb-header__mega-menu--has-image.mcb-header__mega-menu--1 {
  max-width: none; }

.mcb-header__nav-item.is-open > .mcb-header__mega-menu,
.mcb-header__selection.is-open > .mcb-header__mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0); }

.mcb-header__mega-menu-inner {
  border: 1px solid rgba(216, 205, 186, 0.82);
  border-radius: 0 0 16px 16px;
  background: #FBF7EF;
  box-shadow: 0 22px 46px rgba(21, 56, 38, 0.11);
  padding: 22px; }

.mcb-header__mega-menu-grid {
  display: grid;
  gap: 22px;
  justify-content: start;
  align-items: start; }

.mcb-header__mega-menu-grid--2 {
  grid-template-columns: minmax(210px, 270px) minmax(280px, 320px); }

.mcb-header__mega-menu-grid--3 {
  grid-template-columns: minmax(190px, 230px) minmax(190px, 230px) minmax(280px, 320px); }

.mcb-header__mega-menu-grid--1 {
  grid-template-columns: minmax(0, 1fr); }

@media screen and (min-width: 992px) {
  .mcb-header__actions {
    gap: 10px; } }

@media screen and (max-width: 1180px) {
  .mcb-header__nav-list {
    gap: 11px; }
  .mcb-header__nav-link,
  .mcb-header__selection-link {
    font-size: 12.2px; } }

@media screen and (min-width: 992px) {
  .mcb-header__nav-item > .mcb-header__mega-menu,
  .mcb-header__selection > .mcb-header__mega-menu {
    transform: translateY(-6px); }
  .mcb-header__nav-item.is-open > .mcb-header__mega-menu,
  .mcb-header__selection.is-open > .mcb-header__mega-menu {
    transform: translateY(0); } }

.mcb-header__mega-column {
  min-width: 0; }

.mcb-header__mega-title {
  margin: 0 0 10px;
  font-family: "MontserratED", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9A7A39; }

.mcb-header__mega-intro {
  display: none; }

.mcb-header__mega-links {
  display: flex;
  flex-direction: column;
  gap: 3px; }

.mcb-header__mega-link {
  display: flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 10px;
  border-radius: 8px;
  color: var(--mcb-text);
  text-decoration: none;
  transition: background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; }

.mcb-header__mega-link:hover,
.mcb-header__mega-link:focus-visible {
  background: rgba(33, 76, 54, 0.055);
  color: var(--mcb-green-800);
  box-shadow: inset 0 0 0 1px rgba(33, 76, 54, 0.08);
  transform: translateX(2px); }

.mcb-header__mega-link.is-featured {
  background: rgba(42, 74, 54, 0.07);
  box-shadow: inset 0 0 0 1px rgba(33, 76, 54, 0.11); }

.mcb-header__mega-link-label {
  font-family: "MontserratED", sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.25; }

.mcb-header__mega-link-meta {
  display: none; }

.mcb-header__mega-menu--selection .mcb-header__mega-menu-inner {
  background: #FDFBF6;
  border-color: rgba(42, 123, 78, 0.14); }

.mcb-header__mega-menu--selection .mcb-header__mega-link.is-featured {
  background: rgba(42, 123, 78, 0.08);
  box-shadow: inset 0 0 0 1px rgba(42, 123, 78, 0.13); }

.mcb-header__mega-menu--selection .mcb-header__mega-link.is-featured .mcb-header__mega-link-label {
  color: #214C36; }

.mcb-header__mobile-search {
  display: none;
  padding-top: 10px;
  padding-bottom: 12px; }

.mcb-header__search--mobile .mcb-header-search__input {
  height: 44px; }

.mcb-mobile-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1120;
  pointer-events: none;
  width: 100%;
  max-width: 100%;
  overflow: hidden; }

.mcb-mobile-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 24, 18, 0.36);
  border: 0;
  opacity: 0;
  transition: opacity 0.18s ease; }

.mcb-mobile-drawer__panel {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 88vw;
  max-width: 360px;
  display: flex;
  flex-direction: column;
  /* Fond opaque du drawer. Le token --mcb-cream-50 n'existe pas (bug : menu
       transparent) ; on utilise le token crème réel + fallback en dur pour
       garantir un fond opaque en toutes circonstances. */
  background: var(--mcb-surface-panel-soft, #FBF7EF);
  box-shadow: none;
  transform: translateX(-100%);
  transition: transform 0.18s ease, box-shadow 0.18s ease; }

.mcb-mobile-drawer.is-rendered {
  display: block; }

.mcb-mobile-drawer.is-open {
  pointer-events: auto; }

.mcb-mobile-drawer.is-open .mcb-mobile-drawer__backdrop {
  opacity: 1; }

.mcb-mobile-drawer.is-open .mcb-mobile-drawer__panel {
  transform: translateX(0);
  box-shadow: 16px 0 40px rgba(21, 56, 38, 0.18); }

.mcb-mobile-drawer__header {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 18px;
  border-bottom: 1px solid rgba(216, 205, 186, 0.8); }

.mcb-mobile-drawer__heading,
.mcb-mobile-drawer__title {
  margin: 0;
  font-family: "MontserratED", sans-serif;
  color: var(--mcb-text); }

.mcb-mobile-drawer__heading {
  font-size: 17px;
  font-weight: 700; }

.mcb-mobile-drawer__close {
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(216, 205, 186, 0.95);
  border-radius: 12px;
  background: #fffdf8;
  color: var(--mcb-green-800);
  cursor: pointer; }

.mcb-mobile-drawer__body {
  overflow-y: auto;
  padding: 18px; }

.mcb-mobile-drawer__section--quick {
  margin-bottom: 22px; }

.mcb-mobile-drawer__section + .mcb-mobile-drawer__section {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(216, 205, 186, 0.7); }

.mcb-mobile-drawer__title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mcb-muted);
  margin-bottom: 12px; }

.mcb-mobile-drawer__links {
  display: flex;
  flex-direction: column; }

.mcb-mobile-drawer__quick-links {
  display: grid;
  gap: 10px; }

.mcb-mobile-drawer__quick-link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 58px;
  padding: 12px 13px;
  border: 1px solid rgba(216, 205, 186, 0.86);
  border-radius: 13px;
  background: rgba(33, 76, 54, 0.045);
  color: var(--mcb-text);
  text-decoration: none;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease; }

.mcb-mobile-drawer__quick-link:hover,
.mcb-mobile-drawer__quick-link:focus-visible {
  background: rgba(33, 76, 54, 0.075);
  border-color: rgba(33, 76, 54, 0.22);
  color: var(--mcb-green-800); }

.mcb-mobile-drawer__quick-link span,
.mcb-mobile-drawer__quick-link small {
  font-family: "MontserratED", sans-serif;
  line-height: 1.25; }

.mcb-mobile-drawer__quick-link span {
  font-size: 14.5px;
  font-weight: 700; }

.mcb-mobile-drawer__quick-link small {
  font-size: 12px;
  font-weight: 500;
  color: var(--mcb-muted); }

.mcb-mobile-drawer__accordions {
  display: flex;
  flex-direction: column;
  gap: 10px; }

.mcb-mobile-drawer__accordion {
  border-bottom: 1px solid rgba(216, 205, 186, 0.55); }

.mcb-mobile-drawer__accordion-summary {
  position: relative;
  display: block;
  min-height: 44px;
  padding: 11px 28px 11px 0;
  list-style: none;
  cursor: pointer;
  font-family: "MontserratED", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--mcb-text); }

.mcb-mobile-drawer__accordion-summary::-webkit-details-marker {
  display: none; }

.mcb-mobile-drawer__accordion-summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  color: var(--mcb-green-800);
  font-size: 20px;
  line-height: 1; }

.mcb-mobile-drawer__accordion[open] > .mcb-mobile-drawer__accordion-summary::after {
  content: "−"; }

.mcb-mobile-drawer__accordion .mcb-mobile-drawer__links {
  padding-bottom: 10px; }

.mcb-mobile-drawer__link {
  display: block;
  min-height: 44px;
  padding: 12px 0;
  text-decoration: none;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--mcb-text);
  border-bottom: 1px solid rgba(216, 205, 186, 0.55); }

.mcb-mobile-drawer__link:hover,
.mcb-mobile-drawer__link:focus-visible {
  color: var(--mcb-green-800); }

.mcb-mobile-drawer__link--featured {
  color: var(--mcb-green-800);
  font-weight: 800; }

body.mcb-mobile-drawer-open {
  overflow: hidden; }

/* ============================================= */
/* === HEADER PREMIUM POLISH =================== */
/* ============================================= */
#site-header.mcb-header {
  background: #FBF7EF !important;
  border-bottom-color: #E6DFCB;
  transition: box-shadow 0.2s ease; }

/* Relief discret du header sticky une fois la page défilée (P3). */
#site-header.mcb-header.is-scrolled {
  box-shadow: 0 6px 16px -10px rgba(31, 56, 40, 0.18) !important; }

/* Shrink discret de la barre principale au scroll (réutilise .is-scrolled).
   La nav garde sa hauteur pour ne pas faire sauter le menu.
   IMPORTANT : réservé au DESKTOP (>= lg). Sur mobile, `.mcb-header__main-inner`
   a un `min-height` (66/70px) qui bride le `height: 64px` : la transition
   anime alors un delta de ~2px bridé → header qui « vibre » au scroll. On borne
   donc le shrink au desktop ; sur mobile le header reste de hauteur stable
   (seule l'ombre `is-scrolled` ci-dessus s'applique). */
@media (min-width: 992px) {
  #site-header.mcb-header .mcb-header__main-inner {
    transition: height 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  #site-header.mcb-header .mcb-header__brand-link img {
    /* Hauteur de base explicite au desktop : indispensable pour que la
           réduction au scroll s'ANIME. Sans ça, au-dessus de 1120px l'image est
           en height:auto (ratio) et la transition height → valeur fixe ne s'anime
           pas (elle « claque »). Point de départ chiffré = transition fluide. */
    height: 64px;
    max-height: 64px;
    transition: height 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), max-height 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  #site-header.mcb-header.is-scrolled .mcb-header__main-inner {
    height: 64px; }
  #site-header.mcb-header.is-scrolled .mcb-header__brand-link img {
    height: 52px;
    /* réduit depuis 64px au repos */
    max-height: 52px; } }

.mcb-header__topbar {
  background: #2A4A36; }

.mcb-header__topbar-inner {
  height: 36px;
  max-width: 1240px; }

.mcb-header__topbar-left,
.mcb-header__topbar-right,
.mcb-header__topbar-link {
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12px;
  font-weight: 500; }

.mcb-header__topbar-accent,
.mcb-header__topbar-star {
  color: #E8C26B; }

.mcb-header__main {
  background: #FBF7EF; }

.mcb-header__main-inner {
  height: 86px;
  gap: 28px; }

.mcb-header__brand-link {
  gap: 12px; }

/* .mcb-header__brand-icon / -wordmark / -baseline (polish) : règles retirées
   (dead code) — logo header rendu en <img> via le média admin. */
.mcb-header__search {
  max-width: 560px; }

.mcb-header-search__input,
.mcb-header__search-input {
  height: 44px !important;
  border-radius: 999px !important;
  border-color: #DCD2BB !important;
  background: #FFFFFF !important;
  box-shadow: none !important;
  font-family: var(--mcb-font-inter, "Inter", sans-serif) !important;
  font-size: 13px !important; }

.mcb-header-search__input:focus,
.mcb-header__search-input:focus {
  border-color: #2A4A36 !important;
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.1) !important; }

.mcb-header__account-link {
  color: #2A4A36 !important; }

.mcb-header__account-label {
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 10px;
  letter-spacing: 0.11em; }

#sylius-cart-button,
#sylius-cart-button.mcb-header__cart,
.mcb-header__cart-button {
  min-height: 48px;
  height: 48px;
  border-radius: 999px;
  background: #2A4A36;
  box-shadow: none; }

#sylius-cart-button:hover,
#sylius-cart-button:focus-visible,
.mcb-header__cart-button:hover,
.mcb-header__cart-button:focus-visible {
  background: #355A45;
  transform: none;
  box-shadow: none; }

.mcb-header__nav {
  background: #FBF7EF; }

.mcb-header__nav-inner {
  min-height: 46px; }

.mcb-header__nav-link {
  min-height: 46px;
  color: #2A4A36;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: clamp(12px, 0.95vw, 13px);
  font-weight: 600;
  letter-spacing: 0; }

.mcb-header__nav-link:hover,
.mcb-header__nav-link:focus-visible,
.mcb-header__nav-link.is-active,
.mcb-header__nav-link[aria-current="page"],
.mcb-header__nav-item.is-open > .mcb-header__nav-link {
  color: #C28A3A; }

.mcb-header__nav-link::after {
  bottom: 8px;
  height: 2px;
  border-radius: 999px;
  background: #C28A3A; }

.mcb-header__nav-chevron,
.mcb-header__selection-chevron {
  opacity: 0.65; }

.mcb-header__selection-link {
  min-height: 32px;
  padding: 0 15px;
  border-color: rgba(42, 74, 54, 0.82);
  background: transparent;
  color: #2A4A36;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: 13px;
  font-weight: 600;
  box-shadow: none; }

.mcb-header__selection-link:hover,
.mcb-header__selection-link:focus-visible,
.mcb-header__selection-link.is-active,
.mcb-header__selection-link[aria-current="page"],
.mcb-header__selection.is-open > .mcb-header__selection-link {
  border-color: #2A4A36;
  background: #2A4A36;
  color: #FBF7EF; }

.mcb-header__mega-menu {
  top: calc(100% + 1px);
  right: auto;
  width: max-content;
  max-width: calc(100vw - 40px); }

.mcb-header__mega-menu-inner {
  border-radius: 0 0 16px 16px;
  border-color: #E6DFCB;
  background: rgba(251, 247, 239, 0.98);
  box-shadow: 0 26px 60px rgba(42, 74, 54, 0.14); }

.mcb-header__mega-title {
  color: #C28A3A; }

.mcb-header__mega-link:hover,
.mcb-header__mega-link:focus-visible {
  color: #2A4A36;
  background: rgba(42, 74, 54, 0.06); }

@media screen and (max-width: 1180px) {
  .mcb-header__nav-link {
    font-size: 12px; } }

@media screen and (max-width: 1120px) {
  .mcb-header__main-inner {
    grid-template-columns: minmax(180px, 1fr) minmax(360px, 1fr) auto;
    column-gap: 18px; }
  .mcb-header__brand-link img {
    height: 64px;
    max-width: 280px; }
  .mcb-header__nav-list {
    gap: 14px; }
  .mcb-header__nav-link {
    font-size: 13px; } }

@media screen and (max-width: 991px) {
  .mcb-header__container {
    padding-left: 14px;
    padding-right: 14px; }
  .site-main-container.ui.container {
    width: auto !important;
    max-width: none !important;
    margin-left: 14px !important;
    margin-right: 14px !important; }
  .mcb-header__topbar-inner {
    min-height: 30px;
    justify-content: center; }
  /* Mobile : on masque les messages statiques (gauche + droite) au profit du
       rotateur qui alterne les deux messages. */
  .mcb-header__topbar-left,
  .mcb-header__topbar-right {
    display: none; }
  /* Rotateur : une ligne, messages empilés en absolu, fondu + léger slide. */
  .mcb-header__topbar-rotator {
    display: block;
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    height: 1.5em;
    overflow: hidden;
    font-size: 12px;
    text-align: center; }
  .mcb-header__topbar-rotator-item {
    position: absolute;
    inset: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    white-space: nowrap;
    opacity: 0;
    transform: translateY(70%);
    transition: opacity 0.45s ease, transform 0.45s ease;
    pointer-events: none; }
  .mcb-header__topbar-rotator-item.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto; }
  .mcb-header__main-inner {
    /* IMPORTANT : le socle desktop pose `height: 86px`, que les règles
           mobiles ne réécrivaient pas → la bande logo/icônes restait à 86px sur
           mobile, d'où un grand vide sous les icônes et la recherche « collée »
           tout en bas. On repasse en hauteur auto pilotée par min-height. */
    height: auto;
    min-height: 70px;
    display: grid;
    grid-template-columns: 48px minmax(120px, 1fr) 52px;
    column-gap: 10px; }
  .mcb-header__mobile-toggle {
    display: inline-flex;
    width: 46px;
    height: 46px;
    min-width: 46px;
    flex: 0 0 46px;
    justify-self: start; }
  .mcb-header__brand {
    gap: 0;
    grid-column: 1 / 3;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    column-gap: 10px;
    width: 100%;
    min-width: 0;
    overflow: visible; }
  .mcb-header__brand-link {
    justify-self: start;
    max-width: 220px;
    width: auto;
    min-width: 0; }
  .mcb-header__brand-link img.ui.fluid.image,
  .mcb-header__brand-link img {
    width: 220px !important;
    max-width: 100%;
    height: auto !important;
    max-height: 52px;
    max-width: 100%; }
  .mcb-header__main .mcb-header__search {
    display: none; }
  .mcb-header__mobile-search {
    display: block; }
  .mcb-header__actions {
    grid-column: 3;
    justify-self: end;
    gap: 0;
    width: auto;
    min-width: 52px; }
  .mcb-header__account {
    display: none; }
  #sylius-cart-button {
    flex-direction: row;
    min-width: 52px;
    min-height: 48px;
    padding: 0;
    border: 0;
    border-radius: 14px;
    background: transparent;
    box-shadow: none;
    gap: 0;
    justify-content: center; }
  /* On mobile, show only the icon (no label, no amount) */
  .mcb-header__cart-group {
    flex-direction: column;
    align-items: center;
    gap: 0; }
  .mcb-header__cart-group .mcb-header__cart-label {
    display: none; }
  .mcb-header__cart-total {
    display: none !important; }
  .mcb-header__cart-icon {
    width: 28px;
    height: 28px;
    flex-basis: 28px; }
  .mcb-header__cart-icon svg {
    width: 28px;
    height: 28px; }
  .mcb-header__cart-badge,
  #sylius-cart-nb-item {
    top: -6px;
    right: -8px;
    min-width: 20px;
    height: 20px;
    font-size: 11px;
    border-width: 2px; }
  .mcb-header__nav {
    display: none; }
  .mcb-header__brand-link img {
    filter: none; } }

@media screen and (max-width: 640px) {
  .mcb-header__container {
    padding-left: 12px;
    padding-right: 12px; }
  .site-main-container.ui.container {
    margin-left: 12px !important;
    margin-right: 12px !important; }
  .mcb-header__topbar-left {
    gap: 6px;
    font-size: 11.5px;
    justify-content: center; }
  .mcb-header__topbar-left span:first-child {
    display: none; }
  .mcb-header__topbar-separator {
    display: none; }
  .mcb-header__main-inner {
    min-height: 60px; }
  .mcb-header__brand-link {
    max-width: 200px; }
  .mcb-header__brand-link img.ui.fluid.image,
  .mcb-header__brand-link img {
    width: 200px !important;
    max-width: 100%;
    height: auto !important;
    max-height: 48px;
    max-width: 100%; }
  .mcb-header__mobile-search {
    /* Espaces haut/bas visuellement égaux autour de la pill : le haut
           inclut déjà ~7px d'air résiduel sous les icônes (rangée centrée dans
           les 60px de main-inner), donc padding-top plus petit que
           padding-bottom pour compenser (haut ≈ 7+6, bas ≈ 12+1px de bordure). */
    padding-top: 6px;
    padding-bottom: 12px;
    /* Rétractation au scroll (JS pose .is-search-hidden sur le header).
           max-height GÉNÉREUX : à 90px, sur certains mobiles (Samsung) l'input
           type=search se rend plus haut que prévu → le contenu dépassait et
           `overflow:hidden` clippait la marge basse (constaté <= 360px). 130px
           laisse toujours passer padding + input sans rogner le bas. */
    max-height: 130px;
    overflow: hidden;
    transition: max-height 0.28s ease, opacity 0.28s ease, padding-top 0.28s ease, padding-bottom 0.28s ease; }
  .mcb-header.is-search-hidden .mcb-header__mobile-search {
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
    pointer-events: none; }
  .mcb-header__search--mobile .mcb-header-search__input {
    height: 42px;
    font-size: 14px !important;
    padding-left: 14px !important;
    padding-right: 46px !important;
    text-overflow: ellipsis; } }

@media screen and (max-width: 360px) {
  .mcb-header__container {
    padding-left: 10px;
    padding-right: 10px; }
  .mcb-header__main-inner {
    grid-template-columns: 46px minmax(92px, 1fr) 50px;
    column-gap: 8px; }
  .mcb-header__mobile-toggle {
    width: 44px;
    height: 44px;
    min-width: 44px;
    flex-basis: 44px; }
  .mcb-header__brand {
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 8px; }
  .mcb-header__brand-link {
    max-width: 150px; }
  .mcb-header__brand-link img.ui.fluid.image,
  .mcb-header__brand-link img {
    width: 150px !important;
    max-width: 100%;
    height: auto !important;
    max-height: 38px;
    max-width: 100%; }
  #sylius-cart-button {
    min-width: 50px;
    min-height: 46px; }
  .mcb-header__search--mobile .mcb-header-search__input {
    font-size: 13.5px !important; } }

/* ==========================================================================
   ACCOUNT POPUPS – V2 (Clean Terroir Counter)
   Override Semantic UI .ui.popup to match our design system.
   ========================================================================== */
/* ---- Semantic UI popup container override ---- */
#loginPopup.ui.popup,
#account-popup-content.ui.popup {
  background: var(--mcb-n-0);
  border: 1px solid var(--mcb-border-default);
  border-radius: var(--mcb-radius-interactive);
  box-shadow: var(--mcb-shadow-elevated);
  padding: 24px;
  font-family: var(--mcb-font-inter);
  color: var(--mcb-text-primary);
  min-width: 320px;
  width: calc(100vw - 24px);
  max-width: 360px;
  z-index: 13000 !important; }

/* Kill the Semantic UI arrow to keep it clean */
#loginPopup.ui.popup::before,
#account-popup-content.ui.popup::before {
  display: none; }

@media screen and (max-width: 1180px) {
  #loginPopup.ui.popup,
  #account-popup-content.ui.popup {
    width: calc(100vw - 20px);
    max-width: 360px; } }

/* ---- Login popup (popupLogin.html.twig) ---- */
/* The inner .mcb-login-popup wrapper now inherits from the popup container.
   We remove its own box styling so there's no double-box. */
.mcb-login-popup {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  font-family: var(--mcb-font-inter);
  color: var(--mcb-text-primary); }

.mcb-login-title {
  font-family: var(--mcb-font-primary);
  font-size: 20px;
  font-weight: 600;
  color: var(--mcb-green-main);
  margin: 0 0 20px;
  text-align: center; }

.mcb-login-title--secondary {
  font-size: 18px;
  margin-top: 12px; }

.mcb-login-field {
  margin-bottom: 16px !important; }

.mcb-login-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%; }

.mcb-login-input-wrapper input {
  padding-right: 48px !important; }

.mcb-login-input {
  width: 100%;
  height: 48px;
  padding: 0 16px;
  border-radius: var(--mcb-radius-chip);
  border: 1px solid var(--mcb-border-default) !important;
  background: var(--mcb-n-0);
  font-size: 14px;
  font-family: var(--mcb-font-inter);
  color: var(--mcb-text-primary);
  outline: none;
  transition: border-color 0.15s ease; }

.mcb-login-input:focus {
  border-color: var(--mcb-green-main) !important;
  box-shadow: none !important; }

.mcb-login-input::placeholder {
  color: var(--mcb-text-secondary); }

.mcb-login-eye-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: var(--mcb-text-secondary);
  cursor: pointer;
  padding: 4px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease; }

.mcb-login-eye-btn:hover,
.mcb-login-eye-btn:focus-visible {
  color: var(--mcb-green-main);
  outline: none; }

.mcb-eye-off-icon {
  display: none; }

.mcb-login-eye-btn.slash .mcb-eye-icon {
  display: none; }

.mcb-login-eye-btn.slash .mcb-eye-off-icon {
  display: block; }

.mcb-login-options {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  font-size: 13px; }

.mcb-login-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: var(--mcb-text-secondary);
  user-select: none; }

.mcb-login-checkbox span {
  font-family: var(--mcb-font-inter) !important;
  font-size: 13px !important;
  color: var(--mcb-text-secondary) !important;
  line-height: 1 !important; }

.mcb-login-checkbox input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  margin: 0; }

.mcb-login-forgot-link {
  color: var(--mcb-text-secondary);
  text-decoration: underline;
  font-size: 13px;
  font-family: var(--mcb-font-inter);
  transition: color 0.15s ease; }

.mcb-login-forgot-link:hover {
  color: var(--mcb-green-main); }

.mcb-login-divider {
  display: flex;
  align-items: center;
  text-align: center;
  margin: 24px 0;
  color: var(--mcb-text-secondary);
  font-size: 12px;
  font-weight: 500; }

.mcb-login-divider::before,
.mcb-login-divider::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid var(--mcb-border-default); }

.mcb-login-divider span {
  padding: 0 16px; }

.mcb-login-register-link {
  text-decoration: none !important; }

/* ---- Account popup (Connected) ---- */
.mcb-popup-account {
  min-width: 280px;
  width: 300px;
  max-width: calc(100vw - 24px);
  overflow: hidden;
  padding: 0 !important; }

.mcb-popup-account__greeting {
  font-family: var(--mcb-font-primary);
  font-size: 16px;
  font-weight: 600;
  color: var(--mcb-green-main);
  margin: 0;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--mcb-border-default); }

.mcb-account-menu {
  display: flex;
  flex-direction: column;
  padding: 8px; }

.mcb-account-menu__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  color: var(--mcb-text-primary);
  text-decoration: none !important;
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  font-weight: 500;
  border-radius: var(--mcb-radius-chip);
  transition: background-color 0.15s ease, color 0.15s ease; }

.mcb-account-menu__item:hover,
.mcb-account-menu__item:focus-visible {
  background-color: var(--mcb-n-25);
  color: var(--mcb-green-main);
  outline: none; }

.mcb-account-menu__icon {
  width: 18px;
  height: 18px;
  color: var(--mcb-green-main);
  flex-shrink: 0;
  transition: color 0.15s ease; }

.mcb-account-menu__item:hover .mcb-account-menu__icon,
.mcb-account-menu__item:focus-visible .mcb-account-menu__icon {
  color: var(--mcb-green-main); }

.mcb-account-menu__separator {
  height: 1px;
  background-color: var(--mcb-border-default);
  margin: 8px -8px; }

.mcb-account-menu__item--logout {
  color: var(--mcb-red-error, #d32f2f); }

.mcb-account-menu__item--logout .mcb-account-menu__icon {
  color: currentColor; }

.mcb-account-menu__item--logout:hover {
  background-color: color-mix(in srgb, var(--mcb-red-error, #d32f2f) 10%, transparent);
  color: var(--mcb-red-error, #d32f2f); }

@media (prefers-reduced-motion: reduce) {
  #site-header.mcb-header *,
  .mcb-mobile-drawer * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important; } }

/* ==========================================================================
   CART – empty state
   When the cart is empty, hide the total and show the label inline with icon.
   ========================================================================== */
.mcb-header__cart-button.is-empty .mcb-header__cart-text-group {
  flex-direction: row;
  align-items: center;
  gap: 0; }

.mcb-header__cart-button.is-empty .mcb-header__cart-total {
  display: none; }

.mcb-header__cart-button.is-empty .mcb-header__cart-label {
  font-size: 13px;
  font-weight: 500; }

#sylius-cart-nb-item {
  position: static !important;
  top: auto !important;
  right: auto !important;
  transform: none !important; }

/* ==========================================================================
   HEADER ACTIONS – Figma alignment
   Source of truth for the Compte / Panier controls.
   ========================================================================== */
.mcb-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px; }

.mcb-header__account {
  display: flex;
  align-items: center; }

.mcb-header__account .ui.menu,
.mcb-header__account .ui.inverted.menu {
  display: flex !important;
  align-items: center !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important; }

.mcb-header__account .ui.menu .item::before,
.mcb-header__account .ui.inverted.menu .item::before {
  display: none !important;
  content: none !important; }

.mcb-header__account-link {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 44px;
  min-height: 0;
  height: auto;
  align-self: center;
  padding: 0 4px !important;
  gap: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-inter);
  line-height: 1.5;
  text-decoration: none !important;
  transition: color 0.15s ease !important; }

.mcb-header__account-link:hover,
.mcb-header__account-link:focus-visible {
  background: transparent !important;
  color: #2A4A36 !important; }

.mcb-header__account-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: currentColor;
  flex: 0 0 20px; }

.mcb-header__account-icon svg {
  display: block;
  width: 20px;
  height: 20px;
  stroke-width: 2; }

.mcb-header__account-copy {
  display: contents; }

.mcb-header__account-label {
  display: block;
  margin-top: 2px;
  color: currentColor;
  font-family: var(--mcb-font-inter);
  font-size: 10.5px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap; }

#sylius-cart-button.mcb-header__cart-button,
#sylius-cart-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-width: 0;
  height: 48px;
  min-height: 48px;
  padding: 0 12px 0 16px !important;
  border: 0 !important;
  border-radius: 999px;
  background: #2A4A36 !important;
  color: #F4ECD8 !important;
  box-shadow: none !important;
  transform: none;
  font-family: var(--mcb-font-inter);
  text-decoration: none !important;
  transition: background-color 0.15s ease, color 0.15s ease; }

#sylius-cart-button:hover,
#sylius-cart-button:focus-visible,
#sylius-cart-button[aria-expanded="true"] {
  background: #355A45 !important;
  color: #F4ECD8 !important;
  box-shadow: none !important;
  transform: none; }

.mcb-header__cart-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  color: currentColor;
  stroke-width: 2; }

.mcb-header__cart-text-group,
.mcb-header__cart-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  min-width: 0;
  line-height: 1.25; }

.mcb-header__cart-label {
  color: #E5DCC2;
  font-family: var(--mcb-font-inter);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap; }

.mcb-header__cart-total,
#sylius-cart-total {
  color: #F4ECD8;
  font-family: var(--mcb-font-inter);
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0;
  font-variant-numeric: proportional-nums;
  font-feature-settings: "kern" 1, "tnum" 0;
  white-space: nowrap; }

.mcb-header__cart-badge,
#sylius-cart-nb-item {
  position: static !important;
  top: auto !important;
  right: auto !important;
  transform: none !important;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border: 0;
  border-radius: 999px;
  background: #E8C26B;
  color: #2A4A36;
  font-family: var(--mcb-font-inter);
  font-size: 11px;
  font-weight: 600;
  line-height: 1; }

@media (min-width: 640px) {
  .mcb-header__actions {
    gap: 16px; } }

@media screen and (max-width: 639px) {
  #sylius-cart-button.mcb-header__cart-button,
  #sylius-cart-button {
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0 !important;
    justify-content: center;
    gap: 0; }
  .mcb-header__cart-badge,
  #sylius-cart-nb-item {
    position: absolute !important;
    top: -6px !important;
    right: -6px !important; } }

/* ============================================= */
/* === HEADER CATEGORY V2 ====================== */
/* ============================================= */
@media screen and (min-width: 992px) {
  .mcb-header__search {
    max-width: 500px; }
  .mcb-header__nav-inner {
    position: relative;
    min-height: 50px; }
  .mcb-header__nav-list {
    gap: clamp(18px, 2vw, 32px); }
  .mcb-header__nav-item,
  .mcb-header__selection {
    position: static; }
  .mcb-header__nav-link {
    color: #2A4A36;
    font-size: 13.5px; }
  .mcb-header__selection-link {
    min-height: 32px;
    padding: 0 15px;
    border-color: rgba(42, 74, 54, 0.82);
    background: transparent;
    color: #2A4A36;
    box-shadow: none; }
  .mcb-header__selection-link:hover,
  .mcb-header__selection-link:focus-visible,
  .mcb-header__selection-link.is-active,
  .mcb-header__selection-link[aria-current="page"],
  .mcb-header__selection.is-open > .mcb-header__selection-link {
    border-color: #2A4A36;
    background: #2A4A36;
    color: #FBF7EF; }
  .mcb-header__mega-menu {
    top: 100%;
    left: 20px;
    right: 20px;
    width: auto;
    max-width: none;
    transform: translateY(-6px); }
  .mcb-header__nav-item.is-open > .mcb-header__mega-menu,
  .mcb-header__selection.is-open > .mcb-header__mega-menu {
    transform: translateY(0); }
  .mcb-header__mega-menu-inner {
    border-radius: 0 0 16px 16px;
    background: #FBF7EF;
    box-shadow: 0 24px 48px rgba(42, 74, 54, 0.12);
    padding: 22px; }
  .mcb-header__mega-menu-grid--2 {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.72fr); }
  .mcb-header__mega-menu-grid--3 {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 0.9fr) minmax(270px, 0.8fr); } }

.mcb-header__mega-intro,
.mcb-header__mega-link-meta {
  display: none; }

.mcb-header__mega-link {
  min-height: 36px;
  padding: 7px 10px;
  border-radius: 8px; }

.mcb-header__mega-editorial {
  min-width: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  padding: 10px;
  border: 1px solid rgba(216, 205, 186, 0.78);
  border-radius: 14px;
  background: rgba(255, 253, 248, 0.72); }

.mcb-header__mega-editorial-media {
  display: block;
  overflow: hidden;
  border-radius: 11px;
  background: #EFE7D2;
  aspect-ratio: 16 / 10; }

.mcb-header__mega-editorial-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.24s ease; }

.mcb-header__mega-editorial:hover .mcb-header__mega-editorial-img,
.mcb-header__mega-editorial:focus-within .mcb-header__mega-editorial-img {
  transform: scale(1.035); }

.mcb-header__mega-editorial-title {
  margin: 13px 2px 0;
  font-family: "MontserratED", sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  color: #1c1a17; }

.mcb-header__mega-editorial-text {
  margin: 6px 2px 0;
  font-family: "MontserratED", sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.42;
  color: #5C5340; }

.mcb-header__mega-editorial-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: fit-content;
  margin: auto 2px 0;
  padding-top: 12px;
  font-family: "MontserratED", sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #2A4A36;
  text-decoration: none; }

.mcb-header__mega-editorial-link svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round; }

.mcb-mobile-drawer__accordion-summary {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-height: 58px;
  padding-top: 7px;
  padding-bottom: 7px; }

.mcb-mobile-drawer__accordion-thumb {
  width: 44px;
  height: 44px;
  overflow: hidden;
  border-radius: 10px;
  background: #EFE7D2; }

.mcb-mobile-drawer__accordion-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; }

/* ==========================================================================
   ACCOUNT DROPDOWN – native sticky-safe menu
   ========================================================================== */
#site-header.mcb-header,
#site-header.mcb-header .mcb-header__main,
#site-header.mcb-header .mcb-header__nav,
#site-header.mcb-header .mcb-header__actions,
#site-header.mcb-header .mcb-header__account,
#site-header.mcb-header .mcb-header__account-menu,
#site-header.mcb-header .mcb-header__cart-shell {
  overflow: visible !important; }

.mcb-header__account {
  position: relative; }

.mcb-header__account-menu {
  position: relative; }

.mcb-header__account-menu::after {
  content: "";
  position: absolute;
  top: 100%;
  right: 0;
  width: 306px;
  height: 28px;
  pointer-events: auto; }

.mcb-account-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 13000;
  width: 286px;
  max-width: calc(100vw - 24px);
  overflow: hidden;
  border: 1px solid var(--mcb-border-default);
  border-radius: 14px;
  background: var(--mcb-n-0);
  box-shadow: 0 18px 38px rgba(21, 56, 38, 0.14);
  color: var(--mcb-text-primary);
  font-family: var(--mcb-font-inter);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* Carte compacte ancrée sous l'icône : léger glissement + échelle depuis le coin
       haut-droit pour un effet « la carte émerge du bouton ». Même courbe/durée que
       les méga-menus pour rester cohérent avec le langage de mouvement du header. */
  transform: translateY(-8px) scale(0.98);
  transform-origin: top right;
  transition: opacity 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), visibility 0s linear 0.22s; }

.mcb-header__account-menu:hover .mcb-account-dropdown,
.mcb-header__account-menu:focus-within .mcb-account-dropdown,
.mcb-header__account-menu.is-account-open .mcb-account-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition-delay: 0s; }

.mcb-account-dropdown__header {
  padding: 15px 16px 13px;
  border-bottom: 1px solid var(--mcb-border-default);
  background: linear-gradient(180deg, rgba(244, 236, 216, 0.42), rgba(251, 247, 239, 0)); }

.mcb-account-dropdown__greeting {
  margin: 0;
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-primary);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25; }

.mcb-account-dropdown .mcb-account-menu {
  padding: 8px; }

.mcb-account-dropdown .mcb-account-menu__item {
  min-height: 40px;
  gap: 10px;
  padding: 9px 10px; }

.mcb-account-dropdown .mcb-account-menu__icon {
  width: 28px;
  height: 28px;
  padding: 6px;
  border-radius: 999px;
  background: rgba(42, 74, 54, 0.08);
  transition: background-color 0.15s ease, color 0.15s ease; }

.mcb-account-dropdown .mcb-account-menu__item:hover .mcb-account-menu__icon,
.mcb-account-dropdown .mcb-account-menu__item:focus-visible .mcb-account-menu__icon {
  background: rgba(42, 74, 54, 0.12); }

.mcb-account-dropdown .mcb-account-menu__separator {
  margin: 8px -8px; }

.mcb-account-dropdown .mcb-account-menu__item--logout .mcb-account-menu__icon {
  background: rgba(211, 47, 47, 0.08); }

/* Sticky-safe login dropdown fallback. Semantic UI still initializes the form,
   but hover/focus display is controlled here when the header is sticky. */
.mcb-header__account-menu #loginPopup.ui.popup {
  display: block !important;
  top: calc(100% + 8px) !important;
  right: 0 !important;
  left: auto !important;
  /* Même mouvement que .mcb-account-dropdown (glissement + échelle depuis le coin
       haut-droit) pour que les deux popups de l'espace compte soient identiques. */
  transform: translateY(-8px) scale(0.98) !important;
  transform-origin: top right !important;
  margin: 0 !important;
  z-index: 13000 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), visibility 0s linear 0.22s !important; }

.mcb-header__account-menu:hover #loginPopup.ui.popup,
.mcb-header__account-menu:focus-within #loginPopup.ui.popup,
.mcb-header__account-menu.is-login-open #loginPopup.ui.popup {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) scale(1) !important;
  transition-delay: 0s !important; }

/* Accessibilité : respect de prefers-reduced-motion pour les popups de l'espace
   compte (login + dropdown connecté). Auparavant seuls les méga-menus étaient
   couverts ; ces deux popups continuaient d'animer malgré la préférence système. */
@media (prefers-reduced-motion: reduce) {
  .mcb-header__account-menu #loginPopup.ui.popup,
  .mcb-header__account-menu:hover #loginPopup.ui.popup,
  .mcb-header__account-menu:focus-within #loginPopup.ui.popup,
  .mcb-header__account-menu.is-login-open #loginPopup.ui.popup,
  .mcb-account-dropdown,
  .mcb-header__account-menu:hover .mcb-account-dropdown,
  .mcb-header__account-menu:focus-within .mcb-account-dropdown,
  .mcb-header__account-menu.is-account-open .mcb-account-dropdown {
    transform: none !important;
    transition-duration: 0.01ms !important; } }

/* Figma hover: account control warms to gold with a soft transition. */
.mcb-header__account-link,
.mcb-header__account-link .mcb-header__account-icon,
.mcb-header__account-link .mcb-header__account-label {
  transition: color 0.18s ease !important; }

.mcb-header__account-link:hover,
.mcb-header__account-link:focus-visible,
.mcb-header__account-menu:hover .mcb-header__account-link,
.mcb-header__account-menu:focus-within .mcb-header__account-link,
.mcb-header__account-menu.is-account-open .mcb-header__account-link,
.mcb-header__account-menu.is-login-open .mcb-header__account-link {
  color: var(--mcb-gold-dark) !important; }

/* ============================================= */
/* === HEADER NAV V3, redesign mix ============= */
/* ============================================= */
@media screen and (min-width: 992px) {
  .mcb-header__nav {
    background: #FBF7EF;
    border-top: 1px solid rgba(230, 223, 203, 0.6);
    border-bottom: 1px solid #E6DFCB; }
  .mcb-header__nav-inner {
    max-width: 1240px;
    min-height: 42px;
    padding: 0 24px;
    gap: 12px; }
  .mcb-header__nav-list {
    justify-content: flex-start;
    gap: 2px; }
  .mcb-header__nav-link,
  .mcb-header__selection-link {
    font-family: var(--mcb-font-primary, "MontserratED", sans-serif); }
  .mcb-header__nav-link {
    min-height: 42px;
    padding: 8px 11px;
    border-radius: 6px;
    color: #4A4030;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    gap: 3px;
    transition: color 0.12s ease; }
  .mcb-header__nav-link:hover,
  .mcb-header__nav-link:focus-visible,
  .mcb-header__nav-link.is-active,
  .mcb-header__nav-link[aria-current="page"],
  .mcb-header__nav-item.is-open > .mcb-header__nav-link {
    color: #2A4A36;
    font-weight: 500; }
  .mcb-header__nav-chevron,
  .mcb-header__selection-chevron {
    width: 12px;
    height: 12px;
    opacity: 0.45;
    transition: transform 0.2s ease, opacity 0.2s ease, color 0.2s ease; }
  .mcb-header__nav-chevron svg,
  .mcb-header__selection-chevron svg {
    width: 12px;
    height: 12px;
    stroke-width: 2; }
  .mcb-header__nav-item.is-open .mcb-header__nav-chevron,
  .mcb-header__selection.is-open .mcb-header__selection-chevron,
  .mcb-header__nav-link.is-active .mcb-header__nav-chevron,
  .mcb-header__nav-link[aria-current="page"] .mcb-header__nav-chevron {
    color: #C28A3A;
    opacity: 1;
    transform: rotate(180deg); }
  .mcb-header__nav-link::after {
    left: 11px;
    right: 11px;
    bottom: 6px;
    width: auto;
    height: 2px;
    border-radius: 2px;
    background: #C28A3A;
    opacity: 0;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.2s ease, opacity 0.2s ease; }
  .mcb-header__nav-link:hover::after,
  .mcb-header__nav-link:focus-visible::after,
  .mcb-header__nav-link.is-active::after,
  .mcb-header__nav-link[aria-current="page"]::after,
  .mcb-header__nav-item.is-open > .mcb-header__nav-link::after {
    opacity: 1;
    transform: scaleX(1); }
  .mcb-header__selection {
    justify-self: end; }
  .mcb-header__selection-link {
    min-height: 30px;
    padding: 0 16px;
    border: 1.5px solid #2A4A36;
    border-radius: 999px;
    background: transparent;
    color: #2A4A36;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0;
    gap: 5px;
    box-shadow: none;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
  .mcb-header__selection-link::after {
    display: none; }
  .mcb-header__selection-link:hover,
  .mcb-header__selection-link:focus-visible,
  .mcb-header__selection-link.is-active,
  .mcb-header__selection-link[aria-current="page"],
  .mcb-header__selection.is-open > .mcb-header__selection-link {
    border-color: #2A4A36;
    background: #2A4A36;
    color: #F4ECD8; }
  .mcb-header__selection.is-open .mcb-header__selection-chevron,
  .mcb-header__selection-link.is-active .mcb-header__selection-chevron,
  .mcb-header__selection-link[aria-current="page"] .mcb-header__selection-chevron {
    color: currentColor;
    opacity: 1;
    transform: rotate(180deg); }
  .mcb-header__mega-menu {
    top: 100%;
    left: 50%;
    right: auto;
    width: 100vw;
    max-width: none;
    background: #FCFAF5;
    border-top: 1px solid #E6DFCB;
    box-shadow: 0 28px 64px rgba(42, 74, 54, 0.13);
    transform: translateX(-50%) translateY(-4px);
    transition: opacity 0.16s ease, visibility 0.16s ease, transform 0.16s ease; }
  .mcb-header__nav-item.is-open > .mcb-header__mega-menu,
  .mcb-header__selection.is-open > .mcb-header__mega-menu {
    transform: translateX(-50%) translateY(0); }
  .mcb-header__mega-menu-inner {
    max-width: 1120px;
    max-height: 400px;
    margin: 0 auto;
    padding: 26px 24px 22px;
    overflow-y: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none; }
  .mcb-header__mega-menu-grid {
    gap: 24px;
    align-items: start; }
  .mcb-header__mega-menu-grid--2 {
    grid-template-columns: minmax(0, 1fr) 280px; }
  .mcb-header__mega-menu-grid--3 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 280px; }
  .mcb-header__mega-menu-grid--selection {
    grid-template-columns: repeat(2, minmax(220px, 280px));
    gap: 28px; }
  .mcb-header__mega-section-head {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 12px; }
  .mcb-header__mega-section-bar {
    width: 2px;
    height: 12px;
    border-radius: 2px;
    background: #E8C26B;
    flex: 0 0 auto; }
  .mcb-header__mega-title {
    margin: 0;
    color: #C28A3A;
    font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.22em;
    line-height: 1.2;
    text-transform: uppercase; }
  .mcb-header__mega-links {
    gap: 1px; }
  .mcb-header__mega-link {
    min-height: 0;
    padding: 7px 10px;
    border-radius: 8px;
    color: #5C5340;
    background: transparent;
    box-shadow: none;
    justify-content: space-between;
    gap: 12px;
    transition: background-color 0.12s ease, color 0.12s ease;
    transform: none; }
  .mcb-header__mega-link:hover,
  .mcb-header__mega-link:focus-visible {
    color: #2A4A36;
    background: #EFE7D2;
    box-shadow: none;
    transform: none; }
  .mcb-header__mega-link.is-featured {
    color: #2A4A36;
    background: transparent;
    box-shadow: none; }
  .mcb-header__mega-link.is-featured:hover,
  .mcb-header__mega-link.is-featured:focus-visible {
    color: #2A4A36;
    background: #EFE7D2;
    box-shadow: none; }
  .mcb-header__mega-link-label {
    font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.25; }
  .mcb-header__mega-link.is-featured .mcb-header__mega-link-label {
    font-weight: 600; }
  .mcb-header__mega-link-arrow {
    width: 11px;
    height: 11px;
    flex: 0 0 auto;
    color: #C28A3A;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 0.12s ease, transform 0.12s ease;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round; }
  .mcb-header__mega-link:hover .mcb-header__mega-link-arrow,
  .mcb-header__mega-link:focus-visible .mcb-header__mega-link-arrow {
    opacity: 1;
    transform: translateX(0); }
  .mcb-header__mega-editorial {
    min-width: 0; }
  .mcb-header__mega-editorial-card {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 5 / 4;
    border-radius: 16px;
    text-decoration: none;
    color: #F4ECD8;
    box-shadow: 0 4px 16px rgba(42, 74, 54, 0.08);
    transition: box-shadow 0.3s ease; }
  .mcb-header__mega-editorial-card:hover,
  .mcb-header__mega-editorial-card:focus-visible {
    box-shadow: 0 12px 40px rgba(42, 74, 54, 0.18); }
  .mcb-header__mega-editorial-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease; }
  .mcb-header__mega-editorial-card:hover .mcb-header__mega-editorial-img,
  .mcb-header__mega-editorial-card:focus-visible .mcb-header__mega-editorial-img {
    transform: scale(1.04); }
  .mcb-header__mega-editorial-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(26, 43, 30, 0.92) 0%, rgba(26, 43, 30, 0.22) 45%, transparent 70%);
    pointer-events: none; }
  .mcb-header__mega-editorial-tag {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    padding: 3px 9px;
    border-radius: 999px;
    background: #E8C26B;
    color: #2A4A36;
    font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase; }
  .mcb-header__mega-editorial-body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: block;
    padding: 14px; }
  .mcb-header__mega-editorial-title {
    display: block;
    margin: 0 0 2px;
    color: #F4ECD8;
    font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25; }
  .mcb-header__mega-editorial-text {
    display: block;
    margin: 0 0 10px;
    color: rgba(229, 220, 194, 0.72);
    font-size: 11px;
    line-height: 1.35; }
  .mcb-header__mega-editorial-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1; }
  .mcb-header__mega-editorial-link svg,
  .mcb-header__mega-footer-link svg {
    width: 13px;
    height: 13px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round; }
  .mcb-header__mega-editorial-link svg {
    width: 10px;
    height: 10px; }
  .mcb-header__mega-footer {
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid #E6DFCB;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px; }
  .mcb-header__mega-footer-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #C28A3A;
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    transition: color 0.12s ease; }
  .mcb-header__mega-footer-link:hover,
  .mcb-header__mega-footer-link:focus-visible {
    color: #2A4A36; }
  .mcb-header__mega-footer-meta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #8A7A5A;
    font-size: 10.5px;
    line-height: 1.3;
    text-align: right; }
  .mcb-header__mega-footer-dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #5BAD7B;
    flex: 0 0 auto; } }

@media screen and (max-width: 1180px) and (min-width: 992px) {
  .mcb-header__nav-list {
    gap: 1px; }
  .mcb-header__nav-link {
    padding-inline: 9px;
    font-size: 12.4px; }
  .mcb-header__selection-link {
    padding-inline: 13px;
    font-size: 12.2px; } }

@media screen and (min-width: 992px) {
  #site-header.mcb-header .mcb-header__nav-item > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__nav-item:nth-child(-n+2) > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__nav-item:nth-last-child(-n+2) > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__selection > .mcb-header__mega-menu {
    left: 50%;
    right: auto;
    transform: translateX(-50%) translateY(-4px); }
  #site-header.mcb-header .mcb-header__nav-item.is-open > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__nav-item:nth-child(-n+2).is-open > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__nav-item:nth-last-child(-n+2).is-open > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__selection.is-open > .mcb-header__mega-menu {
    left: 50%;
    right: auto;
    transform: translateX(-50%) translateY(0); } }

/* Mega menu titles aligned with the Figma homepage redesign. */
.mcb-header__mega-section-head {
  display: block;
  margin-bottom: 0; }

.mcb-header__mega-section-bar {
  display: none; }

p.mcb-header__mega-title,
.mcb-header__mega-title {
  --spacing: 0.25rem;
  margin: 0 0 calc(var(--spacing) * 3);
  color: #C28A3A;
  font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.22em;
  line-height: 1.3;
  text-transform: uppercase; }

/* ============================================================
   HEADER NAV — direction « authentique élégant »
   (surcharge ciblée : barre de navigation + méga-menu uniquement)
   ============================================================ */
/* Filet doré fin en tête de la barre de navigation */
.mcb-header__nav {
  box-shadow: inset 0 1px 0 rgba(194, 138, 58, 0.55); }

/* Libellés de navigation : on conserve la police existante, accent sur le doré */
.mcb-header__nav-link,
.mcb-header__selection-link {
  letter-spacing: 0.005em; }

/* Soulignement animé passé en doré (au lieu du vert courant) */
.mcb-header__nav-link::after {
  height: 1.5px;
  bottom: 8px;
  background: var(--mcb-gold-main, #C28A3A);
  transform: scaleX(0); }

/* Pastille « La sélection » : accent doré au repos */
.mcb-header__selection-link {
  border-color: rgba(194, 138, 58, 0.55);
  color: #9A6E22; }

.mcb-header__selection-link:hover,
.mcb-header__selection-link:focus-visible,
.mcb-header__selection-link.is-active,
.mcb-header__selection-link[aria-current="page"],
.mcb-header__selection.is-open > .mcb-header__selection-link {
  border-color: var(--mcb-green-800);
  background: var(--mcb-green-800);
  color: var(--mcb-cream-50, #FBF7EF); }

/* Méga-menu : filet doré en tête de panneau */
.mcb-header__mega-menu-inner {
  box-shadow: 0 22px 46px rgba(21, 56, 38, 0.11), inset 0 2px 0 rgba(194, 138, 58, 0.5); }

/* (Bloc « liseré gauche doré » retiré : remplacé par le hover du composant.) */
/* (Bloc « Positionnement consolidé » retiré : désormais dans _header-nav.scss.) */
/* (Bloc « pastille La sélection survol » retiré : désormais dans _header-nav.scss.) */
/* (Bloc « courbes d'animation » retiré : désormais dans _header-nav.scss.) */
/* (Bloc « Alignement maquette » retiré : désormais dans _header-nav.scss.) */
/* (Bloc « Parité maquette — panneau méga » retiré : désormais dans _header-nav.scss.) */
/* ============================================================
   R9 — EN-TÊTE MOBILE / BANDEAU / RECHERCHE (tâche 7)
   ------------------------------------------------------------
   Refonte de l'en-tête sous `lg` pour parité maquette `StoreApp` :
   en-tête collant, rangée burger / logo / compte / panier en cibles
   tactiles >= 44px, pastille panier superposée non débordante, champ
   de recherche pleine largeur sous la rangée d'icônes (anti-zoom
   >= 16px), bandeau d'annonce borné au viewport.
   Tout est borné `respond-below('lg')` (max-width: 991px) → l'en-tête
   desktop (barre + méga menu, >= 992px) reste intact (R8).
   Placé après le legacy pour faire autorité ; valeurs via tokens
   `--mcb-*` et mixins partagés (`mcb-tap-target`).
   ============================================================ */
@media (max-width: 991px) {
  /* R9.1 — En-tête collant en haut du viewport (largeur déjà bornée à
       100% par le socle → pas de débordement horizontal). */
  #site-header.mcb-header {
    position: sticky;
    top: 0; }
  /* R9.5 — Bandeau d'annonce (top bar) borné au viewport. */
  .mcb-header__topbar,
  .mcb-header__topbar-inner {
    max-width: 100%; }
  /* S1 — Bandeau d'annonce <-> en-tête : seam ATTACHÉ (0).
       Décision d'arbitrage validée : la bande promo persistante
       `.mcb-header__topbar` et la nav forment un bloc collant unique ;
       on NE PAS introduit d'espace visible entre elles (seam = 0,
       valeur autorisée par R2.3). Le rythme haut de la zone hero est
       porté par l'espace en-tête <-> hero (#banner margin-top, S2).

       S1 — Bandeau CONDITIONNEL (vacances `.holiday-banner`) : la
       gouttière basse est portée par le bandeau LUI-MÊME, de sorte
       qu'elle disparaisse avec lui quand il est masqué/absent
       (aucun espace orphelin au-dessus de l'en-tête — R3.6). */
  .holiday-banner {
    margin-bottom: var(--mcb-space-md);
    /* 12px, gouttière portée par le bandeau (R3.6) */ }
  /* Rangée d'icônes : burger | logo | compte | panier.
       Colonne d'actions en `auto` pour loger compte + panier sans
       débordement (le logo occupe la colonne fluide `minmax(0, 1fr)`). */
  .mcb-header__main-inner {
    grid-template-columns: 48px minmax(0, 1fr) auto; }
  .mcb-header__actions {
    display: flex;
    align-items: center;
    gap: var(--mcb-space-sm);
    /* >= 8px bord à bord entre cibles (R5.2) */
    min-width: 0; }
  /* R9.2 — Déclencheur du drawer (burger) : cible tactile >= 44px. */
  .mcb-header__mobile-toggle {
    min-width: 44px;
    min-height: 44px; }
  /* R9.2 — Accès compte visible, icône seule, cible tactile >= 44px. */
  .mcb-header__account {
    display: flex;
    align-items: center; }
  .mcb-header__account-link {
    min-width: 44px;
    min-height: 44px;
    width: auto !important;
    /* neutralise le width:100% du menu stackable Semantic UI */
    justify-content: center;
    padding: 0 !important; }
  .mcb-header__account-label {
    display: none;
    /* icône seule (parité maquette StoreApp) */ }
  /* R9.2 — Accès panier : cible tactile >= 44px, icône seule. */
  #sylius-cart-button.mcb-header__cart-button,
  #sylius-cart-button {
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
    padding: 0 !important;
    justify-content: center;
    gap: 0; }
  .mcb-header__cart-text-group,
  .mcb-header__cart-label-mobile {
    display: none !important;
    /* icône seule (parité maquette StoreApp) */ }
  /* R9.3 — Pastille de comptage superposée à l'icône panier, bornée à
       l'intérieur du bouton (offset positif) → lisible et non débordante. */
  .mcb-header__cart-badge,
  #sylius-cart-nb-item {
    position: absolute !important;
    top: 2px !important;
    right: 2px !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important; }
  /* R9.4 — Champ de recherche pleine largeur SOUS la rangée d'icônes,
       affiché sur tout le mobile (le socle ne le montrait qu'entre md et lg). */
  .mcb-header__mobile-search {
    display: block; }
  .mcb-header__search--mobile {
    display: flex;
    width: 100%;
    max-width: none; }
  /* R9.4 / R5.3 — Anti-zoom iOS : police >= 16px. Force la valeur au-dessus
       du `13px !important` global (premium polish) pour le champ réellement
       rendu par le template (`.mcb-header__search-input`). */
  .mcb-header__search-input {
    font-size: 16px !important; } }

/* ============================================================
   COMPOSANT NAV + MÉGA — SOURCE UNIQUE (fidèle à la maquette).
   Importé en dernier : il fait autorité sur tout le legacy ci-dessus.
   Pour modifier la nav / le méga, éditer _header-nav.scss (et lui seul).
   ============================================================ */
/* ============================================================
   MonComtéBon — COMPOSANT NAV + MÉGA (source unique).
   CSS fidèle à la maquette header-v2.html, mappée sur les classes BEM du dev.
   Scopé #site-header.mcb-header, exhaustif → aucune règle legacy ne fuit.
   Desktop ≥ 992px (le mobile reste géré par le drawer existant).
   ------------------------------------------------------------
   Tokens maquette : vert #2A4A36 / #1F3828 · doré #C28A3A / #E8C26B ·
   gold-ink #8A5E20 · crème #FBF7EF / panel #FFFDF7 · bord #E6DFCB ·
   ink #3A4A40 · muted #7A6A4A · muted2 #9A8A6A · cream-light #F4ECD8
   ease : cubic-bezier(.25,.46,.45,.94)
   ============================================================ */
/* ---- Barre de navigation ---- */
#site-header.mcb-header .mcb-header__nav {
  position: relative;
  background: #FBF7EF;
  /* Filet doré (signature) en haut ; bordures neutralisées explicitement
       (0,2,1 bat les règles .mcb-header__nav legacy/media-query) pour que le
       header porte l'unique hairline du bas. */
  border-top: 0;
  border-bottom: 0;
  box-shadow: inset 0 1px 0 rgba(194, 138, 58, 0.5); }

@media screen and (min-width: 992px) {
  /* Conteneurs neutralisés : les mégas s'ancrent sur .mcb-header__nav
       (pleine largeur) ; le JS pose `left`, le panneau est centré sous l'entrée. */
  #site-header.mcb-header .mcb-header__nav-inner {
    position: static;
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 2px;
    min-height: 50px;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 24px; }
  #site-header.mcb-header .mcb-header__nav-list {
    position: static;
    display: flex;
    align-items: stretch;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none; }
  #site-header.mcb-header .mcb-header__nav-item {
    position: static;
    display: flex;
    align-items: stretch; }
  /* « La sélection » : pastille distincte, simple espace (pas de séparateur). */
  #site-header.mcb-header .mcb-header__selection {
    position: static;
    display: flex;
    align-items: center;
    margin-left: 16px; } }

/* ---- Liens de la barre ---- */
#site-header.mcb-header .mcb-header__nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 16px;
  min-height: 50px;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: clamp(13px, 1.1vw, 14px);
  font-weight: 600;
  letter-spacing: 0;
  color: #2A4A36;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

/* texte stable (pas de changement de couleur/graisse au survol) : seul le trait bouge */
#site-header.mcb-header .mcb-header__nav-link:hover,
#site-header.mcb-header .mcb-header__nav-link:focus-visible,
#site-header.mcb-header .mcb-header__nav-link.is-active,
#site-header.mcb-header .mcb-header__nav-link[aria-current="page"],
#site-header.mcb-header .mcb-header__nav-item.is-open > .mcb-header__nav-link {
  color: #2A4A36;
  font-weight: 600; }

/* Soulignement doré : 2px, animé en scaleX uniquement */
#site-header.mcb-header .mcb-header__nav-link::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 11px;
  height: 2px;
  border-radius: 999px;
  background: #C28A3A;
  opacity: 1;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

#site-header.mcb-header .mcb-header__nav-link:hover::after,
#site-header.mcb-header .mcb-header__nav-link:focus-visible::after,
#site-header.mcb-header .mcb-header__nav-link.is-active::after,
#site-header.mcb-header .mcb-header__nav-link[aria-current="page"]::after,
#site-header.mcb-header .mcb-header__nav-item.is-open > .mcb-header__nav-link::after {
  transform: scaleX(1); }

/* Chevrons */
#site-header.mcb-header .mcb-header__nav-chevron,
#site-header.mcb-header .mcb-header__selection-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  color: #9A8A6A;
  opacity: 1;
  transition: transform 0.24s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

#site-header.mcb-header .mcb-header__nav-chevron svg,
#site-header.mcb-header .mcb-header__selection-chevron svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round; }

#site-header.mcb-header .mcb-header__nav-item:hover .mcb-header__nav-chevron,
#site-header.mcb-header .mcb-header__nav-item.is-open .mcb-header__nav-chevron,
#site-header.mcb-header .mcb-header__selection.is-open .mcb-header__selection-chevron {
  transform: rotate(180deg); }

/* Le chevron de la pastille suit la couleur du texte (doré → crème au survol). */
#site-header.mcb-header .mcb-header__selection-chevron {
  color: currentColor; }

/* « La sélection » : pastille dorée arrondie (rappel du bouton panier),
   inversée au survol (fond doré + texte crème), comme l'ancien bouton. */
#site-header.mcb-header .mcb-header__selection-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 16px;
  border: 1.5px solid #C28A3A;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: clamp(12.5px, 1vw, 13.5px);
  font-weight: 700;
  letter-spacing: 0;
  color: #8A5E20;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

#site-header.mcb-header .mcb-header__selection-link::after {
  display: none; }

#site-header.mcb-header .mcb-header__selection-link:hover,
#site-header.mcb-header .mcb-header__selection-link:focus-visible,
#site-header.mcb-header .mcb-header__selection-link.is-active,
#site-header.mcb-header .mcb-header__selection-link[aria-current="page"],
#site-header.mcb-header .mcb-header__selection.is-open > .mcb-header__selection-link {
  background: #C28A3A;
  border-color: #C28A3A;
  color: #FFFDF7; }

/* ============================================================
   MÉGA-MENU (panneau)
   ============================================================ */
@media screen and (min-width: 992px) {
  /* Panneau : carte flottante. Position 'left' posée par le JS, centrée sous l'entrée.
       Même style pour les familles ET « La sélection » (sinon retombée legacy). */
  #site-header.mcb-header .mcb-header__nav-item.has-mega > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__selection > .mcb-header__mega-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: auto;
    width: 940px;
    min-width: 0;
    max-width: calc(100vw - 24px);
    margin: 0;
    background: #FFFDF7;
    border: 1px solid #E6DFCB;
    border-radius: 16px;
    box-shadow: 0 30px 70px -28px rgba(31, 56, 40, 0.42), inset 0 2px 0 rgba(194, 138, 58, 0.5);
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), visibility 0s linear 0.22s;
    z-index: 30; }
  /* « La sélection » : 2 colonnes, sans éditorial → plus compact. */
  #site-header.mcb-header .mcb-header__selection > .mcb-header__mega-menu {
    width: 620px; }
  #site-header.mcb-header .mcb-header__nav-item.has-mega.is-open > .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__selection.is-open > .mcb-header__mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: opacity 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), visibility 0s linear 0s; }
  /* Surface intérieure neutre (le panneau est l'unique fond). */
  #site-header.mcb-header .mcb-header__mega-menu-inner {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
    max-height: none; }
  /* Grille : porte le padding (= .mega-in), 3 colonnes équilibrées. */
  #site-header.mcb-header .mcb-header__mega-menu-grid {
    display: grid;
    justify-content: stretch;
    align-items: start;
    gap: 30px;
    padding: 26px 28px 0; }
  #site-header.mcb-header .mcb-header__mega-menu-grid--3 {
    grid-template-columns: 1fr 1fr 1.05fr; }
  #site-header.mcb-header .mcb-header__mega-menu-grid--2 {
    grid-template-columns: 1fr 1.05fr; }
  #site-header.mcb-header .mcb-header__mega-menu-grid--selection {
    grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* En-tête de colonne : filet doré + libellé brun discret */
#site-header.mcb-header .mcb-header__mega-section-head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px; }

#site-header.mcb-header .mcb-header__mega-section-bar {
  display: inline-block;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: #C28A3A; }

#site-header.mcb-header .mcb-header__mega-title {
  margin: 0;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #7A6A4A; }

/* Liens du méga */
#site-header.mcb-header .mcb-header__mega-links {
  display: flex;
  flex-direction: column;
  gap: 2px; }

#site-header.mcb-header .mcb-header__mega-link {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 40px;
  margin: 0 -10px;
  padding: 9px 10px;
  border-radius: 9px;
  color: #3A4A40;
  text-decoration: none;
  box-shadow: none;
  transform: none;
  transition: background-color 0.18s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

#site-header.mcb-header .mcb-header__mega-link:hover,
#site-header.mcb-header .mcb-header__mega-link:focus-visible {
  background: #F4ECD8;
  color: #2A4A36;
  box-shadow: none;
  transform: none; }

#site-header.mcb-header .mcb-header__mega-link.is-featured {
  background: transparent;
  box-shadow: none; }

/* Le « Tout voir » (featured) reçoit aussi le survol (sinon annulé par la règle ci-dessus). */
#site-header.mcb-header .mcb-header__mega-link.is-featured:hover,
#site-header.mcb-header .mcb-header__mega-link.is-featured:focus-visible {
  background: #F4ECD8; }

#site-header.mcb-header .mcb-header__mega-link-label {
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.25;
  color: inherit; }

#site-header.mcb-header .mcb-header__mega-link.is-featured .mcb-header__mega-link-label {
  color: #2A4A36;
  font-weight: 700; }

#site-header.mcb-header .mcb-header__mega-link-arrow {
  margin-left: auto;
  width: 15px;
  height: 15px;
  color: #C28A3A;
  opacity: 0;
  transform: none;
  transition: opacity 0.18s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.18s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

#site-header.mcb-header .mcb-header__mega-link:hover .mcb-header__mega-link-arrow,
#site-header.mcb-header .mcb-header__mega-link:focus-visible .mcb-header__mega-link-arrow {
  opacity: 1;
  transform: translateX(2px); }

/* Fix rendu chevrons/flèches du mega menu : ces <path> décrivent un chevron
   ouvert ; sans fill:none + stroke, le path se remplit en noir (triangle plein).
   La classe .mcb-header__mega-link-arrow est sur le <svg> ; les liens editorial/
   footer ont un <svg> enfant. On force le tracé au trait dans les deux cas. */
#site-header.mcb-header .mcb-header__mega-link-arrow,
#site-header.mcb-header .mcb-header__mega-editorial-link svg,
#site-header.mcb-header .mcb-header__mega-footer-link svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round; }

/* Carte éditoriale */
#site-header.mcb-header .mcb-header__mega-editorial {
  padding: 0;
  border: 0;
  background: transparent; }

#site-header.mcb-header .mcb-header__mega-editorial-card {
  position: relative;
  display: block;
  min-height: 236px;
  height: auto;
  aspect-ratio: auto;
  border: 1px solid #E6DFCB;
  border-radius: 13px;
  box-shadow: none;
  overflow: hidden;
  text-decoration: none; }

#site-header.mcb-header .mcb-header__mega-editorial-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

#site-header.mcb-header .mcb-header__mega-editorial-card:hover .mcb-header__mega-editorial-img {
  transform: scale(1.04); }

#site-header.mcb-header .mcb-header__mega-editorial-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(31, 56, 40, 0.05), rgba(31, 56, 40, 0.8));
  pointer-events: none; }

#site-header.mcb-header .mcb-header__mega-editorial-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  padding: 5px 12px;
  border: 1px solid rgba(244, 236, 216, 0.6);
  border-radius: 999px;
  background: rgba(31, 56, 40, 0.45);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  color: #F4ECD8;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none; }

#site-header.mcb-header .mcb-header__mega-editorial-body {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 14px;
  z-index: 2;
  padding: 0;
  color: #F4ECD8; }

#site-header.mcb-header .mcb-header__mega-editorial-title {
  display: block;
  margin: 0;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #F4ECD8; }

#site-header.mcb-header .mcb-header__mega-editorial-text {
  display: block;
  margin: 4px 0 0;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.45;
  color: rgba(244, 236, 216, 0.85); }

#site-header.mcb-header .mcb-header__mega-editorial-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 10px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 700;
  color: #E8C26B; }

/* Footer du méga */
#site-header.mcb-header .mcb-header__mega-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 22px;
  padding: 14px 28px;
  border-top: 1px solid #E6DFCB;
  background: #FBF7EF; }

#site-header.mcb-header .mcb-header__mega-footer-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: 14px;
  font-weight: 700;
  color: #2A4A36;
  text-decoration: none;
  transition: color 0.18s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

#site-header.mcb-header .mcb-header__mega-footer-link:hover {
  color: #C28A3A; }

#site-header.mcb-header .mcb-header__mega-footer-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12px;
  color: #7A6A4A; }

#site-header.mcb-header .mcb-header__mega-footer-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #C28A3A; }

/* Accessibilité : mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  #site-header.mcb-header .mcb-header__mega-menu,
  #site-header.mcb-header .mcb-header__nav-link,
  #site-header.mcb-header .mcb-header__nav-link::after,
  #site-header.mcb-header .mcb-header__selection-link,
  #site-header.mcb-header .mcb-header__selection-link::after,
  #site-header.mcb-header .mcb-header__nav-chevron,
  #site-header.mcb-header .mcb-header__selection-chevron,
  #site-header.mcb-header .mcb-header__mega-link,
  #site-header.mcb-header .mcb-header__mega-link-arrow,
  #site-header.mcb-header .mcb-header__mega-editorial-img {
    transition-duration: 0.01ms !important; } }

/* ============================================================
   OVERLAY / DRAWER unifié — classes BEM réutilisables (R4, R5.1)
   ------------------------------------------------------------
   Matérialisation des mixins de la couche partagée
   (_responsive-patterns.scss) en classes consommées par les
   templates Twig : drawer de navigation, panneaux filtres/tri,
   mini-panier, sélecteur de variante, popups.
   Bornées SOUS lg (< 992 px) via respond-below('lg') : aucune
   règle n'est émise en desktop (non-régression R8). Contrat
   d'état JS↔CSS : classe .is-open sur backdrop/panneau +
   body.mcb-overlay-open (posées/retirées par le gestionnaire
   générique — tâche 3.2).
   ============================================================ */
@media (max-width: 991px) {
  /* Voile de fond commun : ferme au tap (R4.1). */
  .mcb-overlay__backdrop {
    position: fixed;
    inset: 0;
    z-index: var(--mcb-z-overlay, 40);
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--mcb-transition-base), visibility var(--mcb-transition-base); }
    .mcb-overlay__backdrop.is-open {
      opacity: 1;
      visibility: visible; }
  /* Panneau : hauteur bornée + scroll interne (R4.4). */
  .mcb-overlay__panel {
    display: flex;
    flex-direction: column;
    max-height: 85vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--mcb-surface-panel); }
  /* Bouton de fermeture : cible tactile >= 44 px, icône centrée (R5.1). */
  .mcb-overlay__close {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: var(--mcb-radius-chip);
    background: transparent;
    color: var(--mcb-text-primary);
    cursor: pointer; }
  /* Drawer latéral gauche (navigation) — R10. */
  .mcb-drawer--left {
    position: fixed;
    inset-block: 0;
    left: 0;
    z-index: var(--mcb-z-overlay, 40);
    width: min(88vw, 22rem);
    transform: translateX(-100%);
    transition: transform var(--mcb-transition-base);
    display: flex;
    flex-direction: column;
    max-height: 100vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--mcb-surface-panel); }
    .mcb-drawer--left.is-open {
      transform: translateX(0); }
  /* Drawer bas (filtres, tri, mini-panier, variante) — R4, R12, R13.7, R15, R18.3. */
  .mcb-drawer--bottom {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: var(--mcb-z-overlay, 40);
    margin-inline: auto;
    max-width: var(--mcb-shell-max, 480px);
    border-radius: 1rem 1rem 0 0;
    transform: translateY(100%);
    transition: transform var(--mcb-transition-base);
    display: flex;
    flex-direction: column;
    max-height: 85vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--mcb-surface-panel); }
    .mcb-drawer--bottom.is-open {
      transform: translateY(0); }
  /* Pied d'actions d'un drawer bas (réinitialiser / valider) — R4.5, R12.4. */
  .mcb-drawer__footer {
    margin-top: auto;
    display: flex;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--mcb-surface-panel);
    border-top: 1px solid var(--mcb-border-subtle);
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom)); }
  /* ========================================================
       DRAWER DE NAVIGATION à 2 niveaux (R10)
       --------------------------------------------------------
       Structure interne du drawer latéral gauche (mobile) :
       en-tête collant + corps à défilement interne hébergeant
       deux niveaux (racine ↔ rubrique) qui glissent en translateX.
       Bascule pilotée par public/js/shop/mcb-nav-drawer.js via la
       classe d'état .is-level-1 posée sur .mcb-nav-drawer.
       Valeurs exclusivement via tokens --mcb-* ; borné < lg.
       ======================================================== */
  /* Conteneur : hérite de .mcb-drawer--left + .mcb-overlay__panel
       (flex column, largeur bornée, hauteur pleine). On clippe le corps
       pour que le glissement des niveaux ne déborde pas. */
  .mcb-nav-drawer {
    overflow: hidden; }
  /* En-tête épuré (structure les2marmottes) : croix cerclée à gauche, sans
       titre visible ni barre séparateur. Respiration généreuse en tête. */
  .mcb-nav-drawer__head {
    position: sticky;
    top: 0;
    z-index: 1;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--mcb-space-xs);
    min-height: 64px;
    padding: var(--mcb-space-lg) var(--mcb-space-md);
    background: var(--mcb-surface-panel); }
  /* Titre conservé pour l'accessibilité + le JS (data-mcb-nav-title), mais
       masqué visuellement (plus de texte « Menu » ni de nom de section). */
  .mcb-nav-drawer__title--visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0; }
  /* Bouton retour : cible tactile, masqué au niveau racine,
       révélé au niveau 1 via .is-level-1. */
  .mcb-nav-drawer__back {
    min-width: 44px;
    min-height: 44px;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: var(--mcb-radius-chip);
    background: transparent;
    color: var(--mcb-text-accent);
    cursor: pointer; }
  /* Fermeture : croix cerclée bien visible, ancrée à GAUCHE (les2marmottes).
       Hérite de .mcb-overlay__close (cible tactile 44px, centrage). */
  .mcb-nav-drawer__close {
    flex: 0 0 auto;
    border: 1px solid var(--mcb-border-default);
    border-radius: 999px;
    background: var(--mcb-surface-panel);
    color: var(--mcb-text-primary);
    line-height: 1; }
  .mcb-nav-drawer__close svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round; }
  /* Corps : zone relative clippée ; les niveaux sont superposés et glissent. */
  .mcb-nav-drawer__body {
    position: relative;
    flex: 1 1 auto;
    overflow: hidden; }
  /* Un niveau = un panneau plein cadre, défilable, opaque (couvre le niveau
       sous-jacent pendant la transition). */
  .mcb-nav-drawer__level {
    position: absolute;
    inset: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: var(--mcb-space-sm) 0 var(--mcb-space-lg);
    background: var(--mcb-surface-panel);
    transition: transform var(--mcb-transition-slow); }
  /* Niveau racine : visible par défaut, glisse légèrement à gauche en niveau 1. */
  .mcb-nav-drawer__level--root {
    transform: translateX(0); }
  /* Niveaux de section : hors-champ à droite, masqués tant qu'inactifs.
       Padding intérieur cohérent (haut + latéral) façon maquette (px-3/py-3) :
       override le padding hérité de .mcb-nav-drawer__level (latéral 0) pour que
       « Tout voir », titres et liens ne collent pas au bord et respirent en tête. */
  .mcb-nav-drawer__level--section {
    transform: translateX(100%);
    visibility: hidden;
    padding: var(--mcb-space-md) var(--mcb-space-md) var(--mcb-space-lg); }
  .mcb-nav-drawer.is-level-1 .mcb-nav-drawer__back {
    display: inline-flex; }
  .mcb-nav-drawer.is-level-1 .mcb-nav-drawer__level--root {
    transform: translateX(-25%);
    pointer-events: none; }
  .mcb-nav-drawer.is-level-1 .mcb-nav-drawer__level--section.is-active {
    transform: translateX(0);
    visibility: visible; }
  /* Chevrons + flèche retour : tracé hérité de currentColor. */
  /* La classe .mcb-nav-drawer__chevron est portée par le <svg> LUI-MÊME
       (pas un enfant) : on cible donc l'élément directement, sinon la règle
       "… svg" ne matche pas → <path> rempli en noir (triangle plein) et taille
       non contrainte. .mcb-nav-drawer__back a bien un <svg> enfant. */
  .mcb-nav-drawer__back svg,
  .mcb-nav-drawer__chevron {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round; }
  /* Entrée de rubrique (niveau racine) : libellé + chevron.
       Lignes aérées façon maquette : padding vertical ~14px / horizontal ~20px
       (tokens + ajustement), libellé en police display (heading), min-height 44px
       garantie par .mcb-tap-target côté markup. */
  .mcb-nav-drawer__rubric {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--mcb-space-sm);
    width: 100%;
    padding: calc(var(--mcb-space-md) + 2px) calc(var(--mcb-space-lg) + var(--mcb-space-xs));
    border: 0;
    background: transparent;
    color: var(--mcb-text-primary);
    font-family: var(--mcb-font-heading);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--mcb-transition-fast); }
    .mcb-nav-drawer__rubric:active {
      background: var(--mcb-green-soft); }
  .mcb-nav-drawer__rubric-label {
    display: inline-flex;
    align-items: center;
    gap: var(--mcb-space-sm);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis; }
  /* « La sélection » : accent vert + étoile dorée à gauche du libellé. */
  .mcb-nav-drawer__rubric--selection {
    color: var(--mcb-text-accent);
    font-weight: 700; }
  /* Étoile de « La sélection » : pleine, dorée (indépendante du vert du libellé). */
  .mcb-nav-drawer__rubric-star {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: var(--mcb-gold-dark);
    fill: currentColor; }
  .mcb-nav-drawer__chevron {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--mcb-text-muted); }
  /* Liens de service (compte, contact) sous les rubriques.
       Vrai séparateur : bordure plus contrastée + respiration au-dessus. */
  .mcb-nav-drawer__quick {
    margin-top: var(--mcb-space-md);
    padding: var(--mcb-space-lg) calc(var(--mcb-space-lg) + var(--mcb-space-xs)) 0;
    border-top: 1px solid var(--mcb-border-default); }
  .mcb-nav-drawer__quick-link {
    display: flex;
    align-items: center;
    min-height: 44px;
    color: var(--mcb-text-secondary);
    font-family: var(--mcb-font-body);
    font-size: 0.95rem;
    text-decoration: none; }
    .mcb-nav-drawer__quick-link:active {
      color: var(--mcb-text-accent); }
  /* Groupe de section (niveau 1) : titre + liens.
       Le padding latéral est porté par .mcb-nav-drawer__level--section : le groupe
       ne fait que gérer la respiration verticale entre sections (~20px, parité mb-5). */
  .mcb-nav-drawer__group {
    margin-bottom: calc(var(--mcb-space-lg) + var(--mcb-space-xs));
    padding: 0; }
    .mcb-nav-drawer__group:last-child {
      margin-bottom: 0; }
  /* Titre de section : petit uppercase, tracking large, muted, filet doré à gauche.
       Padding latéral aligné sur les liens (~8px) → texte des titres et des liens
       alignés verticalement sous le padding du panneau. */
  .mcb-nav-drawer__group-title {
    display: flex;
    align-items: center;
    gap: var(--mcb-space-sm);
    margin: 0 0 var(--mcb-space-sm);
    padding: 0 var(--mcb-space-sm);
    color: var(--mcb-text-muted);
    font-family: var(--mcb-font-label);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase; }
  .mcb-nav-drawer__group-bar {
    flex: 0 0 auto;
    width: 2px;
    height: 12px;
    border-radius: var(--mcb-radius-chip);
    background: var(--mcb-gold-dark); }
  /* Lien de section : ligne confortable (~10px vertical / 8px horizontal),
       min-height 44px garantie par .mcb-tap-target (markup), coins arrondis,
       fond vert clair discret à l'appui. Taille lisible ~0.95rem. */
  .mcb-nav-drawer__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--mcb-space-sm);
    padding: calc(var(--mcb-space-sm) + 2px) var(--mcb-space-sm);
    border-radius: var(--mcb-radius-interactive);
    color: var(--mcb-text-primary);
    font-family: var(--mcb-font-body);
    font-size: 0.95rem;
    line-height: 1.3;
    text-decoration: none; }
    .mcb-nav-drawer__link:active {
      background: var(--mcb-green-soft); }
  /* « Tout voir » : lien de tête d'une section, visuellement distinct
       (accent vert, poids fort, police display) + respiration avant les sections.
       Marge latérale à 0 : l'alignement est assuré par le padding du panneau,
       cohérent avec les titres de section et les liens. */
  .mcb-nav-drawer__link--all {
    margin: 0 0 var(--mcb-space-md);
    color: var(--mcb-text-accent);
    font-family: var(--mcb-font-heading);
    font-weight: 700; } }

/* ============================================================
   DESKTOP (>= lg) : le drawer mobile et son backdrop ne doivent
   laisser AUCUN résidu — le mega menu desktop reprend la main (R10.7).
   ============================================================ */
@media (min-width: 992px) {
  .mcb-nav-drawer,
  .mcb-nav-drawer__backdrop {
    display: none; } }

/* ============================================= */
/* === ANNONCE (bandeau temporaire) ============= */
/* ============================================= */
.mcb-announce-bar {
  background: var(--mcb-gold-main);
  text-align: center;
  padding: 8px var(--mcb-space-md); }

.mcb-announce-bar__text {
  margin: 0;
  color: var(--mcb-green-active);
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  font-weight: 700; }

.product-card-rating {
  display: flex;
  align-items: center;
  margin: 6px 0 8px;
  white-space: nowrap; }

.product-card-rating__link {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 4px;
  text-decoration: none;
  color: #111;
  white-space: nowrap; }
  .product-card-rating__link:hover .product-card-rating__count {
    text-decoration: underline; }

.product-card-rating__value {
  font-weight: 700;
  font-size: 1rem;
  color: #0f1111;
  line-height: 1; }

.rating-stars {
  position: relative;
  display: inline-block;
  width: 82px;
  height: 16px;
  margin-top: 0; }

.rating-stars__base,
.rating-stars__fill {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-size: 16px 16px;
  background-repeat: repeat-x; }

.rating-stars__base {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d4d6dd' d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E"); }

.rating-stars__fill {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f5a524' d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");
  overflow: hidden; }

.product-card-rating__count {
  color: #5f6c7b;
  font-weight: 400;
  font-size: 0.93rem;
  line-height: 1;
  white-space: nowrap; }

#sylius-product-name {
  font-size: 20px;
  font-family: "MontserratED";
  font-weight: bold;
  line-height: 1.2;
  text-align: left;
  padding-bottom: 35px;
  text-transform: uppercase; }

.ui.card:not(.product-card-v2) .sylius-product-name {
  max-width: 327px;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: 'MontserratED';
  font-weight: 600; }

.ui.card:not(.product-card-v2) .productVariantDetailBox,
.variants .productVariantDetailBox {
  font-size: 0.85em;
  height: 20px; }

.ui.card:not(.product-card-v2) .productVariantNamesBox {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.28rem;
  overflow: hidden;
  min-height: 30px;
  width: 100%; }

.ui.card:not(.product-card-v2) .productVariantNamesBox.is-expanded {
  flex-wrap: wrap;
  overflow: visible; }

.ui.card:not(.product-card-v2) .productVariantNamesBox .productVariantIdChoice {
  flex: 0 0 auto;
  white-space: nowrap; }

.ui.card:not(.product-card-v2) .productVariantNamesBox .productVariantIdChoice.is-hidden {
  display: none !important; }

.ui.card:not(.product-card-v2) .productVariantMoreCount {
  margin: 0 !important;
  color: #6c757d !important;
  background-color: #f3f4f6 !important;
  border-color: #dfe3e8 !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  flex: 0 0 auto;
  white-space: nowrap;
  min-width: 2.35em;
  text-align: left; }

.ui.card:not(.product-card-v2) .productVariantMoreCount.is-hidden {
  display: none !important; }

.ui.card:not(.product-card-v2) .productVariantMoreCount:hover {
  background-color: #e8ebef !important;
  color: #4f5b66 !important; }

/* Product listing extracted */
#titleProductList.is-hidden {
  display: none; }

.products-layout-shell {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 24px;
  display: grid;
  grid-template-columns: 228px minmax(0, 1fr);
  gap: 40px;
  align-items: start; }

.products-layout-shell--without-sidebar {
  grid-template-columns: minmax(0, 1fr); }

.products-layout-main {
  min-width: 0;
  display: grid;
  gap: 16px; }

.products-layout-shell #productMenuComputer {
  margin-right: 0 !important;
  width: 228px;
  align-self: start;
  position: sticky;
  top: 32px; }

.products-filters-sidebar {
  width: 100%;
  color: var(--mcb-a-500); }

.products-filters-sidebar__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px; }

.products-filters-sidebar__title {
  margin: 0;
  color: #9A8A6A;
  font-family: Inter, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase; }

.products-filters-sidebar__reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #C28A3A;
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  transition: color var(--mcb-transition-fast); }

.products-filters-sidebar__reset svg {
  width: 12px;
  height: 12px;
  flex: 0 0 12px; }

.products-filters-sidebar__reset:hover,
.products-filters-sidebar__reset:focus-visible {
  color: var(--mcb-a-500);
  outline: none; }

.products-filters-sidebar__reset:focus-visible {
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.12); }

.products-filter-section {
  border-bottom: 1px solid var(--mcb-border-default); }

.products-filter-section__header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 1.25rem 0;
  border: 0;
  background: transparent;
  color: var(--mcb-a-500);
  font-family: Manrope, sans-serif;
  font-size: 15.5px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  list-style: none;
  transition: color var(--mcb-transition-fast); }

.products-filter-section__header::-webkit-details-marker {
  display: none; }

.products-filter-section__header svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  color: #9A8A6A;
  transform: rotate(180deg);
  transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), color var(--mcb-transition-fast); }

.products-filter-section__header:hover,
.products-filter-section__header:focus-visible {
  color: var(--mcb-green-active);
  outline: none; }

.products-filter-section__header:hover svg,
.products-filter-section__header:focus-visible svg {
  color: var(--mcb-a-500); }

.products-filter-section__header:focus-visible {
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.12); }

.products-filter-section:not([open]) .products-filter-section__header svg,
.products-filter-section.is-closing .products-filter-section__header svg {
  transform: rotate(0deg); }

.products-filter-section__body {
  /* display:block (pas flex) : l'animation JS anime la hauteur de ce conteneur ;
       en flex, les enfants (flex-shrink:1) se compriment pendant l'anim → saccade.
       PAS de padding ici : l'anim vise scrollHeight (qui inclut le padding) alors
       que `height` (content-box) ne couvre que le contenu → sinon dépassement puis
       « claquement » de fin. L'aération basse passe par le margin du dernier enfant
       (contenu dans le BFC via overflow:hidden → compté dans scrollHeight). */
  display: block;
  overflow: hidden;
  padding: 0;
  opacity: 1; }

.products-filter-section__body > *:last-child {
  margin-bottom: 1.25rem; }

/* Ligne interrupteur (Disponibilité / Livraison) — style les2marmottes. */
.products-filter-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--mcb-space-md, 12px);
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--mcb-border-default); }

.products-filter-toggle__text {
  color: var(--mcb-a-500);
  font-family: Manrope, sans-serif;
  font-size: 15.5px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer; }

.products-filter-switch {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex; }

.products-filter-switch__input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer; }

.products-filter-switch__track {
  display: inline-flex;
  align-items: center;
  width: 38px;
  height: 22px;
  padding: 3px;
  border-radius: 999px;
  background: var(--mcb-border-default);
  transition: background-color var(--mcb-transition-fast); }

.products-filter-switch__thumb {
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  transition: transform var(--mcb-transition-fast); }

.products-filter-switch__input:checked ~ .products-filter-switch__track {
  background: var(--mcb-a-500); }

.products-filter-switch__input:checked ~ .products-filter-switch__track .products-filter-switch__thumb {
  transform: translateX(16px); }

.products-filter-switch__input:focus-visible ~ .products-filter-switch__track {
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.2); }

.products-filter-link,
.products-filter-checkbox {
  min-height: 29px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 8px;
  color: #5C5340;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color var(--mcb-transition-fast), color var(--mcb-transition-fast); }

.products-filter-link:hover,
.products-filter-link:focus-visible,
.products-filter-checkbox:hover {
  background: #F0EDE4;
  color: var(--mcb-a-500);
  outline: none; }

.products-filter-link.is-active {
  background: rgba(42, 74, 54, 0.08);
  color: var(--mcb-a-500);
  font-weight: 600; }

.products-filter-checkbox {
  position: relative;
  cursor: pointer; }

.products-filter-checkbox input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none; }

.products-filter-checkbox__box {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #D0C9B8;
  border-radius: 4px;
  background: #fff;
  transition: background-color var(--mcb-transition-fast), border-color var(--mcb-transition-fast); }

.products-filter-checkbox input:checked + .products-filter-checkbox__box {
  border-color: var(--mcb-a-500);
  background: var(--mcb-a-500); }

.products-filter-checkbox input:checked + .products-filter-checkbox__box::after {
  content: "";
  width: 7px;
  height: 4px;
  border-bottom: 2px solid #F4ECD8;
  border-left: 2px solid #F4ECD8;
  transform: rotate(-45deg) translate(1px, -1px); }

.products-filter-checkbox input:focus-visible + .products-filter-checkbox__box {
  border-color: var(--mcb-a-500);
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.12); }

.products-filters-sidebar__note {
  margin-top: 20px;
  padding: 14px;
  border-radius: 12px;
  background: #F0EDE4; }

.products-filters-sidebar__note p {
  margin: 0;
  color: var(--mcb-a-500);
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5; }

.mcb-selection-filters {
  width: 100%;
  color: #2A4A36;
  font-family: Inter, MontserratED, sans-serif; }

.mcb-selection-filters__heading {
  margin: 0 0 16px; }

.mcb-selection-filters__title {
  margin: 0;
  color: #2A4A36;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase; }

.mcb-selection-filters a,
.mcb-selection-chips a {
  text-decoration: none; }

.mcb-selection-filters__all {
  min-height: 40px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-radius: 10px;
  color: #2A4A36;
  font-size: 13px;
  font-weight: 700;
  transition: background-color 180ms ease, color 180ms ease; }

.mcb-selection-filters__all:hover,
.mcb-selection-filters__all:focus-visible,
.mcb-selection-filters__category:hover,
.mcb-selection-filters__category:focus-visible,
.mcb-selection-filters__child:hover,
.mcb-selection-filters__child:focus-visible {
  background: #EFE7D2;
  color: #2A4A36;
  outline: none; }

.mcb-selection-filters__all.is-active {
  background: #2A4A36;
  color: #F4ECD8; }

.mcb-selection-filters__separator {
  height: 1px;
  margin: 14px 0 8px;
  background: #E6DFCB; }

.mcb-selection-filters__groups {
  display: grid;
  gap: 2px; }

.mcb-selection-filters__group {
  margin: 0; }

.mcb-selection-filters__category {
  width: 100%;
  min-height: 38px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-radius: 10px;
  border: 0;
  background: transparent;
  color: #2A4A36;
  cursor: pointer;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  list-style: none;
  text-align: left;
  text-transform: uppercase;
  transition: background-color 180ms ease, color 180ms ease; }

.mcb-selection-filters__category::-webkit-details-marker {
  display: none; }

.mcb-selection-filters__category::marker {
  content: ""; }

.mcb-selection-filters__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto; }

.mcb-selection-filters__meta svg {
  width: 14px;
  height: 14px;
  color: #9A8A6A;
  transform: rotate(180deg);
  transition: transform 180ms ease; }

.mcb-selection-filters__group:not([open]) .mcb-selection-filters__meta svg {
  transform: rotate(0deg); }

.mcb-selection-filters__children {
  padding: 0 0 4px 12px; }

.mcb-selection-filters__child {
  min-height: 32px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-radius: 10px;
  color: #7A6A4A;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.25;
  transition: background-color 180ms ease, color 180ms ease; }

.mcb-selection-filters__child.is-current {
  background: rgba(42, 74, 54, 0.08);
  color: #2A4A36;
  font-weight: 700; }

.mcb-selection-filters__note {
  margin-top: 24px;
  padding: 16px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid #E6DFCB;
  border-radius: 14px;
  background: rgba(42, 74, 54, 0.05); }

.mcb-selection-filters__note svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin-top: 2px;
  color: #2A4A36; }

.mcb-selection-filters__note strong {
  display: block;
  color: #2A4A36;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.25; }

.mcb-selection-filters__note p {
  margin: 4px 0 0;
  color: #7A6A4A;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45; }

.mcb-selection-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -6px 0 10px; }

.mcb-selection-chips__chip {
  min-height: 32px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #E6DFCB;
  border-radius: 999px;
  background: #FCFBF8;
  color: #5C5340;
  font-family: Inter, MontserratED, sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease; }

.mcb-selection-chips__chip span {
  color: currentColor;
  opacity: 0.55; }

.mcb-selection-chips__chip:hover,
.mcb-selection-chips__chip:focus-visible {
  border-color: #2A4A36;
  color: #2A4A36;
  outline: none; }

.mcb-selection-chips__chip.is-active {
  border-color: #2A4A36;
  background: #2A4A36;
  color: #F4ECD8; }

.mcb-taxon-menu.ui.vertical.menu {
  width: 100% !important;
  min-height: auto;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--mcb-border-default);
  border-radius: var(--mcb-radius-structural);
  background: var(--mcb-surface-panel);
  box-shadow: var(--mcb-shadow-rest); }

.mcb-taxon-menu.ui.vertical.menu::before,
.mcb-taxon-menu.ui.vertical.menu .item::before {
  display: none !important; }

.mcb-taxon-menu.ui.vertical.menu > .item,
.mcb-taxon-menu.ui.vertical.menu > a.item,
.mcb-taxon-menu.ui.vertical.menu > .header.item,
.mcb-taxon-menu.ui.vertical.menu .header.taxon.item {
  margin: 0;
  padding: 11px 13px !important;
  border-radius: 12px !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--mcb-text-secondary) !important;
  font-family: "MontserratED", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
  text-decoration: none;
  box-shadow: none !important; }

.mcb-taxon-menu.ui.vertical.menu > .item + .item,
.mcb-taxon-menu.ui.vertical.menu > a.item + a.item,
.mcb-taxon-menu.ui.vertical.menu > .header.item + a.item,
.mcb-taxon-menu.ui.vertical.menu .header.taxon.item + a.item {
  margin-top: 4px; }

.mcb-taxon-menu.ui.vertical.menu > .header.item,
.mcb-taxon-menu.ui.vertical.menu .header.taxon.item {
  color: var(--mcb-text-primary) !important;
  font-size: 12px;
  font-weight: var(--mcb-fw-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase; }

.mcb-taxon-menu.ui.vertical.menu > .item a,
.mcb-taxon-menu.ui.vertical.menu .header.taxon.item a {
  color: inherit !important; }

.mcb-taxon-menu.ui.vertical.menu > a.item:hover,
.mcb-taxon-menu.ui.vertical.menu > a.item:focus-visible,
.mcb-taxon-menu.ui.vertical.menu > .item:hover,
.mcb-taxon-menu.ui.vertical.menu > .item:focus-visible {
  background: var(--mcb-n-25) !important;
  border-color: var(--mcb-border-default) !important;
  color: var(--mcb-text-primary) !important;
  outline: none; }

.mcb-taxon-menu.ui.vertical.menu > a.item.active,
.mcb-taxon-menu.ui.vertical.menu > .header.taxon.item.active,
.mcb-taxon-menu.ui.vertical.menu > .item.active {
  background: var(--mcb-a-50) !important;
  border-color: var(--mcb-a-200) !important;
  color: var(--mcb-a-700) !important; }

.products-layout-toolbar {
  width: 100%;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none; }

.products-layout-toolbar__left,
.products-layout-toolbar__actions {
  display: flex;
  align-items: center;
  gap: 12px; }

.products-layout-toolbar__filters-button {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border: 1px solid var(--mcb-border-default);
  border-radius: 12px;
  background: var(--mcb-surface-panel);
  color: var(--mcb-a-500);
  font-family: Manrope, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color var(--mcb-transition-fast), box-shadow var(--mcb-transition-fast), color var(--mcb-transition-fast); }

.products-layout-toolbar__filters-button:hover,
.products-layout-toolbar__filters-button:focus-visible {
  border-color: var(--mcb-a-500);
  color: var(--mcb-a-500);
  outline: none;
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.1); }

.products-layout-toolbar__summary {
  min-width: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 400; }

.products-layout-toolbar__count {
  color: var(--mcb-a-500);
  font-weight: 600; }

.products-layout-toolbar__filter {
  margin: 0; }

.products-layout-toolbar__filter label {
  font-family: Inter, sans-serif;
  font-size: 13px;
  color: var(--mcb-a-500);
  font-weight: 500; }

.products-layout-toolbar__sort {
  min-height: 38px;
  padding: 8px 38px 8px 16px;
  border-radius: 12px;
  border: 1px solid var(--mcb-border-default) !important;
  background-color: var(--mcb-surface-panel) !important;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232A4A36' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 14px 14px !important;
  color: var(--mcb-text-primary) !important;
  font-family: Inter, sans-serif !important;
  font-size: 13px !important;
  box-shadow: none !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none; }

.products-layout-toolbar__sort:focus {
  border-color: var(--mcb-a-500) !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.12) !important; }

.taxon-listing-intro {
  position: relative;
  width: auto;
  max-width: none;
  margin: 0 calc(50% - 50vw);
  padding: 0;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid rgba(31, 56, 40, 0.88);
  background: var(--mcb-a-500);
  box-shadow: none;
  overflow: hidden; }

.taxon-listing-intro--with-image::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 42%;
  display: block;
  background-image: var(--taxon-intro-image);
  background-position: center right;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0.74; }

.taxon-listing-intro--with-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #2a4a36 0%, rgba(42, 74, 54, 0.98) 34%, rgba(42, 74, 54, 0.82) 58%, rgba(42, 74, 54, 0.54) 100%), linear-gradient(0deg, rgba(42, 74, 54, 0.26), rgba(42, 74, 54, 0.26));
  pointer-events: none; }

.taxon-listing-intro__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px 24px; }

.taxon-listing-intro__hero-title {
  margin: 0;
  color: var(--mcb-n-50);
  font-family: Manrope, sans-serif;
  font-size: clamp(28px, 3.8vw, 42px);
  font-weight: 700;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0;
  text-shadow: none; }

.taxon-listing-intro__breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
  color: rgba(244, 236, 216, 0.45);
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 400; }

.taxon-listing-intro__breadcrumb a {
  color: inherit;
  text-decoration: none;
  transition: color var(--mcb-transition-fast); }

.taxon-listing-intro__breadcrumb a:hover,
.taxon-listing-intro__breadcrumb a:focus-visible {
  color: var(--mcb-n-50);
  outline: none; }

.taxon-listing-intro__breadcrumb span:last-child {
  color: rgba(244, 236, 216, 0.75); }

.taxon-listing-intro__heading {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 8px; }

.taxon-listing-intro__description {
  max-width: 560px;
  margin: 0 0 20px;
  font-family: Inter, sans-serif;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(244, 236, 216, 0.62); }

.taxon-listing-intro__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px; }

.taxon-listing-intro__chip {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 14px;
  border-radius: var(--mcb-radius-chip);
  border: 1px solid rgba(244, 236, 216, 0.14);
  background: rgba(255, 255, 255, 0.1);
  color: var(--mcb-n-50);
  font-family: Manrope, sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color var(--mcb-transition-fast), border-color var(--mcb-transition-fast), color var(--mcb-transition-fast); }

.taxon-listing-intro__chip:hover,
.taxon-listing-intro__chip:focus-visible {
  border-color: rgba(244, 236, 216, 0.28);
  background: rgba(255, 255, 255, 0.18);
  color: var(--mcb-n-50);
  outline: none; }

.taxon-listing-intro__chip.is-active {
  border-color: var(--mcb-gold-main);
  background: var(--mcb-gold-main);
  color: var(--mcb-a-500); }

@media (min-width: 1025px) {
  .products-layout-shell,
  .taxon-listing-intro__inner {
    padding-right: 48px;
    padding-left: 48px; } }

.product-list-cards.ui.doubling.cards {
  margin-top: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  display: grid !important;
  align-items: stretch; }
  @media (min-width: 992px) {
    .product-list-cards.ui.doubling.cards {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 992px) {
    .product-list-cards.ui.doubling.cards {
      gap: 22px; } }

.mcb-listing-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 48px; }

.mcb-listing-pagination__button,
.mcb-listing-pagination__page,
.mcb-listing-pagination__ellipsis {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: Manrope, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: border-color var(--mcb-transition-fast), background-color var(--mcb-transition-fast), color var(--mcb-transition-fast), opacity var(--mcb-transition-fast); }

/* Cibles tactiles pagination ≥ 44px sur mobile (Apple/Google). Desktop = 36px. */
@media (max-width: 767px) {
  .mcb-listing-pagination__button,
  .mcb-listing-pagination__page {
    width: 44px;
    height: 44px;
    font-size: 14px; } }

.mcb-listing-pagination__button,
.mcb-listing-pagination__page {
  border: 1px solid var(--mcb-border-default);
  color: var(--mcb-a-500);
  background: transparent; }

.mcb-listing-pagination__button:hover,
.mcb-listing-pagination__button:focus-visible,
.mcb-listing-pagination__page:hover,
.mcb-listing-pagination__page:focus-visible {
  border-color: var(--mcb-a-500);
  color: var(--mcb-a-500);
  outline: none; }

.mcb-listing-pagination__button.is-disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none; }

.mcb-listing-pagination__page.is-active {
  border-color: var(--mcb-a-500);
  background: var(--mcb-a-500);
  color: var(--mcb-n-50);
  box-shadow: var(--mcb-shadow-rest); }

.mcb-listing-pagination__ellipsis {
  width: auto;
  min-width: 20px;
  color: var(--mcb-text-muted); }

.product-list-cards.ui.doubling.cards > .card,
.product-list-cards.ui.doubling.cards > .product-card-wrapper {
  width: 100% !important;
  margin: 0 !important; }

.product-list-cards.ui.doubling.cards > .product-card-wrapper > .ui.card,
.product-list-cards.ui.doubling.cards > .ui.card {
  width: 100% !important;
  margin: 0 !important; }

.product-list-cards.ui.doubling.cards > .product-card-wrapper {
  display: flex; }

/* Compteur (N) des facettes de filtre */
.products-filter-count {
  margin-left: 2px;
  color: #9A8A6A;
  font-variant-numeric: tabular-nums; }

/* Pastille de couleur (facette Couleur) */
.products-filter-swatch {
  display: inline-block;
  width: 11px;
  height: 11px;
  margin-right: 4px;
  border-radius: 50%;
  border: 1px solid rgba(31, 42, 34, 0.18);
  vertical-align: middle; }

/* Chips de filtres actifs (au-dessus de la grille) */
.products-active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px; }

.products-active-filters__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border: 1px solid rgba(42, 74, 54, 0.2);
  border-radius: 999px;
  background: rgba(42, 74, 54, 0.08);
  color: var(--mcb-a-500);
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color var(--mcb-transition-fast), border-color var(--mcb-transition-fast); }

.products-active-filters__chip svg {
  width: 11px;
  height: 11px;
  opacity: 0.75; }

.products-active-filters__chip:hover,
.products-active-filters__chip:focus-visible {
  background: rgba(42, 74, 54, 0.15);
  border-color: rgba(42, 74, 54, 0.32);
  outline: none; }

.products-active-filters__clear {
  margin-left: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--mcb-g-500, #C28A3A);
  font-family: Inter, sans-serif;
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
  transition: color var(--mcb-transition-fast); }

.products-active-filters__clear:hover,
.products-active-filters__clear:focus-visible {
  color: var(--mcb-a-500);
  outline: none; }

/* Pavé SEO bas de page catégorie (bloc CMS BitBag rattaché au taxon) */
.taxon-seo-content {
  width: auto;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: linear-gradient(180deg, #FFFDF7 0%, #F6F1E7 100%);
  border-top: 1px solid var(--mcb-border-default); }

.taxon-seo-content__inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 64px 24px 72px;
  color: #3A4A40;
  font-family: Inter, sans-serif;
  font-size: 15.5px;
  line-height: 1.75; }

/* Filet doré décoratif en tête de bloc */
.taxon-seo-content__inner::before {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin: 0 0 22px;
  border-radius: 999px;
  background: #C28A3A; }

.taxon-seo-content__inner > :first-child {
  margin-top: 0; }

.taxon-seo-content__inner > :last-child {
  margin-bottom: 0; }

/* Eyebrow optionnel : <p class="seo-eyebrow">…</p> */
.taxon-seo-content__inner .seo-eyebrow {
  margin: 0 0 10px;
  color: #C28A3A;
  font-family: Manrope, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase; }

.taxon-seo-content__inner h2 {
  margin: 0 0 16px;
  font-family: Manrope, sans-serif;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--mcb-a-500); }

.taxon-seo-content__inner h3 {
  margin: 34px 0 12px;
  font-family: Manrope, sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--mcb-a-500); }

/* Chapô optionnel : <p class="seo-lead">…</p> */
.taxon-seo-content__inner .seo-lead {
  margin: 0 0 22px;
  color: #2A4A36;
  font-size: 17px;
  line-height: 1.7; }

.taxon-seo-content__inner p {
  margin: 0 0 16px; }

.taxon-seo-content__inner ul,
.taxon-seo-content__inner ol {
  margin: 0 0 16px;
  padding: 0;
  list-style: none; }

.taxon-seo-content__inner ul li,
.taxon-seo-content__inner ol li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 8px; }

.taxon-seo-content__inner ul li::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 4px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #C28A3A; }

.taxon-seo-content__inner ol {
  counter-reset: seo-counter; }

.taxon-seo-content__inner ol li {
  counter-increment: seo-counter; }

.taxon-seo-content__inner ol li::before {
  content: counter(seo-counter);
  position: absolute;
  top: 0.05em;
  left: 0;
  color: #C28A3A;
  font-family: Manrope, sans-serif;
  font-size: 13px;
  font-weight: 700; }

.taxon-seo-content__inner a {
  color: #C28A3A;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--mcb-transition-fast); }

.taxon-seo-content__inner a:hover {
  color: var(--mcb-a-500); }

.taxon-seo-content__inner strong {
  color: var(--mcb-a-500);
  font-weight: 600; }

@media (max-width: 767px) {
  .taxon-seo-content__inner {
    padding: 44px 20px 52px;
    font-size: 15px; }
  .taxon-seo-content__inner h2 {
    font-size: 23px; } }

/* État vide de la grille (aucun produit pour la sélection courante) */
.products-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 72px 24px;
  text-align: center; }

.products-empty-state__icon {
  margin-bottom: 10px;
  color: #C9BFA6; }

.products-empty-state__title {
  margin: 0;
  color: var(--mcb-a-500);
  font-family: Manrope, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3; }

.products-empty-state__text {
  margin: 0;
  color: #7A6A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.5; }

.products-empty-state__reset {
  margin-top: 18px;
  padding: 10px 20px;
  border: 1px solid var(--mcb-a-500);
  border-radius: 12px;
  background: var(--mcb-a-500);
  color: var(--mcb-n-50);
  font-family: Manrope, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color var(--mcb-transition-fast), border-color var(--mcb-transition-fast); }

.products-empty-state__reset:hover,
.products-empty-state__reset:focus-visible {
  background: var(--mcb-green-active, #355A45);
  border-color: var(--mcb-green-active, #355A45);
  outline: none; }

.products-empty-state__reset:focus-visible {
  box-shadow: 0 0 0 3px rgba(42, 74, 54, 0.18); }

/* Cibles tactiles confortables sur mobile (filtres) */
@media (max-width: 767px) {
  .products-filter-link,
  .products-filter-checkbox {
    min-height: 40px;
    padding-top: 9px;
    padding-bottom: 9px; } }

/* ============================================================
   R12 — Catalogue mobile : onglets, barre « Filtrer / Trier » collante,
   drawers bas filtres & tri. Tout borné SOUS lg (< 992 px) ; le desktop
   (sidebar + toolbar + <select> tri) reste intact (non-régression R8).
   Le positionnement/scroll/backdrop des drawers provient des classes
   génériques d'overlay (.mcb-drawer--bottom, .mcb-overlay__panel,
   .mcb-overlay__backdrop, .mcb-overlay__close, .mcb-drawer__footer)
   stylées dans _header-nav.scss via la couche partagée. Ici : seulement
   l'habillage propre au catalogue. Valeurs via tokens --mcb-*.
   ============================================================ */
@media (max-width: 991px) {
  /* Toolbar mobile : on ne conserve que le compteur de produits ; le tri
       passe désormais par le drawer bas déclenché depuis la barre collante. */
  .products-layout-toolbar__filters-button,
  .products-layout-toolbar__actions {
    display: none; }
  /* R12.2 — Onglets de catégorie : chaque puce respecte la Zone_Tactile.
       La bande scrollable (mcb-hscroll) est posée en tâche 6. */
  .mcb-selection-chips__chip {
    min-height: 44px; }
  /* Cartes un peu plus grandes sur mobile : on réduit la gouttière latérale
       de la coquille (ex-24px) pour laisser plus de largeur aux 2 colonnes. */
  .products-layout-shell {
    /* La sidebar filtres passe en drawer sous lg : on supprime la colonne
           fantôme de 228px (+ gap 40px) héritée de la grille desktop, sinon le
           contenu est comprimé dans le `1fr` restant et sa grille déborde à
           droite (overflow horizontal constaté < 360px). */
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding-left: var(--mcb-space-lg);
    padding-right: var(--mcb-space-lg); }
  /* ---- R12.3 — Barre « Filtrer et trier » collante (les2marmottes) ---
       À gauche : bouton pill unique (ouvre le drawer filtres+tri).
       À droite : total de produits. */
  .products-mobile-actionbar {
    /* Non sticky : la barre défile avec la page. */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--mcb-space-md);
    margin: var(--mcb-space-sm) 0 var(--mcb-space-md);
    padding: var(--mcb-space-sm) 0;
    background: transparent; }
  .products-mobile-actionbar__btn {
    min-width: 44px;
    min-height: 44px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--mcb-space-sm);
    padding: 10px 18px;
    border: 1px solid var(--mcb-border-default);
    border-radius: 999px;
    /* Pilule bordée transparente sur la page (pas de fond blanc). */
    background: transparent;
    color: var(--mcb-text-primary);
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: border-color var(--mcb-transition-fast), background-color var(--mcb-transition-fast); }
  .products-mobile-actionbar__btn:hover,
  .products-mobile-actionbar__btn:focus-visible {
    border-color: var(--mcb-a-500);
    background: var(--mcb-n-25, #F0EDE4);
    outline: none; }
  .products-mobile-actionbar__btn svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px; }
  .products-mobile-actionbar__label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  /* Total de produits, à droite de la barre. */
  .products-mobile-actionbar__count {
    flex: 0 0 auto;
    color: var(--mcb-text-secondary);
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap; }
  /* R12.6 — Pastille de comptage des filtres actifs. */
  .products-mobile-actionbar__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--mcb-a-500);
    color: var(--mcb-n-50);
    font-family: Inter, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1; }
  /* ---- R12.4 — Drawer bas des filtres -------------------------------- */
  /* Feuille basse de hauteur FIXE (60% de l'écran), ancrée en bas : son sommet
       est largement sous le header → la croix flotte haut (niveau du drawer
       d'ajout rapide) sans être cachée. Hauteur stable : ouvrir une section fait
       défiler à l'intérieur (le corps), la feuille ne « pousse » plus. */
  .products-filters-drawer.mcb-drawer--bottom {
    height: 60vh;
    max-height: 60vh; }
  /* La croix flotte au-dessus de la feuille : overflow visible à l'ouverture
       seulement (fermé, on clippe pour ne pas laisser la croix traîner). */
  .products-filters-drawer.mcb-drawer--bottom.is-open {
    overflow: visible; }
  /* Croix flottante centrée, nettement au-dessus du bord haut (même niveau que
       le drawer d'ajout rapide). */
  .products-filters-drawer__close {
    position: absolute;
    top: calc(-1 * var(--mcb-space-3xl));
    left: 50%;
    z-index: 3;
    transform: translate(-50%, -50%);
    border-radius: 999px;
    background: var(--mcb-n-0, #fff);
    color: var(--mcb-text-primary);
    line-height: 1;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); }
  .products-filters-drawer__close svg {
    width: 20px;
    height: 20px; }
  /* Liste de facettes à défilement interne (R12.4). overscroll-behavior:contain
       empêche le scroll de « fuir » vers la page derrière le drawer. */
  .products-filters-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: var(--mcb-space-lg) 16px 8px; }
  /* Lignes de filtres ET options de tri : hauteur = contenu, padding vertical
       identique → le rythme vient du gap (0.5rem) des conteneurs, uniforme. */
  .products-filters-drawer .products-filter-checkbox,
  .products-filters-drawer .products-filter-link,
  .products-sort-drawer__option {
    min-height: 0;
    padding-top: 2px;
    padding-bottom: 2px; }
  /* Compteur produits déjà porté par la barre « Filtrer et trier » : on masque
       le résumé desktop (doublon « N produits »). */
  .products-layout-toolbar {
    display: none; }
  /* « Trier par » : accordéon replié par défaut, aligné sur les autres groupes.
       (Le rythme des options vient du gap de .products-sort-drawer__list.) */
  /* Le drawer porte déjà son propre titre : on masque les titres/notes
       internes de l'aside filtres réutilisée. */
  .products-filters-drawer__body .products-filters-sidebar__heading,
  .products-filters-drawer__body .products-filters-sidebar__note,
  .products-filters-drawer__body .mcb-selection-filters__note {
    display: none; }
  /* Page « sélection » : on aligne le bloc `mcb-selection-filters` sur le style
       du drawer catalogue (titres Manrope, repli, lignes compactes, gap 0.5rem). */
  .products-filters-drawer .mcb-selection-filters__heading,
  .products-filters-drawer .mcb-selection-filters__separator {
    display: none; }
  .products-filters-drawer .mcb-selection-filters__group {
    border-bottom: 1px solid var(--mcb-border-default); }
  .products-filters-drawer .mcb-selection-filters__category {
    min-height: 0;
    padding: 1.25rem 0;
    border-radius: 0;
    font-family: Manrope, sans-serif;
    font-size: 15.5px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    color: var(--mcb-a-500); }
  .products-filters-drawer .mcb-selection-filters__category:hover,
  .products-filters-drawer .mcb-selection-filters__category:focus-visible {
    background: transparent; }
  .products-filters-drawer .mcb-selection-filters__children {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0 0 1.25rem; }
  .products-filters-drawer .mcb-selection-filters__all,
  .products-filters-drawer .mcb-selection-filters__child {
    min-height: 0;
    padding: 2px 10px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 400; }
  .products-filters-drawer .mcb-selection-filters__all {
    font-weight: 600;
    margin-bottom: 0.5rem; }
  /* Pied : Réinitialiser + Voir N produits (mcb-drawer__footer fournit le
       flex + border-top + safe-area). */
  .products-filters-drawer__reset {
    flex: 1 1 0;
    min-height: 44px;
    border: 1px solid var(--mcb-border-default);
    border-radius: 999px;
    background: transparent;
    color: var(--mcb-text-primary);
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color var(--mcb-transition-fast), color var(--mcb-transition-fast); }
  .products-filters-drawer__reset:hover,
  .products-filters-drawer__reset:focus-visible {
    border-color: var(--mcb-a-500);
    color: var(--mcb-a-500);
    outline: none; }
  .products-filters-drawer__apply {
    flex: 1 1 0;
    min-height: 44px;
    border: 0;
    border-radius: 999px;
    background: var(--mcb-a-500);
    color: var(--mcb-n-50);
    font-family: Manrope, sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color var(--mcb-transition-fast); }
  .products-filters-drawer__apply:hover,
  .products-filters-drawer__apply:focus-visible {
    background: var(--mcb-green-active, #355A45);
    outline: none; }
  /* ---- R12.5 — Drawer bas de tri ------------------------------------- */
  .products-sort-drawer__list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    /* même rythme que les listes de filtres */
    padding: 0;
    /* Pas d'overflow ici : c'est un accordéon, pas un scroll interne
           (overflow-y:auto forçait un overflow-x:auto → barre horizontale). */ }
  /* Options de tri : mêmes lignes « à coche » que les filtres, mono-sélection. */
  .products-sort-drawer__option {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    min-height: 0;
    padding: 2px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #5C5340;
    font-family: Inter, sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    transition: background-color var(--mcb-transition-fast), color var(--mcb-transition-fast); }
  .products-sort-drawer__option:hover,
  .products-sort-drawer__option:focus-visible {
    background: #F0EDE4;
    color: var(--mcb-a-500);
    outline: none; }
  .products-sort-drawer__option.is-active {
    color: var(--mcb-a-500);
    font-weight: 600; }
  /* Case cochée de l'option de tri active (rendu identique aux cases de filtre). */
  .products-sort-drawer__option.is-active .products-filter-checkbox__box {
    border-color: var(--mcb-a-500);
    background: var(--mcb-a-500); }
  .products-sort-drawer__option.is-active .products-filter-checkbox__box::after {
    content: "";
    width: 7px;
    height: 4px;
    border-bottom: 2px solid #F4ECD8;
    border-left: 2px solid #F4ECD8;
    transform: rotate(-45deg) translate(1px, -1px); } }

/* Desktop (>= lg) : la barre collante mobile et les drawers/backdrops ne
   laissent AUCUN résidu dans le flux (le catalogue desktop utilise la sidebar
   + le <select> de tri). Parité avec le drawer de nav et le sélecteur de
   variante (R8). */
@media (min-width: 992px) {
  .products-mobile-actionbar,
  .products-filters-drawer,
  .products-sort-drawer,
  .products-filters-drawer__backdrop,
  .products-sort-drawer__backdrop {
    display: none !important; } }

.loadProductInBasket {
  position: relative !important; }

.product-detail {
  font-size: 13px;
  font-family: "MontserratED";
  color: #18273d;
  line-height: 1.7;
  text-align: justify; }

.cart-img-btn {
  filter: brightness(0) invert(1); }

.card > image {
  height: 243px; }

.productPricesBox {
  font-size: 1em; }

.mini-img-product {
  width: 130px !important; }

#right_sidebar_product {
  height: auto;
  padding: 0 25px 0 25px;
  box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.03);
  border: 1px solid rgba(34, 36, 38, 0.1);
  border-radius: 3px;
  background: #fff; }

.product-spec-price {
  height: 16px;
  font-size: 11px; }

.productVariantQuantityChoice {
  height: 28px;
  margin-top: 5px; }

.ui.section.divider {
  margin-bottom: 10px; }

.secondary-image {
  cursor: pointer; }

[data-tooltip-cart] {
  position: relative;
  cursor: default; }

[data-tooltip-cart]::before {
  position: absolute;
  width: 125px;
  left: calc(50% - 62.5px);
  bottom: 115%;
  text-align: center;
  box-sizing: border-box;
  content: attr(data-tooltip-cart);
  color: white;
  background: rgba(78, 83, 86, 0.9);
  padding: 5px 4px;
  border-radius: 8px;
  font-size: 0.9em;
  font-weight: bold;
  visibility: hidden;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s, transform 0.2s;
  z-index: 2; }

[data-tooltip-cart]:hover::before {
  opacity: 1;
  visibility: visible;
  transform: translateY(0); }

.ui.card:not(.product-card-v2) .productCardButton {
  width: 35px;
  height: 30px;
  padding: 0;
  background: transparent !important;
  border: none !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  margin: 0 !important; }

/* Icône panier (centrée et taille moyenne) */
.ui.card:not(.product-card-v2) .productCardButton .iconAddProductInBasket {
  width: 2rem;
  height: auto;
  display: block;
  filter: brightness(0) saturate(100%) invert(32%) sepia(100%) saturate(378%) hue-rotate(85deg) brightness(96%) contrast(92%); }

/* Loader Semantic UI (centré dans le bouton) */
.ui.card:not(.product-card-v2) .productCardButton .ui.loader {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  z-index: 2; }

/* ======= BOUTON AJOUTER AU PANIER (page produit) ======= */
button.addProductVariantSubmit {
  position: relative;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  min-height: 44px !important;
  padding: 0 20px !important;
  font-family: var(--mcb-font-inter) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  background-color: var(--mcb-btn-primary-bg) !important;
  color: var(--mcb-btn-primary-text) !important;
  border: 1px solid var(--mcb-btn-primary-border) !important;
  border-radius: 999px !important;
  width: 100% !important;
  overflow: hidden !important;
  cursor: pointer !important; }
  button.addProductVariantSubmit:hover {
    background-color: var(--mcb-btn-primary-bg-hover) !important;
    border-color: var(--mcb-btn-primary-border-hover) !important;
    box-shadow: none !important; }
  button.addProductVariantSubmit:focus-visible {
    box-shadow: 0 0 0 2px var(--mcb-text-on-accent), 0 0 0 5px rgba(42, 74, 54, 0.24) !important;
    outline: none !important; }
  button.addProductVariantSubmit:active {
    background-color: var(--mcb-btn-primary-bg-active) !important;
    border-color: var(--mcb-btn-primary-border-active) !important; }
  button.addProductVariantSubmit .button-content {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    z-index: 1;
    font-size: inherit !important;
    margin-left: 0;
    padding-top: 0; }
  button.addProductVariantSubmit .addProductVariantSubmit .iconAddProductInBasket {
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    line-height: inherit !important; }
  button.addProductVariantSubmit .cart-img-btn {
    display: inline-block !important;
    width: 0.95rem !important;
    height: 0.95rem !important;
    object-fit: contain !important;
    margin-left: 0 !important;
    vertical-align: middle !important;
    position: static !important;
    filter: brightness(0) invert(1); }

button.addProductVariantSubmit .cart-img-btn {
  position: static !important;
  vertical-align: middle !important;
  align-self: center !important;
  margin-bottom: 0; }

.loaderBtnProductinBasket {
  width: 1.6rem;
  height: 1.6rem;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-top-color: white;
  border-radius: 50%;
  animation: mcb-loader-spin 0.6s linear infinite;
  display: none; }

.loaderWrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22px;
  height: 22px;
  transform: translate(-50%, -50%);
  pointer-events: none; }

.loaderBtnProductinBasket.active {
  display: block; }

button.addProductVariantSubmit.productCardButton {
  all: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 30px;
  background-color: transparent;
  position: relative;
  cursor: pointer; }

/* Icône panier */
button.addProductVariantSubmit.productCardButton .iconAddProductInBasket {
  width: 22px;
  height: 22px;
  object-fit: contain;
  display: block;
  filter: brightness(0) saturate(100%) invert(32%) sepia(100%) saturate(378%) hue-rotate(85deg) brightness(96%) contrast(92%); }

/* Loader Semantic UI centré */
button.addProductVariantSubmit.productCardButton .loadProductInBasket.ui.loader {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  transform: translate(-50%, -50%);
  z-index: 1; }

button.productCardButton:not(.ui.button) {
  position: relative; }

button.productCardButton:not(.ui.button) .loadProductInBasket.ui.loader {
  position: absolute !important;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1.5rem;
  height: 1.5rem;
  margin: 0;
  z-index: 2;
  opacity: 0;
  visibility: hidden; }

button.productCardButton:not(.ui.button) .loadProductInBasket.ui.loader.active {
  opacity: 1;
  visibility: visible; }

/* Tailles des cartes produits PC */
@media (min-width: 1024px) {
  .ui.doubling.cards .card {
    width: 260px; }
  .operations-products .slick-slide .card,
  .express-products-grid .product-item .card {
    width: 260px; }
  .ui.doubling.cards .card .sylius-product-name {
    font-size: 0.8em; }
  .ui.doubling.cards .card .product-price {
    font-size: 1.2em; }
  .products-layout-shell {
    grid-template-columns: 228px minmax(0, 1fr);
    gap: 32px; }
  .products-layout-shell--without-sidebar {
    grid-template-columns: minmax(0, 1fr); } }

.ui.doubling.cards > .card,
.operations-products .slick-slide .card,
.express-products-grid .product-item .card {
  margin: 1.2em 1em !important; }

.ui.card:not(.product-card-v2) .product-spec-price {
  display: none !important; }

.ui.card .productVariantQuantityChoice {
  margin-top: 0 !important; }

@media (max-width: 767px) {
  .ui.doubling.cards > .card {
    width: calc(50% - 1em) !important;
    margin: 0.5em !important; }
  .ui.card .productVariantQuantityChoice {
    display: none !important; } }

@media (max-width: 991px) {
  .products-layout-shell,
  .products-layout-shell--without-sidebar {
    display: block; }
  .products-layout-shell #productMenuComputer {
    display: none; } }

/* Grille catalogue : 2 colonnes égales maintenues à toutes les Largeurs_Mobiles_
   Cibles (320/375/390/414) via mcb-product-grid + minmax(0, 1fr) anti-débordement.
   Plus de repli 1 colonne < 360px (R2.1 impose 2 colonnes). */
@media screen and (max-width: 767px) {
  .products-layout-shell {
    width: 100%;
    margin: 0 auto;
    padding: 40px 24px;
    display: block; }
  .products-layout-shell #productMenuComputer {
    display: none; }
  .products-layout-main {
    width: 100%; }
  .products-layout-toolbar {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 12px;
    padding: 0;
    margin-bottom: 16px; }
  .products-layout-toolbar__left,
  .products-layout-toolbar__actions {
    width: 100%;
    justify-content: space-between;
    flex-wrap: wrap; }
  .products-layout-toolbar__summary {
    font-size: 12px; }
  .products-layout-toolbar__filter label {
    font-size: 12px;
    line-height: 1.32; }
  .products-layout-toolbar__sort {
    flex: 1 1 170px; }
  .mcb-selection-chips {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    margin: -4px -24px 10px;
    padding: 0 24px 4px; }
    .mcb-selection-chips::-webkit-scrollbar {
      display: none; }
    .mcb-selection-chips > * {
      flex: 0 0 auto; }
  .taxon-listing-intro {
    margin-bottom: 0; }
  .taxon-listing-intro--with-image::before {
    left: 0;
    background-position: center right;
    opacity: 0.28; }
  .taxon-listing-intro--with-image::after {
    background: rgba(42, 74, 54, 0.88); }
  .taxon-listing-intro__inner {
    padding: 32px 24px; }
  .taxon-listing-intro__hero-title {
    font-size: 26px; }
  .taxon-listing-intro__description {
    font-size: 13px;
    line-height: 1.55;
    margin-bottom: 16px; }
  .taxon-listing-intro__chip {
    min-height: 30px;
    padding-right: 12px;
    padding-left: 12px; }
  .product-list-cards.ui.doubling.cards {
    margin-top: 0 !important; }
  .ui.card:not(.product-card-v2) .productMainPriceBox.product-price {
    font-size: 14px !important;
    height: auto !important;
    font-weight: 500 !important; }
  .ui.card:not(.product-card-v2) .sylius-product-price.product-spec-price {
    font-size: 9px !important;
    height: auto !important; }
  .ui.card:not(.product-card-v2) .productCardButton {
    width: 28px !important;
    height: 26px !important; }
  .ui.card:not(.product-card-v2) .productCardButton .iconAddProductInBasket {
    width: 1.4rem !important; }
  .ui.card:not(.product-card-v2) .productCardButton .ui.loader,
  .ui.card:not(.product-card-v2) .productCardButton .loadProductInBasket.ui.loader {
    width: 12px !important;
    height: 12px !important;
    margin: -6px 0 0 -6px !important; }
  .ui.card:not(.product-card-v2) .priceAndAddBox {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between;
    gap: 0.4rem !important; }
  .productVariantQuantityChoice {
    height: 24px;
    width: 37px; }
  .minis-img-product {
    text-align: center; }
  .mini-img-product {
    width: 70px !important; }
  .cartItemLine {
    max-width: 90vw; }
  #sylius-product-name {
    padding-bottom: 0; }
  .ui.card:not(.product-card-v2) .sylius-product-name {
    max-width: 40vw;
    font-size: 0.95rem;
    line-height: 1.3; }
  #product-detail {
    font-size: 11px; }
  #grandeImgProduct {
    width: 260px;
    margin-left: auto;
    margin-right: auto; }
  .ui.card:not(.product-card-v2) .productVariantIdChoice {
    font-size: 0.65em !important; }
  .ui.card:not(.product-card-v2) .productVariantMoreCount {
    font-size: 0.65em !important; }
  .ui.huge.header.product-price {
    font-size: 1.5em;
    line-height: 15px; }
  #mobile-variant-select {
    margin-top: 20px;
    margin-left: 10px; }
  .ui.card > .content {
    padding: 5px 5px; }
  #messageLimitedShipping {
    margin-top: 0px; }
  .ui.card:not(.product-card-v2) .productVariantDetailBox,
  .variants .productVariantDetailBox {
    font-size: 11px;
    height: 20px; }
  .ui.section.divider {
    margin-top: 39px; }
  .four.wide.computer.only.column .info.message {
    display: none; }
  .ui.stackable.grid.product-content {
    display: flex !important;
    flex-direction: column !important; }
  .product-content > .column:nth-child(1) {
    order: 1; }
  .product-content > .column:nth-child(3) {
    order: 2; }
  .product-content > .column:nth-child(2) {
    order: 3; }
  .product-content > .column:nth-child(3) {
    margin-top: 2rem; }
  #right_sidebar_product #mobile-variant-select {
    display: block;
    width: 40%;
    max-width: 75px;
    margin: 1rem auto;
    padding: 0.5rem;
    font-size: 1.1rem;
    text-align: center;
    -moz-text-align-last: center;
    /* Pour Firefox */
    text-align-last: center;
    /* Pour les autres navigateurs */
    border-radius: 5px;
    border: 1px solid #ccc; }
  /* =========================================== */
  /* === BANDEAU FIXE PRODUIT MOBILE (FINAL) === */
  /* =========================================== */
  #mobile-product-banner {
    /* La hauteur de contenu reste 60px ; on ajoute la safe-area iOS EN PLUS,
           pour que la barre ne recouvre pas l'indicateur home (env()=0 ailleurs). */
    min-height: calc(60px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    display: flex;
    align-items: center;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #f8f9fa;
    border-top: 1px solid #e0e0e0;
    box-shadow: 0 -3px 15px rgba(0, 0, 0, 0.1);
    box-sizing: border-box; }
  #mobile-product-banner form {
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    padding: 0rem 1rem;
    width: 100%; }
  /* --- PARTIE GAUCHE : PRIX --- */
  #mobile-product-banner .banner-price-container {
    flex: 1 1 0;
    text-align: center; }
    #mobile-product-banner .banner-price-container .ui.huge.header.product-price {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin: 0;
      font-size: 1.1rem !important;
      font-weight: bold;
      color: #2f6799;
      line-height: 1.2; }
      #mobile-product-banner .banner-price-container .ui.huge.header.product-price br {
        display: none; }
      #mobile-product-banner .banner-price-container .ui.huge.header.product-price #product-spec-price {
        display: none; }
  /* --- PARTIE CENTRALE : SÉLECTEUR DE VARIANTE --- */
  #mobile-product-banner .banner-variant-container {
    flex: 1 1 0;
    min-width: 100px; }
  #mobile-product-banner .banner-variant-container select {
    width: 100%;
    padding: 0.6rem;
    border-radius: 5px;
    border: 1px solid #ccc;
    font-size: 0.9rem; }
  /* --- PARTIE DROITE : BOUTON D'AJOUT --- */
  #mobile-product-banner .banner-button-container {
    flex: 1 1 0; }
  #mobile-product-banner .banner-button-container .cart-img-btn {
    width: 1rem !important;
    height: 1rem !important; }
  #mobile-product-banner .banner-price-container .ui.huge.header.product-price {
    font-size: 1.4rem !important;
    font-weight: 700 !important; }
  /* --- 2. Sélecteur de variante (moins large) --- */
  #mobile-product-banner .banner-variant-container {
    flex: 0 1 150px;
    min-width: 0; }
  #mobile-product-banner .banner-variant-container select {
    font-size: 0.8rem; }
  #mobile-product-banner .banner-button-container {
    flex: 1 1 auto; }
  #mobile-product-banner button.addProductVariantSubmit {
    min-height: 46px !important;
    padding: 0 16px !important;
    text-transform: none !important;
    font-size: 13px !important;
    font-family: var(--mcb-font-inter) !important;
    font-weight: 600 !important;
    gap: 0.45rem !important;
    margin-bottom: 0; }
  /* Icône du bouton plus petite */
  #mobile-product-banner button.addProductVariantSubmit .cart-img-btn {
    width: 1.1rem !important;
    height: 1.1rem !important;
    margin: 0; } }

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .products-layout-shell {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 40px 24px;
    display: block; }
  .taxon-listing-intro {
    margin-bottom: 0; }
  .taxon-listing-intro__inner {
    padding: 40px 48px; }
  .taxon-listing-intro__hero-title {
    font-size: 32px; } }

/* PDP V2 extracted */
/* =========================================== */
/* === PDP ONLY ROLLOUT: FINAL VARIANT B === */
/* === Tokens bridged to Design System V2  === */
/* =========================================== */
.product-page--direction-b {
  /* --- Bridge: PDP aliases → V2 tokens --- */
  --pdp-neutral-0: var(--mcb-n-0);
  --pdp-surface-elevated: var(--mcb-n-0);
  --pdp-surface-page: var(--mcb-n-25);
  --pdp-surface-subtle: var(--mcb-n-50);
  --pdp-surface-muted: var(--mcb-n-75);
  --pdp-border-soft: var(--mcb-n-100);
  --pdp-border-default: var(--mcb-n-100);
  --pdp-border-strong: var(--mcb-n-150);
  --pdp-text-primary: var(--mcb-n-900);
  --pdp-text-secondary: var(--mcb-n-700);
  --pdp-text-muted: var(--mcb-n-500);
  --pdp-accent-50: var(--mcb-a-50);
  --pdp-accent-100: var(--mcb-a-100);
  --pdp-accent-200: var(--mcb-a-200);
  --pdp-accent-500: var(--mcb-a-500);
  --pdp-accent-600: var(--mcb-a-600);
  --pdp-accent-700: var(--mcb-a-700);
  --pdp-success-500: var(--mcb-a-700);
  --pdp-warning-50: var(--mcb-warn-100);
  --pdp-warning-200: var(--mcb-warn-200);
  --pdp-warning-700: var(--mcb-warn-700);
  --pdp-danger-50: var(--mcb-danger-100);
  --pdp-danger-200: var(--mcb-danger-200);
  --pdp-danger-700: var(--mcb-danger-600); }

.product-page--direction-b .product-page-heading.ui.grid,
.product-page--direction-b .product-content--direction-b.ui.grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 420px);
  gap: 40px;
  align-items: start;
  margin-right: 0 !important;
  margin-left: 0 !important; }

.product-page--direction-b .product-page-heading.ui.grid {
  margin-top: 15px !important;
  margin-bottom: 0 !important;
  align-items: end; }

.product-page--direction-b .product-content--direction-b.ui.grid {
  margin-top: 0 !important; }

.product-page--direction-b .product-page-heading.ui.grid > .column,
.product-page--direction-b .product-content--direction-b.ui.grid > .column {
  display: block !important;
  width: auto !important;
  min-width: 0;
  padding-right: 0 !important;
  padding-left: 0 !important; }

@media screen and (max-width: 991px) {
  .product-page--direction-b .product-page-heading.ui.grid,
  .product-page--direction-b .product-content--direction-b.ui.grid {
    grid-template-columns: 1fr;
    gap: 24px; }
  .product-page--direction-b .product-page-heading__spacer {
    display: none !important; } }

.product-page--direction-b #right_sidebar_product.product-purchase-card {
  position: relative;
  background: transparent !important;
  border: none !important;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  text-align: left; }

/* Decorative ::before overlay removed — V2 uses flat surfaces */
.product-page--direction-b .product-purchase-card__header {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: start;
  gap: 0.8rem;
  margin-bottom: 1.5rem; }

.product-page--direction-b .product-purchase-card__title {
  margin: 0 !important;
  color: var(--pdp-text-primary) !important;
  font-family: var(--mcb-font-primary) !important;
  font-size: 1.62rem !important;
  font-weight: var(--mcb-fw-bold) !important;
  line-height: 1.08;
  letter-spacing: -0.03em;
  text-transform: none;
  text-align: left;
  max-width: none; }

.product-page--direction-b #right_sidebar_product .product-rating-summary-bar--purchase {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 0; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.42rem 0.78rem;
  border: 1px solid var(--pdp-border-soft);
  border-radius: var(--mcb-radius-chip);
  background: var(--pdp-neutral-0);
  color: var(--pdp-text-secondary);
  text-decoration: none;
  transition: background-color var(--mcb-transition-base); }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase:hover,
.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase:focus-visible {
  background: var(--pdp-surface-subtle);
  text-decoration: none;
  outline: none; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .stars-static {
  display: inline-flex;
  gap: 0.14rem; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .star-icon {
  width: 0.95rem;
  height: 0.95rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: var(--mcb-star-empty); }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .star-icon.filled {
  fill: currentColor;
  color: var(--mcb-star-fill); }

.product-page--direction-b #right_sidebar_product .product-rating-summary__value--purchase {
  font-family: var(--mcb-font-meta);
  font-weight: var(--mcb-fw-bold);
  color: var(--pdp-text-primary);
  font-size: 1rem; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__count--purchase {
  color: var(--pdp-text-muted);
  font-size: 0.84rem;
  text-decoration: none;
  font-family: var(--mcb-font-meta); }

.product-page--direction-b .product-purchase-card__commerce {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: start;
  text-align: left;
  width: 100%; }

.product-page--direction-b .product-purchase-card__commerce > br {
  display: none; }

.product-page--direction-b #right_sidebar_product .product-original-price {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 0.4rem;
  color: var(--pdp-text-muted) !important;
  font-family: var(--mcb-font-primary) !important;
  font-size: 0.74rem !important;
  font-weight: var(--mcb-fw-semi) !important;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.product-page--direction-b #right_sidebar_product .product-original-price del {
  color: var(--pdp-text-muted) !important; }

.product-page--direction-b #right_sidebar_product .product-price-line {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #E6DFCB;
  width: 100%; }

.product-page--direction-b #right_sidebar_product .product-price {
  display: block;
  margin: 0 !important;
  color: var(--pdp-text-primary) !important;
  font-family: var(--mcb-font-price);
  font-size: 34px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -0.02em; }

.product-page--direction-b #right_sidebar_product .product-spec-price,
.product-page--direction-b #right_sidebar_product #product-spec-price {
  display: block;
  color: #7A6A4A !important;
  font-size: 12px !important;
  font-family: var(--mcb-font-meta) !important;
  font-weight: 400 !important;
  line-height: 18px !important;
  max-width: 24ch;
  margin: 0; }

.product-page--direction-b #add_to_cart .product-pdp-form {
  width: 100%;
  margin-top: 1.35rem;
  display: grid;
  justify-items: start;
  text-align: left; }

.product-page--direction-b #add_to_cart .product-pdp-variants {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  margin: 1.1rem 0 0.55rem;
  text-align: left; }

.product-page--direction-b #add_to_cart .productVariantIdChoice {
  min-height: 36px;
  padding: 0.5rem 0.75rem !important;
  border-radius: 0.5rem !important;
  border: 1px solid #E6DFCB !important;
  background: #ffffff !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-control) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.1;
  letter-spacing: 0.02em;
  box-shadow: none !important;
  transition: border-color var(--mcb-transition-fast), background-color var(--mcb-transition-fast), color var(--mcb-transition-fast);
  white-space: nowrap;
  text-align: center;
  display: inline-block; }

.product-page--direction-b #add_to_cart .product-pdp-variant-choice__label {
  display: block;
  font-family: var(--mcb-font-control);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.1; }

.product-page--direction-b #add_to_cart .product-pdp-variant-choice__detail {
  display: block;
  font-family: var(--mcb-font-meta);
  font-size: 11px;
  margin-top: 2px;
  color: #7A6A4A;
  font-weight: 500;
  line-height: 16.5px; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.blue .product-pdp-variant-choice__detail {
  color: #E5DCC2; }

.product-page--direction-b #add_to_cart .productVariantIdChoice:hover,
.product-page--direction-b #add_to_cart .productVariantIdChoice:focus-visible {
  border-color: rgba(42, 74, 54, 0.4) !important;
  outline: none; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.blue {
  background: #2A4A36 !important;
  border-color: #2A4A36 !important;
  color: #F4ECD8 !important;
  box-shadow: none !important; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.disabled {
  background: var(--pdp-surface-subtle) !important;
  border-color: var(--pdp-border-soft) !important;
  color: var(--pdp-text-muted) !important;
  box-shadow: none !important;
  opacity: 0.45; }

.product-page--direction-b #add_to_cart .product-pdp-variant-detail {
  min-height: 1.25rem;
  margin-top: 0.05rem;
  color: var(--pdp-text-muted);
  font-size: 0.82rem;
  line-height: 1.42;
  letter-spacing: 0.01em;
  text-align: left;
  width: 100%;
  max-width: 26ch; }

.product-page--direction-b #add_to_cart .product-pdp-quantity {
  display: grid;
  gap: 0.55rem;
  justify-items: start;
  margin: 1rem 0 1.2rem;
  color: var(--pdp-text-muted);
  font-family: var(--mcb-font-primary);
  font-size: 0.74rem;
  font-weight: var(--mcb-fw-semi);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-align: left;
  width: 100%; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-label {
  color: var(--pdp-text-muted);
  text-align: center; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-stepper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: var(--mcb-space-xs);
  border: 1px solid var(--pdp-border-default);
  border-radius: var(--mcb-radius-chip);
  background: var(--pdp-surface-subtle);
  box-shadow: none; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--pdp-border-soft);
  border-radius: var(--mcb-radius-chip);
  background: var(--pdp-neutral-0);
  color: var(--pdp-text-primary);
  font-family: var(--mcb-font-primary);
  font-size: 1.02rem;
  font-weight: var(--mcb-fw-semi);
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
  transition: border-color var(--mcb-transition-fast); }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button:hover,
.product-page--direction-b #add_to_cart .product-pdp-quantity-button:focus-visible {
  border-color: var(--pdp-border-strong);
  outline: none; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button:disabled,
.product-page--direction-b #add_to_cart .product-pdp-quantity-button.is-disabled {
  opacity: 0.45;
  box-shadow: none;
  cursor: not-allowed; }

.product-page--direction-b #add_to_cart .productVariantQuantityChoice,
.product-page--direction-b #mobile-product-banner .product-pdp-mobile-banner-select,
.product-page--direction-b #mobile-variant-select {
  min-height: 44px;
  border-radius: var(--mcb-radius-interactive);
  border: 1px solid var(--pdp-border-default);
  background: var(--pdp-surface-subtle);
  color: var(--pdp-text-primary);
  font-family: var(--mcb-font-primary);
  font-size: 0.92rem;
  font-weight: var(--mcb-fw-medium);
  box-shadow: none; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input {
  width: 2.95rem;
  min-width: 2.95rem;
  padding: 0;
  border: none;
  background: transparent;
  text-align: center;
  font-family: var(--mcb-font-numeric);
  font-size: 1.12rem;
  font-weight: var(--mcb-fw-bold);
  color: var(--pdp-text-primary); }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input:focus {
  box-shadow: none; }

.product-page--direction-b #add_to_cart .productVariantQuantityChoice:focus,
.product-page--direction-b #mobile-product-banner .product-pdp-mobile-banner-select:focus,
.product-page--direction-b #mobile-variant-select:focus {
  background: var(--pdp-neutral-0);
  border-color: var(--pdp-accent-200);
  box-shadow: inset 0 0 0 1px var(--pdp-accent-200);
  outline: none; }

.product-page--direction-b #add_to_cart .product-pdp-cta {
  width: 100%;
  margin-top: 0.1rem; }

.product-page--direction-b .product-pdp-add-to-cart,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart {
  --mcb-btn-primary-font-family: var(--mcb-font-cta);
  position: relative;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.62rem !important;
  width: 100% !important;
  min-height: 44px !important;
  padding: 0 1.2rem !important;
  border: 1px solid var(--pdp-accent-500) !important;
  border-radius: 999px !important;
  background: var(--pdp-accent-500) !important;
  color: var(--mcb-text-on-accent) !important;
  font-family: var(--mcb-font-cta) !important;
  font-size: 14px !important;
  font-weight: var(--mcb-fw-semi) !important;
  text-transform: none !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  box-shadow: none;
  overflow: hidden !important;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base); }

.product-page--direction-b .product-pdp-add-to-cart:hover,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart:hover {
  background: var(--pdp-accent-600) !important;
  border-color: var(--pdp-accent-600) !important;
  box-shadow: none; }

.product-page--direction-b .product-pdp-add-to-cart:focus-visible,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart:focus-visible {
  box-shadow: 0 0 0 2px var(--mcb-text-on-accent), 0 0 0 5px rgba(42, 123, 78, 0.24);
  outline: none; }

.product-page--direction-b .product-pdp-add-to-cart:active,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart:active {
  background: var(--pdp-accent-700) !important;
  border-color: var(--pdp-accent-700) !important;
  box-shadow: none; }

.product-page--direction-b .product-pdp-add-to-cart.disabled,
.product-page--direction-b .product-pdp-add-to-cart:disabled,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart.disabled,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart:disabled {
  background: var(--pdp-surface-muted) !important;
  border-color: var(--pdp-surface-muted) !important;
  color: var(--pdp-text-muted) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: none; }

.product-page--direction-b .product-pdp-add-to-cart .button-content,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart .button-content {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  margin-left: 0 !important;
  padding-top: 0;
  font-size: inherit !important; }

.product-page--direction-b .product-pdp-add-to-cart .iconAddProductInBasket,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart .iconAddProductInBasket {
  margin-left: 0 !important; }

.product-page--direction-b .product-pdp-add-to-cart .cart-img-btn,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart .cart-img-btn {
  width: 1rem !important;
  height: 1rem !important;
  margin: 0 !important;
  align-self: center !important;
  filter: brightness(0) invert(1); }

.product-page--direction-b .loaderBtnProductinBasket {
  border: 3px solid rgba(255, 255, 255, 0.28);
  border-top-color: var(--mcb-text-on-accent); }

@keyframes mcb-loader-spin {
  to {
    transform: rotate(360deg); } }

.product-page--direction-b .product-purchase-message {
  margin-top: 16px;
  border-radius: var(--mcb-radius-interactive);
  padding: var(--mcb-space-lg);
  box-shadow: none !important; }

.product-page--direction-b .product-purchase-message__icon {
  width: 42px;
  margin: 0 10px 0 0;
  float: left; }

.product-page--direction-b .product-purchase-message__content {
  padding-left: 8px;
  text-align: left; }

.product-page--direction-b .product-purchase-message__header {
  color: inherit !important; }

.product-page--direction-b .product-purchase-message--warning {
  background: var(--pdp-warning-50) !important;
  border: 1px solid var(--pdp-warning-200) !important;
  color: var(--pdp-warning-700) !important; }

.product-page--direction-b .product-purchase-message__icon--warning {
  filter: invert(43%) sepia(15%) saturate(1001%) hue-rotate(354deg) brightness(93%) contrast(87%); }

.product-page--direction-b .product-purchase-message--info {
  background: var(--pdp-surface-subtle) !important;
  border: 1px solid var(--pdp-border-default) !important;
  color: var(--pdp-text-secondary) !important; }

.product-page--direction-b .product-purchase-message__icon--info {
  filter: invert(14%) sepia(7%) saturate(750%) hue-rotate(87deg) brightness(96%) contrast(88%); }

.product-page--direction-b .product-purchase-message--success {
  background: var(--pdp-accent-50) !important;
  border: 1px solid var(--pdp-accent-200) !important;
  color: var(--pdp-success-500) !important; }

.product-page--direction-b .product-purchase-message__icon--success {
  filter: invert(36%) sepia(35%) saturate(833%) hue-rotate(92deg) brightness(88%) contrast(87%); }

.product-page--direction-b #mobile-product-banner {
  background: rgba(247, 244, 239, 0.98);
  border-top: 1px solid var(--pdp-border-default);
  box-shadow: 0 -14px 28px rgba(30, 24, 18, 0.12);
  backdrop-filter: blur(14px); }

/* refonte-responsive-figma — bandeau collant PDP mobile : la barre n'affiche plus
   qu'une PASTILLE Format compacte (secondaire) + un CTA primaire « Ajouter · prix »
   qui prend tout le reste. Le prix isolé à gauche a été supprimé du markup (il vit
   désormais dans le CTA). Layout flex row (le détail compact/CTA est borné dans
   respond-below('lg') plus bas). */
.product-page--direction-b #mobile-product-banner form {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.6rem;
  padding: 0.78rem 0.9rem; }

@media screen and (max-width: 767px) {
  .product-page--direction-b {
    /* Réserve l'espace de la barre fixe + la safe-area iOS (env()=0 ailleurs). */
    padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
  .product-page--direction-b #right_sidebar_product.product-purchase-card {
    padding: 22px 18px 20px;
    border-radius: var(--mcb-radius-structural); }
  .product-page--direction-b .product-purchase-card__title {
    font-size: 1.42rem !important;
    max-width: 15ch; }
  .product-page--direction-b #right_sidebar_product .product-price {
    font-size: 1.96rem !important; }
  .product-page--direction-b #add_to_cart .product-pdp-form {
    margin-top: 1.15rem; }
  .product-page--direction-b #add_to_cart .product-pdp-variants {
    gap: 0.48rem;
    margin: 0.95rem 0 0.48rem; }
  .product-page--direction-b #add_to_cart .productVariantIdChoice {
    min-height: 44px;
    padding: 0 0.82rem !important;
    font-size: 0.74rem !important; }
  .product-page--direction-b #mobile-variant-select {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0 0 0.95rem;
    padding: 0 0.85rem;
    text-align: center; }
  .product-page--direction-b #add_to_cart .product-pdp-quantity {
    margin: 0.95rem 0 1.05rem; }
  .product-page--direction-b #add_to_cart .product-pdp-quantity-stepper {
    padding: 0.24rem; }
  .product-page--direction-b #add_to_cart .product-pdp-quantity-button {
    width: 2.75rem;
    height: 2.75rem; }
  .product-page--direction-b #add_to_cart .product-pdp-quantity-input {
    width: 2.7rem;
    min-width: 2.7rem;
    font-size: 1.04rem; }
  .product-page--direction-b #mobile-product-banner form {
    gap: 0.58rem;
    padding: 0.72rem 0.78rem; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart {
    min-height: 46px !important;
    padding: 0 0.95rem !important;
    border: 1px solid var(--pdp-accent-500) !important;
    border-radius: 999px !important;
    background: var(--pdp-accent-500) !important;
    color: var(--mcb-text-on-accent) !important;
    font-family: var(--mcb-font-inter) !important;
    font-size: 13px !important;
    font-weight: var(--mcb-fw-semi) !important;
    text-transform: none !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
    box-shadow: none;
    overflow: hidden !important;
    transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base); }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart:hover {
    background: var(--pdp-accent-600) !important;
    border-color: var(--pdp-accent-600) !important;
    box-shadow: none; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart:focus-visible {
    box-shadow: 0 0 0 2px var(--mcb-text-on-accent), 0 0 0 5px rgba(42, 123, 78, 0.24);
    outline: none; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart:active {
    background: var(--pdp-accent-700) !important;
    border-color: var(--pdp-accent-700) !important;
    box-shadow: none; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart .button-content {
    font-size: inherit !important;
    gap: 0.42rem !important; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart .cart-img-btn {
    width: 0.95rem !important;
    height: 0.95rem !important; } }

/* =============================================== */
/* PDP hero - Figma product section implementation */
/* =============================================== */
.product-page--direction-b {
  background: #FBF7EF;
  --pdp-polish-version: mcb-pdp-polish-20260612-attribute-icons-01; }

.product-page--direction-b .product-page-heading.ui.grid {
  display: none !important; }

.product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
  display: grid !important;
  box-sizing: border-box;
  width: calc(100% - 32px);
  max-width: 1240px;
  grid-template-columns: minmax(0, 608px) minmax(320px, 392px);
  justify-content: space-between;
  gap: 64px;
  align-items: start;
  margin: 0 auto !important;
  padding: 32px 24px 64px !important; }

.product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section > .column {
  display: block !important;
  width: auto !important;
  min-width: 0;
  padding: 0 !important; }

.product-page--direction-b .product-content__purchase {
  position: sticky;
  top: 128px;
  align-self: start;
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important; }

.product-page--direction-b #add_to_cart {
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important; }

.product-page--direction-b .product-gallery {
  display: flex;
  gap: 12px;
  align-items: flex-start; }

.product-page--direction-b .product-gallery__thumbs,
.product-page--direction-b .minis-img-product.ui.small.images.product-gallery__thumbs {
  order: 0;
  display: flex !important;
  flex: 0 0 72px;
  width: 72px;
  flex-direction: column;
  gap: 10px;
  margin: 0 !important; }

.product-page--direction-b .product-gallery__thumb,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb {
  position: relative;
  width: 72px !important;
  height: 72px !important;
  box-sizing: border-box;
  margin: 0 !important;
  overflow: hidden;
  padding: 4px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  opacity: 0.66;
  transition: border-color var(--mcb-transition-fast), opacity var(--mcb-transition-fast); }

.product-page--direction-b .product-gallery__thumb:hover,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb:hover {
  opacity: 1; }

.product-page--direction-b .product-gallery__thumb.is-active,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb.is-active {
  opacity: 1;
  border-color: #2A4A36; }

.product-page--direction-b .product-gallery__thumb .secondary-image,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb .secondary-image {
  display: block;
  width: 100% !important;
  height: 100% !important;
  border-radius: 5px;
  object-fit: cover; }

.product-page--direction-b .product-gallery__main,
.product-page--direction-b #grandeImgProduct.product-gallery__main {
  order: 1;
  position: relative;
  display: block !important;
  flex: 1 1 auto;
  width: 100% !important;
  max-width: none;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 16px;
  background: #EFE7D2;
  aspect-ratio: 1 / 1; }

.product-page--direction-b #main-image {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover; }

.product-page--direction-b #right_sidebar_product.product-purchase-card {
  overflow: visible;
  width: 100%;
  max-width: 392px;
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  text-align: left; }

.product-page--direction-b .product-purchase-card__header {
  display: grid;
  justify-items: start;
  gap: 12px;
  margin: 0; }

.product-page--direction-b .product-purchase-card__eyebrow {
  display: none; }

.product-page--direction-b .product-purchase-card__title {
  max-width: 12ch;
  margin: 0 !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-primary) !important;
  font-size: 36px !important;
  font-weight: var(--mcb-fw-semi) !important;
  line-height: 1.05;
  letter-spacing: 0;
  text-align: left; }

.product-page--direction-b #right_sidebar_product .product-rating-summary-bar--purchase {
  justify-content: flex-start;
  margin: 4px 0 0; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase {
  gap: 6px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2A4A36; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .stars-static {
  gap: 2px;
  color: #E8C26B; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .star-icon {
  width: 13px;
  height: 13px; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__value--purchase {
  color: #2A4A36;
  font-family: var(--mcb-font-meta);
  font-size: 12.5px;
  font-weight: var(--mcb-fw-semi); }

.product-page--direction-b #right_sidebar_product .product-rating-summary__count--purchase {
  color: #7A6A4A;
  font-size: 12.5px;
  text-decoration: none;
  font-family: var(--mcb-font-meta); }

.product-page--direction-b .product-purchase-card__commerce {
  display: block;
  width: 100%;
  margin-top: 36px;
  padding-top: 0; }

.product-page--direction-b .product-purchase-card__commerce > .ui:first-child {
  padding-bottom: 24px;
  border-bottom: 1px solid #E6DFCB;
  text-align: left !important; }

.product-page--direction-b .product-purchase-intro {
  display: grid;
  gap: 10px;
  max-width: 36ch;
  margin: 4px 0 0; }

.product-page--direction-b .product-purchase-short-description {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  margin: 0;
  color: #5C5340;
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: var(--mcb-fw-regular);
  line-height: 1.45; }

.product-page--direction-b .product-purchase-attribute-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px; }

.product-page--direction-b .product-purchase-attribute-badges:empty {
  display: none; }

.product-page--direction-b .product-purchase-attribute-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid #E6DFCB;
  border-radius: 999px;
  background: #FFFDF7;
  color: #2A4A36;
  font-family: var(--mcb-font-badge);
  font-size: 10px;
  font-weight: 500;
  line-height: 15px;
  letter-spacing: 0.14em;
  text-transform: uppercase; }

.product-page--direction-b #right_sidebar_product .product-original-price {
  justify-content: flex-start;
  margin: 0 0 8px; }

.product-page--direction-b #right_sidebar_product .product-price {
  display: block;
  margin: 0 !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-price);
  font-size: 34px !important;
  font-weight: var(--mcb-fw-bold) !important;
  line-height: 1 !important;
  letter-spacing: 0; }

.product-page--direction-b #right_sidebar_product .product-spec-price,
.product-page--direction-b #right_sidebar_product #product-spec-price {
  max-width: none;
  margin: 10px 0 0;
  color: #7A6A4A !important;
  font-size: 12px !important;
  font-family: var(--mcb-font-meta) !important;
  font-weight: 400 !important;
  line-height: 18px !important; }

.product-page--direction-b #add_to_cart .product-pdp-form {
  display: block;
  width: 100%;
  margin-top: 20px;
  text-align: left; }

.product-page--direction-b #add_to_cart .product-pdp-variant-label {
  margin: 0 0 10px;
  color: #7A6A4A;
  font-family: var(--mcb-font-label);
  font-size: 11px;
  font-weight: var(--mcb-fw-medium);
  line-height: 16.5px;
  letter-spacing: 0;
  text-transform: uppercase; }

.product-page--direction-b #add_to_cart .product-pdp-variants {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px; }

.product-page--direction-b #add_to_cart .productVariantIdChoice {
  width: auto !important;
  min-width: 0;
  min-height: 38px;
  padding: 0 14px !important;
  border-radius: 8px !important;
  border: 1px solid #E6DFCB !important;
  background: #FBF7EF !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-primary) !important;
  font-size: 14px !important;
  font-weight: var(--mcb-fw-semi) !important;
  line-height: 1.1 !important;
  letter-spacing: 0; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.blue {
  background: #2A4A36 !important;
  border-color: #2A4A36 !important;
  color: #F4ECD8 !important; }

.product-page--direction-b #add_to_cart .product-pdp-variant-detail {
  width: 100%;
  max-width: none;
  min-height: 16px;
  margin: 2px 0 0;
  color: #7A6A4A;
  font-size: 12px;
  line-height: 1.35;
  text-align: left; }

.product-page--direction-b #add_to_cart .product-pdp-buy-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px; }

.product-page--direction-b #add_to_cart .product-pdp-quantity {
  display: block;
  width: auto;
  margin: 0; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-stepper {
  display: inline-flex;
  height: 44px;
  align-items: center;
  justify-content: space-between;
  width: 110px;
  gap: 0;
  padding: 2px;
  border: 1px solid #E6DFCB;
  border-radius: 999px;
  background: #FBF7EF; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #2A4A36;
  font-size: 14px;
  font-weight: var(--mcb-fw-medium);
  line-height: 1; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button:hover,
.product-page--direction-b #add_to_cart .product-pdp-quantity-button:focus-visible {
  background: #F4ECD8; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input {
  width: 32px;
  min-width: 32px;
  height: 36px;
  color: #2A4A36;
  font-size: 14px;
  line-height: 36px; }

.product-page--direction-b #add_to_cart .product-pdp-cta {
  flex: 1 1 auto;
  margin: 0; }

.product-page--direction-b .product-pdp-add-to-cart,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart {
  min-height: 44px !important;
  padding: 0 22px !important;
  font-size: 14px !important; }

.product-page--direction-b .product-pdp-add-to-cart .button-content,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart .button-content {
  justify-content: center;
  gap: 0; }

.product-page--direction-b .product-pdp-add-to-cart .cart-img-btn,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart .cart-img-btn {
  display: none !important; }

.product-page--direction-b .product-purchase-message {
  max-width: 392px;
  margin-top: 16px; }

.product-page--direction-b .product-purchase-reassurance {
  display: grid;
  gap: 8px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  color: #5C5340;
  font-family: var(--mcb-font-body);
  font-size: 12.5px;
  line-height: 1.4; }

.product-page--direction-b .product-purchase-reassurance li {
  position: relative;
  padding-left: 20px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 18.75px; }

.product-page--direction-b .product-purchase-reassurance li::before {
  content: "";
  position: absolute;
  top: 0.52em;
  left: 4px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #2A4A36; }

.product-page--direction-b .product-detail-section {
  width: auto;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #FFFDF7;
  border-top: 1px solid #E6DFCB;
  border-bottom: 1px solid #E6DFCB;
  padding: 56px 0 48px; }

.product-page--direction-b .product-detail-section__inner {
  box-sizing: border-box;
  width: calc(100% - 32px);
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px; }

.product-page--direction-b .product-detail-section .product-detail {
  max-width: 74ch;
  color: #2A4A36;
  font-family: var(--mcb-font-primary);
  font-size: 15px;
  line-height: 1.65; }

@media screen and (max-width: 991px) {
  .product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 20px 16px 48px !important; }
  .product-page--direction-b .product-content__purchase {
    position: static; }
  .product-page--direction-b #right_sidebar_product.product-purchase-card,
  .product-page--direction-b .product-purchase-message {
    max-width: none; }
  .product-page--direction-b .product-purchase-card__title {
    font-size: 30px !important; } }

@media screen and (max-width: 767px) {
  .product-page--direction-b .product-gallery {
    display: block; }
  .product-page--direction-b .product-gallery__main,
  .product-page--direction-b #grandeImgProduct.product-gallery__main {
    width: 100% !important;
    margin: 0 !important; }
  .product-page--direction-b .product-gallery__thumbs,
  .product-page--direction-b .minis-img-product.ui.small.images.product-gallery__thumbs {
    display: grid !important;
    width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px !important; }
  .product-page--direction-b .product-gallery__thumb,
  .product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1; }
  .product-page--direction-b .product-purchase-card__title {
    font-size: 26px !important;
    max-width: none; }
  .product-page--direction-b #right_sidebar_product .product-price {
    font-size: 30px !important; }
  .product-page--direction-b #add_to_cart .product-pdp-buy-row {
    align-items: stretch; }
  .product-page--direction-b #add_to_cart .product-pdp-quantity-stepper,
  .product-page--direction-b .product-pdp-add-to-cart,
  .product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart {
    min-height: 46px !important; }
  .product-page--direction-b .product-detail-section {
    padding: 42px 0; }
  .product-page--direction-b .product-detail-section__inner {
    padding: 0 16px; } }

/* PDP hero Figma exactness pass */
.product-page--direction-b .product-purchase-card__header {
  gap: 0; }

.product-page--direction-b .product-purchase-card__title {
  margin-top: 10px !important;
  letter-spacing: 0;
  width: 100% !important;
  max-width: none !important; }

.product-page--direction-b .product-purchase-intro {
  width: 100% !important;
  max-width: none !important;
  margin: 10px 0 0; }

.product-page--direction-b .product-purchase-short-description {
  color: #5C5340;
  font-size: 15px;
  line-height: 1.5;
  width: 100% !important;
  max-width: none !important; }

.product-page--direction-b .product-purchase-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin-top: 16px; }

.product-page--direction-b .product-purchase-meta-separator {
  display: inline-block;
  width: 1px;
  height: 12px;
  background: #E6DFCB; }

.product-page--direction-b #right_sidebar_product .product-rating-summary-bar--purchase {
  margin: 0; }

.product-page--direction-b .product-purchase-attribute-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px; }

.product-page--direction-b .product-purchase-attribute-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid #E6DFCB;
  border-radius: 999px;
  background: #FFFDF7;
  color: #2A4A36;
  font-family: var(--mcb-font-badge);
  font-size: 10px;
  font-weight: 500;
  line-height: 15px;
  letter-spacing: 0.14em;
  text-transform: uppercase; }

.product-page--direction-b .product-purchase-card__commerce {
  margin-top: 24px; }

.product-page--direction-b .product-purchase-card__commerce > .product-purchase-price-section,
.product-page--direction-b .product-purchase-card__commerce > .ui.product-purchase-price-section:first-child {
  margin: 0;
  padding-bottom: 24px;
  border-bottom: 1px solid #E6DFCB;
  text-align: left !important; }

.product-page--direction-b #right_sidebar_product .product-price-stack {
  display: grid;
  gap: 8px; }

.product-page--direction-b #right_sidebar_product .product-price-line {
  display: flex;
  align-items: baseline;
  gap: 12px; }

.product-page--direction-b #right_sidebar_product .product-price {
  margin: 0 !important;
  letter-spacing: 0; }

.product-page--direction-b #right_sidebar_product .product-spec-price,
.product-page--direction-b #right_sidebar_product #product-spec-price {
  margin: 0 !important;
  color: #7A6A4A !important;
  font-size: 12px !important;
  font-family: var(--mcb-font-meta) !important;
  font-weight: 400 !important;
  line-height: 18px !important; }

.product-page--direction-b #add_to_cart .product-pdp-form {
  margin-top: 20px; }

.product-page--direction-b #add_to_cart .product-pdp-variant-label {
  margin: 0 0 10px;
  font-family: var(--mcb-font-label);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em; }

.product-page--direction-b #add_to_cart .product-pdp-variants {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  align-items: stretch;
  margin: 0; }

.product-page--direction-b #add_to_cart .productVariantIdChoice {
  display: flex !important;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 8px 12px !important;
  border: 1px solid #E6DFCB !important;
  border-radius: 8px !important;
  background: #FFFDF7 !important;
  text-align: center;
  white-space: normal;
  transition: border-color var(--mcb-transition-fast), background-color var(--mcb-transition-fast), color var(--mcb-transition-fast); }

.product-page--direction-b #add_to_cart .productVariantIdChoice:hover {
  border-color: rgba(42, 74, 54, 0.4) !important; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.blue {
  border-color: #2A4A36 !important;
  background: #2A4A36 !important;
  color: #F4ECD8 !important; }

.product-page--direction-b #add_to_cart .product-pdp-variant-choice__label {
  color: inherit;
  font-family: var(--mcb-font-control);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.1; }

.product-page--direction-b #add_to_cart .product-pdp-variant-choice__detail {
  margin-top: 3px;
  color: #7A6A4A;
  font-family: var(--mcb-font-meta);
  font-size: 11px;
  font-weight: 500;
  line-height: 16.5px; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.blue .product-pdp-variant-choice__detail {
  color: #E5DCC2; }

.product-page--direction-b #add_to_cart .product-pdp-variant-detail {
  display: none; }

.product-page--direction-b #add_to_cart .product-pdp-buy-row {
  margin-top: 20px;
  gap: 10px; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-stepper {
  width: auto;
  height: 42px;
  padding: 2px;
  border: 1px solid #E6DFCB;
  border-radius: 999px;
  background: #FFFDF7; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: transparent;
  color: #2A4A36;
  font-size: 14px;
  line-height: 1; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button:hover,
.product-page--direction-b #add_to_cart .product-pdp-quantity-button:focus-visible {
  background: #FBF7EF;
  outline: none; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input {
  width: 32px;
  min-width: 32px;
  height: 36px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #2A4A36;
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: 600;
  line-height: 36px;
  text-align: center;
  -moz-appearance: textfield; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input::-webkit-outer-spin-button,
.product-page--direction-b #add_to_cart .product-pdp-quantity-input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none; }

.product-page--direction-b .product-pdp-add-to-cart,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart {
  flex: 1 1 auto;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 22px !important;
  border-radius: 999px !important;
  background: #2A4A36 !important;
  color: #F4ECD8 !important;
  font-size: 14px !important;
  font-weight: 600 !important; }

.product-page--direction-b .product-pdp-add-to-cart:hover,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart:hover {
  background: #355A45 !important; }

.product-page--direction-b .product-gallery__thumb,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb {
  overflow: visible !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #EFE7D2 !important;
  box-shadow: none !important; }

.product-page--direction-b .product-gallery__thumb.is-active,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb.is-active {
  box-shadow: 0 0 0 2px #2A4A36, 0 0 0 4px #FBF7EF !important; }

.product-page--direction-b .product-gallery__thumb .secondary-image,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb .secondary-image {
  border-radius: 8px; }

.product-page--direction-b .product-purchase-reassurance {
  margin-top: 20px;
  gap: 8px; }

@media screen and (max-width: 767px) {
  .product-page--direction-b #add_to_cart .product-pdp-variants {
    grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-page--direction-b #add_to_cart .product-pdp-buy-row {
    align-items: stretch; } }

/* ========================================================= */
/* PDP hero - final Figma alignment fixes                    */
/* Keep this block last: it neutralizes older PDP iterations. */
/* ========================================================= */
.product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1240px !important;
  /* Couple image/buy box capé et ANCRÉ À GAUCHE : la galerie s'aligne sur le
       breadcrumb (même conteneur 1240/16px), l'image reste plafonnée à 600px. */
  grid-template-columns: minmax(0, 600px) minmax(320px, 400px) !important;
  justify-content: start !important;
  gap: 64px !important;
  margin: 0 auto !important;
  padding: 32px 16px 64px !important; }

@media screen and (min-width: 1240px) {
  .product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
    padding-right: 16px !important;
    padding-left: 16px !important; } }

.product-page--direction-b #right_sidebar_product.product-purchase-card {
  width: 100% !important;
  max-width: none !important; }

.product-page--direction-b .product-gallery {
  gap: 12px !important; }

.product-page--direction-b .product-gallery__thumb,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb {
  padding: 0 !important;
  border: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  opacity: 0.66; }

.product-page--direction-b .product-gallery__thumb.is-active,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb.is-active {
  opacity: 1;
  box-shadow: 0 0 0 2px #FBF7EF, 0 0 0 4px #2A4A36 !important; }

.product-page--direction-b .product-gallery__thumb .secondary-image,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb .secondary-image {
  border-radius: 8px !important; }

.product-page--direction-b .product-purchase-card__commerce > .ui:first-child {
  padding-bottom: 0 !important;
  border-bottom: 0 !important; }

.product-page--direction-b .product-purchase-card__commerce > .product-purchase-price-section,
.product-page--direction-b .product-purchase-card__commerce > .ui.product-purchase-price-section:first-child {
  width: 100% !important;
  margin: 0 !important;
  padding-bottom: 24px !important;
  border-bottom: 1px solid #E6DFCB !important;
  text-align: left !important; }

.product-page--direction-b #right_sidebar_product .product-price-line {
  align-items: baseline !important; }

.product-page--direction-b #add_to_cart .product-pdp-buy-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 20px !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-stepper {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  width: auto !important;
  height: 42px !important;
  padding: 2px !important;
  border: 1px solid #E6DFCB !important;
  border-radius: 999px !important;
  background: #FFFDF7 !important;
  box-shadow: none !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #2A4A36 !important;
  box-shadow: none !important;
  font-size: 14px !important;
  line-height: 1 !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button:hover,
.product-page--direction-b #add_to_cart .product-pdp-quantity-button:focus-visible {
  background: #FBF7EF !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input {
  flex: 0 0 32px !important;
  width: 32px !important;
  min-width: 32px !important;
  max-width: 32px !important;
  height: 36px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #2A4A36 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 36px !important;
  text-align: center !important; }

.product-page--direction-b .product-pdp-add-to-cart,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart {
  height: 44px !important;
  min-height: 44px !important;
  border-radius: 999px !important; }

@media screen and (max-width: 991px) {
  .product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 32px !important;
    padding: 20px 16px 48px !important; }
  .product-page--direction-b .product-content__purchase,
  .product-page--direction-b .product-purchase-column {
    position: static !important;
    top: auto !important; } }

@media screen and (max-width: 767px) {
  .product-page--direction-b .product-gallery {
    display: block !important; }
  .product-page--direction-b .product-gallery__main,
  .product-page--direction-b #grandeImgProduct.product-gallery__main {
    width: 100% !important; }
  .product-page--direction-b .product-gallery__thumbs,
  .product-page--direction-b .minis-img-product.ui.small.images.product-gallery__thumbs {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 12px 0 0 !important; }
  .product-page--direction-b .product-gallery__thumb,
  .product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1; }
  .product-page--direction-b #add_to_cart .product-pdp-buy-row {
    align-items: center !important; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart {
    min-width: 92px !important;
    padding: 0 18px !important;
    white-space: nowrap !important; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart .cart-img-btn {
    display: none !important; } }

.product-page--direction-b .product-content__purchase,
.product-page--direction-b .product-purchase-column {
  display: block !important;
  position: static !important;
  top: auto !important;
  align-self: start !important;
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important; }

.product-page--direction-b #add_to_cart,
.product-page--direction-b #right_sidebar_product.product-purchase-card {
  display: block !important;
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important; }

/* PDP hero - hard-stop overrides, intentionally last. */
.product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1240px !important;
  grid-template-columns: minmax(0, 600px) minmax(320px, 400px) !important;
  justify-content: start !important;
  gap: 64px !important;
  margin: 0 auto !important;
  padding: 32px 16px 64px !important; }

@media screen and (min-width: 1240px) {
  .product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
    padding-right: 16px !important;
    padding-left: 16px !important; } }

.product-page--direction-b #right_sidebar_product.product-purchase-card {
  max-width: none !important; }

.product-page--direction-b #right_sidebar_product .product-price-line {
  padding-bottom: 0 !important;
  border-bottom: 0 !important; }

.product-page--direction-b .product-purchase-card__header,
.product-page--direction-b .product-purchase-short-description {
  max-width: none !important; }

.product-page--direction-b .product-purchase-short-description {
  width: 100% !important;
  max-width: 44ch !important;
  line-height: 1.52 !important; }

.product-page--direction-b .product-gallery__thumb.is-active,
.product-page--direction-b .mini-img-product.ui.image.product-gallery__thumb.is-active {
  box-shadow: 0 0 0 2px #FBF7EF, 0 0 0 4px #2A4A36 !important; }

.product-page--direction-b .product-purchase-card__commerce > .ui:first-child {
  padding-bottom: 0 !important;
  border-bottom: 0 !important; }

.product-page--direction-b #right_sidebar_product .product-purchase-card__commerce > *,
.product-page--direction-b .product-purchase-card__commerce > .product-purchase-price-section,
.product-page--direction-b .product-purchase-card__commerce > .ui.product-purchase-price-section:first-child {
  width: 100% !important;
  padding-bottom: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important; }

.product-page--direction-b #add_to_cart .product-pdp-form {
  width: 100% !important;
  max-width: 480px !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important; }

.product-page--direction-b #add_to_cart .product-pdp-form::before,
.product-page--direction-b #add_to_cart .product-pdp-form::after,
.product-page--direction-b #add_to_cart .product-pdp-variant-label::before,
.product-page--direction-b #add_to_cart .product-pdp-variant-label::after {
  content: none !important;
  display: none !important; }

.product-page--direction-b .product-purchase-separator {
  display: block !important;
  width: 100% !important;
  max-width: 392px !important;
  height: 1px !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  border: 0 !important;
  background: #E6DFCB !important;
  box-shadow: none !important;
  pointer-events: none; }

.product-page--direction-b #add_to_cart .product-pdp-variant-label {
  font-family: var(--mcb-font-label);
  padding-top: 0 !important;
  border-top: 0 !important; }

.product-page--direction-b #right_sidebar_product #mobile-variant-select {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-stepper {
  box-sizing: border-box !important;
  width: 104px !important;
  height: 36px !important;
  padding: 2px !important;
  background: #FFFFFF !important;
  border-color: #E6DFCB !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-family: var(--mcb-font-primary) !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button {
  width: 32px !important;
  height: 30px !important;
  min-width: 32px !important;
  min-height: 30px !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-primary) !important;
  font-weight: 400 !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-icon {
  display: block;
  width: 14px;
  height: 14px;
  pointer-events: none; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input.productVariantQuantityChoice {
  appearance: textfield !important;
  flex: 0 0 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 30px !important;
  line-height: 30px !important;
  background: transparent !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-primary) !important;
  font-size: 14px !important;
  font-weight: 600 !important; }

.product-page--direction-b #add_to_cart .product-pdp-buy-row {
  gap: 10px !important; }

.product-page--direction-b #add_to_cart .product-pdp-cta {
  flex: 0 0 190px !important;
  width: 190px !important;
  max-width: 190px !important; }

.product-page--direction-b #add_to_cart .productVariantIdChoice {
  cursor: pointer !important; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.disabled {
  cursor: not-allowed !important; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase,
.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase:hover,
.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
  cursor: pointer; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase:hover .product-rating-summary__count--purchase,
.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase:focus-visible .product-rating-summary__count--purchase {
  color: #2A4A36 !important; }

.product-page--direction-b .product-purchase-attribute-badge {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: fit-content !important;
  height: auto !important;
  min-height: 24px !important;
  max-height: none !important;
  padding: 0 9px !important;
  border: 1px solid #E6DFCB !important;
  border-radius: 999px !important;
  background: #FFFDF7 !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-badge) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 15px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important; }

.product-page--direction-b .product-purchase-attribute-badge--has-logo {
  min-height: 24px !important;
  padding: 2px 6px !important; }

.product-page--direction-b .product-purchase-attribute-badge__logo {
  display: block;
  width: auto;
  max-width: 56px;
  height: auto;
  max-height: 20px;
  object-fit: contain; }

.product-page--direction-b .product-pdp-add-to-cart,
.product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart {
  width: 100% !important;
  min-width: 0 !important;
  padding-right: 24px !important;
  padding-left: 24px !important; }

.product-page--direction-b #add_to_cart .product-pdp-variants {
  display: inline-grid !important;
  grid-template-columns: repeat(3, auto) !important;
  gap: 8px !important;
  width: auto !important;
  max-width: none !important; }

.product-page--direction-b #add_to_cart .productVariantIdChoice {
  width: auto !important;
  min-width: 82px !important;
  max-width: none !important;
  min-height: 58px !important;
  padding: 8px 12px !important; }

.product-page--direction-b #add_to_cart .product-pdp-buy-row {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 480px !important;
  gap: 10px !important; }

.product-page--direction-b #add_to_cart .product-pdp-cta {
  flex: 0 0 260px !important;
  width: 260px !important;
  max-width: none !important;
  min-width: 260px !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity {
  flex: 0 0 112px !important;
  width: 112px !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-stepper {
  box-sizing: border-box !important;
  width: 112px !important;
  height: 44px !important;
  min-width: 112px !important;
  padding: 4px !important;
  display: grid !important;
  grid-template-columns: 34px 34px 34px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  background: #fff !important;
  border: 1px solid #E6DFCB !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  overflow: visible !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button,
.product-page--direction-b #add_to_cart .product-pdp-quantity-value {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button {
  position: relative !important;
  isolation: isolate !important;
  color: #8A7B5E !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-value {
  color: #2A4A36 !important;
  font-family: var(--mcb-font-control) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 21px !important;
  letter-spacing: 0 !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 34px !important;
  height: 34px !important;
  transform: translate(-50%, -50%) !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: background-color 160ms ease, box-shadow 160ms ease !important;
  z-index: -1 !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button:not(.is-disabled):not(:disabled):hover,
.product-page--direction-b #add_to_cart .product-pdp-quantity-button:not(.is-disabled):not(:disabled):focus-visible {
  color: #2A4A36 !important;
  background: transparent !important;
  outline: none !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-button:not(.is-disabled):not(:disabled):hover::before,
.product-page--direction-b #add_to_cart .product-pdp-quantity-button:not(.is-disabled):not(:disabled):focus-visible::before {
  background: rgba(42, 74, 54, 0.08) !important;
  box-shadow: 0 0 0 1px rgba(42, 74, 54, 0.03), 0 2px 6px rgba(42, 74, 54, 0.08) !important; }

.product-page--direction-b #add_to_cart .product-pdp-quantity-input.productVariantQuantityChoice {
  display: none !important; }

@media screen and (max-width: 991px) {
  .product-page--direction-b .product-content--direction-b.ui.grid.product-hero-section {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 32px !important;
    padding: 20px 16px 48px !important; } }

@media screen and (max-width: 767px) {
  .product-page--direction-b .product-gallery {
    display: block !important; }
  .product-page--direction-b .product-gallery__thumbs,
  .product-page--direction-b .minis-img-product.ui.small.images.product-gallery__thumbs {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 12px 0 0 !important; }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart .cart-img-btn {
    display: none !important; }
  .product-page--direction-b #right_sidebar_product #mobile-variant-select {
    display: block !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 0 16px !important;
    padding: 0 14px !important;
    border: 1px solid #E6DFCB !important; } }

/* ================================================================
   CARACTÉRISTIQUES PRODUIT — tokens alignés sur la maquette Figma
   ================================================================ */
.product-page--direction-b .product-detail-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) !important;
  gap: 64px !important;
  align-items: start !important;
  max-width: 1240px !important; }

/* Pas de caractéristiques renseignées → la description reprend toute la largeur
   au lieu de laisser un panneau droit vide. (La largeur de lecture reste capée
   à 62ch sur .product-detail, donc le texte ne s'étire pas.) */
.product-page--direction-b .product-detail-grid--full {
  grid-template-columns: minmax(0, 1fr) !important; }

.product-page--direction-b .product-detail-grid__main {
  min-width: 0 !important; }

/* Corps de la description (Figma : 15.5px / 1.75 / #3D3829, Inter) */
.product-page--direction-b .product-detail-grid__main .product-detail {
  max-width: 62ch !important;
  color: #3D3829 !important;
  font-family: var(--mcb-font-body) !important;
  font-size: 15.5px !important;
  line-height: 1.75 !important; }

.product-page--direction-b .product-detail-grid__aside {
  position: sticky !important;
  top: 110px !important;
  min-width: 0 !important; }

.product-page--direction-b .product-specs__head {
  margin-bottom: 20px !important; }

/* Titre de section (Figma : Manrope, clamp(22-28), 600, -0.015em) */
.product-page--direction-b .product-specs__title {
  margin: 0 !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-heading) !important;
  font-size: clamp(22px, 2.4vw, 28px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.015em !important; }

/* Bandeau de logos officiels */
.product-page--direction-b .product-specs__labels {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 4px 0 20px !important;
  margin: 0 !important; }

.product-page--direction-b .product-specs__label-logo {
  display: block !important;
  width: auto !important;
  height: 90px !important;
  max-width: 160px !important;
  object-fit: contain !important; }

/* Label Rouge : logo paysage (ovale) → réduit en hauteur pour équilibrer
   le poids visuel face aux logos carrés (IGP, AOP…) à hauteur égale. */
.product-page--direction-b .product-specs__label-logo--label-rouge {
  height: 64px !important;
  max-width: 132px !important; }

.product-page--direction-b .product-specs__label-text {
  display: inline-flex !important;
  align-items: center !important;
  height: 28px !important;
  padding: 0 10px !important;
  border: 1px solid rgba(42, 74, 54, 0.25) !important;
  border-radius: 6px !important;
  background: #FBF7EF !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-heading) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important; }

/* Tableau clé / valeur (Figma : border-top, rows py-3, dt 12.5/#7A6A4A, dd 13.5/#2A4A36/500) */
.product-page--direction-b .product-specs__list {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border-top: 1px solid #E6DFCB !important; }

.product-page--direction-b .product-specs__row {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 16px !important;
  margin: 0 !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #E6DFCB !important; }

.product-page--direction-b .product-specs__key {
  flex: 0 0 auto !important;
  color: #7A6A4A !important;
  font-family: var(--mcb-font-body) !important;
  font-size: 12.5px !important;
  font-weight: 400 !important; }

.product-page--direction-b .product-specs__value {
  margin: 0 !important;
  text-align: right !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-body) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important; }

/* Accordéons (JS : transition max-height + chevron, hover ocre — Figma) */
.product-page--direction-b .product-specs__accordions {
  margin-top: 2px !important; }

.product-page--direction-b .product-specs__accordion {
  border-bottom: 1px solid #E6DFCB !important; }

.product-page--direction-b .product-specs__accordion-summary {
  box-sizing: border-box !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 16px 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  background: none !important;
  border: 0 !important;
  cursor: pointer !important;
  text-align: left !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-heading) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  transition: color 0.2s ease !important; }

.product-page--direction-b .product-specs__accordion-summary:hover {
  color: #C28A3A !important; }

.product-page--direction-b .product-specs__accordion-chevron {
  flex: 0 0 auto !important;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; }

.product-page--direction-b .product-specs__accordion.is-open .product-specs__accordion-chevron {
  transform: rotate(180deg) !important; }

.product-page--direction-b .product-specs__accordion-panel {
  overflow: hidden !important;
  max-height: 0;
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; }

.product-page--direction-b .product-specs__accordion-body {
  padding: 0 0 16px !important;
  color: #3D3829 !important;
  font-family: var(--mcb-font-body) !important;
  font-size: 13.5px !important;
  line-height: 1.65 !important; }

.product-page--direction-b .product-specs__accordion-body p {
  margin: 0 0 10px !important; }

/* Empilement responsive : description puis caractéristiques */
@media screen and (max-width: 991px) {
  .product-page--direction-b .product-detail-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important; }
  .product-page--direction-b .product-detail-grid__aside {
    position: static !important;
    top: auto !important; } }

/* ================================================================
   BADGES PHOTO (overlay galerie) : macaron médaille + 1 logo officiel
   ================================================================ */
.product-page--direction-b .product-gallery__main {
  position: relative !important; }

.product-page--direction-b .product-gallery__badges {
  position: absolute !important;
  top: 16px !important;
  left: 16px !important;
  z-index: 3 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
  pointer-events: none !important; }

/* Macaron médaille officiel (image uploadée) */
.product-page--direction-b .product-gallery__badge--medal {
  display: block !important;
  width: auto !important;
  height: 92px !important;
  max-width: 92px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 2px 6px rgba(31, 42, 34, 0.25)) !important; }

/* Logo officiel de label sur la photo */
.product-page--direction-b .product-gallery__badge--logo {
  display: block !important;
  width: auto !important;
  height: 58px !important;
  max-width: 80px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 1px 4px rgba(31, 42, 34, 0.2)) !important; }

.product-page--direction-b .product-gallery__badge--text {
  display: inline-flex !important;
  align-items: center !important;
  height: 26px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.95) !important;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-heading) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  box-shadow: 0 1px 4px rgba(31, 42, 34, 0.15) !important; }

/* Macaron CSS (fallback quand pas de logo concours uploadé) */
.product-page--direction-b .product-medal {
  box-sizing: border-box !important;
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 72px !important;
  height: 72px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(255, 255, 255, 0.65) !important;
  color: #FFFFFF !important;
  text-align: center !important;
  line-height: 1.05 !important;
  box-shadow: 0 2px 8px rgba(31, 42, 34, 0.22) !important;
  font-family: var(--mcb-font-heading) !important; }

.product-page--direction-b .product-medal__short {
  font-size: 13px !important;
  font-weight: 700 !important; }

.product-page--direction-b .product-medal__year {
  font-size: 10px !important;
  font-weight: 600 !important;
  opacity: 0.92 !important; }

.product-page--direction-b .product-medal--gold {
  background: radial-gradient(circle at 32% 28%, #E8C969, #C9A227) !important; }

.product-page--direction-b .product-medal--silver {
  background: radial-gradient(circle at 32% 28%, #DEDEDE, #AFAFAF) !important;
  color: #36454F !important;
  border-color: rgba(255, 255, 255, 0.8) !important; }

.product-page--direction-b .product-medal--bronze {
  background: radial-gradient(circle at 32% 28%, #DA9E6B, #B87333) !important; }

.product-page--direction-b .product-medal--score,
.product-page--direction-b .product-medal--star,
.product-page--direction-b .product-medal--mention {
  background: radial-gradient(circle at 32% 28%, #34553F, #2A4A36) !important; }

@media screen and (max-width: 767px) {
  .product-page--direction-b .product-gallery__badge--medal {
    height: 76px !important;
    max-width: 76px !important; }
  .product-page--direction-b .product-gallery__badge--logo {
    height: 48px !important; }
  .product-page--direction-b .product-medal {
    width: 62px !important;
    height: 62px !important; } }

/* Macaron CSS aligné sur la hauteur des logos dans le bandeau Caractéristiques */
.product-page--direction-b .product-specs__labels .product-medal {
  width: 88px !important;
  height: 88px !important; }

/* Macaron officiel (image) : hauteur réduite pour équilibrer le vide interne des logos labels */
.product-page--direction-b .product-specs__label-logo--medal {
  height: 78px !important;
  max-width: 78px !important; }

/* Description longue : repli « Lire la suite / Réduire » */
.product-long-description.is-clamped {
  overflow: hidden; }

.product-long-description__toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #2A4A36;
  font-family: Manrope, sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1); }

/* L'attribut hidden doit primer sur le display ci-dessus. */
.product-long-description__toggle[hidden] {
  display: none; }

.product-long-description__toggle:hover,
.product-long-description__toggle:focus-visible {
  color: #C28A3A;
  outline: none; }

.product-long-description__toggle svg {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }

.product-long-description__toggle[aria-expanded="true"] svg {
  transform: rotate(180deg); }

.product-long-description__toggle-less {
  display: none; }

.product-long-description__toggle[aria-expanded="true"] .product-long-description__toggle-more {
  display: none; }

.product-long-description__toggle[aria-expanded="true"] .product-long-description__toggle-less {
  display: inline; }

/* ==========================================================================
   ENCART VIDÉO PRODUCTEUR / RECETTE (PDP) — éditorial, sans cadre
   Le média (poster + play, remplacé par l'iframe au clic) est posé directement
   sur le fond crème. Vertical (Short 9:16) = portrait 300px à gauche ;
   paysage 16:9 = média large. Le côté droit se remplit avec titre + citation
   + origine (auto, taxon terroir) + chips labels (auto). Aucune nouvelle saisie.
   ========================================================================== */
.mcb-producer-video {
  max-width: 1200px;
  margin: 0 auto;
  /* Respiration nette au-dessus pour séparer du bloc précédent. */
  padding: clamp(40px, 6vw, 72px) 24px clamp(48px, 6vw, 72px); }

.mcb-producer-video__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 4vw, 56px); }

/* En vertical (Short 9:16), le média est un portrait borné à gauche. */
.mcb-producer-video--vertical .mcb-producer-video__inner {
  grid-template-columns: 300px minmax(0, 1fr); }

.mcb-producer-video__media-col {
  position: relative; }

/* ---- Média (poster + play) / iframe : carte arrondie posée sur le crème ---- */
.mcb-producer-video__media {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  cursor: pointer;
  overflow: hidden;
  background: #11221A;
  border-radius: 16px;
  aspect-ratio: 16 / 9;
  box-shadow: 0 28px 60px -26px rgba(42, 74, 54, 0.55); }

.mcb-producer-video--vertical .mcb-producer-video__media {
  aspect-ratio: 9 / 16;
  max-width: 300px;
  margin: 0 auto; }

.mcb-producer-video__poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

.mcb-producer-video__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.3)); }

.mcb-producer-video__media:hover .mcb-producer-video__poster {
  transform: scale(1.04); }

.mcb-producer-video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 64px;
  height: 64px;
  border-radius: 999px;
  background: rgba(251, 247, 239, 0.94);
  color: #2A4A36;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 30px -8px rgba(0, 0, 0, 0.45);
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.2s ease; }

.mcb-producer-video__play svg {
  margin-left: 4px; }

.mcb-producer-video__media:hover .mcb-producer-video__play {
  transform: translate(-50%, -50%) scale(1.07);
  background: #FFFFFF; }

.mcb-producer-video__media:focus-visible {
  outline: 3px solid #C28A3A;
  outline-offset: 3px; }

/* iframe injectée au clic (remplace le bouton média) */
.mcb-producer-video__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #11221A;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 28px 60px -26px rgba(42, 74, 54, 0.55); }

.mcb-producer-video--vertical .mcb-producer-video__frame {
  aspect-ratio: 9 / 16;
  max-width: 300px;
  margin: 0 auto; }

.mcb-producer-video__frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block; }

/* ---- Texte ---- */
.mcb-producer-video__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 620px; }

.mcb-producer-video__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 14px;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C28A3A; }

.mcb-producer-video__eyebrow-icon {
  flex: none; }

.mcb-producer-video__title {
  margin: 0;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: clamp(24px, 2.6vw, 30px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #2A4A36; }

/* Règle dorée entre titre et citation : rythme éditorial. */
.mcb-producer-video__rule {
  display: block;
  width: 52px;
  height: 2px;
  margin: 18px 0;
  background: linear-gradient(90deg, #E8C26B, rgba(232, 194, 107, 0.15));
  border-radius: 2px; }

.mcb-producer-video__caption {
  margin: 0;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-style: italic;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.6;
  color: #5C5340;
  max-width: 52ch; }

/* Ligne origine (auto, taxon terroir). */
.mcb-producer-video__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 18px 0 0;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-weight: 500;
  font-size: 13.5px;
  color: #7A6A4A; }

.mcb-producer-video__meta svg {
  flex: none;
  color: #C28A3A; }

/* Chips labels (auto). Premier en doré, le reste en vert discret. */
.mcb-producer-video__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 0; }

.mcb-producer-video__chip {
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-weight: 600;
  font-size: 12px;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgba(42, 74, 54, 0.07);
  color: #2A4A36;
  border: 1px solid rgba(42, 74, 54, 0.12); }

.mcb-producer-video__chip--gold {
  background: rgba(194, 138, 58, 0.12);
  color: #8A5F22;
  border-color: rgba(194, 138, 58, 0.3); }

@media screen and (max-width: 860px) {
  .mcb-producer-video {
    padding-top: clamp(32px, 8vw, 48px);
    padding-bottom: 40px; }
  .mcb-producer-video__inner,
  .mcb-producer-video--vertical .mcb-producer-video__inner {
    grid-template-columns: 1fr;
    gap: 26px; }
  .mcb-producer-video__body {
    text-align: center;
    align-items: center; }
  .mcb-producer-video__rule,
  .mcb-producer-video__chips {
    justify-content: center;
    margin-left: auto;
    margin-right: auto; }
  /* En vertical sur mobile, on borne la hauteur du média pour ne pas manger l'écran. */
  .mcb-producer-video--vertical .mcb-producer-video__media,
  .mcb-producer-video--vertical .mcb-producer-video__frame {
    aspect-ratio: 9 / 16;
    max-width: 260px; } }

@media (prefers-reduced-motion: reduce) {
  .mcb-producer-video__poster,
  .mcb-producer-video__play {
    transition: none; }
  .mcb-producer-video__media:hover .mcb-producer-video__poster {
    transform: none; } }

/* ==========================================================================
   BUY BOX — alignement sur la maquette (titre / note / chips / variantes).
   Bloc volontairement en DERNIER : il neutralise les itérations précédentes.
   Strictement scopé à la PDP (#right_sidebar_product / #add_to_cart) → aucun
   impact sur les chips de variante des cartes de listing.
   ========================================================================== */
/* --- Titre produit : police/taille/weight de la maquette --- */
.product-page--direction-b .product-purchase-card__title {
  font-family: var(--mcb-font-primary) !important;
  font-size: clamp(28px, 3vw, 36px) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.025em !important;
  color: #2A4A36 !important; }

/* --- Note : étoiles dorées, taille réduite (format « 5,0 · N avis » déjà en place) --- */
.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .stars-static {
  gap: 2px !important; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .star-icon {
  width: 15px !important;
  height: 15px !important; }

.product-page--direction-b #right_sidebar_product .product-rating-summary__link--purchase .star-icon.filled {
  color: #C28A3A !important;
  fill: currentColor !important; }

/* --- Chips labels : un seul ton (vert discret), 1ᵉʳ en doré --- */
.product-page--direction-b .product-purchase-attribute-badge {
  background: rgba(42, 74, 54, 0.07) !important;
  color: #2A4A36 !important;
  border: 1px solid #2a4a361f !important;
  font-family: var(--mcb-font-primary) !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  padding: 5px 11px !important;
  border-radius: 999px !important; }

.product-page--direction-b .product-purchase-attribute-badges .product-purchase-attribute-badge:first-child {
  background: rgba(194, 138, 58, 0.12) !important;
  color: #8A5F22 !important;
  border-color: rgba(194, 138, 58, 0.3) !important; }

/* --- Sélecteur de variante : actif = bordure verte (fini le fond vert plein) --- */
.product-page--direction-b #add_to_cart .productVariantIdChoice.blue {
  background: #FFFFFF !important;
  border-color: #2A4A36 !important;
  color: #2A4A36 !important;
  box-shadow: 0 0 0 1px #2A4A36 inset !important; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.blue .product-pdp-variant-choice__label {
  color: #2A4A36 !important; }

.product-page--direction-b #add_to_cart .productVariantIdChoice.blue .product-pdp-variant-choice__detail {
  color: #7A6A4A !important; }

/* --- Réassurance : pictos (colis + bouclier) au lieu des puces rondes --- */
.product-page--direction-b .product-purchase-reassurance li {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding-left: 0 !important;
  font-size: 13.5px !important;
  line-height: 1.45 !important;
  color: #3D3829 !important; }

.product-page--direction-b .product-purchase-reassurance li::before {
  display: none !important; }

.product-page--direction-b .product-purchase-reassurance li svg {
  flex: none;
  width: 18px;
  height: 18px;
  color: #2A4A36; }

/* ==========================================================================
   Section « À déguster avec » (cross-sell accords)
   Bloc éditorial sobre sur fond crème : surtitre doré + titre + accroche,
   puis rangée de cartes produit STANDARD (note/avis, médaille, ajout panier).
   Le nombre de colonnes s'adapte au nombre d'accords (2 à 4) et la rangée est
   bornée pour ne pas étirer 2 cartes sur toute la largeur (pas de "vide").
   ========================================================================== */
.product-accords {
  box-sizing: border-box;
  width: 100%;
  padding: clamp(28px, 5vw, 44px) 0 8px; }

.product-accords__inner {
  box-sizing: border-box;
  width: calc(100% - 32px);
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px; }

.product-accords__head {
  margin-bottom: 22px; }

.product-accords__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mcb-gold-ink, #8C5E16); }

.product-accords__eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--mcb-gold-dark, #C28A3A); }

.product-accords__title {
  margin: 10px 0 0;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 26px);
  line-height: 1.15;
  color: var(--mcb-green-main, #2A4A36); }

.product-accords__lead {
  margin: 7px 0 0;
  max-width: 560px;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 14px;
  line-height: 1.5;
  color: var(--mcb-text-secondary, #5C5340); }

.product-accords__row {
  display: grid;
  grid-template-columns: repeat(var(--accords-cols, 3), 1fr);
  gap: 18px;
  align-items: stretch;
  /* Borne la largeur quand peu d'accords (2 cartes ne s'étirent pas), sans jamais
       dépasser le conteneur : min(100%, …) évite tout débordement horizontal.
       unquote() : LibSass interpréterait sinon min() comme la fonction Sass (erreur). */
  max-width: min(100%, calc(var(--accords-cols, 3) * 300px)); }

@media (max-width: 1024px) {
  .product-accords__row {
    grid-template-columns: repeat(2, 1fr);
    max-width: 620px; } }

@media (max-width: 768px) {
  .product-accords__inner {
    padding: 0 16px; }
  /* Mobile : scroll horizontal avec accroche (on entrevoit la carte suivante).
       Carrousel COMPLEXE laissé intact (non consommateur de mcb-hscroll) : peek
       spécifique (flex 0 0 72%), snap `start` (et non `center`) et scrollbar
       volontairement VISIBLE (pas de masquage). Il n'est donc pas strictement
       équivalent au motif partagé ; le convertir changerait le comportement. */
  .product-accords__row {
    display: flex;
    max-width: none;
    gap: 14px;
    margin: 0 -16px;
    padding: 2px 16px 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; }
  .product-accords__row > * {
    flex: 0 0 72%;
    scroll-snap-align: start; } }

/* ==========================================================================
   FUSION DESCRIPTION + FILM PRODUCTEUR (section détail, 2 colonnes)
   - Vidéo présente : colonne droite = carte film producteur (sticky, hérite de
     .product-detail-grid__aside) ; caractéristiques rendues SOUS la description
     (.product-specs--inline).
   - Pas de vidéo : disposition inchangée (caractéristiques en colonne droite).
   ========================================================================== */
/* Caractéristiques en ligne (sous la description) : séparées par un filet,
   sans sticky (le bloc suit le flux de la colonne gauche). */
.product-page--direction-b .product-specs--inline {
  margin-top: 36px !important;
  padding-top: 28px !important;
  border-top: 1px dashed #E6DFCB !important; }

.product-page--direction-b .product-specs--inline .product-specs__list {
  max-width: 620px !important; }

.product-page--direction-b .product-specs--inline .product-specs__accordions {
  max-width: 620px !important; }

/* Colonne droite quand elle porte le film producteur (et non les specs).
   top plus généreux que les specs : l'eyebrow ne doit pas passer sous le header
   fixe au moment où la carte devient sticky. */
.product-page--direction-b .product-detail-grid__aside--video {
  align-self: start !important;
  top: 132px !important; }

/* --------------------------------------------------------------------------
   Carte film producteur COMPACTE (colonne droite)
   -------------------------------------------------------------------------- */
.mcb-video-card {
  position: relative;
  display: block; }

.mcb-video-card__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-family: var(--mcb-font-secondary, "Inter", sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8C5E16; }

.mcb-video-card__eyebrow-icon {
  flex: none;
  color: #C28A3A; }

/* Média : poster + façade, carte arrondie posée sur le crème. */
.mcb-video-card__media {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #EFE7D2;
  cursor: pointer; }

.mcb-video-card--vertical .mcb-video-card__media {
  aspect-ratio: 3 / 4; }

.mcb-video-card__poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease; }

.mcb-video-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(20, 30, 22, 0.55), rgba(20, 30, 22, 0) 55%);
  pointer-events: none; }

.mcb-video-card__media:hover .mcb-video-card__poster {
  transform: scale(1.04); }

.mcb-video-card__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  color: #2A4A36;
  transition: transform 0.2s ease, background 0.2s ease; }

.mcb-video-card__play svg {
  margin-left: 3px; }

.mcb-video-card__media:hover .mcb-video-card__play {
  transform: translate(-50%, -50%) scale(1.08);
  background: #FFFFFF; }

.mcb-video-card__media:focus-visible {
  outline: 3px solid #C28A3A;
  outline-offset: 3px; }

/* Légende posée en bas de la carte (sur le dégradé). */
.mcb-video-card__cap {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 14px;
  z-index: 2;
  color: #FFFFFF;
  text-align: left; }

.mcb-video-card__cap strong {
  display: block;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-weight: 600;
  font-size: 15px;
  line-height: 1.25; }

.mcb-video-card__cap span {
  font-family: var(--mcb-font-secondary, "Inter", sans-serif);
  font-size: 12.5px;
  opacity: 0.9; }

/* Ligne origine (auto, taxon terroir / attribut origine). */
.mcb-video-card__meta {
  margin: 10px 0 0;
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--mcb-font-secondary, "Inter", sans-serif);
  font-size: 12.5px;
  color: #7A6A4A; }

.mcb-video-card__meta svg {
  flex: none;
  color: #C28A3A; }

/* iframe injectée au clic (remplace le bouton média). */
.mcb-video-card__frame {
  position: relative;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #000; }

.mcb-video-card--vertical .mcb-video-card__frame {
  aspect-ratio: 3 / 4; }

.mcb-video-card__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0; }

@media (prefers-reduced-motion: reduce) {
  .mcb-video-card__poster,
  .mcb-video-card__play {
    transition: none; }
  .mcb-video-card__media:hover .mcb-video-card__poster {
    transform: none; } }

/* Variant page panier : on sépare la rangée d'accords du bloc panier uniquement
   par de l'espace blanc (pas de filet, pas de fond), avec une marge haute
   généreuse pour que la section respire et se lise comme un bloc distinct. */
.product-accords--cart {
  margin-top: clamp(40px, 5vw, 72px);
  padding-top: 0; }

.product-accords--cart .product-accords__head {
  margin-bottom: 16px; }

/* Page panier (desktop) : la rangée d'accords s'aligne exactement sur les bords
   du bloc panier (gauche) et du récapitulatif (droite). On annule l'inset du
   conteneur éditorial hérité de .product-accords (calc + padding) pour occuper
   toute la largeur du contenu. En mobile on garde le gutter + le scroll horizontal. */
@media (min-width: 769px) {
  .product-accords--cart .product-accords__inner {
    width: 100%;
    max-width: none;
    padding: 0; }
  .product-accords--cart .product-accords__row {
    /* Cap sur le nombre réel de colonnes : avec 1–3 accords, les cartes ne
           s'étirent plus sur toute la largeur (proportions démesurées). Aligné
           à gauche pour un rendu naturel quand il y a peu d'items. */
    max-width: min(100%, calc(var(--accords-cols, 4) * 300px));
    margin-left: 0;
    margin-right: 0; } }

/* Section « À déguster avec » : images carrées (1/1) pour des vignettes plus
   ramassées et nettes (PDP + panier). On force le ratio sur le média directement
   (en plus de la variable) pour être sûr de battre la cascade de la carte. */
.product-accords .product-card-v2.product-card--listing {
  --product-card-media-ratio: 1 / 1; }

.product-accords .product-card-v2.product-card--listing .product-card__media {
  aspect-ratio: 1 / 1 !important; }

/* =============================================================================
   TÂCHE 10 — Refonte PDP mobile (spec refonte-responsive-figma, R13.1→R13.7)
   -----------------------------------------------------------------------------
   Bloc AJOUTÉ par la refonte. Contraintes :
   - Comportements mobiles bornés SOUS lg (< 992 px) via respond-below('lg')
     (aucune media query littérale introduite ; mixins respond-* uniquement).
   - Consomme la couche partagée _responsive-patterns.scss (mcb-hscroll,
     mcb-sticky-action-bar, mcb-sticky-offset, mcb-tap-target, mcb-fluid-media,
     mcb-drawer-bottom via .mcb-drawer--bottom déjà stylé, safe-area).
   - Valeurs via tokens --mcb-* ; compat node-sass 4.14 (@import + mixins).
   - Non-régression desktop : rien n'est émis en desktop hormis les masquages
     explicites (respond-to('lg')) des éléments propres au mobile.
   ============================================================================= */
/* --- R13.1 Galerie : carrousel à accroche + pastilles ---------------------- */
/* Desktop (>= lg) : galerie thumbs+main existante conservée ; carrousel mobile
   masqué. Sous lg : galerie desktop masquée, carrousel mobile affiché. */
@media (min-width: 992px) {
  .product-page--direction-b .product-gallery-mobile {
    display: none !important; } }

@media (max-width: 991px) {
  .product-page--direction-b .product-gallery {
    display: none !important; }
  .product-page--direction-b .product-gallery-mobile {
    position: relative;
    display: block;
    width: 100%;
    margin: 0;
    border-radius: var(--mcb-radius-structural, 16px);
    overflow: hidden;
    background: #EFE7D2; }
  .product-page--direction-b .product-gallery-mobile__track {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    width: 100%;
    scroll-snap-type: x mandatory; }
    .product-page--direction-b .product-gallery-mobile__track::-webkit-scrollbar {
      display: none; }
    .product-page--direction-b .product-gallery-mobile__track > * {
      scroll-snap-align: center; }
    .product-page--direction-b .product-gallery-mobile__track > * {
      flex: 0 0 auto; }
  .product-page--direction-b .product-gallery-mobile__slide {
    flex: 0 0 100%;
    width: 100%;
    scroll-snap-align: center; }
  .product-page--direction-b .product-gallery-mobile__img {
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover; }
  .product-page--direction-b .product-gallery-mobile__dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
    padding: 0;
    z-index: 1; }
  .product-page--direction-b .product-gallery-mobile__dot {
    display: block;
    width: 6px;
    height: 6px;
    border-radius: var(--mcb-radius-chip, 999px);
    background: rgba(255, 255, 255, 0.6);
    transition: width var(--mcb-transition-base), background-color var(--mcb-transition-base); }
  .product-page--direction-b .product-gallery-mobile__dot.is-active {
    width: 16px;
    background: #FFFFFF; } }

/* --- R13.2 Prix (dont dégressif) : lisible et aligné, sans chevauchement ---- */
/* Le prix principal et son unité de référence (prix au kg) partagent la ligne
   .product-price-line. Sur mobile étroit, on autorise le retour à la ligne pour
   qu'un libellé long ne chevauche jamais le prix (R13.2 / R19). */
@media (max-width: 991px) {
  .product-page--direction-b #right_sidebar_product .product-price-line {
    flex-wrap: wrap;
    row-gap: 0.15rem; }
  .product-page--direction-b #right_sidebar_product .product-spec-price,
  .product-page--direction-b #right_sidebar_product #product-spec-price {
    max-width: 100%; } }

/* --- R13.3 Accordéons : en-têtes = cibles tactiles ------------------------- */
@media (max-width: 991px) {
  .product-page--direction-b .product-specs__accordion-summary {
    min-height: 44px !important; } }

/* --- R13.4 « Vous aimerez aussi » : carrousel (barre masquée, cohérence R7) - */
/* La rangée d'accords est déjà un carrousel flex sous 768 px. On aligne son
   comportement sur mcb-hscroll en masquant la barre native native sous lg. */
@media (max-width: 991px) {
  .product-page--direction-b .product-accords__row {
    scrollbar-width: none; }
  .product-page--direction-b .product-accords__row::-webkit-scrollbar {
    display: none; } }

/* --- R13.5 Vidéo producteur : média fluide, aucun débordement -------------- */
@media (max-width: 991px) {
  .product-page--direction-b .mcb-video-card,
  .product-page--direction-b .mcb-video-card__media,
  .product-page--direction-b .mcb-video-card__frame,
  .product-page--direction-b .mcb-video-card__poster {
    max-width: 100%; }
  .product-page--direction-b .mcb-video-card__frame iframe {
    max-width: 100%; } }

/* --- R13.6 Barre d'ajout collante : pattern partagé + safe-area ------------ */
/* La barre mobile existante (#mobile-product-banner) consomme le pattern
   partagé mcb-sticky-action-bar (position fixe bornée au shell, safe-area,
   retour au flux en desktop). Le formulaire d'ajout réel est inchangé. */
.product-page--direction-b #mobile-product-banner {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: var(--mcb-z-sticky, 30);
  margin-inline: auto;
  max-width: var(--mcb-shell-max, 480px);
  background: color-mix(in srgb, var(--mcb-surface-panel) 95%, transparent);
  border-top: 1px solid var(--mcb-border-subtle);
  padding: 0.75rem 1rem;
  padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--mcb-surface-panel) 96%, transparent);
  border-top: 1px solid var(--mcb-border-subtle);
  box-shadow: 0 -14px 28px rgba(30, 24, 18, 0.12);
  backdrop-filter: blur(14px);
  padding: 0; }
  @media (min-width: 992px) {
    .product-page--direction-b #mobile-product-banner {
      position: static;
      max-width: none; } }

/* Réserve d'espace bas alignée sur la visibilité réelle de la barre : le
   sélecteur #id (display:flex) prime sur .mobile-only jusqu'à 767 px, donc la
   barre est visible sous md. On borne l'offset à respond-below('md') pour
   remplacer le padding-bottom historique en dur (92 px) par le pattern partagé. */
@media (max-width: 767px) {
  .product-page--direction-b {
    padding-bottom: calc(5.75rem + env(safe-area-inset-bottom)); } }
  @media (max-width: 767px) and (min-width: 992px) {
    .product-page--direction-b {
      padding-bottom: 0; } }

/* --- R13.6 / R13.7 Déclencheur « Format » dans la barre collante ----------- */
@media (max-width: 991px) {
  .product-page--direction-b #mobile-product-banner .product-pdp-mobile-banner-select.is-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap; }
  .product-page--direction-b #mobile-product-banner .product-pdp-mobile-form {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.6rem; }
  .product-page--direction-b #mobile-product-banner .product-pdp-format-trigger {
    min-width: 44px;
    min-height: 44px;
    /* Proportion rééquilibrée : la pastille format prend ~40% de la barre
           (avant : contenu minimal, « ridicule »). */
    flex: 0 0 40%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.15rem;
    min-width: 0;
    padding: 0.5rem 1.1rem;
    border: 1px solid var(--mcb-border-default);
    border-radius: var(--mcb-radius-chip, 999px);
    background: var(--mcb-surface-panel);
    color: var(--mcb-text-primary);
    font-family: var(--mcb-font-body);
    text-align: left;
    cursor: pointer; }
  .product-page--direction-b #mobile-product-banner .product-pdp-format-trigger__label {
    color: var(--mcb-text-muted);
    font-size: 11px;
    font-weight: var(--mcb-fw-semi);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1; }
  .product-page--direction-b #mobile-product-banner .product-pdp-format-trigger__main {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
    max-width: 100%; }
  .product-page--direction-b #mobile-product-banner .product-pdp-format-trigger__value {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 0.95rem;
    font-weight: var(--mcb-fw-semi);
    line-height: 1.15; }
  .product-page--direction-b #mobile-product-banner .product-pdp-format-trigger__chevron {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    color: var(--mcb-text-muted); }
  .product-page--direction-b #mobile-product-banner button.addProductVariantSubmit.product-pdp-mobile-add-to-cart {
    flex: 1 1 auto;
    min-width: 0; }
  .product-page--direction-b #mobile-product-banner .product-pdp-mobile-add-to-cart .button-content {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap; }
  .product-page--direction-b #mobile-product-banner .product-pdp-add-price {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: var(--mcb-fw-bold);
    font-variant-numeric: lining-nums tabular-nums; }
  .product-page--direction-b #mobile-product-banner .product-pdp-add-price::before {
    content: "\00b7";
    margin: 0 0.35em 0 0.15em;
    font-weight: var(--mcb-fw-semi); } }

/* --- R13.7 Sélecteur de format en Drawer_Bas ------------------------------- */
/* Le comportement de drawer (glissement, scroll interne, backdrop, safe-area)
   vient des classes génériques d'overlay (.mcb-drawer--bottom, .mcb-overlay__*)
   déjà stylées dans _header-nav.scss. Ici : habillage propre au sélecteur. */
@media (max-width: 991px) {
  .mcb-pdp-format-drawer {
    color: var(--mcb-text-primary);
    font-family: var(--mcb-font-body); }
  /* La croix flotte au-dessus de la feuille : overflow visible à l'ouverture
       seulement (fermé, on clippe pour ne pas laisser la croix traîner). */
  .mcb-pdp-format-drawer.mcb-drawer--bottom.is-open {
    overflow: visible; }
  .mcb-pdp-format-drawer__head {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--mcb-space-md);
    padding: var(--mcb-space-lg) var(--mcb-space-lg) var(--mcb-space-sm); }
  .mcb-pdp-format-drawer__title {
    margin: 0;
    color: var(--mcb-text-accent);
    font-family: var(--mcb-font-heading);
    font-size: 1.15rem;
    font-weight: var(--mcb-fw-bold);
    line-height: 1.2; }
  /* Croix flottante centrée, à cheval bien au-dessus du bord haut (comme les
       autres drawers : ajout rapide / filtres). */
  .mcb-pdp-format-drawer__close {
    position: absolute;
    top: calc(-1 * var(--mcb-space-3xl));
    left: 50%;
    z-index: 3;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border-radius: 999px;
    background: var(--mcb-n-0, #fff);
    color: var(--mcb-text-primary);
    line-height: 1;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); }
  .mcb-pdp-format-drawer__close svg {
    width: 20px;
    height: 20px; }
  .mcb-pdp-format-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* Grande respiration en bas : les options ne sont pas collées au bord. */
    padding: 0 var(--mcb-space-lg);
    padding-bottom: max(var(--mcb-space-3xl), env(safe-area-inset-bottom)); }
  .mcb-pdp-format-drawer__list {
    display: flex;
    flex-direction: column;
    gap: var(--mcb-space-sm); }
  .mcb-pdp-format-option {
    display: flex;
    align-items: center;
    gap: var(--mcb-space-md);
    width: 100%;
    min-height: 52px;
    padding: var(--mcb-space-sm) var(--mcb-space-lg);
    border: 1px solid var(--mcb-border-default);
    border-radius: var(--mcb-radius-structural);
    background: var(--mcb-surface-panel);
    color: var(--mcb-text-primary);
    font-family: var(--mcb-font-body);
    font-size: 0.95rem;
    text-align: left;
    cursor: pointer;
    transition: border-color var(--mcb-transition-base), background-color var(--mcb-transition-base); }
  .mcb-pdp-format-option.is-selected {
    border-color: var(--mcb-green-main);
    background: var(--mcb-green-soft); }
  .mcb-pdp-format-option__radio {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 1px solid var(--mcb-border-strong);
    border-radius: var(--mcb-radius-chip);
    background: var(--mcb-surface-panel);
    transition: border-color var(--mcb-transition-base), background-color var(--mcb-transition-base); }
  .mcb-pdp-format-option.is-selected .mcb-pdp-format-option__radio {
    border-color: var(--mcb-green-main);
    background: var(--mcb-green-main); }
  .mcb-pdp-format-option.is-selected .mcb-pdp-format-option__radio::after {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: var(--mcb-radius-chip);
    background: var(--mcb-text-on-accent); }
  .mcb-pdp-format-option__label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis; }
  /* Détail court entre parenthèses : petit et discret, pas en gros. */
  .mcb-pdp-format-option__detail {
    color: var(--mcb-text-muted);
    font-size: 0.85em;
    font-weight: 400; }
  .mcb-pdp-format-option__price {
    flex: 0 0 auto;
    color: var(--mcb-text-accent);
    font-family: var(--mcb-font-price);
    font-weight: var(--mcb-fw-bold);
    font-variant-numeric: lining-nums tabular-nums; } }

/* Desktop (>= lg) : le drawer de format et son backdrop ne laissent AUCUN
   résidu dans le flux (parité avec le drawer de variante — R8/R10.7). */
@media (min-width: 992px) {
  .mcb-pdp-format-drawer,
  .mcb-pdp-format-drawer__backdrop {
    display: none; } }

/* ----------------------------------------------------------------------------
   Bandeau collant PDP (mobile) — R13.6 : barre compacte = PRIX + FORMAT + CTA.
   Le prix au kilo (/kg) reste affiché dans le bloc prix principal au-dessus,
   mais on le masque DANS le bandeau (le nouveau markup .product-price-line le
   rend sibling du prix, l'ancienne règle display:none ne l'attrapait plus).
   Parité maquette ProductView.tsx (la barre collante n'affiche pas le /kg).
   -------------------------------------------------------------------------- */
#mobile-product-banner .product-spec-price,
#mobile-product-banner #product-spec-price {
  display: none !important; }

/* ==========================================================================
   FIX overflow buy-row PDP sur très petits mobiles (<= 400px).
   La règle de base fige `.product-pdp-cta` à 260px + `.product-pdp-quantity`
   à 112px + gap 10px = 382px, ce qui déborde à 360px. On rend le CTA FLEXIBLE
   (il occupe la largeur restante) et on borne la buy-row à 100%. Les hauteurs
   (cibles tactiles) restent inchangées. Desktop/tablette : inchangé.
   ========================================================================== */
@media screen and (max-width: 400px) {
  .product-page--direction-b #add_to_cart .product-pdp-buy-row {
    width: 100% !important;
    max-width: 100% !important; }
  .product-page--direction-b #add_to_cart .product-pdp-cta {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important; }
  /* Le bouton d'ajout occupe toute la largeur de sa colonne flexible. */
  .product-page--direction-b .product-pdp-add-to-cart,
  .product-page--direction-b button.addProductVariantSubmit.product-pdp-add-to-cart {
    width: 100% !important;
    padding-right: 16px !important;
    padding-left: 16px !important; } }

.homepage {
  --home-green: #2F6B47;
  --home-green-dark: #24543B;
  --home-text: #22362C;
  --home-muted: #5E6C62;
  --home-surface-soft: #FCFBF8;
  --home-border: #E6E0D5;
  --home-ivory: #FBF9F2;
  padding-bottom: 30px; }

body.pushable:has(.homepage) {
  max-width: 100%;
  overflow-x: clip !important; }

body.pushable:has(.homepage) > .pusher {
  max-width: 100%;
  overflow: visible !important; }

@supports not (overflow: clip) {
  body.pushable:has(.homepage) {
    overflow-x: hidden !important; } }

.homepage #banner,
.homepage #current-operation,
.homepage .home_section,
.homepage .express-delivery-section,
.homepage .newsletter-section {
  width: 100%;
  max-width: var(--mcb-header-max-width, 1240px);
  margin-left: auto;
  margin-right: auto; }

#banner {
  position: relative;
  aspect-ratio: 24 / 7;
  border-radius: 14px;
  overflow: hidden;
  line-height: 0;
  box-shadow: none;
  border: 1px solid var(--mcb-n-100);
  margin-top: 16px; }

#banner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(92deg, rgba(22, 39, 28, 0.65) 0%, rgba(22, 39, 28, 0.45) 42%, rgba(22, 39, 28, 0.15) 74%, rgba(22, 39, 28, 0.02) 100%);
  pointer-events: none; }

#banner img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.banner-content {
  isolation: isolate;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 24px 36px 34px;
  color: white;
  text-align: left;
  z-index: 2;
  gap: 12px; }

.banner-kicker {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  font-family: var(--mcb-font-primary);
  font-size: 13px;
  font-weight: var(--mcb-fw-semi);
  line-height: 1;
  color: var(--mcb-n-0);
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 6px 12px;
  border-radius: 999px; }

.banner-kicker__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--mcb-gold-main);
  box-shadow: 0 0 0 4px rgba(232, 194, 107, 0.25); }

.banner-title {
  font-family: var(--mcb-font-primary);
  font-size: clamp(28px, 2.7vw, 36px);
  font-weight: var(--mcb-fw-bold);
  line-height: 1.15;
  margin: 0;
  max-width: 56%;
  color: var(--mcb-n-0);
  text-shadow: none;
  position: relative;
  z-index: 1; }

.banner-title__accent {
  display: block;
  color: #E8C26B; }

.banner-subtitle {
  font-family: var(--mcb-font-primary);
  font-size: 15px;
  font-weight: var(--mcb-fw-semi);
  margin: 0;
  max-width: 48%;
  line-height: 1.4;
  opacity: 0.95;
  color: var(--mcb-n-25);
  text-shadow: none;
  position: relative;
  z-index: 1; }

.banner-actions {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 10px;
  position: relative;
  z-index: 1; }

.banner-reassurance {
  position: relative;
  z-index: 1;
  margin: 4px 0 0 0;
  font-family: var(--mcb-font-primary);
  font-size: 12px;
  font-weight: var(--mcb-fw-medium);
  color: rgba(255, 255, 255, 0.85);
  max-width: 52%;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.25); }

.banner-trust-list {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 24px;
  max-width: 64%;
  margin: 18px 0 0;
  font-family: var(--mcb-font-primary);
  font-size: 12px;
  font-weight: var(--mcb-fw-medium);
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.25); }

.banner-trust-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0; }

.banner-trust-item svg {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  color: var(--mcb-gold-main);
  filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2)); }

.home-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  gap: 8px;
  border-radius: 999px;
  text-decoration: none !important;
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  font-weight: var(--mcb-fw-medium);
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none !important;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), color var(--mcb-transition-base); }

.home-cta svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px; }

.home-cta:hover,
.home-cta:focus-visible {
  outline: none; }

.home-cta--primary {
  background: var(--mcb-a-500) !important;
  border-color: var(--mcb-a-500) !important;
  color: var(--mcb-text-on-accent) !important;
  box-shadow: none; }

.home-cta--primary:hover {
  background: var(--mcb-a-600) !important;
  border-color: var(--mcb-a-600) !important;
  color: var(--mcb-text-on-accent) !important;
  box-shadow: none; }

.home-cta--primary:focus-visible {
  box-shadow: 0 0 0 2px var(--mcb-text-on-accent), 0 0 0 5px rgba(42, 123, 78, 0.24); }

.home-cta--light {
  border: 1px solid var(--mcb-gold-main) !important;
  background: var(--mcb-gold-main) !important;
  color: var(--mcb-green-main) !important;
  box-shadow: none; }

.home-cta--light:hover {
  background: var(--mcb-gold-hover) !important;
  color: var(--mcb-green-main) !important;
  border-color: var(--mcb-gold-hover) !important;
  box-shadow: none; }

.home-cta--light:focus-visible {
  box-shadow: 0 0 0 2px rgba(244, 236, 216, 0.92), 0 0 0 5px rgba(232, 194, 107, 0.38); }

.home-cta--secondary {
  border: 1px solid rgba(42, 74, 54, 0.2) !important;
  background: transparent !important;
  color: var(--mcb-green-main) !important;
  box-shadow: none; }

.home-cta--secondary:hover {
  background: var(--mcb-green-main) !important;
  border-color: var(--mcb-green-main) !important;
  color: var(--mcb-text-on-accent) !important; }

.home-cta--secondary:focus-visible {
  box-shadow: 0 0 0 3px rgba(28, 26, 23, 0.16); }

.banner-content .banner-cta {
  margin-top: 0;
  min-height: 44px;
  padding: 0 20px;
  font-size: 14px; }

.hero-reassurance-section {
  margin-top: 0 !important;
  padding: 18px 0 6px; }

.hero-reassurance-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px; }

.hero-reassurance-item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0; }

.hero-reassurance-item__icon {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(42, 74, 54, 0.08);
  color: var(--mcb-green-main); }

.hero-reassurance-item__copy {
  min-width: 0; }

.hero-reassurance-item__title,
.hero-reassurance-item__text {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.hero-reassurance-item__title {
  font-family: var(--mcb-font-inter);
  font-size: 13px;
  line-height: 1.35;
  color: var(--mcb-green-main);
  font-weight: var(--mcb-fw-medium); }

.hero-reassurance-item__text {
  margin-top: 1px;
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  line-height: 1.35;
  color: var(--mcb-text-muted); }

@media (min-width: 1025px) {
  .hero-reassurance-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px; }
  .hero-reassurance-item {
    justify-content: center; } }

.banner-rating {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  align-self: flex-start;
  font-family: var(--mcb-font-primary);
  font-size: 13px;
  line-height: 1;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  transition: color var(--mcb-transition-base); }

.banner-rating:hover,
.banner-rating:focus-visible {
  color: var(--mcb-n-0);
  outline: none; }

.banner-rating__stars {
  position: relative;
  display: inline-flex;
  line-height: 0; }

.banner-rating__track,
.banner-rating__fill {
  display: flex; }

.banner-rating__track {
  color: rgba(255, 255, 255, 0.3); }

.banner-rating__fill {
  position: absolute;
  inset: 0;
  width: var(--banner-rating-width, 0%);
  overflow: hidden;
  white-space: nowrap;
  color: var(--mcb-gold-main); }

.banner-rating__stars svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto; }

.banner-rating__text {
  white-space: nowrap; }

#current-operation {
  margin-top: 16px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none; }

.current-operation-section {
  scroll-margin-top: 110px; }

/* Bloc opération dé-encadré (PC + mobile) : plus de boîte crème/bordure/ombre.
   Rendu éditorial aéré ; le regroupement visuel se fait par l'espacement. */
.current-operation-shell {
  padding: 8px 0 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none; }

.operation-header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0 0 16px; }

.operation-header__copy {
  max-width: 560px; }

.operation-eyebrow {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 8px;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mcb-gold-ink, #8C5E16); }

.operation-tag {
  display: inline-flex;
  align-items: center;
  max-width: 280px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(194, 138, 58, 0.12);
  border: 1px solid rgba(194, 138, 58, 0.32);
  color: #B5781F;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* « Voir tout » façon les 2 marmottes : lien texte léger (pas de pilule bordée),
   aligné à droite du titre, visible mobile ET desktop, calé en haut à droite. */
.operation-header__cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  margin-left: auto;
  /* poussé à droite sur la ligne meta (à droite du décompte) */
  padding: 4px 2px;
  border: 0;
  background: transparent;
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease; }

.operation-header__cta svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px; }

.operation-header__cta:hover,
.operation-header__cta:focus-visible {
  color: var(--mcb-gold-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
  outline: none; }

.operation-intro {
  margin: 0;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 14px;
  line-height: 1.5;
  color: #5C5340;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden; }

/* Barre d'urgence : date limite de commande + fenêtre de livraison.
   Promue juste sous l'en-tête (moteur de conversion). */
/* Bandeau commande : countdown (prioritaire) + livraison (secondaire). */
.operation-urgency {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin: 4px 0 22px; }

.operation-urgency__chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  color: #7C7058;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.2; }

.operation-urgency__chip svg {
  flex: 0 0 auto;
  color: #C28A3A; }

/* Compte à rebours de fin d'opération — texte inline léger (plus de pilule ni de
   tuiles encadrées). Une seule ligne discrète : « ⏱ Plus que 3 j 14 h 42 min ». */
.operation-countdown {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #7C7058;
  box-shadow: none;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.2;
  transition: color 0.3s ease; }

.operation-countdown__icon {
  flex: 0 0 auto;
  color: #C28A3A; }

.operation-countdown__label,
.operation-countdown__suffix {
  white-space: nowrap; }

.operation-countdown__tiles {
  display: inline-flex;
  align-items: center;
  gap: 5px; }

.operation-countdown__tile {
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
  padding: 0;
  border-radius: 0;
  background: transparent; }

.operation-countdown__tile[hidden] {
  display: none; }

.operation-countdown__tile b {
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: 700;
  color: #2A4A36;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em; }

.operation-countdown__tile i {
  font-style: normal;
  font-size: 11.5px;
  font-weight: 600;
  color: #9A8A6A; }

/* Sous 24h : alerte chaleureuse (terracotta) portée UNIQUEMENT par la couleur
   du texte (plus de fond/encadré) → reste discrète et inline. */
.operation-countdown.is-urgent {
  background: transparent;
  border-color: transparent;
  color: #7A3A0A; }

.operation-countdown.is-urgent .operation-countdown__icon {
  color: #B5530E; }

.operation-countdown.is-urgent .operation-countdown__tile {
  background: transparent; }

.operation-countdown.is-urgent .operation-countdown__tile b {
  color: #7A3A0A; }

.operation-countdown.is-urgent .operation-countdown__tile i {
  color: #9A5A28; }

.operation-countdown.is-closed {
  gap: 7px;
  color: #7C7058; }

.operation-countdown.is-closed .operation-countdown__icon {
  color: #9A8A6A; }

@media (prefers-reduced-motion: no-preference) {
  .operation-countdown.is-urgent .operation-countdown__icon {
    animation: mcb-countdown-pulse 1.8s ease-in-out infinite; } }

@keyframes mcb-countdown-pulse {
  0%, 100% {
    opacity: 1; }
  50% {
    opacity: 0.4; } }

@media (max-width: 520px) {
  .operation-countdown__suffix {
    display: none; } }

/* ==========================================================================
   RAIL ÉDITORIAL — sélection en scroll horizontal (scroll-snap CSS natif)
   + peek de la carte suivante + flèches discrètes (desktop) + carte-CTA finale.
   ========================================================================== */
.operation-rail {
  position: relative; }

.operation-rail .operations-products,
.operation-rail .operations-products:not(.slick-initialized) {
  display: flex;
  align-items: stretch;
  grid-template-columns: none;
  gap: 16px;
  margin: 0;
  padding: 12px 6px 32px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  overscroll-behavior-x: contain; }

.operation-rail .operations-products::-webkit-scrollbar {
  display: none; }

.operation-rail__item,
.operation-rail__cta-card {
  flex: 0 0 258px;
  scroll-snap-align: start; }

/* Annule le `height:100%` hérité de la grille (qui cassait le stretch flex
   et donnait des cartes de hauteurs inégales dans le rail). */
.operation-rail .operations-products > .operation-rail__item {
  height: auto; }

/* Carte-CTA de fin de rail */
.operation-rail__cta-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
  padding: 26px 24px;
  border-radius: var(--product-card-radius, 16px);
  border: 1px dashed #CBBF9F;
  background: #FFFDF7;
  color: #2A4A36 !important;
  text-decoration: none;
  transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease; }

.operation-rail__cta-card:hover,
.operation-rail__cta-card:focus-visible {
  border-color: #2A4A36;
  background: #FFFFFF;
  transform: translateY(-2px); }

.operation-rail__cta-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: #2A4A36;
  color: #F4ECD8;
  transition: transform 0.2s ease; }

.operation-rail__cta-card:hover .operation-rail__cta-arrow {
  transform: translateX(3px); }

.operation-rail__cta-title {
  font-family: var(--mcb-font-primary);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2; }

.operation-rail__cta-meta {
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 13px;
  color: #9A8A6A; }

/* Flèches de navigation (desktop uniquement) */
.operation-rail__arrow {
  position: absolute;
  top: 36%;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid #E6DFCB;
  background: #FFFFFF;
  color: #2A4A36;
  box-shadow: 0 6px 18px -8px rgba(31, 42, 34, 0.4);
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease; }

.operation-rail__arrow[hidden] {
  display: none; }

.operation-rail__arrow:hover {
  background: #2A4A36;
  color: #F4ECD8;
  border-color: #2A4A36; }

.operation-rail__arrow:focus-visible {
  outline: 2px solid rgba(42, 74, 54, 0.55);
  outline-offset: 2px; }

.operation-rail__arrow:disabled {
  opacity: 0.35;
  cursor: default;
  box-shadow: none; }

.operation-rail__arrow:disabled:hover {
  background: #FFFFFF;
  color: #2A4A36;
  border-color: #E6DFCB; }

.operation-rail__cta-card:focus-visible {
  outline: 2px solid rgba(42, 74, 54, 0.5);
  outline-offset: 3px; }

.operation-rail__arrow--prev {
  left: -10px; }

.operation-rail__arrow--next {
  right: -10px; }

@media (max-width: 991px) {
  .operation-rail__arrow {
    display: none !important; } }

@media screen and (min-width: 992px) {
  /* Le « Voir tout » est désormais sur la ligne meta (dans .operation-urgency),
       poussé à droite via margin-left:auto. L'en-tête ne porte plus que le titre. */
  #current-operation .operation-footer .operation-cta {
    display: none; } }

.homepage .home_section {
  margin-top: 48px; }

.homepage .home-title-s {
  margin: 0 0 18px;
  font-family: "MontserratED", sans-serif;
  font-size: 22px;
  font-weight: 610;
  color: #243428;
  line-height: 1.24;
  letter-spacing: -0.002em; }

.reviews-section {
  margin-top: 0 !important;
  padding: 64px 0 72px;
  background: var(--mcb-n-25); }

.reviews-shell {
  width: 100%; }

.reviews-header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 40px; }

.reviews-header__copy {
  min-width: 0; }

.reviews-header__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: var(--mcb-gold-dark);
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  font-weight: var(--mcb-fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase; }

.reviews-header__title {
  margin: 0;
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-primary);
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 500;
  line-height: 1.1; }

.reviews-header__title span {
  color: var(--mcb-gold-dark);
  font-style: italic; }

.reviews-score {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  align-self: flex-start;
  padding: 12px 20px;
  border: 1px solid var(--mcb-n-100);
  border-radius: 16px;
  background: var(--mcb-n-0); }

.reviews-score__stars,
.reviews-card__stars {
  display: flex;
  color: var(--mcb-gold-main); }

.reviews-score__stars--dynamic {
  position: relative;
  line-height: 0;
  color: var(--mcb-n-100); }

.reviews-score__stars-track,
.reviews-score__stars-fill {
  display: flex; }
  .reviews-score__stars-track svg,
  .reviews-score__stars-fill svg {
    flex: 0 0 auto; }

.reviews-score__stars-track {
  color: var(--mcb-n-100); }

.reviews-score__stars-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--reviews-rating-width, 0%);
  overflow: hidden;
  color: var(--mcb-gold-main); }

.reviews-score__copy {
  min-width: 0; }

.reviews-score__value {
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-primary);
  font-size: 22px;
  font-weight: var(--mcb-fw-semi);
  line-height: 1.1; }

.reviews-score__meta {
  margin-top: 2px;
  color: var(--mcb-text-muted);
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  line-height: 1.35; }

.reviews-grid {
  display: grid;
  gap: 20px; }

.reviews-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 24px;
  border: 1px solid var(--mcb-n-100);
  border-radius: 16px;
  background: var(--mcb-n-0);
  transition: border-color var(--mcb-transition-base), box-shadow var(--mcb-transition-base); }

.reviews-card:hover {
  border-color: var(--mcb-gold-main);
  box-shadow: var(--mcb-shadow-elevated); }

.reviews-card__quote {
  display: block;
  margin-bottom: 12px;
  color: var(--mcb-gold-main); }

.reviews-card__stars {
  margin-bottom: 12px; }

.reviews-card__text {
  margin: 0 0 20px;
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-primary);
  font-size: 17px;
  line-height: 1.5; }

.reviews-card__author {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--mcb-n-75); }

.reviews-card__avatar {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(42, 74, 54, 0.1);
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-inter);
  font-size: 16px;
  font-weight: var(--mcb-fw-medium); }

.reviews-card__identity {
  min-width: 0;
  flex: 1 1 auto; }

.reviews-card__name {
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  font-weight: var(--mcb-fw-medium);
  line-height: 1.35; }

.reviews-card__name span {
  color: var(--mcb-text-muted);
  font-weight: 400; }

.reviews-card__product {
  margin-top: 2px;
  color: var(--mcb-gold-dark);
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* ==========================================================================
   Section Livraison
   ========================================================================== */
.homepage .delivery-reassurance-section {
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
  max-width: 100vw;
  min-width: 0;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 56px;
  padding: 72px 0;
  overflow: hidden;
  background: var(--mcb-green-main);
  color: #F4ECD8; }

.delivery-reassurance-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  width: calc(100% - 32px);
  max-width: 1240px;
  margin: 0 auto; }

.delivery-reassurance-copy {
  max-width: 610px; }

.delivery-reassurance-eyebrow {
  margin: 0 0 12px;
  color: var(--mcb-gold-main);
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  font-weight: var(--mcb-fw-medium);
  letter-spacing: 0.18em;
  line-height: 1.2;
  text-transform: uppercase; }

.delivery-reassurance-title {
  margin: 0 0 20px;
  color: #F4ECD8;
  font-family: var(--mcb-font-primary);
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: 500;
  line-height: 1.1; }

.delivery-reassurance-title span {
  display: block;
  color: var(--mcb-gold-main);
  font-style: italic; }

.delivery-reassurance-intro {
  max-width: 560px;
  margin: 0 0 32px;
  color: #E5DCC2;
  font-family: var(--mcb-font-inter);
  font-size: 15px;
  line-height: 1.7; }

.delivery-reassurance-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px; }

.delivery-reassurance-item {
  display: flex;
  gap: 14px;
  min-width: 0; }

.delivery-reassurance-icon {
  display: inline-flex;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(232, 194, 107, 0.32);
  border-radius: 999px;
  background: rgba(232, 194, 107, 0.12);
  color: var(--mcb-gold-main); }

.delivery-reassurance-item__copy,
.delivery-reassurance-item__copy strong,
.delivery-reassurance-item__copy span {
  display: block; }

.delivery-reassurance-item__copy {
  min-width: 0; }

.delivery-reassurance-item__copy strong {
  margin: 0 0 6px;
  color: #F4ECD8;
  font-family: var(--mcb-font-inter);
  font-size: 15px;
  font-weight: var(--mcb-fw-semi);
  line-height: 1.25; }

.delivery-reassurance-item__copy span {
  color: rgba(229, 220, 194, 0.82);
  font-family: var(--mcb-font-inter);
  font-size: 13px;
  line-height: 1.55; }

.delivery-reassurance-visual {
  position: relative;
  min-width: 0; }

.delivery-reassurance-image {
  overflow: hidden;
  border: 1px solid rgba(244, 236, 216, 0.12);
  border-radius: 22px;
  aspect-ratio: 4 / 5;
  background: rgba(244, 236, 216, 0.08); }

.delivery-reassurance-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; }

.delivery-fast-card {
  position: relative;
  z-index: 1;
  max-width: 280px;
  margin: -56px 16px 0;
  padding: 18px;
  border: 1px solid var(--mcb-n-100);
  border-radius: 18px;
  background: var(--mcb-n-0);
  color: var(--mcb-green-main);
  box-shadow: 0 18px 44px rgba(18, 35, 25, 0.22); }

.delivery-fast-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 12px;
  border-radius: 999px;
  background: rgba(232, 194, 107, 0.24);
  color: var(--mcb-gold-dark); }

.delivery-fast-card__eyebrow {
  margin: 0 0 7px;
  color: var(--mcb-gold-dark);
  font-family: var(--mcb-font-inter);
  font-size: 11px;
  font-weight: var(--mcb-fw-medium);
  letter-spacing: 0.18em;
  line-height: 1.2;
  text-transform: uppercase; }

.delivery-fast-card__text {
  margin: 0 0 15px;
  color: var(--mcb-green-main);
  font-family: var(--mcb-font-inter);
  font-size: 14px;
  font-weight: var(--mcb-fw-medium);
  line-height: 1.45; }

.delivery-fast-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  padding: 9px 16px;
  border: 1px solid var(--mcb-green-main);
  border-radius: var(--mcb-radius-interactive);
  background: var(--mcb-green-main);
  color: #F4ECD8 !important;
  font-family: var(--mcb-font-inter);
  font-size: 13px;
  font-weight: var(--mcb-fw-semi);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), color var(--mcb-transition-base); }

.delivery-fast-card__cta:hover,
.delivery-fast-card__cta:focus-visible {
  border-color: #355A45;
  background: #355A45;
  color: #F4ECD8 !important; }

@media (min-width: 768px) {
  .reviews-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px; }
  .delivery-reassurance-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (min-width: 1025px) {
  .reviews-header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between; }
  .homepage .delivery-reassurance-section {
    padding: 88px 0; }
  .delivery-reassurance-shell {
    grid-template-columns: minmax(0, 1fr) minmax(390px, 0.86fr);
    align-items: center;
    gap: 64px; }
  .delivery-reassurance-image {
    aspect-ratio: 5 / 6; }
  .delivery-fast-card {
    position: absolute;
    left: -32px;
    bottom: -22px;
    margin: 0; } }

.homepage-seo-editorial {
  margin-top: 28px;
  margin-bottom: 8px;
  border-top: 1px solid #e4eae1 !important;
  border-bottom: 0 !important;
  background: transparent !important;
  padding: 28px 0 0 !important; }

.homepage-seo-editorial .ui.text.container {
  max-width: 760px !important;
  text-align: center; }

.homepage-seo-editorial .ui.text.container > p:first-child {
  margin: 0;
  font-family: "MontserratED", sans-serif;
  font-size: 16px;
  line-height: 1.42;
  color: #1f2f3a;
  font-weight: 560; }

.homepage-seo-editorial .ui.text.container > p:nth-child(2) {
  margin: 10px 0 0;
  font-family: "MontserratED", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: #435267; }

.homepage-seo-editorial details {
  margin-top: 16px; }

.homepage-seo-editorial details[open] {
  text-align: left; }

.homepage-seo-editorial details[open] summary {
  margin-bottom: 16px !important; }

#current-operation .name {
  text-transform: uppercase; }

.operations-products,
.express_delivery-products {
  position: relative;
  padding: 3px 6px 3px;
  margin: 2px auto 0;
  display: block; }

.operations-products:not(.slick-initialized),
.express_delivery-products:not(.slick-initialized) {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 5px 0 0;
  margin: 3px auto 4px; }
  @media (min-width: 992px) {
    .operations-products:not(.slick-initialized),
    .express_delivery-products:not(.slick-initialized) {
      grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* La cellule de grille et la carte doivent remplir la colonne (Semantic UI
   impose sinon une largeur fixe de 290px qui désaligne la grille). */
.operations-products:not(.slick-initialized) > div,
.express_delivery-products:not(.slick-initialized) > div {
  min-width: 0;
  height: 100%; }

.operations-products:not(.slick-initialized) .ui.card,
.operations-products:not(.slick-initialized) .product-card-v2,
.express_delivery-products:not(.slick-initialized) .ui.card,
.express_delivery-products:not(.slick-initialized) .product-card-v2 {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important; }

/* Colonnes sous lg (2 col) désormais gérées par mcb-product-grid ci-dessus. */
.operations-products .slick-dots {
  bottom: auto !important; }

.express_delivery-name {
  margin-bottom: 25px; }

.previous-icon,
.next-icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  z-index: 10;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  border: 1px solid rgba(204, 194, 178, 0.7);
  background: rgba(253, 251, 246, 0.92);
  box-shadow: 0 1px 3px rgba(39, 29, 15, 0.04);
  color: #4b5f50;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease; }

.previous-icon:hover,
.next-icon:hover,
.previous-icon:focus-visible,
.next-icon:focus-visible {
  background: #ffffff;
  border-color: rgba(188, 178, 161, 0.78);
  color: #2f4a38;
  box-shadow: 0 2px 5px rgba(39, 29, 15, 0.07); }

.previous-icon::before,
.next-icon::before {
  display: block;
  font-family: inherit;
  font-size: 16px;
  line-height: 24px;
  text-align: center; }

.previous-icon::before {
  content: "‹"; }

.next-icon::before {
  content: "›"; }

.slick-arrow.previous-icon {
  left: 0; }

.slick-arrow.next-icon {
  right: 0; }

.operations-products .slick-slide,
.express_delivery-products .slick-slide {
  margin: 0 6px; }

.operations-products .slick-list,
.express_delivery-products .slick-list {
  margin: 0;
  padding: 4px 0 6px;
  overflow: hidden !important; }

.operations-products .slick-track,
.express_delivery-products .slick-track {
  display: flex;
  align-items: stretch; }

.operations-products .slick-slide > div,
.express_delivery-products .slick-slide > div {
  height: 100%; }

.operations-products .slick-slide .ui.card,
.express_delivery-products .slick-slide .ui.card {
  width: 100% !important;
  margin: 0 !important; }

.homepage .operations-products .ui.card.product-card:not(.product-card-v2),
.homepage .express_delivery-products .ui.card.product-card:not(.product-card-v2) {
  border: 1px solid #DEE5DC !important;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(20, 39, 26, 0.065); }

.homepage .operations-products .ui.card:not(.product-card-v2) .product-ribbon,
.homepage .express_delivery-products .ui.card:not(.product-card-v2) .product-ribbon {
  font-size: 11px !important;
  padding: 0.38em 0.74em !important;
  box-shadow: 0 3px 8px rgba(14, 34, 21, 0.15); }

.homepage .operations-products .ui.card:not(.product-card-v2) .productImg.productImg--fallback,
.homepage .express_delivery-products .ui.card:not(.product-card-v2) .productImg.productImg--fallback {
  opacity: 0.65;
  filter: saturate(0.78); }

.homepage .operations-products .ui.card:not(.product-card-v2) .product-ribbon.ui.right.ribbon.label,
.homepage .express_delivery-products .ui.card:not(.product-card-v2) .product-ribbon.ui.right.ribbon.label {
  top: 11px !important;
  left: 11px !important; }

.operation-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 6px; }

.homepage #current-operation .operation-meta {
  margin: 0;
  display: grid;
  gap: 4px;
  max-width: 60%; }

.operation-meta-chip {
  display: block;
  padding: 0;
  border-radius: 0;
  border: 0;
  background: transparent;
  color: var(--mcb-text-secondary);
  font-family: var(--mcb-font-primary);
  font-size: 12px;
  font-weight: var(--mcb-fw-medium);
  letter-spacing: 0;
  line-height: 1.36;
  white-space: normal; }

#current-operation > .current-operation-shell .operation-cta > .home-cta--primary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  font-size: 14px !important;
  width: auto !important;
  min-width: 190px;
  min-height: 42px;
  max-width: 100%;
  border-radius: var(--mcb-radius-interactive) !important;
  padding: 0 21px !important;
  letter-spacing: 0.01em;
  box-shadow: none;
  font-weight: var(--mcb-fw-semi) !important;
  text-transform: none !important; }

.homepage-phase-anchor {
  position: relative;
  top: -100px; }

#current-operation > .operation-countdown > .wrapper {
  display: flex;
  margin: 0 auto;
  width: 364px;
  background-color: var(--mcb-n-0);
  border-radius: var(--mcb-radius-interactive);
  color: var(--mcb-text-primary);
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  border: 1px solid var(--mcb-n-100);
  box-shadow: none; }

.operation-countdown .countdown-title {
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: var(--mcb-fw-medium);
  color: var(--mcb-text-secondary);
  text-align: center;
  margin: 0 0 10px 0; }

#current-operation > .operation-countdown > .wrapper > .time {
  text-align: center;
  padding: 14px 15px; }

#current-operation > .operation-countdown > .wrapper > .time > .amount {
  font-size: 18px;
  font-family: var(--mcb-font-numeric);
  font-weight: var(--mcb-fw-semi);
  line-height: 1.06;
  text-align: center;
  letter-spacing: 0; }

#current-operation > .operation-countdown > .wrapper > .time > .name {
  font-family: var(--mcb-font-primary);
  font-weight: var(--mcb-fw-medium);
  font-size: 11px;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--mcb-text-muted);
  margin-top: 7px; }

.ui.primary.button.know-more-button {
  margin: 0 auto !important;
  width: auto !important;
  max-width: 100%;
  min-width: 0 !important;
  min-height: 44px;
  padding: 0 22px !important;
  font-size: 14px !important; }

details > summary.know-more-button::-webkit-details-marker {
  display: none; }

details > summary.know-more-button::marker {
  content: ''; }

/* --- SECTION NEWSLETTER --- */
.newsletter-section {
  background-color: transparent;
  padding: 50px 15px 36px;
  margin-top: 28px;
  position: relative;
  z-index: 2;
  margin-bottom: -88px; }

.subscription-box {
  background: linear-gradient(180deg, var(--mcb-surface-panel) 0%, #f2eee7 100%);
  border: 1px solid var(--mcb-border-default);
  border-radius: 20px;
  padding: 34px 34px 30px;
  color: var(--mcb-text-primary);
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
  box-shadow: var(--mcb-shadow-floating); }

.subscription-box h1,
.subscription-box h2 {
  margin-bottom: 12px;
  font-size: clamp(28px, 3vw, 34px);
  color: var(--mcb-text-primary);
  font-family: 'MontserratED', sans-serif;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.06; }

.subscription-box p,
.subscription-box #registeredText {
  color: var(--mcb-text-secondary);
  font-family: 'MontserratED', sans-serif;
  font-size: 14px;
  line-height: 1.5; }

.subscription-box .ui.action.input {
  display: flex;
  align-items: stretch;
  max-width: 520px;
  margin: 0 auto;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px var(--mcb-border-default); }

.subscription-box .ui.action.input > input[type="email"] {
  flex: 1 1 auto;
  min-width: 100px;
  min-height: 52px;
  border: 0 !important;
  border-radius: 0 !important;
  font-size: 1rem;
  color: var(--mcb-text-primary);
  background: #fffdf9 !important;
  font-family: "MontserratED", sans-serif;
  padding: 0 18px !important;
  box-shadow: none !important; }

.subscription-box .ui.action.input > .button {
  flex: 0 0 auto;
  min-width: 154px;
  padding: 0 24px;
  margin-left: -1px;
  border-radius: 0 !important;
  font-family: "MontserratED", sans-serif;
  font-weight: 600;
  text-transform: none;
  background-color: var(--mcb-a-500);
  border: 0 !important; }

.newsletter-section.ui.vertical.segment {
  border: none; }

.subscription-box .registerbutton {
  position: relative;
  overflow: hidden; }

.subscription-box .loaderWrapper {
  width: 1.2rem;
  height: 1.2rem; }

.loaderBtnNewsletter {
  width: 1.2rem;
  height: 1.2rem;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: white;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  display: none; }

/* Lorsque le loader est actif */
.loaderBtnNewsletter.active {
  display: block; }

/*Tuiles Catégories */
.categories-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.75rem;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  padding-bottom: 3rem; }

/* breakpoints */
@media (max-width: 1024px) {
  .categories-grid {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 767px) {
  .categories-grid {
    grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 420px) {
  .categories-grid {
    grid-template-columns: 1fr; } }

.tile {
  display: block;
  position: relative;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  box-sizing: border-box;
  aspect-ratio: 258 / 143;
  min-height: 8.5rem;
  display: flex;
  align-items: center;
  justify-content: center; }
  .tile:focus-visible {
    outline: 2px solid var(--mcb-a-500);
    outline-offset: 2px; }

@supports not (aspect-ratio: 1/1) {
  .tile {
    height: auto; }
  .tile::before {
    content: "";
    display: block;
    width: 100%;
    padding-top: 55.426%; }
  .tile > .tile-media,
  .tile > .tile-overlay,
  .tile > .tile-content {
    position: absolute;
    inset: 0; } }

.tile-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  border-radius: inherit; }

.tile-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.tile-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.5) 100%);
  z-index: 1;
  transition: background var(--mcb-transition-base); }

.tile:hover .tile-overlay,
.tile:focus .tile-overlay {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.7) 100%); }

.tile-content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem;
  pointer-events: none; }

/* bouton / pillule blanche premium */
.btn-category-green {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: var(--mcb-radius-chip);
  font-family: var(--mcb-font-primary);
  font-size: 14px;
  font-weight: var(--mcb-fw-semi);
  background-color: var(--mcb-n-0);
  color: var(--mcb-text-primary);
  border: none;
  box-shadow: var(--mcb-shadow-rest);
  transition: transform var(--mcb-transition-base), box-shadow var(--mcb-transition-base);
  pointer-events: none;
  margin-top: auto; }

.tile:hover .btn-category-green,
.tile:focus .btn-category-green {
  background-color: var(--mcb-n-0);
  color: var(--mcb-text-primary);
  box-shadow: var(--mcb-shadow-elevated); }

.express_delivery-title {
  font-size: 32px;
  font-family: "MontserratED";
  color: #2A4A36;
  font-weight: bold;
  text-transform: uppercase;
  line-height: 1.125;
  text-align: center; }

.express_delivery-name {
  font-size: 20px;
  font-family: "MontserratED";
  color: #1b2132;
  line-height: 1.8;
  text-align: center;
  margin-bottom: 25px; }

.express_delivery-products {
  display: none; }

.section-header h2#express-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-transform: uppercase; }

.title-svg-icon {
  width: 50px;
  height: auto;
  fill: #2A4A36; }

.section-header .subtitle {
  margin-top: 1.25rem; }

.express-delivery-section {
  position: relative;
  background-color: #FDFCF8;
  border-radius: 24px;
  margin: 50px 0;
  padding: 4rem;
  border: 1px solid #EAE8E1;
  overflow: hidden;
  background: radial-gradient(circle at top center, #FEFCF8 0%, #F9F7F1 100%); }

.map-background {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 110%;
  height: 110%;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.08;
  z-index: 0; }

.express-delivery-content {
  position: relative;
  z-index: 1;
  text-align: center; }

.section-header {
  max-width: 650px;
  margin: 0 auto 3.5rem auto; }
  .section-header h2 {
    font-family: 'MontserratED', sans-serif;
    font-size: 2rem;
    font-weight: 700;
    color: #2A4A36;
    margin: 0; }
  .section-header .subtitle {
    font-size: 1.2rem;
    color: #575757;
    line-height: 1.6;
    margin-top: 0.75rem; }
    .section-header .subtitle em {
      font-style: normal;
      color: #008937; }

.process-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  max-width: 1000px;
  margin: 0 auto; }

.step-card {
  background-color: rgba(255, 255, 255, 0.6);
  border: 1px solid #EAE8E1;
  border-radius: 16px;
  padding: 2rem 1.5rem;
  backdrop-filter: blur(5px);
  transition: box-shadow 0.3s ease, border-color 0.3s ease; }
  .step-card:hover {
    box-shadow: 0 15px 30px rgba(50, 50, 90, 0.08);
    border-color: #ddd9cd; }
  .step-card .step-icon {
    color: #008937;
    margin-bottom: 1.5rem; }
    .step-card .step-icon svg {
      width: 40px;
      height: 40px;
      stroke-width: 1.5; }
  .step-card h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1E462E;
    margin-bottom: 0.5rem; }
  .step-card p {
    font-size: 0.9rem;
    color: #575757;
    line-height: 1.6; }

.section-footer {
  margin-top: 4rem; }

.delivery-highlight {
  margin-bottom: 2.5rem; }
  .delivery-highlight p {
    font-size: 1rem;
    color: #333;
    line-height: 1.5;
    font-weight: 500; }
    .delivery-highlight p span {
      display: inline-block;
      background-color: #E6F3EA;
      color: #1E462E;
      padding: 0.3em 0.7em;
      border-radius: 8px;
      margin: 0.2em 0.3em;
      font-weight: 600;
      white-space: nowrap;
      border: 1px solid #CDE7D5; }

.cta-button {
  display: inline-block;
  background: var(--mcb-a-500);
  color: var(--mcb-text-on-accent) !important;
  font-family: var(--mcb-font-primary);
  font-size: 1.1rem;
  font-weight: var(--mcb-fw-semi);
  text-transform: none;
  letter-spacing: 0.5px;
  padding: 1.1rem 2.8rem;
  border: 1px solid var(--mcb-a-500);
  border-radius: var(--mcb-radius-interactive);
  text-decoration: none;
  transition: background-color var(--mcb-transition-base), border-color var(--mcb-transition-base), color var(--mcb-transition-base);
  box-shadow: none; }
  .cta-button:hover {
    background: var(--mcb-a-600);
    border-color: var(--mcb-a-600);
    box-shadow: none; }

/* ==========================================================================
   Section Canal Événement
   ========================================================================== */
.event-details-card {
  max-width: 900px;
  margin: 60px auto;
  background-color: #f8f9fa;
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  font-family: 'Lato', sans-serif;
  border: 1px solid #e9ecef; }

.event-details-header {
  padding: 40px;
  text-align: center;
  background: linear-gradient(135deg, #2A523A 0%, #3E7250 100%);
  color: white; }

.event-title {
  font-size: 2.5rem;
  font-weight: 900;
  margin: 0;
  letter-spacing: 1px; }

.event-subtitle {
  font-size: 1.2rem;
  font-weight: 300;
  opacity: 0.9;
  margin-top: 10px; }

.event-info {
  display: flex;
  justify-content: center;
  gap: 40px;
  padding: 30px 40px !important;
  background-color: #ffffff;
  border-bottom: 1px solid #e9ecef; }

.info-item {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 1.1rem; }

.info-icon {
  font-size: 1.8rem; }

.event-description {
  padding: 40px;
  font-size: 1.1rem;
  line-height: 1.8;
  color: #343a40;
  text-align: center; }

.cta-container {
  display: flex;
  justify-content: center;
  padding: 0 40px 40px; }

.event-details-card .cta-button {
  background: var(--mcb-a-500);
  box-shadow: none; }

.event-details-card .cta-button:hover {
  background: var(--mcb-a-600);
  box-shadow: none; }

/* ==========================================================================
   Compte à rebours de l'événement
   ========================================================================== */
#event-countdown {
  padding: 30px 20px;
  border-bottom: 1px solid #e9ecef;
  text-align: center;
  background-color: #ffffff; }

#event-countdown h3 {
  margin-bottom: 30px;
  font-size: 1.3rem;
  font-weight: 300;
  color: #333; }

#event-countdown .wrapper {
  display: flex;
  justify-content: center;
  gap: 20px;
  width: auto;
  max-width: 500px;
  margin: 0 auto 0 auto; }

#event-countdown .time {
  background: white;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
  flex-basis: 100px;
  text-align: center; }

#event-countdown .amount {
  font-size: 2rem;
  font-weight: 700;
  color: #2A523A;
  line-height: 1; }

#event-countdown .name {
  font-size: 0.85rem;
  text-transform: uppercase;
  color: #6c757d;
  margin-top: 10px;
  letter-spacing: 1px; }

@media (max-width: 1024px) {
  .banner-content {
    padding: 22px 24px 30px; }
  .banner-title {
    max-width: 60%;
    font-size: 30px; }
  .banner-subtitle {
    max-width: 47%;
    font-size: 14px; }
  .banner-content .banner-cta {
    min-height: 40px;
    padding: 0 19px;
    font-size: 14px; }
  .banner-trust-list {
    max-width: 66%;
    gap: 7px 16px;
    margin-top: 14px;
    font-size: 11.5px; }
  .homepage #current-operation .operation-title {
    font-size: 30px; }
  .tile {
    aspect-ratio: 258 / 143; }
  .btn-category-green {
    font-size: 0.88rem;
    padding: 0.4rem 0.8rem; } }

@media (max-width: 991px) {
  .express-delivery-section {
    padding: 3rem 2rem; }
  .process-steps {
    grid-template-columns: 1fr;
    gap: 1.5rem; }
  .previous-icon,
  .next-icon {
    display: none !important; } }

@media only screen and (max-width: 767px) {
  body:has(.homepage) iframe[src*="woorank"],
  body:has(.homepage) [id*="woorankAssistant"],
  body:has(.homepage) [class*="woorankAssistant"] {
    display: none !important; }
  .homepage #banner,
  .homepage #current-operation,
  .homepage .home_section,
  .homepage .express-delivery-section,
  .homepage .newsletter-section {
    width: calc(100% - 20px); }
  .homepage .delivery-reassurance-section {
    left: 50%;
    right: 50%;
    width: 100vw;
    max-width: 100vw;
    min-width: 0;
    margin-left: -50vw;
    margin-right: -50vw;
    /* Rythme resserré (rythme entre sections tokenisé) : ex-`52px 0 58px`. */
    padding: var(--mcb-space-3xl) 0;
    /* 48px */ }
  .delivery-reassurance-shell {
    width: calc(100% - 28px);
    gap: var(--mcb-space-xl);
    /* 24px, ex-30px */ }
  .delivery-reassurance-title {
    margin-bottom: var(--mcb-space-lg);
    /* 16px */ }
  .delivery-reassurance-intro {
    margin-bottom: var(--mcb-space-lg);
    /* 16px, ex-26px : intro resserrée */
    font-size: 14px;
    line-height: 1.65; }
  /* Items en 2×2 pour raccourcir la colonne sur mobile : icône empilée
       au-dessus du texte pour rester lisible en cellule étroite. */
  .delivery-reassurance-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--mcb-space-lg) var(--mcb-space-md);
    /* 16px vertical · 12px horizontal */ }
  .delivery-reassurance-item {
    flex-direction: column;
    gap: var(--mcb-space-sm);
    /* 8px : icône ↔ texte */ }
  .delivery-reassurance-image {
    border-radius: 18px;
    aspect-ratio: 16 / 11; }
  .delivery-fast-card {
    max-width: none;
    margin: var(--mcb-space-lg) 0 0;
    /* 16px, ex-14px */
    border-radius: 16px; }
  #banner {
    border-radius: 12px;
    box-shadow: none; }
  #banner {
    aspect-ratio: 16 / 10; }
  #banner::after {
    background: linear-gradient(98deg, rgba(0, 0, 0, 0.64) 0%, rgba(0, 0, 0, 0.42) 34%, rgba(0, 0, 0, 0.1) 80%, rgba(0, 0, 0, 0) 100%); }
  #banner img {
    width: 100%;
    height: 100%;
    object-fit: cover; }
  .banner-content {
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 15px 14px 16px; }
  .banner-content::before {
    display: none; }
  /* Le kicker et la réassurance (align-self:flex-start en base) doivent
       suivre le centrage du hero sur mobile. */
  .banner-kicker,
  .banner-reassurance,
  .banner-trust-list {
    align-self: center;
    justify-content: center;
    text-align: center; }
  .banner-title {
    font-size: 23px;
    max-width: 88%;
    line-height: 1.04;
    text-wrap: balance; }
  .banner-subtitle {
    font-size: 12px;
    max-width: 78%;
    margin-top: 2px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.32; }
  .banner-actions {
    margin-top: 6px;
    gap: 0; }
  .banner-content .banner-cta {
    margin-top: 0;
    min-height: 38px;
    padding: 0 17px;
    font-size: 12.5px;
    border-radius: 10px; }
  .banner-trust-list {
    max-width: 92%;
    gap: 5px 12px;
    margin-top: 9px;
    font-size: 10.4px;
    line-height: 1.3; }
  .banner-trust-item {
    gap: 5px; }
  .banner-trust-item svg {
    width: 13px;
    height: 13px;
    flex-basis: 13px; }
  .hero-reassurance-section {
    padding: 16px 0 2px; }
  .reviews-section {
    padding: 42px 0 48px; }
  .reviews-header {
    margin-bottom: 24px; }
  .reviews-header__eyebrow {
    margin-bottom: 10px; }
  .reviews-score {
    width: 100%;
    padding: 12px 16px; }
  .reviews-card {
    padding: 20px; }
  .reviews-card__text {
    font-size: 16px; }
  .banner-reassurance {
    margin-top: 5px;
    font-size: 10.4px;
    line-height: 1.3;
    max-width: 92%; }
  .homepage #current-operation .operation-title {
    margin-bottom: 6px;
    font-size: 20px !important;
    line-height: 1.15; }
  .homepage #current-operation .operation-eyebrow {
    margin-bottom: 6px;
    font-size: 11px; }
  .current-operation-shell {
    border-radius: 18px;
    padding: 14px 11px 11px; }
  .operation-footer {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    text-align: center; }
  .homepage #current-operation .operation-meta {
    max-width: 100%;
    justify-content: center;
    flex-direction: column;
    gap: 3px;
    text-align: center; }
  .operation-meta-chip {
    font-size: 10.8px;
    min-height: auto;
    padding: 0; }
  .operation-meta-chip + .operation-meta-chip::before {
    content: none; }
  #current-operation > .current-operation-shell .operation-cta > .home-cta--primary {
    min-width: 0;
    width: auto !important;
    max-width: 100%;
    margin: 0 auto !important;
    padding: 0 19px !important;
    min-height: 41px;
    font-size: 13.8px !important; }
  .subscription-box h1 {
    font-size: 1.5em; }
  .subscription-box .ui.action.input {
    flex-direction: column;
    gap: 15px;
    align-items: stretch; }
  .subscription-box .ui.action.input > input[type="email"],
  .subscription-box .ui.action.input > .button {
    margin-left: 0;
    border-radius: 5px !important;
    width: 100%;
    justify-content: center;
    align-items: center; }
  .newsletter-section {
    margin-bottom: 0; }
  footer#footer {
    padding-top: 40px !important; }
  .ui.primary.button.know-more-button {
    width: auto !important;
    max-width: 100% !important;
    min-height: 38px;
    padding: 0 18px !important;
    margin-top: 14px !important;
    margin-bottom: 25px !important; }
  .operations-products .slick-dots,
  #express_delivery .slick-dots {
    position: static !important;
    margin-top: 8px !important;
    margin-bottom: 6px !important; }
  .categories-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem; }
  .operations-products,
  .express_delivery-products {
    margin: 4px 0 0;
    padding: 0;
    max-width: 100%;
    overflow: hidden; }
    .operations-products:not(.slick-initialized),
    .express_delivery-products:not(.slick-initialized) {
      gap: 12px;
      padding-top: 4px; }
    .operations-products .previous-icon, .operations-products .next-icon,
    .express_delivery-products .previous-icon,
    .express_delivery-products .next-icon {
      display: none !important; }
    .operations-products .slick-list,
    .express_delivery-products .slick-list {
      margin: 0 !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
      overflow: hidden !important; }
    .operations-products .slick-slide,
    .express_delivery-products .slick-slide {
      margin: 0 5px;
      max-width: calc(100vw - 34px); }
    .operations-products .slick-dots li,
    .express_delivery-products .slick-dots li {
      width: 7px;
      height: 7px;
      margin: 0 3px; }
    .operations-products .slick-dots li button:before,
    .express_delivery-products .slick-dots li button:before {
      font-size: 7px;
      opacity: 0.28; }
    .operations-products .slick-dots li.slick-active button:before,
    .express_delivery-products .slick-dots li.slick-active button:before {
      opacity: 0.58; }
    .operations-products .slick-track,
    .express_delivery-products .slick-track {
      display: flex;
      align-items: stretch; }
    .operations-products .slick-slide > div,
    .operations-products .slick-slide .ui.card,
    .express_delivery-products .slick-slide > div,
    .express_delivery-products .slick-slide .ui.card {
      height: 100%;
      max-width: 100%; }
    .operations-products .slick-dots,
    .express_delivery-products .slick-dots {
      bottom: -10px; }
      .operations-products .slick-dots li button:before,
      .express_delivery-products .slick-dots li button:before {
        font-size: 10px;
        color: #cccccc; }
      .operations-products .slick-dots li.slick-active button:before,
      .express_delivery-products .slick-dots li.slick-active button:before {
        color: #2A4A36; }
  .section-header h2#express-title {
    font-size: 1.7rem;
    gap: 8px; }
  .title-svg-icon {
    width: 40px; }
  .express-delivery-section {
    margin: 40px 0;
    padding: 2.5rem 1.5rem; }
  .section-header h2 {
    line-height: 1.2; }
  .tile {
    aspect-ratio: 258 / 143; }
  .btn-category-green {
    font-size: 0.84rem;
    padding: 0.35rem 0.7rem; }
  .step-card {
    padding: 1.5rem;
    text-align: center; }
  .step-card .step-icon svg {
    width: 32px;
    height: 32px; }
  .express-delivery-content .step-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.5rem; }
  .express-delivery-content .step-card .step-icon {
    margin-bottom: 0.75rem !important; }
  .express-delivery-content .step-card h3,
  .express-delivery-content .step-card p {
    margin-top: 0 !important;
    margin-bottom: 0 !important; }
  .express-delivery-content .step-card h3 {
    margin-bottom: 0.5rem !important;
    font-size: 1rem; }
  .express-delivery-content .step-card p {
    font-size: 0.85rem;
    line-height: 1.5; }
  .express-delivery-content .step-card .step-icon svg {
    width: 32px;
    height: 32px; }
  #current-operation > .operation-cta > .home-cta--primary {
    max-width: 100%;
    margin: 0 auto 18px auto !important;
    padding: 10px 18px !important;
    font-size: 14px !important; }
  .express-delivery-section .cta-button {
    padding: 0.9rem 1.5rem;
    font-size: 1rem;
    width: 90%;
    max-width: 320px;
    box-sizing: border-box; }
  /* ==========================================================================
    Canal Événement
     ========================================================================== */
  .event-details-card {
    margin: 30px auto;
    border-radius: 12px; }
  .event-details-header {
    padding: 30px 20px; }
  .event-title {
    font-size: 1.8rem; }
  .event-subtitle {
    font-size: 1rem; }
  .event-info {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100%;
    flex-direction: column;
    gap: 20px;
    padding: 25px !important;
    align-items: flex-start;
    border-bottom: 1px solid #e9ecef; }
  #event-countdown .wrapper {
    flex-wrap: nowrap;
    gap: 10px;
    max-width: 100%;
    justify-content: space-around; }
  #event-countdown .time {
    flex-basis: auto;
    flex-grow: 1;
    padding: 10px 5px; }
  #event-countdown .amount {
    font-size: 1.3rem; }
  #event-countdown .name {
    font-size: 0.6rem;
    margin-top: 5px; }
  .event-description {
    padding: 30px 20px;
    font-size: 1rem;
    line-height: 1.7; }
  .cta-container {
    padding: 0 20px 30px; }
  .event-details-card .cta-button {
    width: 100%;
    max-width: 350px;
    padding: 1rem;
    font-size: 1rem;
    text-align: center; } }

/* ==========================================================================
   COMMENT ÇA MARCHE — modèle d'achat groupé en 3 étapes
   ========================================================================== */
.how-it-works-section {
  padding: 8px 0 4px; }

.how-it-works-head {
  max-width: 640px;
  margin: 0 0 28px;
  text-align: left; }

.how-it-works-eyebrow {
  margin: 0 0 8px;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C28A3A; }

.how-it-works-title {
  margin: 0 0 10px;
  font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: #2A4A36; }

.how-it-works-intro {
  margin: 0;
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 15px;
  line-height: 1.55;
  color: #5E6C62; }

.how-it-works-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: how-step; }

.how-it-works-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 24px 22px;
  background: #FFFDF7;
  border: 1px solid #E6DFCB;
  border-radius: 16px; }

.how-it-works-step__num {
  position: absolute;
  top: 16px;
  right: 18px;
  font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  color: rgba(194, 138, 58, 0.22); }

.how-it-works-step__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: rgba(42, 74, 54, 0.08);
  color: #2A4A36; }

.how-it-works-step__copy {
  display: flex;
  flex-direction: column;
  gap: 5px; }

.how-it-works-step__title {
  font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
  font-size: 16px;
  font-weight: 600;
  color: #2A4A36; }

.how-it-works-step__text {
  font-family: var(--mcb-font-inter, "Inter", sans-serif);
  font-size: 14px;
  line-height: 1.5;
  color: #5E6C62; }

@media screen and (max-width: 860px) {
  .how-it-works-steps {
    grid-template-columns: 1fr;
    gap: 12px; }
  .how-it-works-step {
    flex-direction: row;
    align-items: center;
    padding: 18px 18px; }
  .how-it-works-step__num {
    top: 12px;
    right: 14px;
    font-size: 24px; }
  .how-it-works-step__icon {
    flex: 0 0 46px; } }

/* ==========================================================================
   SÉLECTION DE LA SEMAINE — titre éditorial (style maquette, valeurs dynamiques)
   ========================================================================== */
.homepage #current-operation .operation-title {
  margin: 0 0 8px;
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -0.01em;
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden; }

.operation-title__accent {
  font-style: italic;
  font-weight: 500;
  color: #C28A3A; }

/* ==========================================================================
   RYTHME — « Comment ça marche » en bande pleine largeur teintée parchemin.
   Crée des paliers de scroll : crème → parchemin → crème → vert (Livraison).
   Réutilise le mécanisme full-bleed de la section Livraison.
   ========================================================================== */
.homepage .how-it-works-section {
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
  max-width: 100vw;
  min-width: 0;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 56px;
  padding: 60px 0;
  overflow: hidden;
  background: #F4ECD8; }

.how-it-works-shell {
  width: calc(100% - 32px);
  max-width: 1240px;
  margin: 0 auto; }

@media screen and (max-width: 860px) {
  .homepage .how-it-works-section {
    margin-top: 40px;
    padding: 44px 0; } }

/* ==========================================================================
   REVEALS AU SCROLL — fade + translation légère, par section.
   - L'état masqué initial n'est appliqué que quand le JS a ajouté
     `.mcb-reveal-ready` sur <html> : sans JS, le contenu reste visible.
   - `prefers-reduced-motion` : on neutralise toute animation.
   ========================================================================== */
.mcb-reveal-ready .mcb-reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 560ms cubic-bezier(0.22, 0.61, 0.36, 1), transform 560ms cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform; }

.mcb-reveal-ready .mcb-reveal.is-revealed {
  opacity: 1;
  transform: none; }

@media (prefers-reduced-motion: reduce) {
  .mcb-reveal-ready .mcb-reveal,
  .mcb-reveal-ready .mcb-reveal.is-revealed {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important; } }

/* ==========================================================================
   STAGGER DES ÉLÉMENTS DE GRILLE — cascade au scroll.
   Pour les sections contenant une grille/rail, on n'anime plus le bloc entier
   (sinon double mouvement) : seuls les enfants apparaissent en cascade, pilotés
   par le `.is-revealed` déjà posé sur la section par le même IntersectionObserver.
   Mêmes garde-fous que .mcb-reveal : actif uniquement si JS présent (.mcb-reveal-ready)
   et neutralisé sous prefers-reduced-motion.
   ========================================================================== */
/* Le bloc-section ne bouge plus : la cascade est portée par les enfants. */
.mcb-reveal-ready .mcb-reveal.current-operation-section,
.mcb-reveal-ready .mcb-reveal.envie-section,
.mcb-reveal-ready .mcb-reveal.reviews-section,
.mcb-reveal-ready .mcb-reveal.delivery-reassurance-section,
.mcb-reveal-ready .mcb-reveal.hero-reassurance-section {
  opacity: 1;
  transform: none; }

/* État initial masqué des éléments de grille. */
.mcb-reveal-ready .mcb-reveal .operations-products > *,
.mcb-reveal-ready .mcb-reveal .envie-grid > *,
.mcb-reveal-ready .mcb-reveal .reviews-grid > *,
.mcb-reveal-ready .mcb-reveal .delivery-reassurance-grid > *,
.mcb-reveal-ready .mcb-reveal .hero-reassurance-grid > * {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 520ms cubic-bezier(0.22, 0.61, 0.36, 1), transform 520ms cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform; }

/* État révélé. */
.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > *,
.mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > *,
.mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > *,
.mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > *,
.mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > * {
  opacity: 1;
  transform: none; }

/* Décalage progressif (70ms par élément, plafonné au 8e). */
.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(1), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(1), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(1), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(1), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(1) {
  transition-delay: 0ms; }

.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(2), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(2), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(2), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(2), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(2) {
  transition-delay: 70ms; }

.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(3), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(3), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(3), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(3), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(3) {
  transition-delay: 140ms; }

.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(4), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(4), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(4), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(4), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(4) {
  transition-delay: 210ms; }

.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(5), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(5), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(5), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(5), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(5) {
  transition-delay: 280ms; }

.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(6), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(6), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(6), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(6), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(6) {
  transition-delay: 350ms; }

.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(7), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(7), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(7), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(7), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(7) {
  transition-delay: 420ms; }

.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(8), .mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(8), .mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(8), .mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(8), .mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(8) {
  transition-delay: 490ms; }

/* Au-delà du 8e élément : délai constant pour ne pas créer de trous trop longs. */
.mcb-reveal-ready .mcb-reveal.is-revealed .operations-products > :nth-child(n+9),
.mcb-reveal-ready .mcb-reveal.is-revealed .envie-grid > :nth-child(n+9),
.mcb-reveal-ready .mcb-reveal.is-revealed .reviews-grid > :nth-child(n+9),
.mcb-reveal-ready .mcb-reveal.is-revealed .delivery-reassurance-grid > :nth-child(n+9),
.mcb-reveal-ready .mcb-reveal.is-revealed .hero-reassurance-grid > :nth-child(n+9) {
  transition-delay: 560ms; }

@media (prefers-reduced-motion: reduce) {
  .mcb-reveal-ready .mcb-reveal .operations-products > *,
  .mcb-reveal-ready .mcb-reveal .envie-grid > *,
  .mcb-reveal-ready .mcb-reveal .reviews-grid > *,
  .mcb-reveal-ready .mcb-reveal .delivery-reassurance-grid > *,
  .mcb-reveal-ready .mcb-reveal .hero-reassurance-grid > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    transition-delay: 0ms !important; } }

/* =====================================================================
   Section « Par envie » — mosaïque bento (remplace l'ancien « Explorer »)
   Destinations = collections (occasions), gardées bien fournies.
   Pas de min()/max() à unités mixtes (node-sass) ; clamp() OK.
   ===================================================================== */
.envie-section {
  margin-top: 56px; }

.envie-shell {
  /* Plus de boîte : les tuiles bento vivent directement sur le canvas (rythme couleur). */
  font-family: var(--mcb-font-primary);
  /* Manrope, comme la maquette */ }

.envie-head {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 28px; }

.envie-eyebrow {
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 13px;
  font-weight: 700;
  color: var(--mcb-gold-ink, #8C5E16); }

.envie-title {
  margin: 0 0 10px;
  font-size: clamp(26px, 4vw, 36px);
  line-height: 1.15;
  color: #2A4A36; }

.envie-intro {
  margin: 0;
  color: #5B6357;
  font-size: 16px; }

.envie-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px; }

.envie-tile {
  position: relative;
  display: flex;
  overflow: hidden;
  min-height: 220px;
  border-radius: 18px;
  text-decoration: none;
  isolation: isolate; }

.envie-tile--hero {
  min-height: 340px; }

.envie-tile__img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease; }

.envie-tile__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(20, 16, 10, 0.8) 0%, rgba(20, 16, 10, 0.38) 45%, rgba(20, 16, 10, 0.05) 100%); }

.envie-tile__body {
  position: relative;
  z-index: 2;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  color: #fff; }

.envie-tile__label {
  font-size: clamp(18px, 2.2vw, 22px);
  font-weight: 700;
  line-height: 1.15;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); }

.envie-tile--hero .envie-tile__label {
  font-size: clamp(24px, 3vw, 32px); }

.envie-tile__meta {
  margin-top: 6px;
  max-width: 36ch;
  font-size: 14px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.92); }

.envie-tile__cta {
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  font-size: 13px;
  opacity: 0.9;
  transition: gap 0.2s ease; }

.envie-tile:hover .envie-tile__cta,
.envie-tile:focus-visible .envie-tile__cta {
  gap: 10px; }

.envie-tile__cta svg {
  transition: transform 0.2s ease; }

.envie-tile:hover .envie-tile__img,
.envie-tile:focus-visible .envie-tile__img {
  transform: scale(1.05); }

.envie-tile:hover .envie-tile__cta svg {
  transform: translateX(3px); }

.envie-tile:focus-visible {
  outline: 3px solid #2A4A36;
  outline-offset: 3px; }

/* Tablette : 2 colonnes, héros pleine largeur */
@media (min-width: 600px) and (max-width: 899px) {
  .envie-grid {
    grid-template-columns: 1fr 1fr; }
  .envie-tile--hero {
    grid-column: 1 / 3; } }

/* Desktop : bento — héros haut à gauche, 2 tuiles en haut à droite, 1 large en bas */
@media (min-width: 900px) {
  .envie-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
    grid-template-rows: 210px 210px; }
  .envie-tile {
    min-height: 0; }
  .envie-tile:nth-child(1) {
    grid-column: 1;
    grid-row: 1 / 3; }
  .envie-tile:nth-child(2) {
    grid-column: 2;
    grid-row: 1; }
  .envie-tile:nth-child(3) {
    grid-column: 3;
    grid-row: 1; }
  .envie-tile:nth-child(4) {
    grid-column: 2 / 4;
    grid-row: 2; } }

@media (max-width: 560px) {
  .envie-shell {
    padding: 24px 16px; } }

@media (prefers-reduced-motion: reduce) {
  .envie-tile__img {
    transition: none; }
  .envie-tile:hover .envie-tile__img,
  .envie-tile:focus-visible .envie-tile__img {
    transform: none; } }

/* === BANDE ÉDITORIALE "PRODUCTEURS / TERROIRS" (version légère) === */
.terroir-band {
  margin-top: 28px; }

.terroir-band__shell {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 30px 36px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--mcb-green-main, #2A4A36) 0%, var(--mcb-green-dark, #1F3828) 100%);
  color: var(--mcb-n-0, #fff); }

.terroir-band__shell::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -6%;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232, 194, 107, 0.16) 0%, rgba(232, 194, 107, 0) 70%);
  pointer-events: none; }

/* Variante avec photo du taxon "terroirs" : image à gauche, contenu à droite. */
.terroir-band__shell--media {
  padding: 0;
  gap: 0;
  align-items: stretch; }

.terroir-band__shell--media::after {
  display: none; }

.terroir-band__media {
  position: relative;
  flex: 0 0 38%;
  max-width: 38%;
  min-height: 240px; }

.terroir-band__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; }

.terroir-band__shell--media .terroir-band__body {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 30px 36px; }

.terroir-band__body {
  position: relative;
  z-index: 1;
  display: contents; }

.terroir-band__copy {
  position: relative;
  z-index: 1;
  max-width: 62ch; }

.terroir-band__eyebrow {
  margin: 0 0 8px;
  font-family: var(--mcb-font-primary);
  font-size: 12px;
  font-weight: var(--mcb-fw-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mcb-gold-main, #E8C26B); }

.terroir-band__title {
  margin: 0 0 10px;
  font-family: var(--mcb-font-primary);
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: var(--mcb-fw-bold);
  line-height: 1.18;
  letter-spacing: -0.01em;
  color: var(--mcb-n-0, #fff); }

.terroir-band__text {
  margin: 0;
  font-family: var(--mcb-font-primary);
  font-size: 15px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.88); }

.terroir-band__cta {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  white-space: nowrap; }

@media (max-width: 768px) {
  .terroir-band__shell {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 18px;
    padding: 24px; }
  .terroir-band__shell--media {
    padding: 0;
    gap: 0; }
  .terroir-band__media {
    flex-basis: auto;
    max-width: 100%;
    width: 100%;
    min-height: 180px; }
  .terroir-band__shell--media .terroir-band__body {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 18px;
    padding: 24px; }
  /* Le CTA « Découvrir nos terroirs » centré. */
  .terroir-band__cta {
    margin-inline: auto; } }

/* ==========================================================================
   SOUS-NAV DE SECTION (homepage) — barre d'ancres, apparaît après le hero.
   Construite en JS (.mcb-section-nav) à partir des sections réellement présentes.
   Améliore l'orientation sur une page longue ; pur enrichissement (pas de contenu
   essentiel masqué sans JS). `--mcb-section-nav-top` est piloté par le JS pour
   suivre la hauteur du header sticky (qui rétrécit au scroll).
   ========================================================================== */
.mcb-section-nav {
  position: fixed;
  left: 0;
  right: 0;
  top: var(--mcb-section-nav-top, 120px);
  z-index: 1090;
  background: rgba(251, 247, 239, 0.96);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid #E6DFCB;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity 0.22s cubic-bezier(0.22, 1, 0.36, 1), transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.22s; }

.mcb-section-nav.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s; }

.mcb-section-nav__inner {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
  height: 44px;
  align-items: center; }
  .mcb-section-nav__inner::-webkit-scrollbar {
    display: none; }
  .mcb-section-nav__inner > * {
    flex: 0 0 auto; }

.mcb-section-nav__link {
  position: relative;
  flex: 0 0 auto;
  height: 28px;
  padding: 0 14px;
  border: 0;
  background: transparent;
  border-radius: 999px;
  font-family: var(--mcb-font-primary, "Manrope", sans-serif);
  font-size: 12.5px;
  font-weight: 400;
  color: #7A6A4A;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.18s ease, background-color 0.18s ease; }

.mcb-section-nav__link:hover,
.mcb-section-nav__link:focus-visible {
  color: #2A4A36;
  background: rgba(42, 74, 54, 0.06); }

.mcb-section-nav__link.is-active {
  color: #2A4A36;
  font-weight: 600;
  background: rgba(42, 74, 54, 0.08); }

@media (prefers-reduced-motion: reduce) {
  .mcb-section-nav {
    transition: none;
    transform: none; }
  .mcb-section-nav.is-visible {
    transform: none; } }

/* ==========================================================================
   TÂCHE 8 — Refonte Homepage mobile (spec refonte-responsive-figma, R11)
   --------------------------------------------------------------------------
   Comportements mobiles bornés sous `lg` (< 992px). Desktop (>= lg) intact.
   Aucune media query littérale : seuils via respond-below('lg') ; valeurs via
   tokens --mcb-*. Placé en fin de fichier pour remporter la cascade sur les
   définitions de base (réassurance/avis en grille) sans les supprimer.
   ========================================================================== */
@media (max-width: 991px) {
  /* R11.1 — HERO lisible (maquette HomeView : kicker + titre + CTA seulement).
       Trop d'éléments empilés sur la photo nuisaient à la lisibilité : on masque
       le paragraphe descriptif et la note d'avis sous lg. On garde le kicker, le
       titre et le CTA (parité maquette). */
  .banner-subtitle,
  .banner-rating {
    display: none !important; }
  #banner::after {
    background: linear-gradient(180deg, rgba(22, 39, 28, 0.28) 0%, rgba(22, 39, 28, 0.52) 46%, rgba(22, 39, 28, 0.82) 100%); }
  .banner-title {
    max-width: 100%; }
  /* Respiration interne du hero (spec harmonisation-espacements, §A / R4).
       Padding tokenisé sur les 4 côtés (ex-`15px 14px 16px`) et gouttière
       verticale UNIQUE issue de l'échelle (ex-`gap:12px` en dur). */
  .banner-content {
    padding: var(--mcb-space-lg);
    gap: var(--mcb-space-md); }
  /* Neutralise la gouttière ad hoc : une seule gouttière (`gap`) gouverne le
       stack accroche → titre → CTA (R4.2). */
  .banner-content .banner-actions {
    margin-top: 0; }
  /* En-tête ↔ hero (spec harmonisation-espacements, §S2 / R3.2).
       Rythme au-dessus du hero tokenisé et aéré (24px, ex-16px hérité de la
       base) — esprit les2marmottes. Migration bornée mobile : la valeur
       desktop de `#banner` (base) reste inchangée (R6.2). */
  .homepage #banner {
    margin-top: var(--mcb-space-xl);
    /* Plancher de hauteur : sous ~480px, l'aspect-ratio 16/10 donne un
           bandeau trop court pour le contenu (kicker + titre 3-4 lignes + CTA),
           qui se chevauchait. Le min-height ne s'active que quand la hauteur
           dérivée du ratio est inférieure (petits mobiles) ; tablette inchangée. */
    min-height: 300px; }
  /* Hero ↔ section suivante (spec harmonisation-espacements, §S3 / R3.3).
       Sur mobile la réassurance est masquée : la section suivante effective est
       `#current-operation`. Rythme entre sections tokenisé et aéré (32px, ex-8px
       porté par un `@media (max-width:767px)` littéral désormais supprimé — R5.1).
       Migration bornée mobile : la valeur desktop de `#current-operation`
       (base : 16px) reste inchangée (R6.2). */
  .homepage #current-operation {
    margin-top: var(--mcb-space-2xl); }
  /* R11.2 — Bloc réassurance EMPILÉ (3 lignes compactes, tout visible, zéro
       geste). On supprime le carrousel horizontal (mcb-hscroll) au profit d'une
       colonne pleine largeur : chaque item en ligne (icône à gauche + texte). */
  .hero-reassurance-grid {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    gap: 10px;
    padding: 2px 0 6px; }
  .hero-reassurance-item {
    width: 100%;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid var(--mcb-n-100);
    border-radius: var(--mcb-radius-interactive, 12px);
    background: var(--mcb-n-0); }
  .hero-reassurance-item__icon {
    width: 32px;
    height: 32px;
    flex: 0 0 32px; }
  /* R11.2b — Bloc réassurance MASQUÉ sous lg. Sur mobile ces blocs
       perturbent la lecture du hero ; ils restent visibles en desktop.
       On masque la SECTION entière pour éviter toute marge résiduelle. */
  .hero-reassurance-section {
    display: none !important; }
  /* Sous-nav d'ancres de section (barre fixe construite en JS) : surcharge le
       header sur mobile → masquée sous lg. Desktop inchangé (elle reste). */
  .mcb-section-nav {
    display: none !important; }
  /* R11.3 — « Votre sélection » : on CONSERVE le RAIL HORIZONTAL slidable sur
       mobile (comme desktop). Le rail piloté par bindOperationRail garde son
       display:flex; overflow-x:auto; scroll-snap défini hors media (plus haut
       dans le fichier). La carte-CTA de fin de rail reste visible en fin de
       défilement (accès « voir toute la sélection »).
       Cartes plus généreuses (~1,5 visible + peek, façon « les 2 marmottes ») :
       flex-basis 60vw borné entre 190px et 250px (images plus grandes, sans
       revenir au 80vw quasi plein écran). 3 propriétés simples : node-sass
       4.14 évalue mal clamp()/min() à unités mixtes. */
  .operation-rail__item,
  .operation-rail__cta-card {
    flex-basis: 60vw;
    max-width: 250px;
    min-width: 190px; }
  /* R11.5 — Avis clients en Carrousel_Horizontal (maquette : bande
       `overflow-x-auto` de cartes w-64). Consomme mcb-hscroll. La grille 3 col
       (respond-to('md')) reste active >= lg pour le desktop (R8). */
  .reviews-grid {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    grid-template-columns: none;
    padding-bottom: 8px; }
    .reviews-grid::-webkit-scrollbar {
      display: none; }
    .reviews-grid > * {
      flex: 0 0 auto; }
  .reviews-card {
    flex: 0 0 auto;
    width: min(82vw, 300px); }
  /* ======================================================================
       FINITION HOMEPAGE MOBILE (réf. « les 2 marmottes ») — sections
       dé-encadrées, headers centrés, meta allégée, CTA de section centrés.
       Tout borné sous lg ; desktop (>= lg) inchangé.
       ====================================================================== */
  /* --- (1) Bloc opération « sélection de la semaine » : dé-encadrer -------
       On retire la « boîte » crème (fond, bordure, ombre) pour laisser la
       section respirer, et on réduit le padding. */
  .current-operation-shell {
    padding: var(--mcb-space-xs) 0 0;
    /* 4px, ex-`4px 0 0` : iso-valeur tokenisée, aucun px en dur (R2.1/R2.2) */
    background: transparent;
    border: 0;
    box-shadow: none; }
  /* En-tête opération centré sur mobile (le titre est désormais seul sur sa
       ligne ; « Voir tout » a été déplacé sur la ligne meta). */
  .operation-header {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--mcb-space-md);
    /* 12px, ex-`12px` : gouttière tokenisée (R2.2) */
    margin-bottom: var(--mcb-space-lg);
    /* 16px : rythme corps ↔ titre « sélection » tokenisé (R3.4) */
    text-align: center; }
  .operation-header__copy {
    flex: 1 1 auto;
    min-width: 0; }
  .homepage #current-operation .operation-title {
    text-align: center; }
  /* Meta = une seule ligne discrète, légère, alignée à gauche sous le titre :
       compte à rebours inline (toujours affiché) + livraison, séparés par « · ». */
  .operation-urgency {
    justify-content: flex-start;
    gap: 4px 12px;
    margin: 2px 0 18px; }
  /* Compte à rebours allégé : plus de pilule (fond/bordure/ombre retirés),
       texte inline. On conserve les petites tuiles de chiffres (lisibilité). */
  .operation-countdown,
  .operation-countdown.is-urgent,
  .operation-countdown.is-closed {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none; }
  .operation-countdown {
    gap: 6px;
    font-size: 12px; }
  /* Séparateur « · » entre le 1er et le 2e élément de meta (countdown ·
       livraison, ou date · livraison en repli). Injecté sur le 2e enfant. */
  .operation-urgency > .operation-urgency__chip:not(:first-child)::before,
  .operation-urgency > .operation-countdown:not(:first-child)::before {
    content: "·";
    margin-right: 4px;
    color: #B7AC92;
    font-weight: 700; }
  /* --- (2) Headers de section CENTRÉS (rythme homogène) ------------------- */
  .reviews-header,
  .how-it-works-head,
  .section-header {
    text-align: center;
    align-items: center; }
  .reviews-header__copy {
    max-width: 100%; }
  .reviews-header__eyebrow,
  .how-it-works-eyebrow {
    justify-content: center; }
  /* Le badge note « avis » reste centré sous le titre. */
  .reviews-score {
    align-self: center; }
  /* --- (3) CTA de section « Voir tout / Découvrir… » CENTRÉS -------------- */
  .cta-container,
  .section-footer {
    text-align: center; }
  .cta-button {
    margin-left: auto;
    margin-right: auto; } }

.breadcrumb > .right {
  float: none !important; }

.ui.breadcrumb,
.mcb-breadcrumb {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 16px 0;
  color: #7A6A4A;
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important; }

.ui.breadcrumb:empty,
.mcb-breadcrumb:empty {
  display: none;
  margin: 0;
  padding: 0; }

.ui.breadcrumb > *,
.mcb-breadcrumb > * {
  margin: 0 !important; }

.ui.breadcrumb a,
.ui.breadcrumb span,
.mcb-breadcrumb a,
.mcb-breadcrumb span {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit; }

.ui.breadcrumb a,
.mcb-breadcrumb a {
  color: #7A6A4A !important;
  text-decoration: none;
  transition: color var(--mcb-transition-base, 160ms ease); }

.ui.breadcrumb a:hover,
.ui.breadcrumb a:focus-visible,
.mcb-breadcrumb a:hover,
.mcb-breadcrumb a:focus-visible {
  color: #2A4A36 !important;
  text-decoration: none; }

.ui.breadcrumb .active.section,
.mcb-breadcrumb .active.section {
  color: #2A4A36 !important;
  font-weight: 500 !important; }

.mcb-breadcrumb__separator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  color: #7A6A4A;
  vertical-align: -1px;
  flex: 0 0 12px; }

.ui.breadcrumb .divider {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: #7A6A4A;
  font-size: 0;
  flex: 0 0 12px; }

.ui.breadcrumb .divider::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat; }

.bitbag-page-content {
  overflow: auto; }

.bitbag-page-content :where(header) {
  position: static;
  top: auto;
  z-index: auto;
  width: auto;
  height: auto;
  max-width: none;
  margin-left: initial;
  margin-right: initial;
  padding: initial;
  border-bottom: 0;
  box-shadow: none;
  filter: none; }

/* ==========================================================================
   PAGES ESPACE COMPTE
   ========================================================================== */
.sylius-account-dashboard {
  --brand-green: var(--mcb-a-500);
  --font-family-title: 'MontserratED', sans-serif;
  --font-family-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --text-color-dark: var(--mcb-text-primary);
  --text-color-light: var(--mcb-text-secondary);
  --border-color: var(--mcb-border-default);
  --card-bg: var(--mcb-surface-panel);
  --card-shadow: var(--mcb-shadow-rest);
  margin-top: 1.25rem;
  /* --- Styles spécifiques au Tableau de Bord --- */
  /* --- Styles pour les Formulaires (Profil, Adresses, etc.) --- */
  /* --- Style pour les cases à cocher (newsletter) --- */
  /* --- Style unifié pour les boutons --- */
  /* --- Style PAGE CHANGER MOT DE PASSE --- */
  /* --- Style PAGE PARRAINAGE --- */ }
  .sylius-account-dashboard .ui.vertical.menu {
    border: 1px solid var(--border-color);
    border-radius: 18px;
    background: linear-gradient(180deg, var(--card-bg) 0%, var(--mcb-surface-panel-soft) 100%);
    box-shadow: var(--card-shadow);
    padding: 12px; }
    .sylius-account-dashboard .ui.vertical.menu .item {
      border: 0 !important;
      border-radius: 12px !important;
      color: var(--text-color-light) !important;
      font-family: var(--font-family-title);
      font-size: 0.92rem;
      font-weight: 500;
      margin: 0 0 4px;
      transition: background-color 0.2s ease, color 0.2s ease; }
      .sylius-account-dashboard .ui.vertical.menu .item:hover, .sylius-account-dashboard .ui.vertical.menu .item:focus-visible {
        background: var(--mcb-surface-panel-muted) !important;
        color: var(--text-color-dark) !important;
        outline: none; }
      .sylius-account-dashboard .ui.vertical.menu .item.active {
        background: var(--mcb-a-50) !important;
        color: var(--mcb-a-700) !important;
        font-weight: 600; }
  .sylius-account-dashboard .ui.header:first-of-type {
    font-family: var(--font-family-title);
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--text-color-dark);
    margin-bottom: 2rem; }
    .sylius-account-dashboard .ui.header:first-of-type .sub.header {
      font-family: var(--font-family-body);
      font-size: 1.1rem;
      font-weight: 400;
      color: var(--text-color-light);
      margin-top: 0.5rem; }
  .sylius-account-dashboard .sponsorship-banner.ui.icon.message {
    background-color: #e6f3e8;
    border-left: 5px solid var(--brand-green);
    padding: 1.5rem;
    margin-top: 2rem;
    box-shadow: 0 2px 10px rgba(42, 74, 54, 0.15);
    border-radius: 12px; }
    .sylius-account-dashboard .sponsorship-banner.ui.icon.message .icon {
      color: var(--brand-green); }
    .sylius-account-dashboard .sponsorship-banner.ui.icon.message .header {
      font-weight: 700;
      font-size: 1.14em;
      margin-bottom: 0.5rem;
      color: var(--text-color-dark); }
    .sylius-account-dashboard .sponsorship-banner.ui.icon.message p {
      font-size: 1rem;
      line-height: 1.4;
      margin: 0.5rem 0 0 0;
      color: var(--text-color-dark); }
  .sylius-account-dashboard .ui.grid .ui.segment {
    border: 1px solid var(--border-color);
    box-shadow: var(--card-shadow);
    border-radius: 16px;
    padding: 1.5rem 1.2rem;
    background-color: var(--card-bg);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: box-shadow 0.3s ease; }
    .sylius-account-dashboard .ui.grid .ui.segment:hover {
      box-shadow: var(--mcb-shadow-elevated); }
  .sylius-account-dashboard .ui.grid .ui.top.attached.header {
    background: none;
    border: none;
    font-family: var(--font-family-body);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-color-dark);
    padding: 0 0 1rem 0;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    gap: 0.75rem; }
    .sylius-account-dashboard .ui.grid .ui.top.attached.header .icon {
      color: var(--brand-green); }
  .sylius-account-dashboard .ui.grid .ui.segment p {
    font-family: var(--font-family-body);
    font-size: 0.95rem;
    color: var(--text-color-light);
    line-height: 1.6; }
    .sylius-account-dashboard .ui.grid .ui.segment p strong {
      color: var(--text-color-dark);
      font-weight: 600; }
  .sylius-account-dashboard .ui.grid div[style*="font-size: 2em"] {
    font-family: var(--font-family-body);
    font-weight: 700 !important;
    color: var(--brand-green) !important; }
  .sylius-account-dashboard .form-segment {
    border: 1px solid var(--border-color);
    box-shadow: var(--card-shadow);
    border-radius: 18px;
    padding: 2.5rem;
    background-color: var(--card-bg);
    margin-top: 2rem;
    text-align: left; }
  .sylius-account-dashboard .form-segment .ui.dividing.header {
    font-family: var(--font-family-body);
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--text-color-dark);
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.75rem;
    margin: 0 0 1.5rem 0; }
  .sylius-account-dashboard .form-segment .form-section:not(:last-child) {
    margin-bottom: 2.5rem; }
  .sylius-account-dashboard .ui.form .field > label,
  .sylius-account-dashboard .ui.form .inline.fields > label {
    font-family: var(--font-family-body);
    font-size: 0.95rem;
    /* Légèrement plus grand */
    font-weight: 500;
    /* Moins gras pour un look plus doux */
    color: var(--text-color-light);
    margin-bottom: 0.6rem;
    /* Plus d'espace */
    display: block; }
  .sylius-account-dashboard .ui.form input:not([type="checkbox"]):not([type="radio"]),
  .sylius-account-dashboard .ui.form .ui.selection.dropdown {
    font-family: var(--font-family-title);
    border-radius: 10px;
    border: 1px solid var(--mcb-input-border);
    padding: 0.8em 1em;
    background: var(--mcb-input-bg);
    transition: all 0.2s ease; }
    .sylius-account-dashboard .ui.form input:not([type="checkbox"]):not([type="radio"]):focus,
    .sylius-account-dashboard .ui.form .ui.selection.dropdown:focus {
      border-color: var(--mcb-a-200);
      box-shadow: 0 0 0 4px var(--mcb-focus-ring); }
  .sylius-account-dashboard .ui.form .grouped.fields .field {
    margin-bottom: 1rem; }
  .sylius-account-dashboard .ui.checkbox label {
    font-family: var(--font-family-body);
    font-size: 1rem;
    color: var(--text-color-dark); }
  .sylius-account-dashboard .sylius-profile-form .field:last-child {
    margin-bottom: 1em; }
  .sylius-account-dashboard .newsletter-options-container {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; }
  .sylius-account-dashboard .newsletter-option .ui.checkbox label {
    font-weight: 600; }
  .sylius-account-dashboard .newsletter-option__description {
    font-size: 0.9em;
    color: var(--text-color-light);
    padding-left: 28px;
    margin-top: 0.3rem;
    line-height: 1.5; }
  .sylius-account-dashboard .ui.form .ui.green.button[type="submit"] {
    display: block;
    margin-left: auto;
    margin-right: 0; }
  .sylius-account-dashboard .ui.button {
    font-family: var(--font-family-title);
    font-weight: 600;
    border-radius: 10px;
    padding: 0.8em 1.5em;
    transition: all 0.2s ease-in-out;
    margin-top: 1rem; }
    .sylius-account-dashboard .ui.button.green {
      background-color: var(--brand-green);
      color: #ffffff; }
      .sylius-account-dashboard .ui.button.green:hover, .sylius-account-dashboard .ui.button.green:focus {
        background-color: var(--mcb-a-600);
        color: #ffffff; }
    .sylius-account-dashboard .ui.button.grey {
      background-color: var(--mcb-surface-panel-muted);
      color: var(--text-color-dark); }
      .sylius-account-dashboard .ui.button.grey:hover, .sylius-account-dashboard .ui.button.grey:focus {
        background-color: var(--mcb-surface-panel-strong);
        color: var(--text-color-dark); }
  .sylius-account-dashboard .ui.input.with-eye-toggle {
    position: relative;
    display: flex; }
    .sylius-account-dashboard .ui.input.with-eye-toggle .password-toggle-wrapper {
      position: absolute;
      top: 0;
      bottom: 0;
      right: 0.75em;
      display: flex;
      align-items: center;
      cursor: pointer;
      padding: 0 0.5em;
      z-index: 2;
      transition: color 0.2s ease; }
      .sylius-account-dashboard .ui.input.with-eye-toggle .password-toggle-wrapper:hover .password-toggle {
        color: var(--text-color-dark); }
      .sylius-account-dashboard .ui.input.with-eye-toggle .password-toggle-wrapper .password-toggle {
        color: var(--text-color-light);
        font-size: 1.1em;
        margin: 0; }
    .sylius-account-dashboard .ui.input.with-eye-toggle input[type="password"], .sylius-account-dashboard .ui.input.with-eye-toggle input[type="text"] {
      padding-right: 3em !important;
      color: var(--text-color-dark) !important;
      -webkit-text-security: none !important; }
  .sylius-account-dashboard .loyalty-cards-grid {
    margin-top: 30px !important; }
  .sylius-account-dashboard .loyalty-cards-grid > .card {
    flex-grow: 1;
    flex-basis: 0;
    min-width: 250px;
    margin: 0.5rem !important; }
  .sylius-account-dashboard .loyalty-cards-grid > .card:nth-child(3) {
    max-width: 450px; }
  .sylius-account-dashboard .card-email-form .ui.form .two.fields {
    margin-bottom: 0.5rem; }
  .sylius-account-dashboard .card-email-form .ui.form .field > label {
    font-size: 0.85rem;
    margin-bottom: 0.3rem; }
  .sylius-account-dashboard .card-email-form .ui.form input {
    padding: 0.5em 0.8em;
    font-size: 0.9em; }
  .sylius-account-dashboard .card-email-form .surname, .sylius-account-dashboard .card-email-form .email {
    margin-left: 0 !important;
    margin-right: 0 !important; }

/* ==========================================================================
   FORM ACTIONS - PAGES ADRESSES UNIQUEMENT
   ========================================================================== */
.sylius-account-dashboard .form-segment .form-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border-color); }

.sylius-account-dashboard .form-segment .form-actions > a.ui.button:first-child {
  margin: 0 !important; }

.sylius-account-dashboard .form-segment .form-actions > button.ui.green.button {
  margin: 0 0 0 auto !important; }

@media (max-width: 768px) {
  .sylius-account-dashboard .form-segment .form-actions {
    flex-direction: column;
    gap: 0.5rem; }
  .sylius-account-dashboard .form-segment .form-actions > .ui.button {
    width: 100%;
    text-align: center;
    justify-content: center; } }

/* ==========================================================================
   MENU COMPTE
   ========================================================================== */
.ui.fluid.vertical.menu {
  border-radius: 12px !important;
  border: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15);
  padding: 0.5rem; }

.ui.fluid.vertical.menu > .header.item {
  font-family: var(--font-family-body);
  font-weight: 700;
  color: var(--text-color-dark);
  font-size: 1.1em;
  padding: 1rem; }

.ui.fluid.vertical.menu > a.item {
  font-family: var(--font-family-body);
  font-weight: 500;
  font-size: 1em;
  color: #444;
  border-radius: 8px !important;
  margin: 0.25rem 0;
  transition: all 0.2s ease;
  display: flex !important;
  align-items: center;
  gap: 0.85rem; }
  .ui.fluid.vertical.menu > a.item .icon {
    order: -1;
    margin: 0 !important;
    font-size: 1.1em;
    opacity: 0.7;
    transition: all 0.2s ease; }
  .ui.fluid.vertical.menu > a.item:hover {
    background: #f5f5f5 !important;
    color: var(--text-color-dark) !important; }
    .ui.fluid.vertical.menu > a.item:hover .icon {
      opacity: 1; }
  .ui.fluid.vertical.menu > a.item.active {
    font-weight: 600 !important;
    color: var(--brand-green) !important;
    background: #f0f9f3 !important; }
    .ui.fluid.vertical.menu > a.item.active .icon {
      opacity: 1;
      color: var(--brand-green) !important; }

.ui.fluid.vertical.menu a.item[href="/logout"] {
  margin-top: 0.5rem !important;
  text-align: center !important;
  font-weight: 600 !important;
  transition: all 0.2s ease-in-out !important;
  background: #ffffff !important;
  color: #c94040 !important;
  border: 1px solid #e0e0e0 !important;
  box-shadow: none !important; }
  .ui.fluid.vertical.menu a.item[href="/logout"] .icon {
    color: #c94040 !important;
    margin-right: 0.5em !important; }
  .ui.fluid.vertical.menu a.item[href="/logout"]:hover {
    background: #c94040 !important;
    color: #ffffff !important;
    border-color: #c94040 !important; }
    .ui.fluid.vertical.menu a.item[href="/logout"]:hover .icon {
      color: #ffffff !important; }

/* ==========================================================================
   PAGE PARRAINAGE
   ========================================================================== */
.filleul {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 10px; }
  @media (max-width: 767px) {
    .filleul {
      flex-wrap: wrap;
      gap: 0; } }

.filleul label {
  flex-shrink: 0;
  font-weight: 500;
  width: 80px;
  text-align: right; }
  @media (max-width: 767px) {
    .filleul label {
      width: 100%;
      text-align: left;
      margin-top: 10px; } }

.filleul input {
  flex-grow: 1;
  border: 1px solid #dce3e9;
  border-radius: 5px;
  padding: 8px 10px; }

.surname, .email {
  margin-left: 0 !important;
  margin-right: 0 !important; }

/* ==========================================================================
   PAGE CONFIRMATION DE COMMANDE (THANK YOU)
   Aligné sur le design system V2 (_tokens-v2.scss). Boutons = .mcb-button.
========================================================================== */
.ty-wrap {
  max-width: 660px;
  margin: 0 auto;
  padding: 44px 20px 80px;
  font-family: var(--mcb-font-inter);
  color: var(--mcb-text-primary); }

/* Masque le flash "info" générique de Sylius sur cette page */
.thank-you-page + .sylius-flash-message.info,
.ty-wrap + .sylius-flash-message.info {
  display: none !important; }

/* ===== HERO ===== */
.ty-hero {
  text-align: center;
  margin-bottom: 24px; }
  .ty-hero__badge {
    width: 72px;
    height: 72px;
    margin: 0 auto 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: radial-gradient(circle at 32% 28%, #34553F, var(--mcb-green-main));
    box-shadow: 0 0 0 6px var(--mcb-green-soft);
    position: relative; }
    .ty-hero__badge::after {
      content: "";
      position: absolute;
      inset: -6px;
      border-radius: 50%;
      border: 1px solid var(--mcb-gold-main); }
    .ty-hero__badge svg {
      width: 34px;
      height: 34px;
      color: var(--mcb-gold-main); }
  .ty-hero__eyebrow {
    margin: 0 0 8px;
    font-family: var(--mcb-font-heading);
    font-size: 12px;
    font-weight: var(--mcb-fw-bold);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--mcb-gold-ink); }
  .ty-hero__title {
    margin: 0 0 10px;
    font-family: var(--mcb-font-heading);
    font-size: 1.85rem;
    font-weight: 800;
    color: var(--mcb-green-main); }
  .ty-hero__text {
    max-width: 440px;
    margin: 0 auto;
    font-size: 1.02rem;
    color: var(--mcb-text-secondary); }
    .ty-hero__text strong {
      color: var(--mcb-text-primary);
      font-weight: var(--mcb-fw-semi); }

/* ===== CARTE GÉNÉRIQUE ===== */
.ty-card {
  background: var(--mcb-surface-panel);
  border: 1px solid var(--mcb-border-default);
  border-radius: var(--mcb-radius-structural);
  box-shadow: var(--mcb-shadow-rest);
  padding: 22px 24px;
  margin: 16px 0; }

/* ===== LIVRAISON ===== */
.ty-deliv {
  display: flex;
  gap: 24px;
  flex-wrap: wrap; }
  .ty-deliv__col {
    flex: 1;
    min-width: 180px; }
  .ty-deliv__lbl {
    margin: 0 0 5px;
    font-size: 11px;
    font-weight: var(--mcb-fw-semi);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--mcb-text-muted); }
  .ty-deliv__big {
    margin-bottom: 2px;
    font-family: var(--mcb-font-heading);
    font-size: 1.05rem;
    font-weight: var(--mcb-fw-bold);
    color: var(--mcb-green-main); }
  .ty-deliv__sm {
    color: var(--mcb-text-secondary);
    font-size: 0.95rem; }
  .ty-deliv address {
    font-style: normal;
    color: var(--mcb-text-secondary);
    font-size: 0.95rem;
    line-height: 1.45; }

/* ===== CRÉATION DE COMPTE (mise en avant) ===== */
.ty-signup {
  background: var(--mcb-surface-panel);
  border: 1px solid var(--mcb-green-border-soft);
  border-top: 3px solid var(--mcb-gold-main);
  border-radius: var(--mcb-radius-structural);
  box-shadow: var(--mcb-shadow-elevated);
  padding: 26px 24px;
  margin: 22px 0; }
  .ty-signup__title {
    margin: 0 0 6px;
    font-family: var(--mcb-font-heading);
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--mcb-green-main); }
  .ty-signup__sub {
    margin: 0 0 18px;
    color: var(--mcb-text-secondary); }
    .ty-signup__sub b {
      color: var(--mcb-green-main);
      font-weight: var(--mcb-fw-semi); }
  .ty-signup__submit {
    width: 100%;
    margin-top: 4px; }

.ty-row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px; }

.ty-field label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--mcb-font-heading);
  font-size: 0.85rem;
  font-weight: var(--mcb-fw-semi);
  color: var(--mcb-green-main); }

.ty-input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--mcb-input-border);
  border-radius: var(--mcb-radius-interactive);
  background: var(--mcb-input-bg);
  color: var(--mcb-input-text);
  font-family: var(--mcb-font-inter);
  font-size: 1rem; }
  .ty-input:focus {
    outline: none;
    border-color: var(--mcb-green-main);
    box-shadow: 0 0 0 3px var(--mcb-focus-ring);
    background: var(--mcb-input-bg-focus); }

.ty-hint {
  margin: 5px 0 0;
  font-size: 0.8rem;
  color: var(--mcb-text-muted); }

.ty-optin {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
  margin: 16px 0; }
  .ty-optin__q {
    font-family: var(--mcb-font-heading);
    font-size: 0.9rem;
    font-weight: var(--mcb-fw-semi);
    color: var(--mcb-green-main); }
  .ty-optin label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 0.94rem;
    color: var(--mcb-text-primary);
    cursor: pointer; }
  .ty-optin input {
    accent-color: var(--mcb-green-main); }
  .ty-optin .field-error-message {
    flex-basis: 100%; }

.ty-parrain {
  margin: 0 0 16px; }
  .ty-parrain__toggle {
    font-size: 0.88rem;
    font-weight: var(--mcb-fw-semi);
    color: var(--mcb-gold-ink);
    text-decoration: none; }
    .ty-parrain__toggle:hover {
      text-decoration: underline; }
  .ty-parrain .ty-field {
    margin-top: 10px; }

/* ===== ESPACE CLIENT (connecté) ===== */
.ty-reminder {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-content: space-between;
  flex-wrap: wrap; }
  .ty-reminder__t {
    font-family: var(--mcb-font-heading);
    font-weight: var(--mcb-fw-bold);
    color: var(--mcb-green-main); }
  .ty-reminder__s {
    color: var(--mcb-text-secondary);
    font-size: 0.92rem; }

/* ===== ACCORDÉON RÉCAP ===== */
.ty-acc {
  margin: 16px 0; }
  .ty-acc details {
    background: var(--mcb-surface-panel);
    border: 1px solid var(--mcb-border-default);
    border-radius: var(--mcb-radius-structural);
    box-shadow: var(--mcb-shadow-rest);
    overflow: hidden; }
  .ty-acc summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    font-family: var(--mcb-font-heading);
    font-size: 1rem;
    font-weight: var(--mcb-fw-bold);
    color: var(--mcb-green-main); }
    .ty-acc summary::-webkit-details-marker {
      display: none; }
  .ty-acc__chev {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1.5px solid var(--mcb-border-default);
    border-radius: 999px;
    color: var(--mcb-text-muted);
    font-size: 17px;
    line-height: 1;
    transition: transform var(--mcb-transition-slow); }
  details[open] .ty-acc__chev {
    transform: rotate(45deg);
    border-color: var(--mcb-gold-dark);
    color: var(--mcb-gold-ink); }
  .ty-acc__body {
    padding: 0 24px 20px; }

.ty-li {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 13px 0;
  border-top: 1px solid var(--mcb-border-default); }
  .ty-li__nm {
    font-family: var(--mcb-font-heading);
    font-size: 0.93rem;
    font-weight: var(--mcb-fw-semi);
    color: var(--mcb-green-main); }
  .ty-li__qt {
    font-size: 0.82rem;
    color: var(--mcb-text-muted); }
  .ty-li__pr {
    margin-left: auto;
    font-family: var(--mcb-font-heading);
    font-weight: var(--mcb-fw-bold);
    color: var(--mcb-text-primary); }

.ty-tot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 0 2px;
  margin-top: 4px;
  border-top: 2px solid var(--mcb-border-default); }
  .ty-tot__l {
    font-family: var(--mcb-font-heading);
    font-size: 1rem;
    font-weight: var(--mcb-fw-bold);
    color: var(--mcb-green-main); }
  .ty-tot__v {
    font-family: var(--mcb-font-heading);
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--mcb-green-main); }

/* ===== LIENS DISCRETS ===== */
.ty-links {
  display: flex;
  gap: 8px 24px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 22px; }
  .ty-links a {
    font-size: 0.92rem;
    font-weight: var(--mcb-fw-semi);
    color: var(--mcb-gold-ink);
    text-decoration: none; }
    .ty-links a:hover {
      text-decoration: underline; }

@media (max-width: 540px) {
  .ty-row2 {
    grid-template-columns: 1fr; } }

/* Product reviews: Figma-inspired PDP section, grounded in MonComteBon V2 tokens. */
.stars-static {
  display: inline-flex;
  align-items: center;
  gap: 3px; }
  .stars-static .star-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: var(--mcb-star-empty, #d4d0c8); }
    .stars-static .star-icon.filled {
      fill: currentColor;
      color: var(--mcb-star-fill, #e8c26b); }
    .stars-static .star-icon.star-icon--half {
      color: var(--mcb-star-empty, #d4d0c8); }
    .stars-static .star-icon.star-icon--half .star-icon-empty {
      fill: none;
      stroke: currentColor; }
    .stars-static .star-icon.star-icon--half .star-icon-fill {
      fill: currentColor;
      stroke: currentColor;
      color: var(--mcb-star-fill, #e8c26b); }
  .stars-static--sm .star-icon {
    width: 16px;
    height: 16px; }
  .stars-static--sm .star-half-wrapper {
    width: 16px;
    height: 16px; }
  .stars-static--md .star-icon {
    width: 18px;
    height: 18px; }
  .stars-static--md .star-half-wrapper {
    width: 18px;
    height: 18px; }
  .stars-static--lg .star-icon {
    width: 22px;
    height: 22px; }
  .stars-static--lg .star-half-wrapper {
    width: 22px;
    height: 22px; }

.star-half-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  line-height: 0;
  vertical-align: middle; }
  .star-half-wrapper .star-icon {
    display: block;
    color: var(--mcb-star-empty, #d4d0c8); }

.star-half-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 50%;
  overflow: hidden; }
  .star-half-fill .star-icon {
    color: var(--mcb-star-fill, #e8c26b); }

.product-rating-summary-bar {
  display: flex;
  justify-content: center; }

.product-rating-summary__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--mcb-text-primary, #1c1a17);
  text-decoration: none; }
  .product-rating-summary__link:focus-visible {
    outline: 2px solid var(--mcb-green-main, #2a4a36);
    outline-offset: 3px;
    border-radius: var(--mcb-radius-interactive, 10px); }

.product-rating-summary__value {
  font-family: var(--mcb-font-numeric, "Lato", "Helvetica Neue", Arial, sans-serif);
  font-size: 1rem;
  font-weight: var(--mcb-fw-bold, 700);
  color: var(--mcb-text-primary, #1c1a17); }

.product-rating-summary__count {
  color: var(--mcb-text-muted, #7a6a4a);
  font-size: 0.88rem; }

.product-reviews-section {
  position: relative;
  margin: 0;
  padding: 56px 0 72px;
  border: 0;
  background: transparent;
  box-shadow: none;
  clip-path: none;
  isolation: isolate;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  color: var(--mcb-text-primary, #1c1a17);
  scroll-margin-top: 112px; }
  @media (min-width: 992px) {
    .product-reviews-section {
      padding: 80px 0 96px; } }

.product-reviews-section::before {
  content: "";
  position: absolute;
  inset: 0 calc(50% - 50vw);
  z-index: 0;
  background: rgba(244, 236, 216, 0.4);
  pointer-events: none; }

.product-reviews-section .reviews-container {
  position: relative;
  z-index: 1; }

.site-main-container.ui.container.site-main-container--product-show {
  padding-bottom: 0; }

@media (min-width: 768px) {
  .product-page--direction-b {
    margin-bottom: -48px; } }

.reviews-container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  align-items: start; }
  @media (min-width: 992px) {
    .reviews-container {
      grid-template-columns: 340px minmax(0, 1fr);
      gap: 56px; } }

.reviews-dashboard {
  position: sticky !important;
  top: 128px !important;
  align-self: start !important;
  height: max-content;
  z-index: 1; }
  @media (max-width: 991px) {
    .reviews-dashboard {
      position: static; } }

.dashboard-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--mcb-border-default, #e6dfcb);
  border-radius: 16px;
  background: var(--mcb-surface-panel, #ffffff);
  box-shadow: none; }

.dashboard-title {
  margin: 0;
  padding: 29px 24px 0;
  color: var(--mcb-gold-dark, #c28a3a);
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.18em;
  text-transform: uppercase; }

.global-rating-wrapper {
  margin: 0 24px;
  padding: 12px 0 22px;
  text-align: left;
  border-bottom: 0; }

.global-rating-row {
  display: flex;
  align-items: center;
  gap: 12px; }

.global-rating-meta {
  min-width: 0;
  display: grid;
  gap: 2px; }

.global-rating-number {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  color: var(--mcb-green-active, #153826);
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 56px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em; }
  .global-rating-number .rating-max {
    color: var(--mcb-text-muted, #7a6a4a);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0; }

.global-stars-visual {
  margin-top: 0;
  display: flex;
  justify-content: flex-start; }
  .global-stars-visual .star-icon {
    width: 14px;
    height: 14px; }
  .global-stars-visual .star-half-wrapper {
    width: 14px;
    height: 14px; }

.global-count {
  margin: 0;
  color: var(--mcb-text-muted, #7a6a4a);
  font-size: 12px;
  font-weight: 400; }

.rating-breakdown {
  margin: 0 24px;
  padding: 14px 0 0; }

.breakdown-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 26px;
  color: var(--mcb-green-active, #153826);
  font-size: 12px;
  font-weight: 500; }
  .breakdown-row + .breakdown-row {
    margin-top: 6px; }
  .breakdown-row .star-label {
    min-width: 28px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap; }
  .breakdown-row .breakdown-star-icon {
    width: 12px;
    height: 12px;
    fill: currentColor;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: var(--mcb-star-fill, #e8c26b);
    flex: 0 0 12px; }
  .breakdown-row .progress-track {
    flex: 1;
    height: 6px;
    overflow: hidden;
    border-radius: var(--mcb-radius-chip, 999px);
    background: var(--mcb-surface-panel-muted, #f4ecd8); }
  .breakdown-row .progress-fill {
    height: 100%;
    border-radius: inherit;
    background: var(--mcb-star-fill, #e8c26b); }
  .breakdown-row .count-label {
    min-width: 34px;
    text-align: right;
    color: var(--mcb-text-muted, #7a6a4a);
    font-family: var(--mcb-font-numeric, "Lato", "Helvetica Neue", Arial, sans-serif);
    font-size: 11px;
    font-weight: 500; }

.review-dashboard-empty {
  margin: 0 28px;
  padding: 30px 0 26px;
  text-align: center;
  border-bottom: 1px solid var(--mcb-border-subtle, rgba(212, 208, 200, 0.72)); }

.review-dashboard-empty__title {
  margin: 0 0 6px;
  color: var(--mcb-text-primary, #1c1a17);
  font-size: 15px;
  font-weight: var(--mcb-fw-bold, 700); }

.review-dashboard-empty__text {
  margin: 0;
  color: var(--mcb-text-muted, #7a6a4a);
  font-size: 13px;
  line-height: 1.45; }

.dashboard-action-area {
  margin: 0 24px;
  padding: 22px 0 24px; }

.btn-write-review {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100%;
  min-height: 46px;
  padding: 0 20px !important;
  border: 1px solid var(--mcb-btn-primary-border, var(--mcb-green-main, #2a4a36)) !important;
  border-radius: var(--mcb-radius-interactive, 10px) !important;
  background: var(--mcb-btn-primary-bg, var(--mcb-green-main, #2a4a36)) !important;
  color: var(--mcb-btn-primary-text, var(--mcb-text-on-accent, #f4ecd8)) !important;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif) !important;
  font-size: 14px;
  font-weight: var(--mcb-fw-semi, 600);
  letter-spacing: 0.01em;
  text-decoration: none;
  box-shadow: none;
  transition: background-color var(--mcb-transition-base, 160ms ease), border-color var(--mcb-transition-base, 160ms ease), box-shadow var(--mcb-transition-base, 160ms ease), transform var(--mcb-transition-base, 160ms ease); }
  .btn-write-review:hover {
    background: var(--mcb-btn-primary-bg-hover, #355a45) !important;
    border-color: var(--mcb-btn-primary-border-hover, #355a45) !important;
    color: var(--mcb-btn-primary-text, var(--mcb-text-on-accent, #f4ecd8)) !important;
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(28, 86, 54, 0.16);
    transform: translateY(-1px); }
  .btn-write-review:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--mcb-background-cream, #f7f1e6), 0 0 0 5px rgba(42, 74, 54, 0.24); }

.btn-write-review + .trust-badge-box {
  margin-top: 18px; }

.trust-badge-box {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 0;
  padding: 12px;
  border: 1px solid var(--mcb-border-default, #e6dfcb);
  border-radius: 12px;
  background: var(--mcb-surface-canvas, #fbf7ef); }

.trust-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  color: var(--mcb-green-main, #2a4a36); }
  .trust-icon svg {
    width: 24px;
    height: 24px;
    stroke-width: 2.2; }

.trust-content {
  min-width: 0; }
  .trust-content strong,
  .trust-content span {
    display: block; }
  .trust-content strong {
    color: var(--mcb-green-main, #2a4a36);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.25; }
  .trust-content span {
    margin-top: 3px;
    color: var(--mcb-text-muted, #7a6a4a);
    font-size: 11px;
    line-height: 1.35; }
  .trust-content a {
    color: var(--mcb-green-main, #2a4a36);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px; }
    .trust-content a:hover, .trust-content a:focus-visible {
      color: var(--mcb-green-hover, #355a45); }

.dashboard-footer-link {
  display: block;
  padding: 17px 24px;
  border-top: 1px solid var(--mcb-border-default, #e6dfcb);
  background: rgba(251, 247, 239, 0.7);
  color: var(--mcb-text-muted, #7a6a4a);
  font-size: 11px;
  line-height: 1.4;
  text-align: center;
  text-decoration: none; }
  .dashboard-footer-link span {
    color: var(--mcb-green-main, #2a4a36);
    text-decoration: underline;
    text-underline-offset: 2px; }
  .dashboard-footer-link:hover {
    color: var(--mcb-text-secondary, #5c5340);
    text-decoration: none; }

.btn-write-review:focus-visible,
.reviews-load-more-button:focus-visible,
.link-edit:focus-visible,
.link-delete:focus-visible,
.dashboard-footer-link:focus-visible,
.feed-sort-form select:focus-visible {
  outline: 2px solid var(--mcb-green-main, #2a4a36);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px var(--mcb-focus-ring, rgba(42, 74, 54, 0.18)); }

.reviews-feed {
  min-width: 0; }

.reviews-feed-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px; }
  @media (max-width: 560px) {
    .reviews-feed-header {
      align-items: flex-start;
      flex-direction: column; } }

.reviews-feed-heading {
  min-width: 0; }

.feed-title {
  margin: 0;
  color: var(--mcb-green-main, #2a4a36);
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: clamp(24px, 2.8vw, 34px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em; }
  .feed-title span {
    color: var(--mcb-gold-dark, #c28a3a);
    font-style: italic; }

.feed-sort-form {
  min-width: 178px;
  margin: 0; }
  .feed-sort-form .select-wrapper {
    position: relative;
    overflow: hidden;
    min-height: 44px;
    border: 1px solid var(--mcb-border-default, #e6dfcb);
    border-radius: var(--mcb-radius-chip, 999px);
    background: var(--mcb-surface-panel, #ffffff);
    box-shadow: none; }
  .feed-sort-form select {
    width: 100%;
    height: 44px;
    padding: 0 38px 0 18px;
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--mcb-text-primary, #1c1a17);
    cursor: pointer;
    font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
    font-size: 14px;
    font-weight: 400;
    line-height: 44px; }
  .feed-sort-form .select-arrow {
    position: absolute;
    top: 50%;
    right: 14px;
    width: 16px;
    height: 16px;
    color: var(--mcb-text-primary, #1c1a17);
    pointer-events: none;
    transform: translateY(-50%); }

.reviews-list-container {
  display: grid;
  gap: 16px; }

.reviews-load-more-scope {
  display: contents; }

.review-card-modern {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--mcb-border-default, #e6dfcb);
  border-radius: 16px;
  background: var(--mcb-surface-panel, #ffffff);
  box-shadow: none;
  min-height: 158px; }
  @media (min-width: 992px) {
    .review-card-modern {
      padding: 24px; } }
  .review-card-modern.review-card--pending {
    background: var(--mcb-warn-100, #f5f0e5);
    border-color: var(--mcb-warn-200, rgba(122, 98, 50, 0.25)); }
  @media (max-width: 560px) {
    .review-card-modern {
      grid-template-columns: 34px minmax(0, 1fr);
      gap: 12px;
      padding: 20px 16px; } }

.review-card-modern.is-hidden-by-load-more {
  display: none; }

.reviews-load-more-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  height: 44px;
  margin-top: 10px;
  padding: 0 20px;
  border: 1px solid rgba(42, 74, 54, 0.2);
  border-radius: var(--mcb-radius-chip, 999px);
  background: transparent;
  color: var(--mcb-green-main, #2a4a36);
  cursor: pointer;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 14px;
  font-weight: var(--mcb-fw-semi, 600);
  line-height: 1;
  text-align: center;
  transition: background-color var(--mcb-transition-base, 160ms ease), border-color var(--mcb-transition-base, 160ms ease), color var(--mcb-transition-base, 160ms ease); }
  .reviews-load-more-button:hover {
    border-color: var(--mcb-green-main, #2a4a36);
    background: var(--mcb-green-main, #2a4a36);
    color: var(--mcb-text-on-accent, #f4ecd8); }
  .reviews-load-more-button:focus-visible {
    outline: 2px solid var(--mcb-green-main, #2a4a36);
    outline-offset: 3px;
    box-shadow: 0 0 0 4px var(--mcb-focus-ring, rgba(42, 74, 54, 0.18)); }

.card-avatar-col {
  display: flex;
  justify-content: center; }

.author-avatar {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(42, 74, 54, 0.1);
  color: var(--mcb-green-main, #2a4a36);
  font-size: 14px;
  font-weight: 500; }
  @media (max-width: 560px) {
    .author-avatar {
      width: 34px;
      height: 34px;
      font-size: 13px; } }

.card-content-wrapper {
  min-width: 0; }

.card-header-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-bottom: 0;
  flex-wrap: wrap; }

.author-name {
  color: var(--mcb-green-main, #2a4a36);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3; }

.badge-verified,
.badge-pending {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase; }

.badge-verified {
  padding: 2px 8px;
  border-radius: var(--mcb-radius-chip, 999px);
  background: rgba(232, 194, 107, 0.3);
  color: var(--mcb-green-main, #2a4a36); }
  .badge-verified svg {
    width: 12px;
    height: 12px;
    stroke-width: 2.6; }

.badge-pending {
  padding: 4px 8px;
  border: 1px solid var(--mcb-warn-200, rgba(122, 98, 50, 0.25));
  border-radius: var(--mcb-radius-chip, 999px);
  background: var(--mcb-surface-panel, #ffffff);
  color: var(--mcb-warn-700, #7a6232); }

.review-date {
  margin-left: auto;
  color: var(--mcb-text-muted, #7a6a4a);
  font-family: var(--mcb-font-numeric, "Lato", "Helvetica Neue", Arial, sans-serif);
  font-size: 12px;
  font-weight: 400; }
  @media (max-width: 560px) {
    .review-date {
      width: 100%;
      margin-left: 0; } }

.card-rating-row {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 8px 0 0;
  flex-wrap: wrap; }
  .card-rating-row .stars-static .star-icon {
    width: 15px;
    height: 15px; }
  .card-rating-row .stars-static .star-half-wrapper {
    width: 15px;
    height: 15px; }

.review-card-stars {
  gap: 3px; }
  .review-card-stars .stars-static {
    gap: 3px; }
  .review-card-stars .star-icon {
    width: 15px;
    height: 15px; }
  .review-card-stars .star-half-wrapper {
    width: 15px;
    height: 15px; }

.review-title-text {
  margin: 8px 0 0;
  color: var(--mcb-green-main, #2a4a36);
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.25; }

.card-body p,
.review-text {
  margin: 6px 0 0;
  color: var(--mcb-text-secondary, #5c5340);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6; }

.review-actions {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap; }

.link-edit,
.link-delete {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: var(--mcb-font-primary, "MontserratED", sans-serif);
  font-size: 12px;
  font-weight: var(--mcb-fw-semi, 600);
  line-height: 1.4;
  text-decoration: none; }
  .link-edit svg,
  .link-delete svg {
    width: 14px;
    height: 14px;
    stroke-width: 2.2; }

.link-edit {
  color: var(--mcb-green-main, #2a4a36); }
  .link-edit:hover {
    color: var(--mcb-green-hover, #355a45);
    text-decoration: underline;
    text-underline-offset: 2px; }

.link-delete {
  color: var(--mcb-danger-600, #9e3d35); }
  .link-delete:hover {
    text-decoration: underline;
    text-underline-offset: 2px; }

.review-delete-action {
  display: inline-flex; }

.review-delete-form {
  display: none; }

.reviews-empty-state {
  padding: 40px 28px;
  border: 1px solid var(--mcb-border-default, #e6dfcb);
  border-radius: var(--mcb-radius-structural, 14px);
  background: var(--mcb-surface-panel, #ffffff);
  text-align: center; }
  .reviews-empty-state .empty-icon {
    margin-bottom: 14px;
    color: var(--mcb-star-empty, #d4d0c8); }
    .reviews-empty-state .empty-icon svg {
      width: 52px;
      height: 52px;
      fill: currentColor; }
  .reviews-empty-state h3 {
    margin: 0 0 8px;
    color: var(--mcb-text-primary, #1c1a17);
    font-size: 17px;
    font-weight: var(--mcb-fw-bold, 700);
    line-height: 1.25; }
  .reviews-empty-state p {
    max-width: 42ch;
    margin: 0 auto;
    color: var(--mcb-text-muted, #7a6a4a);
    font-size: 13px;
    line-height: 1.55; }

/* Product reviews Figma PDP pass */
.product-reviews-section {
  padding: 56px 0 72px;
  background: transparent;
  box-shadow: none;
  clip-path: none; }

@media (min-width: 992px) {
  .product-reviews-section {
    padding: 72px 0 88px; } }

.product-reviews-section .reviews-container {
  grid-template-columns: minmax(0, 1fr);
  gap: 40px; }

@media (min-width: 992px) {
  .product-reviews-section .reviews-container {
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 64px; } }

.product-reviews-section .dashboard-card {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent; }

.product-reviews-section .dashboard-title {
  padding: 0;
  color: var(--mcb-gold-dark, #C28A3A);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em; }

.product-reviews-section .global-rating-wrapper,
.product-reviews-section .rating-breakdown,
.product-reviews-section .dashboard-action-area {
  margin-right: 0;
  margin-left: 0; }

.product-reviews-section .global-rating-wrapper {
  padding: 12px 0 0; }

.product-reviews-section .global-rating-number {
  color: var(--mcb-green-active, #153826);
  font-size: 56px;
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.03em; }

.product-reviews-section .rating-breakdown {
  padding-top: 0; }

.product-reviews-section .dashboard-action-area {
  padding: 18px 0 0; }

.product-reviews-section .btn-write-review {
  width: 100%;
  min-height: 38px;
  padding: 0 18px !important;
  border-radius: var(--mcb-radius-chip, 999px) !important;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2; }

.product-reviews-section .trust-badge-box {
  display: flex;
  align-items: baseline;
  gap: 6px;
  white-space: nowrap;
  margin: 16px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--mcb-text-muted, #7A6A4A);
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.55; }

.product-reviews-section .trust-badge-box a {
  color: inherit;
  font-weight: 500;
  text-decoration: none;
  text-underline-offset: 3px; }

.product-reviews-section .trust-badge-box a:hover,
.product-reviews-section .trust-badge-box a:focus-visible {
  color: var(--mcb-green-main, #2A4A36);
  text-decoration: underline; }

.product-reviews-section .feed-title {
  color: var(--mcb-green-main, #2A4A36);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.015em; }

.product-reviews-section .feed-title span {
  color: inherit;
  font-style: normal; }

.product-reviews-section .reviews-list-container {
  max-width: 640px;
  gap: 0; }

.product-reviews-section .reviews-load-more-scope {
  display: block; }

.product-reviews-section .review-card-modern {
  display: block;
  min-height: 0;
  padding: 0 0 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none; }

.product-reviews-section .review-card-modern:hover {
  transform: none;
  box-shadow: none; }

.product-reviews-section .review-card-modern + .review-card-modern {
  padding-top: 28px;
  border-top: 1px solid var(--mcb-border-default, #E6DFCB); }

.product-reviews-section .review-card-modern.review-card--pending {
  padding: 20px;
  border: 1px solid var(--mcb-warn-200, rgba(122, 98, 50, 0.25));
  border-radius: var(--mcb-radius-structural, 14px);
  background: var(--mcb-warn-100, #F5F0E5); }

.product-reviews-section .card-avatar-col {
  display: none; }

.product-reviews-section .card-rating-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px; }

.product-reviews-section .review-date {
  width: auto;
  margin-left: 0;
  color: var(--mcb-text-muted, #7A6A4A);
  font-size: 12px; }

.product-reviews-section .review-title-text {
  margin: 0;
  color: var(--mcb-green-main, #2A4A36);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3; }

.product-reviews-section .card-body p,
.product-reviews-section .review-text {
  margin-top: 8px;
  color: var(--mcb-text-secondary, #5C5340);
  font-size: 14.5px;
  line-height: 1.65; }

.product-reviews-section .card-header-row {
  margin-top: 11px;
  gap: 8px; }

.product-reviews-section .author-name {
  color: var(--mcb-green-main, #2A4A36);
  font-size: 12px;
  font-weight: 600; }

.product-reviews-section .badge-verified,
.product-reviews-section .badge-pending {
  gap: 5px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none; }

.product-reviews-section .badge-verified {
  padding: 4px 9px;
  border: 1px solid rgba(42, 74, 54, 0.18);
  border-radius: var(--mcb-radius-chip, 999px);
  background: var(--mcb-a-50, #EEF6F1);
  color: var(--mcb-green-main, #2A4A36); }

.product-reviews-section .badge-verified svg {
  width: 12px;
  height: 12px;
  stroke-width: 2.5; }

@media (max-width: 560px) {
  .product-reviews-section .review-card-modern {
    padding: 0 0 24px; }
  .product-reviews-section .review-card-modern + .review-card-modern {
    padding-top: 24px; }
  .product-reviews-section .card-rating-row {
    flex-wrap: wrap; } }

/* Product reviews Figma refinement: compact stars and lighter verification text */
.product-reviews-section .global-stars-visual .stars-static,
.product-reviews-section .review-card-stars .stars-static {
  gap: 1px; }

.product-reviews-section .global-stars-visual .star-icon,
.product-reviews-section .global-stars-visual .star-half-wrapper {
  width: 15px;
  height: 15px; }

.product-reviews-section .review-card-stars .star-icon,
.product-reviews-section .review-card-stars .star-half-wrapper,
.product-reviews-section .card-rating-row .stars-static .star-icon,
.product-reviews-section .card-rating-row .stars-static .star-half-wrapper {
  width: 13px;
  height: 13px; }

.product-reviews-section .badge-verified,
.product-reviews-section .verified-purchase {
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--mcb-green-main, #2A4A36);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.3;
  text-transform: none; }

.product-reviews-section .verified-purchase::before {
  content: "·";
  margin: 0 8px 0 2px;
  color: var(--mcb-text-muted, #7A6A4A);
  font-weight: 400; }

.product-reviews-section .badge-verified svg {
  display: none; }

/* Product reviews refinement: neutral author identity */
.product-reviews-section .author-name {
  color: var(--mcb-text-muted, #7A6A4A);
  font-weight: 500; }

/* Product reviews refinement: compact title line, quieter sort, mobile comment reveal */
.product-reviews-section .feed-sort-form {
  min-width: 142px; }

.product-reviews-section .feed-sort-form .select-wrapper {
  min-height: 34px;
  border-color: var(--mcb-border-default, #E6DFCB);
  background: transparent; }

.product-reviews-section .feed-sort-form select {
  height: 34px;
  padding: 0 30px 0 12px;
  color: var(--mcb-text-muted, #7A6A4A);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 34px; }

.product-reviews-section .feed-sort-form .select-arrow {
  right: 10px;
  width: 14px;
  height: 14px;
  color: var(--mcb-text-muted, #7A6A4A); }

.product-reviews-section .feed-sort-form .select-wrapper:hover,
.product-reviews-section .feed-sort-form .select-wrapper:focus-within {
  border-color: var(--mcb-border-strong, #D4D0C8);
  background: var(--mcb-surface-panel, #FBF9F5); }

.product-reviews-section .card-rating-row {
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap; }

.product-reviews-section .review-card-stars {
  flex: 0 0 auto; }

.product-reviews-section .review-title-text {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--mcb-text-primary, #1C1A17);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.35; }

.product-reviews-section .review-date {
  flex: 0 0 auto;
  color: var(--mcb-text-muted, #7A6A4A);
  font-size: 12px;
  line-height: 1.35; }

.product-reviews-section .review-title-text + .review-date::before {
  content: "·";
  margin: 0 7px 0 0;
  color: var(--mcb-text-muted, #7A6A4A); }

.product-reviews-section .card-body p.is-review-comment-clamped {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; }

.product-reviews-section .card-body p.is-review-comment-expanded {
  display: block;
  overflow: visible;
  -webkit-line-clamp: unset; }

.product-reviews-section .review-read-more-button {
  display: inline-flex;
  align-items: center;
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--mcb-green-main, #2A4A36);
  cursor: pointer;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.3; }

.product-reviews-section .review-read-more-button[hidden] {
  display: none; }

.product-reviews-section .review-read-more-button:hover,
.product-reviews-section .review-read-more-button:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px; }

@media (min-width: 561px) {
  .product-reviews-section .review-read-more-button {
    display: none; } }

@media (max-width: 560px) {
  .product-reviews-section .feed-sort-form {
    min-width: 136px; }
  .product-reviews-section .card-rating-row {
    gap: 6px 8px;
    margin-bottom: 7px; }
  .product-reviews-section .review-title-text {
    font-size: 14px; }
  .product-reviews-section .card-body p,
  .product-reviews-section .review-text {
    margin-top: 6px;
    line-height: 1.55; } }

/* Product reviews bugfix: keep load-more hiding above later scoped card display rules. */
.product-reviews-section .review-card-modern.is-hidden-by-load-more {
  display: none; }

.product-reviews-section .card-rating-row {
  display: grid;
  grid-template-columns: auto minmax(0, auto) auto;
  justify-content: start;
  align-items: center;
  column-gap: 8px;
  row-gap: 4px; }

.product-reviews-section .review-card-stars {
  display: inline-flex;
  align-items: center;
  min-width: max-content; }

.product-reviews-section .review-title-text {
  display: block;
  align-self: center; }

.product-reviews-section .review-date {
  align-self: center;
  margin-left: 0; }

@media (max-width: 560px) {
  .product-reviews-section .card-rating-row {
    grid-template-columns: auto minmax(0, 1fr); }
  .product-reviews-section .review-date {
    grid-column: 2; }
  .product-reviews-section .review-title-text + .review-date::before {
    content: "";
    margin: 0; } }

/* Product reviews layout fix: keep title directly beside stars */
.product-reviews-section .card-rating-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 12px; }

.product-reviews-section .review-rating-title {
  min-width: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 8px; }

.product-reviews-section .review-rating-title .review-card-stars {
  flex: 0 0 auto; }

.product-reviews-section .review-rating-title .review-title-text {
  min-width: 0;
  margin: 0; }

.product-reviews-section .review-date {
  flex: 0 0 auto;
  margin-left: 0; }

.product-reviews-section .review-title-text + .review-date::before {
  content: none;
  margin: 0; }

@media (max-width: 560px) {
  .product-reviews-section .card-rating-row {
    align-items: flex-start; }
  .product-reviews-section .review-rating-title {
    align-items: baseline;
    flex-wrap: wrap;
    gap: 5px 7px; }
  .product-reviews-section .review-date {
    margin-top: 1px; } }

/* Product reviews final layout: title with stars, date with metadata. */
.product-reviews-section .review-card-modern[hidden],
.product-reviews-section .review-card-modern.is-hidden-by-load-more {
  display: none !important; }

.product-reviews-section .card-rating-row {
  display: block;
  margin: 0 0 8px; }

.product-reviews-section .review-rating-title {
  display: inline-flex;
  align-items: baseline;
  max-width: 100%;
  min-width: 0;
  gap: 8px; }

.product-reviews-section .review-rating-title .review-card-stars {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: max-content; }

.product-reviews-section .review-rating-title .review-title-text {
  display: inline;
  min-width: 0;
  margin: 0;
  color: var(--mcb-text-primary, #1C1A17);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.35; }

.product-reviews-section .card-header-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 10px; }

.product-reviews-section .card-header-row .review-date {
  width: auto;
  margin: 0;
  color: var(--mcb-text-muted, #7A6A4A);
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3; }

.product-reviews-section .card-header-row .review-date::before {
  content: "·";
  margin: 0 8px;
  color: var(--mcb-text-muted, #7A6A4A);
  font-weight: 400; }

.product-reviews-section .card-body p.is-review-comment-clamped {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; }

.product-reviews-section .card-body p.is-review-comment-expanded {
  display: block;
  overflow: visible;
  -webkit-line-clamp: unset; }

@media (max-width: 560px) {
  .product-reviews-section .card-rating-row {
    margin-bottom: 7px; }
  .product-reviews-section .review-rating-title {
    gap: 5px 7px;
    flex-wrap: wrap; }
  .product-reviews-section .review-rating-title .review-title-text {
    font-size: 14px;
    line-height: 1.35; }
  .product-reviews-section .card-body p,
  .product-reviews-section .review-text {
    margin-top: 6px;
    line-height: 1.55; }
  .product-reviews-section .review-read-more-button {
    margin-top: 5px; } }

/* Product reviews interaction and sticky polish. */
.product-reviews-section .card-body p.is-review-comment-clamped {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4; }

.product-reviews-section .card-body p.is-review-comment-expanded {
  display: block;
  overflow: visible;
  -webkit-line-clamp: unset; }

.product-reviews-section .review-read-more-button {
  display: inline-flex;
  align-items: center;
  margin-top: 6px; }

.product-reviews-section .review-read-more-button[hidden] {
  display: none !important; }

@media (max-width: 560px) {
  .product-reviews-section .card-body p.is-review-comment-clamped {
    -webkit-line-clamp: 2; }
  .product-reviews-section .review-read-more-button {
    margin-top: 5px; } }

@media (min-width: 992px) {
  .product-reviews-section .reviews-dashboard {
    position: sticky !important;
    top: 164px !important;
    z-index: 1; } }

@media (max-width: 991px) {
  .product-reviews-section .reviews-container {
    gap: 30px; }
  .product-reviews-section .reviews-dashboard {
    position: static !important;
    top: auto !important;
    z-index: auto;
    margin-bottom: 26px; } }

/* Product reviews desktop rhythm inspired by marketplace review layouts. */
@media (min-width: 992px) {
  .product-reviews-section .reviews-container {
    width: calc(100vw - 96px);
    max-width: 1540px;
    grid-template-columns: 320px minmax(0, 840px);
    column-gap: clamp(88px, 6vw, 120px);
    justify-content: start; }
  .product-reviews-section .reviews-feed {
    max-width: 840px;
    min-width: 0; }
  .product-reviews-section .reviews-list-container {
    max-width: 760px; } }

/* Product reviews Figma fidelity pass: thinner gauges, calmer typography, exact spacing. */
.product-reviews-section {
  padding: 56px 0 72px;
  background: transparent;
  box-shadow: none;
  clip-path: none;
  isolation: isolate;
  font-family: var(--mcb-font-body, "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); }

.product-reviews-section::before {
  /* Bande pleine largeur retirée : redondante (même crème que la page) et seule
       responsable d'une marche de couleur disgracieuse au contact de la newsletter. */
  display: none; }

.product-reviews-section .reviews-container {
  max-width: 1240px;
  padding: 0 16px;
  gap: 40px; }

.product-reviews-section .dashboard-title {
  margin: 0 0 12px;
  padding: 0;
  color: #C28A3A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.18em; }

.product-reviews-section .global-rating-wrapper {
  margin: 0;
  padding: 0; }

.product-reviews-section .global-rating-row {
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 8px; }

.product-reviews-section .global-rating-number {
  color: #2A4A36;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 56px;
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.03em; }

.product-reviews-section .global-rating-meta {
  gap: 4px;
  padding-bottom: 4px; }

.product-reviews-section .global-stars-visual,
.product-reviews-section .review-card-stars,
.product-reviews-section .stars-static {
  gap: 0; }

.product-reviews-section .global-stars-visual .star-icon,
.product-reviews-section .global-stars-visual .star-half-wrapper {
  width: 15px;
  height: 15px; }

.product-reviews-section .global-count {
  margin-top: 4px;
  color: #7A6A4A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 12px;
  font-weight: 400; }

.product-reviews-section .rating-breakdown {
  max-width: 384px;
  margin: 0;
  padding: 0; }

.product-reviews-section .breakdown-row {
  min-height: 18px;
  gap: 12px;
  color: #7A6A4A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.45; }

.product-reviews-section .breakdown-row + .breakdown-row {
  margin-top: 6px; }

.product-reviews-section .breakdown-row .star-label {
  min-width: 36px;
  color: #7A6A4A;
  font-weight: 400; }

.product-reviews-section .breakdown-row .breakdown-star-icon {
  width: 10px;
  height: 10px;
  flex-basis: 10px;
  color: #E8C26B; }

.product-reviews-section .breakdown-row .progress-track {
  height: 4px;
  background: #EFE7D2; }

.product-reviews-section .breakdown-row .progress-fill {
  background: #E8C26B; }

.product-reviews-section .breakdown-row .count-label {
  min-width: 32px;
  color: #7A6A4A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 11.5px;
  font-weight: 400; }

.product-reviews-section .trust-badge-box {
  max-width: 384px;
  margin-top: 16px;
  color: #7A6A4A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.6; }

.product-reviews-section .dashboard-action-area {
  padding-top: 18px; }

.product-reviews-section .btn-write-review {
  width: 100%;
  min-height: 38px;
  padding: 0 18px !important;
  border-radius: var(--mcb-radius-chip, 999px) !important;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2; }

.product-reviews-section .reviews-feed-header {
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 28px; }

.product-reviews-section .feed-title {
  margin: 0;
  color: #2A4A36;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.015em; }

.product-reviews-section .feed-sort-form {
  min-width: 132px;
  opacity: 0.76; }

.product-reviews-section .feed-sort-form .select-wrapper {
  min-height: 32px; }

.product-reviews-section .feed-sort-form select {
  height: 32px;
  color: #7A6A4A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 12px;
  font-weight: 500; }

.product-reviews-section .reviews-list-container {
  max-width: 640px;
  gap: 0; }

.product-reviews-section .review-card-modern {
  padding: 0 0 36px; }

.product-reviews-section .review-card-modern + .review-card-modern {
  padding-top: 36px;
  border-top-color: #E6DFCB; }

.product-reviews-section .card-rating-row {
  margin: 0 0 10px; }

.product-reviews-section .review-rating-title {
  align-items: center;
  gap: 12px; }

.product-reviews-section .review-card-stars .star-icon,
.product-reviews-section .review-card-stars .star-half-wrapper {
  width: 13px;
  height: 13px; }

.product-reviews-section .review-rating-title .review-title-text {
  color: #2A4A36;
  font-family: var(--mcb-font-primary, "Manrope", system-ui, sans-serif);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3; }

.product-reviews-section .card-body p,
.product-reviews-section .review-text {
  margin-top: 8px;
  color: #3D3829;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 14.5px;
  line-height: 1.65; }

.product-reviews-section .card-header-row {
  margin-top: 10px;
  color: #7A6A4A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 12px; }

.product-reviews-section .author-name {
  color: #7A6A4A;
  font-size: 12px;
  font-weight: 500; }

.product-reviews-section .verified-purchase {
  color: #2A4A36;
  font-size: 12px;
  font-weight: 600; }

.product-reviews-section .card-header-row .review-date {
  color: #7A6A4A;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 12px;
  font-weight: 400; }

.product-reviews-section .review-read-more-button {
  color: #2A4A36;
  font-family: var(--mcb-font-body, "Inter", system-ui, sans-serif);
  font-size: 12.5px;
  font-weight: 500; }

@media (min-width: 992px) {
  .product-reviews-section {
    padding: 50px 0; }
  .product-reviews-section .reviews-container {
    max-width: 1240px;
    padding: 0 24px;
    grid-template-columns: 320px minmax(0, 1fr);
    column-gap: 64px;
    justify-content: stretch; } }

@media (max-width: 560px) {
  .product-reviews-section .review-card-modern {
    padding-bottom: 28px; }
  .product-reviews-section .review-card-modern + .review-card-modern {
    padding-top: 28px; }
  .product-reviews-section .review-rating-title {
    gap: 6px 8px; }
  .product-reviews-section .review-rating-title .review-title-text {
    font-size: 15px; } }

/* Espace bas géré globalement par la marge haute du footer (#footer margin-top
   dans _footer.scss), pour un espacement homogène quel que soit le dernier bloc
   de la page. Pas de padding-bottom spécifique ici (évite les doubles trous). */
.mcb-ds-preview {
  --pr-font-family-ui: "MontserratED", "Helvetica Neue", Arial, sans-serif;
  --pr-font-weight-medium: 500;
  --pr-font-weight-semibold: 600;
  --pr-font-weight-bold: 700;
  --pr-space-1: 4px;
  --pr-space-2: 8px;
  --pr-space-3: 12px;
  --pr-space-4: 16px;
  --pr-space-5: 20px;
  --pr-space-6: 24px;
  --pr-space-8: 32px;
  --pr-radius-sm: 8px;
  --pr-radius-md: 10px;
  --pr-radius-lg: 12px;
  --pr-radius-pill: 999px;
  --pr-shadow-1: 0 1px 2px rgba(var(--pr-shadow-rgb), 0.05);
  --pr-shadow-2: 0 4px 12px rgba(var(--pr-shadow-rgb), 0.10);
  --pr-shadow-3: 0 8px 20px rgba(var(--pr-shadow-rgb), 0.14);
  --surface-page: var(--pr-color-neutral-25);
  --surface-default: var(--pr-color-neutral-0);
  --surface-subtle: var(--pr-color-neutral-50);
  --surface-muted: var(--pr-color-neutral-75);
  --surface-disabled: var(--pr-color-neutral-50);
  --text-primary: var(--pr-color-neutral-900);
  --text-secondary: var(--pr-color-neutral-700);
  --text-muted: var(--pr-color-neutral-500);
  --text-on-accent: var(--pr-color-neutral-0);
  --text-disabled: var(--pr-color-neutral-500);
  --border-subtle: var(--pr-color-neutral-100);
  --border-default: var(--pr-color-neutral-150);
  --border-strong: var(--pr-color-neutral-200);
  --border-accent: var(--pr-color-accent-200);
  --border-danger: var(--pr-color-danger-500);
  --action-primary-bg: var(--pr-color-accent-500);
  --action-primary-bg-hover: var(--pr-color-accent-600);
  --action-primary-bg-pressed: var(--pr-color-accent-700);
  --action-primary-border: var(--pr-color-accent-500);
  --action-primary-border-hover: var(--pr-color-accent-600);
  --action-primary-border-pressed: var(--pr-color-accent-700);
  --action-primary-text: var(--pr-color-neutral-0);
  --action-secondary-bg: var(--pr-color-neutral-0);
  --action-secondary-bg-hover: var(--pr-color-neutral-50);
  --action-secondary-bg-pressed: var(--pr-color-neutral-100);
  --action-secondary-border: var(--pr-color-neutral-200);
  --action-secondary-border-hover: var(--pr-color-neutral-300);
  --action-secondary-text: var(--pr-color-neutral-900);
  --action-ghost-bg: transparent;
  --action-ghost-bg-hover: var(--pr-color-neutral-50);
  --action-ghost-bg-pressed: var(--pr-color-neutral-100);
  --action-ghost-border: transparent;
  --action-ghost-text: var(--pr-color-neutral-700);
  --action-ghost-text-hover: var(--pr-color-neutral-900);
  --action-danger-bg: var(--pr-color-danger-100);
  --action-danger-bg-hover: var(--pr-color-danger-500);
  --action-danger-bg-pressed: var(--pr-color-danger-600);
  --action-danger-border: var(--pr-color-danger-500);
  --action-danger-text: var(--pr-color-danger-600);
  --action-danger-text-hover: var(--pr-color-neutral-0);
  --focus-ring-offset: var(--pr-color-neutral-0);
  --focus-ring-primary: var(--pr-focus-ring-accent);
  --focus-ring-danger: var(--pr-focus-ring-danger);
  --disabled-bg: var(--pr-color-neutral-100);
  --disabled-border: var(--pr-color-neutral-100);
  --disabled-text: var(--pr-color-neutral-500);
  --btn-font-family: var(--pr-font-family-ui);
  --btn-font-weight: var(--pr-font-weight-semibold);
  --btn-letter-spacing: 0;
  --btn-line-height: 1;
  --btn-border-width: 1px;
  --btn-radius: var(--pr-radius-md);
  --btn-transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
  --btn-height-sm: 36px;
  --btn-height-md: 44px;
  --btn-height-lg: 48px;
  --btn-height-mobile-sticky: 52px;
  --btn-padding-x-sm: 12px;
  --btn-padding-x-md: 16px;
  --btn-padding-x-lg: 20px;
  --btn-font-size-sm: 13px;
  --btn-font-size-md: 14px;
  --btn-font-size-lg: 15px;
  --btn-icon-size-sm: 14px;
  --btn-icon-size-md: 16px;
  --btn-icon-size-lg: 18px;
  --btn-gap-sm: 6px;
  --btn-gap-md: 8px;
  --btn-gap-lg: 8px;
  --btn-spinner-sm: 14px;
  --btn-spinner-md: 16px;
  --btn-spinner-lg: 16px;
  --btn-focus-ring: 0 0 0 2px var(--focus-ring-offset), 0 0 0 5px var(--focus-ring-primary);
  --btn-focus-ring-danger: 0 0 0 2px var(--focus-ring-offset), 0 0 0 5px var(--focus-ring-danger);
  --btn-primary-bg: var(--action-primary-bg);
  --btn-primary-border: var(--action-primary-border);
  --btn-primary-text: var(--action-primary-text);
  --btn-secondary-bg: var(--action-secondary-bg);
  --btn-secondary-border: var(--action-secondary-border);
  --btn-secondary-text: var(--action-secondary-text);
  --btn-ghost-bg: var(--action-ghost-bg);
  --btn-ghost-border: var(--action-ghost-border);
  --btn-ghost-text: var(--action-ghost-text);
  --btn-danger-bg: var(--action-danger-bg);
  --btn-danger-border: var(--action-danger-border);
  --btn-danger-text: var(--action-danger-text);
  background: var(--surface-page);
  color: var(--text-primary);
  padding: 24px 0 56px; }

.mcb-ds-preview--variant-a {
  --pr-color-neutral-0: #ffffff;
  --pr-color-neutral-25: #f4f6f3;
  --pr-color-neutral-50: #ebefeb;
  --pr-color-neutral-75: #e1e7e2;
  --pr-color-neutral-100: #d6ddd7;
  --pr-color-neutral-150: #c7d0c9;
  --pr-color-neutral-200: #b4beb6;
  --pr-color-neutral-300: #909b92;
  --pr-color-neutral-500: #606a62;
  --pr-color-neutral-700: #313a34;
  --pr-color-neutral-900: #171d19;
  --pr-color-accent-50: #edf8f1;
  --pr-color-accent-100: #dbf2e4;
  --pr-color-accent-200: #b8e4c9;
  --pr-color-accent-300: #7bc998;
  --pr-color-accent-500: #1e9158;
  --pr-color-accent-600: #187949;
  --pr-color-accent-700: #11633b;
  --pr-color-success-100: #eaf5ee;
  --pr-color-success-500: #3e7550;
  --pr-color-warning-100: #f4f1e8;
  --pr-color-warning-500: #8d7441;
  --pr-color-danger-100: #f8ecea;
  --pr-color-danger-500: #b64b45;
  --pr-color-danger-600: #963833;
  --pr-shadow-rgb: 18, 26, 22;
  --pr-focus-ring-accent: rgba(30, 145, 88, 0.24);
  --pr-focus-ring-danger: rgba(182, 75, 69, 0.22); }

.mcb-ds-preview--variant-b {
  --pr-color-neutral-0: #ffffff;
  --pr-color-neutral-25: #f8f7f3;
  --pr-color-neutral-50: #f1f1ec;
  --pr-color-neutral-75: #e7e9e3;
  --pr-color-neutral-100: #d8ddd6;
  --pr-color-neutral-150: #d2d8d1;
  --pr-color-neutral-200: #c4cbc3;
  --pr-color-neutral-300: #919890;
  --pr-color-neutral-500: #59615b;
  --pr-color-neutral-700: #222824;
  --pr-color-neutral-900: #181d1a;
  --pr-color-accent-50: #edf8f1;
  --pr-color-accent-100: #dbf0e2;
  --pr-color-accent-200: #c0e1ca;
  --pr-color-accent-300: #84c596;
  --pr-color-accent-500: #238f57;
  --pr-color-accent-600: #1d7949;
  --pr-color-accent-700: #17633c;
  --pr-color-success-100: #e6f7ee;
  --pr-color-success-500: #2f7852;
  --pr-color-warning-100: #f3f0e8;
  --pr-color-warning-500: #8a7451;
  --pr-color-danger-100: #f8ece9;
  --pr-color-danger-500: #b75146;
  --pr-color-danger-600: #983f36;
  --pr-shadow-rgb: 15, 19, 17;
  --pr-focus-ring-accent: rgba(35, 143, 87, 0.22);
  --pr-focus-ring-danger: rgba(183, 81, 70, 0.22); }

.mcb-ds-preview *,
.mcb-ds-preview *::before,
.mcb-ds-preview *::after {
  box-sizing: border-box; }

.mcb-ds-preview__shell {
  width: calc(100% - 32px);
  max-width: 1248px;
  margin: 0 auto;
  display: grid;
  gap: 28px; }

.mcb-ds-preview__toolbar {
  position: sticky;
  top: 12px;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid var(--pr-color-neutral-700);
  background: linear-gradient(135deg, var(--pr-color-neutral-900) 0%, var(--pr-color-neutral-700) 100%);
  box-shadow: var(--pr-shadow-3); }

.mcb-ds-preview__toolbar-copy {
  display: grid;
  gap: 4px; }

.mcb-ds-preview__toolbar-eyebrow {
  color: rgba(255, 255, 255, 0.68);
  font-family: var(--pr-font-family-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.mcb-ds-preview__toolbar-title {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  font-family: var(--pr-font-family-ui);
  font-size: 17px;
  font-weight: 600;
  color: var(--pr-color-neutral-0); }

.mcb-ds-preview__toolbar-separator {
  color: rgba(255, 255, 255, 0.42); }

.mcb-ds-preview__toolbar-summary {
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
  line-height: 1.45;
  max-width: 68ch; }

.mcb-ds-preview__toolbar-actions {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap; }

.mcb-ds-preview__toolbar-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--pr-font-family-ui);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }

.mcb-ds-preview__toolbar-button:hover,
.mcb-ds-preview__toolbar-button:focus-visible {
  outline: none;
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.08);
  color: var(--pr-color-neutral-0); }

.mcb-ds-preview__toolbar-button.is-active {
  background: var(--pr-color-accent-500);
  border-color: var(--pr-color-accent-500);
  color: var(--pr-color-neutral-0);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 8px 18px rgba(var(--pr-shadow-rgb), 0.22); }

.mcb-ds-preview__hero,
.mcb-ds-panel,
.mcb-ds-note,
.mcb-ds-mobile-bar,
.mcb-ds-home-shell,
.mcb-ds-modal-shell,
.mcb-ds-drawer,
.mcb-ds-cart-summary,
.mcb-ds-form-shell,
.mcb-ds-product-card,
.mcb-ds-pdp,
.mcb-ds-checkout {
  background: var(--surface-default);
  border: 1px solid var(--border-default);
  box-shadow: var(--pr-shadow-1); }

.mcb-ds-preview__hero {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
  padding: 28px;
  border-radius: 20px;
  background: linear-gradient(180deg, var(--surface-default) 0%, var(--surface-subtle) 100%); }

.mcb-ds-preview__eyebrow,
.mcb-ds-section__eyebrow,
.mcb-ds-context__eyebrow {
  margin: 0 0 8px;
  font-family: var(--pr-font-family-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pr-color-accent-500); }

.mcb-ds-preview h1,
.mcb-ds-preview h2,
.mcb-ds-preview h3,
.mcb-ds-preview h4,
.mcb-ds-preview p,
.mcb-ds-preview ul {
  margin: 0; }

.mcb-ds-preview h1,
.mcb-ds-preview h2,
.mcb-ds-preview h3,
.mcb-ds-preview h4,
.mcb-ds-preview strong,
.mcb-ds-preview code,
.mcb-btn {
  font-family: var(--pr-font-family-ui); }

.mcb-ds-preview h1 {
  font-size: 44px;
  line-height: 1.02;
  color: var(--text-primary);
  max-width: 13ch; }

.mcb-ds-preview__intro,
.mcb-ds-section__text,
.mcb-ds-subtext,
.mcb-ds-token-meta,
.mcb-ds-preview li,
.mcb-ds-bridge-table {
  color: var(--text-secondary);
  line-height: 1.55; }

.mcb-ds-preview__hero-meta {
  display: grid;
  gap: 12px;
  align-content: start; }

.mcb-ds-note {
  padding: 16px;
  border-radius: var(--pr-radius-lg);
  background: linear-gradient(180deg, var(--surface-default) 0%, var(--surface-subtle) 100%); }

.mcb-ds-note--soft {
  background: var(--surface-subtle); }

.mcb-ds-section {
  display: grid;
  gap: 18px; }

.mcb-ds-section__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px; }

.mcb-ds-section__head h2 {
  font-size: 28px;
  line-height: 1.08; }

.mcb-ds-grid {
  display: grid;
  gap: 18px; }

.mcb-ds-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr)); }

.mcb-ds-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr)); }

.mcb-ds-do-dont,
.mcb-ds-context-grid {
  display: grid;
  gap: 18px; }

.mcb-ds-do-dont {
  grid-template-columns: repeat(2, minmax(0, 1fr)); }

.mcb-ds-context-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)); }

.mcb-ds-panel {
  border-radius: 18px;
  padding: 20px;
  display: grid;
  gap: 16px; }

.mcb-ds-panel--warn {
  background: linear-gradient(180deg, var(--surface-default) 0%, var(--surface-subtle) 100%); }

.mcb-ds-panel--success {
  background: linear-gradient(180deg, var(--surface-default) 0%, var(--pr-color-success-100) 100%); }

.mcb-ds-panel--danger {
  background: linear-gradient(180deg, var(--surface-default) 0%, var(--pr-color-danger-100) 100%); }

.mcb-ds-panel--pdp {
  grid-column: 1 / -1; }

.mcb-ds-list {
  padding-left: 18px;
  display: grid;
  gap: 8px; }

.mcb-ds-token-list {
  display: grid;
  gap: 10px; }

.mcb-ds-token-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  align-items: center; }

.mcb-ds-token-swatch {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42); }

.mcb-ds-token-value {
  color: var(--text-primary);
  font-weight: 600; }

.mcb-ds-stack {
  display: grid;
  gap: 14px; }

.mcb-ds-row,
.mcb-ds-form-actions,
.mcb-ds-home-actions,
.mcb-ds-coupon-row,
.mcb-ds-bridge-row,
.mcb-ds-field-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center; }

.mcb-ds-field-row--stacked {
  flex-direction: column;
  align-items: stretch; }

.mcb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--btn-gap-md);
  min-width: 0;
  font-family: var(--btn-font-family);
  font-weight: var(--btn-font-weight);
  letter-spacing: var(--btn-letter-spacing);
  line-height: var(--btn-line-height);
  border: var(--btn-border-width) solid transparent;
  border-radius: var(--btn-radius);
  cursor: pointer;
  text-decoration: none;
  transition: var(--btn-transition);
  white-space: nowrap;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none; }

.mcb-btn:disabled {
  cursor: not-allowed; }

.mcb-btn--sm {
  min-height: var(--btn-height-sm);
  padding: 0 var(--btn-padding-x-sm);
  font-size: var(--btn-font-size-sm);
  gap: var(--btn-gap-sm); }

.mcb-btn--md {
  min-height: var(--btn-height-md);
  padding: 0 var(--btn-padding-x-md);
  font-size: var(--btn-font-size-md); }

.mcb-btn--lg {
  min-height: var(--btn-height-lg);
  padding: 0 var(--btn-padding-x-lg);
  font-size: var(--btn-font-size-lg); }

.mcb-btn--mobile-sticky {
  min-height: var(--btn-height-mobile-sticky);
  padding: 0 var(--btn-padding-x-lg);
  font-size: var(--btn-font-size-lg); }

.mcb-btn--primary {
  background: var(--btn-primary-bg);
  border-color: var(--btn-primary-border);
  color: var(--btn-primary-text); }

.mcb-btn--primary:hover,
.mcb-btn--primary.is-preview-hover {
  background: var(--action-primary-bg-hover);
  border-color: var(--action-primary-border-hover);
  box-shadow: var(--pr-shadow-2); }

.mcb-btn--primary:active,
.mcb-btn--primary.is-preview-pressed {
  background: var(--action-primary-bg-pressed);
  border-color: var(--action-primary-border-pressed);
  box-shadow: none; }

.mcb-btn--primary:focus-visible,
.mcb-btn--primary.is-preview-focus {
  outline: none;
  box-shadow: var(--btn-focus-ring); }

.mcb-btn--secondary {
  background: var(--btn-secondary-bg);
  border-color: var(--btn-secondary-border);
  color: var(--btn-secondary-text); }

.mcb-btn--secondary:hover,
.mcb-btn--secondary.is-preview-hover {
  background: var(--action-secondary-bg-hover);
  border-color: var(--action-secondary-border-hover);
  color: var(--text-primary); }

.mcb-btn--secondary:active,
.mcb-btn--secondary.is-preview-pressed {
  background: var(--action-secondary-bg-pressed);
  border-color: var(--action-secondary-border-hover); }

.mcb-btn--secondary:focus-visible,
.mcb-btn--secondary.is-preview-focus {
  outline: none;
  box-shadow: var(--btn-focus-ring); }

.mcb-btn--ghost {
  background: var(--btn-ghost-bg);
  border-color: var(--btn-ghost-border);
  color: var(--btn-ghost-text); }

.mcb-btn--ghost:hover,
.mcb-btn--ghost.is-preview-hover {
  background: var(--action-ghost-bg-hover);
  color: var(--action-ghost-text-hover); }

.mcb-btn--ghost:active,
.mcb-btn--ghost.is-preview-pressed {
  background: var(--action-ghost-bg-pressed); }

.mcb-btn--ghost:focus-visible,
.mcb-btn--ghost.is-preview-focus {
  outline: none;
  box-shadow: var(--btn-focus-ring); }

.mcb-btn--destructive {
  background: var(--btn-danger-bg);
  border-color: var(--btn-danger-border);
  color: var(--btn-danger-text); }

.mcb-btn--destructive:hover,
.mcb-btn--destructive.is-preview-hover {
  background: var(--action-danger-bg-hover);
  border-color: var(--action-danger-bg-hover);
  color: var(--action-danger-text-hover); }

.mcb-btn--destructive:active,
.mcb-btn--destructive.is-preview-pressed {
  background: var(--action-danger-bg-pressed);
  border-color: var(--action-danger-bg-pressed);
  color: var(--action-danger-text-hover); }

.mcb-btn--destructive:focus-visible,
.mcb-btn--destructive.is-preview-focus {
  outline: none;
  box-shadow: var(--btn-focus-ring-danger); }

.mcb-btn--icon {
  padding: 0;
  width: var(--btn-height-md);
  min-width: var(--btn-height-md);
  background: var(--surface-default);
  border-color: var(--border-default);
  color: var(--text-secondary); }

.mcb-btn--icon.mcb-btn--sm {
  width: var(--btn-height-sm);
  min-width: var(--btn-height-sm); }

.mcb-btn--icon.mcb-btn--lg,
.mcb-btn--icon.mcb-btn--mobile-sticky {
  width: var(--btn-height-lg);
  min-width: var(--btn-height-lg); }

.mcb-btn--icon:hover,
.mcb-btn--icon.is-preview-hover {
  background: var(--surface-subtle);
  border-color: var(--border-strong);
  color: var(--text-primary); }

.mcb-btn--icon:active,
.mcb-btn--icon.is-preview-pressed {
  background: var(--pr-color-neutral-100); }

.mcb-btn--icon:focus-visible,
.mcb-btn--icon.is-preview-focus {
  outline: none;
  box-shadow: var(--btn-focus-ring); }

.mcb-btn__icon {
  font-size: inherit;
  line-height: 1; }

.mcb-btn__spinner {
  width: var(--btn-spinner-md);
  height: var(--btn-spinner-md);
  border-radius: 50%;
  border: 2px solid currentColor;
  border-top-color: transparent;
  animation: mcbDsSpin 0.72s linear infinite;
  flex: 0 0 auto; }

.mcb-btn--sm .mcb-btn__spinner {
  width: var(--btn-spinner-sm);
  height: var(--btn-spinner-sm); }

.mcb-btn--lg .mcb-btn__spinner,
.mcb-btn--mobile-sticky .mcb-btn__spinner {
  width: var(--btn-spinner-lg);
  height: var(--btn-spinner-lg); }

.mcb-btn.is-loading {
  pointer-events: none; }

.mcb-btn:disabled,
.mcb-btn[disabled] {
  background: var(--disabled-bg) !important;
  border-color: var(--disabled-border) !important;
  color: var(--disabled-text) !important;
  opacity: 1;
  box-shadow: none !important; }

.is-block {
  width: 100%; }

.mcb-ds-mobile-bar {
  padding: 12px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, var(--surface-subtle) 100%); }

.mcb-ds-mobile-bar--context {
  margin-top: 16px; }

.mcb-ds-pdp {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 18px;
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--surface-default) 0%, var(--surface-subtle) 100%); }

.mcb-ds-pdp__media,
.mcb-ds-product-card__media,
.mcb-ds-drawer__thumb {
  border-radius: 16px;
  background: linear-gradient(145deg, var(--pr-color-neutral-100) 0%, var(--pr-color-neutral-50) 100%);
  border: 1px solid var(--border-default); }

.mcb-ds-pdp__media {
  min-height: 240px; }

.mcb-ds-pdp__info,
.mcb-ds-drawer,
.mcb-ds-form-shell,
.mcb-ds-cart-summary,
.mcb-ds-checkout,
.mcb-ds-home-shell {
  display: grid;
  gap: 14px; }

.mcb-ds-price {
  font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--text-primary); }

.mcb-ds-field-shell,
.mcb-ds-stepper-shell {
  min-height: 44px;
  border-radius: var(--pr-radius-md);
  border: 1px solid var(--border-default);
  background: var(--surface-default);
  color: var(--text-secondary); }

.mcb-ds-field-shell {
  display: flex;
  align-items: center;
  padding: 0 14px; }

.mcb-ds-stepper-shell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px; }

.mcb-ds-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px; }

.mcb-ds-product-card {
  padding: 12px;
  border-radius: 16px;
  gap: 10px; }

.mcb-ds-product-card__media {
  min-height: 138px; }

.mcb-ds-product-card__title {
  font-family: var(--pr-font-family-ui);
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary); }

.mcb-ds-product-card__price {
  font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary); }

.mcb-ds-summary-line {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--text-secondary); }

.mcb-ds-summary-line strong {
  color: var(--text-primary); }

.mcb-ds-summary-line--total {
  padding-top: 12px;
  border-top: 1px solid var(--border-default);
  font-weight: 600; }

.mcb-ds-coupon-row .mcb-ds-field-shell {
  flex: 1 1 auto; }

.mcb-ds-drawer__item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center; }

.mcb-ds-drawer__thumb {
  width: 72px;
  height: 72px; }

.mcb-ds-drawer__copy {
  display: grid;
  gap: 4px; }

.mcb-ds-drawer__copy span {
  color: var(--text-muted);
  font-size: 13px; }

.mcb-ds-drawer__actions {
  display: grid;
  gap: 10px; }

.mcb-ds-home-shell {
  gap: 18px; }

.mcb-ds-home-hero {
  display: grid;
  gap: 14px;
  padding: 20px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--pr-color-neutral-900) 0%, var(--pr-color-neutral-700) 100%);
  border: 1px solid rgba(255, 255, 255, 0.06); }

.mcb-ds-home-hero h4 {
  font-size: 28px;
  line-height: 1.08;
  max-width: 18ch;
  color: var(--pr-color-neutral-0); }

.mcb-ds-home-hero .mcb-ds-context__eyebrow {
  color: var(--pr-color-accent-300); }

.mcb-ds-home-hero .mcb-ds-subtext {
  color: rgba(255, 255, 255, 0.76); }

.mcb-ds-home-editorial {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center; }

.mcb-ds-home-chip {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: var(--pr-radius-pill);
  border: 1px solid var(--border-default);
  background: var(--surface-default);
  font-family: var(--pr-font-family-ui);
  font-size: 12px;
  font-weight: 600;
  color: var(--text-secondary); }

.mcb-ds-modal-shell {
  border-radius: 18px;
  padding: 20px;
  background: linear-gradient(180deg, var(--surface-default) 0%, var(--surface-subtle) 100%); }

.mcb-ds-bridge-table {
  display: grid;
  grid-template-columns: 1.1fr 1.5fr 0.8fr;
  gap: 10px 14px; }

.mcb-ds-bridge-table__head {
  font-family: var(--pr-font-family-ui);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted); }

.mcb-ds-bridge-table code,
.mcb-ds-note code {
  padding: 2px 6px;
  border-radius: 8px;
  background: var(--surface-subtle);
  color: var(--text-primary);
  font-size: 12px; }

@keyframes mcbDsSpin {
  to {
    transform: rotate(360deg); } }

@media (max-width: 1100px) {
  .mcb-ds-preview__toolbar {
    flex-direction: column;
    align-items: start; }
  .mcb-ds-preview__hero,
  .mcb-ds-grid--three,
  .mcb-ds-context-grid,
  .mcb-ds-grid--two,
  .mcb-ds-do-dont,
  .mcb-ds-card-grid,
  .mcb-ds-pdp {
    grid-template-columns: 1fr; }
  .mcb-ds-section__head {
    flex-direction: column;
    align-items: start; }
  .mcb-ds-preview h1 {
    font-size: 36px; } }

@media (max-width: 767px) {
  .mcb-ds-preview {
    padding: 18px 0 40px; }
  .mcb-ds-preview__shell {
    width: calc(100% - 20px);
    max-width: none;
    gap: 20px; }
  .mcb-ds-preview__toolbar {
    top: 8px;
    padding: 14px;
    border-radius: 16px; }
  .mcb-ds-preview__toolbar-title {
    font-size: 16px; }
  .mcb-ds-preview__toolbar-actions {
    width: 100%; }
  .mcb-ds-preview__toolbar-button {
    flex: 1 1 0; }
  .mcb-ds-preview__hero,
  .mcb-ds-panel {
    padding: 16px;
    border-radius: 16px; }
  .mcb-ds-preview h1 {
    font-size: 30px;
    max-width: none; }
  .mcb-ds-section__head h2 {
    font-size: 24px; }
  .mcb-ds-home-hero h4 {
    font-size: 24px; }
  .mcb-ds-bridge-table {
    grid-template-columns: 1fr; }
  .mcb-ds-bridge-table__head {
    margin-top: 8px; }
  .mcb-ds-row,
  .mcb-ds-form-actions,
  .mcb-ds-home-actions,
  .mcb-ds-coupon-row,
  .mcb-ds-bridge-row,
  .mcb-ds-field-row {
    flex-direction: column;
    align-items: stretch; }
  .mcb-btn--sm,
  .mcb-btn--md,
  .mcb-btn--lg {
    width: 100%; }
  .mcb-btn--icon,
  .mcb-btn--icon.mcb-btn--sm,
  .mcb-btn--icon.mcb-btn--lg,
  .mcb-btn--icon.mcb-btn--mobile-sticky {
    width: 44px;
    min-width: 44px; }
  .mcb-ds-drawer__item {
    grid-template-columns: 64px minmax(0, 1fr) auto; }
  .mcb-ds-drawer__thumb {
    width: 64px;
    height: 64px; } }

/* --- NEUTRALIZATION OF LEGACY ID --- */
#footer {
  padding: 0 !important;
  margin: 0 !important;
  background: var(--mcb-green-main) !important;
  border: none !important;
  box-shadow: none !important;
  height: auto !important;
  min-height: 0 !important; }

/* --- MAIN FOOTER COMPONENT --- */
/* Strictly matching Figma React Component specs and Tailwind v4 rendering */
#footer.mcb-footer {
  color: var(--mcb-n-50);
  /* text-[#F4ECD8] */
  font-family: var(--mcb-font-inter);
  overflow: hidden;
  margin-top: 0;
  line-height: 1.5;
  /* === 1. NEWSLETTER SECTION === */
  /* === 2. MAIN FOOTER COLUMNS === */
  /* === 3. BOTTOM BAR === */ }
  #footer.mcb-footer a {
    text-decoration: none;
    transition: color 150ms cubic-bezier(0, 0, 0.2, 1);
    /* Tailwind ease-out */ }
    #footer.mcb-footer a:hover {
      color: var(--mcb-gold-main) !important; }
  #footer.mcb-footer input,
  #footer.mcb-footer button,
  #footer.mcb-footer select,
  #footer.mcb-footer textarea {
    font-family: inherit; }
  #footer.mcb-footer .mcb-footer__newsletter-wrapper {
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid color-mix(in oklab, var(--mcb-n-50) 10%, transparent); }
  #footer.mcb-footer .mcb-footer__newsletter-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%; }
    #footer.mcb-footer .mcb-footer__newsletter-bg img {
      position: absolute;
      inset: 0;
      width: 100% !important;
      max-width: none !important;
      height: 100% !important;
      object-fit: cover;
      opacity: 0.2; }
    #footer.mcb-footer .mcb-footer__newsletter-bg .mcb-footer__newsletter-gradient {
      position: absolute;
      inset: 0;
      background: linear-gradient(to right, var(--mcb-green-main), rgba(42, 74, 54, 0.95), rgba(42, 74, 54, 0.7)); }
  #footer.mcb-footer .mcb-footer__newsletter-content {
    position: relative;
    max-width: 1240px;
    /* max-w-[1240px] */
    margin: 0 auto;
    padding: 56px var(--mcb-space-lg);
    /* py-14 px-4 */
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    /* gap-10 */
    align-items: center; }
    @media (min-width: 1024px) {
      #footer.mcb-footer .mcb-footer__newsletter-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 80px var(--mcb-space-lg);
        /* lg:py-20 */ } }
  #footer.mcb-footer .mcb-footer__newsletter-text {
    display: flex;
    flex-direction: column;
    gap: var(--mcb-space-md); }
  #footer.mcb-footer .mcb-footer__newsletter-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--mcb-space-sm);
    color: var(--mcb-gold-main);
    font-size: 12px;
    /* text-[12px] */
    text-transform: uppercase;
    letter-spacing: 0.18em;
    /* tracking-[0.18em] */
    margin: 0; }
  #footer.mcb-footer .mcb-footer__newsletter-title {
    color: var(--mcb-n-50);
    font-family: var(--mcb-font-primary);
    font-size: clamp(26px, 3vw, 38px);
    /* text-[38px] */
    font-weight: 500;
    /* font-medium */
    line-height: 1.15;
    /* leading-[1.1] */
    margin: 0; }
    #footer.mcb-footer .mcb-footer__newsletter-title span {
      font-style: italic;
      color: var(--mcb-gold-main); }
  #footer.mcb-footer .mcb-footer__newsletter-desc {
    color: color-mix(in oklab, var(--mcb-n-50) 80%, transparent);
    /* text-[var(--mcb-n-50)]/80 */
    max-width: 448px;
    /* max-w-md */
    font-size: 14px;
    /* text-[14px] */
    line-height: 1.5;
    margin: 0; }
  #footer.mcb-footer .mcb-footer__newsletter-form {
    display: flex;
    flex-direction: column;
    gap: var(--mcb-space-md); }
  #footer.mcb-footer .mcb-footer__newsletter-input-group {
    display: flex;
    flex-direction: column;
    gap: var(--mcb-space-sm); }
    @media (min-width: 640px) {
      #footer.mcb-footer .mcb-footer__newsletter-input-group {
        flex-direction: row;
        background: color-mix(in oklab, var(--mcb-n-50) 5%, transparent);
        border: 1px solid color-mix(in oklab, var(--mcb-n-50) 15%, transparent);
        border-radius: var(--mcb-radius-chip);
        padding: 6px; } }
    #footer.mcb-footer .mcb-footer__newsletter-input-group input {
      flex: 1;
      background: color-mix(in oklab, var(--mcb-n-50) 5%, transparent);
      border: 1px solid color-mix(in oklab, var(--mcb-n-50) 15%, transparent);
      border-radius: var(--mcb-radius-chip);
      padding: 0 20px;
      /* px-5 */
      height: 48px;
      /* h-11 */
      /* font-size >= 16px : évite le zoom automatique iOS au focus (R17.2 / R5.3). */
      font-size: 16px;
      color: var(--mcb-n-50);
      outline: none;
      /* Zone tactile mobile garantie >= 44px (R5.1) via le pattern partagé. */
      min-width: 44px;
      min-height: 44px; }
      @media (min-width: 640px) {
        #footer.mcb-footer .mcb-footer__newsletter-input-group input {
          background: transparent;
          border: none;
          height: 44px; } }
      #footer.mcb-footer .mcb-footer__newsletter-input-group input::placeholder {
        color: color-mix(in oklab, var(--mcb-n-50) 40%, transparent); }
    #footer.mcb-footer .mcb-footer__newsletter-input-group button {
      height: 48px;
      /* Bouton d'envoi : zone tactile >= 44px garantie (R17.2 / R5.1). */
      min-width: 44px;
      min-height: 44px;
      padding: 0 20px;
      font-size: 15px;
      border-radius: var(--mcb-radius-chip);
      background: var(--mcb-gold-main);
      color: var(--mcb-green-main);
      border: none;
      font-weight: 600;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--mcb-space-sm);
      white-space: nowrap;
      transition: background-color 150ms cubic-bezier(0, 0, 0.2, 1), color 150ms cubic-bezier(0, 0, 0.2, 1); }
      @media (min-width: 640px) {
        #footer.mcb-footer .mcb-footer__newsletter-input-group button {
          height: 44px;
          font-size: 16px; } }
      #footer.mcb-footer .mcb-footer__newsletter-input-group button:hover {
        background: var(--mcb-gold-hover); }
      #footer.mcb-footer .mcb-footer__newsletter-input-group button .button-content {
        display: inline-flex;
        align-items: center;
        gap: var(--mcb-space-sm); }
  #footer.mcb-footer .mcb-footer__newsletter-disclaimer {
    font-size: 12px;
    /* text-[12px] */
    color: color-mix(in oklab, var(--mcb-n-50) 60%, transparent);
    /* text-[var(--mcb-n-50)]/60 */
    margin: 0; }
  #footer.mcb-footer .mcb-footer__newsletter-msg {
    font-size: 13px;
    margin-top: var(--mcb-space-sm);
    display: none; }
    #footer.mcb-footer .mcb-footer__newsletter-msg.success, #footer.mcb-footer .mcb-footer__newsletter-msg.error {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border-radius: var(--mcb-radius-interactive);
      font-weight: 500; }
    #footer.mcb-footer .mcb-footer__newsletter-msg.success::before, #footer.mcb-footer .mcb-footer__newsletter-msg.error::before {
      content: "";
      display: inline-block;
      width: 14px;
      height: 14px;
      background-color: currentColor;
      mask-size: contain;
      mask-repeat: no-repeat;
      mask-position: center;
      -webkit-mask-size: contain;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-position: center;
      flex-shrink: 0; }
    #footer.mcb-footer .mcb-footer__newsletter-msg.success {
      background: color-mix(in srgb, var(--mcb-gold-main) 12%, transparent);
      color: var(--mcb-gold-main);
      border: 1px solid color-mix(in srgb, var(--mcb-gold-main) 20%, transparent); }
      #footer.mcb-footer .mcb-footer__newsletter-msg.success::before {
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); }
    #footer.mcb-footer .mcb-footer__newsletter-msg.error {
      background: color-mix(in srgb, #f8aca6 15%, transparent);
      color: #f8aca6;
      border: 1px solid color-mix(in srgb, #f8aca6 25%, transparent); }
      #footer.mcb-footer .mcb-footer__newsletter-msg.error::before {
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); }
  #footer.mcb-footer .mcb-footer__main {
    max-width: 1240px;
    margin: 0 auto;
    padding: 56px var(--mcb-space-lg);
    /* py-14 px-4 */
    display: grid;
    /* Base mobile-first : 2 colonnes de liens maximum (R17.1). `minmax(0, 1fr)`
           empêche tout libellé long de faire déborder sa colonne. Conservé jusqu'à
           xl (non-régression desktop lg 992–1023 = 2 colonnes), puis 5 en xl. */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--mcb-space-2xl);
    /* gap-8 */
    /* Bornage explicite du comportement mobile étroit (R17.1) via le système
           de breakpoints : jamais plus de 2 colonnes sous sm (640px) et gouttière
           resserrée pour garantir zéro débordement dès 320px. */ }
    @media (max-width: 639px) {
      #footer.mcb-footer .mcb-footer__main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--mcb-space-xl); } }
    @media (min-width: 1024px) {
      #footer.mcb-footer .mcb-footer__main {
        grid-template-columns: repeat(5, minmax(0, 1fr)); } }
  #footer.mcb-footer .mcb-footer__brand-col {
    grid-column: span 2; }
    #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__brand-logo {
      display: flex;
      align-items: center;
      gap: var(--mcb-space-sm);
      margin-bottom: var(--mcb-space-lg);
      /* mb-4 */
      /* .mcb-footer__brand-icon (macaron SVG) retiré du template _footer.html.twig
               (tâche 3.3) : le bloc wordmark ne rend plus que .mcb-footer__brand-name pour
               le canal 'default'. La règle correspondante était du dead code (plus aucun
               élément .mcb-footer__brand-icon dans le DOM) — supprimée (req 2.5, 3.7). */ }
      #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__brand-logo .mcb-footer__brand-name {
        color: var(--mcb-n-50);
        font-family: var(--mcb-font-primary);
        font-size: 22px;
        font-weight: 600; }
        #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__brand-logo .mcb-footer__brand-name span {
          color: var(--mcb-gold-main); }
    #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__brand-desc {
      font-size: 14px;
      /* text-[14px] */
      color: color-mix(in oklab, var(--mcb-n-50) 80%, transparent);
      /* text-[var(--mcb-n-50)]/80 */
      max-width: 384px;
      /* max-w-sm */
      margin-bottom: 20px;
      /* mb-5 */
      line-height: 1.5; }
    #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials {
      display: flex;
      gap: var(--mcb-space-sm);
      /* gap-2 */ }
      #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a {
        width: 40px;
        height: 40px;
        border-radius: var(--mcb-radius-chip);
        background: color-mix(in oklab, var(--mcb-n-50) 8%, transparent);
        /* bg-[var(--mcb-n-50)]/8 */
        color: var(--mcb-n-100);
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background-color 150ms cubic-bezier(0, 0, 0.2, 1), color 150ms cubic-bezier(0, 0, 0.2, 1); }
        #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a:hover {
          background: var(--mcb-gold-main) !important;
          color: var(--mcb-green-main) !important; }
          #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a:hover svg {
            stroke: var(--mcb-green-main) !important; }
          #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a:hover[aria-label="TikTok"] svg,
          #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a:hover[aria-label="YouTube"] svg {
            fill: var(--mcb-green-main) !important;
            stroke: none !important; }
        #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a svg {
          width: 18px;
          height: 18px;
          stroke: currentColor;
          fill: none;
          transition: stroke 150ms cubic-bezier(0, 0, 0.2, 1), fill 150ms cubic-bezier(0, 0, 0.2, 1); }
        #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a[aria-label="TikTok"] svg,
        #footer.mcb-footer .mcb-footer__brand-col .mcb-footer__socials a[aria-label="YouTube"] svg {
          fill: currentColor;
          stroke: none; }
  #footer.mcb-footer .mcb-footer__nav-col h3 {
    color: var(--mcb-n-50);
    margin-bottom: var(--mcb-space-md);
    /* mb-3 */
    font-size: 13px;
    /* text-[13px] */
    text-transform: uppercase;
    letter-spacing: 0.16em;
    /* tracking-[0.16em] */
    font-weight: 500;
    /* font-medium */
    font-family: var(--mcb-font-inter); }
  #footer.mcb-footer .mcb-footer__nav-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--mcb-space-sm);
    /* space-y-2 */ }
    #footer.mcb-footer .mcb-footer__nav-col ul li a {
      font-size: 14px;
      color: var(--mcb-n-100);
      transition: color 150ms cubic-bezier(0, 0, 0.2, 1); }
      #footer.mcb-footer .mcb-footer__nav-col ul li a:hover {
        color: var(--mcb-gold-main) !important; }
  #footer.mcb-footer .mcb-footer__bottom {
    border-top: 1px solid color-mix(in oklab, var(--mcb-n-50) 10%, transparent); }
  #footer.mcb-footer .mcb-footer__bottom-container {
    max-width: 1240px;
    /* max-w-[1240px] */
    margin: 0 auto;
    padding: 20px var(--mcb-space-lg);
    /* py-5 px-4 */
    display: flex;
    flex-direction: column;
    gap: var(--mcb-space-md);
    /* gap-3 */
    font-size: 12px;
    /* text-[12px] */
    color: color-mix(in oklab, var(--mcb-n-50) 60%, transparent);
    /* text-[var(--mcb-n-50)]/60 */ }
    @media (min-width: 640px) {
      #footer.mcb-footer .mcb-footer__bottom-container {
        flex-direction: row;
        align-items: center;
        justify-content: space-between; } }
  #footer.mcb-footer .mcb-footer__secure {
    display: flex;
    align-items: center;
    gap: var(--mcb-space-lg); }
  #footer.mcb-footer .mcb-footer__stripe {
    display: flex;
    align-items: center;
    gap: 6px; }
  #footer.mcb-footer .mcb-footer__pills {
    display: none; }
    @media (min-width: 640px) {
      #footer.mcb-footer .mcb-footer__pills {
        display: flex;
        align-items: center;
        gap: 6px; } }
    #footer.mcb-footer .mcb-footer__pills span {
      background: color-mix(in oklab, var(--mcb-n-50) 8%, transparent);
      /* bg-[#F4ECD8]/8 */
      padding: 2px 8px;
      /* py-0.5 px-2 */
      border-radius: 6px;
      /* rounded-md */
      font-size: 11px;
      /* text-[11px] */
      /* color removed to inherit from bottom-container */ }

/* === NEWSLETTER SLIDE-IN POPUP (site-wide) === */
.mcb-nl-popup {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1200;
  width: 380px;
  max-width: calc(100vw - 32px);
  background: var(--mcb-n-0, #fff);
  border: 1px solid var(--mcb-n-100, #ECE3D2);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.45);
  font-family: var(--mcb-font-primary);
  /* Même langage de mouvement que les méga-menus : trajet court (24px),
       durée brève, easing maison. Slide-in net plutôt que long vol flottant. */
  transform: translateY(24px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), visibility 0s linear 0.3s; }

.mcb-nl-popup.is-open {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), visibility 0s linear 0s; }

.mcb-nl-popup__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  color: #444;
  cursor: pointer;
  z-index: 3;
  transition: background-color 150ms ease; }

.mcb-nl-popup__close:hover {
  background: var(--mcb-green-main, #2A4A36);
  color: #fff; }

.mcb-nl-popup__media {
  height: 120px;
  position: relative;
  background: linear-gradient(135deg, #caa56f, #8a5a33); }

.mcb-nl-popup__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; }

.mcb-nl-popup__body {
  padding: 22px 24px 22px; }

.mcb-nl-popup__eyebrow {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: var(--mcb-fw-bold, 700);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mcb-gold-ink, #8C5E16); }

.mcb-nl-popup__title {
  margin: 0 0 8px;
  font-size: 21px;
  line-height: 1.18;
  font-weight: var(--mcb-fw-bold, 800);
  letter-spacing: -0.01em;
  color: var(--mcb-green-main, #2A4A36); }

.mcb-nl-popup__text {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--mcb-n-600, #5B6357); }

.mcb-nl-popup__form {
  display: flex;
  gap: 8px; }

.mcb-nl-popup__form input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--mcb-n-100, #ECE3D2);
  border-radius: 999px;
  padding: 12px 16px;
  font-family: inherit;
  /* 16px : évite le zoom automatique iOS au focus (input hors .ui.form,
       donc non couvert par la règle globale anti-zoom). */
  font-size: 16px;
  outline: none;
  transition: border-color 150ms ease; }

.mcb-nl-popup__form input:focus {
  border-color: var(--mcb-green-main, #2A4A36); }

.mcb-nl-popup__form button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  padding: 12px 18px;
  background: var(--mcb-green-main, #2A4A36);
  color: #fff;
  font-family: inherit;
  font-weight: var(--mcb-fw-bold, 700);
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 150ms ease; }

.mcb-nl-popup__form button:hover {
  background: var(--mcb-green-dark, #1F3828); }

.mcb-nl-popup__form button:disabled {
  opacity: 0.6;
  cursor: default; }

.mcb-nl-popup__msg {
  margin: 10px 0 0;
  font-size: 13px;
  min-height: 0; }

.mcb-nl-popup__msg.error {
  color: #b3261e; }

.mcb-nl-popup__msg.success {
  color: var(--mcb-green-main, #2A4A36);
  font-weight: var(--mcb-fw-semi, 600); }

.mcb-nl-popup__fine {
  margin: 12px 0 0;
  font-size: 11.5px;
  color: #9a927f; }

@media (max-width: 520px) {
  .mcb-nl-popup {
    right: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    max-width: 100%;
    border-radius: 18px 18px 0 0; }
  .mcb-nl-popup__media {
    height: 96px; } }

@media (prefers-reduced-motion: reduce) {
  .mcb-nl-popup {
    transition: opacity 0.2s ease, visibility 0s linear 0.2s;
    transform: none; }
  .mcb-nl-popup.is-open {
    transition: opacity 0.2s ease; } }

/* === BANDEAU COOKIE (RGPD) ===
   Porté depuis l'ancien custom.css compilé pour survivre aux builds gulp.
   z-index supérieur au popup newsletter (1200) : il reste toujours cliquable. */
#cookie-consent-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1300;
  background-color: #ffffff;
  padding: 1.5rem 2rem;
  box-shadow: 0 -5px 25px rgba(0, 0, 0, 0.1);
  border-top: 1px solid #e9ecef;
  align-content: center; }
  #cookie-consent-banner .banner-inner-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    max-width: 1100px;
    margin: 0 auto; }
  #cookie-consent-banner .cookie-banner-title {
    margin: 0 0 0.5rem 0;
    font-size: 1.2em;
    font-family: var(--mcb-font-primary, "Manrope", sans-serif);
    color: #2b2b2b; }
  #cookie-consent-banner .cookie-content p {
    margin: 0;
    font-size: 0.9em;
    color: #555;
    line-height: 1.6; }
    #cookie-consent-banner .cookie-content p a {
      font-weight: 600;
      text-decoration: underline;
      color: #2A4A36; }
  #cookie-consent-banner .cookie-actions {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-shrink: 0; }
    #cookie-consent-banner .cookie-actions .ui.button.primary {
      font-size: 1em !important;
      padding: 0.9em 2em !important;
      border-radius: 8px !important;
      font-weight: 600; }
    #cookie-consent-banner .cookie-actions a#cookie-decline-all {
      font-size: 0.9em;
      color: #555;
      font-weight: 600;
      background: none;
      border: none;
      cursor: pointer;
      white-space: nowrap; }
      #cookie-consent-banner .cookie-actions a#cookie-decline-all:hover {
        color: #2A4A36; }
  @media only screen and (max-width: 767px) {
    #cookie-consent-banner {
      padding: 1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom, 0px)); }
      #cookie-consent-banner .banner-inner-content {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        gap: 1.25rem; }
      #cookie-consent-banner .cookie-actions {
        flex-direction: column-reverse;
        gap: 1rem;
        width: 100%; }
        #cookie-consent-banner .cookie-actions .ui.button.primary {
          width: 100%; } }

/* Espace garanti avant le footer sur toutes les pages (best practice : une seule
   source d'espacement, plutôt qu'un padding-bottom par section). Évite que le
   dernier bloc (accords sans avis, avis, etc.) ne colle / déborde sur le footer.
   Spécificité #footer.mcb-footer + !important pour battre le `margin:0 !important`
   de neutralisation. */
#footer.mcb-footer {
  margin-top: clamp(56px, 6vw, 88px) !important; }

/* Ancre #newsletter (lien « −20% » de la topbar) : décalage anti-header collant.
   Sur mobile, au moment du saut, le header collant est en état
   `is-scrolled is-search-hidden` et mesure ~61px (rangée logo + bordure, le
   topbar a défilé). Sans ce décalage, le haut du titre newsletter est masqué.
   Desktop géré par ailleurs → override mobile uniquement. */
@media screen and (max-width: 991px) {
  #newsletter {
    scroll-margin-top: 84px; } }

.mcb-contact-shell.ui.grid {
  margin: 0 auto 72px !important;
  padding-top: 0 !important; }

.mcb-contact-shell.ui.grid > .mcb-contact-column.column {
  width: 100% !important;
  max-width: 660px; }

.mcb-contact-heading {
  margin-bottom: 20px;
  text-align: center; }

.mcb-contact-title.ui.header {
  margin: 0 !important;
  color: var(--mcb-text-primary);
  font-family: "MontserratED", sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.14; }

.mcb-contact-lead {
  max-width: 540px;
  margin: 10px auto 0;
  color: var(--mcb-text-secondary);
  font-family: "MontserratED", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55; }

.mcb-contact-panel.ui.segment {
  margin: 0 !important;
  padding: 24px !important;
  border: 1px solid var(--mcb-border-default) !important;
  border-radius: 16px !important;
  background: var(--mcb-surface-panel) !important;
  box-shadow: var(--mcb-shadow-rest) !important; }

.mcb-contact-panel .mcb-contact-form.ui.form .field {
  margin-bottom: 16px;
  text-align: left; }

.mcb-contact-panel .mcb-contact-form.ui.form .field > label {
  margin-bottom: 7px;
  color: var(--mcb-text-primary);
  font-family: "MontserratED", sans-serif;
  font-size: 13px;
  font-weight: 700; }

.mcb-contact-panel .mcb-contact-form.ui.form input[type="email"],
.mcb-contact-panel .mcb-contact-form.ui.form textarea {
  width: 100%;
  border: 1px solid var(--mcb-input-border) !important;
  border-radius: 12px !important;
  background: var(--mcb-input-bg) !important;
  color: var(--mcb-input-text) !important;
  font-family: "MontserratED", sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; }

.mcb-contact-panel .mcb-contact-form.ui.form input[type="email"] {
  min-height: 46px;
  padding: 0 14px !important; }

.mcb-contact-panel .mcb-contact-form.ui.form textarea {
  min-height: 170px;
  padding: 13px 14px !important;
  resize: vertical; }

.mcb-contact-panel .mcb-contact-form.ui.form input[type="email"]:focus,
.mcb-contact-panel .mcb-contact-form.ui.form textarea:focus {
  border-color: var(--mcb-green-main) !important;
  background: var(--mcb-input-bg-focus) !important;
  box-shadow: 0 0 0 4px var(--mcb-focus-ring) !important; }

.mcb-contact-panel .mcb-contact-form__submit.ui.primary.button {
  min-height: 46px;
  margin-top: 4px !important;
  border-radius: var(--mcb-radius-interactive) !important;
  background: var(--mcb-btn-primary-bg) !important;
  color: var(--mcb-btn-primary-text) !important;
  font-family: "MontserratED", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: none !important; }

.mcb-contact-panel .mcb-contact-form__submit.ui.primary.button:hover,
.mcb-contact-panel .mcb-contact-form__submit.ui.primary.button:focus-visible {
  background: var(--mcb-btn-primary-bg-hover) !important; }

@media only screen and (max-width: 767px) {
  .mcb-contact-shell.ui.grid {
    margin: 0 auto 48px !important;
    padding-top: 0 !important; }
  .mcb-contact-title.ui.header {
    font-size: 26px; }
  .mcb-contact-panel.ui.segment {
    padding: 20px 16px !important; } }

/* =============================================================================
   Page FAQ (/faq) - rendue par App\Controller\FaqController + Faq/index.html.twig
   Accordeon natif <details>/<summary>, charte MonComteBon.
   ============================================================================= */
.faq {
  --faq-vert: #2A4A36;
  --faq-dore: #C28A3A;
  --faq-dore-encre: #8C5E16;
  --faq-creme: #FBF7EF;
  --faq-bord: #E6DFCB;
  --faq-carte: #FFFEFA;
  --faq-ink: #23271F;
  --faq-muted: #6B7066;
  max-width: 760px;
  margin: 0 auto;
  padding: 48px 20px 72px;
  color: var(--faq-ink);
  line-height: 1.6; }
  .faq__head {
    text-align: center;
    margin-bottom: 40px; }
  .faq__eyebrow {
    font-family: "Manrope", sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--faq-dore-encre);
    margin: 0 0 10px; }
  .faq__title {
    font-family: "Manrope", sans-serif;
    font-size: 32px;
    font-weight: 800;
    color: var(--faq-vert);
    margin: 0 0 10px; }
  .faq__intro {
    font-size: 15px;
    color: var(--faq-muted);
    max-width: 520px;
    margin: 0 auto; }
  .faq__section {
    margin-bottom: 34px; }
  .faq__section-title {
    font-family: "Manrope", sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--faq-dore-encre);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--faq-bord); }
  .faq__item {
    background: var(--faq-carte);
    border: 1px solid var(--faq-bord);
    border-radius: 12px;
    margin-bottom: 10px;
    overflow: hidden; }
    .faq__item[open] {
      border-color: rgba(194, 138, 58, 0.45); }
  .faq__q {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px 18px;
    font-family: "Manrope", sans-serif;
    font-size: 15.5px;
    font-weight: 600;
    color: var(--faq-vert); }
    .faq__q::-webkit-details-marker {
      display: none; }
  .faq__chev {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    color: var(--faq-dore);
    transition: transform .25s ease; }
  .faq__item[open] .faq__chev {
    transform: rotate(45deg); }
  .faq__a {
    padding: 0 18px 18px;
    font-size: 14.5px;
    color: var(--faq-muted); }
    .faq__a p {
      margin: 0 0 10px; }
      .faq__a p:last-child {
        margin-bottom: 0; }
    .faq__a a {
      color: var(--faq-dore-encre);
      font-weight: 600;
      text-decoration: none; }
      .faq__a a:hover {
        text-decoration: underline; }
  .faq__zone {
    margin: 0 0 14px;
    padding: 0 0 12px;
    border-bottom: 1px dashed var(--faq-bord); }
    .faq__zone:last-child {
      border-bottom: none;
      padding-bottom: 0;
      margin-bottom: 0; }
    .faq__zone ul {
      margin: 6px 0 0;
      padding-left: 18px; }
    .faq__zone li {
      margin-bottom: 2px; }
      .faq__zone li b {
        color: var(--faq-ink);
        font-weight: 600; }
  .faq__zone-name {
    display: block;
    font-family: "Manrope", sans-serif;
    font-weight: 700;
    color: var(--faq-vert);
    font-size: 14px;
    margin-bottom: 4px; }
    .faq__zone-name small {
      display: block;
      font-family: "Inter", sans-serif;
      font-weight: 400;
      color: var(--faq-muted);
      font-size: 12.5px;
      margin-top: 2px; }
  .faq__cities {
    font-size: 13px;
    color: var(--faq-muted);
    margin: 4px 0 0; }
  .faq__contact {
    margin-top: 44px;
    text-align: center;
    background: var(--faq-creme);
    border: 1px solid var(--faq-bord);
    border-radius: 14px;
    padding: 26px 22px; }
    .faq__contact h2 {
      font-family: "Manrope", sans-serif;
      font-size: 18px;
      color: var(--faq-vert);
      margin: 0 0 6px; }
    .faq__contact p {
      font-size: 14px;
      color: var(--faq-muted);
      margin: 0 0 16px; }
  .faq__contact-btn {
    display: inline-block;
    background: var(--faq-vert);
    color: #F4ECD8;
    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    padding: 12px 26px;
    border-radius: 999px; }
    .faq__contact-btn:hover {
      color: #F4ECD8;
      opacity: .92; }

.ui.card.product-card.product-card-v2 {
  --mcb-card-surface: var(--mcb-n-0);
  --mcb-card-surface-alt: var(--mcb-n-25);
  --mcb-card-surface-media: var(--mcb-n-50);
  --mcb-card-border: var(--mcb-n-100);
  --mcb-card-divider: var(--mcb-n-100);
  --mcb-card-text: var(--mcb-text-primary);
  --mcb-card-text-soft: var(--mcb-text-secondary);
  --mcb-card-accent: var(--mcb-a-500);
  --mcb-card-accent-strong: var(--mcb-a-700);
  --mcb-card-accent-soft: var(--mcb-a-50);
  --mcb-card-accent-border: var(--mcb-a-200);
  --mcb-card-badge: var(--mcb-a-600);
  --mcb-card-badge-border: var(--mcb-a-700);
  --mcb-card-chip-border: var(--mcb-n-150);
  --mcb-card-price-size: 21px; }

.product-card-v2,
.ui.card.product-card.product-card-v2 {
  /* Ratio carré unifié : la valeur est désormais appliquée via le mixin
       partagé mcb-ratio(1/1) sur .product-card__media. Le token reste exposé
       (square) pour toute surcharge contextuelle cohérente. */
  --product-card-media-ratio: 1 / 1;
  --product-card-radius: 16px;
  --product-card-body-gap: 8px;
  --product-card-body-padding: 16px;
  --product-card-title-size: 15px;
  --product-card-title-lines: 2;
  --product-card-title-line-height: 1.28;
  --product-card-price-size: 21px;
  --product-card-button-radius: 12px;
  --product-card-button-height: 36px;
  --product-card-button-min-width: 92px;
  position: relative;
  width: 100% !important;
  min-height: 0;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #E6DFCB;
  border-radius: var(--product-card-radius) !important;
  background: #FFFEFA;
  box-shadow: none;
  transition: border-color 240ms ease, box-shadow 240ms ease; }

.product-card-v2:hover,
.product-card-v2:focus-within,
.ui.card.product-card.product-card-v2:hover,
.ui.card.product-card.product-card-v2:focus-within {
  border-color: #E6DFCB;
  box-shadow: 0 16px 40px -12px rgba(31, 58, 45, 0.2); }

.product-card-v2 .product-card__media,
.ui.card.product-card.product-card-v2 .product-card__media {
  position: relative;
  display: block;
  height: auto;
  overflow: hidden;
  /* Ratio CARRÉ unifié (Rendu_Fluide_Media) : structure homogène de carte
       sur toutes les densités (home / listing / liés), conforme à la maquette
       ProductCard (aspect-square). R2.4, R6.2, R18.1. */
  aspect-ratio: 1;
  width: 100%;
  object-fit: cover;
  background: #EFE7D2; }

.product-card-v2 .product-card__media .ui.dimmer,
.ui.card.product-card.product-card-v2 .product-card__media .ui.dimmer {
  display: none !important; }

.product-card-v2 .product-card__image,
.product-card-v2 .product-card__media .productImg,
.ui.card.product-card.product-card-v2 .product-card__media .productImg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0 !important;
  transform: translateZ(0);
  transform-origin: center center;
  backface-visibility: hidden;
  will-change: transform;
  transition: transform 400ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }

.product-card-v2:hover .product-card__media .productImg,
.ui.card.product-card.product-card-v2:hover .product-card__media .productImg {
  transform: scale(1.05) translateZ(0); }

.product-card-v2:hover .product-card__media .productImg.productImg--fallback,
.ui.card.product-card.product-card-v2:hover .product-card__media .productImg.productImg--fallback {
  transform: none; }

.product-card-v2 .product-card__media .productImg.productImg--fallback,
.ui.card.product-card.product-card-v2 .product-card__media .productImg.productImg--fallback {
  object-fit: contain;
  padding: 24px;
  opacity: 0.58;
  filter: grayscale(0.2) saturate(0.72); }

.product-card-v2 .product-card__badge,
.ui.card.product-card.product-card-v2 .product-ribbon.ui.right.ribbon.label {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  right: auto !important;
  z-index: 3;
  float: none !important;
  margin: 0 !important;
  padding: 5px 10px !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-family: var(--mcb-font-primary);
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0;
  text-transform: none !important;
  transform: none !important;
  -webkit-transform: none !important;
  pointer-events: none;
  /* Anti-débordement : le badge superposé reste borné à la largeur de la
       carte (moins les marges g/d de 12px), libellé long tronqué (R18.2). */
  max-width: calc(100% - 24px);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis; }

.product-card-v2 .product-card__badge[hidden],
.ui.card.product-card.product-card-v2 .product-ribbon.ui.right.ribbon.label[hidden] {
  display: none !important; }

.product-card-v2 .product-card__badge::before,
.product-card-v2 .product-card__badge::after,
.ui.card.product-card.product-card-v2 .product-ribbon.ui.right.ribbon.label::before,
.ui.card.product-card.product-card-v2 .product-ribbon.ui.right.ribbon.label::after {
  display: none !important; }

.product-card-v2 .product-card__badge.express_delivery,
.ui.card.product-card.product-card-v2 .product-ribbon.ui.ribbon.label.express_delivery {
  background: #2A4A36 !important;
  border-color: #2A4A36 !important;
  color: #F4ECD8 !important; }

.product-card-v2 .product-card__badge.soon_available,
.ui.card.product-card.product-card-v2 .product-ribbon.ui.ribbon.label.soon_available {
  background: #C28A3A !important;
  border-color: #C28A3A !important;
  color: #FFFEFA !important; }

.product-card-v2 .content.product-card__body,
.ui.card.product-card.product-card-v2 .content.product-card__body {
  flex: 1 1 auto;
  /* min-width:0 : autorise le rétrécissement du corps sous la largeur de son
       contenu (libellés longs) → aucune poussée de la colonne de grille (R2.5,
       R18.2, R19). */
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--product-card-body-gap);
  padding: var(--product-card-body-padding) !important;
  border: 0 !important; }

.product-card-v2 .product-card__title,
.ui.card.product-card.product-card-v2 .productNameBox {
  min-height: 0;
  min-width: 0;
  margin: 0;
  padding: 0;
  line-height: var(--product-card-title-line-height); }

.product-card-v2 .product-card__title-link,
.ui.card.product-card.product-card-v2 .sylius-product-name {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: var(--product-card-title-lines);
  -webkit-box-orient: vertical;
  color: #2A4A36 !important;
  font-family: var(--mcb-font-primary);
  font-size: var(--product-card-title-size);
  font-weight: 600;
  line-height: var(--product-card-title-line-height);
  letter-spacing: 0;
  text-decoration: none;
  word-break: break-word;
  hyphens: auto; }

.product-card-v2 .product-card__title-link:hover,
.product-card-v2 .product-card__title-link:focus-visible,
.ui.card.product-card.product-card-v2 .sylius-product-name:hover,
.ui.card.product-card.product-card-v2 .sylius-product-name:focus-visible {
  color: #2A4A36 !important;
  text-decoration: none; }

.product-card-v2 .product-card__form,
.ui.card.product-card.product-card-v2 .productVariantForm {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: var(--product-card-body-gap);
  margin: 0; }

.product-card-v2 .product-card__variant-detail,
.ui.card.product-card.product-card-v2 .productVariantDetailBox {
  display: block;
  min-height: 14px;
  overflow: hidden;
  color: #7C7058;
  font-family: var(--mcb-font-inter);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis; }

.product-card-v2 .product-card__variant-detail:empty,
.ui.card.product-card.product-card-v2 .productVariantDetailBox:empty {
  display: none; }

.product-card-v2 .product-card__rating,
.ui.card.product-card.product-card-v2 .product-card-rating {
  min-height: 16px;
  margin: 0;
  display: flex;
  align-items: center; }

/* Aucun avis : la ligne de note reste dans le DOM (vide) pour réserver la
   hauteur → anatomie de carte constante, prix/CTA alignés entre cartes. */
.product-card-v2 .product-card__rating-link,
.ui.card.product-card.product-card-v2 .product-card-rating__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #9A8A6A !important;
  text-decoration: none; }

.product-card-v2 .product-card__rating-stars,
.ui.card.product-card.product-card-v2 .rating-stars {
  width: auto;
  height: 14px; }

.product-card-v2 .rating-stars--figma,
.ui.card.product-card.product-card-v2 .rating-stars--figma {
  display: inline-flex;
  align-items: center;
  gap: 2px; }

.product-card-v2 .rating-stars__item,
.ui.card.product-card.product-card-v2 .rating-stars__item {
  position: relative;
  display: inline-block;
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  color: #E6DFCB; }

.product-card-v2 .rating-stars__icon,
.ui.card.product-card.product-card-v2 .rating-stars__icon {
  display: block;
  width: 14px;
  height: 14px; }

.product-card-v2 .rating-stars__icon-fill,
.ui.card.product-card.product-card-v2 .rating-stars__icon-fill {
  position: absolute;
  inset: 0 auto 0 0;
  display: block;
  height: 14px;
  overflow: hidden;
  color: #C28A3A; }

.product-card-v2 .product-card__rating-value,
.ui.card.product-card.product-card-v2 .product-card-rating__value {
  color: #2A4A36;
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  font-weight: 500;
  line-height: 1; }

.product-card-v2 .product-card__rating-count,
.ui.card.product-card.product-card-v2 .product-card-rating__count {
  color: #9A8A6A;
  font-family: var(--mcb-font-inter);
  font-size: 12px;
  line-height: 1; }

.product-card-v2 .product-card__rating-stars-base,
.product-card-v2 .rating-stars__base,
.ui.card.product-card.product-card-v2 .rating-stars__base {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d4d0c8' d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E"); }

.product-card-v2 .product-card__rating-stars-fill,
.product-card-v2 .rating-stars__fill,
.ui.card.product-card.product-card-v2 .rating-stars__fill {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23C28A3A' d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E"); }

.product-card-v2 .product-card__variant-list,
.ui.card.product-card.product-card-v2 .productVariantNamesBox {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 26px;
  margin: 0;
  overflow: hidden; }

.product-card-v2 .product-card__variant-chip,
.product-card-v2 .product-card__variant-more,
.ui.card.product-card.product-card-v2 .productVariantIdChoice,
.ui.card.product-card.product-card-v2 .productVariantMoreCount {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 4px 10px !important;
  border: 1px solid #E6DFCB !important;
  border-radius: 999px !important;
  background: #FBF7EF !important;
  color: #5C5340 !important;
  box-shadow: none !important;
  font-family: var(--mcb-font-inter);
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease; }

.product-card-v2 .product-card__variant-chip:hover,
.product-card-v2 .product-card__variant-more:hover,
.ui.card.product-card.product-card-v2 .productVariantIdChoice:hover,
.ui.card.product-card.product-card-v2 .productVariantMoreCount:hover {
  border-color: rgba(42, 74, 54, 0.5) !important; }

.product-card-v2 .product-card__variant-chip.blue,
.ui.card.product-card.product-card-v2 .productVariantIdChoice.blue {
  border-color: #2A4A36 !important;
  background: #2A4A36 !important;
  color: #F4ECD8 !important; }

.product-card-v2 .product-card__variant-chip.disabled,
.ui.card.product-card.product-card-v2 .productVariantIdChoice.disabled {
  opacity: 0.42;
  cursor: not-allowed; }

.product-card-v2 .product-card__variant-chip.is-hidden,
.product-card-v2 .product-card__variant-more.is-hidden,
.ui.card.product-card.product-card-v2 .productVariantIdChoice.is-hidden,
.ui.card.product-card.product-card-v2 .productVariantMoreCount.is-hidden {
  display: none !important; }

.product-card-v2 .product-card__variant-more,
.ui.card.product-card.product-card-v2 .productVariantMoreCount {
  color: #9A8A6A !important;
  cursor: pointer !important;
  pointer-events: auto; }

.product-card-v2 .product-card__divider,
.product-card-v2 .ui.section.divider,
.ui.card.product-card.product-card-v2 .ui.section.divider {
  display: none !important; }

.product-card-v2 .product-card__actions,
.ui.card.product-card.product-card-v2 .priceAndAddBox {
  margin-top: auto !important;
  padding-top: 8px;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 12px !important; }

.product-card-v2 .product-card__prices,
.ui.card.product-card.product-card-v2 .productPricesBox {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px; }

.product-card-v2 .product-card__price-main,
.ui.card.product-card.product-card-v2 .productMainPriceBox.product-price {
  height: auto;
  margin: 0;
  color: #2A4A36;
  font-family: var(--mcb-font-primary);
  font-size: var(--product-card-price-size);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-variant-numeric: lining-nums tabular-nums; }

.product-card-v2 .product-card__price-spec,
.ui.card.product-card.product-card-v2 .product-spec-price,
.ui.card.product-card.product-card-v2 .sylius-product-price.product-spec-price {
  display: block !important;
  height: auto;
  margin: 0;
  color: #9A8A6A;
  font-family: var(--mcb-font-inter);
  font-size: 10px;
  font-weight: 400;
  line-height: 1.2; }

.product-card-v2 .product-card__button.ui.button,
.ui.card.product-card.product-card-v2 .productCardButton.ui.button {
  width: auto;
  min-width: var(--product-card-button-min-width);
  min-height: var(--product-card-button-height);
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0 !important;
  padding: 0 14px !important;
  /* Style OUTLINE (secondaire) : le PRIX redevient l'élément fort de la carte.
       Repos = fond transparent, bordure + texte verts (cohérent
       .mcb-button--secondary du design system). Cible tactile via
       --product-card-button-height (>= 44px en mobile). */
  border: 1px solid var(--mcb-green-main) !important;
  border-radius: var(--product-card-button-radius) !important;
  background: var(--mcb-btn-secondary-bg) !important;
  color: var(--mcb-btn-secondary-text) !important;
  box-shadow: none !important;
  font-family: var(--mcb-font-primary) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transform: none !important;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease; }

/* Hover (desktop) + active (tap mobile) : remplissage vert, texte crème. */
.product-card-v2 .product-card__button.ui.button:hover,
.product-card-v2 .product-card__button.ui.button:active,
.ui.card.product-card.product-card-v2 .productCardButton.ui.button:hover,
.ui.card.product-card.product-card-v2 .productCardButton.ui.button:active {
  border-color: var(--mcb-green-hover) !important;
  background: var(--mcb-green-hover) !important;
  color: var(--mcb-n-50) !important;
  box-shadow: none !important;
  transform: none !important; }

.product-card-v2 .product-card__button.ui.button:focus-visible,
.ui.card.product-card.product-card-v2 .productCardButton.ui.button:focus-visible,
.product-card-v2 .product-card__media:focus-visible,
.product-card-v2 .product-card__title-link:focus-visible {
  outline: 2px solid rgba(42, 74, 54, 0.35);
  outline-offset: 2px; }

.product-card-v2 .product-card__button.disabled,
.product-card-v2 .product-card__button[disabled],
.ui.card.product-card.product-card-v2 .productCardButton.disabled,
.ui.card.product-card.product-card-v2 .productCardButton[disabled] {
  opacity: 1 !important;
  border-color: var(--mcb-btn-disabled-border) !important;
  background: var(--mcb-btn-disabled-bg) !important;
  color: var(--mcb-btn-disabled-text) !important;
  box-shadow: none !important;
  pointer-events: none !important; }

.product-card-v2 .product-card__button-label,
.ui.card.product-card.product-card-v2 .productCardButtonLabel {
  display: inline-block;
  white-space: nowrap; }

.product-card-v2 .product-card__button-icon,
.ui.card.product-card.product-card-v2 .productCardButtonIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1; }

.product-card-v2 .product-card__button-spinner,
.ui.card.product-card.product-card-v2 .productCardButtonSpinner {
  display: none;
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  border: 2px solid rgba(244, 236, 216, 0.32);
  border-top-color: #F4ECD8;
  border-radius: 50%;
  animation: mcb-product-card-spinner 0.68s linear infinite !important;
  transform-origin: 50% 50%;
  will-change: transform; }

.product-card-v2 .product-card__button.is-loading,
.product-card-v2 .product-card__button.is-success,
.product-card-v2 .product-card__button.is-loading[disabled],
.product-card-v2 .product-card__button.is-success[disabled],
.product-card-v2 .product-card__button.ui.button.is-loading[disabled],
.product-card-v2 .product-card__button.ui.button.is-success[disabled],
.ui.card.product-card.product-card-v2 .productCardButton.is-loading,
.ui.card.product-card.product-card-v2 .productCardButton.is-success,
.ui.card.product-card.product-card-v2 .productCardButton.is-loading[disabled],
.ui.card.product-card.product-card-v2 .productCardButton.is-success[disabled],
.ui.card.product-card.product-card-v2 .productCardButton.ui.button.is-loading[disabled],
.ui.card.product-card.product-card-v2 .productCardButton.ui.button.is-success[disabled] {
  border-color: #2A4A36 !important;
  background: #2A4A36 !important;
  color: #F4ECD8 !important;
  opacity: 1 !important;
  filter: none !important;
  cursor: wait !important; }

.product-card-v2 .product-card__button.is-loading .product-card__button-spinner,
.product-card-v2 .product-card__button-spinner.active,
.ui.card.product-card.product-card-v2 .productCardButtonSpinner.active,
.ui.card.product-card.product-card-v2 .productCardButton.is-loading .productCardButtonSpinner {
  display: inline-block; }

.product-card-v2 .product-card__button.is-loading .product-card__button-icon,
.product-card-v2 .product-card__button.is-success .product-card__button-icon,
.ui.card.product-card.product-card-v2 .productCardButton.is-loading .productCardButtonIcon,
.ui.card.product-card.product-card-v2 .productCardButton.is-success .productCardButtonIcon {
  display: none !important; }

@media (max-width: 767px) {
  .product-card-v2,
  .ui.card.product-card.product-card-v2 {
    --product-card-body-padding: 14px;
    --product-card-button-min-width: 0;
    /* Cible tactile ≥ 44px sur le bouton d'ajout en mobile. */
    --product-card-button-height: 44px; }
  .product-card-v2 .product-card__variant-chip,
  .product-card-v2 .product-card__variant-more,
  .ui.card.product-card.product-card-v2 .productVariantIdChoice,
  .ui.card.product-card.product-card-v2 .productVariantMoreCount {
    min-height: 40px;
    padding: 8px 14px !important; }
  /* Lisibilité mobile : remonter les plus petits textes de la carte (badge,
       prix secondaire) à 11px. Scopé mobile → desktop inchangé. */
  .product-card-v2 .product-card__badge,
  .ui.card.product-card.product-card-v2 .product-ribbon.ui.right.ribbon.label {
    font-size: 11px !important; }
  .product-card-v2 .product-card__price-spec,
  .ui.card.product-card.product-card-v2 .product-spec-price,
  .ui.card.product-card.product-card-v2 .sylius-product-price.product-spec-price {
    font-size: 11px; }
  .product-card-v2 .product-card__actions,
  .ui.card.product-card.product-card-v2 .priceAndAddBox {
    flex-direction: column;
    align-items: stretch !important;
    gap: 10px !important; }
  /* Mobile : bouton pleine largeur de la carte. Le STYLE reste OUTLINE au
       repos (hérité de la règle de base retokenisée) pour une carte cohérente
       partout ; le remplissage vert n'intervient qu'au tap (:hover/:active) et
       sur les états de feedback (.is-loading/.is-success, cf. règles de base). */
  .product-card-v2 .product-card__button.ui.button,
  .ui.card.product-card.product-card-v2 .productCardButton.ui.button {
    width: 100%; } }

/* ================================================================
   MOBILE / TABLETTE (< lg) — Masquage du SÉLECTEUR DE VARIANTE
   ----------------------------------------------------------------
   Les pastilles de variante (« entier / 1/2 », etc.) rendues dans
   .product-card__variant-list (alias legacy .productVariantNamesBox)
   sont REDONDANTES sous lg : le bouton « Ajouter » ouvre désormais le
   Drawer_Bas de choix de format (mcb-variant-picker.js) sur multi-variant.
   La maquette ProductCard ne montre pas de sélecteur de variante sur la
   carte. On masque donc uniquement ce bloc de chips, sur la classe de
   carte v2 GÉNÉRIQUE → couvre home rail, catalogue et produits liés.

   NON masqués (préservés) : la note/rating (étoiles + nombre d'avis), le
   titre, le prix, le poids (.product-card__variant-detail / shortDetail
   « ~1,75 kg »), et le bouton Ajouter. Desktop (>= lg) inchangé (R8).
   ================================================================ */
@media (max-width: 991px) {
  .product-card-v2 .product-card__variant-list,
  .ui.card.product-card.product-card-v2 .productVariantNamesBox {
    display: none !important; } }

@keyframes mcb-product-card-spinner {
  to {
    transform: rotate(360deg); } }

/* ================================================================
   LABELS / MÉDAILLES sur la photo de carte (overlay haut-gauche)
   ================================================================ */
.product-card-v2 .product-card__labels {
  position: absolute;
  top: 10px;
  right: 10px;
  left: auto;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  pointer-events: none;
  /* Anti-débordement : la pile de médailles/labels reste bornée à la carte
       (R18.2). */
  max-width: calc(100% - 20px); }

.product-card-v2 .product-card__label--medal {
  display: block;
  width: auto;
  height: 56px;
  max-width: 56px;
  object-fit: contain;
  filter: drop-shadow(0 1px 3px rgba(31, 42, 34, 0.28)); }

.product-card-v2 .product-card__label--logo {
  display: block;
  width: auto;
  height: 48px;
  max-width: 60px;
  object-fit: contain;
  filter: drop-shadow(0 1px 3px rgba(31, 42, 34, 0.22)); }

/* Macaron CSS (fallback) — version carte, autonome */
.product-card-v2 .product-medal {
  box-sizing: border-box;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.65);
  color: #FFFFFF;
  text-align: center;
  line-height: 1.04;
  box-shadow: 0 1px 4px rgba(31, 42, 34, 0.25);
  font-family: var(--mcb-font-heading, "Manrope", sans-serif); }

.product-card-v2 .product-medal__short {
  font-size: 9px;
  font-weight: 700; }

.product-card-v2 .product-medal__year {
  font-size: 8px;
  font-weight: 600;
  opacity: 0.92; }

.product-card-v2 .product-medal--gold {
  background: radial-gradient(circle at 32% 28%, #E8C969, #C9A227); }

.product-card-v2 .product-medal--silver {
  background: radial-gradient(circle at 32% 28%, #DEDEDE, #AFAFAF);
  color: #36454F;
  border-color: rgba(255, 255, 255, 0.8); }

.product-card-v2 .product-medal--bronze {
  background: radial-gradient(circle at 32% 28%, #DA9E6B, #B87333); }

.product-card-v2 .product-medal--score,
.product-card-v2 .product-medal--star,
.product-card-v2 .product-medal--mention {
  background: radial-gradient(circle at 32% 28%, #34553F, #2A4A36); }

/* State styles live in _product-card-v2.base.scss so the component cascade stays predictable. */
.product-card-v2.product-card--home,
.ui.card.product-card.product-card-v2.product-card--home {
  --product-card-media-ratio: 1 / 1;
  --product-card-title-size: 15px;
  --product-card-title-lines: 2;
  --product-card-title-line-height: 1.28;
  --product-card-price-size: 20px;
  --product-card-button-radius: 999px;
  height: 100%; }

@media (max-width: 767px) {
  .product-card-v2.product-card--home,
  .ui.card.product-card.product-card-v2.product-card--home {
    min-height: 0; } }

.product-list-cards .product-card-v2.product-card--listing,
.product-list-cards .ui.card.product-card.product-card-v2.product-card--listing {
  --product-card-media-ratio: 1 / 1;
  --product-card-title-size: 15px;
  --product-card-title-lines: 2;
  --product-card-price-size: 21px;
  --product-card-button-radius: 12px; }

@media (max-width: 767px) {
  .product-list-cards .product-card-v2.product-card--listing,
  .product-list-cards .ui.card.product-card.product-card-v2.product-card--listing {
    --product-card-title-size: 15px;
    --product-card-price-size: 20px; } }

@media (max-width: 991px) {
  .mcb-variant-drawer {
    padding: 0;
    color: var(--mcb-text-primary);
    font-family: var(--mcb-font-body); }
  .mcb-variant-drawer.mcb-drawer--bottom.is-open {
    overflow: visible; }
  .mcb-variant-drawer__close {
    position: absolute;
    top: calc(-1 * var(--mcb-space-3xl));
    left: 50%;
    z-index: 3;
    transform: translate(-50%, -50%);
    border-radius: 999px;
    background: var(--mcb-n-0, #fff);
    color: var(--mcb-text-primary);
    font-size: 1.5rem;
    line-height: 1;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); }
  .mcb-variant-drawer__head {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--mcb-space-lg);
    padding: var(--mcb-space-2xl) var(--mcb-space-xl) var(--mcb-space-lg);
    min-width: 0; }
  .mcb-variant-drawer__thumb {
    flex: 0 0 auto;
    display: block;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border-radius: var(--mcb-radius-structural);
    background: var(--mcb-surface-panel-strong); }
  .mcb-variant-drawer__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; }
  .mcb-variant-drawer__thumb img[hidden] {
    display: none; }
  .mcb-variant-drawer__name {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--mcb-text-accent);
    font-family: var(--mcb-font-heading);
    font-size: 1.15rem;
    font-weight: var(--mcb-fw-bold);
    line-height: 1.2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    word-break: break-word; }
  .mcb-variant-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: var(--mcb-space-md) var(--mcb-space-xl) var(--mcb-space-xl); }
  .mcb-variant-drawer__section-label {
    margin: var(--mcb-space-lg) 0 var(--mcb-space-md);
    color: var(--mcb-text-secondary);
    font-family: var(--mcb-font-body);
    font-size: 0.95rem;
    font-weight: var(--mcb-fw-semi); }
  .mcb-variant-drawer__formats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--mcb-space-md); }
  .mcb-variant-drawer__format {
    display: flex;
    align-items: center;
    gap: var(--mcb-space-sm);
    width: 100%;
    min-height: 64px;
    padding: var(--mcb-space-md);
    border: 1px solid var(--mcb-border-default);
    border-radius: var(--mcb-radius-structural);
    background: var(--mcb-surface-panel);
    color: var(--mcb-text-primary);
    font-family: var(--mcb-font-body);
    font-size: 0.95rem;
    text-align: left;
    cursor: pointer;
    transition: border-color var(--mcb-transition-base), background-color var(--mcb-transition-base); }
  .mcb-variant-drawer__format-copy {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px; }
  .mcb-variant-drawer__format.is-selected {
    border-color: var(--mcb-green-main);
    background: var(--mcb-green-soft); }
  .mcb-variant-drawer__format.is-disabled {
    opacity: 0.45;
    cursor: not-allowed; }
  .mcb-variant-drawer__format-radio {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 1px solid var(--mcb-border-strong);
    border-radius: var(--mcb-radius-chip);
    background: var(--mcb-surface-panel);
    transition: border-color var(--mcb-transition-base), background-color var(--mcb-transition-base); }
  .mcb-variant-drawer__format.is-selected .mcb-variant-drawer__format-radio {
    border-color: var(--mcb-green-main);
    background: var(--mcb-green-main); }
  .mcb-variant-drawer__format.is-selected .mcb-variant-drawer__format-radio::after {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: var(--mcb-radius-chip);
    background: var(--mcb-text-on-accent); }
  .mcb-variant-drawer__format-label {
    min-width: 0;
    font-weight: var(--mcb-fw-semi);
    line-height: 1.2;
    word-break: break-word; }
  .mcb-variant-drawer__format-price {
    color: var(--mcb-text-accent);
    font-family: var(--mcb-font-price);
    font-size: 0.85rem;
    font-weight: var(--mcb-fw-bold);
    font-variant-numeric: lining-nums tabular-nums; }
  .mcb-variant-drawer__footer {
    align-items: center;
    border-top: 0;
    padding: var(--mcb-space-2xl) var(--mcb-space-xl);
    padding-bottom: max(var(--mcb-space-3xl), env(safe-area-inset-bottom)); }
  .mcb-variant-drawer__add {
    flex: 1 1 auto;
    min-height: 52px; }
  .mcb-variant-drawer__add.is-loading {
    cursor: wait; }
  .mcb-variant-drawer__add-spinner {
    display: none;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    border: 2px solid rgba(244, 236, 216, 0.35);
    border-top-color: var(--mcb-text-on-accent);
    border-radius: var(--mcb-radius-chip);
    animation: mcb-variant-picker-spin 0.68s linear infinite; }
  .mcb-variant-drawer__add.is-loading .mcb-variant-drawer__add-spinner {
    display: inline-block; } }

@media (min-width: 992px) {
  .mcb-variant-drawer,
  .mcb-variant-drawer__backdrop {
    display: none; } }

@keyframes mcb-variant-picker-spin {
  to {
    transform: rotate(360deg); } }
