/*
Theme Name: Maison Boire — boutique
Theme URI: https://maisonboire.com/
Author: Maison Boire
Description: Thème minimal pour boutique.maisonboire.com. Une seule chose à vendre — la carte-cadeau — et le langage visuel du site principal autour. Polices auto-hébergées, aucun appel externe, aucun gabarit WooCommerce surchargé.
Version: 1.0.1
Requires at least: 6.0
Tested up to: 7.1
Description (1.0.1): en-tête et pied alignés sur maisonboire.com, arrondis et bouton olive de Woo neutralisés, bandeau de réassurance sous « Ajouter au panier », sélecteur de montant au-dessus du pli en mobile (lot 35, P1 #20).
Requires PHP: 7.4
License: Propriétaire
Text Domain: maison-boire
*/

/* ==================================================================
   1. LES POLICES
   Les trois mêmes fichiers que maisonboire.com, servis d'ici.
   Les trois familles de repli à métriques ajustées sont ce qui donne
   un CLS de 0 sur le site principal : le texte de secours occupe
   exactement la même place que la vraie police.
   ================================================================== */

@font-face{font-family:'Jost';font-style:normal;font-weight:400 500;font-display:swap;
  src:url(assets/fonts/jost-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:'Cormorant Garamond';font-style:normal;font-weight:500 600;font-display:swap;
  src:url(assets/fonts/cormorant-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:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;
  src:url(assets/fonts/cormorant-italic-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:'Jost Fallback';font-weight:400;src:local('Arial'),local('Liberation Sans'),local('Helvetica Neue');
  size-adjust:94.83%;ascent-override:112.83%;descent-override:39.54%;line-gap-override:0%}
@font-face{font-family:'Jost Fallback';font-weight:500;src:local('Arial'),local('Liberation Sans'),local('Helvetica Neue');
  size-adjust:99.11%;ascent-override:107.96%;descent-override:37.84%;line-gap-override:0%}
@font-face{font-family:'Cormorant Fallback';src:local('Times New Roman'),local('Liberation Serif'),local('Times');
  size-adjust:96.57%;ascent-override:95.68%;descent-override:29.72%;line-gap-override:0%}

/* ==================================================================
   2. LE SYSTÈME
   Les mêmes jetons que mb.css sur le site principal.
   ================================================================== */

:root{
  --mb-bg:#17140F;
  --mb-bg-alt:#1B1710;
  --mb-cream:#F2EDE2;
  --mb-cream-70:#CFC6B4;
  --mb-gold:#B8935A;
  --mb-gold-hover:#D8B57E;
  --mb-muted:#B6AD9C;

  --mb-creme:#EFE9DD;          /* le fond du contenu */
  --mb-creme-2:#E7DFCF;        /* champs, alternance */
  --mb-ink:#26221C;            /* texte sur crème */
  --mb-ink-2:#4C473D;
  --mb-ink-muted:#5F584B;
  --mb-gold-creme:#6F541F;     /* or lisible sur crème — 5,86:1 (AA), 5,35:1 sur --mb-creme-2 */

  --mb-line:rgba(184,147,90,.18);
  --mb-line-creme:rgba(38,34,28,.14);
  --mb-line-forte:rgba(38,34,28,.28);

  --mb-alerte:#9A3412;         /* erreur, sur crème */
  --mb-ok:#3F6212;             /* confirmation */

  --mb-track:.18em;
  --mb-btn-h:48px;
  --mb-tete-h:64px;

  --mb-sans:'Jost','Jost Fallback',Arial,sans-serif;
  --mb-serif:'Cormorant Garamond','Cormorant Fallback','Times New Roman',serif;

  --mb-large:min(1080px,100% - 2.6rem);
  --mb-texte:min(38rem,100% - 2.6rem);
}

/* ==================================================================
   3. BASE
   ================================================================== */

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--mb-creme);
  color:var(--mb-ink);
  font-family:var(--mb-sans);
  /* 400, pas 300 : les @font-face déclarent 400-500 et 500-600. Un 300 ne
     serait pas rendu — le navigateur retomberait sur 400 sans le dire. */
  font-weight:400;
  /* En rem, pour respecter la taille de texte réglée par le visiteur. */
  font-size:1rem;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

img,svg,video{max-width:100%;height:auto}

a{color:var(--mb-gold-creme);text-decoration:none;border-bottom:1px solid rgba(111,84,31,.35)}
a:hover{color:var(--mb-ink);border-bottom-color:var(--mb-ink)}

/* ==================================================================
   4. ACCESSIBILITÉ
   ================================================================== */

.mb-evitement{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--mb-bg);color:var(--mb-cream);
  padding:.9rem 1.4rem;font-size:.85rem;letter-spacing:var(--mb-track);
  text-transform:uppercase;border:0;
}
.mb-evitement:focus{left:0}

:focus-visible{outline:2px solid var(--mb-gold-creme);outline-offset:3px}
.mb-tete :focus-visible,.mb-pied :focus-visible{outline-color:var(--mb-gold)}

.screen-reader-text,.mb-sr{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap;
}

/* ==================================================================
   5. L'EN-TÊTE — le même dessin que la barre de maisonboire.com (mb-nav) :
   marque en Cormorant 22 px + baseline or, liens en capitales Jost 12,5 px,
   bouton or « Réserver une table ». Hauteur 71 px, collée en haut.
   ================================================================== */

.mb-tete{position:sticky;top:0;z-index:50;background:rgba(23,20,15,.96);border-bottom:1px solid var(--mb-line);color:#E8E1D3}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .mb-tete{background:rgba(23,20,15,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}
.mb-tete__inner{
  width:var(--mb-large);margin-inline:auto;
  min-height:var(--mb-tete-h);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.mb-tete__marque{display:flex;flex-direction:column;justify-content:center;line-height:1;min-height:44px;padding:10px 0;border:0;color:#E8E1D3}
.mb-tete__marque:hover{border:0;color:var(--mb-cream)}
.mb-tete__nom{font-family:var(--mb-serif);font-weight:500;font-size:22px;letter-spacing:var(--mb-track);color:var(--mb-cream);white-space:nowrap}
.mb-tete__tag{font-size:12px;font-weight:500;letter-spacing:var(--mb-track);text-transform:uppercase;color:var(--mb-gold);margin-top:6px;white-space:nowrap}

.mb-tete__nav{display:flex;align-items:center;gap:clamp(.6rem,1.6vw,1.4rem)}
.mb-tete__retour,.mb-tete__panier{
  display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 5px;
  font-size:12.5px;font-weight:500;letter-spacing:var(--mb-track);text-transform:uppercase;
  color:var(--mb-cream-70);border:0;white-space:nowrap;transition:color .2s ease,border-color .2s ease;
}
.mb-tete__retour:hover,.mb-tete__panier:hover{color:var(--mb-cream);border:0}
.mb-tete__panier{min-height:40px;padding:0 12px;border:1px solid rgba(184,147,90,.4);color:var(--mb-gold)}
.mb-tete__panier:hover{border:1px solid var(--mb-gold);color:var(--mb-gold-hover)}
.mb-tete__cta{
  display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 22px;
  background:var(--mb-gold);color:var(--mb-bg);border:1px solid var(--mb-gold);border-radius:1px;
  font-size:12px;font-weight:500;letter-spacing:var(--mb-track);text-transform:uppercase;white-space:nowrap;
  transition:background-color .2s ease,transform .2s ease;
}
.mb-tete__cta:hover{background:var(--mb-gold-hover);border-color:var(--mb-gold-hover);color:var(--mb-bg);transform:translateY(-1px)}
.mb-tete__cta-court{display:none}
@media (max-width:760px){
  .mb-tete__tag{display:none}
  .mb-tete__nom{font-size:20px}
  .mb-tete__retour{display:none}
  .mb-tete__cta-long{display:none}.mb-tete__cta-court{display:inline}
}
@media (max-width:420px){.mb-tete__inner{gap:.5rem}.mb-tete__nav{gap:.5rem}.mb-tete__nom{font-size:17px;letter-spacing:.12em}.mb-tete__panier{padding:0 10px}.mb-tete__cta{padding:0 12px}}

/* ==================================================================
   6. LA PAGE
   ================================================================== */

.mb-main{display:block;min-height:50vh}

.mb-page{
  width:var(--mb-large);margin-inline:auto;
  padding-block:clamp(2.2rem,6vw,3.8rem) clamp(3rem,8vw,5rem);
}
.mb-page--centre{text-align:center;max-width:34rem}

.mb-h1{
  font-family:var(--mb-serif);font-weight:500;
  font-size:clamp(2rem,5.5vw,3rem);line-height:1.1;
  margin:0 0 1.2rem;color:var(--mb-ink);text-wrap:balance;
}
.mb-sur{
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--mb-gold-creme);margin:0 0 .8rem;
}

.mb-prose{max-width:var(--mb-texte)}
.mb-prose h2{
  font-family:var(--mb-serif);font-weight:500;font-size:clamp(1.35rem,3.4vw,1.75rem);
  line-height:1.2;margin:2.4rem 0 .7rem;color:var(--mb-ink);text-wrap:balance;
}
.mb-prose h3{
  font-family:var(--mb-sans);font-weight:500;font-size:1.02rem;
  margin:1.9rem 0 .5rem;color:var(--mb-ink);
}
.mb-prose p{margin:0 0 1.1rem}
.mb-prose ul,.mb-prose ol{margin:0 0 1.2rem;padding-left:1.2rem}
.mb-prose li{margin-bottom:.45rem}
.mb-prose strong{font-weight:500;color:var(--mb-ink)}
.mb-prose hr{border:0;border-top:1px solid var(--mb-line-creme);margin:2.4rem 0}

.mb-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.8rem}

/* Le fil d'Ariane */
.mb-fil{
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--mb-ink-muted);margin-bottom:1.6rem;
}
.mb-fil a{border:0;color:var(--mb-ink-muted)}
.mb-fil a:hover{color:var(--mb-gold-creme)}
.mb-fil__sep{margin-inline:.55em;color:var(--mb-line-forte)}

/* ==================================================================
   7. LES BOUTONS
   Une seule apparence, qu'ils viennent du thème ou de WooCommerce.
   ================================================================== */

.mb-btn,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce #respond input#submit,
.wc-block-components-button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:var(--mb-btn-h);padding:0 1.7rem;
  background:var(--mb-ink);color:var(--mb-creme);
  font-family:var(--mb-sans);font-weight:500;font-size:.76rem;
  letter-spacing:var(--mb-track);text-transform:uppercase;
  border:1px solid var(--mb-ink);border-radius:0;
  cursor:pointer;transition:background .18s ease,color .18s ease;
  text-decoration:none;
}
.mb-btn:hover,
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:hover{
  background:var(--mb-gold-creme);border-color:var(--mb-gold-creme);color:var(--mb-creme);
}

