/* =========================================================================
   MOBILART — refonte (child theme Flatsome)
   Chargé après le CSS de Flatsome. Tout est scopé sur .mobilart / .ma-*.
   Design tokens : cf. handoff §8. Desktop maquetté à 1440px, responsive §7.
   ========================================================================= */

:root {
  /* Couleurs */
  --ma-violet:        #5B58A6;
  --ma-violet-dark:   #403D78;
  --ma-violet-wash:   rgba(91,88,166,.07);
  --ma-ink:           #16150F;
  --ma-ink-2:         #1F1E16;
  --ma-text:          #332F26;
  --ma-text-2:        #4A463C;
  --ma-muted:         #6B665A;
  --ma-muted-dark:    #8E897A;
  --ma-muted-dark-2:  #9C978A;
  --ma-cream:         #F4F0E6;
  --ma-paper:         #FFFDF8;
  --ma-placeholder:   #EDE7D9;
  --ma-border:        rgba(22,21,15,.12);
  --ma-border-strong: rgba(22,21,15,.20);
  --ma-border-light:  rgba(22,21,15,.09);
  --ma-border-dark:   rgba(244,240,230,.18);

  /* Typo */
  --ma-display: 'Bricolage Grotesque', sans-serif;
  --ma-text-font: 'Instrument Sans', system-ui, sans-serif;

  /* Rayons */
  --ma-radius-btn: 2px;
  --ma-radius-pill: 99px;

  /* Ombres */
  --ma-shadow-float: 0 24px 60px rgba(22,21,15,.22);

  /* Layout */
  --ma-maxw: 1360px;
  --ma-pad: 40px;
  --ma-header-h: 74px;
  --ma-sticky-top: 104px;
}

/* -------------------------------------------------------------------------
   Base / reset scoping
   ------------------------------------------------------------------------- */
body.mobilart {
  font-family: var(--ma-text-font);
  color: var(--ma-ink);
  background: var(--ma-cream);
  -webkit-font-smoothing: antialiased;
}
body.mobilart .ma-main { max-width: none; margin: 0; padding: 0; }
body.mobilart #wrapper { background: var(--ma-cream); }

/* Neutralise les conteneurs Flatsome à l'intérieur de nos sections full-width */
body.mobilart .ma-section > .ma-container,
body.mobilart .ma-container {
  max-width: var(--ma-maxw);
  margin: 0 auto;
  padding-left: var(--ma-pad);
  padding-right: var(--ma-pad);
  width: 100%;
}

.mobilart *, .mobilart *::before, .mobilart *::after { box-sizing: border-box; }
.mobilart .ma-display { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; }
.mobilart img { max-width: 100%; }
.mobilart a { color: var(--ma-violet); text-decoration: none; }
.mobilart ::selection { background: var(--ma-violet); color: var(--ma-paper); }

/* Pages de texte (Contact, CGV…) : conteneur centré lisible */
.ma-page-narrow { max-width: 920px; padding-top: 48px; padding-bottom: 72px; }
.ma-page-narrow p { font-size: 17px; line-height: 1.7; color: var(--ma-text-2); }
.ma-page-narrow h2 { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 30px; letter-spacing: -.03em; margin: 36px 0 12px; }

/* Utilitaires images en cover */
.ma-cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ma-media { position: relative; overflow: hidden; background: var(--ma-placeholder); }

/* Boutons de base */
.ma-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-size: 14.5px; font-weight: 600; cursor: pointer; border: 0; border-radius: var(--ma-radius-btn);
  padding: 15px 26px; transition: background .15s ease, color .15s ease, border-color .15s ease; text-align: center; }
.ma-btn--dark { background: var(--ma-ink); color: var(--ma-paper); }
.ma-btn--dark:hover { background: var(--ma-violet); color: var(--ma-paper); }
.ma-btn--violet { background: var(--ma-violet); color: var(--ma-paper); }
.ma-btn--violet:hover { background: var(--ma-violet-dark); color: var(--ma-paper); }
.ma-btn--outline { background: transparent; border: 1px solid var(--ma-border-strong); color: var(--ma-ink); }
.ma-btn--outline:hover { border-color: var(--ma-ink); color: var(--ma-ink); }
.ma-btn--light { background: var(--ma-paper); color: var(--ma-ink); }
.ma-btn--light:hover { background: var(--ma-ink); color: var(--ma-paper); }

/* Boutons/CTA en <a> : leur couleur de texte doit primer sur .mobilart a (violet). */
.mobilart .ma-devis-btn, .mobilart .ma-devis-btn:hover { color: var(--ma-paper); }
.mobilart .ma-btn--dark, .mobilart .ma-btn--violet { color: var(--ma-paper); }
.mobilart .ma-btn--dark:hover, .mobilart .ma-btn--violet:hover { color: var(--ma-paper); }
.mobilart .ma-btn--light { color: var(--ma-ink); }
.mobilart .ma-btn--light:hover { color: var(--ma-paper); }
.mobilart .ma-btn--outline { color: var(--ma-ink); }

.ma-eyebrow { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--ma-violet); font-weight: 600; }

/* =========================================================================
   HEADER
   ========================================================================= */
.ma-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(244,240,230,.92);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--ma-border);
}
.ma-header__inner { display: flex; align-items: center; gap: 32px; height: var(--ma-header-h); }

.ma-logo { flex-shrink: 0; display: inline-flex; }
.ma-logo__block {
  background: var(--ma-violet); color: var(--ma-paper);
  padding: 9px 11px; display: flex; flex-direction: column; line-height: 1.02;
  font-weight: 700; font-size: 15px; letter-spacing: .01em;
}
.ma-logo__img { display: block; max-height: 46px; width: auto; }

