/*
Theme Name: Printz Atelier (Blocs)
Theme URI: https://www.printzatelier.fr
Author: Printz Atelier
Description: Theme de blocs (Full Site Editing) pour Printz Atelier - entierement editable depuis l'Editeur de site WordPress. Reprend le design original.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietaire
Text Domain: printz-blocks
*/


/* ============================================================
   TABLE DES MATIÈRES
   1. Variables CSS (couleurs, typos, espacements)
   2. Reset & Base
   3. Typographie
   4. Layout & Conteneurs
   5. Navigation
   6. Hero
   7. Bandeau
   8. Section produits
   9. Section process
   10. Section devis
   11. Témoignages
   12. À propos
   13. Footer
   14. WooCommerce — Catalogue
   15. WooCommerce — Page produit
   16. WooCommerce — Panier & Checkout
   17. Pages standard
   18. FAQ
   19. Contact & Devis
   20. Responsive
   ============================================================ */

/* ── 1. VARIABLES ── */
:root {
  /* Couleurs */
  --brun:        #1C1208;
  --card:        #F4ECD9;
  --brun-mid:    #2A1A0A;
  --terracotta:  #C2410C;
  --saumon:      #FDA270;
  --creme:       #EFE3C9;
  --creme-mid:   #E7CBA1;
  --blanc:       #FFFFFF;
  --muted:       #7A6858;
  --line:        #D7C6A5;
  --success:     #2D5F3F;
  --error:       #8B1A1A;

  /* Typographies */
  --font-serif:  Georgia, 'Times New Roman', serif;
  --font-sans:   'Geist', system-ui, -apple-system, sans-serif;
  --font-mono:   'Geist Mono', 'Courier New', monospace;

  /* Echelle typographique modulaire (ratio 1.2) */
  --text-xs:     12px;   /* labels, footer-bottom, micro-textes */
  --text-sm:     14px;   /* metadata, footer links, captions */
  --text-md:     15px;   /* nav, body secondaire */
  --text-base:   16px;   /* corps de texte standard */
  --text-lg:     18px;   /* sous-titres, devis-feature */
  --text-xl:     22px;   /* titres de cartes */

  /* Opacites de texte coherentes (sur fond clair) */
  --txt-strong:  rgba(28,18,8,1);
  --txt-mid:     rgba(28,18,8,0.85);  /* nav, corps, footer links */
  --txt-soft:    rgba(28,18,8,0.60);
  --txt-muted:   rgba(28,18,8,0.40);

  /* Espacements & layout */
  --max-width:   clamp(1100px, 88vw, 1440px);  /* container fluide grand ecran */
  --section-pad: 80px;
  --gap:         32px;
  --radius:      2px;

  /* Transitions */
  --ease:        0.2s ease;
}

/* ── 2. RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-sans);
  background: var(--creme);
  color: var(--brun);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: inherit; }
ul, ol { list-style: none; }
input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

/* ── 3. TYPOGRAPHIE ── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
h1 { font-size: clamp(40px, 6vw, 72px); }
h2 { font-size: clamp(28px, 4vw, 48px); font-weight: 400; }
h3 { font-size: clamp(20px, 2.5vw, 28px); font-weight: 500; }
h4 { font-size: 18px; font-weight: 500; }
p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }
strong { font-weight: 600; }
em { font-style: italic; }

.label-mono {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.section-kicker {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--terracotta);
  margin-bottom: 8px;
  display: block;
}

/* ── 4. LAYOUT ── */
.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 40px;
}
.section { padding: var(--section-pad) 0; }
.section--dark { background: var(--brun); color: var(--creme); }
.section--mid { background: var(--creme-mid); }

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* ── 5. NAVIGATION ── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--creme);
  border-bottom: 1px solid rgba(28,18,8,0.1);
  transition: box-shadow var(--ease);
}
.site-header.scrolled { box-shadow: 0 2px 20px rgba(28,18,8,0.08); }

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 40px;
  max-width: var(--max-width);
  margin: 0 auto;
}

.site-logo {
  display: flex;
  align-items: center;
  gap: 0;
  text-decoration: none;
}
.site-logo svg { width: 200px; height: auto; }

.nav-menu {
  display: flex;
  align-items: center;
  gap: 32px;
}
.nav-menu a {
  font-size: var(--text-md);
  color: var(--txt-mid);
  font-weight: 500;
  transition: color var(--ease);
  position: relative;
}
.nav-menu a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--terracotta);
  transition: width var(--ease);
}
.nav-menu a:hover { color: var(--brun); }
.nav-menu a:hover::after { width: 100%; }

.nav-cta {
  background: var(--brun);
  color: var(--creme);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 10px 22px;
  border: none;
  transition: background var(--ease);
  text-decoration: none;
  display: inline-block;
}
.nav-cta:hover { background: var(--terracotta); color: white; }

.nav-cart {
  position: relative;
  color: var(--brun);
  font-size: 20px;
}
.cart-count {
  position: absolute;
  top: -6px;
  right: -8px;
  background: var(--terracotta);
  color: white;
  font-family: var(--font-mono);
  font-size: 9px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Hamburger mobile */
.nav-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  padding: 4px;
}
.nav-hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--brun);
  transition: all var(--ease);
}

/* ── 6. HERO ── */
.hero {
  padding: 100px 40px 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  min-height: 640px;
  max-width: var(--max-width);
  margin: 0 auto;
  position: relative;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--terracotta);
  border: 1px solid rgba(194,65,12,0.3);
  padding: 7px 16px;
  margin-bottom: 28px;
}
.hero-badge::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--terracotta);
  flex-shrink: 0;
}

.hero-title {
  font-family: var(--font-serif);
  font-size: clamp(44px, 7vw, 80px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 28px;
}
.hero-title em { font-style: italic; color: var(--terracotta); }

.hero-subtitle {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 19px;
  color: var(--muted);
  margin-bottom: 36px;
  max-width: 460px;
  line-height: 1.5;
}

.hero-actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }

.btn-primary {
  background: var(--brun);
  color: var(--creme);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 14px 28px;
  border: none;
  transition: background var(--ease);
  display: inline-block;
  text-align: center;
}
.btn-primary:hover { background: var(--terracotta); color: white; }

.btn-ghost {
  background: transparent;
  color: var(--brun);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 13px 28px;
  border: 1.5px solid rgba(28,18,8,0.2);
  transition: border-color var(--ease);
  display: inline-block;
}
.btn-ghost:hover { border-color: var(--brun); }

.btn-accent {
  background: var(--terracotta);
  color: white;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 14px 28px;
  border: none;
  transition: background var(--ease);
  display: inline-block;
}
.btn-accent:hover { background: var(--brun); }

.hero-stats {
  display: flex;
  gap: 40px;
  margin-top: 48px;
  padding-top: 36px;
  border-top: 1px solid rgba(28,18,8,0.1);
}
.stat-num {
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 400;
  letter-spacing: -0.02em;
  display: block;
  line-height: 1;
}
.stat-num em { font-style: italic; color: var(--terracotta); }
.stat-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 6px;
  display: block;
}

.hero-visual { position: relative; }
.hero-image-wrap {
  width: 100%;
  aspect-ratio: 4/5;
  background: linear-gradient(135deg, #E8D5C0, #C9A87A);
  position: relative;
  overflow: hidden;
}
.hero-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-image-tag {
  position: absolute;
  bottom: 24px;
  right: 24px;
  background: var(--brun);
  color: var(--creme);
  padding: 12px 18px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.hero-image-tag span {
  display: block;
  font-family: var(--font-serif);
  font-size: 20px;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--saumon);
  font-style: italic;
  margin-top: 4px;
}

/* ── 7. BANDEAU ── */
/* Bandeau du haut (livraison/made in france/devis)
   Pattern bullet-proof : block + text-align (universellement supporte, pas de flex
   override possible par Gutenberg/WC layout). Les spans en inline-block centrent
   comme du texte normal. */
.printz-top-bandeau {
  display: block;
  width: 100%;
  margin: 0;
  padding: 14px 32px;
  box-sizing: border-box;
  text-align: center;
  background: var(--brun);
  color: var(--creme);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  line-height: 1.6;
}
.printz-top-bandeau > span {
  display: inline-block;
  vertical-align: middle;
  margin: 0 14px;
}
.printz-top-bandeau strong { color: var(--saumon); font-weight: 600; }
.printz-top-bandeau .sep { color: var(--saumon); opacity: 0.5; margin: 0; }

/* Bandeau materiaux (sous le hero) */
.bandeau {
  background: var(--brun);
  color: var(--creme);
  padding: 16px 40px;
  display: flex;
  gap: 48px;
  align-items: center;
  overflow: hidden;
  flex-wrap: nowrap;
}
.bandeau-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(245,237,224,0.55);
  flex-shrink: 0;
}
.bandeau-item strong { color: var(--saumon); font-weight: 500; }
.bandeau-sep { color: rgba(245,237,224,0.15); font-size: 20px; flex-shrink: 0; }

/* ── 8. PRODUITS ── */
.produits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
}

.produit-card {
  aspect-ratio: 3/4;
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
}
.produit-card-bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.produit-card:hover .produit-card-bg { transform: scale(1.03); }
.produit-card-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 60px;
  transition: transform 0.4s ease;
}
.produit-card:hover .produit-card-placeholder { transform: scale(1.03); }

.produit-card-info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px;
  background: linear-gradient(to top, rgba(28,18,8,0.8) 0%, transparent 100%);
}
.produit-card-name {
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 400;
  color: white;
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}
.produit-card-price {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
}

.produit-card-overlay {
  position: absolute;
  inset: 0;
  background: rgba(194,65,12,0.88);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.25s;
}
.produit-card:hover .produit-card-overlay { opacity: 1; }
.produit-card-overlay span {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: white;
}

.produit-card-special {
  aspect-ratio: 3/4;
  background: var(--terracotta);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px;
  text-decoration: none;
  transition: background var(--ease);
}
.produit-card-special:hover { background: var(--brun); }
.produit-card-special-title {
  font-family: var(--font-serif);
  font-size: 36px;
  font-weight: 400;
  color: white;
  font-style: italic;
  margin-bottom: 12px;
}
.produit-card-special-sub {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}

/* ── 9. PROCESS ── */
.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
}
.process-step { border-top: 1px solid rgba(245,237,224,0.12); padding-top: 28px; }
.process-num {
  font-family: var(--font-serif);
  font-size: 56px;
  font-style: italic;
  color: var(--terracotta);
  line-height: 1;
  margin-bottom: 18px;
}
.process-title {
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 400;
  margin-bottom: 12px;
  color: var(--creme);
}
.process-desc { font-size: 14px; color: rgba(245,237,224,0.45); line-height: 1.6; }

/* ── 10. DEVIS ── */
.devis-section {
  padding: var(--section-pad) 0;
  background: var(--creme-mid);
}
.devis-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 40px;
}
.devis-features { display: flex; flex-direction: column; gap: 16px; margin-top: 28px; }
.devis-feature {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-size: 15px;
  color: rgba(28,18,8,0.6);
}
.devis-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--terracotta);
  flex-shrink: 0;
  margin-top: 6px;
}