/* Le bouton principal — ajouter au panier, passer la commande */
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.wc-block-components-checkout-place-order-button{
  background:var(--mb-gold-creme);border-color:var(--mb-gold-creme);color:var(--mb-creme);
}
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover,
.wc-block-components-checkout-place-order-button:hover{
  background:var(--mb-ink);border-color:var(--mb-ink);
}

.mb-btn--fantome{background:transparent;color:var(--mb-ink);border-color:var(--mb-line-forte)}
.mb-btn--fantome:hover{background:var(--mb-ink);color:var(--mb-creme);border-color:var(--mb-ink)}

/* Bouton inactif. WooCommerce ajoute la CLASSE .disabled, pas l'attribut :
   viser seulement :disabled laisserait le bouton paraître cliquable tant
   qu'aucun montant n'est choisi. Les deux formes sont couvertes. */
.woocommerce .button:disabled,
.woocommerce .button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt.wc-variation-selection-needed{
  background:var(--mb-creme-2);color:var(--mb-ink-muted);border-color:var(--mb-line-forte);
  cursor:not-allowed;opacity:1;
}

/* ==================================================================
   8. LES CHAMPS
   Un seul dessin pour tout : thème, WooCommerce, PW Gift Cards, blocs.
   ================================================================== */

.mb-page input[type="text"],
.mb-page input[type="email"],
.mb-page input[type="tel"],
.mb-page input[type="number"],
.mb-page input[type="password"],
.mb-page input[type="search"],
.mb-page select,
.mb-page textarea,
.wc-block-components-text-input input,
.wc-block-components-textarea{
  width:100%;
  min-height:var(--mb-btn-h);
  padding:.6rem .85rem;
  background:#fff;
  color:var(--mb-ink);
  font-family:var(--mb-sans);font-weight:300;font-size:1rem;line-height:1.5;
  border:1px solid var(--mb-line-forte);border-radius:0;
  transition:border-color .16s ease;
}
.mb-page textarea{min-height:7rem;resize:vertical}
.mb-page select{
  /* Les préfixes ne sont pas décoratifs : sans eux, Safari d'avant 15.4 garde
     son chevron natif EN PLUS du nôtre — deux chevrons sur le sélecteur de
     montant de la carte-cadeau. */
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  padding-right:2.4rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%235F584B' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .95rem center;
  background-size:12px 8px;
}
/* Le halo de focus. Il ne remplace PAS l'outline : celui-ci ne disparaît que
   pour le focus à la souris (:focus sans :focus-visible). Un visiteur au
   clavier garde donc son contour, y compris sur les boutons radio des modes
   de paiement — c'est là que ça compte. */