.ma-nav { flex: 1; }
.ma-nav__list { display: flex; align-items: center; gap: 22px; list-style: none; margin: 0; padding: 0; flex-wrap: nowrap; }
.ma-nav__list li { margin: 0; }
.ma-nav__list a {
  font-size: 13px; font-weight: 500; letter-spacing: .03em; text-transform: uppercase;
  color: var(--ma-ink); white-space: nowrap; padding-bottom: 2px;
  border-bottom: 2px solid transparent; transition: border-color .15s ease;
}
.ma-nav__list a:hover, .ma-nav__list .current-menu-item > a { border-bottom-color: var(--ma-violet); color: var(--ma-ink); }

.ma-header__right { display: flex; align-items: center; gap: 14px; }
.ma-header__phone { font-size: 13.5px; color: var(--ma-muted); white-space: nowrap; }
.ma-header__phone:hover { color: var(--ma-ink); }

.ma-devis-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--ma-ink); color: var(--ma-paper);
  padding: 11px 18px; border-radius: var(--ma-radius-btn);
  font-size: 13.5px; font-weight: 600; white-space: nowrap; transition: background .15s ease;
}
.ma-devis-btn:hover { background: var(--ma-violet); color: var(--ma-paper); }
.ma-devis-btn__count {
  background: var(--ma-violet); color: var(--ma-paper);
  min-width: 20px; height: 20px; border-radius: var(--ma-radius-pill);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11.5px; font-weight: 700; padding: 0 6px;
}
.ma-devis-btn:hover .ma-devis-btn__count { background: var(--ma-ink); }

/* Burger + drawer (mobile) */
.ma-burger { display: none; flex-direction: column; gap: 4px; background: none; border: 0; cursor: pointer; padding: 8px; }
.ma-burger span { width: 22px; height: 2px; background: var(--ma-ink); display: block; transition: transform .2s ease, opacity .2s ease; }
.ma-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.ma-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ma-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.ma-drawer { display: none; }
.ma-drawer__nav .ma-nav__list { flex-direction: column; align-items: flex-start; gap: 4px; }
.ma-drawer__nav a { display: block; padding: 14px 0; font-size: 15px; border-bottom: 1px solid var(--ma-border); width: 100%; }
.ma-drawer__phone { display: block; padding: 16px 0; font-size: 15px; color: var(--ma-muted); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.ma-footer { background: var(--ma-ink); color: var(--ma-muted-dark); padding: 60px 0 34px; border-top: 1px solid rgba(244,240,230,.1); }
.ma-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 44px; }
.ma-logo--footer .ma-logo__block { font-size: 18px; padding: 11px 13px; margin-bottom: 18px; }
.ma-footer__baseline { font-size: 14px; line-height: 1.65; max-width: 34ch; color: var(--ma-muted-dark); margin: 0; }
.ma-footer__title { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ma-cream); margin-bottom: 14px; }
.ma-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.ma-footer__links a { font-size: 14px; color: var(--ma-muted-dark); }
.ma-footer__links a:hover { color: var(--ma-paper); }
.ma-footer__bar { border-top: 1px solid rgba(244,240,230,.1); padding-top: 22px; display: flex; justify-content: space-between; font-size: 13px; gap: 20px; flex-wrap: wrap; }
.ma-footer__bar a { color: var(--ma-muted-dark); }
.ma-footer__bar a:hover { color: var(--ma-paper); }

/* =========================================================================
   TYPO — titres
   ========================================================================= */
.ma-h1 { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; letter-spacing: -.04em; margin: 0; }
.ma-h2 { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; letter-spacing: -.035em; margin: 0; }
.ma-page-title { font-size: 54px; line-height: 1; letter-spacing: -.04em; }

/* =========================================================================
   ACCUEIL — hero
   ========================================================================= */
.ma-hero { position: relative; height: 640px; overflow: hidden; background: var(--ma-ink); }
.ma-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .62; }
.ma-hero__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,21,15,.55) 0%, rgba(22,21,15,.25) 45%, rgba(22,21,15,.85) 100%); }
.ma-hero__inner { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 56px; }
.ma-hero__eyebrow { color: var(--ma-cream); font-size: 12.5px; letter-spacing: .18em; text-transform: uppercase; opacity: .8; margin-bottom: 20px; }
.ma-hero__title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 78px; line-height: .94; letter-spacing: -.04em; color: var(--ma-paper); margin: 0; max-width: 15ch; text-wrap: balance; }
.ma-hero__sub { color: var(--ma-cream); font-size: 19px; line-height: 1.5; max-width: 52ch; margin: 22px 0 0; opacity: .85; text-wrap: pretty; }

/* Barre de disponibilité */
.ma-availbar-wrap { background: var(--ma-paper); border-bottom: 1px solid var(--ma-border); }
.ma-availbar {
  margin-top: 20px; background: var(--ma-ink); padding: 20px;
  display: grid; grid-template-columns: 1.1fr 1.1fr 1.3fr auto; gap: 1px; align-items: stretch;
  box-shadow: var(--ma-shadow-float);
}
.ma-availbar__field { background: var(--ma-ink-2); padding: 14px 18px; display: flex; flex-direction: column; gap: 5px; }
.ma-availbar__label { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #F4F0E6; opacity: .95; }
/* Priorité forte : Flatsome force un fond blanc/bordure sur input[type=date|text]. */
.mobilart .ma-availbar__field input,
.mobilart .ma-availbar__field select {
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  color: var(--ma-paper) !important;
  font-size: 16px; font-weight: 500;
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  -webkit-appearance: none; appearance: none;
  width: 100%;
}
.mobilart .ma-availbar__field input[type="date"] { color-scheme: dark; }
.mobilart .ma-availbar__field input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1); opacity: .75; cursor: pointer;
}
.mobilart .ma-availbar__field select option { color: #16150F; } /* liste déroulante native lisible */
.mobilart .ma-availbar__field select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'><path d='M1 1l4.5 4.5L10 1' fill='none' stroke='%23F4F0E6' stroke-width='1.6'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 2px center !important;
  padding-right: 18px !important;
  cursor: pointer;
}
.ma-availbar__submit { background: var(--ma-violet); color: var(--ma-paper); border: 0; padding: 0 38px; font-size: 15px; font-weight: 600; cursor: pointer; letter-spacing: .01em; transition: background .15s ease; }
.ma-availbar__submit:hover { background: var(--ma-violet-dark); }

