/*
Theme Name:   Blocksy Child Rigolettres
Theme URI:    https://rigolettres.fr/
Description:  Thème enfant de Blocksy pour Rigolettres — design system éditorial (Fraunces + Nunito), palette crème/vert, boutons pill.
Author:       Arthur Etienne
Author URI:   https://rigolettres.fr/
Template:     blocksy
Version:      1.1.0
Text Domain:  blocksy-child
*/

/* ===========================================================
   1. TOKENS — variables design system
   =========================================================== */
:root{
  --rigo-cream:#FBF8F1;
  --rigo-cream-warm:#F4EFE3;
  --rigo-paper:#FFFFFF;
  --rigo-ink:#2A1D0F;
  --rigo-ink-soft:#4B3A28;
  --rigo-muted:#6B7280;
  --rigo-border:#E7E2D5;
  --rigo-green:#5C8E2E;
  --rigo-green-dark:#4A7325;
  --rigo-sky:#1E9FCB;
  --rigo-sky-dark:#167FA3;
  --rigo-accent:#E8553D;
  --rigo-serif:'Fraunces','Cormorant Garamond',Georgia,serif;
  --rigo-sans:'Nunito',system-ui,-apple-system,sans-serif;
  --rigo-script:'Caveat',cursive;
  --rigo-r-sm:8px;
  --rigo-r-md:14px;
  --rigo-r-lg:24px;
  --rigo-r-pill:9999px;
  --rigo-container:1200px;
  --rigo-sh-1:0 1px 2px rgba(42,29,15,.05);
  --rigo-sh-2:0 6px 18px rgba(42,29,15,.08);
  --rigo-sh-3:0 12px 32px rgba(42,29,15,.12);
}

/* ===========================================================
   2. BASE — body, typo de fond
   =========================================================== */
body{
  background:var(--rigo-cream);
  color:var(--rigo-ink-soft);
  font-family:var(--rigo-sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

/* ===========================================================
   3. TYPOGRAPHIE — titres & paragraphes
   =========================================================== */
h1, h2, h3, h4, .h1, .h2, .h3, .h4{
  font-family:var(--rigo-serif);
  color:var(--rigo-ink);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-0.015em;
}
h1, .h1{font-size:clamp(2.4rem,5vw,4rem);letter-spacing:-0.025em;}
h2, .h2{font-size:clamp(1.9rem,3.4vw,2.8rem);}
h3, .h3{font-size:clamp(1.2rem,1.8vw,1.5rem);font-family:var(--rigo-sans);letter-spacing:-0.005em;line-height:1.3;}
h4{font-size:1.1rem;font-family:var(--rigo-sans);line-height:1.35;}

.rigo-eyebrow,
.rigo-script,
.rigo-signature,
.quote-author{
  font-family:var(--rigo-script);
  font-weight:700;
  color:var(--rigo-green-dark);
}

p, li{
  font-family:var(--rigo-sans);
  font-size:17px;
  line-height:1.65;
  color:var(--rigo-ink-soft);
}
p{margin-bottom:1.1em;}

a{color:var(--rigo-green-dark);text-underline-offset:3px;text-decoration-thickness:1.5px;}
a:hover{color:var(--rigo-green);}

/* ===========================================================
   4. BOUTONS — primary, secondary, ghost
   =========================================================== */
.btn,
.btn-primary,
.btn-secondary,
.btn-ghost,
a.button,
button.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
button.single_add_to_cart_button,
.wc-block-components-button,
.rigo-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:var(--rigo-sans);
  font-weight:700;
  font-size:16px;
  line-height:1;
  padding:14px 26px;
  border-radius:var(--rigo-r-pill);
  border:1.5px solid transparent;
  cursor:pointer;
  text-decoration:none;
  letter-spacing:-0.005em;
  transition:transform 200ms ease,box-shadow 200ms ease,background 200ms ease,border-color 200ms ease,color 200ms ease;
}

.btn-primary,
.wp-block-button.is-style-primary .wp-block-button__link,
.woocommerce button.single_add_to_cart_button,
button.single_add_to_cart_button,
.woocommerce a.button.alt,
.wc-block-components-button.contained,
.rigo-cta--primary{
  background:var(--rigo-green);
  color:#fff;
  border-color:var(--rigo-green);
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset, 0 6px 18px rgba(92,142,46,.25);
}
.btn-primary:hover,
.woocommerce button.single_add_to_cart_button:hover,
button.single_add_to_cart_button:hover,
.woocommerce a.button.alt:hover,
.wc-block-components-button.contained:hover,
.rigo-cta--primary:hover{
  background:var(--rigo-green-dark);
  border-color:var(--rigo-green-dark);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(92,142,46,.32);
}

.btn-secondary,
.rigo-cta--secondary{
  background:var(--rigo-sky);
  color:#fff;
  border-color:var(--rigo-sky);
  box-shadow:0 6px 18px rgba(30,159,203,.25);
}
.btn-secondary:hover,
.rigo-cta--secondary:hover{
  background:var(--rigo-sky-dark);
  border-color:var(--rigo-sky-dark);
  transform:translateY(-1px);
}

.btn-ghost,
.wp-block-button.is-style-outline .wp-block-button__link,
.woocommerce a.button:not(.alt){
  background:transparent;
  color:var(--rigo-ink);
  border:1.5px solid var(--rigo-ink);
  box-shadow:none;
}
.btn-ghost:hover,
.woocommerce a.button:not(.alt):hover{
  background:var(--rigo-ink);
  color:#fff;
  transform:translateY(-1px);
}

.btn-sm{font-size:14px;padding:10px 18px;}
.btn-lg{font-size:17px;padding:18px 32px;}

/* ===========================================================
   5. LAYOUT — containers, sections
   =========================================================== */
.ct-container, .container, .rigo-container{
  max-width:var(--rigo-container);
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(16px,4vw,32px);
  padding-right:clamp(16px,4vw,32px);
}

section{
  padding-top:clamp(56px,7vw,96px);
  padding-bottom:clamp(56px,7vw,96px);
}
section.marquee-wrap{padding-top:18px;padding-bottom:18px;background:var(--rigo-ink);}
section.hero{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px);}

/* Alternance : sections crème / cream-warm */
.rigol-preview-root > section.story,
.rigol-preview-root > section.methode,
.rigol-preview-root > section.press,
.rigol-preview-root > section.proof{
  background:var(--rigo-cream-warm);
}

/* ===========================================================
   6. CARDS — produits & contenus
   =========================================================== */
.rigo-card,
ul.products li.product,
.wc-block-grid__product{
  background:#fff;
  border-radius:var(--rigo-r-md);
  border:1px solid var(--rigo-border);
  padding:20px;
  box-shadow:var(--rigo-sh-1);
  transition:box-shadow 200ms ease, transform 200ms ease;
}
.rigo-card:hover,
ul.products li.product:hover{
  box-shadow:var(--rigo-sh-2);
  transform:translateY(-2px);
}

ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title{
  font-family:var(--rigo-serif);
  font-weight:700;
  font-size:1.2rem;
  color:var(--rigo-ink);
  margin-bottom:8px;
  line-height:1.3;
}