.devis-form {
  background: var(--creme);
  padding: 40px;
}
.devis-form h3 {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 400;
  margin-bottom: 28px;
}
.form-field { margin-bottom: 18px; }
.form-field label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(28,18,8,0.4);
  display: block;
  margin-bottom: 7px;
}
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  background: var(--creme-mid);
  border: none;
  padding: 12px 16px;
  font-size: 14px;
  color: var(--brun);
  outline: none;
  transition: background var(--ease);
  -webkit-appearance: none;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { background: #E0C8A0; }
.form-field textarea { min-height: 100px; resize: vertical; }
.form-submit {
  width: 100%;
  background: var(--terracotta);
  color: white;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 16px;
  border: none;
  transition: background var(--ease);
  margin-top: 8px;
}
.form-submit:hover { background: var(--brun); }

/* ── 11. TÉMOIGNAGES ── */
.temoignages-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.temo-card { background: var(--creme-mid); padding: 32px; }
.temo-stars {
  color: var(--terracotta);
  font-size: 14px;
  margin-bottom: 16px;
  letter-spacing: 2px;
}
.temo-text {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  line-height: 1.55;
  margin-bottom: 20px;
  color: rgba(28,18,8,0.75);
}
.temo-author {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(28,18,8,0.4);
}
.temo-product { font-size: 12px; color: rgba(28,18,8,0.3); margin-top: 4px; }

/* ── 12. À PROPOS ── */
.about-section {
  background: var(--brun);
  color: var(--creme);
  padding: var(--section-pad) 0;
}
.about-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 40px;
}
.about-image {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #2A2010, #382C18);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.about-image img { width: 100%; height: 100%; object-fit: cover; }
.about-image-placeholder {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(245,237,224,0.2);
}
.about-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.about-tag {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: 1px solid rgba(245,237,224,0.15);
  padding: 7px 16px;
  color: rgba(245,237,224,0.35);
}
.about-tag.active { border-color: var(--terracotta); color: var(--saumon); }
.about-section .section-kicker { color: rgba(245,237,224,0.4); }
.about-section h2 { color: var(--creme); margin-bottom: 20px; }
.about-section h2 em { color: var(--saumon); }
.about-section p { color: rgba(245,237,224,0.5); line-height: 1.75; }

/* ── 12bis. PAGE MATERIAUX (grille structuree) ── */
.mat-grid { display: block; max-width: 980px; margin: 0 auto; }
.mat-intro {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: var(--text-lg);
  color: var(--muted);
  max-width: 680px;
  margin: 0 auto 36px;
  line-height: 1.6;
}
.mat-card {
  display: block;
  background: #F7ECD2;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 24px;
}
.mat-card__head {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 24px;
  border-bottom: 3px solid var(--terracotta);
}
.mat-card__head--dark { color: var(--blanc); }
.mat-card__head--dark .mat-card__title { color: var(--blanc); }
.mat-card__emoji { font-size: 38px; line-height: 1; flex-shrink: 0; }
.mat-card__id { flex: 1; min-width: 0; }
.mat-card__title {
  font-family: var(--font-serif);
  font-size: 26px;
  margin: 0;
  color: var(--brun);
  font-weight: 600;
  line-height: 1.1;
}
.mat-card__sub {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--terracotta);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-top: 2px;
}
.mat-card__head--dark .mat-card__sub { color: var(--saumon); }
.mat-card__prix {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--txt-strong);
  background: rgba(255,253,247,0.92);
  padding: 6px 12px;
  border-radius: 14px;
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
}
.mat-card__body { padding: 20px 24px; }
.mat-card__section { margin-bottom: 14px; }
.mat-card__label {
  font-size: var(--text-xs);
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 4px;
}
.mat-card__label--orange { color: var(--terracotta); }
.mat-card__label--green { color: var(--success); }
.mat-card__label--red { color: var(--error); }
.mat-card__text {
  font-size: var(--text-sm);
  color: var(--brun);
}
.mat-card__text--italic { font-style: italic; }
.mat-card__text--muted { color: var(--muted); }
.mat-card__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 12px;
}
.mat-card__atouts {
  padding: 0; margin: 0; list-style: none;
  font-size: 13px; color: var(--brun); line-height: 1.5;
}
.mat-card__atouts li {
  padding: 4px 0;
  display: flex;
  gap: 8px;
}
.mat-card__atouts li::before {
  content: '\2713';
  color: var(--terracotta);
  flex-shrink: 0;
  font-weight: 700;
}
.mat-guide {
  display: block;
  margin-top: 48px;
  background: linear-gradient(135deg, #F7ECD2 0%, #E7CBA1 100%);
  border-radius: 14px;
  padding: 30px 32px;
}
.mat-guide__title {
  font-family: var(--font-serif);
  font-size: 24px;
  margin: 0 0 6px;
  color: var(--brun);
}
.mat-guide__intro {
  margin: 0 0 22px;
  color: var(--muted);
  font-style: italic;
}
.mat-guide__rows { display: grid; gap: 10px; }
.mat-guide__row {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px;
  background: #F4ECD9;
  border-left: 3px solid var(--terracotta);
  padding: 12px 18px;
  border-radius: 6px;
  font-size: var(--text-sm);
}
.mat-guide__row b { color: var(--terracotta); font-weight: 600; }
.mat-guide__cta {
  text-align: center;
  margin: 24px 0 0;
  font-size: var(--text-sm);
  color: var(--muted);
}
.mat-guide__cta a {
  color: var(--terracotta);
  font-weight: 600;
}
@media (max-width: 600px) {
  .mat-card__cols { grid-template-columns: 1fr; }
  .mat-card__head { flex-wrap: wrap; }
  .mat-guide__row { grid-template-columns: 1fr; }
}

/* ── 13. FOOTER ── */
.site-footer {
  background: var(--creme-mid);
  padding: 56px 40px 36px;
  border-top: 1px solid rgba(28,18,8,0.08);
}
.footer-inner { max-width: var(--max-width); margin: 0 auto; }
.footer-top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}
.footer-brand-logo { margin-bottom: 14px; }
.footer-brand-logo svg { width: 160px; }
.footer-tagline { font-size: 14px; color: rgba(28,18,8,0.45); max-width: 280px; line-height: 1.6; }
.footer-col h4 {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--terracotta);
  font-weight: 600;
  margin-bottom: 16px;
}
.footer-col a {
  display: block;
  font-size: 14px;
  color: rgba(28,18,8,0.55);
  padding: 5px 0;
  transition: color var(--ease);
}
.footer-col a:hover { color: var(--terracotta); }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 28px;
  border-top: 1px solid rgba(28,18,8,0.07);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(28,18,8,0.28);
}
.footer-legal { display: flex; gap: 20px; }
.footer-legal a { color: inherit; transition: color var(--ease); }
.footer-legal a:hover { color: var(--terracotta); }
/* Hover des icônes sociales (Insta/TikTok) en CSS pur (remplace l'inline JS) */
.printz-social-link:hover { transform: scale(1.08); }

/* ── 14. WOOCOMMERCE — CATALOGUE ── */
.woocommerce-page .woocommerce-notices-wrapper { max-width: var(--max-width); margin: 0 auto; padding: 0 40px; }

ul.products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.products li.product {
  background: var(--creme);
  border: 1px solid var(--line);
  position: relative;
  overflow: hidden;
  transition: transform var(--ease), box-shadow var(--ease);
}
ul.products li.product:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(28,18,8,0.1); }

ul.products li.product a img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
}
ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 500;
  padding: 16px 20px 4px;
  color: var(--brun);
  letter-spacing: -0.01em;
}
ul.products li.product .price {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--terracotta);
  padding: 0 20px 16px;
  display: block;
}
ul.products li.product .button {
  display: block;
  margin: 0 20px 20px;
  background: var(--brun);
  color: var(--creme);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 10px 20px;
  text-align: center;
  border: none;
  transition: background var(--ease);
}
ul.products li.product .button:hover { background: var(--terracotta); }

/* ── 15. WOOCOMMERCE — PAGE PRODUIT ── */
.single-product .product {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 60px 40px;
}
.single-product .woocommerce-product-gallery { position: relative; }
.single-product .woocommerce-product-gallery__image img { width: 100%; }
.single-product .product_title {
  font-family: var(--font-serif);
  font-size: 40px;
  font-weight: 400;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  text-transform: uppercase;
}
.single-product .price {
  font-family: var(--font-mono);
  font-size: 24px;
  color: var(--terracotta);
  margin-bottom: 24px;
  display: block;
}
.single-product .woocommerce-product-details__short-description {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 28px;
}
.single-product .single_add_to_cart_button {
  background: var(--brun);
  color: var(--creme);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 16px 32px;
  border: none;
  transition: background var(--ease);
  width: 100%;
  font-size: 12px;
}
.single-product .single_add_to_cart_button:hover { background: var(--terracotta); }

/* ── 16. WOOCOMMERCE — PANIER & CHECKOUT ── */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 60px 40px;
}
.woocommerce table.shop_table { border-collapse: collapse; width: 100%; }
.woocommerce table.shop_table th {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--brun);
  padding: 12px 16px;
  color: var(--muted);
  text-align: left;
}
.woocommerce table.shop_table td { padding: 16px; border-bottom: 1px solid var(--line); }
.woocommerce .button {
  background: var(--brun);
  color: var(--creme);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 12px 24px;
  border: none;
  transition: background var(--ease);
}
.woocommerce .button:hover { background: var(--terracotta); color: white; }
.woocommerce #place_order {
  background: var(--terracotta);
  color: white;
  width: 100%;
  padding: 16px;
  font-size: 12px;
}
.woocommerce #place_order:hover { background: var(--brun); }

/* ── 17. PAGES STANDARD ── */
.page-header {
  background: var(--brun);
  color: var(--creme);
  padding: 64px 40px;
  text-align: center;
}
.page-header h1 {
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 400;
  color: var(--creme);
}
.page-header h1 em { color: var(--saumon); }
.page-content {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 40px;
}

/* === WooCommerce My Account === */
/* Logged-in users : grid 220px sidebar + main */
body.logged-in.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 32px;
  align-items: start;
}
/* Not logged in : login/register 2 columns côte-à-côte */
body:not(.logged-in).woocommerce-account .u-columns.col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
}
body:not(.logged-in).woocommerce-account .u-columns.col2-set .col-1,
body:not(.logged-in).woocommerce-account .u-columns.col2-set .col-2,
body:not(.logged-in).woocommerce-account .u-column1,
body:not(.logged-in).woocommerce-account .u-column2 {
  background: var(--creme-mid);
  border-radius: 12px;
  padding: 28px 32px;
  border: 1px solid var(--line);
  width: 100% !important;
  float: none !important;
}
body:not(.logged-in).woocommerce-account .u-columns.col2-set h2 {
  font-family: var(--font-serif);
  font-size: 22px;
  color: var(--terracotta);
  margin: 0 0 18px;
}
@media (max-width: 768px) {
  body.logged-in.woocommerce-account .woocommerce,
  body:not(.logged-in).woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}