/* Bandeau chiffres */
.ma-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 44px 0 40px; }
.ma-fact { padding: 0 34px 0 0; border-right: 1px solid var(--ma-border); }
.ma-fact:last-child { border-right: 0; }
.ma-fact__n { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 36px; line-height: 1; letter-spacing: -.035em; margin-bottom: 8px; }
.ma-fact__t { font-size: 14px; color: var(--ma-muted); line-height: 1.45; text-wrap: pretty; }

/* Sections génériques */
.ma-section { background: var(--ma-paper); }
.ma-section--cream { background: var(--ma-cream); }
.ma-section--ink { background: var(--ma-ink); color: var(--ma-cream); }
.ma-section-pad { padding: 76px 0 90px; }
.ma-section-pad--ink { padding: 86px 0; }
.ma-section-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 38px; gap: 24px; }
.ma-section-head .ma-h2 { font-size: 46px; }
.ma-link-arrow { font-size: 14px; font-weight: 600; color: var(--ma-violet); border-bottom: 1px solid currentColor; padding-bottom: 2px; white-space: nowrap; }

/* Assortiment (grille catégories) */
.ma-cats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.ma-cat { position: relative; overflow: hidden; background: var(--ma-placeholder); aspect-ratio: 4/5; display: block; }
.ma-cat img { transition: transform .5s ease; }
.ma-cat:hover { outline: 2px solid var(--ma-violet); outline-offset: -2px; }
.ma-cat:hover img { transform: scale(1.04); }
.ma-cat__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,21,15,0) 40%, rgba(22,21,15,.82) 100%); }
.ma-cat__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px; }
.ma-cat__name { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 23px; color: var(--ma-paper); line-height: 1.12; letter-spacing: -.03em; }
.ma-cat__meta { font-size: 12.5px; color: var(--ma-cream); opacity: .75; margin-top: 4px; }

/* Packs événement (bande sombre) */
.ma-occasions-head .ma-h2 { font-size: 46px; color: var(--ma-paper); margin-bottom: 12px; }
.ma-occasions-intro { font-size: 17px; color: var(--ma-muted-dark-2); margin: 0 0 40px; max-width: 54ch; line-height: 1.55; text-wrap: pretty; }
.ma-occasions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ma-occasion { border: 1px solid var(--ma-border-dark); padding: 28px 24px 24px; cursor: pointer; display: flex; flex-direction: column; gap: 12px; min-height: 230px; transition: background .15s ease, border-color .15s ease; }
.ma-occasion:hover { background: var(--ma-ink-2); border-color: var(--ma-violet); }
.ma-occasion__name { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 27px; color: var(--ma-paper); line-height: 1.06; letter-spacing: -.03em; }
.ma-occasion__desc { font-size: 14px; color: var(--ma-muted-dark-2); line-height: 1.55; flex: 1; text-wrap: pretty; }
.ma-occasion__cta { font-size: 13px; color: var(--ma-violet); font-weight: 600; letter-spacing: .02em; }

/* Bloc service (2 colonnes) */
.ma-split { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.ma-split__media { position: relative; aspect-ratio: 5/4; background: var(--ma-placeholder); }
.ma-split .ma-h2 { font-size: 44px; margin: 16px 0 26px; line-height: 1.04; }
.ma-split p { font-size: 17px; line-height: 1.65; color: var(--ma-text-2); margin: 0 0 22px; text-wrap: pretty; }
.ma-split__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* =========================================================================
   ENTREPRISE
   ========================================================================= */
.ma-hero-violet { background: var(--ma-violet); color: var(--ma-paper); }
.ma-hero-violet__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; min-height: 540px; }
.ma-hero-violet__text { padding: 86px 0; }
.ma-hero-violet .ma-eyebrow { color: var(--ma-paper); opacity: .72; font-weight: 400; }
.ma-hero-violet h1 { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 54px; line-height: 1.02; letter-spacing: -.04em; margin: 18px 0 26px; color: var(--ma-paper); }
.ma-hero-violet p { font-size: 18px; line-height: 1.68; margin: 0; opacity: .94; max-width: 52ch; text-wrap: pretty; }
.ma-hero-violet__media { position: relative; align-self: stretch; overflow: hidden; min-height: 320px; }
.ma-underline { border-bottom: 1px solid rgba(255,253,248,.5); }

.ma-offer { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: start; }
.ma-offer__intro .ma-h2 { font-size: 42px; line-height: 1.05; }
.ma-offer__intro p { font-size: 16px; color: var(--ma-muted); line-height: 1.6; margin-top: 16px; text-wrap: pretty; }
.ma-promises { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ma-border); border: 1px solid var(--ma-border); }
.ma-promise { background: var(--ma-paper); padding: 26px 24px; min-height: 150px; display: flex; flex-direction: column; gap: 10px; }
.ma-promise__n { font-size: 12px; font-weight: 700; color: var(--ma-violet); letter-spacing: .06em; }
.ma-promise__t { font-size: 19px; font-weight: 600; line-height: 1.25; letter-spacing: -.015em; }
.ma-promise__d { font-size: 14px; color: var(--ma-muted); line-height: 1.5; text-wrap: pretty; }