.price, .woocommerce-Price-amount{
  font-family:var(--rigo-sans);
  font-weight:800;
  color:var(--rigo-ink);
}
body.woocommerce div.product p.price,
body.woocommerce div.product p.price .woocommerce-Price-amount,
body.woocommerce div.product p.price bdi,
body.woocommerce ul.products li.product .price,
body.woocommerce ul.products li.product .price .woocommerce-Price-amount,
body.woocommerce ul.products li.product .price bdi{
  font-family:var(--rigo-sans);
  font-weight:800;
  color:var(--rigo-ink);
}
body.woocommerce div.product p.price{
  font-size:1.6rem;
  margin-top:.4em;
  margin-bottom:1em;
}

/* ===========================================================
   7. WOOCOMMERCE — fiche produit & shop
   =========================================================== */
.product_title,
.woocommerce-products-header__title{
  font-family:var(--rigo-serif);
  font-weight:700;
  color:var(--rigo-ink);
}
.woocommerce-products-header__title{
  font-size:clamp(2.4rem,5vw,4rem);
  text-align:center;
}
.woocommerce-tabs .panel{
  background:#fff;
  border-radius:var(--rigo-r-md);
  border:1px solid var(--rigo-border);
  padding:24px;
}

/* ===========================================================
   8. HEADER — navigation
   =========================================================== */
header, .site-header{
  background:rgba(251,248,241,.92);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--rigo-border);
}
header a, .site-header a{
  font-family:var(--rigo-sans);
  font-weight:600;
  color:var(--rigo-ink);
}

/* ===========================================================
   9. FORMS — input, textarea, select
   =========================================================== */
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password],
textarea, select{
  font-family:var(--rigo-sans);
  font-size:16px;
  padding:12px 14px;
  border:1.5px solid var(--rigo-border);
  border-radius:var(--rigo-r-sm);
  background:#fff;
  color:var(--rigo-ink);
  transition:border-color 150ms ease, box-shadow 150ms ease;
}
input:focus, textarea:focus, select:focus{
  outline:none;
  border-color:var(--rigo-green);
  box-shadow:0 0 0 3px rgba(92,142,46,.18);
}

/* ===========================================================
   7b. FICHE PRODUIT — refonte UX/UI
   =========================================================== */

/* --- Breadcrumb : séparateur ›, padding, font --- */
.woocommerce-breadcrumb,
.ct-breadcrumbs{
  font-family:var(--rigo-sans);
  font-size:14px;
  color:var(--rigo-muted);
  padding:18px 0 8px;
  margin-bottom:0;
  letter-spacing:.005em;
}
.woocommerce-breadcrumb a,
.ct-breadcrumbs a{
  color:var(--rigo-ink-soft);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color 150ms ease, color 150ms ease;
}
.woocommerce-breadcrumb a:hover,
.ct-breadcrumbs a:hover{
  color:var(--rigo-green-dark);
  border-bottom-color:currentColor;
}
.woocommerce-breadcrumb{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  white-space:normal;
}
.woocommerce-breadcrumb > *{display:inline;}
/* Force separator with content (fallback if WC outputs ` / `) */
.woocommerce-breadcrumb .delimiter,
.ct-breadcrumbs .ct-divider{
  color:var(--rigo-border);
  margin:0 6px;
}

/* --- Wrapper produit : respiration & fond --- */
body.woocommerce div.product{
  margin-top:24px;
}
body.woocommerce div.product .product-entry-wrapper{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:start;
}
/* Override Blocksy : .ct-default-gallery .entry-summary force width:calc(100% - 50%) + margin-inline-start:40px
   → on remet en grid-cell natif sinon les enfants se rétrécissent à 50% */
body.woocommerce div.product .product-entry-wrapper > .summary,
body.woocommerce div.product .product-entry-wrapper > .entry-summary,
body.woocommerce div.product .product-entry-wrapper > .woocommerce-product-gallery,
body.ct-default-gallery div.product .summary,
body.ct-default-gallery div.product .entry-summary,
body.ct-default-gallery div.product .woocommerce-product-gallery,
body.ct-stacked-gallery div.product .summary,
body.ct-stacked-gallery div.product .entry-summary,
body.ct-stacked-gallery div.product .woocommerce-product-gallery{
  width:auto !important;
  max-width:none !important;
  margin-inline-start:0 !important;
  margin-inline-end:0 !important;
  float:none !important;
}
@media (max-width:900px){
  body.woocommerce div.product .product-entry-wrapper{
    grid-template-columns:1fr;
    gap:24px;
  }
}

/* --- Galerie produit : ratio respectueux + ombre douce --- */
body.woocommerce div.product .woocommerce-product-gallery{
  background:#fff;
  border-radius:var(--rigo-r-md);
  border:1px solid var(--rigo-border);
  padding:16px;
  box-shadow:var(--rigo-sh-1);
  overflow:hidden;
}
body.woocommerce div.product .woocommerce-product-gallery__image img{
  border-radius:var(--rigo-r-sm);
  object-fit:contain;
  background:var(--rigo-cream);
  width:100%;
  height:auto;
  max-height:560px;
  display:block;
}
body.woocommerce div.product .flex-control-thumbs{
  display:flex;
  gap:8px;
  margin-top:12px;
  padding:0;
  list-style:none;
}
body.woocommerce div.product .flex-control-thumbs li{
  width:64px;
  margin:0;
}
body.woocommerce div.product .flex-control-thumbs img{
  border:2px solid transparent;
  border-radius:var(--rigo-r-sm);
  cursor:pointer;
  opacity:.7;
  transition:opacity 150ms ease, border-color 150ms ease;
}
body.woocommerce div.product .flex-control-thumbs img:hover,
body.woocommerce div.product .flex-control-thumbs img.flex-active{
  opacity:1;
  border-color:var(--rigo-green);
}
body.woocommerce div.product .woocommerce-product-gallery__trigger{
  background:rgba(255,255,255,.92);
  border-radius:50%;
  border:1px solid var(--rigo-border);
  width:36px;
  height:36px;
  top:24px;
  right:24px;
}

/* --- Summary : titre + prix + meta --- */
body.woocommerce div.product .summary{
  padding:8px 0;
}
body.woocommerce div.product .product_title{
  margin:0 0 12px;
  letter-spacing:-0.02em;
}
body.woocommerce div.product .product_meta{
  font-size:13px;
  color:var(--rigo-muted);
  border-top:1px solid var(--rigo-border);
  padding-top:16px;
  margin-top:24px;
}
body.woocommerce div.product .product_meta a{
  color:var(--rigo-green-dark);
  text-decoration:none;
}
body.woocommerce div.product .product_meta > span{
  display:block;
  margin-bottom:4px;
}

/* --- Quantité + ATC --- */
body.woocommerce div.product form.cart{
  display:flex;
  align-items:center;
  gap:12px;
  margin:24px 0 16px;
}
/* ── Quantity widget PDP — refonte complète ─────────────────────────────
   Blocksy injecte `.ct-decrease` / `.ct-increase` en `position:absolute`
   par-dessus l'input → ils chevauchent le chiffre et héritent du hover
   bleu Blocksy par défaut. On repasse en flex pour aligner [-][input][+]
   proprement, sans chevauchement, dans la DA Rigolettres. */
body.woocommerce div.product form.cart .quantity{
  display:inline-flex !important;
  align-items:stretch;
  position:static !important;
  width:auto !important;
  padding:0 !important;
  border-radius:var(--rigo-r-sm);
  overflow:hidden;
}
/* DOM order Blocksy = ct-increase, ct-decrease, label, input.
   On force l'ordre visuel : [- 1 +] via flex `order`. */