.mb-page input:focus,
.mb-page select:focus,
.mb-page textarea:focus{
  border-color:var(--mb-gold-creme);
  box-shadow:0 0 0 3px rgba(111,84,31,.45);
}
.mb-page input:focus:not(:focus-visible),
.mb-page select:focus:not(:focus-visible),
.mb-page textarea:focus:not(:focus-visible){outline:0}

/* Les étiquettes. Le sélecteur exclut le vocabulaire des blocs WooCommerce :
   sur /verifier/, les étiquettes flottantes du bloc Commande ont exactement la
   même spécificité, et comme cette feuille est chargée après la leur, elles
   hériteraient des majuscules et de l'interlettrage — et déborderaient de
   leur champ par-dessus la valeur saisie. */
.mb-page label:not([class*="wc-block"]):not(.screen-reader-text){
  display:block;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mb-ink-muted);margin-bottom:.45rem;font-weight:400;
}

/* ==================================================================
   9. WOOCOMMERCE — la boucle et le prix
   ================================================================== */

/* WooCommerce pose un nettoyage de flottants en ::before/::after sur ces deux
   conteneurs. Passés en grille, ces pseudo-éléments deviennent des articles de
   grille — deux rangées vides et leurs gouttières autour du produit. */
.woocommerce ul.products::before,.woocommerce ul.products::after,
.woocommerce div.product::before,.woocommerce div.product::after{display:none}

.woocommerce ul.products{
  display:grid;grid-template-columns:1fr;gap:2rem;
  margin:0;padding:0;list-style:none;
}

/* La page /shop/ porte un <h1> vide qui occuperait sa marge pour rien. */
.woocommerce h1.page-title:empty{display:none}
.woocommerce ul.products li.product{margin:0;padding:0;text-align:left;width:auto;float:none}
.woocommerce ul.products li.product a img{margin-bottom:1rem}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--mb-serif);font-weight:500;font-size:clamp(1.5rem,4vw,2rem);
  line-height:1.15;color:var(--mb-ink);padding:0;margin:0 0 .5rem;
}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{
  font-size:.75rem;color:var(--mb-ink-muted);letter-spacing:.06em;
}
.woocommerce .woocommerce-ordering{margin-bottom:1.6rem}
.woocommerce .woocommerce-ordering select.orderby{max-width:20rem}

.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  font-family:var(--mb-sans);font-weight:400;font-size:1.15rem;
  color:var(--mb-gold-creme);font-variant-numeric:tabular-nums;
  margin:0 0 1.2rem;
}
.woocommerce .price ins{text-decoration:none}
.woocommerce .price del{opacity:.5;margin-right:.5em}
.woocommerce-Price-currencySymbol{font-size:.85em}