.woocommerce-MyAccount-navigation {
  background: var(--creme-mid);
  border-radius: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  position: sticky; top: 20px;
}
.woocommerce-MyAccount-navigation ul {
  list-style: none; padding: 0; margin: 0;
}
.woocommerce-MyAccount-navigation li { margin-bottom: 2px; }
.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 10px 14px;
  text-decoration: none;
  color: var(--brun);
  font-size: 14px;
  border-radius: 6px;
  transition: all .15s;
}
.woocommerce-MyAccount-navigation li a:hover {
  background: var(--creme);
  color: var(--terracotta);
}
.woocommerce-MyAccount-navigation li.is-active a {
  background: var(--terracotta);
  color: white;
  font-weight: 600;
}
.woocommerce-MyAccount-content {
  background: var(--creme-mid);
  border-radius: 12px;
  padding: 32px 36px;
  border: 1px solid var(--line);
}
.woocommerce-MyAccount-content > p:first-child {
  font-family: var(--font-serif);
  font-size: 19px;
  color: var(--brun);
  margin-bottom: 16px;
}
.woocommerce-MyAccount-content > p:first-child strong {
  color: var(--terracotta);
}
.woocommerce-MyAccount-content a { color: var(--terracotta); }
.woocommerce-MyAccount-content table {
  width: 100%; border-collapse: collapse; margin-top: 18px;
  background: var(--blanc); border-radius: 8px; overflow: hidden;
}
.woocommerce-MyAccount-content table th,
.woocommerce-MyAccount-content table td {
  padding: 12px 14px; text-align: left;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.woocommerce-MyAccount-content table th {
  background: var(--creme);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--muted);
}
.woocommerce-MyAccount-content .button {
  display: inline-block;
  background: var(--terracotta);
  color: white !important;
  padding: 10px 20px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  border: none;
  cursor: pointer;
}
.woocommerce-MyAccount-content .button:hover { background: #8B2E08; }

/* WC login / register forms styling */
.woocommerce-form-login, .woocommerce-form-register {
  margin: 0;
}

/* Cache UNIQUEMENT les éléments vraiment vides */
.woocommerce-password-strength:empty,
#pass-strength-result:empty,
.woocommerce-password-hint:empty,
.password-input-wrapper-hint:empty,
.description.indicator-hint:empty {
  display: none !important;
}
/* Cache aussi un <p> orphelin contenant juste un point */
.woocommerce-form-row p:empty,
form.register p:empty { display: none !important; }

/* Password strength meter — barre colorée (WP core + WC) */
.woocommerce-password-strength,
#pass-strength-result,
.password-input-wrapper .pass-strength-result {
  display: block !important;
  margin-top: 8px !important;
  padding: 10px 16px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-align: center !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  border: 1px solid transparent !important;
  position: relative !important;
  overflow: hidden !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.woocommerce-password-strength::before,
#pass-strength-result::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  background: currentColor;
  opacity: 0.18;
  transition: width .25s;
  z-index: 0;
}
.woocommerce-password-strength > *,
#pass-strength-result > * { position: relative; z-index: 1; }

/* Rouge — très court */
.woocommerce-password-strength.short,
#pass-strength-result.short {
  background: #FFE0E0 !important; color: #8B1A1A !important; border-color: #8B1A1A !important;
}
.woocommerce-password-strength.short::before,
#pass-strength-result.short::before { width: 20%; }

/* Orange — faible */
.woocommerce-password-strength.bad,
#pass-strength-result.bad {
  background: #FFE9D5 !important; color: #C2410C !important; border-color: #C2410C !important;
}
.woocommerce-password-strength.bad::before,
#pass-strength-result.bad::before { width: 45%; }

/* Jaune — moyen */
.woocommerce-password-strength.good,
#pass-strength-result.good {
  background: #FFF4D5 !important; color: #B88420 !important; border-color: #B88420 !important;
}
.woocommerce-password-strength.good::before,
#pass-strength-result.good::before { width: 70%; }

/* Vert — fort */
.woocommerce-password-strength.strong,
#pass-strength-result.strong {
  background: #D4E9D8 !important; color: #2D5F3F !important; border-color: #2D5F3F !important;
}
.woocommerce-password-strength.strong::before,
#pass-strength-result.strong::before { width: 100%; }