body.woocommerce div.product form.cart .quantity .ct-decrease{ order:1 !important; }
body.woocommerce div.product form.cart .quantity input.qty{ order:2 !important; }
body.woocommerce div.product form.cart .quantity .ct-increase{ order:3 !important; }
body.woocommerce div.product form.cart .quantity .screen-reader-text{ order:0 !important; }
body.woocommerce div.product form.cart .quantity .ct-decrease,
body.woocommerce div.product form.cart .quantity .ct-increase{
  position:static !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:42px !important;
  height:auto !important;
  min-height:46px;
  background:var(--rigo-cream, #FAF6EC) !important;
  color:var(--rigo-ink, #2A1D0F) !important;
  border:1.5px solid var(--rigo-border) !important;
  cursor:pointer;
  user-select:none;
  font-size:18px;
  font-weight:600;
  line-height:1;
  transition:background .15s ease, color .15s ease;
  margin:0 !important;
}
body.woocommerce div.product form.cart .quantity .ct-decrease{
  border-radius:var(--rigo-r-sm) 0 0 var(--rigo-r-sm);
  border-right-width:0 !important;
}
body.woocommerce div.product form.cart .quantity .ct-increase{
  border-radius:0 var(--rigo-r-sm) var(--rigo-r-sm) 0;
  border-left-width:0 !important;
}
body.woocommerce div.product form.cart .quantity .ct-decrease::before{
  content:"−";
}
body.woocommerce div.product form.cart .quantity .ct-increase::before{
  content:"+";
}
body.woocommerce div.product form.cart .quantity .ct-decrease:hover,
body.woocommerce div.product form.cart .quantity .ct-increase:hover,
body.woocommerce div.product form.cart .quantity .ct-decrease:focus-visible,
body.woocommerce div.product form.cart .quantity .ct-increase:focus-visible{
  background:var(--rigo-cream-dark, #ECE3CB) !important;
  color:var(--rigo-blue, #27B4E5) !important;
  outline:none;
}
body.woocommerce div.product form.cart .quantity input.qty{
  position:static !important;
  width:64px !important;
  padding:12px 6px !important;
  text-align:center;
  font-weight:700;
  font-size:16px;
  border:1.5px solid var(--rigo-border) !important;
  border-radius:0 !important;
  background:#fff;
  /* Cache les spin buttons natifs (chevrons hover bleu Chrome/Safari/Firefox)
     qui camouflent le chiffre et cassent la DA */
  -moz-appearance:textfield;
  appearance:textfield;
}
body.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
body.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
body.woocommerce div.product form.cart .quantity input.qty:focus{
  outline:none;
  border-color:var(--rigo-blue,#27B4E5) !important;
  box-shadow:inset 0 0 0 1.5px var(--rigo-blue,#27B4E5);
  position:relative;
  z-index:1;
}
body.woocommerce div.product form.cart .single_add_to_cart_button{
  flex:1;
  padding:16px 24px;
  font-size:16px;
}

/* --- Onglets : pills + ombre douce ---
   Override de la CSS inline Blocksy (ct-main-styles-inline-css) :
   spécificité plus haute (body.single-product) + !important sur les
   propriétés ciblées (color/border) car la CSS Customizer arrive après. */
body.woocommerce div.product .woocommerce-tabs{
  margin-top:48px;
}
body.single-product div.product .woocommerce-tabs ul.tabs,
body.single-product div.product .woocommerce-tabs ul.wc-tabs{
  display:flex !important;
  gap:8px;
  list-style:none;
  padding:0 !important;
  margin:0 0 -1px !important;
  border-bottom:1px solid var(--rigo-border) !important;
  flex-wrap:wrap;
  background:transparent !important;
}
body.single-product div.product .woocommerce-tabs ul.tabs::before,
body.single-product div.product .woocommerce-tabs ul.tabs::after,
body.single-product div.product .woocommerce-tabs ul.wc-tabs::before,
body.single-product div.product .woocommerce-tabs ul.wc-tabs::after{display:none !important;}
body.single-product div.product .woocommerce-tabs ul.tabs li,
body.single-product div.product .woocommerce-tabs ul.wc-tabs li{
  background:transparent !important;
  border:none !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:0 !important;
}
body.single-product div.product .woocommerce-tabs ul.tabs li::before,
body.single-product div.product .woocommerce-tabs ul.tabs li::after,
body.single-product div.product .woocommerce-tabs ul.wc-tabs li::before,
body.single-product div.product .woocommerce-tabs ul.wc-tabs li::after{display:none !important;}
body.single-product div.product .woocommerce-tabs ul.tabs li a,
body.single-product div.product .woocommerce-tabs ul.wc-tabs li a{
  display:inline-block !important;
  padding:14px 20px !important;
  font-family:var(--rigo-sans) !important;
  font-weight:700 !important;
  font-size:15px !important;
  color:var(--rigo-muted) !important;
  text-decoration:none !important;
  border:none !important;
  border-bottom:2px solid transparent !important;
  background:transparent !important;
  transition:color 150ms ease, border-color 150ms ease;
}
body.single-product div.product .woocommerce-tabs ul.tabs li.active a,
body.single-product div.product .woocommerce-tabs ul.wc-tabs li.active a,
body.single-product div.product .woocommerce-tabs ul.tabs li a:hover,
body.single-product div.product .woocommerce-tabs ul.wc-tabs li a:hover{
  color:var(--rigo-ink) !important;
  border-bottom-color:var(--rigo-green) !important;
}
body.single-product div.product .woocommerce-tabs .panel{
  background:#fff !important;
  border-radius:0 0 var(--rigo-r-md) var(--rigo-r-md) !important;
  border:1px solid var(--rigo-border) !important;
  border-top:none !important;
  padding:32px !important;
  margin:0 !important;
  box-shadow:var(--rigo-sh-1);
}
body.woocommerce div.product .woocommerce-tabs .panel h2{
  font-size:1.4rem;
  margin:0 0 16px;
}
body.woocommerce div.product .woocommerce-tabs .panel p{
  color:var(--rigo-ink-soft);
}

/* --- Tableau "Informations complémentaires" --- */
body.woocommerce div.product .shop_attributes{
  border:none;
  border-collapse:separate;
  border-spacing:0;
  width:100%;
}
body.woocommerce div.product .shop_attributes tr{
  border-bottom:1px solid var(--rigo-border);
}
body.woocommerce div.product .shop_attributes tr:last-child{
  border-bottom:none;
}
body.woocommerce div.product .shop_attributes th,
body.woocommerce div.product .shop_attributes td{
  padding:14px 16px;
  border:none;
  font-size:15px;
}
body.woocommerce div.product .shop_attributes th{
  background:var(--rigo-cream-warm);
  font-family:var(--rigo-sans);
  font-weight:700;
  color:var(--rigo-ink);
  width:35%;
}
body.woocommerce div.product .shop_attributes td{
  background:#fff;
  color:var(--rigo-ink-soft);
  font-style:normal;
}
body.woocommerce div.product .shop_attributes td p{margin:0;}

/* --- Related & Upsells --- */
body.woocommerce div.product .related,
body.woocommerce div.product .upsells{
  margin-top:64px;
  padding-top:48px;
  border-top:1px solid var(--rigo-border);
}
body.woocommerce div.product .related > h2,
body.woocommerce div.product .upsells > h2{
  font-family:var(--rigo-serif);
  font-size:clamp(1.6rem,2.4vw,2.2rem);
  font-weight:700;
  text-align:center;
  margin:0 0 32px;
  color:var(--rigo-ink);
}
body.woocommerce div.product .related ul.products,
body.woocommerce div.product .upsells ul.products{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:20px;
}
body.woocommerce div.product .related ul.products li.product,
body.woocommerce div.product .upsells ul.products li.product{
  width:auto;
  margin:0;
  float:none;
}
body.woocommerce div.product .related ul.products li.product img,
body.woocommerce div.product .upsells ul.products li.product img{
  border-radius:var(--rigo-r-sm);
  background:var(--rigo-cream);
}

/* --- Avis tab --- */
body.woocommerce div.product #reviews .commentlist{
  list-style:none;
  padding:0;
}
body.woocommerce div.product #reviews .comment_container{
  background:var(--rigo-cream);
  border-radius:var(--rigo-r-sm);
  padding:16px;
  margin-bottom:12px;
}

/* ===========================================================
   11. UNIVERSAL CHROME — header/footer injectés par PHP
       (cf. includes/universal-header-footer-chrome.php)
   =========================================================== */

/* Masque le header/footer Blocksy natif partout — on injecte le nôtre */
header#header.ct-header,
footer#footer.ct-footer{display:none !important;}
body.ct-header-sticky,
body.has-ct-header-spacing{padding-top:0 !important;}

/*
 * Sur la home, le contenu de la page (id=21) embarque son propre header.
 * Notre chrome universel est maintenant injecté sur TOUTES les pages.
 * On masque le header natif de la home pour éviter le doublon.
 * (Le footer home est conservé — notre footer injecté reste désactivé sur front page.)
 */
body.home .site-header:not(#site-header){display:none !important;}

/* Masquer l'ancienne barre promo du contenu de page — remplacée par #rigo-promo-bar */
.ct-announcement-bar,[data-id="announcement_bar"],.blocksy-announcement-bar{display:none !important;}
/* Masquer aussi le doublon `.announce` provenant du contenu Gutenberg de la home (page id=21) */
.announce{display:none !important;}

/* ── Promo bar ── */
#rigo-promo-bar{
  background:#2a1d0f;
  color:#fff;
  font-size:13px;
  text-align:center;
  padding:8px 40px 8px 16px;
  position:relative;
  line-height:1.4;
}
.rigo-promo-close{
  position:absolute;
  right:12px; top:50%;
  transform:translateY(-50%);
  background:none; border:none;
  color:#fff; font-size:18px; line-height:1;
  cursor:pointer; opacity:.7; padding:4px;
}
.rigo-promo-close:hover{opacity:1;}

.site-header .container,
.site-footer .container{
  max-width:var(--rigo-container);
  margin:0 auto;
  padding:0 clamp(16px,4vw,32px);
}

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

/* ───────── HEADER ───────── */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,248,241,.92);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--rigo-border);
  width:100%;
}
.site-header .header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:14px clamp(16px,4vw,32px);
}
@media (min-width:768px){
  .site-header .header-inner{padding:16px clamp(16px,4vw,32px);}
}