.ma-partners .ma-h2 { font-size: 42px; margin-bottom: 14px; }
.ma-partners__intro { font-size: 17px; color: var(--ma-text-2); max-width: 70ch; line-height: 1.6; margin: 0 0 36px; text-wrap: pretty; }
.ma-partners__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ma-partner { background: var(--ma-paper); border: 1px solid var(--ma-border); padding: 24px; display: flex; flex-direction: column; gap: 8px; min-height: 132px; }
.ma-partner__n { font-size: 18px; font-weight: 600; letter-spacing: -.02em; }
.ma-partner__d { font-size: 13.5px; color: var(--ma-muted); line-height: 1.5; }

/* =========================================================================
   GALERIE
   ========================================================================= */
.ma-gallery-page { background: var(--ma-paper); min-height: 100vh; }
.ma-gallery-page .ma-container { padding-top: 40px; padding-bottom: 90px; }
.ma-gallery-intro { font-size: 16.5px; color: var(--ma-muted); max-width: 62ch; margin: 14px 0 26px; line-height: 1.6; text-wrap: pretty; }
.ma-pills { display: flex; gap: 8px; margin-bottom: 28px; flex-wrap: wrap; }
.ma-pill { border: 1px solid var(--ma-border-strong); background: var(--ma-paper); color: var(--ma-text-2); padding: 9px 16px; font-size: 13.5px; font-weight: 500; cursor: pointer; border-radius: var(--ma-radius-pill); transition: background .15s ease, color .15s ease, border-color .15s ease; }
.ma-pill:hover { border-color: var(--ma-violet); }
.ma-pill.is-active { border-color: var(--ma-violet); background: var(--ma-violet); color: var(--ma-paper); }
.ma-masonry { columns: 4; column-gap: 12px; }
.ma-masonry__item { break-inside: avoid; margin-bottom: 12px; background: var(--ma-placeholder); overflow: hidden; position: relative; }
.ma-masonry__item img { width: 100%; display: block; }
.ma-masonry__item.is-hidden { display: none; }

/* =========================================================================
   JOURNAL (index + article)
   ========================================================================= */
.ma-journal { background: var(--ma-paper); min-height: 100vh; }
.ma-journal .ma-container { padding-top: 40px; padding-bottom: 90px; }
.ma-journal__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; padding-bottom: 28px; border-bottom: 1px solid var(--ma-border); }
.ma-journal__intro { font-size: 16.5px; color: var(--ma-muted); max-width: 64ch; margin: 14px 0 0; line-height: 1.6; text-wrap: pretty; }
.ma-journal__filters { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; }

.ma-featured { display: grid; grid-template-columns: 1.25fr 1fr; gap: 48px; align-items: center; padding: 44px 0; border-bottom: 1px solid var(--ma-border); }
.ma-featured__media { aspect-ratio: 16/10; background: var(--ma-placeholder); position: relative; overflow: hidden; }
.ma-featured__eyebrow { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ma-violet); font-weight: 600; }
.ma-featured__title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 38px; line-height: 1.08; letter-spacing: -.035em; margin: 14px 0; }
.ma-featured__excerpt { font-size: 16.5px; color: var(--ma-text-2); line-height: 1.6; margin: 0 0 18px; text-wrap: pretty; }
.ma-featured__meta { font-size: 13.5px; color: var(--ma-muted); }

.ma-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 26px; padding-top: 40px; }
.ma-postcard { display: flex; flex-direction: column; }
.ma-postcard__media { aspect-ratio: 4/3; background: var(--ma-placeholder); position: relative; overflow: hidden; margin-bottom: 14px; }
.ma-postcard__tag { font-size: 11.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--ma-violet); font-weight: 600; margin-bottom: 8px; }
.ma-postcard__title { font-size: 21px; font-weight: 600; line-height: 1.22; letter-spacing: -.025em; margin-bottom: 8px; color: var(--ma-ink); }
.ma-postcard:hover .ma-postcard__title { color: var(--ma-violet); }
.ma-postcard__excerpt { font-size: 15px; color: var(--ma-muted); line-height: 1.55; margin-bottom: 12px; text-wrap: pretty; }
.ma-postcard__meta { font-size: 13px; color: var(--ma-muted); margin-top: auto; }

