/*
Theme Name:   ZBA Vins
Theme URI:    https://zbavins.com
Description:  Child theme GeneratePress pour ZBA Vins — agent commercial vins & spiritueux B2B. Design "Papier & Encre de vin".
Author:       Eracle
Author URI:   https://eracle.fr
Template:     generatepress
Version:      1.0.0
Text Domain:  zbavins
*/

/* =========================================================
   TOKENS — système de design (source : maquettes V2)
   Changer une valeur ici la change partout.
   ========================================================= */
:root {
  /* Palette "Papier & Encre de vin" */
  --papier:    #F7F5F0;   /* fond général */
  --papier-2:  #EFECE4;   /* fonds secondaires, bandeaux */
  --encre:     #1C1A17;   /* texte principal, header sombre */
  --encre-2:   #57534B;   /* texte secondaire */
  --vin:       #5E1B2E;   /* accent — lie de vin. CTA, liens, actifs */
  --vin-vif:   #8A2740;   /* hover de l'accent */
  --ligne:     #D8D3C8;   /* filets, bordures */
  --ok:        #2E6B4F;   /* stock disponible */
  --alerte:    #B4530A;   /* stock faible */

  /* Typo */
  --font-titre: 'Archivo', sans-serif;
  --font-texte: 'Archivo', sans-serif;
  --font-mono:  'IBM Plex Mono', monospace;

  /* Rythme */
  --rayon: 8px;
  --rayon-pill: 99px;
  --largeur-site: 1280px;
  --largeur-large: 1360px;
}

/* =========================================================
   BASE
   ========================================================= */
body {
  background: var(--papier);
  color: var(--encre);
  font-family: var(--font-texte);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .titre {
  font-family: var(--font-titre);
  font-weight: 750;
  font-stretch: 110%;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--encre);
}

h1 { font-size: clamp(44px, 7vw, 92px); line-height: 0.98; }
h2 { font-size: clamp(28px, 4vw, 44px); }

a { color: var(--vin); }
a:hover { color: var(--vin-vif); }