/* ==================================================================
   10. WOOCOMMERCE — la fiche produit
   ================================================================== */

.woocommerce div.product{margin:0}
.woocommerce div.product .product_title{
  font-family:var(--mb-serif);font-weight:500;
  font-size:clamp(2rem,5.5vw,3rem);line-height:1.1;
  margin:0 0 1rem;color:var(--mb-ink);text-wrap:balance;
}
.woocommerce div.product .woocommerce-product-details__short-description{
  max-width:var(--mb-texte);color:var(--mb-ink-2);margin-bottom:1.8rem;
}

/* La galerie : une pile d'images, pas de carrousel.
 *
 * ⚠️ WooCommerce écrit « opacity:0 » EN LIGNE sur la galerie et compte sur son
 * script pour la remonter à 1 — dans une branche qui, selon la version, ne
 * s'exécute que si FlexSlider est déclaré. Comme le thème ne le déclare pas,
 * cette règle est l'assurance qui évite une fiche produit sans image. */
.woocommerce div.product div.images.woocommerce-product-gallery{opacity:1!important}

.woocommerce div.product div.images{margin-bottom:2rem}
.woocommerce div.product div.images img{width:100%;display:block}

/* Sans FlexSlider, WooCommerce affiche les images suivantes à 25 %. On les
   remet pleine largeur : deux images empilées valent mieux qu'une vignette
   orpheline. */
.woocommerce div.product div.images .woocommerce-product-gallery__image{
  width:100%;display:block;margin-bottom:.8rem;
}

@media (min-width:52rem){
  .woocommerce div.product{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
    gap:clamp(2rem,5vw,3.5rem);align-items:start;
  }
  .woocommerce div.product div.images{grid-column:1;grid-row:1 / span 2;margin-bottom:0}
  .woocommerce div.product .summary{grid-column:2;grid-row:1;margin:0;width:auto;float:none}
  .woocommerce div.product .woocommerce-tabs{grid-column:1 / -1;grid-row:3}
}

/* Le formulaire de variation — le cœur de l'achat */
.woocommerce div.product form.cart{margin:0}
.woocommerce div.product form.cart table.variations{
  width:100%;margin:0 0 1.4rem;border:0;border-collapse:collapse;
}
.woocommerce div.product form.cart table.variations tr{display:block}
.woocommerce div.product form.cart table.variations th.label,
.woocommerce div.product form.cart table.variations td.value{
  display:block;padding:0;border:0;text-align:left;
}
.woocommerce div.product form.cart table.variations th.label label{
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mb-ink-muted);margin-bottom:.45rem;
}
.woocommerce div.product form.cart table.variations td.value{
  display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;
}
.woocommerce div.product form.cart table.variations td.value select{flex:1 1 14rem;max-width:22rem}

.woocommerce a.reset_variations{
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--mb-ink-muted);border:0;
}
.woocommerce a.reset_variations:hover{color:var(--mb-gold-creme)}

.woocommerce div.product .woocommerce-variation-price{
  font-size:1.35rem;color:var(--mb-gold-creme);margin-bottom:1rem;
  font-variant-numeric:tabular-nums;
}
.woocommerce div.product .woocommerce-variation-description{
  color:var(--mb-ink-2);margin-bottom:1rem;
}
.woocommerce div.product .woocommerce-variation-availability{
  font-size:.85rem;color:var(--mb-ink-muted);margin-bottom:1rem;
}
.woocommerce div.product .single_variation_wrap{display:block}

/* Quantité et ajout au panier */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart{
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:.9rem;margin-top:1.4rem;
}
.woocommerce .quantity{margin:0}
.woocommerce .quantity .qty{
  width:5.5rem;min-height:var(--mb-btn-h);text-align:center;
  font-variant-numeric:tabular-nums;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button{flex:1 1 14rem}

/* Les onglets */
.woocommerce div.product .woocommerce-tabs{margin-top:clamp(2.4rem,6vw,3.5rem)}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex;flex-wrap:wrap;gap:1.6rem;
  margin:0 0 1.6rem;padding:0 0 .8rem;
  border-bottom:1px solid var(--mb-line-creme);list-style:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  margin:0;padding:0;background:none;border:0;border-radius:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding:0;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mb-ink-muted);font-weight:400;border-bottom:1px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{
  color:var(--mb-ink);border-bottom-color:var(--mb-gold-creme);
}
.woocommerce div.product .woocommerce-Tabs-panel{max-width:var(--mb-texte)}
.woocommerce div.product .woocommerce-Tabs-panel h2{
  font-family:var(--mb-serif);font-weight:500;font-size:1.5rem;margin:0 0 .8rem;
}

/* ==================================================================
   11. PW GIFT CARDS — les champs du destinataire
   Attention : #pwgc-custom-amount ne porte pas .pwgc-input-text mais
   .short.wc_input_price, et #pwgc-message n'a aucune classe.
   ================================================================== */

/* ⚠️ Ce conteneur est un ENFANT DIRECT de .woocommerce-variation-add-to-cart,
 * qui est en flex. Sans flex-basis:100%, tout le formulaire du destinataire —
 * montant libre, « Pour », « De », message — se retrouverait sur la même ligne
 * que la quantité et le bouton, et la page aurait l'air cassée à l'écran même
 * où le client tape l'adresse courriel. Il est premier dans le DOM : lui donner
 * une ligne entière renvoie naturellement quantité et bouton en dessous. */