/* Hint texte WC (« Le mot de passe devrait contenir... ») */
.woocommerce-password-hint,
.password-input-wrapper-hint,
.description.indicator-hint {
  display: block !important;
  margin-top: 8px !important;
  padding: 10px 14px !important;
  background: #FFF3CD !important;
  color: #5C544A !important;
  border-left: 3px solid #C2410C !important;
  border-radius: 4px !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

/* Notre conseil custom sous le champ password (injecté via mu-plugin) */
.printz-password-tips {
  display: block;
  margin-top: 6px;
  padding: 10px 14px;
  background: var(--creme);
  border-left: 3px solid var(--terracotta);
  border-radius: 6px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}
.printz-password-tips strong { color: var(--brun); }
.woocommerce-form-row { margin-bottom: 14px; }
.woocommerce-form-row label {
  display: block; font-size: 13px; color: var(--muted);
  font-weight: 600; margin-bottom: 4px;
}
.woocommerce-Input {
  width: 100% !important; padding: 10px 14px !important;
  border: 1px solid var(--line) !important;
  border-radius: 6px !important;
  background: var(--blanc) !important;
  font-family: inherit !important; font-size: 14px !important;
}
.woocommerce-form__label-for-checkbox { display: flex; gap: 6px; align-items: center; font-size: 13px; }
.lost_password a { color: var(--terracotta); font-size: 13px; text-decoration: none; }
.page-content p { font-size: 16px; line-height: 1.75; color: rgba(28,18,8,0.78); margin-bottom: 20px; }
.page-content h2 { font-size: 28px; margin: 40px 0 16px; }
.page-content h3 { font-size: 22px; margin: 32px 0 12px; }
/* Stops wpautop from breaking inline-styled redesigned pages */
.page-content > p:empty { display: none; }
.page-content > br { display: none; }

/* ── 18. FAQ ── */
.faq-list { max-width: 760px; margin: 0 auto; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question {
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  padding: 20px 0;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 500;
  color: var(--brun);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.faq-question::after {
  content: '+';
  font-family: var(--font-mono);
  font-size: 20px;
  color: var(--terracotta);
  flex-shrink: 0;
  transition: transform var(--ease);
}
.faq-item.open .faq-question::after { transform: rotate(45deg); }
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.faq-answer-inner { padding: 0 0 20px; font-size: 15px; color: var(--muted); line-height: 1.7; }
.faq-item.open .faq-answer { max-height: 500px; }

/* ── 19. CONTACT & DEVIS ── */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 60px 40px;
}
.contact-info-item {
  display: flex;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}
.contact-info-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  min-width: 80px;
}
.contact-info-val { font-size: 15px; color: var(--brun); }

/* ── 20. RESPONSIVE ── */
@media (max-width: 1024px) {
  .hero { grid-template-columns: 1fr; gap: 48px; padding: 60px 40px; }
  .hero-visual { order: -1; }
  .hero-image-wrap { aspect-ratio: 16/9; }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .produits-grid { grid-template-columns: 1fr 1fr; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .about-inner { grid-template-columns: 1fr; }
  .devis-inner { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  :root { --section-pad: 56px; }
  .container, .nav-inner { padding: 0 20px; }
  .hero { padding: 48px 20px; }
  .bandeau { padding: 14px 20px; gap: 24px; }
  .nav-menu { display: none; }
  .nav-hamburger { display: flex; }
  .nav-menu.open {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    background: var(--creme);
    z-index: 200;
    align-items: center;
    justify-content: center;
    gap: 32px;
  }
  .nav-menu.open a { font-size: 24px; color: var(--brun); }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .produits-grid { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .temoignages-grid { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; }
  .hero-stats { gap: 24px; }
  ul.products { grid-template-columns: 1fr 1fr; }
  .single-product .product { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 480px) {
  ul.products { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr; }
  .hero-actions { flex-direction: column; }
  .btn-primary, .btn-ghost { width: 100%; text-align: center; }
}

/* ============================================================
   21. WOOCOMMERCE — BLOCS PRINTZ (fiche produit)
   3D viewer (priorité 32), Devis sur-mesure (33), Crédit h3li0 (35)
   ============================================================ */

/* Carte / bouton "Teste ta couleur en 3D" */
.printz-3d-block { margin: 20px 0; }
.printz-3d-open,
.printz-3d-placeholder {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  width: 100%;
  background: #F4ECD9;
  border: 1.5px dashed var(--terracotta);
  border-radius: 4px;
  padding: 16px 20px;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-sans);
  transition: background var(--ease), border-color var(--ease);
}
.printz-3d-open:hover {
  background: #F6EFE3;
  border-style: solid;
}
.printz-3d-placeholder {
  cursor: default;
  opacity: 0.75;
  border-style: dotted;
}
.printz-3d-icon {
  font-size: 18px;
  color: var(--terracotta);
  line-height: 1;
}
.printz-3d-label {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--brun);
}
.printz-3d-sub {
  font-size: 12px;
  color: var(--muted);
  font-family: var(--font-sans);
}

/* Modal 3D */
.printz-3d-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
}
.printz-3d-modal.is-open { display: flex; }
.printz-3d-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(28, 18, 8, 0.75);
}
.printz-3d-content {
  position: relative;
  background: #F4ECD9;
  border-radius: 6px;
  width: min(960px, 92vw);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.4);
}
.printz-3d-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: transparent;
  border: none;
  font-size: 28px;
  line-height: 1;
  color: var(--brun);
  cursor: pointer;
  z-index: 2;
}
.printz-3d-header {
  padding: 28px 32px 16px;
  border-bottom: 1px solid var(--line);
}
.printz-3d-kicker {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--terracotta);
  font-weight: 700;
  margin-bottom: 6px;
}
.printz-3d-title {
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 400;
  margin: 0 0 6px;
  color: var(--brun);
}
.printz-3d-help {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}
.printz-3d-body {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 24px;
  padding: 24px 32px;
  flex: 1;
  min-height: 0;
}
.printz-3d-canvas {
  background: #F4ECD9;
  border: 1px solid var(--line);
  border-radius: 4px;
  min-height: 380px;
  position: relative;
  overflow: hidden;
}
.printz-3d-canvas canvas { display: block; }
.printz-3d-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
.printz-3d-controls {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.printz-3d-vc-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}
.printz-3d-swatches {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.printz-3d-sw {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid #FCFAF5;
  box-shadow: 0 0 0 1px var(--line);
  transition: box-shadow 0.15s ease;
}
.printz-3d-sw.on { box-shadow: 0 0 0 2px var(--terracotta); }
.printz-3d-footer {
  padding: 16px 32px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}
.printz-3d-btn {
  background: var(--brun);
  color: var(--creme);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 12px 24px;
  border: none;
  cursor: pointer;
  transition: background var(--ease);
}
.printz-3d-btn:hover { background: var(--terracotta); }
body.printz-3d-open { overflow: hidden; }

/* Lien "Devis sur-mesure" */
.printz-devis-link {
  margin: 18px 0;
  padding: 14px 18px;
  background: #F4ECD9;
  border: 1px solid var(--line);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.printz-devis-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}
.printz-devis-cta {
  font-family: var(--font-serif);
  font-size: 16px;
  color: var(--terracotta);
  text-decoration: none;
  font-style: italic;
  transition: color var(--ease);
}
.printz-devis-cta:hover { color: var(--brun); }
.printz-devis-arrow {
  display: inline-block;
  margin-left: 6px;
  transition: transform var(--ease);
}
.printz-devis-cta:hover .printz-devis-arrow { transform: translateX(4px); }

/* Bloc "Designed by h3li0" */
.printz-credit {
  margin: 16px 0;
  background: #F4ECD9;
  border-left: 3px solid var(--terracotta);
  padding: 14px 18px;
  border-radius: 0 4px 4px 0;
}
.printz-credit-kicker {
  display: block;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
  margin-bottom: 6px;
}
.printz-credit-text {
  font-size: 13px;
  color: var(--txt-mid);
  line-height: 1.55;
  margin: 0;
}
.printz-credit-text strong { color: var(--brun); }
.printz-credit-link {
  color: var(--terracotta);
  text-decoration: none;
  border-bottom: 1px solid var(--terracotta);
}
.printz-credit-link:hover { color: var(--brun); border-bottom-color: var(--brun); }

/* Responsive — modal en colonne sur mobile */
@media (max-width: 768px) {
  .printz-3d-body {
    grid-template-columns: 1fr;
    padding: 16px 20px;
  }
  .printz-3d-canvas { min-height: 320px; }
  .printz-3d-header { padding: 20px 20px 14px; }
  .printz-3d-footer { padding: 14px 20px; }
}


/* ===== WC Single Product — Printz ===== */
.single-product .product_title {
  font-family: var(--font-serif);
  font-size: clamp(32px, 4vw, 44px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.single-product .product_title::first-line { text-transform: uppercase; }
.single-product .price {
  font-family: var(--font-serif);
  font-size: 28px;
  color: var(--terracotta);
}
.single-product .woocommerce-product-gallery {
  position: relative;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 6px;
  margin: 10px 0 0 !important;
  list-style: none;
  padding: 0;
}
.single-product .flex-control-thumbs li {
  width: auto !important;
  margin: 0 !important;
}
.single-product .flex-control-thumbs img {
  width: 100% !important;
  height: auto;
  border: 2px solid var(--line);
  border-radius: 6px;
  cursor: pointer;
  transition: border-color .2s;
}
.single-product .flex-control-thumbs img:hover,
.single-product .flex-control-thumbs img.flex-active {
  border-color: var(--terracotta);
}
.single-product .quantity input { background: var(--card); }
.single-product .single_add_to_cart_button { width: 100%; font-size: 13px; }
/* Hide UGS row */
.single-product .product_meta .sku_wrapper { display: none; }

/* === WooCommerce pagination — Printz === */
.woocommerce nav.woocommerce-pagination {
  display: flex !important;
  justify-content: center;
  margin: 40px 0 !important;
  text-align: center;
}
.woocommerce nav.woocommerce-pagination ul {
  display: flex !important;
  gap: 8px;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: none !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 14px !important;
  border: 1.5px solid var(--line) !important;
  border-radius: 4px !important;
  background: var(--card) !important;
  color: var(--brun) !important;
  text-decoration: none !important;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: all 0.2s ease;
  line-height: 1;
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
  border-color: var(--terracotta) !important;
  color: var(--terracotta) !important;
  background: var(--card) !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a.current {
  background: var(--terracotta) !important;
  color: #FDA270 !important;
  border-color: var(--terracotta) !important;
}
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce nav.woocommerce-pagination ul li a.next {
  font-size: 16px;
}


/* === Printz WC product page - final polish === */

/* Chips active : fond brun + TEXTE SAUMON (comme le bandeau top) */
.single-product .chip.on {
  background: var(--brun) !important;
  color: var(--saumon) !important;
  border-color: var(--brun) !important;
}
.single-product .chip {
  background: var(--card);
  color: var(--brun);
  border: 1.5px solid var(--line);
}

/* Bouton AJOUTER AU PANIER : texte saumon */
.single-product .single_add_to_cart_button {
  color: var(--saumon) !important;
}

/* MASQUER les tabs WC standards (Description / Informations complementaires / Avis) */
/* Selecteur agressif anti-cache : couvre tous les wrappers + panneaux tabs */
.woocommerce-tabs,
.wc-tabs-wrapper,
ul.wc-tabs,
.woocommerce-Tabs-panel,
.product .woocommerce-tabs,
body.single-product .woocommerce-tabs,
#tab-description,
#tab-additional_information,
#tab-reviews {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Reduire le grand vide entre la fiche et les produits similaires */
.single-product .product {
  margin-bottom: 32px !important;
}
.single-product .related.products {
  margin-top: 40px !important;
}
.single-product .related.products h2 {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 400;
  margin-bottom: 24px;
  color: var(--brun);
}

/* Si le mu-plugin tourne encore et ajoute un credit doublon, cacher le 2eme */
.single-product .credit + .credit { display: none !important; }

/* ----------------------------------------------------------- */
/* PRINTZ FONDS CREME (2026-06-02) - override fonds #fff -> creme */
/* ----------------------------------------------------------- */
/* === Printz - Homogeneisation des fonds creme sur tout le site === */
/* Cible : boutique, archive categorie, panier, compte client, blog, pages. */
/* Charte : --creme fond page, --card surface card. */
/* Exceptions : inputs (contraste lecture), .page-header (brun), canvas 3D. */

/* 0) Cleanup tokens : on remplace les literals #FCFAF5 par var(--card)
   et on s'assure que body / wrappers principaux sont sur var(--creme). */
body,
.site,
.site-content,
.site-main,
#content,
#primary,
.content-area {
  background: var(--creme);
}

/* 1) Cards catalogue (boutique + archive categorie + recherche)
   Actuellement deja var(--creme) ligne 966, on renforce et on neutralise
   les overrides eventuels du theme parent / WC. */
ul.products li.product,
.woocommerce ul.products li.product,
.wc-block-grid__product,
.wp-block-woocommerce-product-template li.product {
  background: var(--creme);
}

/* 2) Pastille prix des mat-card : on l'aligne sur var(--card) (opaque,
   plus lisible sur le bandeau brun et dans la palette). */
.mat-card__prix {
  background: var(--card);
}

/* 3) Mon Compte WooCommerce - tableau Commandes/Adresses
   var(--blanc) -> var(--card) pour rester dans la charte vitrine,
   les th restent var(--creme) (hierarchie preservee). */
.woocommerce-MyAccount-content table,
.woocommerce-MyAccount-content .woocommerce-orders-table,
.woocommerce-MyAccount-content .woocommerce-MyAccount-paymentMethods,
.woocommerce-MyAccount-content .shop_table {
  background: var(--card);
}
.woocommerce-MyAccount-content table tbody tr,
.woocommerce-MyAccount-content .shop_table tbody tr {
  background: transparent;
}
.woocommerce-MyAccount-content table tbody tr:nth-child(even),
.woocommerce-MyAccount-content .shop_table tbody tr:nth-child(even) {
  background: rgba(231, 203, 161, 0.25); /* creme-mid attenue pour zebra */
}

/* 4) Panier / Checkout - wrappers et tableaux blancs */
.woocommerce-cart .shop_table,
.woocommerce-checkout .shop_table,
.woocommerce-cart-form table.cart,
.cart_totals table,
.woocommerce-checkout-review-order-table,
.woocommerce-checkout #order_review,
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--card);
}
.woocommerce-cart .shop_table tbody tr,
.woocommerce-checkout .shop_table tbody tr {
  background: transparent;
}

/* Notices WooCommerce globales (panier, checkout, compte) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce-notice {
  background: var(--card);
}

/* 5) Cleanup token : les regles theme qui hardcodent #FCFAF5
   sont reecrites pour utiliser var(--card). On surcharge avec
   les memes selecteurs - dernier wins. */
.mat-guide__row,
.printz-3d-trigger,
.printz-3d-content,
.printz-3d-canvas,
.printz-devis-link,
.printz-credit {
  background: var(--card);
}

/* 6) Pages standard (article, page WP) - wrappers blancs */
.entry-content,
.page .entry-content,
.single .entry-content,
article.post,
article.page {
  background: transparent;
}

/* Cards article blog si elles existent en var(--blanc) */
.blog ul li.post,
.archive ul li.post,
article.type-post.has-post-thumbnail {
  background: var(--card);
}

/* 7) Widgets sidebar / footer si fond blanc */
.widget,
.widget-area .widget,
.sidebar .widget {
  background: transparent;
}

/* 8) Safety net : on chasse les fonds blancs purs restants
   hors champs de saisie, bandeau brun et canvas 3D. */
[class*="wc-block"]:not(input):not(textarea):not(select) {
  background-color: transparent;
}

/* 9) Inputs : on confirme l'exception (lecture utilisateur).
   On NE TOUCHE PAS aux .woocommerce-Input, input, textarea, select. */

/* 10) Garde-fous : on s'assure que les zones qui DOIVENT rester sombres
   ou autres ne sont pas affectees par les regles plus haut. */
.page-header,
.woocommerce-products-header,
.ctm-canvas-wrap,
.ctm-canvas-wrap canvas {
  /* gere ailleurs - non override ici */
}


/* =========================================================== */
/* PRINTZ - RESTYLE ELEMENTS NATIFS WOOCOMMERCE (2026-06-02)   */
/* Bloc unifie : selecteurs natifs WC non couverts par le      */
/* theme. Palette : --brun #1C1208, --terracotta #C2410C,      */
/* --saumon #FDA270, --creme #EFE3C9, --card #FCFAF5,          */
/* --muted #7A6858, --line #D7C6A5. Font mono = Geist Mono.    */
/* =========================================================== */

/* ----------------------------------------------------------- */
/* 1) SELECTEUR DE TRI .woocommerce-ordering                   */
/* ----------------------------------------------------------- */
.woocommerce .woocommerce-ordering {
  margin: 0 0 28px;
  display: inline-block;
  float: none;
}
.woocommerce .woocommerce-ordering select.orderby,
.woocommerce-page .woocommerce-ordering select.orderby {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: 1px solid rgba(194, 65, 12, 0.3);
  border-radius: 999px;
  padding: 8px 36px 8px 16px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C2410C;
  cursor: pointer;
  transition: .2s ease;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%23C2410C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='2,4 5,7 8,4'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 10px 10px;
  outline: none;
}
.woocommerce .woocommerce-ordering select.orderby:hover {
  background-color: rgba(194, 65, 12, 0.06);
  border-color: #C2410C;
}
.woocommerce .woocommerce-ordering select.orderby:focus {
  border-color: #C2410C;
  box-shadow: 0 0 0 2px rgba(194, 65, 12, 0.15);
}

/* ----------------------------------------------------------- */
/* 2) COMPTEUR DE RESULTATS .woocommerce-result-count          */
/* ----------------------------------------------------------- */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A6858;
  margin: 0 0 24px;
  padding: 6px 0;
  float: none;
}

/* ----------------------------------------------------------- */
/* 3) BOUTONS CARD CATALOGUE (Lire la suite / Selectionner...) */
/*    Variante ovale terra plein, label tronque proprement     */
/* ----------------------------------------------------------- */
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product a.button.product_type_simple,
.woocommerce ul.products li.product a.button.product_type_variable,
.woocommerce ul.products li.product a.button.product_type_grouped,
.woocommerce ul.products li.product a.button.product_type_external {
  display: inline-block;
  background: #C2410C;
  color: #EFE3C9;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 9px 18px;
  border-radius: 999px;
  border: 1px solid #C2410C;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .button:hover {
  background: #1C1208;
  border-color: #1C1208;
  color: #FDA270;
}

/* ----------------------------------------------------------- */
/* 4) PAGINATION .woocommerce-pagination (chips terra)         */
/*    Ordre cible : prev | 1 | 2 | 3 | next                    */
/* ----------------------------------------------------------- */
.woocommerce nav.woocommerce-pagination {
  margin: 32px 0 16px;
  text-align: center;
}
.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  gap: 8px;
  border: none;
  margin: 0;
  padding: 0;
  list-style: none;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: none;
  margin: 0;
  padding: 0;
  display: inline-block;
  overflow: visible;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 12px;
  background: transparent;
  border: 1px solid rgba(194, 65, 12, 0.3);
  border-radius: 999px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C2410C;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
  background: rgba(194, 65, 12, 0.08);
  border-color: #C2410C;
  color: #C2410C;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: #C2410C;
  border-color: #C2410C;
  color: #EFE3C9;
}