.mono {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* =========================================================
   COMPOSANTS RÉUTILISABLES
   ========================================================= */
.btn {
  display: inline-block;
  padding: 14px 26px;
  border-radius: var(--rayon-pill);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  transition: all .15s;
  cursor: pointer;
  border: none;
  font-family: var(--font-texte);
}
.btn-plein { background: var(--vin); color: #fff; }
.btn-plein:hover { background: var(--vin-vif); color: #fff; }
.btn-ligne { border: 1.5px solid var(--encre); color: var(--encre); background: transparent; }
.btn-ligne:hover { background: var(--encre); color: var(--papier); }

.mini-btn {
  font-size: 12.5px; font-weight: 600;
  padding: 7px 14px; border-radius: var(--rayon-pill);
  border: 1px solid var(--ligne);
  text-decoration: none; color: var(--encre);
  transition: all .15s; white-space: nowrap;
  background: transparent;
}
.mini-btn:hover { border-color: var(--encre); color: var(--encre); }
.mini-btn.accent { border-color: var(--vin); color: var(--vin); }
.mini-btn.accent:hover { background: var(--vin); color: #fff; }

.eyebrow {
  font-family: var(--font-mono);
  font-size: 12px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--vin);
  margin-bottom: 24px;
}

/* Bandeau sanitaire (Loi Évin) — injecté via hook, voir functions.php */
.legal-strip {
  background: var(--encre); color: var(--papier);
  font-size: 11.5px; text-align: center;
  padding: 6px 16px; letter-spacing: 0.02em;
}

/* =========================================================
   SURCHARGES GENERATEPRESS
   ========================================================= */
.site-header { background: var(--papier); border-bottom: 1px solid var(--ligne); }
.main-navigation a { font-weight: 500; font-size: 14px; }
.inside-header, .grid-container { max-width: var(--largeur-site); }

/* Cacher le panier du header tant que demandé (réversible :
   supprimer cette règle pour réafficher) */
.wc-menu-cart, .header-cart, .menu-item-cart { display: none !important; }

/* =========================================================
   WOOCOMMERCE — habillage minimal (les templates custom
   arrivent à l'étape 5, ceci évite le rendu brut d'ici là)
   ========================================================= */
.woocommerce button.button,
.woocommerce a.button {
  background: var(--encre); color: var(--papier);
  border-radius: var(--rayon-pill); font-weight: 600;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover { background: var(--vin); color: #fff; }
.woocommerce span.price { font-family: var(--font-mono); }


/* =========================================================
   HEADER — style maquette
   ========================================================= */
.site-header .inside-header {
  display: flex; align-items: center;
  justify-content: space-between;
  padding-top: 12px; padding-bottom: 12px;
}
.main-title a {
  font-family: var(--font-titre);
  font-weight: 800; font-stretch: 125%;
  font-size: 20px; letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--encre) !important;
}
.main-navigation .main-nav ul li a {
  font-size: 14px; font-weight: 500;
  color: var(--encre);
}
.main-navigation .main-nav ul li a:hover { color: var(--vin); }
.main-navigation .main-nav ul li.current-menu-item a { color: var(--vin); }

/* Dernier élément du menu = bouton "Espace pro" en pill */
.main-navigation .main-nav ul li:last-child a {
  border: 1.5px solid var(--encre);
  border-radius: var(--rayon-pill);
  padding: 9px 18px !important;
  font-weight: 600; line-height: 1;
  transition: all .15s;
}
.main-navigation .main-nav ul li:last-child a:hover {
  background: var(--encre); color: var(--papier);
}

/* Header fondu dans le fond papier (supprime le bloc blanc du menu) */
.site-header,
.main-navigation,
.main-navigation .main-nav ul,
.navigation-branding,
.inside-navigation {
  background-color: var(--papier) !important;
}
.main-navigation { border: none; box-shadow: none; }
.site-header { border-bottom: 1px solid var(--ligne); }

.zba-carton{
  min-width:38px; height:30px; padding:0 4px;
  border:1px solid var(--ligne); border-radius:5px; background:#fff;
  font-family:var(--font-mono); font-size:12px; cursor:pointer;
  transition:all .12s; color:var(--encre);
  display:inline-flex; align-items:center; justify-content:center;
}
.zba-carton:hover{border-color:var(--encre)}
.zba-carton.actif{background:var(--vin); color:#fff; border-color:var(--vin)}







/* =========================================================
   ZBA Vins — PANIER & CHECKOUT (blocs Gutenberg) — v3
   REMPLACE INTEGRALEMENT le bloc CSS panier v2 dans style.css
   Changement clé : on ne touche plus au layout interne du bloc
   (il gère lui-même ses colonnes via ses classes is-large/is-mobile).
   ========================================================= */

/* ---- 1. ELARGIR le conteneur (inchangé) ---- */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content,
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-cart .inside-article,
.woocommerce-checkout .inside-article{
  max-width:1180px!important;
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:32px!important;
  padding-right:32px!important;
}
.woocommerce-cart .container,
.woocommerce-checkout .container,
.woocommerce-cart .grid-container,
.woocommerce-checkout .grid-container{
  max-width:1180px!important;
}

/* ---- 2. Le bloc panier : largeur seulement, PAS de grid ---- */
.wp-block-woocommerce-cart{
  max-width:none!important;
  width:100%!important;
}
/* Le sticky sur la colonne totaux, sans toucher au reste */
.wc-block-cart__sidebar{
  position:sticky;
  top:32px;
}

/* ---- 2bis. Forcer le bloc en pleine largeur ---- */
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
.woocommerce-cart .wc-block-cart{
  max-width:none!important;
  width:100%!important;
}
/* Neutraliser la contrainte de layout Gutenberg (content-size) */
.woocommerce-cart .entry-content.is-layout-constrained > *,
.woocommerce-cart .is-layout-constrained > .wp-block-woocommerce-cart{
  max-width:none!important;
}

/* ---- 2 colonnes forcées en desktop ---- */
@media (min-width: 901px){
  .woocommerce-cart .wc-block-cart.wc-block-components-sidebar-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 380px!important;
    gap:48px!important;
    align-items:start!important;
  }
  .woocommerce-cart .wc-block-cart .wc-block-components-main{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
    float:none!important;
    position:static!important;
    padding-right:0!important;
  }
  .woocommerce-cart .wc-block-cart .wc-block-components-sidebar{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
    float:none!important;
    position:static!important;
    padding-left:0!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
  }
}


/* ---- 3. Titre de page (inchangé) ---- */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.wp-block-post-title{
  font-family:var(--font-titre,serif)!important;
  font-size:clamp(34px,5vw,58px)!important;
  margin-bottom:40px!important;
  text-align:left!important;
}

/* ---- 4. Lignes produits : cosmétique uniquement ---- */
.wc-block-cart-items__row{
  border-bottom:1px solid var(--papier-2,#efece4)!important;
}
.wc-block-cart-item__image img{
  max-width:96px!important;
  height:auto!important;
}
.wc-block-components-product-name{
  font-weight:600!important;
  font-size:16px!important;
  color:var(--encre)!important;
  text-decoration:none!important;
  line-height:1.4!important;
}
.wc-block-components-product-name:hover{color:var(--vin)!important}
.wc-block-cart-item__prices,
.wc-block-components-product-price{
  font-family:var(--font-mono,monospace)!important;
  font-size:15px!important;
}
.wc-block-cart-item__total{
  font-family:var(--font-mono,monospace)!important;
  font-size:17px!important;
}

/* ---- 5. Selecteur de quantite (inchangé) ---- */
.wc-block-components-quantity-selector{
  border:1px solid var(--ligne,#d8d3c8)!important;
  border-radius:8px!important;
  max-width:130px!important;
  margin-top:10px!important;
}
.wc-block-components-quantity-selector__input{
  font-family:var(--font-mono,monospace)!important;
}

/* ---- 6. Encadre des totaux (inchangé) ---- */
.wp-block-woocommerce-cart-order-summary-block{
  border:1px solid var(--encre,#1c1a17)!important;
  border-radius:var(--rayon,10px)!important;
  padding:28px!important;
  background:var(--papier,#f7f5f0)!important;
}
.wc-block-cart__totals-title{
  font-family:var(--font-mono,monospace)!important;
  font-size:11px!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
  color:var(--encre-2,#57534b)!important;
  margin-bottom:18px!important;
}
.wc-block-components-totals-item{
  padding:10px 0!important;
}
.wc-block-components-totals-footer-item{
  border-top:1px solid var(--ligne,#d8d3c8)!important;
  padding-top:18px!important;
  margin-top:8px!important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--font-mono,monospace)!important;
  font-size:26px!important;
  color:var(--encre)!important;
}

/* ---- 7. Boutons (inchangé) ---- */
.wc-block-cart__submit-button,
.wc-block-components-button,
.wc-block-components-checkout-place-order-button,
.wp-block-button__link{
  background:var(--vin,#5e1b2e)!important;
  color:#fff!important;
  border:none!important;
  border-radius:var(--rayon-pill,99px)!important;
  padding:16px 32px!important;
  font-family:var(--font-texte,sans-serif)!important;
  font-weight:600!important;
  font-size:15px!important;
  width:100%!important;
  text-align:center!important;
  transition:background .15s!important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-button:hover{
  background:var(--vin-vif,#7a2338)!important;
}

/* ---- 8. Coupon (inchangé) ---- */
.wc-block-components-totals-coupon__form{margin-top:8px!important}
.wc-block-components-totals-coupon input{
  border:1px solid var(--ligne,#d8d3c8)!important;
  border-radius:var(--rayon-pill,99px)!important;
  padding:12px 18px!important;
}
.wc-block-components-panel__button{
  font-size:14px!important;
  color:var(--encre-2,#57534b)!important;
}

/* ---- 9. Messages (inchangé) ---- */
.wc-block-components-notice-banner{
  border-radius:8px!important;
  border:none!important;
  font-size:15px!important;
}

/* ---- 10. Responsive : padding seulement, plus de grid ---- */
@media(max-width:900px){
  .wc-block-cart__sidebar{position:static}
  .woocommerce-cart .entry-content,
  .woocommerce-checkout .entry-content{
    padding-left:20px!important;
    padding-right:20px!important;
  }
}


/* =========================================================
   ZBA Vins — Footer personnalise
   A COLLER a la fin de style.css
   ========================================================= */
.zba-footer{background:var(--encre,#1c1a17);color:var(--papier,#f7f5f0);margin-top:80px}
.zba-footer-inner{max-width:var(--largeur-site,1200px);margin:0 auto;padding:64px 32px 48px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px}
.zba-footer-logo{font-family:var(--font-titre,serif);font-weight:750;font-stretch:110%;letter-spacing:0.02em;font-size:22px;margin-bottom:16px}
.zba-footer-tagline{font-size:14px;line-height:1.6;color:rgba(247,245,240,.6);margin:0 0 24px}
.zba-footer-social{display:flex;gap:14px}
.zba-footer-social a{width:38px;height:38px;border:1px solid rgba(247,245,240,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--papier,#f7f5f0);transition:all .15s}
.zba-footer-social a:hover{background:var(--vin,#5e1b2e);border-color:var(--vin,#5e1b2e)}
.zba-footer-titre{font-family:var(--font-mono,monospace);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(247,245,240,.5);margin-bottom:16px}
.zba-footer-col{display:flex;flex-direction:column;gap:10px}
.zba-footer-col a{color:rgba(247,245,240,.85);text-decoration:none;font-size:15px;transition:color .15s}
.zba-footer-col a:hover{color:var(--papier,#f7f5f0)}
.zba-footer-bas{max-width:var(--largeur-site,1200px);margin:0 auto;padding:24px 32px 40px;border-top:1px solid rgba(247,245,240,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.zba-footer-legal{font-size:12px;color:rgba(247,245,240,.5);font-style:italic}
.zba-footer-copy{font-family:var(--font-mono,monospace);font-size:12px;color:rgba(247,245,240,.4)}
@media(max-width:820px){.zba-footer-inner{grid-template-columns:1fr 1fr;gap:32px}.zba-footer-brand{grid-column:1 / -1}.zba-footer-bas{flex-direction:column}}
@media(max-width:480px){.zba-footer-inner{grid-template-columns:1fr}}


/* Le conteneur de page custom bride les pages Woo */
.woocommerce-cart .zba-page,
.woocommerce-cart .zba-page-contenu,
.woocommerce-checkout .zba-page,
.woocommerce-checkout .zba-page-contenu{
  max-width:none!important;
  width:100%!important;
  float:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
}



/* =========================================================
   ZBA Vins — Checkout : rythme & espacements
   ========================================================= */

/* Respiration en haut de page (le titre était collé au header) */
.woocommerce-checkout .zba-page-contenu,
.woocommerce-cart .zba-page-contenu{
  padding-top:48px!important;
  padding-bottom:96px!important;
}

/* Titres de section */
.wc-block-components-checkout-step__title{
  font-family:var(--font-titre)!important;
  font-size:22px!important;
  letter-spacing:-0.01em!important;
  margin-bottom:20px!important;
}
.wc-block-components-checkout-step{
  margin-bottom:44px!important;
}
.wc-block-components-checkout-step__container{
  padding-left:0!important;
}
/* Retirer la numérotation à gauche si elle décale */
.wc-block-components-checkout-step__heading{
  margin-bottom:16px!important;
}

/* Champs : hauteur et espacement cohérents */
.wc-block-components-text-input,
.wc-block-components-country-input,
.wc-block-components-state-input{
  margin-bottom:16px!important;
}
.wc-block-components-text-input input,
.wc-block-components-country-input select,
.wc-block-components-state-input select,
.wc-block-checkout input[type="text"],
.wc-block-checkout input[type="email"],
.wc-block-checkout input[type="tel"]{
  padding:16px 16px 8px!important;
  height:auto!important;
  min-height:56px!important;
  border-radius:8px!important;
}

/* Résumé de commande à droite */
.wp-block-woocommerce-checkout-order-summary-block{
  padding:32px!important;
}
.wc-block-components-order-summary-item{
  padding:16px 0!important;
}
.wc-block-components-totals-item{
  padding:12px 0!important;
}
.wc-block-components-totals-footer-item{
  padding-top:20px!important;
  margin-top:12px!important;
}

/* Options de paiement */
.wc-block-components-radio-control__option{
  padding:20px 20px 20px 52px!important;
}
.wp-block-woocommerce-checkout-payment-block{
  margin-top:8px!important;
}

@media (min-width: 901px){
  .woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout{
    grid-template-columns:minmax(0,1fr) 440px!important;
  }
}
.wp-block-woocommerce-checkout-order-summary-block{
  padding:28px!important;
}
.wc-block-components-order-summary-item__image{
  width:56px!important;
}

/* Titre de page checkout : plus compact */
.woocommerce-checkout .entry-title,
.woocommerce-checkout .wp-block-post-title{
  font-size:clamp(32px,4vw,48px)!important;
  margin-bottom:56px!important;
}

/* Résumé : élargir + réduire vignette */
@media (min-width: 901px){
  .woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout{
    grid-template-columns:minmax(0,1fr) 460px!important;
  }
}
.wc-block-components-order-summary-item__image{
  width:48px!important;
  flex:0 0 48px!important;
}
.wc-block-components-order-summary-item__description{
  padding-right:8px!important;
}

/* Page Mon Compte : aligner les deux colonnes sur leurs cadres */
.zba-compte-grille{
  align-items: start;
}
/* Le titre "SE CONNECTER" ne décale plus la colonne : on le sort
   du calcul de hauteur en le positionnant, ou on met un titre
   miroir à droite. Ici : on aligne les DEUX cadres en haut. */
.zba-encart-acces{
  padding-top: 34px !important;
  margin-top: 0 !important;
}