/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ===========================
   MonCadeau3D – Base idiomatique
   =========================== */

:root{
  /* Palette */
  --mc3d-gold: #fdc94d;
  --mc3d-gold-deep: #dca93a;
  --mc3d-gold-soft: #ffe6a3;
  --mc3d-accent: #b53c3c;
  --mc3d-blue: #007bff;
  --mc3d-blue-dark: #0056b3;
  --mc3d-text: #1d1d1d;
  --mc3d-shadow: rgba(0,0,0,.12);

  /* Rounding / spacing */
  --mc3d-rad-sm: 6px;
  --mc3d-rad: 8px;
  --mc3d-rad-lg: 10px;
  --mc3d-rad-xl: 20px;

  /* Typo & sizing */
  --mc3d-fs-14: .875rem;
  --mc3d-fs-15: .9375rem;
  --mc3d-fs-18: 1.125rem;
  --mc3d-fs-20: 1.25rem;

  /* Layout */
  --mc3d-gap: 32px;

  /* Media */
  --bp-sm: 640px;
  --bp-md: 768px;
  --bp-lg: 1024px;
}

/* ---------------------------
   Liens / textes globaux
   --------------------------- */
a, .mc3d-link-btn { color: var(--mc3d-accent); }
.site-title { display:block; line-height:1.2; }
.site-title::after{
  content: "Cadeaux personnalisés en impression 3D";
  display:block; font-size: .9em; font-weight: 400;
}
.site-description { color: transparent !important; }

/* Images : règles sûres et compatibles (pas de attr(width)/attr(height)) */
img, .wp-block-image img, .site-content img, .thumbnail img{
  width:100%; height:auto; display:block; object-fit:contain;
}

/* Légendes */
figure.wp-block-image > figcaption,
.wp-block-image figcaption,
.wp-block-gallery figure.wp-block-image > figcaption,
.wp-block-gallery figcaption,
.blocks-gallery-caption{
  display:block !important;
  position:static !important;
  background:none !important;
  color:#222 !important;
  text-align:center !important;
  margin-top:8px !important;
  padding:0 !important;
  line-height:1.4 !important;
  font-weight:700 !important;
}
figcaption{ min-height:2em; display:block; } /* anti-jump */

figure, .wp-block-image{ min-height:1px; }

/* Anti-CLS généraux */
#content, .site-content{ position:relative; overflow:hidden; min-height:80vh; }
header, .ast-header-break-point .main-header-bar{ min-height:90px; }

/* ---------------------------
   Boutons maison
   --------------------------- */
.custom-homepage-button,
.btn-retour,
.mc3d-back-btn,
.btn-gold,
.contact-card button,
.woocommerce div.product form.cart .button,
.single_add_to_cart_button,
.woocommerce-variation-add-to-cart .button{
  display:inline-block;
  color:#000;
  border:0;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease, background .25s ease;
  text-decoration:none;
  line-height:1.2;
  border-radius: var(--mc3d-rad);
  background: linear-gradient(90deg, var(--mc3d-gold-deep), var(--mc3d-gold));
}

.custom-homepage-button{
  color:#fff;
  background-color: var(--mc3d-blue);
  padding:14px 28px;
  font-size: var(--mc3d-fs-18);
  font-weight:600;
  border-radius:8px;
}
.custom-homepage-button:hover{ background-color: var(--mc3d-blue-dark); transform:translateY(-2px); box-shadow:0 8px 16px rgba(0,0,0,.2); }

.btn-retour{
  background: var(--mc3d-blue);
  color:#fff; padding:10px 18px; font-weight:600; border-radius:8px;
}
.btn-retour:hover{ background: var(--mc3d-blue-dark); transform:translateY(-2px); }

.mc3d-back-btn{
  font-weight:600; font-size:15px; padding:.55em 1.3em; border-radius:8px; color:#2e2200;
  box-shadow:0 3px 8px rgba(0,0,0,.1);
  position:relative; top:-10px;
}
.mc3d-back-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 12px rgba(0,0,0,.18); filter:saturate(1.05); }
@media (max-width: 640px){
  .mc3d-back-btn{ top:-6px; font-size:14px; padding:.6em 1.2em; }
}