/* ----------------------------------------------------------- */
/* 5) BADGE PROMO span.onsale                                  */
/* ----------------------------------------------------------- */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
.woocommerce-page span.onsale {
  position: absolute;
  top: 12px;
  right: 12px;
  left: auto;
  background: #C2410C;
  color: #EFE3C9;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
  border: none;
  min-height: auto;
  min-width: auto;
  line-height: 1;
  box-shadow: none;
  margin: 0;
}
.woocommerce.single-product span.onsale {
  top: 24px;
  right: 24px;
  font-size: 10px;
  padding: 7px 14px;
}

/* ----------------------------------------------------------- */
/* 6) STOCK .stock.in-stock / out-of-stock / backorder         */
/* ----------------------------------------------------------- */
.woocommerce div.product p.stock,
.woocommerce-page div.product p.stock {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A6858;
  margin: 12px 0 20px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: none;
}
.woocommerce div.product p.stock.in-stock {
  color: #C2410C;
}
.woocommerce div.product p.stock.in-stock::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #C2410C;
  display: inline-block;
}
.woocommerce div.product p.stock.out-of-stock {
  color: #7A6858;
  opacity: .7;
}
.woocommerce div.product p.stock.available-on-backorder {
  color: #C2410C;
  opacity: .85;
}

/* ----------------------------------------------------------- */
/* 7) RATING .star-rating + .woocommerce-product-rating        */
/* ----------------------------------------------------------- */
.woocommerce .star-rating,
.woocommerce-page .star-rating {
  color: #C2410C;
  font-size: 14px;
  letter-spacing: 2px;
}
.woocommerce .woocommerce-product-rating {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A6858;
  margin-bottom: 16px;
}
.woocommerce .woocommerce-review-link {
  color: #7A6858;
  text-decoration: underline;
  text-decoration-color: #D7C6A5;
}

/* ----------------------------------------------------------- */
/* 8) PRIX PROMO .price del / .price ins                       */
/* ----------------------------------------------------------- */
.woocommerce .price del,
.woocommerce-page .price del {
  color: #7A6858;
  opacity: .6;
  text-decoration: line-through;
  text-decoration-color: #7A6858;
  font-size: .85em;
  margin-right: 8px;
}
.woocommerce .price del .amount,
.woocommerce .price del .woocommerce-Price-amount {
  color: #7A6858 !important;
}
.woocommerce .price ins,
.woocommerce-page .price ins {
  text-decoration: none;
  background: transparent;
  color: #C2410C;
  font-weight: 600;
}
.woocommerce .price ins .amount,
.woocommerce .price ins .woocommerce-Price-amount {
  color: #C2410C;
}

/* ----------------------------------------------------------- */
/* 9) VARIATIONS select natifs (fallback non-swatch)           */
/* ----------------------------------------------------------- */
.woocommerce .variations_form .variations select,
.woocommerce-page .variations_form .variations select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: #F4ECD9;
  border: 1px solid rgba(194, 65, 12, 0.3);
  border-radius: 4px;
  padding: 10px 36px 10px 14px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #1C1208;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%23C2410C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='2,4 5,7 8,4'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 10px 10px;
  outline: none;
  transition: border-color .2s ease;
}
.woocommerce .variations_form .variations select:focus {
  border-color: #C2410C;
}
.woocommerce .variations_form .variations label {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A6858;
}

/* ----------------------------------------------------------- */
/* 10) RESET VARIATIONS .reset_variations                      */
/* ----------------------------------------------------------- */
.woocommerce a.reset_variations {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A6858;
  text-decoration: underline;
  text-decoration-color: #D7C6A5;
  margin-left: 12px;
}
.woocommerce a.reset_variations:hover {
  color: #C2410C;
}

/* ----------------------------------------------------------- */
/* 11) QTY input.qty (fiche produit, harmonisation +/-)        */
/* ----------------------------------------------------------- */
.woocommerce.single-product .quantity input.qty,
.woocommerce .single-product .quantity input.qty {
  background: #F4ECD9;
  border: none;
  color: #1C1208;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  width: 48px;
  height: 44px;
  padding: 0;
  -moz-appearance: textfield;
}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ----------------------------------------------------------- */
/* 12) PRODUCT META (.posted_in, .tagged_as)                   */
/* ----------------------------------------------------------- */
.woocommerce div.product .product_meta .posted_in,
.woocommerce div.product .product_meta .tagged_as {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A6858;
  display: block;
  margin: 0;
  padding: 4px 0;
}
.woocommerce div.product .product_meta a {
  color: #C2410C;
  text-decoration: none;
}
.woocommerce div.product .product_meta a:hover {
  text-decoration: underline;
  text-decoration-color: #C2410C;
}

/* ----------------------------------------------------------- */
/* 13) RELATED PRODUCTS sur fiche : separer du fond creme      */
/* ----------------------------------------------------------- */
.woocommerce.single-product .related.products ul.products li.product,
.single-product .related.products ul.products li.product {
  background: #F4ECD9;
  border: 1px solid #D7C6A5;
  border-radius: 6px;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.woocommerce.single-product .related.products ul.products li.product:hover,
.single-product .related.products ul.products li.product:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -10px rgba(28, 18, 8, .12);
  border-color: rgba(194, 65, 12, 0.3);
}

/* ----------------------------------------------------------- */
/* 14) MESSAGES WC : info / message / error                    */
/* ----------------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: #F4ECD9 !important;
  border: 1px solid #D7C6A5;
  border-left: 3px solid #C2410C;
  border-radius: 0 4px 4px 0;
  padding: 16px 20px;
  font-family: inherit;
  font-size: 14px;
  color: #1C1208;
  list-style: none;
  position: relative;
  margin: 0 0 20px;
}
.woocommerce-error {
  border-left-color: #B91C1C;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
  display: none !important;
}
.woocommerce-message .button,
.woocommerce-info .button {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 8px 14px;
  background: #1C1208;
  color: #FDA270;
  float: right;
  border-radius: 4px;
  border: none;
}

/* ----------------------------------------------------------- */
/* 15) CHAMPS FORMULAIRES (checkout / mon-compte / contact)    */
/* ----------------------------------------------------------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout input.input-text,
.woocommerce-MyAccount-content input.input-text,
.woocommerce-MyAccount-content textarea {
  background: #F4ECD9;
  border: 1px solid #D7C6A5;
  border-radius: 4px;
  padding: 12px 14px;
  font-family: inherit;
  font-size: 14px;
  color: #1C1208;
  width: 100%;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-checkout input.input-text:focus,
.woocommerce-MyAccount-content input.input-text:focus,
.woocommerce-MyAccount-content textarea:focus {
  outline: none;
  border-color: #C2410C;
  box-shadow: 0 0 0 2px rgba(194, 65, 12, 0.12);
}
.woocommerce form .form-row label,
.woocommerce-checkout .form-row label,
.woocommerce-MyAccount-content .form-row label {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A6858;
  margin-bottom: 6px;
  display: block;
}

/* ----------------------------------------------------------- */
/* 16) BLOCS BOUTONS GUTENBERG .wp-block-button                */
/* ----------------------------------------------------------- */
.wp-block-button .wp-block-button__link {
  background: #1C1208 !important;
  color: #EFE3C9 !important;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 4px;
  transition: background .2s ease, color .2s ease;
  text-decoration: none;
}
.wp-block-button .wp-block-button__link:hover {
  background: #C2410C !important;
  color: #EFE3C9 !important;
}

/* ----------------------------------------------------------- */
/* 17) BOUTON #place_order CHECKOUT FINAL (proeminent)         */
/* ----------------------------------------------------------- */
.woocommerce-checkout #place_order,
form.checkout button[name='woocommerce_checkout_place_order'],
.woocommerce-checkout button#place_order {
  width: 100%;
  padding: 18px 32px;
  font-size: 13px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: #1C1208;
  color: #FDA270;
  border: none;
  border-radius: 4px;
  transition: background .2s ease, color .2s ease;
  margin-top: 24px;
  cursor: pointer;
}
.woocommerce-checkout #place_order:hover,
form.checkout button[name='woocommerce_checkout_place_order']:hover {
  background: #C2410C;
  color: #EFE3C9;
}

/* ----------------------------------------------------------- */
/* 18) COUPON .checkout_coupon + toggle                        */
/* ----------------------------------------------------------- */
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce a.showcoupon {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C2410C;
  text-decoration: underline;
  text-decoration-color: #D7C6A5;
}
.woocommerce form.checkout_coupon,
.woocommerce-cart form.checkout_coupon {
  background: #F4ECD9;
  border: 1px solid #D7C6A5;
  padding: 20px;
  border-radius: 4px;
  margin-bottom: 24px;
}

/* ----------------------------------------------------- */
/* PRINTZ OPTION B SWATCHES (2026-06-02)                  */
/* Anneau terra + checkmark blanc centre, couleur visible */
/* ----------------------------------------------------- */
.single-product .swatch,
.printz-swatch {
  position: relative !important;
  border-radius: 50% !important;
  border: 2.5px solid transparent;
}
.single-product .swatch.on,
.printz-swatch.on {
  background-image: none !important;
  border-color: #C2410C !important;
  box-shadow: 0 0 0 1px #C2410C inset, 0 2px 6px rgba(0,0,0,.15) !important;
}
.single-product .swatch.on::after,
.printz-swatch.on::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 6px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translate(-50%, -65%) rotate(-45deg);
  pointer-events: none;
}

/* ----------------------------------------------------------- */
/* PRINTZ PAGINATION FOND CREME (2026-06-03)                   */
/* Boutons non-actifs : transparent + bordure terra rgba 0.3   */
/* ----------------------------------------------------------- */
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
  border: none !important;
  background: transparent !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid rgba(194,65,12,0.3) !important;
  color: #C2410C !important;
  border-radius: 4px;
  padding: 8px 12px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: .1em;
  transition: .2s ease;
  min-width: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span:hover {
  background: rgba(194,65,12,0.08) !important;
  border-color: #C2410C !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li .current {
  background: #C2410C !important;
  background-color: #C2410C !important;
  color: #FCFAF5 !important;
  border-color: #C2410C !important;
}