/* Article */
.ma-article { background: var(--ma-paper); min-height: 100vh; }
.ma-article__crumb { font-size: 13px; color: var(--ma-muted); max-width: var(--ma-maxw); margin: 0 auto; padding: 34px var(--ma-pad) 20px; }
.ma-article__crumb a { color: var(--ma-muted); }
.ma-article__crumb .is-current { color: var(--ma-ink); }
.ma-article__head { max-width: 800px; margin: 0 auto; padding: 20px var(--ma-pad) 0; }
.ma-article__eyebrow { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ma-violet); font-weight: 600; }
.ma-article__title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 50px; line-height: 1.04; letter-spacing: -.04em; margin: 16px 0 18px; }
.ma-article__meta { font-size: 14px; color: var(--ma-muted); padding-bottom: 26px; border-bottom: 1px solid var(--ma-border); }
.ma-article__hero { max-width: 1120px; margin: 32px auto 0; padding: 0 var(--ma-pad); }
.ma-article__hero .ma-media { aspect-ratio: 21/9; }
.ma-article__body { max-width: 800px; margin: 0 auto; padding: 44px var(--ma-pad) 60px; }
.ma-article__lead { font-size: 21px; line-height: 1.6; color: var(--ma-ink); margin: 0 0 30px; text-wrap: pretty; }
.ma-article__body h2 { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 30px; letter-spacing: -.03em; line-height: 1.15; margin: 40px 0 14px; }
.ma-article__body p { font-size: 17.5px; line-height: 1.72; color: var(--ma-text); margin: 0 0 20px; text-wrap: pretty; }
.ma-article__body table { border: 1px solid rgba(22,21,15,.14); border-collapse: collapse; width: 100%; margin: 14px 0 28px; font-size: 15.5px; }
.ma-article__body table th, .ma-article__body table td { padding: 14px 18px; border-bottom: 1px solid var(--ma-border-light); text-align: left; }
.ma-article__body table thead th { background: var(--ma-cream); color: var(--ma-ink); font-weight: 600; }
.ma-article__body table tbody th, .ma-article__body table tbody td:first-child { color: var(--ma-muted); font-weight: 400; }
.ma-article__body table td:last-child, .ma-article__body table th:last-child { font-weight: 600; text-align: right; }
.ma-article__cta { background: var(--ma-violet); color: var(--ma-paper); padding: 32px; margin-top: 44px; }
.ma-article__cta-title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 26px; letter-spacing: -.03em; line-height: 1.2; margin-bottom: 10px; }
.ma-article__cta-text { font-size: 16px; line-height: 1.6; opacity: .9; margin-bottom: 22px; max-width: 52ch; text-wrap: pretty; }
/* Bannières UX Builder (Flatsome) insérées dans le corps d'article : typo de marque */
.ma-article__body .banner h1, .ma-article__body .banner h2, .ma-article__body .banner h3,
.ma-article__body .banner h4, .ma-article__body .banner .uppercase {
  font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto;
  text-transform: none; letter-spacing: -.025em; line-height: 1.12;
}
.ma-article__body .banner h3 { font-size: 30px; margin: 0 0 12px; }

.ma-related { background: var(--ma-cream); padding: 60px 0 76px; }
.ma-related .ma-h2 { font-size: 32px; margin-bottom: 26px; }
.ma-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ma-related__card { background: var(--ma-paper); border: 1px solid var(--ma-border); display: flex; flex-direction: column; transition: border-color .15s ease; }
.ma-related__card:hover { border-color: var(--ma-violet); }
.ma-related__media { aspect-ratio: 16/9; }
.ma-related__body { padding: 18px; }
.ma-related__tag { font-size: 11.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--ma-violet); font-weight: 600; margin-bottom: 8px; }
.ma-related__title { font-size: 18px; font-weight: 600; line-height: 1.25; letter-spacing: -.02em; color: var(--ma-ink); }

/* =========================================================================
   PATACLETTE
   ========================================================================= */
.ma-pata { background: var(--ma-paper); min-height: 100vh; }
.ma-pata__hero { position: relative; height: 480px; overflow: hidden; background: var(--ma-ink); }
.ma-pata__hero .ma-hero__overlay { background: linear-gradient(180deg, rgba(22,21,15,.3) 0%, rgba(22,21,15,.86) 100%); }
.ma-pata__hero-inner { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 48px; }
.ma-pata__hero h1 { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 64px; line-height: 1; letter-spacing: -.04em; color: var(--ma-paper); margin: 16px 0 0; }
.ma-pata__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: start; padding-top: 62px; padding-bottom: 90px; }
.ma-pata__lead { font-size: 21px; line-height: 1.6; color: var(--ma-ink); margin: 0 0 22px; text-wrap: pretty; }
.ma-pata__grid p { font-size: 17px; line-height: 1.7; color: var(--ma-text-2); margin: 0 0 18px; text-wrap: pretty; }
.ma-pata__caption { font-size: 13.5px; color: var(--ma-muted); margin-top: 10px; font-style: italic; }
.ma-pata__aside { position: sticky; top: var(--ma-sticky-top); background: var(--ma-violet); color: var(--ma-paper); padding: 30px; }
.ma-pata__aside-eyebrow { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; opacity: .75; margin-bottom: 14px; }
.ma-pata__aside-title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 28px; letter-spacing: -.03em; line-height: 1.15; margin-bottom: 20px; }
.ma-pata__fact { display: flex; justify-content: space-between; font-size: 14.5px; padding: 10px 0; border-bottom: 1px solid rgba(255,253,248,.2); }
.ma-pata__fact span:first-child { opacity: .8; }
.ma-pata__fact span:last-child { font-weight: 600; }

/* =========================================================================
   CATALOGUE (archive produit)
   ========================================================================= */
.ma-crumb { font-size: 13px; color: var(--ma-muted); margin-bottom: 18px; }
.ma-crumb a { color: var(--ma-muted); }
.ma-crumb .is-current { color: var(--ma-ink); }
.ma-shop { background: var(--ma-paper); min-height: 100vh; }
.ma-shop .ma-container { padding-top: 34px; padding-bottom: 90px; }
.ma-shop__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; padding-bottom: 26px; border-bottom: 1px solid var(--ma-border); }
.ma-shop__head h1 { font-size: 54px; }
.ma-shop__desc { font-size: 16px; color: var(--ma-muted); max-width: 60ch; margin: 12px 0 0; line-height: 1.55; text-wrap: pretty; }
.ma-shop__tools { display: flex; gap: 10px; align-items: center; flex-shrink: 0; }
.ma-shop__count { font-size: 13px; color: var(--ma-muted); white-space: nowrap; }
.ma-select { border: 1px solid var(--ma-border-strong); background: var(--ma-paper); padding: 10px 14px; font-size: 13.5px; border-radius: var(--ma-radius-btn); color: var(--ma-ink); }