.site-header .brand{
  display:inline-flex; align-items:center; gap:10px;
  padding:4px 0; text-decoration:none;
  transition:transform .2s cubic-bezier(.2,.8,.2,1);
  flex-shrink:0;
}
.site-header .brand:hover{transform:rotate(-2deg);}
.site-header .brand-pato img{
  width:40px; height:40px; object-fit:contain;
  filter:drop-shadow(0 2px 4px rgba(42,29,15,.15));
}
.site-header .brand-word,
.site-footer .brand-word{
  font-family:var(--rigo-script);
  font-weight:700;
  font-size:26px;
  letter-spacing:-.01em;
  line-height:1;
}
.site-header .brand-word span{display:inline-block; transition:transform .25s cubic-bezier(.2,.8,.2,1);}
.site-header .brand:hover .brand-word span:nth-child(odd){transform:translateY(-2px) rotate(-4deg);}
.site-header .brand:hover .brand-word span:nth-child(even){transform:translateY(2px) rotate(3deg);}

/* ───────── NAV desktop ───────── */
.site-header .nav{
  display:none;
  align-items:center;
  gap:4px;
  font-weight:700;
  font-size:14.5px;
  font-family:var(--rigo-sans);
}
@media (min-width:1024px){.site-header .nav{display:flex;}}

/* Liens simples et lien-racine du mega */
.site-header .nav-link,
.site-header .nav > a{
  position:relative;
  display:inline-flex; align-items:center; gap:3px;
  color:var(--rigo-ink);
  padding:6px 10px;
  border-radius:var(--rigo-r-sm);
  text-decoration:none;
  transition:color .2s, background .2s;
}
.site-header .nav-link:hover,
.site-header .nav > a:hover{
  color:var(--rigo-green-dark);
  background:rgba(92,142,46,.07);
}
/* Supprime le pseudo-element ::after hérité d'anciens styles */
.site-header .nav-link::after,
.site-header .nav > a::after{display:none;}

/* ───────── HEADER ACTIONS ───────── */
.site-header .header-actions{display:flex; align-items:center; gap:4px;}
.header-action-btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  color:var(--rigo-ink); text-decoration:none;
  transition:background .2s, color .2s;
}
.header-action-btn:hover{
  background:rgba(92,142,46,.10);
  color:var(--rigo-green-dark);
}
.site-header .cart-count{
  position:absolute; top:2px; right:2px;
  min-width:18px; height:18px; padding:0 5px;
  background:var(--rigo-accent); color:#fff;
  font-size:11px; font-weight:800;
  border-radius:9px;
  display:grid; place-items:center;
  border:2px solid var(--rigo-cream);
  line-height:1;
}
.site-header .cart-count[data-cart-count="0"]{display:none;}

/* ===========================================================
   12. MEGA-MENU
   =========================================================== */

/* ── Wrapper nav item avec mega ── */
.nav-has-mega{position:relative;}

/* Chevron */
.nav-chevron{
  opacity:.55;
  transition:transform .22s ease, opacity .2s;
  flex-shrink:0;
}
.nav-has-mega:hover .nav-chevron,
.nav-link[aria-expanded="true"] .nav-chevron{
  transform:rotate(180deg);
  opacity:1;
}

/*
 * Le mega-panel est HORS du <header> dans le DOM pour éviter le piège
 * will-change:transform du sticky-nav (qui crée une stacking context et
 * emprisonne les position:fixed enfants).
 */
.mega-panel{
  position:fixed;
  top:var(--rigo-hdr-h, 73px);
  left:0; right:0;
  background:#fff;
  border-top:2.5px solid var(--rigo-green);
  border-bottom:1px solid var(--rigo-border);
  box-shadow:0 16px 48px rgba(42,29,15,.11);
  z-index:600;
  /* Caché par défaut */
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  pointer-events:none;
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
}
.mega-panel.is-open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
  transition:opacity .22s ease, transform .22s ease, visibility 0s;
}

/* ⚠️ Spécificité forcée via `.mega-panel .mega-inner` : sur la home, le
   `<style>` inline du contenu Gutenberg (page 21) contient `.container {
   padding-top: 0 }` qui écrase `.mega-inner { padding-top: 28px }` à
   spécificité égale (`.mega-inner.container`). Préfixer par `.mega-panel`
   donne 0,2,0 > 0,1,0 et gagne la cascade. */
.mega-panel .mega-inner{
  display:grid;
  grid-template-columns:repeat(3,1fr) 240px;
  gap:0 36px;
  padding-top:28px;
  padding-bottom:28px;
}