.btn-gold,
.contact-card button{
  margin-top:14px; padding:12px 24px; color:#fff; font-weight:700; border-radius:10px;
}
.btn-gold:hover,
.contact-card button:hover{ transform:translateY(-2px); box-shadow:0 8px 18px rgba(0,0,0,.15); }

/* ---------------------------
   Header / menu mobile
   --------------------------- */
.ast-hero-section, .site-header{ min-height:100px; }
.ast-site-identity{ flex:0 0 auto; }

/* Icônes burger 100% blanches sur mobile */
.ast-header-break-point .ast-button-wrap .menu-toggle,
.ast-header-break-point .ast-mobile-menu-buttons button,
.ast-header-break-point .menu-toggle .ast-icon,
.ast-header-break-point .ast-mobile-menu-trigger,
.ast-header-break-point .ast-button-wrap .menu-toggle .ast-icon svg,
.ast-header-break-point .ast-mobile-menu-trigger svg,
.ast-header-break-point .ast-button-wrap .menu-toggle svg,
.ast-header-break-point .ast-button-wrap .menu-toggle path,
.ast-header-break-point .ast-mobile-menu-buttons svg,
.ast-header-break-point .ast-mobile-menu-buttons path{
  color:#fff !important; fill:#fff !important; stroke:#fff !important; opacity:1 !important;
}
.ast-header-break-point .main-header-bar{ background:#fff !important; }
.ast-header-break-point .ast-button-wrap .menu-toggle:hover,
.ast-header-break-point .ast-mobile-menu-trigger:hover{ background:transparent !important; box-shadow:none !important; }



/* Page d’accueil : header compact + titre masqué accessiblement */
.page-id-80 .site-header,
.page-id-80 .ast-hero-section,
.page-id-80 header#masthead{ min-height:0 !important; margin-bottom:0 !important; padding-bottom:0 !important; }
.page-id-80 .entry-title,
.page-id-80 h1.entry-title{
  position:absolute !important; clip-path:inset(50%) !important; width:1px !important; height:1px !important;
  overflow:hidden !important; white-space:nowrap !important;
}
.page-id-80 .site-content{ margin-top:-70px !important; padding-top:0 !important; }

/* ---------------------------
   Cart icon + badge
   --------------------------- */
.ast-header-custom-item{ position:relative; display:inline-block; font-size:22px; }
.ast-header-custom-item i{ font-size:22px; line-height:1; color:var(--mc3d-text); }
.ast-cart-count{
  position:absolute; top:-8px; right:-10px; background:red; color:#fff; font: bold 12px/1.2 system-ui, sans-serif;
  border-radius:50%; padding:2px 6px; min-width:18px; text-align:center; z-index:99;
}

/* ---------------------------
   WooCommerce – Listes produits
   --------------------------- */

/* Cartes */
.woocommerce ul.products li.product{
  overflow:hidden; position:relative; border-radius: var(--mc3d-rad-lg);
  background:transparent !important; transition: box-shadow .4s ease, transform .4s ease;
}
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product a img{
  width:100%; height:auto; display:block; object-fit:cover !important; border-radius: var(--mc3d-rad-lg);
  aspect-ratio: 4 / 3 !important; transition: transform .4s ease, filter .4s ease, box-shadow .4s ease;
}
.woocommerce ul.products li.product:hover img{
  transform:scale(1.05); filter:brightness(1.1) saturate(1.2);
  box-shadow:0 0 25px rgba(253,201,77,.35);
}
.woocommerce ul.products li.product:hover{
  box-shadow:0 0 20px rgba(253,201,77,.25); transform:translateY(-3px);
}

/* Résumé : lignes propres (titre / étoiles+prix / bouton) */
.woocommerce ul.products li.product .astra-shop-summary-wrap{
  display:flex !important; flex-wrap:wrap; column-gap:.5rem; row-gap:.35rem;
  align-items: baseline !important; /* base line-up étoiles/prix/bouton */
}
.woocommerce ul.products li.product .ast-loop-product__link{ flex:0 0 100% !important; }

/* Étoiles + prix + bouton sur une ligne */
.woocommerce ul.products li.product .woocommerce-product-rating,
.woocommerce ul.products li.product .star-rating{ order:2; flex:0 0 auto !important; margin:0 .5rem 0 0 !important; line-height:1 !important; }
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product span.price,
.woocommerce ul.products li.product p.price{ order:1; display:inline-flex !important; align-items:flex-start !important; margin:0 .5rem 0 0 !important; line-height:1 !important; }
.woocommerce ul.products li.product a.button.product_type_variable{
  order:3; margin-left:auto !important; align-self:flex-start !important; width:auto !important; min-width:0 !important;
  display:inline-flex !important; padding:.30rem .58rem !important; font-size:.82rem !important; line-height:1 !important; border-radius:.4rem !important;
}

/* Archive : forcer ordre (prix avant étoiles) */
.woocommerce.archive ul.products li.product .price,
.woocommerce.archive ul.products li.product span.price,
.woocommerce.archive ul.products li.product p.price{ order:1 !important; margin-left:0 !important; margin-right:.5rem !important; }
.woocommerce.archive ul.products li.product .review-rating,
.woocommerce.archive ul.products li.product .woocommerce-product-rating,
.woocommerce.archive ul.products li.product .star-rating{ order:2 !important; margin-left:0 !important; }

/* Boutons grille */
.woocommerce ul.products li.product .button{
  background: linear-gradient(90deg, var(--mc3d-gold-deep), var(--mc3d-gold));
  color:#000; border-radius: var(--mc3d-rad); font-weight:600; padding:10px 15px; text-transform:uppercase; letter-spacing:.5px;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus{
  background: linear-gradient(90deg, var(--mc3d-gold), var(--mc3d-gold-soft));
  box-shadow:0 0 15px rgba(253,201,77,.5); transform:translateY(-2px); color:#000; outline:none;
}

/* Mobile : adoucir effets */
@media (max-width: var(--bp-md)){
  .woocommerce ul.products li.product:hover img,
  .woocommerce ul.products li.product:hover,
  .woocommerce ul.products li.product .button:hover,
  .woocommerce div.product form.cart .button:hover,
  .single_add_to_cart_button:hover{
    transform:none; box-shadow:none; filter:none;
  }
}

/* Recadrage léger des vignettes */
.woocommerce ul.products li.product img{ object-position: 90% center !important; }

/* ---------------------------
   WooCommerce – Page produit
   --------------------------- */
.woocommerce div.product form.cart .button,
.single_add_to_cart_button,
.woocommerce-variation-add-to-cart .button{
  color:#000; border-radius:8px; font-weight:700; padding:12px 22px; letter-spacing:.6px; text-transform:uppercase;
}
.woocommerce div.product form.cart .button:hover,
.single_add_to_cart_button:hover,
.woocommerce-variation-add-to-cart .button:hover,
.woocommerce div.product form.cart .button:focus,
.single_add_to_cart_button:focus{
  background: linear-gradient(90deg, var(--mc3d-gold), var(--mc3d-gold-soft));
  box-shadow:0 0 18px rgba(253,201,77,.55); transform:translateY(-2px); color:#000; outline:none;
}
.single_add_to_cart_button.disabled,
.single_add_to_cart_button:disabled,
.woocommerce-variation-add-to-cart .button.disabled{
  opacity:.55 !important; filter:grayscale(20%); cursor:not-allowed !important; box-shadow:none !important; transform:none !important;
}

/* Quantité */
.woocommerce div.product form.cart .quantity .qty{
  border:1px solid rgba(253,201,77,.6); border-radius:6px; padding:10px 12px; font-weight:600; max-width:110px;
}
.woocommerce div.product form.cart .quantity .qty:focus{
  outline:none; border-color: var(--mc3d-gold);
  box-shadow:0 0 0 3px rgba(253,201,77,.25);
}

/* Messages Woo */
.woocommerce-message, .woocommerce-error, .woocommerce-info{ border-top-color: var(--mc3d-gold); }
.woocommerce-message::before, .woocommerce-error::before, .woocommerce-info::before{ color: var(--mc3d-gold-deep); }

/* Désactiver le zoom au survol image principale si souhaité */
.woocommerce-product-gallery__wrapper{ pointer-events:none !important; }

/* ---------------------------
   Archives Woo – Espaces propres
   (version consolidée & stable)
   --------------------------- */
body.archive.woocommerce .ast-container,
body.archive.woocommerce .site-content,
body.archive.woocommerce .site-main,
body.archive.woocommerce .ast-woocommerce-container,
body.archive.woocommerce .woocommerce-products-header,
body.archive.woocommerce .ast-archive-description{
  margin:0 !important; padding:0 !important;
}
body.archive.woocommerce .woocommerce-products-header__title,
body.archive.woocommerce .ast-archive-title{
  display:block !important; visibility:visible !important; opacity:1 !important; position:relative !important; z-index:2 !important;
  color:#000 !important; font-weight:700 !important; font-size:2rem !important; text-align:center !important;
  margin:10px 0 20px !important;
}
body.archive.woocommerce .woocommerce-result-count{ display:none !important; }
body.archive.woocommerce .ast-container > .ast-woocommerce-container{ background:transparent !important; }

/* Intro de catégorie lisible sous le header */
body.archive.woocommerce .ast-archive-description{
  margin-top:15px !important; padding-top:10px !important; line-height:1.5 !important; overflow:visible !important;
}
body.archive.woocommerce .ast-archive-description:empty{ display:none !important; height:0 !important; }

/* ---------------------------
   Galerie d’accueil (Gutenberg)
   --------------------------- */
.home .wp-block-gallery{
  max-width:1200px; margin:20px auto 40px; padding:0 12px;
  display:grid !important; grid-template-columns:repeat(3,1fr); gap: var(--mc3d-gap);
}
@media (max-width: var(--bp-lg)){ .home .wp-block-gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: var(--bp-sm)){ .home .wp-block-gallery{ grid-template-columns:1fr; } }

.home .wp-block-gallery .blocks-gallery-item,
.home .wp-block-gallery .wp-block-image{
  margin:0 !important; border-radius: var(--mc3d-rad-xl); overflow:hidden; background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.home .wp-block-gallery .blocks-gallery-item:hover,
.home .wp-block-gallery .wp-block-image:hover{ transform:translateY(-2px); box-shadow:0 14px 30px var(--mc3d-shadow); }

/* Ratio fixe + remplissage (anti-CLS) */
.home .wp-block-gallery .wp-block-image{ aspect-ratio: 4 / 3; overflow:hidden; }
.home .wp-block-gallery .wp-block-image a{ display:block !important; }
.home .wp-block-gallery .wp-block-image img{
  width:100% !important; height:100% !important; display:block !important; object-fit:cover !important; aspect-ratio: 4 / 3 !important;
}

/* Légende compacte */
.home .wp-block-gallery figcaption{
  font-weight:700; text-align:center; padding:14px 12px 16px; font-size:1.05rem;
}
.home .wp-block-gallery .wp-block-image figcaption{
  margin:10px 0 0 !important; padding:0 12px 14px !important; text-align:center !important;
}

/* Cadrage fin d’images spécifiques */
.mc3d-cards .mc3d-card:nth-child(1) img{ object-position: 80% center !important; }
.mc3d-card,
.wp-block-image{ min-height:auto !important; height:auto !important; }
.mc3d-card > a:first-child{ display:block !important; line-height:0 !important; }
.mc3d-card > a:first-child > img{
  width:100% !important; height:auto !important; aspect-ratio: 4 / 3 !important; object-fit:cover !important; object-position: 60% 50% !important;
}
.mc3d-card > figcaption{
  margin:0 !important; padding:4px 0 !important; line-height:1.15 !important; font-size:.95rem !important; background:transparent !important; text-align:center !important;
}
.entry-content .mc3d-card a{ text-decoration:none !important; box-shadow:none !important; background-image:none !important; border:0 !important; color:inherit !important; }

/* ---------------------------
   Pages spécifiques
   --------------------------- */

/* Masquer TOC sur page 323 */
body.page-id-323 .rank-math-toc-block,
body.page-id-323 .rank-math-toc-wrap,
body.page-id-323 .wp-block-rank-math-toc-block,
body.page-id-323 .rank-math-toc,
body.page-id-323 .ez-toc-container{ display:none !important; }

/* Page 84 : cache titre + supprime vide */
.page-id-84 .entry-title,
.page-id-84 .ast-page-title,
.page-id-84 .ast-archive-title,
.page-id-84 .site-header + .site-content .entry-header .entry-title{ display:none !important; }
.page-id-84 .entry-header, .page-id-84 .ast-archive-description{ margin:0 !important; padding:0 !important; min-height:0 !important; }

/* ---------------------------
   Page Contact (ID 83)
   --------------------------- */
.mc3d-contact{ max-width:1100px; margin:40px auto 60px; padding:0 16px; }
.mc3d-contact h1{ margin-bottom:.5rem; }
.mc3d-contact .lead{ margin:0 0 2rem; font-size:1.1rem; opacity:.85; }

.contact-grid{ display:grid; gap:40px; align-items:start; }
@media (min-width:900px){ .contact-grid{ grid-template-columns: 1fr 1fr; } }

.contact-info h2{ font-size:1.2rem; margin-bottom:.75rem; }
.contact-list{ margin:0 0 1.5rem; padding-left:1rem; line-height:1.6; }
.contact-list li{ margin-bottom:.5rem; }
.contact-info img{ display:none !important; }

.contact-note{
  margin-top:18px; background:linear-gradient(135deg,#fff8e1,#fff); border:1px solid #e8d28b; border-radius:14px;
  padding:14px; text-align:center; font-size:.95rem; box-shadow:0 6px 14px rgba(0,0,0,.05); color:#7a6220; font-weight:500;
}

.contact-card{
  background:#fff; border-radius:18px; padding:28px 24px; box-shadow:0 8px 22px rgba(0,0,0,.08);
}
.contact-card h2{ margin:0 0 1rem; font-size:1.3rem; }
.contact-card label{ display:block; font-weight:600; margin:10px 0 6px; }
.contact-card input, .contact-card textarea{
  width:100%; padding:11px 12px; border:1px solid #ddd; border-radius:10px; background:#fafafa; transition:.2s;
}
.contact-card input:focus, .contact-card textarea:focus{
  border-color:#d4af37; background:#fff; box-shadow:0 0 0 3px rgba(212,175,55,.15); outline:0;
}
.contact-card .fallback{ margin-top:14px; font-size:.95rem; opacity:.85; }
.contact-card .fallback a{ color:#d4af37; text-decoration:underline; }

@media (max-width: var(--bp-md)){
  .contact-card, .contact-info{ text-align:center; }
  .contact-note{ margin-left:auto; margin-right:auto; }
  .woocommerce div.product form.cart .button, .single_add_to_cart_button{ width:100%; text-align:center; }
}

/* ---------------------------
   Divers utilitaires / masquages
   --------------------------- */
.prad-product-price-summary{ display:none !important; } /* plugin */
#search-field, .site-identity{ will-change: transform, opacity; transition: transform .2s ease-out; }

/* Désactive tout soulignement/gouttière par Astra sur liens dans cartes */
.entry-content .mc3d-card a:link,
.entry-content .mc3d-card a:visited,
.entry-content .mc3d-card a:hover,
.entry-content .mc3d-card a:focus{ text-decoration:none !important; box-shadow:none !important; background-image:none !important; }

/* Option : réduire espace sous header uniquement page Contact */
.page-id-83 .site-header{ margin-bottom:10px !important; }