/* ----------------------------------------------------- */
/* PRINTZ CATEGORIES GRID (catalogue par categories)     */
/* ----------------------------------------------------- */
.printz-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin: 24px 0 48px;
}
@media (max-width: 900px) {
  .printz-cat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .printz-cat-grid { grid-template-columns: 1fr; }
}
.printz-cat-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 36px 24px;
  background: var(--card, #FCFAF5);
  border: 1px solid rgba(194,65,12,0.2);
  border-radius: 8px;
  text-decoration: none;
  color: var(--brun, #1C1208);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
  min-height: 180px;
}
.printz-cat-tile:hover {
  transform: translateY(-2px);
  border-color: #C2410C;
  box-shadow: 0 8px 24px rgba(28, 18, 8, 0.08);
}
.printz-cat-tile .emoji {
  font-size: 56px;
  line-height: 1;
}
.printz-cat-tile .name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--brun, #1C1208);
  text-align: center;
}
.printz-cat-tile .count {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #C2410C;
}
.printz-cat-cta {
  text-align: center;
  margin: 32px 0 24px;
}
.printz-cat-show-all {
  display: inline-block;
  padding: 10px 22px;
  border: 1px solid rgba(194,65,12,0.4);
  border-radius: 999px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #C2410C;
  text-decoration: none;
  transition: .2s ease;
}
.printz-cat-show-all:hover {
  background: #C2410C;
  color: var(--creme, #EFE3C9);
  border-color: #C2410C;
}

/* Override : taille du SVG icon dans la tuile categorie (remplace emoji) */
.printz-cat-tile .icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.printz-cat-tile .icon svg {
  width: 56px;
  height: 56px;
  display: block;
}

/* ----------------------------------------------------- */
/* PRINTZ IMAGES GRILLE EN ENTIER (2026-06-03)           */
/* packshots fond noir -> contain, bandes invisibles     */
/* On garde aspect-ratio:1 (square) de la card mais on   */
/* passe de cover a contain. Le fond #1C1208 (= noir des */
/* packshots h3li0) rend les bandes de remplissage       */
/* invisibles tout en montrant produit + nom en entier.  */
/* Scope: UNIQUEMENT cards .products li.product, JAMAIS   */
/* le carousel .woocommerce-product-gallery (hors de      */
/* ul.products) ni les tuiles .printz-cat-tile.          */
/* ----------------------------------------------------- */
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img,
ul.products li.product a img,
ul.products li.product img {
  object-fit: contain !important;
  background: #1C1208; /* fond noir comme les packshots, pour les bandes */
}

/* ============================================================
   PRINTZ BLOCS NATIFS (10/06/2026) - accueil 100% editable
   Styles des structures natives (remplacent shortcode + mu-plugin css)
   ============================================================ */
.home-editable .wp-block-group__inner-container{display:contents;}
.home-editable h2.sec-title{font-family:var(--font-serif);font-size:clamp(32px,4vw,52px);font-weight:400;letter-spacing:-.02em;margin:0 0 48px;}
.home-editable h2.sec-title em{font-style:italic;color:var(--terracotta);}
.home-editable .section--dark h2.sec-title{color:var(--creme);}
.home-editable .section--dark h2.sec-title em{color:var(--saumon);}
.home-editable .section--dark .process-title{color:var(--creme);}

/* Hero : photo qui s'adapte a l'image deposee */
.home-editable .hero-image-wrap{aspect-ratio:auto;background:none;overflow:hidden;border-radius:8px;margin:0;}
.home-editable .hero-image-wrap img{width:100%;height:auto;display:block;}

/* Boutons hero (blocs natifs) au style d'origine */
.hero-actions{gap:14px;}
.hero-actions .wp-block-button__link{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;border-radius:0;padding:14px 22px;}
.hero-actions .btn-cat .wp-block-button__link{background:var(--brun);color:#FCFAF5;border:1.5px solid var(--brun);}
.hero-actions .btn-devis .wp-block-button__link{background:transparent;color:var(--brun);border:1.5px solid rgba(28,18,8,.35);}
.hero-actions .btn-devis .wp-block-button__link:hover{border-color:var(--brun);}

/* Stats hero en paragraphes natifs */
.hero-stats p{margin:0;}
.hero-stats .stat-num{display:block;}

/* Bandeau defilant : items en paragraphes natifs, centre */
.bandeau{justify-content:center;}
.bandeau p.bandeau-item{margin:0;}

/* Tuiles "Nos creations" natives */
.pz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.pz-tile{position:relative;height:280px;border-radius:20px;overflow:hidden;padding:26px;color:#fff;display:flex;flex-direction:column;box-shadow:0 10px 24px -16px rgba(28,18,8,.55);border:1px solid rgba(255,255,255,.06);isolation:isolate;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease;}
.pz-tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.28) 100%);}
.pz-tile:hover{transform:translateY(-4px) scale(1.018);box-shadow:0 26px 50px -22px rgba(28,18,8,.62);}
.pz-tile p.pz-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:5px 11px;align-self:flex-start;margin:0;z-index:1;}
.pz-tile figure.pz-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);width:78px;height:78px;margin:0;opacity:.92;transition:transform .4s ease,opacity .4s ease;}
.pz-tile:hover figure.pz-icon{transform:translate(-50%,-62%) scale(1.06);opacity:1;}
.pz-tile figure.pz-icon img{width:100%;height:100%;}
.pz-tile h3{font-family:var(--font-serif);font-weight:600;font-size:26px;line-height:1.05;letter-spacing:-.01em;color:#FBF4E6;margin:auto 0 0;z-index:1;}
.pz-tile h3 a{color:inherit;text-decoration:none;}
.pz-tile h3 a::after{content:"";position:absolute;inset:0;}
.pz-tile p.pz-price{margin:8px 0 0;font-family:var(--font-mono);font-size:11.5px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:rgba(251,244,230,.7);z-index:1;}
@media(max-width:880px){.pz-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.pz-grid{grid-template-columns:1fr;gap:16px;}.pz-tile{height:260px;}}

/* Etapes / temoignages : reset paragraphes natifs */
.process-step p.process-num{margin:0 0 10px;}
.temo-card p{margin:0 0 10px;}

/* Liste devis native */
ul.devis-list{list-style:none;padding:0;margin:0 0 28px;}
ul.devis-list li{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:15px;}
ul.devis-list li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--terracotta);flex-shrink:0;}

/* Tags "a propos" natifs */
p.about-tags-native{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(239,227,201,.75);margin-top:24px;}
.about-text h2.about-title{color:var(--creme);margin-bottom:20px;}
.about-text h2.about-title em{color:var(--saumon);}
.home-editable .about-image{aspect-ratio:auto;background:none;border-radius:8px;overflow:hidden;}
.home-editable .about-image img{width:100%;height:auto;display:block;}
.home-editable .about-image figure{margin:0;}

/* ============================================================
   PRINTZ WOOCOMMERCE (bloc legacy) - conteneur catalogue/produit
   ============================================================ */
.woo-wrap{max-width:var(--max-width);margin:0 auto;padding:0 40px 60px;width:100%;box-sizing:border-box;}
.woo-wrap .page-header{margin:0 -40px 48px;}


/* ===== FIX alignement tuiles pz-grid (accueil) =====
   Les tuiles sont des blocs Gutenberg : le layout "flux" injecte une
   margin-block-start sur les enfants SAUF le premier -> la 1re tuile remonte.
   On neutralise pour que toutes les tuiles s'alignent (le gap de la grille gere l'espacement). */
.pz-grid { align-items: start; }
.pz-grid > * { margin-top: 0 !important; margin-bottom: 0 !important; margin-block-start: 0 !important; margin-block-end: 0 !important; }


/* ===== FICHE PRODUIT pleine largeur (Option A) - Pedro 12/06 =====
   Force la fiche a utiliser toute la largeur utile et place la description
   JUSTE SOUS la galerie (colonne gauche), le resume restant a droite. */
.single-product .woo-wrap{max-width:1240px;}
.single-product div.product{
  max-width:1180px;width:100%;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;column-gap:48px;row-gap:30px;
  align-items:start;padding:48px 40px 0;
}
.single-product div.product > .woocommerce-product-gallery{
  grid-column:1;grid-row:1;width:auto !important;float:none !important;margin:0 !important;
}
.single-product div.product > .summary,
.single-product div.product > .entry-summary{
  grid-column:2;grid-row:1 / span 2;width:auto !important;float:none !important;margin:0 !important;
}
.single-product div.product > .printz-product-desc{
  grid-column:1;grid-row:2;max-width:none !important;margin:6px 0 0 !important;padding:0 !important;
}
.single-product div.product > .related,
.single-product div.product > .up-sells{
  grid-column:1 / -1;max-width:none !important;margin-top:24px;
}
@media (max-width:900px){
  .single-product div.product{grid-template-columns:1fr;padding:30px 20px 0;}
  .single-product div.product > .woocommerce-product-gallery,
  .single-product div.product > .summary,
  .single-product div.product > .entry-summary,
  .single-product div.product > .printz-product-desc{grid-column:1;grid-row:auto;}
}


/* ===== Galerie compacte : 4 vignettes + tuile "voir tout" (Pedro 12/06) ===== */
.single-product .woocommerce-product-gallery.pz-gal-collapsed .flex-control-thumbs li:nth-child(n+5){display:none !important;}
.single-product .pz-gal-more{
  aspect-ratio:1/1;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0;
  position:relative;overflow:hidden;background-size:cover;background-position:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:'Geist Mono',ui-monospace,monospace;color:#fff;line-height:1;
}
.single-product .pz-gal-more::before{content:"";position:absolute;inset:0;background:rgba(20,12,4,.6);transition:background .2s;}
.single-product .pz-gal-more:hover::before{background:rgba(194,65,12,.72);}
.single-product .pz-gal-more > b{position:relative;z-index:1;font-size:18px;font-weight:700;}
.single-product .pz-gal-more > span{position:relative;z-index:1;font-size:8px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;margin-top:3px;opacity:.92;}