/* ── Colonnes ── */
.mega-col-title{
  font-family:var(--rigo-serif);
  font-weight:700;
  font-size:.9rem;
  color:var(--rigo-ink);
  margin:0 0 12px;
  padding-bottom:10px;
  border-bottom:1.5px solid var(--rigo-border);
  letter-spacing:-.01em;
}

.mega-product-link{
  display:block;
  padding:8px 10px;
  border-radius:var(--rigo-r-sm);
  margin:2px -10px;
  text-decoration:none;
  transition:background .15s ease;
}
.mega-product-link:hover{background:var(--rigo-cream);}
.mega-product-name{
  display:block;
  font-family:var(--rigo-sans);
  font-weight:700;
  font-size:13px;
  color:var(--rigo-ink);
  line-height:1.3;
}
.mega-product-sub{
  display:block;
  font-size:11.5px;
  color:var(--rigo-muted);
  margin-top:2px;
}
.mega-see-all{
  display:block;
  margin-top:10px;
  padding:5px 10px;
  font-size:12.5px;
  font-weight:700;
  color:var(--rigo-green-dark);
  text-decoration:none;
  transition:color .15s;
}
.mega-see-all:hover{color:var(--rigo-green); text-decoration:underline;}

/* ── CTA column ── */
.mega-col--cta{
  background:var(--rigo-cream-warm);
  border-radius:var(--rigo-r-md);
  border:1px solid var(--rigo-border);
  padding:20px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
}
.mega-col--cta img{
  width:56px; height:56px;
  object-fit:contain;
  filter:drop-shadow(0 2px 6px rgba(42,29,15,.15));
}
.mega-cta-label{
  font-family:var(--rigo-serif);
  font-weight:700;
  font-size:.95rem;
  color:var(--rigo-ink);
  margin:0; line-height:1.3;
}
.mega-cta-desc{
  font-size:12px;
  color:var(--rigo-muted);
  margin:0; line-height:1.5;
}
.mega-col--cta .btn-primary{
  font-size:13px; padding:10px 16px;
  width:100%; justify-content:center; text-align:center;
}
.mega-all-btn{
  font-size:12px; font-weight:600;
  color:var(--rigo-muted);
  text-decoration:none;
  margin-top:2px;
  transition:color .15s;
}
.mega-all-btn:hover{color:var(--rigo-ink); text-decoration:underline;}

/* ===========================================================
   13. HAMBURGER & MOBILE MENU
   =========================================================== */

/* ── Hamburger ── */
.hamburger{
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; padding:9px 8px;
  background:none; border:none; cursor:pointer;
  border-radius:var(--rigo-r-sm);
  transition:background .2s;
}
.hamburger:hover{background:rgba(42,29,15,.06);}
@media (min-width:1024px){.hamburger{display:none;}}
.hamburger span{
  display:block; width:100%; height:2px;
  background:var(--rigo-ink); border-radius:2px;
  transition:transform .3s ease, opacity .25s ease;
  transform-origin:center;
}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0; transform:scaleX(0);}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── Overlay ── */
body.mobile-menu-open{overflow:hidden;}
.mobile-menu{
  position:fixed; inset:0; z-index:200;
  background:rgba(42,29,15,.45);
  backdrop-filter:blur(2px);
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
.mobile-menu.is-open{
  opacity:1; visibility:visible;
  transition:opacity .3s ease, visibility 0s;
}

/* ── Drawer droit ── */
.mobile-menu-inner{
  position:absolute; top:0; right:0; bottom:0;
  width:min(360px,92vw);
  background:#fff;
  display:flex; flex-direction:column; overflow-y:auto;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  box-shadow:-8px 0 32px rgba(42,29,15,.12);
}
.mobile-menu.is-open .mobile-menu-inner{transform:translateX(0);}

.mobile-menu-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px;
  background:var(--rigo-cream); border-bottom:1px solid var(--rigo-border);
  position:sticky; top:0; z-index:1;
}
.mobile-menu-head .brand-word{font-size:22px;}
.mobile-close{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; background:none; border:none;
  border-radius:50%; cursor:pointer; color:var(--rigo-ink);
  transition:background .2s;
}
.mobile-close:hover{background:rgba(42,29,15,.08);}

.mobile-nav{flex:1; padding:6px 0;}

/* Boutique accordion (<details>) */
.mobile-details{border-bottom:1px solid var(--rigo-border);}
.mobile-summary{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px;
  font-family:var(--rigo-sans); font-weight:700; font-size:15px;
  color:var(--rigo-ink); cursor:pointer; list-style:none;
  user-select:none; transition:background .15s;
}
.mobile-summary::-webkit-details-marker{display:none;}
.mobile-summary::after{content:'+'; font-size:18px; font-weight:400; color:var(--rigo-muted);}
.mobile-details[open] .mobile-summary::after{content:'−';}
.mobile-summary:hover{background:var(--rigo-cream);}

.mobile-submenu{padding:10px 18px 16px; background:var(--rigo-cream);}
.mobile-sub-label{
  font-size:10px; font-weight:800; text-transform:uppercase;
  letter-spacing:.1em; color:var(--rigo-muted);
  margin:14px 0 4px; padding-top:10px;
  border-top:1px solid var(--rigo-border);
}
.mobile-sub-label:first-child{margin-top:0; border-top:none;}
.mobile-sub-link{
  display:block; padding:8px 0;
  font-size:13.5px; font-family:var(--rigo-sans); font-weight:500;
  color:var(--rigo-ink-soft); text-decoration:none;
  border-bottom:1px solid rgba(231,226,213,.5);
  transition:color .15s;
}
.mobile-sub-link:hover{color:var(--rigo-green-dark);}
.mobile-see-all-btn{
  display:block; margin-top:12px; padding:9px 14px;
  font-size:13px; font-weight:700; color:var(--rigo-green-dark);
  text-decoration:none; text-align:center;
  background:rgba(92,142,46,.08); border-radius:var(--rigo-r-sm);
  transition:background .15s;
}
.mobile-see-all-btn:hover{background:rgba(92,142,46,.16);}

.mobile-link{
  display:block; padding:14px 18px;
  font-family:var(--rigo-sans); font-weight:600; font-size:15px;
  color:var(--rigo-ink); text-decoration:none;
  border-bottom:1px solid var(--rigo-border);
  transition:background .15s, color .15s;
}
.mobile-link:hover{background:var(--rigo-cream); color:var(--rigo-green-dark);}

.mobile-menu-foot{
  padding:16px 18px;
  background:var(--rigo-cream); border-top:1px solid var(--rigo-border);
  position:sticky; bottom:0;
}
.mobile-cta{display:block; width:100%; text-align:center; justify-content:center;}