.ma-shop__layout { display: grid; grid-template-columns: 236px 1fr; gap: 44px; padding-top: 32px; }
.ma-sidebar { display: flex; flex-direction: column; gap: 34px; position: sticky; top: var(--ma-sticky-top); align-self: start; }
.ma-filter-toggle { display: none; } /* visible en mobile uniquement */
.ma-sidebar__label { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ma-muted); margin-bottom: 10px; }
.ma-rentalbox { background: var(--ma-cream); padding: 18px; border: 1px solid rgba(22,21,15,.1); }
.ma-rentalbox__value { font-size: 15px; font-weight: 600; line-height: 1.4; }
.ma-rentalbox__edit { font-size: 13px; color: var(--ma-violet); font-weight: 600; margin-top: 10px; cursor: pointer; background: none; border: 0; padding: 0; }
.ma-catlist { display: flex; flex-direction: column; gap: 9px; }
.ma-catlist a { font-size: 14.5px; color: var(--ma-text-2); }
.ma-catlist a:hover, .ma-catlist a.is-current { color: var(--ma-violet); font-weight: 600; }
.ma-pricefilter { display: flex; flex-direction: column; gap: 9px; }
.ma-pricefilter label { display: flex; gap: 9px; align-items: center; font-size: 14.5px; cursor: pointer; }
.ma-pricefilter input { accent-color: var(--ma-violet); width: 15px; height: 15px; }

.ma-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px 22px; }
.ma-card { display: flex; flex-direction: column; }
.ma-card__media { position: relative; aspect-ratio: 1/1; background: var(--ma-placeholder); overflow: hidden; display: block; }
.ma-card__badge { position: absolute; top: 10px; left: 10px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 5px 9px; }
.ma-card__badge--default { background: rgba(255,253,248,.9); color: var(--ma-ink); }
.ma-card__badge--promo { background: var(--ma-violet); color: var(--ma-paper); }
.ma-card__body { padding-top: 12px; display: flex; flex-direction: column; flex: 1; gap: 6px; }
.ma-card__title { font-size: 15.5px; font-weight: 600; line-height: 1.3; color: var(--ma-ink); }
.ma-card__title:hover { color: var(--ma-violet); }
.ma-card__price { font-size: 13.5px; color: var(--ma-muted); }
.ma-card__action { margin-top: auto; padding-top: 12px; display: flex; gap: 8px; align-items: center; }

/* Stepper */
.ma-stepper { display: flex; align-items: center; border: 1px solid var(--ma-border-strong); }
.ma-stepper__btn { width: 32px; height: 36px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 16px; color: var(--ma-muted); background: none; border: 0; transition: background .15s ease, color .15s ease; }
.ma-stepper__btn:hover { background: var(--ma-cream); color: var(--ma-ink); }
.ma-stepper__val { width: 34px; text-align: center; font-size: 14.5px; font-weight: 600; }
.ma-add { flex: 1; height: 36px; display: inline-flex; align-items: center; justify-content: center; background: var(--ma-cream); color: var(--ma-ink); font-size: 13.5px; font-weight: 600; cursor: pointer; border: 0; transition: background .15s ease, color .15s ease; }
.ma-add:hover { background: var(--ma-violet); color: var(--ma-paper); }
.ma-add.is-added { background: var(--ma-ink); color: var(--ma-paper); }

/* =========================================================================
   FICHE PRODUIT
   ========================================================================= */
.ma-product { background: var(--ma-paper); min-height: 100vh; }
.ma-product .ma-container { padding-top: 34px; padding-bottom: 90px; }
.ma-product__grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 60px; align-items: start; }
.ma-product__gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ma-product__gallery .ma-media { aspect-ratio: 4/3; }
.ma-product__gallery .ma-media--main { grid-column: span 2; }
.ma-product__col { position: sticky; top: var(--ma-sticky-top); }
.ma-product__title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 46px; margin: 12px 0 0; line-height: 1.02; letter-spacing: -.04em; }
.ma-product__desc { font-size: 16.5px; line-height: 1.6; color: var(--ma-text-2); margin: 18px 0 26px; text-wrap: pretty; }
/* Vidéos / players responsive dans les contenus */
.ma-product__desc video, .ma-article__body video, .ma-page-narrow video { max-width: 100%; height: auto; }
.ma-product__desc .wp-video, .ma-product__desc .mejs-container,
.ma-article__body .wp-video, .ma-article__body .mejs-container { max-width: 100% !important; width: 100% !important; height: auto !important; }
.ma-product__desc .mejs-container video, .ma-article__body .mejs-container video { position: static; }
.ma-pricebox { border: 1px solid rgba(22,21,15,.14); padding: 22px; }
.ma-pricebox__label { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ma-muted); margin-bottom: 14px; }
.ma-tiers { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; }
.ma-tier { border: 2px solid rgba(22,21,15,.14); padding: 14px; }
.ma-tier--weekend { border-color: var(--ma-violet); background: var(--ma-violet-wash); }
.ma-tier__label { font-size: 13px; color: var(--ma-muted); }
.ma-tier--weekend .ma-tier__label { color: var(--ma-violet); font-weight: 600; }
.ma-tier__price { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 30px; line-height: 1.1; margin-top: 2px; }
.ma-period { margin-bottom: 16px; }
.ma-period__title { font-size: 14.5px; font-weight: 600; color: var(--ma-ink); }
.ma-period__detail { font-size: 13px; color: var(--ma-muted); margin-top: 3px; }
.ma-period__edit { background: none; border: 0; padding: 0; color: var(--ma-violet); font-weight: 600; font-size: 13px; cursor: pointer; }