#pwgc-purchase-container{margin-top:1.6rem;flex-basis:100%}

.pwgc-field-container{margin-bottom:1.2rem}
.pwgc-field-container.pwgc-hidden{display:none}

.pwgc-label,
#pwgc-quantity-one-per-recipient .pwgc-label{
  display:block;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mb-ink-muted);margin-bottom:.45rem;font-weight:400;
}

.pwgc-input-text,
#pwgc-custom-amount,
#pwgc-message{
  width:100%;min-height:var(--mb-btn-h);
  padding:.6rem .85rem;
  background:#fff;color:var(--mb-ink);
  font-family:var(--mb-sans);font-weight:300;font-size:1rem;line-height:1.5;
  border:1px solid var(--mb-line-forte);border-radius:0;
}
#pwgc-message{min-height:7rem;resize:vertical}
#pwgc-custom-amount{max-width:12rem;font-variant-numeric:tabular-nums}

.pwgc-input-text:focus,
#pwgc-custom-amount:focus,
#pwgc-message:focus{
  border-color:var(--mb-gold-creme);box-shadow:0 0 0 3px rgba(111,84,31,.45);
}
.pwgc-input-text:focus:not(:focus-visible),
#pwgc-custom-amount:focus:not(:focus-visible),
#pwgc-message:focus:not(:focus-visible){outline:0}

.pwgc-subtitle{
  font-size:.8rem;color:var(--mb-ink-muted);margin-top:.4rem;line-height:1.5;
}

/* Le message d'erreur du montant libre. PW pose « color:red !important » en
   ligne ; assets/mb.js retire ce style pour que celui-ci s'applique. */
#pwgc-custom-amount-error{color:var(--mb-alerte);font-weight:400}
#pwgc-custom-amount-error:empty{display:none}

/* Ce conteneur ne porte qu'un champ caché : il ne doit pas occuper de place. */
#pwgc-form-email-design{margin:0}

#pwgc-quantity-one-per-recipient{
  padding-top:.6rem;border-top:1px solid var(--mb-line-creme);
}
#pwgc-recipient-count{font-variant-numeric:tabular-nums;color:var(--mb-ink)}

/* ==================================================================
   12. LE PANIER (WooCommerce classique)
   ================================================================== */