/* ───────── FOOTER ───────── */
.site-footer{
  background:var(--rigo-ink);
  color:rgba(255,255,255,.85);
  padding:20px 0 32px;
  position:relative;
  margin-top:48px;
  font-family:var(--rigo-sans);
}
.site-footer .footer-grass{
  position:absolute;
  top:-60px; left:0; right:0;
  width:100%; height:80px;
  display:block; pointer-events:none;
  z-index:2;
}
.site-footer .footer-inner{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  padding-top:56px;
  padding-bottom:48px;
}
@media (min-width:768px){
  .site-footer .footer-inner{grid-template-columns:1fr 1fr; gap:40px;}
}
@media (min-width:1100px){
  .site-footer .footer-inner{grid-template-columns:1.4fr 1fr 1fr 1.2fr 1fr; gap:40px;}
}
.site-footer .footer-logo{
  display:inline-flex; align-items:center; gap:10px;
  margin-bottom:14px;
}
.site-footer .footer-logo img{width:40px; height:40px;}
.site-footer .footer-logo .brand-word{font-size:24px; color:#fff;}
.site-footer .footer-brand p{
  font-size:14.5px; line-height:1.6;
  color:rgba(255,255,255,.7);
  margin:0 0 18px; max-width:360px;
}
.site-footer .footer-address{font-size:13.5px; color:rgba(255,255,255,.55);}
.site-footer .footer-col h4{
  font-family:var(--rigo-script);
  font-weight:700;
  font-size:20px;
  margin:0 0 16px;
  color:#fff;
  letter-spacing:-.01em;
}
.site-footer .footer-col a{
  display:block;
  padding:4px 0;
  font-size:14px;
  color:rgba(255,255,255,.7);
  text-decoration:none;
  transition:color .2s, transform .2s;
}
.site-footer .footer-col a:hover{
  color:#FBCF33;
  transform:translateX(3px);
}
.site-footer .footer-bottom{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.08);
  gap:12px;
  font-size:13px;
  color:rgba(255,255,255,.55);
}
.site-footer .footer-made{
  font-family:var(--rigo-script);
  font-size:15px;
  margin:0;
}
.site-footer .footer-bottom p{margin:0;}

.site-footer, .site-header{overflow-wrap:anywhere; word-break:normal;}
.site-footer img, .site-header img{max-width:100%; height:auto;}

/* ===========================================================
   14. SPRINT 8 — backlog visuel Arthur (2026-05-08 suite 8)
   Fixes regroupés : sticky robuste, contraste footer, newsletter input,
   wrap "60 €", marges desktop pages contenu, bordure CTA bleus.
   =========================================================== */

/* --- 14.1 Sticky header robuste ---
   `position:sticky` casse si un ancêtre a `overflow:hidden|auto|scroll`.
   En complément du sticky existant (section 11), on fournit un fallback
   `position:fixed` activé via la classe `html.rigo-header-fixed` que le
   JS sticky peut poser si le sticky ne tient pas. La règle ci-dessous
   est inerte par défaut — actif uniquement quand la classe est ajoutée. */
html.rigo-header-fixed .site-header,
html.rigo-header-fixed #site-header{
  position:fixed !important;
  top:0; left:0; right:0;
  z-index:500;
}
html.rigo-header-fixed body{
  padding-top:var(--rigo-hdr-h, 73px);
}

/* Ceinture/bretelles : forcer le sticky du header injecté contre tout
   override Blocksy/Customizer arrivant après. */
header#site-header.site-header,
header.site-header--injected{
  position:sticky !important;
  top:0 !important;
  z-index:500 !important;
}

/* --- 14.2 Footer — contraste WCAG AA ---
   Avant : rgba(255,255,255,.55) sur fond ink (≈ ratio 4.0 < 4.5 AA).
   Après : .82 sur les liens et footer-bottom (~6.5 ratio). */
.site-footer .footer-col a{
  color:rgba(255,255,255,.82) !important;
}
.site-footer .footer-bottom,
.site-footer .footer-bottom p{
  color:rgba(255,255,255,.82) !important;
}
.site-footer .footer-address{
  color:rgba(255,255,255,.78) !important;
}
.site-footer .footer-brand p{
  color:rgba(255,255,255,.88) !important;
}

/* --- 14.3 Newsletter popup — input visible quand on tape ---
   Le placeholder est gris, mais sans `color` explicite sur l'input, le
   texte saisi héritait d'une règle parent qui le rendait blanc sur fond
   crème (illisible). Force ink + background paper. */
#rigo-popup .rigo-popup-form input[type=email],
.rigo-popup-form input[type=email],
#rigo-popup-form input[type=email]{
  color:var(--rigo-ink) !important;
  background:#fff !important;
  -webkit-text-fill-color:var(--rigo-ink) !important;
  caret-color:var(--rigo-ink);
}
#rigo-popup .rigo-popup-form input[type=email]::placeholder{
  color:var(--rigo-muted) !important;
  opacity:1;
}

/* Couvre aussi les éventuels champs newsletter intégrés au footer
   (si un module newsletter footer est ajouté plus tard). */
.site-footer input[type=email],
.site-footer input[type=text]{
  color:var(--rigo-ink) !important;
  background:#fff !important;
  -webkit-text-fill-color:var(--rigo-ink) !important;
}

/* --- 14.4 "60 €" / "60€" insécables ---
   Empêche le wrap entre le chiffre et le symbole € sur les libellés
   livraison gratuite. On force un white-space:nowrap sur les labels
   typés, en complément du `&nbsp;` injecté côté PHP. */
.rigo-promo-bar,
.rigo-promo-bar span,
.rigo-trust-item strong,
.rigo-drawer-shipping-note,
.rigo-ship-free-eligible,
.rigo-ship-threshold,
.rigo-shipbar-msg{
  white-space:normal;
}
.rigo-promo-bar .nowrap,
.rigo-trust-item .nowrap,
.rigo-shipbar-msg .nowrap{
  white-space:nowrap;
}

/* --- 14.5 Marges/padding desktop pages contenu ---
   Les pages article/contenu (À propos, Méthode, légales…) étaient
   resserrées contre les bords sur desktop. On élargit le padding latéral
   et on plafonne la largeur de lecture à ~760px pour le confort de
   lecture (typo Fraunces/Nunito en mesure 60-72 caractères). */
.entry-content,
.page-content,
.ct-container .entry-content,
body.page:not(.home):not(.woocommerce-page) .entry-content,
body.single-post .entry-content{
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(20px, 4vw, 40px);
  padding-right:clamp(20px, 4vw, 40px);
}
@media (min-width:1100px){
  body.page:not(.home):not(.woocommerce-page) .entry-content,
  body.single-post .entry-content{
    padding-left:48px;
    padding-right:48px;
  }
}
/* Ne s'applique pas au shop ni à la fiche produit (qui ont leur layout
   2 colonnes natif WooCommerce). */
body.woocommerce-page .entry-content,
body.archive .entry-content,
body.single-product .entry-content{
  max-width:none;
}

/* --- 14.6 CTA bleus — pas de bordure verte ---
   Override des règles Blocksy / focus / hover qui peuvent ajouter un
   `border-color:var(--rigo-green)` sur les boutons bleus secondaires
   (cas vu sur formulaires WPForms et boutons WP block style "secondary"). */
.btn-secondary,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:focus-visible,
.rigo-cta--secondary,
.rigo-cta--secondary:hover,
.rigo-cta--secondary:focus,
.wp-block-button.is-style-secondary .wp-block-button__link,
.wpforms-form button[type=submit],
.wpforms-form input[type=submit]{
  border-color:var(--rigo-sky) !important;
  box-shadow:0 6px 18px rgba(30,159,203,.25) !important;
}
.btn-secondary:focus-visible,
.rigo-cta--secondary:focus-visible{
  outline:3px solid rgba(30,159,203,.35);
  outline-offset:2px;
  /* Pas de halo vert au focus sur un CTA bleu */
  box-shadow:0 6px 18px rgba(30,159,203,.30) !important;
}

/* Couvre aussi la couleur de halo focus globale qui posait un anneau
   vert autour des boutons bleus (cf. section 9 input:focus). On force
   un halo bleu uniquement sur les CTAs bleus, sans toucher au focus
   des inputs (qui restent vert pour signaler la saisie active). */