/* ===== Drapeau France (remplace l'emoji non rendu sous Windows) ===== */
.pz-flag-fr{display:inline-block;width:17px;height:11px;border-radius:2px;vertical-align:-1px;margin-right:2px;
  background:linear-gradient(to right,#0055A4 0 34%,#fff 34% 67%,#EF4135 67% 100%);box-shadow:0 0 0 1px rgba(0,0,0,.15);}

/* ============================================================
   RESPONSIVE MOBILE - n'affecte QUE les petits ecrans (desktop inchange). Pedro 12/06
   ============================================================ */
@media (max-width: 782px){
  html,body{overflow-x:hidden;}
  img,svg,video,iframe{max-width:100%;height:auto;}
  .printz-top-bandeau{flex-wrap:wrap;justify-content:center;text-align:center;gap:3px 9px;font-size:10px;padding:7px 12px;line-height:1.4;}
  .nav-inner{padding-left:16px !important;padding-right:16px !important;}
  .site-logo svg{width:150px;height:auto;}
  .nav-cta-user span{display:none;}
  .header-actions{gap:14px !important;}
  .nav-cart,.nav-cta-user{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
  .woo-wrap,.header-inner,.footer-inner,.hero,.contact-wrap,.section-inner,
  .single-product div.product,.mat-grid{padding-left:18px !important;padding-right:18px !important;}
  .footer-top{grid-template-columns:1fr !important;gap:26px !important;}
  .pz-grid{grid-template-columns:1fr !important;}
  .printz-cat-grid{grid-template-columns:1fr !important;}
  .stats{grid-template-columns:1fr 1fr !important;}
  .btn,.nav-cta,.hero-actions a,.printz-cat-show-all,.single_add_to_cart_button,
  .wc-block-cart__submit-button,.wc-block-components-checkout-place-order-button,
  .wp-block-woocommerce-checkout .wc-block-components-button.contained{min-height:44px;}
  .wp-block-navigation .wp-block-navigation-item > a{padding-top:11px;padding-bottom:11px;}
  .hero-title{font-size:clamp(34px,9vw,48px);}
}
@media (max-width: 480px){
  .woo-wrap,.header-inner,.footer-inner,.nav-inner{padding-left:14px !important;padding-right:14px !important;}
  .stats{grid-template-columns:1fr !important;}
  .printz-top-bandeau{font-size:9px;}
  .site-logo svg{width:132px;}
}


/* ===== En-tete checkout (logo Printz au lieu du titre texte) ===== */
.printz-checkout-header{max-width:1100px;margin:0 auto;padding:18px 40px;display:flex;align-items:center;justify-content:space-between;}
.printz-checkout-header .site-logo{display:inline-flex;}
@media (max-width:782px){
  .printz-checkout-header{padding:14px 18px;}
  .printz-checkout-header .site-logo svg{width:140px;height:auto;}
}

/* ===== Checkout : champs aux couleurs Printz (etaient blancs) ===== */
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-text-input textarea,
.wp-block-woocommerce-checkout .wc-block-components-combobox input,
.wp-block-woocommerce-checkout .wc-block-components-select select,
.wp-block-woocommerce-checkout select,
.wp-block-woocommerce-cart .wc-block-components-text-input input{
  background-color:#F4ECD9 !important;
  border:1.5px solid rgba(28,18,8,0.18) !important;
  border-radius:9px !important;
  color:#1C1208 !important;
}
.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
.wp-block-woocommerce-checkout .wc-block-components-combobox input:focus,
.wp-block-woocommerce-checkout select:focus{
  border-color:#C2410C !important;
  box-shadow:0 0 0 2px rgba(194,65,12,.15) !important;
  outline:none !important;
}
/* encadres options (livraison/paiement) : fond creme doux au lieu du blanc */
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option{
  background:#F4ECD9 !important;border-radius:8px;
}


/* ===== TABLES COMPTE responsives (mobile) : orders/addresses WooCommerce ===== */
@media (max-width: 600px){
  .woocommerce-MyAccount-content table.shop_table,
  .woocommerce-orders-table{ display:block; border:none; background:transparent; }
  .woocommerce-MyAccount-content table.shop_table thead,
  .woocommerce-orders-table thead{ display:none; }
  .woocommerce-MyAccount-content table.shop_table tr,
  .woocommerce-orders-table tr{ display:block; border:1px solid var(--line); border-radius:10px; margin-bottom:12px; padding:8px 14px; background:#F4ECD9; }
  .woocommerce-MyAccount-content table.shop_table td,
  .woocommerce-orders-table td{ display:flex; justify-content:space-between; align-items:center; gap:12px; border:none; padding:6px 0; font-size:13.5px; text-align:right; }
  .woocommerce-MyAccount-content table.shop_table td::before,
  .woocommerce-orders-table td::before{ content:attr(data-title); font-weight:700; color:var(--muted); text-align:left; font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; }
}


/* ===== Panier : stepper quantite (+/-/chiffre) bien visibles - Pedro ===== */
.wp-block-woocommerce-cart .wc-block-components-quantity-selector{
  border:1.5px solid rgba(28,18,8,0.22) !important;border-radius:8px !important;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__button{
  color:#1C1208 !important;font-weight:800 !important;font-size:18px !important;opacity:1 !important;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__button:hover{
  color:#C2410C !important;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__input{
  color:#C2410C !important;font-weight:700 !important;
}


/* ===== BOUTONS : couleur unique terracotta partout (comme "Valider la commande") - Pedro 13/06 =====
   Exclus volontairement : le stepper +/- du panier (doit rester noir) et les icones. */
.btn-primary, .btn-accent, .btn-ghost,
.hero-actions a, .hero-actions .wp-block-button__link,
.hero-actions .btn-cat .wp-block-button__link, .hero-actions .btn-devis .wp-block-button__link,
.wp-block-button .wp-block-button__link,
.nav-cta, .nav-cta-user,
.form-submit, .printz-cat-show-all, .printz-welcome-logout,
.printz-3d-btn, .open-color-test,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce .button,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button.product_type_simple,
.woocommerce ul.products li.product a.button.product_type_variable,
.woocommerce ul.products li.product a.button.product_type_grouped,
.woocommerce ul.products li.product a.button.product_type_external,
.single-product .single_add_to_cart_button,
.woocommerce #place_order, .woocommerce #respond input#submit,
.woocommerce-MyAccount-content .button, .woocommerce-message .button, .woocommerce-info .button,
.wc-block-components-button.contained, .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.forminator-button, .forminator-button-submit, button.forminator-button-submit {
  background-color:#C2410C !important;
  background-image:none !important;
  color:#FCFAF5 !important;
  border-color:#C2410C !important;
}
.wp-block-button .wp-block-button__link, .printz-cat-show-all,
.wc-block-components-button.contained .wc-block-components-button__text,
.single-product .single_add_to_cart_button, .nav-cta, .nav-cta-user{ color:#FCFAF5 !important; }
/* hover : fonce, comme "Valider la commande" */
.btn-primary:hover, .btn-accent:hover, .btn-ghost:hover,
.hero-actions a:hover, .wp-block-button .wp-block-button__link:hover,
.nav-cta:hover, .nav-cta-user:hover,
.form-submit:hover, .printz-cat-show-all:hover, .printz-welcome-logout:hover,
.printz-3d-btn:hover, .open-color-test:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button:hover,
.woocommerce ul.products li.product .button:hover,
.single-product .single_add_to_cart_button:hover,
.woocommerce #place_order:hover,
.wc-block-components-button.contained:hover, .wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.forminator-button:hover{
  background-color:#1C1208 !important;border-color:#1C1208 !important;color:#FCFAF5 !important;
}


/* ===== Formulaires Forminator (contact/devis) aux couleurs Printz ===== */
.forminator-ui.forminator-custom-form input[type=text],
.forminator-ui.forminator-custom-form input[type=email],
.forminator-ui.forminator-custom-form input[type=url],
.forminator-ui.forminator-custom-form input[type=tel],
.forminator-ui.forminator-custom-form input[type=number],
.forminator-ui.forminator-custom-form textarea,
.forminator-ui.forminator-custom-form select,
.forminator-input,.forminator-textarea,select.forminator-select--field{
  background-color:#F4ECD9 !important;border:1.5px solid rgba(28,18,8,0.18) !important;
  border-radius:9px !important;color:#1C1208 !important;
}
.forminator-ui input:focus,.forminator-ui textarea:focus,.forminator-ui select:focus{
  border-color:#C2410C !important;box-shadow:0 0 0 2px rgba(194,65,12,.15) !important;outline:none !important;
}
/* bouton submit Forminator : terracotta + taille + texte visibles (etait minuscule) */
.forminator-ui .forminator-button.forminator-button-submit,
.forminator-ui button.forminator-button-submit,
button.forminator-button-submit,.forminator-button-submit{
  background-color:#C2410C !important;color:#FCFAF5 !important;border:none !important;
  padding:14px 30px !important;border-radius:10px !important;min-height:46px !important;width:auto !important;
  font-family:'Geist Mono',ui-monospace,monospace !important;font-size:12px !important;font-weight:700 !important;
  letter-spacing:.12em !important;text-transform:uppercase !important;line-height:1.2 !important;display:inline-flex !important;align-items:center;justify-content:center;
}
.forminator-ui .forminator-button.forminator-button-submit:hover,button.forminator-button-submit:hover{background-color:#1C1208 !important;}


/* ============================================================
   PAGE "COMMANDE RECUE" (order-received) : largeur maitrisee + responsive
   (Pedro 15/06 : evite le zoom 75% / debordement horizontal)
   ============================================================ */
.woocommerce-order{max-width:820px;margin-left:auto;margin-right:auto;padding:0 8px}
.woocommerce-order > p:first-child{font-size:15px;color:#5e503f}
.woocommerce-order-overview.woocommerce-thankyou-order-details{display:flex;flex-wrap:wrap;gap:12px 18px;list-style:none;padding:16px 20px;margin:18px 0 28px;background:#fff;border:1px solid #e6dac2;border-radius:12px}
.woocommerce-order-overview li{flex:1 1 150px;border:0 !important;padding:0;margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:#9b8e78}
.woocommerce-order-overview li strong{display:block;font-size:15px;color:#1C1208;margin-top:3px;text-transform:none;letter-spacing:0;word-break:break-word;font-weight:700}
.woocommerce-order .woocommerce-table--order-details{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid #e6dac2;border-radius:12px;overflow:hidden}
.woocommerce-order .woocommerce-table--order-details th,
.woocommerce-order .woocommerce-table--order-details td{padding:11px 14px;border-bottom:1px solid #f0e8d6;vertical-align:top}
.woocommerce-order .woocommerce-table--order-details tfoot th,
.woocommerce-order .woocommerce-table--order-details tfoot td{font-size:14px}
.woocommerce-order .wc-item-meta{margin:6px 0 0;padding:0;list-style:none;font-size:12.5px;color:#5e503f;line-height:1.75}
.woocommerce-order .wc-item-meta strong{color:#9b8e78;font-weight:600}
.woocommerce-customer-details .woocommerce-columns--addresses{display:flex;flex-wrap:wrap;gap:18px}
.woocommerce-customer-details .woocommerce-columns--addresses .col-1,
.woocommerce-customer-details .woocommerce-columns--addresses .col-2{flex:1 1 240px;width:auto}
@media (max-width:600px){
  .woocommerce-order-overview li{flex:1 1 100%}
  .woocommerce-order .woocommerce-table--order-details thead{display:none}
  .woocommerce-order .woocommerce-table--order-details tr{display:block;border-bottom:2px solid #f0e8d6}
  .woocommerce-order .woocommerce-table--order-details td{display:block;border:0;padding:6px 14px}
  .woocommerce-order .woocommerce-table--order-details td::before{content:attr(data-title);font-size:11px;text-transform:uppercase;color:#9b8e78;display:block}
}


/* ============================================================
   MOBILE - resserrage des tailles (Pedro 15/06 : "les pages sont mangees, ca fait gros")
   Desktop inchange : tout est dans @media (max-width:600px).
   ============================================================ */
@media (max-width: 600px){
  h1{ font-size:28px !important; line-height:1.18 !important; }
  h2{ font-size:23px !important; }
  h3{ font-size:18px !important; }
  p, li{ font-size:15px !important; }

  .hero-title{ font-size:30px !important; line-height:1.12 !important; }
  .hero-subtitle{ font-size:15px !important; }
  .home-editable h2.sec-title{ font-size:23px !important; margin-bottom:22px !important; }
  .home-editable .about-title{ font-size:24px !important; }
  .section-kicker{ font-size:11px !important; margin-bottom:6px !important; }

  /* Titre produit / configurateur (etait 32px mini en MAJUSCULES) */
  .single-product .product_title{ font-size:22px !important; line-height:1.22 !important; }

  /* En-tete de page (Panier, Mon compte, etc.) : titre + marges resserres */
  .page-header{ padding:26px 16px !important; }
  .page-header h1{ font-size:24px !important; }
  .page-content{ padding:24px 14px !important; }

  /* Espace compte : menu + colonnes compacts */
  .woocommerce-MyAccount-navigation{ padding:8px !important; position:static !important; top:auto !important; }
  .woocommerce-MyAccount-navigation li a{ font-size:14px !important; padding:9px 12px !important; }
  body:not(.logged-in).woocommerce-account .u-columns.col2-set .col-1,
  body:not(.logged-in).woocommerce-account .u-columns.col2-set .col-2,
  body:not(.logged-in).woocommerce-account .u-column1,
  body:not(.logged-in).woocommerce-account .u-column2{ padding:18px 16px !important; }

  /* Sections accueil : moins de hauteur perdue */
  .home-editable section, .home-editable .section{ padding-top:34px !important; padding-bottom:34px !important; }
}


/* MOBILE - page produit pleine largeur + centree (Pedro 15/06 : "pas centre, ca fait gros") */
@media (max-width: 600px){
  .single-product .product{ grid-template-columns:1fr !important; gap:20px !important; padding:22px 16px !important; }
  .single-product .price{ font-size:20px !important; }
  .l3d{ max-width:100% !important; margin-left:0 !important; margin-right:0 !important; }
  /* securite : pas de debordement horizontal */
  html, body{ overflow-x:hidden !important; }
}


/* MOBILE - bandeau materiaux multi-lignes + images fluides (Pedro 15/06) */
img, video { max-width:100%; height:auto; }
@media (max-width: 600px){
  .bandeau{ flex-wrap:wrap !important; justify-content:center !important; gap:8px 16px !important; padding:14px 16px !important; overflow:visible !important; }
  .bandeau-item{ font-size:10px !important; }
  .bandeau-sep{ display:none !important; }
  .hero-actions{ flex-direction:column !important; align-items:stretch !important; gap:10px !important; }
  .hero-actions .wp-block-button, .hero-actions .wp-block-button__link{ width:100% !important; text-align:center !important; }
}


/* ============================================================
   MOBILE/TABLETTE (<=768px) - FICHE PRODUIT (Pedro 15/06)
   (le tel rend entre 600-768px -> regles a 768px pour etre sur)
   ============================================================ */
@media (max-width: 768px){
  .single-product .product{ grid-template-columns:1fr !important; gap:18px !important; padding:20px 16px !important; }
  .single-product .product_title{ font-size:22px !important; line-height:1.22 !important; }
  .single-product .price{ font-size:20px !important; }
  .l3d{ max-width:100% !important; }
  /* Preview "Votre texte" : etait 78px dans un carre plein -> bande compacte */
  .l3d-stage{ aspect-ratio:auto !important; min-height:130px !important; padding:20px !important; }
  .l3d-preview-host{ font-size:clamp(32px,10vw,48px) !important; }
}


/* MOBILE (<=768px) - FICHE PRODUIT : tout pleine largeur, centre, symetrique (corrige decalage droite) */
@media (max-width: 768px){
  .single-product .product{ grid-template-columns:1fr !important; padding-left:16px !important; padding-right:16px !important; margin-left:auto !important; margin-right:auto !important; }
  .single-product .product > *{ grid-column:1 / -1 !important; width:auto !important; max-width:100% !important; margin-left:0 !important; margin-right:0 !important; float:none !important; }
  .single-product .summary, .single-product .entry-summary,
  .single-product .l3d, .single-product .l3d-stage{ width:auto !important; max-width:100% !important; margin-left:0 !important; margin-right:0 !important; float:none !important; box-sizing:border-box !important; }
}


/* GLOBAL : aucun scroll horizontal (corrige "tout part a droite" = debordement) */
html, body { overflow-x: hidden !important; }

/* MOBILE/TABLETTE (<=768px) - configurateur : les grilles rentrent dans l'ecran.
   minmax(0,1fr) = autorise les colonnes a retrecir sous la largeur de leur contenu
   (sinon les boutons "Montserrat" etc. forcent la grille plus large que l'ecran). */
@media (max-width: 768px){
  .l3d, .single-product .summary, .single-product .entry-summary, .single-product .product,
  .l3d-fonts, .l3d-sizes, .l3d-recap, .l3d-colors, .l3d-usage, .l3d-form{
    max-width:100% !important; box-sizing:border-box !important;
  }
  .l3d-fonts{ grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap:8px !important; }
  .l3d-fbtn{ font-size:15px !important; padding:14px 4px !important; min-width:0 !important; overflow:hidden !important; }
  .l3d-sizes{ grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap:8px !important; }
  .l3d-colors, .l3d-usage{ grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}


/* ============================================================
   MOBILE - Panier / Checkout / Commande recue : air sur les bords
   Le theme a --wp--style--root--padding = 0 ; les blocs WooCommerce
   alignwide (titre, panier, totaux) touchent donc les bords sur
   petit ecran. On redonne un padding lateral. Desktop intact
   (alignwide y reste centre avec marges). - Pedro 15/06
   ============================================================ */
@media (max-width:768px){
  .woocommerce-cart .entry-content,
  .woocommerce-checkout .entry-content,
  .woocommerce-order-received .entry-content{
    padding-left:18px !important;
    padding-right:18px !important;
    box-sizing:border-box !important;
  }
  /* securite : aucun bloc enfant ne deborde */
  .woocommerce-cart .entry-content > *,
  .woocommerce-checkout .entry-content > *{ max-width:100% !important; }
}


/* ============================================================
   DESKTOP (>=769px) - PASSE TYPO & ALIGNEMENT (Pedro 15/06)
   "les titres sont enormes" (compte, panier, fiches, sections)
   + "fiches produit pas alignees" (images de tailles differentes
   -> boutons decales) + tableau Commandes "pas beau".
   Scope min-width:769px => le mobile (<=768/<=600) garde TOUTES
   ses regles existantes, aucun impact sur le telephone.
   ============================================================ */
@media (min-width:769px){

  /* 1) Echelle des titres reduite (etait h1 72px / h2 48px / titre produit 44px) */
  h1{ font-size: clamp(30px, 3.4vw, 48px) !important; }
  h2{ font-size: clamp(23px, 2.6vw, 36px) !important; }
  .wp-block-post-title{ font-size: clamp(30px, 3.4vw, 46px) !important; line-height:1.12 !important; }
  .single-product .product_title{ font-size: clamp(26px, 2.8vw, 36px) !important; line-height:1.12 !important; }
  /* Hero accueil : on conserve l'impact d'origine (non concerne par la plainte) */
  .hero-title{ font-size: clamp(40px, 6vw, 72px) !important; }

  /* 2) Cross-sells "Nouveau dans la boutique" (blocs WC) : images carrees + boutons alignes */
  .wc-block-grid__product{ display:flex !important; flex-direction:column !important; }
  .wc-block-grid__product-image img{
    width:100% !important; aspect-ratio:1/1 !important; height:auto !important;
    object-fit:cover !important; display:block !important;
  }
  .wc-block-grid__product .wc-block-grid__product-title{ min-height:2.6em !important; }
  .wc-block-grid__product .wc-block-grid__product-add-to-cart,
  .wc-block-grid__product .wp-block-button{ margin-top:auto !important; }

  /* 2bis) Cartes catalogue (boutique/categorie) : boutons alignes en bas */
  ul.products li.product{ display:flex !important; flex-direction:column !important; }
  ul.products li.product .button{ margin-top:auto !important; }

  /* 3) Compte > Commandes : tableau propre (supprime ligne dure 2px + zebra muddy + colonne detachee) */
  .woocommerce-MyAccount-content .woocommerce-orders-table{
    background:#F4ECD9 !important; border:1px solid var(--line) !important;
    border-radius:12px !important; overflow:hidden !important; border-collapse:collapse !important;
  }
  .woocommerce-MyAccount-content .woocommerce-orders-table thead th{
    background:var(--creme) !important; border-bottom:1px solid var(--line) !important; padding:14px 16px !important;
  }
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody tr,
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody tr:nth-child(even){ background:transparent !important; }
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody td{
    border-bottom:1px solid var(--line) !important; border-top:0 !important;
    padding:16px !important; vertical-align:middle !important;
  }
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody tr:last-child td{ border-bottom:0 !important; }
  .woocommerce-orders-table__cell-order-number a{
    font-family:var(--font-mono) !important; color:var(--terracotta) !important;
    font-weight:700 !important; text-decoration:none !important;
  }
  .woocommerce-orders-table__cell-order-actions{ text-align:right !important; white-space:nowrap !important; }
  .woocommerce-orders-table__cell-order-actions .button{ margin:4px 0 4px 8px !important; }
}


/* ============================================================
   JOURNAL - grille de cartes articles (shortcode [printz_journal])
   Remplace le Query Loop brut (images geantes) par des cartes
   propres a la charte Printz. - Pedro 15/06
   ============================================================ */
.pz-journal-intro{ display:block; color:#5c5347; font-size:15px; line-height:1.6; margin:4px 0 28px; max-width:680px; }
.pz-journal{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.pz-jcard{
  display:flex; flex-direction:column; background:var(--creme);
  border:1px solid var(--line); border-radius:14px; overflow:hidden;
  text-decoration:none !important; color:var(--brun);
  transition:transform .2s ease, box-shadow .2s ease;
}
.pz-jcard:hover{ transform:translateY(-3px); box-shadow:0 12px 32px rgba(28,18,8,.13); }
.pz-jcard-img{ display:block; width:100%; aspect-ratio:16/10; overflow:hidden; background:#e9ddc6; }
.pz-jcard-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.pz-jcard-body{ display:flex; flex-direction:column; flex:1; padding:18px 22px 22px; }
.pz-jcard-date{ display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:9px; }
.pz-jcard-title{ display:block; font-family:var(--font-serif); font-size:21px; line-height:1.22; font-weight:500; color:var(--brun); margin-bottom:10px; }
.pz-jcard-excerpt{ display:block; font-size:14.5px; line-height:1.55; color:#5c5347; margin-bottom:16px; flex:1; }
.pz-jcard-more{ display:block; font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; color:var(--terracotta); font-weight:700; }
@media (max-width:768px){ .pz-journal{ grid-template-columns:1fr; gap:18px; } .pz-jcard-title{ font-size:19px; } }