.ma-product__buy { display: flex; gap: 10px; align-items: stretch; }
.ma-product__buy .ma-stepper__btn { width: 42px; height: auto; font-size: 18px; }
.ma-product__buy .ma-stepper__val { width: 46px; font-size: 16px; }
.ma-buy-btn { flex: 1; padding: 16px; display: inline-flex; align-items: center; justify-content: center; background: var(--ma-ink); color: var(--ma-paper); font-size: 15px; font-weight: 600; cursor: pointer; border: 0; transition: background .15s ease; }
.ma-buy-btn:hover { background: var(--ma-violet); }
.ma-product__avail { font-size: 13px; color: var(--ma-muted); margin-top: 14px; line-height: 1.5; }
.ma-product__avail strong { color: var(--ma-ink); font-weight: 600; }
.ma-specs { margin-top: 26px; border-top: 1px solid var(--ma-border); }
.ma-spec { display: flex; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--ma-border-light); font-size: 14.5px; gap: 20px; }
.ma-spec__k { color: var(--ma-muted); }
.ma-spec__v { font-weight: 600; text-align: right; }

/* =========================================================================
   DEVIS (panier)
   ========================================================================= */
.ma-devis { background: var(--ma-paper); min-height: 100vh; }
.ma-devis .ma-container { padding-top: 40px; padding-bottom: 90px; }
.ma-devis__title { font-size: 54px; margin-bottom: 6px; }
.ma-devis__sub { font-size: 16px; color: var(--ma-muted); margin: 0 0 34px; }
.ma-devis__layout { display: grid; grid-template-columns: 1fr 400px; gap: 50px; align-items: start; }
.ma-devis__empty { border: 1px dashed var(--ma-border-strong); padding: 60px; text-align: center; }
.ma-devis__empty-title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 26px; letter-spacing: -.03em; margin-bottom: 10px; }
.ma-devis__empty p { font-size: 15px; color: var(--ma-muted); margin-bottom: 22px; }