button.btn-secondary:focus,
a.btn-secondary:focus,
button.rigo-cta--secondary:focus,
a.rigo-cta--secondary:focus{
  outline:none;
  box-shadow:0 0 0 3px rgba(30,159,203,.30) !important;
}

/* ===========================================================
   16. PAGES UTILITAIRES — contact, légales, livraison
   (sprint 9 fix, 2026-05-10)
   =========================================================== */

/* --- 16.1 Grid contact (2 colonnes desktop, 1 col mobile) --- */
.rigo-contact-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  margin:24px 0 36px;
}
@media (min-width:720px){
  .rigo-contact-grid{
    grid-template-columns:1fr 1fr;
    gap:24px;
  }
}
.rigo-contact-card{
  background:#fff;
  border:1px solid var(--rigo-border);
  border-radius:var(--rigo-r-md);
  padding:24px 26px;
  box-shadow:var(--rigo-sh-1);
  transition:box-shadow 200ms ease, transform 200ms ease;
}
.rigo-contact-card:hover{
  box-shadow:var(--rigo-sh-2);
  transform:translateY(-2px);
}
.rigo-contact-card h2{
  font-family:var(--rigo-serif);
  font-size:1.25rem !important;
  margin:0 0 12px !important;
  letter-spacing:-0.01em;
}
.rigo-contact-card p{
  margin:0 0 .9em;
  font-size:15.5px;
  line-height:1.6;
}
.rigo-contact-card p:last-child{margin-bottom:0;}
.rigo-contact-link a{
  font-family:var(--rigo-sans);
  font-weight:700;
  font-size:1.05rem;
  color:var(--rigo-green-dark);
  text-decoration:none;
  border-bottom:2px solid var(--rigo-green);
  padding-bottom:1px;
  transition:color .15s, border-color .15s;
  word-break:break-word;
}
.rigo-contact-link a:hover{
  color:var(--rigo-green);
  border-bottom-color:var(--rigo-green-dark);
}

/* --- 16.2 Masquer le FAB quiz "Aide au choix" sur les pages utilitaires
   (il chevauchait le texte adresse de la page contact). Reste actif sur
   la home, fiche produit, shop, blog. --- */
body.page-id-99 .rigo-quiz-fab,        /* contact */
body.page-id-85 .rigo-quiz-fab,        /* mentions légales */
body.page-id-86 .rigo-quiz-fab,        /* cgv */
body.page-id-87 .rigo-quiz-fab,        /* politique confidentialité */
body.page-id-88 .rigo-quiz-fab{        /* livraison-retours */
  display:none !important;
}

/* --- 16.3 Hint pour Brigitte si elle ajoute des pages utilitaires :
   appliquer la classe `body.page-template-utility` pour bénéficier du
   layout centré sans avoir à hardcoder les page-id ci-dessus. --- */
body.page-template-utility .rigo-quiz-fab{
  display:none !important;
}

/* --- 16.4 Forcer le centrage du content sur les pages utilitaires
   (Blocksy peut appliquer un `.ct-container-full` qui ne centre pas
   correctement avec un sidebar imaginaire). --- */
body.page-id-99 main.site-main,
body.page-id-85 main.site-main,
body.page-id-86 main.site-main,
body.page-id-87 main.site-main,
body.page-id-88 main.site-main{
  max-width:none !important;
  width:100% !important;
}
body.page-id-99 main.site-main > *,
body.page-id-85 main.site-main > *,
body.page-id-86 main.site-main > *,
body.page-id-87 main.site-main > *,
body.page-id-88 main.site-main > *{
  max-width:var(--rigo-container, 1200px);
  margin-left:auto;
  margin-right:auto;
}

/* --- 16.5 Page title Blocksy auto : on lui redonne du look même quand
   il n'est pas masqué. Et on le centre. --- */
body.page-id-99 .page-title,
body.page-id-99 h1.entry-title,
body.page-id-99 .ct-page-title-default{
  text-align:left;
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
  padding:clamp(28px,4vw,48px) clamp(20px,4vw,40px) 8px;
}

/* ===========================================================
   15. SHOP — refonte page /shop (sprint 9, 2026-05-10)
   Hero éditorial + filtres pills + grid 3 col + cards rénovées.
   Cf. includes/shop-archive-redesign.php pour le HTML PHP.
   =========================================================== */

/* --- 15.1 Hero shop --- */
.rigo-shop-hero{
  background:linear-gradient(180deg, var(--rigo-cream-warm) 0%, var(--rigo-cream) 100%);
  border-bottom:1px solid var(--rigo-border);
  padding:clamp(40px, 6vw, 72px) 0 clamp(28px, 4vw, 40px);
  text-align:center;
  position:relative;
}
.rigo-shop-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle at 12% 30%, rgba(139,200,75,.10) 0, transparent 35%),
    radial-gradient(circle at 88% 70%, rgba(39,180,229,.10) 0, transparent 35%);
  pointer-events:none;
}
.rigo-shop-hero-inner{
  position:relative;
  max-width:880px !important;
  margin:0 auto;
}
.rigo-shop-hero-eyebrow{
  font-family:var(--rigo-script);
  font-weight:700;
  font-size:1.15rem;
  color:var(--rigo-green-dark);
  margin:0 0 8px;
}
.rigo-shop-hero-title{
  font-family:var(--rigo-serif);
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  font-weight:700;
  letter-spacing:-0.025em;
  color:var(--rigo-ink);
  margin:0 0 14px;
  line-height:1.1;
}
.rigo-shop-hero-sub{
  font-size:clamp(15px, 1.6vw, 17px);
  line-height:1.55;
  color:var(--rigo-ink-soft);
  max-width:640px;
  margin:0 auto 24px;
}

/* --- 15.2 Filtres catégorie en pills --- */
.rigo-shop-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  margin:0 0 22px;
}
.rigo-shop-filter{
  display:inline-block;
  padding:9px 18px;
  font-family:var(--rigo-sans);
  font-weight:700;
  font-size:14px;
  color:var(--rigo-ink-soft);
  background:#fff;
  border:1.5px solid var(--rigo-border);
  border-radius:var(--rigo-r-pill);
  text-decoration:none;
  transition:all 180ms ease;
  letter-spacing:-0.005em;
}
.rigo-shop-filter:hover{
  color:var(--rigo-green-dark);
  border-color:var(--rigo-green);
  background:rgba(92,142,46,.06);
  transform:translateY(-1px);
}
.rigo-shop-filter.is-active{
  background:var(--rigo-ink);
  color:#fff;
  border-color:var(--rigo-ink);
}

/* --- 15.3 Trust micro-row sous les filtres --- */
.rigo-shop-hero-trust{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 24px;
  font-size:13.5px;
  color:var(--rigo-muted);
}
.rigo-shop-hero-trust strong{color:var(--rigo-ink); font-weight:700;}

/* --- 15.4 Grid produits (override Blocksy) --- */
body.woocommerce.archive ul.products,
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products{
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)) !important;
  gap:24px !important;
  list-style:none !important;
  padding:32px 0 !important;
  margin:0 !important;
}
body.woocommerce.archive ul.products::before,
body.woocommerce.archive ul.products::after{display:none !important;}
body.woocommerce.archive ul.products li.product{
  width:auto !important;
  margin:0 !important;
  float:none !important;
  display:flex !important;
  flex-direction:column !important;
}