.woocommerce table.shop_table{
  width:100%;border-collapse:collapse;border:0;border-radius:0;margin:0 0 2rem;
}
.woocommerce table.shop_table th{
  padding:.7rem .8rem;text-align:left;
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:400;color:var(--mb-ink-muted);
  border-bottom:1px solid var(--mb-line-forte);
}
.woocommerce table.shop_table td{
  padding:1.1rem .8rem;border-top:0;border-bottom:1px solid var(--mb-line-creme);
  vertical-align:middle;
}
.woocommerce table.shop_table td.product-name a{border:0;color:var(--mb-ink);font-weight:400}
.woocommerce table.shop_table td.product-price,
.woocommerce table.shop_table td.product-subtotal{
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.woocommerce a.remove{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.6rem;height:1.6rem;font-size:1.1rem;line-height:1;
  color:var(--mb-ink-muted)!important;border:0;border-radius:0;
}
.woocommerce a.remove:hover{background:var(--mb-alerte);color:#fff!important}

.woocommerce .cart-collaterals{margin-top:2rem}
.woocommerce .cart_totals h2{
  font-family:var(--mb-serif);font-weight:500;font-size:1.4rem;margin:0 0 .9rem;
}
.woocommerce .cart_totals table.shop_table{margin-bottom:1.4rem}
.woocommerce .wc-proceed-to-checkout{padding:0}
.woocommerce .wc-proceed-to-checkout a.checkout-button{width:100%}

.woocommerce .cart-empty,
.woocommerce .return-to-shop{max-width:var(--mb-texte)}

@media (min-width:52rem){
  .woocommerce .cart-collaterals{
    display:flex;justify-content:flex-end;
  }
  .woocommerce .cart_totals{width:min(24rem,100%)}
}

/* ==================================================================
   13. LA COMMANDE (bloc React — /verifier/)
   Ces classes ne figurent pas dans le HTML servi : le bloc est monté
   par JavaScript. Elles sont stylées d'après le vocabulaire officiel
   de WooCommerce Blocks.
   ================================================================== */

.wc-block-checkout,
.wp-block-woocommerce-checkout{max-width:none}

.wc-block-components-title,
.wc-block-checkout__form h2,
.wp-block-woocommerce-checkout h2{
  font-family:var(--mb-serif);font-weight:500;
  font-size:clamp(1.3rem,3.4vw,1.65rem);line-height:1.2;
  color:var(--mb-ink);margin:0 0 1rem;
}

/* Remise à zéro explicite : les étiquettes du bloc Commande flottent
   par-dessus leur champ. Elles ne doivent hériter d'aucune des propriétés
   que le thème applique aux étiquettes ordinaires. */
.wc-block-components-text-input label,
.wc-block-components-checkout-step__heading-content,
.wc-block-components-form .wc-block-components-text-input label{
  font-family:var(--mb-sans);color:var(--mb-ink-muted);
  text-transform:none;letter-spacing:normal;font-size:inherit;margin-bottom:0;
}

/* Le champ d'échange d'une carte-cadeau, sur la commande. C'est le contrôle
   qui sert à dépenser les 601 cartes émises : il ne doit pas rester en
   bouton natif du navigateur à côté d'un champ stylé. */
.pwgc-apply-gift-card-button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:var(--mb-btn-h);padding:0 1.4rem;
  background:var(--mb-ink);color:var(--mb-creme);
  font-family:var(--mb-sans);font-weight:500;font-size:.74rem;
  letter-spacing:var(--mb-track);text-transform:uppercase;
  border:1px solid var(--mb-ink);border-radius:0;cursor:pointer;
}
.pwgc-apply-gift-card-button:hover{background:var(--mb-gold-creme);border-color:var(--mb-gold-creme)}
#pwgc-redeem-gift-card-container{margin-bottom:1.4rem}
.pwgc-applied-gift-cards,
.pwgc-applied-gift-card{font-variant-numeric:tabular-nums}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus{
  border-color:var(--mb-gold-creme);box-shadow:0 0 0 2px rgba(111,84,31,.16);
}

.wc-block-components-totals-item,
.wc-block-components-order-summary-item{color:var(--mb-ink)}
.wc-block-components-totals-item__value,
.wc-block-formatted-money-amount{font-variant-numeric:tabular-nums}

.wc-block-components-checkout-place-order-button{width:100%}

.wc-block-components-notice-banner{
  border-radius:0;font-family:var(--mb-sans);
}

/* ==================================================================
   14. LES MESSAGES
   ================================================================== */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce-notice{
  display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;
  margin:0 0 1.8rem;padding:1rem 1.2rem;
  background:var(--mb-creme-2);
  border:0;border-left:2px solid var(--mb-gold-creme);
  border-radius:0;
  font-size:.95rem;color:var(--mb-ink);list-style:none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{display:none}
.woocommerce-error{border-left-color:var(--mb-alerte)}
.woocommerce-message{border-left-color:var(--mb-ok)}
.woocommerce-message .button,
.woocommerce-info .button{margin-left:auto}

.woocommerce form .form-row.woocommerce-invalid input.input-text{border-color:var(--mb-alerte)}
.woocommerce form .form-row.woocommerce-validated input.input-text{border-color:var(--mb-ok)}

/* ==================================================================
   15. LES DEUX ICÔNES
   La boutique n'utilise que fa-gift et fa-cog, chargées aujourd'hui par
   Font Awesome au complet via Elementor. Une fois Elementor retiré,
   ces deux règles les remplacent — environ 700 octets au lieu de 100 ko.
   ================================================================== */

.fa-gift,.fa-cog{
  display:inline-block;width:1em;height:1em;vertical-align:-.125em;
  background-repeat:no-repeat;background-position:center;background-size:contain;
}
/* Le viewBox est bien 640 de large : ce tracé va de x=32 à x=608. Le déclarer
   à 512 rognerait l'icône de 19 %, ce qui saute aux yeux en fa-7x. */
.fa-gift{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512' fill='%236F541F'%3E%3Cpath d='M190.5 68.8 210.9 96H192c-17.7 0-32-14.3-32-32s14.3-32 32-32c15.7 0 28.8 11.4 31.5 26.3l-33 10.5zM64 160h132.3l-4.4-5.9C171 126.4 176 88.1 203.6 67.3S268.9 44 289.7 71.6L320 111.9l30.3-40.4c20.8-27.7 60.1-33.3 87.8-12.5S475.6 126.4 454.8 154l-4.4 5.9H576c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H352V192h-64v128H64c-17.7 0-32-14.3-32-32v-96c0-17.7 14.3-32 32-32zm384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32c-15.7 0-28.8 11.4-31.5 26.3L448 160zM288 352v160H128c-17.7 0-32-14.3-32-32V352h192zm64 0h192v128c0 17.7-14.3 32-32 32H352V352z'/%3E%3C/svg%3E");
}
.fa-cog{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%235F584B'%3E%3Cpath d='M256 0c17 0 33.6 1.7 49.8 4.8 7.9 1.5 21.8 6.1 29.4 20.1 2 3.7 3.6 7.6 4.6 11.8l9.3 38.5C350.5 81 360.3 86.7 366 84.3l35.9-13.3c4-1.5 8.1-2.2 12.2-2.4 16-.6 27.7 7.9 33.4 14.1C462.5 106.9 481 138 494 172c2.9 7.6 6.1 21.8-2.1 35.3-2.2 3.6-4.7 7-7.6 10l-27.4 27.8c-4.5 4.6-4.5 15.3 0 19.9l27.4 27.8c2.9 3 5.4 6.3 7.6 10 8.2 13.5 5 27.7 2.1 35.3-13 34-31.5 65.1-46.5 89.6-5.7 6.2-17.4 14.7-33.4 14.1-4.1-.2-8.2-.9-12.2-2.4L366 427.7c-5.7-2.4-15.5 3.3-17 11.1l-9.3 38.5c-1 4.2-2.6 8.1-4.6 11.8-7.6 14-21.5 18.6-29.4 20.1C289.6 510.3 273 512 256 512s-33.6-1.7-49.8-4.8c-7.9-1.5-21.8-6.1-29.4-20.1-2-3.7-3.6-7.6-4.6-11.8l-9.3-38.5c-1.5-7.8-11.3-13.5-17-11.1l-35.9 13.3c-4 1.5-8.1 2.2-12.2 2.4-16 .6-27.7-7.9-33.4-14.1C49.5 405.1 31 374 18 340c-2.9-7.6-6.1-21.8 2.1-35.3 2.2-3.6 4.7-7 7.6-10l27.4-27.8c4.5-4.6 4.5-15.3 0-19.9L27.7 219.3c-2.9-3-5.4-6.3-7.6-10C11.9 195.8 15.1 181.6 18 174c13-34 31.5-65.1 46.5-89.6 5.7-6.2 17.4-14.7 33.4-14.1 4.1.2 8.2.9 12.2 2.4L146 86c5.7 2.4 15.5-3.3 17-11.1l9.3-38.5c1-4.2 2.6-8.1 4.6-11.8 7.6-14 21.5-18.6 29.4-20.1C222.4 1.7 239 0 256 0zm0 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z'/%3E%3C/svg%3E");
}
/* PW Gift Cards affiche l'attente de la vérification de solde avec
   « fas fa-cog fa-spin fa-3x ». Sans ces trois règles, l'engrenage resterait
   fixe et minuscule au lieu de tourner. */
.fa-3x{font-size:3em}
.fa-7x{font-size:7em}
.fa-spin{animation:mb-tourne 2s linear infinite}
@keyframes mb-tourne{to{transform:rotate(360deg)}}

/* ==================================================================
   16. LE PIED DE PAGE — la même grille que mb-footer sur maisonboire.com :
   marque + adresse + réseaux, deux colonnes de liens, rangée « S'y rendre »,
   ligne légale en capitales.
   ================================================================== */

.mb-pied{background:#14110C;color:#E8E1D3;border-top:1px solid var(--mb-line);padding:clamp(56px,7vw,88px) 0}
.mb-pied__inner{width:var(--mb-large);margin-inline:auto}
.mb-pied__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(32px,5vw,64px)}
.mb-pied__brand{font-family:var(--mb-serif);font-size:18px;letter-spacing:var(--mb-track);color:var(--mb-cream-70)}
.mb-pied__tag{font-size:12px;letter-spacing:var(--mb-track);text-transform:uppercase;color:var(--mb-gold);margin-top:6px;font-weight:500}
.mb-pied address{font-style:normal;font-size:14px;line-height:1.8;color:var(--mb-muted);margin-top:16px}
.mb-pied address a{color:var(--mb-cream-70);border:0}
.mb-pied address a:hover{color:var(--mb-gold-hover)}
.mb-pied__social{display:flex;gap:8px;margin-top:18px}
.mb-pied__social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid rgba(184,147,90,.4);color:var(--mb-cream-70);transition:border-color .2s ease,color .2s ease}
.mb-pied__social a:hover{border-color:var(--mb-gold);color:var(--mb-gold-hover)}
.mb-pied__social svg{width:18px;height:18px}
.mb-pied__h{font-size:12px;letter-spacing:var(--mb-track);text-transform:uppercase;color:var(--mb-muted);margin:0 0 14px;font-weight:500;font-family:var(--mb-sans)}
.mb-pied__links{display:grid;gap:4px;margin:0;padding:0;list-style:none;font-size:14px;letter-spacing:.04em}
.mb-pied__links li{margin:0}
.mb-pied__links a{display:inline-block;padding:4px 0;color:var(--mb-cream-70);border:0}
.mb-pied__links a:hover{color:var(--mb-cream)}
.mb-pied__row{margin-top:56px;padding-top:30px;border-top:1px solid rgba(184,147,90,.14);display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 30px}
.mb-pied__row-h{font-size:12px;letter-spacing:var(--mb-track);text-transform:uppercase;color:var(--mb-muted);font-weight:500}
.mb-pied__row-t{font-size:14px;color:var(--mb-cream-70)}
.mb-pied__row a{font-size:12px;letter-spacing:var(--mb-track);text-transform:uppercase;display:inline-block;padding:6px 0;color:var(--mb-gold);border:0}
.mb-pied__row a:hover{color:var(--mb-gold-hover)}
.mb-pied__legal{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;font-size:12px;letter-spacing:var(--mb-track);text-transform:uppercase;color:var(--mb-muted)}
.mb-pied__legal p{margin:0}
.mb-pied__legal a{display:inline-block;padding:6px 0;color:var(--mb-gold);border:0}
.mb-pied__legal a:hover{color:var(--mb-gold-hover)}
.mb-pied__legal nav,.mb-pied__liste{display:contents}
.mb-pied__liste li{margin:0;list-style:none}

/* ==================================================================
   17. CE QUE LE THÈME NE VEUT PAS VOIR
   ================================================================== */

/* WooCommerce ajoute un fil de démonstration et des étoiles d'avis dont la
   boutique ne se sert pas. */
.woocommerce .star-rating,
.woocommerce .woocommerce-product-rating{display:none}

/* La boutique n'expédie rien : la carte part par courriel. */
.woocommerce .shipping-calculator-button,
.woocommerce tr.shipping{display:none}

/* ==================================================================
   18. RESPECT DES PRÉFÉRENCES
   ================================================================== */

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

@media print{
  .mb-tete,.mb-pied,.mb-evitement,.woocommerce form.cart{display:none}
  body{background:#fff;color:#000}
}

/* ==================================================================
   19. WOOCOMMERCE ET EXTENSIONS — ce qui doit céder (lot 35)
   Les feuilles de WooCommerce, de PW Gift Cards et des extraits WPCode
   arrivent avec leurs arrondis et un bouton olive. On tranche ici, avec
   !important parce que ces feuilles sont chargées après la nôtre ou
   écrivent en ligne. Rien n'est retiré : seulement redessiné.
   ================================================================== */

.mb-page .button,.mb-page button,.mb-page input,.mb-page select,.mb-page textarea,
.mb-page .woocommerce-message,.mb-page .woocommerce-info,.mb-page .woocommerce-error,
.mb-page .wc-block-components-button,.mb-page .wc-block-components-text-input input,
.mb-page .wc-block-components-textarea,.mb-page .wc-block-components-notice-banner,
.mb-page .pwgc-input-text,.mb-page #pwgc-custom-amount,.mb-page #pwgc-message{border-radius:0!important}

.woocommerce button.button.alt,
.woocommerce div.product form.cart .button.single_add_to_cart_button,
.woocommerce a.button.alt,.woocommerce input.button.alt,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button{
  background:var(--mb-gold-creme)!important;border:1px solid var(--mb-gold-creme)!important;color:var(--mb-creme)!important;
  font-family:var(--mb-sans)!important;font-weight:500!important;font-size:.76rem!important;
  letter-spacing:var(--mb-track)!important;text-transform:uppercase!important;
  min-height:var(--mb-btn-h)!important;line-height:1.2!important;box-shadow:none!important;text-shadow:none!important;
}
.woocommerce button.button.alt:hover,
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover,
.woocommerce a.button.alt:hover,.woocommerce input.button.alt:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover{background:var(--mb-ink)!important;border-color:var(--mb-ink)!important;color:var(--mb-creme)!important}
.woocommerce div.product form.cart .button.single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .button.single_add_to_cart_button:disabled,
.woocommerce div.product form.cart .button.single_add_to_cart_button.wc-variation-selection-needed{
  background:var(--mb-creme-2)!important;color:var(--mb-ink-muted)!important;border-color:var(--mb-line-forte)!important;cursor:not-allowed;
}

/* ==================================================================
   20. LE BANDEAU DE RÉASSURANCE — sous « Ajouter au panier »
   Rendu par functions.php (woocommerce_after_add_to_cart_button).
   Réassurance seulement : le paiement est chiffré, traité par Stripe,
   cartes acceptées. Aucune promesse de délai ni de livraison.
   ================================================================== */

.mb-reassurance{
  flex-basis:100%;display:flex;flex-wrap:wrap;gap:.55rem 1.5rem;
  margin:1.1rem 0 0;padding:1rem 0 0;list-style:none;
  border-top:1px solid var(--mb-line-creme);
}
.mb-reassurance li{
  display:inline-flex;align-items:center;gap:.55rem;margin:0;
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mb-ink-muted);
}
.mb-reassurance svg{width:16px;height:16px;flex:0 0 auto;color:var(--mb-gold-creme)}
.mb-reassurance b{font-weight:500;color:var(--mb-ink-2);letter-spacing:.02em;text-transform:none;font-size:.8rem}

/* ==================================================================
   21. MOBILE — le sélecteur de montant au-dessus du pli (≤ 600 px)
   Le résumé (titre, prix, montant, bouton) passe avant le visuel
   d'ambiance ; le visuel descend sous le formulaire.
   ================================================================== */

@media (max-width:600px){
  .woocommerce div.product{display:flex;flex-direction:column}
  .woocommerce div.product .summary{order:0;margin:0}
  .woocommerce div.product div.images{order:1;margin:2rem 0 0}
  .woocommerce div.product .woocommerce-tabs{order:2}
  .mb-page{padding-block:1.4rem 3rem}
  .mb-fil{margin-bottom:1rem}
  .woocommerce div.product .product_title{font-size:1.8rem;margin-bottom:.5rem}
  .woocommerce div.product p.price{margin-bottom:.8rem}
  .woocommerce div.product .woocommerce-product-details__short-description{font-size:.95rem;line-height:1.6;margin-bottom:1.1rem}
  .woocommerce div.product form.cart table.variations td.value select{max-width:none}
}

/* ==================================================================
   22. LE BANDEAU TÉMOINS (CookieYes) — habillage seulement
   Le script reste celui de l'extension ; on aligne police, arrondis et
   boutons, et on laisse le texte se dérouler (il était tronqué).
   ================================================================== */

.cky-consent-container,.cky-consent-container *{font-family:var(--mb-sans)!important;border-radius:0!important}
.cky-consent-bar{background:var(--mb-bg-alt)!important;border-top:1px solid rgba(184,147,90,.45)!important;color:#E8E1D3!important;box-shadow:0 -18px 50px rgba(0,0,0,.45)!important}
.cky-title{font-family:var(--mb-serif)!important;font-size:18px!important;color:var(--mb-cream)!important}
.cky-notice-des,.cky-notice-des p{color:var(--mb-muted)!important;font-size:12.5px!important;line-height:1.5!important;max-height:none!important;overflow:visible!important;display:block!important;-webkit-line-clamp:unset!important}
.cky-notice-des a{color:var(--mb-gold)!important;text-decoration:underline!important}
.cky-btn{background:transparent!important;border:1px solid var(--mb-gold)!important;color:var(--mb-cream)!important;font-size:12px!important;font-weight:500!important;letter-spacing:var(--mb-track)!important;text-transform:uppercase!important;padding:11px 18px!important}
.cky-btn:hover{background:var(--mb-gold)!important;color:var(--mb-bg)!important}