.ma-devis__flash { padding: 14px 18px; margin: 0 0 24px; font-size: 14.5px; border-radius: var(--ma-radius-btn); }
.ma-devis__flash--err { background: #FBE9E7; color: #7A2E24; border: 1px solid #E7C3BC; }
.ma-devis__sent { border: 1px solid var(--ma-border); background: var(--ma-cream); padding: 40px; max-width: 640px; }
.ma-devis__sent-title { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 30px; letter-spacing: -.03em; margin-bottom: 12px; }
.ma-devis__sent p { font-size: 16px; color: var(--ma-text-2); line-height: 1.6; margin: 0 0 22px; }

.ma-line { display: grid; grid-template-columns: 96px 1fr auto auto; gap: 20px; align-items: center; padding: 18px 0; border-bottom: 1px solid rgba(22,21,15,.1); }
.ma-line__media { aspect-ratio: 1/1; }
.ma-line__name { font-size: 16px; font-weight: 600; line-height: 1.3; }
.ma-line__meta { font-size: 13.5px; color: var(--ma-muted); margin-top: 4px; }
.ma-line__remove { font-size: 13px; color: var(--ma-violet); font-weight: 600; margin-top: 7px; cursor: pointer; background: none; border: 0; padding: 0; }
.ma-line__total { font-size: 16px; font-weight: 600; min-width: 104px; text-align: right; }

.ma-devis__block { margin-top: 44px; }
.ma-devis__block .ma-h2 { font-size: 30px; margin-bottom: 18px; }
.ma-delivery { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ma-delivery__opt { border: 2px solid rgba(22,21,15,.14); background: var(--ma-paper); padding: 20px; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.ma-delivery__opt.is-picked { border-color: var(--ma-violet); background: var(--ma-violet-wash); }
.ma-delivery__name { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.ma-delivery__desc { font-size: 13.5px; color: var(--ma-muted); line-height: 1.5; margin-bottom: 10px; text-wrap: pretty; }
.ma-delivery__price { font-size: 15px; font-weight: 700; color: var(--ma-violet); }

.ma-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ma-field { display: flex; flex-direction: column; gap: 6px; }
.ma-field--full { grid-column: span 2; }
.ma-field label, .ma-field > span { font-size: 12.5px; color: var(--ma-muted); letter-spacing: .03em; }
.ma-field input, .ma-field textarea, .ma-field select {
  border: 1px solid var(--ma-border-strong); background: var(--ma-paper); padding: 13px 14px;
  font-size: 15px; outline: none; font-family: inherit; color: var(--ma-ink); border-radius: 0;
}
.ma-field input:focus, .ma-field textarea:focus, .ma-field select:focus { border-color: var(--ma-violet); }
.ma-field textarea { resize: vertical; }

.ma-summary { position: sticky; top: var(--ma-sticky-top); background: var(--ma-ink); color: var(--ma-cream); padding: 28px; }
.ma-summary__label { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ma-muted-dark); margin-bottom: 18px; }
.ma-summary__when { padding-bottom: 16px; border-bottom: 1px solid rgba(244,240,230,.16); margin-bottom: 16px; }
.ma-summary__date { font-size: 15px; font-weight: 600; color: var(--ma-paper); }
.ma-summary__loc { font-size: 13.5px; color: var(--ma-muted-dark-2); margin-top: 4px; }
.ma-summary__row { display: flex; justify-content: space-between; font-size: 14.5px; padding: 7px 0; color: var(--ma-cream); }
.ma-summary__row--muted { color: var(--ma-muted-dark); }
.ma-summary__row span:last-child { font-weight: 600; }
.ma-summary__total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(244,240,230,.16); }
.ma-summary__total-label { font-size: 15px; color: var(--ma-paper); }
.ma-summary__total-value { font-family: var(--ma-display); font-weight: 600; font-optical-sizing: auto; font-size: 34px; color: var(--ma-paper); line-height: 1; letter-spacing: -.035em; }
.ma-summary__submit { width: 100%; margin-top: 20px; padding: 17px; font-size: 15.5px; }
.ma-summary__note { font-size: 12.5px; color: var(--ma-muted-dark); margin-top: 14px; line-height: 1.5; text-align: center; }

/* =========================================================================
   RESPONSIVE (§7)
   ========================================================================= */
@media (max-width: 1199px) {
  :root { --ma-pad: 28px; }
  .ma-hero__title { font-size: 56px; }
  .ma-shop__layout { grid-template-columns: 1fr; }
  .ma-sidebar { position: static; flex-direction: row; flex-wrap: wrap; gap: 20px; }
  .ma-sidebar > * { flex: 1 1 200px; }
  .ma-grid { grid-template-columns: repeat(2, 1fr); }
  .ma-cats { grid-template-columns: repeat(3, 1fr); }
  .ma-occasions { grid-template-columns: repeat(2, 1fr); }
  .ma-partners__grid { grid-template-columns: repeat(2, 1fr); }
  .ma-posts, .ma-related__grid { grid-template-columns: repeat(2, 1fr); }
  .ma-masonry { columns: 2; }
  .ma-product__grid { grid-template-columns: 1fr; }
  .ma-product__col { position: static; }
  .ma-devis__layout { grid-template-columns: 1fr; }
  .ma-summary { position: static; }
  .ma-hero-violet__grid, .ma-offer, .ma-split, .ma-pata__grid { grid-template-columns: 1fr; gap: 40px; }
  .ma-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; }
}

@media (max-width: 767px) {
  :root { --ma-pad: 18px; --ma-header-h: 64px; }
  /* Header : nav en tiroir */
  .ma-nav { display: none; }
  .ma-header__phone { display: none; }
  .ma-burger { display: flex; }
  .ma-drawer { display: block; border-top: 1px solid var(--ma-border); padding: 8px var(--ma-pad) 20px; background: var(--ma-cream); }
  .ma-drawer[hidden] { display: none; }

  .ma-hero { height: 520px; }
  .ma-hero__title { font-size: 38px; }
  .ma-page-title, .ma-shop__head h1, .ma-devis__title, .ma-article__title { font-size: 34px; }
  .ma-availbar { grid-template-columns: 1fr; margin-top: 32px; }
  .ma-availbar__submit { padding: 16px; }
  .ma-facts { grid-template-columns: 1fr 1fr; gap: 24px 0; }
  .ma-fact { border-right: 0; padding-right: 0; }
  .ma-section-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .ma-section-head .ma-h2 { font-size: 34px; }
  .ma-occasions, .ma-partners__grid, .ma-posts, .ma-related__grid, .ma-promises { grid-template-columns: 1fr; }
  /* Catalogue & catégories : 2 colonnes en mobile */
  .ma-cats { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .ma-cat__name { font-size: 18px; }
  .ma-cat__meta { font-size: 11.5px; }
  .ma-grid { grid-template-columns: repeat(2, 1fr); gap: 20px 12px; }
  .ma-card__action { flex-direction: column; align-items: stretch; gap: 6px; }
  .ma-card__action .ma-stepper { width: 100%; }
  .ma-card__action .ma-stepper__val { flex: 1; }
  .ma-card__action .ma-add { width: 100%; }
  .ma-masonry { columns: 2; }
  .ma-featured { grid-template-columns: 1fr; gap: 20px; }
  .ma-shop__head, .ma-journal__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .ma-shop__tools { flex-direction: column; align-items: stretch; width: 100%; gap: 8px; }
  .ma-shop__tools .ma-sortform, .ma-shop__tools .ma-select { width: 100%; }
  .ma-select { min-height: 44px; }
  /* Filtres repliables sur mobile via bouton « Filtrer » */
  .ma-filter-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 13px; border: 1px solid var(--ma-border-strong); background: var(--ma-paper); color: var(--ma-ink); font-size: 14.5px; font-weight: 600; border-radius: var(--ma-radius-btn); cursor: pointer; margin-bottom: 6px; }
  .ma-filter-toggle.is-open { border-color: var(--ma-violet); color: var(--ma-violet); }
  .ma-shop__layout { display: flex; flex-direction: column; }
  .ma-sidebar { display: none; flex-direction: column; margin: 4px 0 26px; }
  .ma-sidebar.is-open { display: flex; }
  .ma-sidebar > * { flex: none; }
  /* Catégories sur 2 colonnes dans le filtre mobile */
  .ma-catlist { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
  /* Header : bouton devis puis burger tout à droite */
  .ma-header__inner { gap: 12px; }
  /* Footer empilé (4 colonnes → 2, marque pleine largeur) */
  .ma-footer__grid { grid-template-columns: 1fr 1fr; gap: 30px 20px; }
  .ma-footer__brand { grid-column: 1 / -1; }
  .ma-devis__layout { gap: 30px; }
  .ma-form { grid-template-columns: 1fr; }
  .ma-field--full { grid-column: auto; }

  /* Tactile : cibles ≥ 44px */
  .ma-stepper__btn { height: 44px; min-width: 44px; }
  .ma-add, .ma-buy-btn { min-height: 44px; }

  /* Fiche : stepper + bouton empilés */
  .ma-product__buy { flex-direction: column; }
  .ma-product__buy .ma-stepper { width: 100%; }
  .ma-product__buy .ma-stepper__val { flex: 1; }
  .ma-buy-btn { width: 100%; }

  /* Récapitulatif devis : barre fixe en bas */
  .ma-summary { position: sticky; bottom: 0; top: auto; z-index: 40; }
}