/* --- 15.5 Card produit redesignée --- */
body.woocommerce.archive ul.products li.product{
  background:#fff;
  border:1px solid var(--rigo-border);
  border-radius:var(--rigo-r-md);
  padding:0 !important;
  overflow:hidden;
  transition:transform 220ms cubic-bezier(.2,.8,.2,1), box-shadow 220ms ease, border-color 200ms ease;
  box-shadow:var(--rigo-sh-1);
}
body.woocommerce.archive ul.products li.product:hover{
  transform:translateY(-4px);
  box-shadow:var(--rigo-sh-3);
  border-color:var(--rigo-green);
}

/* Image carrée fond cream — même taille pour toutes les cards même
   sans photo (placeholder). object-fit:contain pour ne pas crop les
   packagings rectangulaires des jeux. */
body.woocommerce.archive ul.products li.product .woocommerce-loop-product__link,
body.woocommerce.archive ul.products li.product > a:first-of-type{
  display:block;
  position:relative;
  background:var(--rigo-cream);
  aspect-ratio:1 / 1;
  overflow:hidden;
  border-bottom:1px solid var(--rigo-border);
}
body.woocommerce.archive ul.products li.product img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  padding:18px;
  margin:0 !important;
  display:block;
  transition:transform 350ms cubic-bezier(.2,.8,.2,1);
  background:transparent;
}
body.woocommerce.archive ul.products li.product:hover img{
  transform:scale(1.04);
}
/* Placeholder (pas d'image) : garder la zone carrée + indicatif visuel */
body.woocommerce.archive ul.products li.product .woocommerce-LoopProduct-link::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--rigo-cream) url("https://rigolettres.fr/wp-content/uploads/2026/04/logo-pato-provisoire.png") center/80px no-repeat;
  opacity:.18;
  z-index:0;
}
body.woocommerce.archive ul.products li.product img + *{position:relative; z-index:1;}
body.woocommerce.archive ul.products li.product .woocommerce-LoopProduct-link img{position:relative; z-index:1;}

/* Body de la card (titre + niveau + prix + ATC) */
body.woocommerce.archive ul.products li.product .rigo-card-body,
body.woocommerce.archive ul.products li.product > a + *,
body.woocommerce.archive ul.products li.product{
  /* fallback container — on cible aussi quand .rigo-card-body n'est pas wrappé */
}
body.woocommerce.archive ul.products li.product .rigo-card-body{
  padding:18px 18px 0;
  display:flex;
  flex-direction:column;
  flex:1;
}

.rigo-card-eyebrow{
  display:inline-block;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--rigo-green-dark);
  background:rgba(92,142,46,.10);
  padding:4px 10px;
  border-radius:var(--rigo-r-pill);
  margin-bottom:8px;
  width:fit-content;
}

body.woocommerce.archive ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--rigo-serif) !important;
  font-size:1.05rem !important;
  font-weight:700;
  color:var(--rigo-ink);
  line-height:1.3;
  margin:0 0 10px !important;
  padding:0 !important;
  letter-spacing:-0.005em;
}

body.woocommerce.archive ul.products li.product .price{
  font-family:var(--rigo-sans) !important;
  font-size:1.25rem !important;
  font-weight:800;
  color:var(--rigo-ink);
  margin:auto 0 14px !important;
}
body.woocommerce.archive ul.products li.product .price del{
  color:var(--rigo-muted);
  font-size:.85em;
  font-weight:600;
  margin-right:6px;
}
body.woocommerce.archive ul.products li.product .price ins{
  background:transparent;
  color:var(--rigo-accent);
  text-decoration:none;
}

/* CTA "Ajouter" full-width pill bleu */
body.woocommerce.archive ul.products li.product .button,
body.woocommerce.archive ul.products li.product a.add_to_cart_button{
  display:flex !important;
  width:calc(100% - 36px) !important;
  margin:0 18px 18px !important;
  justify-content:center;
  align-items:center;
  background:var(--rigo-sky) !important;
  color:#fff !important;
  border:1.5px solid var(--rigo-sky) !important;
  border-radius:var(--rigo-r-pill) !important;
  padding:12px 18px !important;
  font-weight:700 !important;
  font-size:14px !important;
  box-shadow:0 4px 12px rgba(30,159,203,.20);
  transition:all 200ms ease;
}
body.woocommerce.archive ul.products li.product .button:hover,
body.woocommerce.archive ul.products li.product a.add_to_cart_button:hover{
  background:var(--rigo-sky-dark) !important;
  border-color:var(--rigo-sky-dark) !important;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(30,159,203,.28) !important;
}
/* Loader pendant l'ajout AJAX */
body.woocommerce.archive ul.products li.product .button.loading{
  opacity:.65; cursor:wait;
}
body.woocommerce.archive ul.products li.product .button.added::after{
  content:" ✓"; font-weight:800;
}

/* Container principal du shop : ajouter de l'air */
body.post-type-archive-product .container,
body.tax-product_cat .container{
  padding-bottom:64px;
}

/* Masque le titre par défaut WC (.woocommerce-products-header) puisque
   notre hero le remplace. */
body.woocommerce.archive .woocommerce-products-header{
  display:none !important;
}
/* Masque aussi le tri WC par défaut (peut être réintégré plus tard avec
   un dropdown stylé custom) et le compteur "X résultats". */
body.woocommerce.archive .woocommerce-result-count,
body.woocommerce.archive .woocommerce-ordering{
  display:none !important;
}

/* --- 15.6 Mobile shop --- */
@media (max-width:640px){
  body.woocommerce.archive ul.products,
  body.post-type-archive-product ul.products,
  body.tax-product_cat ul.products{
    grid-template-columns:repeat(2, 1fr) !important;
    gap:14px !important;
    padding:20px 0 !important;
  }
  body.woocommerce.archive ul.products li.product .rigo-card-body{
    padding:12px 12px 0;
  }
  body.woocommerce.archive ul.products li.product .woocommerce-loop-product__title{
    font-size:.95rem !important;
  }
  body.woocommerce.archive ul.products li.product .price{
    font-size:1.05rem !important;
    margin-bottom:10px !important;
  }
  body.woocommerce.archive ul.products li.product .button,
  body.woocommerce.archive ul.products li.product a.add_to_cart_button{
    width:calc(100% - 24px) !important;
    margin:0 12px 12px !important;
    padding:10px 12px !important;
    font-size:13px !important;
  }
  .rigo-shop-filters{gap:6px;}
  .rigo-shop-filter{padding:7px 14px; font-size:13px;}
  .rigo-shop-hero-trust{gap:4px 14px; font-size:12.5px;}
}

/* ===========================================================
   10. RESPONSIVE — mobile
   =========================================================== */
@media (max-width:640px){
  body{font-size:16px;}
  h1, .h1{font-size:clamp(2rem,9vw,2.6rem);}
  h2, .h2{font-size:clamp(1.55rem,6.4vw,2rem);}
  section{padding-top:48px;padding-bottom:48px;}

  body.woocommerce div.product .product_title{font-size:clamp(1.8rem,7vw,2.4rem);}
  body.woocommerce div.product p.price{font-size:1.4rem;}
  body.woocommerce div.product .woocommerce-tabs .panel{padding:20px;}
  body.woocommerce div.product .related ul.products,
  body.woocommerce div.product .upsells ul.products{
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  }
  body.woocommerce div.product form.cart{flex-direction:column;align-items:stretch;}
  body.woocommerce div.product .quantity input.qty{width:100%;}
}
