/*
Theme Name: Makana Créations
Theme URI: https://makana.kodaj-studio.fr
Author: Makana Créations
Description: Thème bloc sur mesure pour la boutique de céramique Makana Créations. Toutes les pages sont éditables dans Gutenberg.
Version: 1.0.4
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: makana
Tags: block-theme, full-site-editing, e-commerce
*/
/* ==========================================================================
   Makana Créations — feuille partagée (maquette ET thème)
   Registre relevé sur la référence : sans-serif + mono, cercles, cadre à
   crochets, tout centré. Couleurs prélevées sur le logo (demande cliente).
   Toutes les couches décoratives sont des pseudo-éléments ou des fonds SVG :
   aucun élément vide dans le contenu, donc rien à convertir en phase 4.
   ========================================================================== */

:root {
  --argile: #DAD7C6;
  --brun: #754B35;
  --taupe: #9C9385;
  --nuit: #1C1410;
  --fond: #ECE9E0;
  --carte: #F6F4EE;
  --texte-doux: #5D4F44;
  --blanc: #FFFFFF;
  --trait: rgba(255,255,255,.38);
  --tiret: rgba(117,75,53,.35);

  --sans: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, Menlo, monospace;

  --rayon-bloc: 40px;
  --rayon: 6px;
  --pointilles-v: repeating-linear-gradient(to bottom, var(--tiret) 0 5px, transparent 5px 10px);
  --pointilles-h: repeating-linear-gradient(to right, var(--tiret) 0 5px, transparent 5px 10px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--fond);
  color: var(--nuit);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; font-weight: 400; letter-spacing: -0.035em; hyphens: none; text-wrap: balance; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

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

/* ------------------------------------------------------------------ Boutons
   Structure identique à core/buttons : .boutons > .bouton > :is(a, .wp-block-button__link)            */
.boutons { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; }
.bouton > :is(a, .wp-block-button__link) {
  display: inline-flex; align-items: center; gap: 8px;
  height: 40px; padding: 0 17px;
  border-radius: var(--rayon);
  border: 1px solid var(--blanc);
  background: transparent; color: var(--blanc);
  font-family: var(--mono); font-size: 12px; font-weight: 400; line-height: 1;
  letter-spacing: .06em; text-transform: uppercase;
  transition: background .2s, color .2s, border-color .2s;
  cursor: pointer;
}
.bouton.plein > :is(a, .wp-block-button__link) { background: #EEEBE3; color: var(--nuit); border-color: #EEEBE3; }
.bouton.plein > :is(a, .wp-block-button__link):hover { background: var(--blanc); }
.bouton.creux > :is(a, .wp-block-button__link):hover { background: rgba(255,255,255,.12); }
.bouton.sombre > :is(a, .wp-block-button__link) { border-color: var(--nuit); color: var(--nuit); }
.bouton.sombre > :is(a, .wp-block-button__link):hover, .bouton.nuit > :is(a, .wp-block-button__link) { background: var(--nuit); color: var(--blanc); border-color: var(--nuit); }
.bouton.nuit > :is(a, .wp-block-button__link):hover { background: var(--brun); border-color: var(--brun); }

/* ------------------------------------------------------------------ En-tête */
.entete {
  position: absolute; top: 32px; left: 50%; z-index: 20;
  width: min(894px, calc(100% - 32px));
  transform: translateX(-50%);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  height: 52px; padding: 0 22px;
  border-radius: var(--rayon);
  background: rgba(218,215,198,.16);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  color: var(--blanc);
}
.entete .nav-gauche, .entete .nav-droite { display: flex; align-items: center; gap: 0; font-size: 12px; line-height: 1.55; }
.entete .nav-droite { justify-content: flex-end; }
.entete .signature, .entete .signature a { display: block; line-height: 0; }
.entete .nav-gauche ul, .entete .nav-droite ul { display: flex; flex-wrap: nowrap; gap: 28px; margin: 0; padding: 0; list-style: none; }
.entete .nav-droite ul { justify-content: flex-end; }
.entete .nav-gauche a, .entete .nav-droite a {
  display: block; padding: 0;
  font-family: var(--mono); font-size: 12px; line-height: 1.55; letter-spacing: .06em; text-transform: uppercase;
  opacity: .92; transition: opacity .2s;
}
.entete .nav-gauche a:hover, .entete .nav-droite a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.lien-panier a::after { content: " (" attr(data-compte) ")"; }
.lien-panier a:not([data-compte])::after { content: " (0)"; }
.signature img { height: 42px; width: auto; }
.nav-mobile { display: none; }

/* ------------------------------------------------------------------ Hero
   ::before = champ flou (rôle du dégradé bleu de la référence)
   ::after  = cercles fins, courbes, axe pointillé (img/decor-hero.svg)   */
.hero {
  position: relative;
  min-height: 972px;
  padding: 326px 16px 22px;
  border-radius: 0 0 var(--rayon-bloc) var(--rayon-bloc);
  overflow: hidden;
  background: var(--taupe);
  color: var(--blanc);
  text-align: center;
  isolation: isolate;
}
.hero::before, .atelier::before, .bandeau::before {
  content: ""; position: absolute; inset: -10%; z-index: -2; pointer-events: none;
  filter: blur(70px);
  background:
    radial-gradient(closest-side, #B5A68F 98%, transparent) 105.7% 110% / 30% 50% no-repeat,
    radial-gradient(closest-side, #3A2619 98%, transparent) -10.34% 111.1% / 42% 55% no-repeat,
    radial-gradient(closest-side, #1C1410 98%, transparent) 52.38% 100% / 58% 72% no-repeat,
    radial-gradient(closest-side, #4A2F21 98%, transparent) 58.97% 2.86% / 22% 30% no-repeat,
    radial-gradient(closest-side, #754B35 98%, transparent) 25.71% 13.33% / 30% 40% no-repeat,
    radial-gradient(closest-side, #C9BFA9 98%, transparent) 100% 0 / 40% 70% no-repeat,
    radial-gradient(closest-side, #D4CDB9 98%, transparent) 0 0 / 45% 55% no-repeat;
}
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("assets/img/decor-hero.svg") center top / cover no-repeat;
}

.cadre {
  position: relative;
  width: min(594px, 100%);
  min-height: 322px;
  margin: 0 auto;
  padding: 30px 28px 26px;
  border-radius: 8px;
  background: rgba(28,20,16,.94);
  display: flex; flex-direction: column; justify-content: space-between;
  text-align: left;
}
/* crochets d'angle : un seul pseudo-élément, masqué hors des quatre coins */
.cadre::before, .crochets::after {
  content: ""; position: absolute; inset: 12px; pointer-events: none;
  border: 3px solid var(--blanc); border-radius: 8px;
  -webkit-mask: linear-gradient(#000 0 0) 0 0/18px 18px no-repeat, linear-gradient(#000 0 0) 100% 0/18px 18px no-repeat,
                linear-gradient(#000 0 0) 0 100%/18px 18px no-repeat, linear-gradient(#000 0 0) 100% 100%/18px 18px no-repeat;
          mask: linear-gradient(#000 0 0) 0 0/18px 18px no-repeat, linear-gradient(#000 0 0) 100% 0/18px 18px no-repeat,
                linear-gradient(#000 0 0) 0 100%/18px 18px no-repeat, linear-gradient(#000 0 0) 100% 100%/18px 18px no-repeat;
}
.titre-hero { font-size: 56px; line-height: 1.2; letter-spacing: -0.045em; }
.cadre .mono { align-self: flex-end; font-size: 11.5px; }

.chapo { max-width: 300px; margin: 64px auto 0; font-size: 14px; line-height: 1.5; }
.hero .boutons { margin-top: 114px; }
.defiler {
  position: absolute; left: 30px; bottom: 30px;
  padding-left: 10px; border-left: 1px solid var(--blanc);
  line-height: 32px; font-size: 11.5px;
}

/* Hero court des pages internes */
.hero.court { min-height: 640px; padding-top: 170px; padding-bottom: 90px; }
.hero.court .cadre { min-height: 264px; }
.hero.court .chapo { max-width: 380px; margin-top: 48px; }

/* Bandeau des fiches produit : le même champ, sans cadre */
.bandeau {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: 300px; padding: 214px 16px 34px;
  border-radius: 0 0 var(--rayon-bloc) var(--rayon-bloc);
  background: var(--taupe); color: var(--blanc); text-align: center;
}
.bandeau::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("assets/img/decor-hero.svg") center top / cover no-repeat; opacity: .7;
}
.ariane, .bandeau .woocommerce-breadcrumb { font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--blanc); }
.ariane a, .bandeau .woocommerce-breadcrumb a { opacity: .75; }
.ariane a:hover, .bandeau .woocommerce-breadcrumb a:hover { opacity: 1; }

/* ------------------------------------------------------------------ Repères pointillés */
.a-guides { position: relative; }
.a-guides::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    var(--pointilles-v) 33px 0 / 1px 100% no-repeat,
    var(--pointilles-v) calc(100% - 30px) 0 / 1px 100% no-repeat;
}
.a-guides > * { position: relative; z-index: 1; }

/* ------------------------------------------------------------------ Manifeste (cadran) */
.manifeste {
  position: relative;
  height: 930px;
  overflow: hidden;
}
.manifeste::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    var(--pointilles-v) 33px 0 / 1px 100% no-repeat,
    var(--pointilles-v) calc(100% - 30px) 0 / 1px 100% no-repeat,
    var(--pointilles-v) 50% 0 / 1px 100px no-repeat,
    var(--pointilles-h) 0 486px / 100% 1px no-repeat;
}
.manifeste::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    url("assets/img/sphere.svg") left -10px top 420px / 250px 250px no-repeat,
    url("assets/img/sphere.svg") left 300px top 470px / 150px 150px no-repeat,
    url("assets/img/sphere.svg") right -160px top 380px / 300px 300px no-repeat;
}
.geant {
  position: absolute; left: 0; right: 0; top: 300px; z-index: 1;
  display: flex; justify-content: space-between;
  pointer-events: none;
}
.geant p {
  font-size: 230px; line-height: 1; letter-spacing: -0.06em;
  color: rgba(255,255,255,.75); white-space: nowrap;
}
.geant p:first-child { margin-left: -60px; }
.geant p:last-child { margin-right: -120px; }

.cadran {
  position: absolute; left: 50%; top: 100px; z-index: 3;
  width: 774px; height: 774px; margin-left: -387px;
  border-radius: 50%;
  overflow: hidden;
  color: var(--blanc);
  text-align: center;
  isolation: isolate;
}
.cadran-photo { position: absolute; inset: 0; z-index: -2; }
.cadran-photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); filter: blur(10px) saturate(.9); }
.cadran::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(circle, rgba(117,75,53,.35), rgba(117,75,53,.55));
  mix-blend-mode: multiply;
}
.cadran::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url("assets/img/graduations.svg") center / 100% 100% no-repeat;
}
.cadran-texte { position: relative; z-index: 1; padding: 140px 76px 0; }
.cadran-picto img { width: 46px; margin: 0 auto 30px; }
.cadran-texte .mono { font-size: 11.5px; opacity: .9; }
.grand {
  margin-top: 30px;
  font-size: 39px; line-height: 1.28; letter-spacing: -0.04em;
}
.grand em { font-style: normal; opacity: .45; }

/* ------------------------------------------------------------------ Têtes de section */
.etiquette { display: inline-flex; align-items: center; gap: 10px; color: var(--brun); }
.etiquette::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.titre-section { margin-top: 18px; font-size: 64px; line-height: 1.05; }
.intro { max-width: 420px; margin: 20px auto 0; color: var(--texte-doux); }

/* ------------------------------------------------------------------ Collection */
.collection { padding: 40px 30px 140px; text-align: center; }
.filtres {
  display: inline-flex; gap: 6px; margin-top: 38px; padding: 5px;
  border-radius: var(--rayon); background: rgba(117,75,53,.08);
}
.filtre {
  display: flex; align-items: center;
  height: 34px; padding: 0 14px; border-radius: 4px; cursor: pointer;
  font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--brun);
  transition: background .2s, color .2s;
}
.filtre a { display: block; }
.filtre.est-actif { background: var(--nuit); color: var(--blanc); }

.grille {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
  max-width: 1180px; margin: 46px auto 0; text-align: left;
}
.carte {
  position: relative;
  padding: 10px 10px 18px;
  border-radius: 8px;
  background: var(--carte);
  border: 1px solid rgba(117,75,53,.12);
  transition: transform .35s ease, box-shadow .35s ease;
}
.carte:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -24px rgba(28,20,16,.35); }
.carte.est-cachee { display: none; }
.carte-photo { position: relative; border-radius: 5px; overflow: hidden; aspect-ratio: 1; }
.carte-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.carte:hover .carte-photo img { transform: scale(1.04); }
.crochets::after { inset: 22px; border-width: 2px; border-radius: 6px; opacity: 0; transition: opacity .35s, inset .35s; z-index: 2; }
.carte:hover .crochets::after { opacity: 1; inset: 12px; }
.pastille {
  position: absolute; left: 20px; top: 20px; z-index: 3;
  padding: 4px 8px; border-radius: 4px;
  background: rgba(28,20,16,.82); color: var(--blanc);
  font-family: var(--mono); font-size: 10.5px; line-height: 1.55; letter-spacing: .06em; text-transform: uppercase;
}
.carte-pied { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding: 16px 6px 0; }
.carte h3 { font-size: 22px; line-height: 1.15; letter-spacing: -0.03em; }
.detail { margin-top: 5px; color: var(--taupe); font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.prix { font-size: 22px; letter-spacing: -0.03em; white-space: nowrap; }
.ajouter-bloc { display: block; margin: 16px 6px 0; }
.ajouter > :is(a, .wp-block-button__link) {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%; height: 40px; padding: 0 14px;
  border: 1px solid var(--nuit); border-radius: var(--rayon);
  background: transparent; color: var(--nuit);
  font-family: var(--mono); font-size: 11.5px; font-weight: 400; line-height: 1;
  letter-spacing: .06em; text-transform: uppercase;
  transition: background .2s, color .2s;
}
.ajouter > :is(a, .wp-block-button__link)::after { content: "+"; }
.ajouter > :is(a, .wp-block-button__link):hover, .ajouter.fait > :is(a, .wp-block-button__link) { background: var(--nuit); color: var(--blanc); }
.ajouter.fait > :is(a, .wp-block-button__link)::after { content: "✓"; }
.ajouter.en-cours > :is(a, .wp-block-button__link) { opacity: .6; pointer-events: none; }
.collection .suite { margin-top: 52px; }

/* ------------------------------------------------------------------ Savoir-faire (bloc sombre) */
.atelier {
  position: relative;
  margin: 0 16px;
  padding: 120px 30px 130px;
  border-radius: var(--rayon-bloc);
  overflow: hidden;
  background: var(--nuit);
  color: var(--blanc);
  text-align: center;
  isolation: isolate;
}
.atelier::before {
  filter: blur(90px); opacity: .55;
  background:
    radial-gradient(closest-side, var(--brun) 98%, transparent) -16.67% -66.7% / 40% 70% no-repeat,
    radial-gradient(closest-side, #8F7E6A 98%, transparent) 118.2% 250% / 45% 80% no-repeat;
}
.atelier .etiquette { color: var(--argile); }
.atelier .titre-section { max-width: 760px; margin-left: auto; margin-right: auto; font-size: 56px; line-height: 1.1; }
.etapes {
  position: relative;
  display: grid; grid-template-columns: repeat(4, 1fr);
  max-width: 1120px; margin: 86px auto 0;
}
.etapes::before {
  content: ""; position: absolute; left: 12.5%; right: 12.5%; top: 110px;
  border-top: 1px dashed rgba(255,255,255,.3);
}
.etape { position: relative; padding: 0 14px; }
.rond {
  position: relative; z-index: 1;
  width: 220px; height: 220px; margin: 0 auto;
  border-radius: 50%; border: 1px solid var(--trait);
  display: grid; place-items: center;
  background: radial-gradient(circle at 50% 35%, rgba(218,215,198,.12), rgba(28,20,16,0) 72%), var(--nuit);
}
.rond-num { font-size: 64px; line-height: 1; letter-spacing: -0.05em; }
.rond-label { position: absolute; top: 36px; left: 0; right: 0; font-size: 11px; opacity: .7; text-transform: none; }
.etape h3 { margin-top: 26px; font-size: 24px; letter-spacing: -0.03em; }
.etape p.etape-texte { max-width: 230px; margin: 10px auto 0; font-size: 14px; color: rgba(255,255,255,.7); }

/* Étapes en version claire (sur-mesure) */
.etapes.clair { grid-template-columns: repeat(3, 1fr); max-width: 900px; margin-top: 64px; }
.etapes.clair::before { left: 16.6%; right: 16.6%; border-top-color: var(--tiret); }
.etapes.clair .rond { width: 180px; height: 180px; border-color: var(--tiret); background: var(--carte); color: var(--nuit); }
.etapes.clair .rond-label { top: 30px; color: var(--brun); opacity: 1; }
.etapes.clair .rond-num { font-size: 52px; }
.etapes.clair .etape p.etape-texte { color: var(--texte-doux); }
.etapes.clair::before { top: 90px; }

/* ------------------------------------------------------------------ Sur-mesure */
.surmesure { padding: 150px 30px 150px; text-align: center; overflow: hidden; }
.duo { position: relative; width: 720px; max-width: 100%; height: 470px; margin: 60px auto 0; }
.duo::before {
  content: ""; position: absolute; left: 10px; top: -30px; width: 490px; height: 490px;
  border-radius: 50%; border: 1px dashed var(--tiret);
}
.duo figure { position: absolute; border-radius: 50%; overflow: hidden; }
.duo figure img { width: 100%; height: 100%; object-fit: cover; }
.duo .f1 { left: 40px; top: 0; width: 430px; height: 430px; }
.duo .f2 { right: 30px; top: 150px; width: 300px; height: 300px; border: 8px solid var(--fond); }
.bulle {
  position: absolute; left: 0; bottom: 20px; z-index: 2;
  padding: 14px 16px; border-radius: 8px; background: var(--nuit); color: var(--blanc); text-align: left;
}
.bulle-nom { font-size: 28px; line-height: 1.3; letter-spacing: -0.03em; }
.texte { max-width: 470px; margin: 44px auto 0; color: var(--texte-doux); }
.surmesure .boutons { margin-top: 34px; }

/* ------------------------------------------------------------------ Engagements / chiffres */
.engagements {
  display: grid; grid-template-columns: repeat(3, 1fr);
  max-width: 1180px; margin: 0 auto 120px;
  border-top: 1px dashed var(--tiret); border-bottom: 1px dashed var(--tiret);
}
.engagement { padding: 36px 26px; text-align: center; }
.engagement + .engagement { border-left: 1px dashed var(--tiret); }
.engagement .mono { color: var(--brun); }
.engagement-texte { margin-top: 10px; font-size: 20px; letter-spacing: -0.03em; line-height: 1.25; }
.engagement-texte a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.section .engagements { margin-bottom: 0; }
.chiffre { margin-top: 6px; font-size: 64px; line-height: 1.05; letter-spacing: -0.05em; }

/* ------------------------------------------------------------------ Sections de texte des pages internes */
.section { padding: 130px 30px; text-align: center; }
.section.serree { padding-top: 90px; padding-bottom: 90px; }
.section .titre-section { font-size: 56px; line-height: 1.08; max-width: 860px; margin-left: auto; margin-right: auto; }
.texte-long { max-width: 640px; margin: 36px auto 0; text-align: left; font-size: 17px; line-height: 1.65; color: var(--texte-doux); }
.texte-long > * + * { margin-top: 18px; }
.texte-long h2 { margin-top: 48px; font-size: 30px; line-height: 1.15; color: var(--nuit); }
.texte-long h3 { margin-top: 32px; font-size: 22px; color: var(--nuit); }
.texte-long ul { padding-left: 20px; list-style: disc; }
.texte-long a { color: var(--brun); text-decoration: underline; text-underline-offset: 3px; }
.appel { padding: 0 30px 140px; text-align: center; }
.appel .titre-section { font-size: 56px; }
.appel .boutons { margin-top: 34px; }

/* ------------------------------------------------------------------ Formulaires (maquette + WPForms) */
.formulaire { max-width: 560px; margin: 44px auto 0; text-align: left; }
.formulaire .champ, .formulaire .wpforms-field { margin: 0 0 16px; padding: 0; }
.formulaire label, .formulaire .wpforms-field-label {
  display: block; margin: 0 0 7px; padding: 0;
  font-family: var(--mono); font-size: 11.5px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--brun);
}
.formulaire .wpforms-required-label { color: var(--brun); }
.formulaire input[type=text], .formulaire input[type=email], .formulaire select, .formulaire textarea {
  display: block; width: 100%; max-width: none; height: 44px; margin: 0; padding: 0 14px;
  border: 1px solid rgba(117,75,53,.3); border-radius: var(--rayon);
  background: var(--carte); color: var(--nuit);
  font-family: var(--sans); font-size: 15px; box-shadow: none;
}
.formulaire textarea { height: 150px; padding: 12px 14px; resize: vertical; }
.formulaire input:focus, .formulaire select:focus, .formulaire textarea:focus { outline: none; border-color: var(--nuit); }
.formulaire .envoyer, .formulaire .wpforms-submit-container { margin-top: 8px; padding: 0; text-align: center; }
.formulaire button[type=submit] {
  height: 44px; padding: 0 20px; border: 1px solid var(--nuit); border-radius: var(--rayon);
  background: var(--nuit); color: var(--blanc); cursor: pointer;
  font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
}
.formulaire button[type=submit]:hover { background: var(--brun); border-color: var(--brun); }
.formulaire .wpforms-error { margin-top: 6px; color: #A03A2A; font-size: 13px; }
.formulaire .wpforms-confirmation-container-full { padding: 20px; border-radius: 8px; background: var(--carte); border: 1px solid var(--tiret); color: var(--nuit); text-align: center; }

/* ------------------------------------------------------------------ FAQ (core/details) */
.faq { max-width: 760px; margin: 44px auto 0; text-align: left; border-top: 1px dashed var(--tiret); }
.faq details { border-bottom: 1px dashed var(--tiret); }
.faq summary {
  display: flex; justify-content: space-between; gap: 16px; align-items: center;
  padding: 22px 4px; cursor: pointer; list-style: none;
  font-size: 21px; letter-spacing: -0.03em;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--mono); font-size: 16px; color: var(--brun); }
.faq details[open] summary::after { content: "–"; }
.faq details > :not(summary) { padding: 0 4px 22px; color: var(--texte-doux); max-width: 640px; }

/* ------------------------------------------------------------------ Fiche produit */
.fiche {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: 70px; align-items: start;
  max-width: 1180px; margin: 0 auto; padding: 70px 30px 110px;
}
.fiche-photo { position: relative; border-radius: 8px; overflow: hidden; }
.fiche-photo img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.fiche-photo.crochets::after { opacity: 1; inset: 16px; }
.fiche-infos { padding-top: 10px; }
.fiche-titre { margin-top: 16px; font-size: 56px; line-height: 1.05; letter-spacing: -0.045em; }
.fiche-prix { margin-top: 14px; font-size: 30px; letter-spacing: -0.03em; }
.fiche-court { margin-top: 8px; color: var(--taupe); font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; }
.fiche-resume { margin-top: 24px; font-size: 17px; line-height: 1.6; color: var(--texte-doux); max-width: 480px; }
.fiche-achat { margin-top: 30px; }
.fiche-achat .perso-champ { margin-bottom: 16px; }
.fiche-achat .perso-champ label { display: block; margin-bottom: 7px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--brun); }
.fiche-achat .perso-champ input {
  width: 100%; max-width: 360px; height: 44px; padding: 0 14px;
  border: 1px solid rgba(117,75,53,.3); border-radius: var(--rayon); background: var(--carte);
  font-family: var(--sans); font-size: 15px; color: var(--nuit);
}
.fiche-achat .perso-champ small { display: block; margin-top: 6px; font-size: 12px; color: var(--taupe); }
.fiche-achat form.cart, .fiche-achat .achat-ligne { display: flex; flex-wrap: wrap; gap: 9px; align-items: stretch; margin: 0; }
.fiche-achat .perso-champ { flex: 0 0 100%; }
.fiche-achat .quantity input {
  width: 74px; height: 48px; padding: 0 8px; text-align: center;
  border: 1px solid rgba(117,75,53,.3); border-radius: var(--rayon); background: var(--carte);
  font-family: var(--mono); font-size: 14px; color: var(--nuit);
}
.fiche-achat button.single_add_to_cart_button, .fiche-achat .achat-bouton {
  flex: 1; max-width: 300px; height: 48px; padding: 0 18px;
  display: inline-flex; justify-content: space-between; align-items: center;
  border: 1px solid var(--nuit); border-radius: var(--rayon); background: var(--nuit); color: var(--blanc);
  font-family: var(--mono); font-size: 12px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; cursor: pointer;
}
.fiche-achat button.single_add_to_cart_button::after, .fiche-achat .achat-bouton::after { content: "+"; }
.fiche-achat button.single_add_to_cart_button:hover, .fiche-achat .achat-bouton:hover { background: var(--brun); border-color: var(--brun); }
.fiche-achat .stock { margin: 0 0 12px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--brun); }
.fiche-meta { margin-top: 36px; border-top: 1px dashed var(--tiret); }
.fiche-meta li { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px dashed var(--tiret); font-size: 14px; }
.fiche-meta li strong { font-family: var(--mono); font-size: 11.5px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--brun); }
.histoire-piece { padding: 0 30px 120px; text-align: center; }
.histoire-piece .texte-long { margin-top: 28px; }
.associes { padding: 0 30px 140px; text-align: center; }
.associes .titre-section { font-size: 48px; }

/* ------------------------------------------------------------------ Pied de page */
.pied {
  position: relative;
  margin: 0 16px;
  padding: 90px 40px 30px;
  border-radius: var(--rayon-bloc) var(--rayon-bloc) 0 0;
  background: var(--brun);
  color: var(--blanc);
  overflow: hidden;
  isolation: isolate;
}
.pied::before, .pied::after {
  content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none;
  border: 1px solid rgba(255,255,255,.22);
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.05), rgba(255,255,255,0) 70%);
}
.pied::before { left: -90px; top: -60px; width: 260px; height: 260px; }
.pied::after { right: -60px; top: 120px; width: 220px; height: 220px; }
.lettre { text-align: center; }
.lettre .mono { opacity: .75; }
.lettre h2 { margin-top: 14px; font-size: 48px; line-height: 1.1; }
.lettre form { display: flex; gap: 9px; justify-content: center; align-items: flex-start; margin: 30px 0 0; }
.lettre .wpforms-container { margin: 30px 0 0; }
.lettre .wpforms-field-container { display: contents; }
.lettre .wpforms-field { margin: 0; padding: 0; }
.lettre .wpforms-field-label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.lettre input[type=email] {
  width: 320px; max-width: 100%; height: 40px; margin: 0; padding: 0 14px;
  border: 1px solid rgba(255,255,255,.6); border-radius: var(--rayon);
  background: transparent; color: var(--blanc); font-family: var(--mono); font-size: 12px; box-shadow: none;
}
.lettre input::placeholder { color: rgba(255,255,255,.7); text-transform: uppercase; letter-spacing: .06em; }
.lettre .wpforms-submit-container { margin: 0; padding: 0; }
.lettre button[type=submit] {
  height: 40px; padding: 0 17px; border: 1px solid #EEEBE3; border-radius: var(--rayon);
  background: #EEEBE3; color: var(--nuit); cursor: pointer;
  font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
}
.lettre button[type=submit]:hover { background: var(--blanc); }
.lettre .wpforms-error { color: var(--argile); font-size: 12px; margin-top: 6px; text-align: left; }
.lettre .wpforms-confirmation-container-full { margin: 0 auto; max-width: 420px; padding: 14px; border-radius: var(--rayon); border: 1px solid rgba(255,255,255,.35); background: transparent; color: var(--blanc); }
.pied-grille {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 30px;
  max-width: 1180px; margin: 110px auto 0; padding-top: 40px;
  border-top: 1px dashed rgba(255,255,255,.35);
}
.pied-logo img { width: 210px; }
.pied-grille h3 { font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
.pied-grille ul { margin-top: 14px; display: grid; gap: 8px; font-size: 15px; }
.pied-grille ul a:hover { text-decoration: underline; text-underline-offset: 4px; }
.mentions { display: flex; justify-content: space-between; max-width: 1180px; margin: 70px auto 0; font-size: 11px; opacity: .75; }

/* ------------------------------------------------------------------ Apparition */
.revele { opacity: 0; transform: translateY(24px); transition: opacity .9s ease, transform .9s ease; }
.revele.vu { opacity: 1; transform: none; }
.sans-anim .revele { transition: none; }
.cadran.revele { transform: translateY(24px); }
.cadran.revele.vu { transform: none; }

:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--brun); outline-offset: 3px; border-radius: 4px; }

/* ------------------------------------------------------------------ Responsive */
@media (max-width: 1100px) {
  .grille { grid-template-columns: repeat(2, 1fr); }
  .etapes { grid-template-columns: repeat(2, 1fr); row-gap: 60px; }
  .etapes::before { display: none; }
  .geant p { font-size: 150px; }
  .fiche { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 760px) {
  .entete { grid-template-columns: auto 1fr auto; top: 16px; padding: 0 14px; }
  .entete .nav-gauche { display: none; }
  .entete .nav-droite li:not(.lien-panier) { display: none; }
  .signature { grid-column: 1; grid-row: 1; }
  .entete .nav-droite { grid-column: 2; grid-row: 1; padding-right: 16px; }
  .nav-mobile { display: block; grid-column: 3; grid-row: 1; }
  .hero { min-height: 820px; padding-top: 150px; }
  .cadre { min-height: 280px; }
  .titre-hero { font-size: 40px; }
  .hero .boutons { margin-top: 48px; }
  .defiler { display: none; }
  .hero.court { min-height: 0; padding-top: 110px; padding-bottom: 70px; }
  .hero.court .cadre { min-height: 220px; }
  .manifeste { height: 640px; }
  .manifeste::after {
    background:
      url("assets/img/sphere.svg") left -10px top 380px / 150px 150px no-repeat,
      url("assets/img/sphere.svg") right -90px top 400px / 180px 180px no-repeat;
  }
  .geant { top: 220px; }
  .geant p { font-size: 90px; }
  .cadran { width: 520px; height: 520px; margin-left: -260px; top: 60px; }
  .cadran-texte { padding: 80px 90px 0; }
  .cadran-picto img { width: 34px; margin-bottom: 16px; }
  .grand { font-size: 22px; margin-top: 16px; }
  .collection { padding: 50px 16px 100px; }
  .titre-section, .section .titre-section, .appel .titre-section, .associes .titre-section { font-size: 38px; }
  .filtres { flex-wrap: wrap; justify-content: center; }
  .grille { grid-template-columns: 1fr; }
  .atelier { margin: 0 8px; padding: 80px 16px; }
  .atelier .titre-section { font-size: 34px; }
  .etapes, .etapes.clair { grid-template-columns: 1fr; }
  .surmesure, .section { padding: 90px 16px; }
  .duo { height: 360px; }
  .duo::before { left: -20px; width: 300px; height: 300px; }
  .duo .f1 { left: 0; width: 260px; height: 260px; }
  .duo .f2 { right: 0; top: 140px; width: 190px; height: 190px; }
  .engagements { grid-template-columns: 1fr; margin: 0 16px 80px; }
  .engagement + .engagement { border-left: 0; border-top: 1px dashed var(--tiret); }
  .chiffre { font-size: 48px; }
  .fiche { padding: 40px 16px 80px; }
  .fiche-titre { font-size: 40px; }
  .appel, .associes, .histoire-piece { padding-left: 16px; padding-right: 16px; }
  .pied { margin: 0 8px; padding: 70px 20px 24px; }
  .lettre h2 { font-size: 34px; }
  .lettre form, .lettre .wpforms-form { flex-direction: column; align-items: center; }
  .pied-grille { grid-template-columns: 1fr 1fr; }
  .mentions { flex-direction: column; gap: 8px; }
}


/* ==========================================================================
   Adaptations WordPress / WooCommerce
   ========================================================================== */
/* Filets de sécurité À SPÉCIFICITÉ NULLE (jamais .wp-block-group > * : cette
   version-là écrase toutes les marges des composants). blockGap est déjà à 0
   dans theme.json. */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
.wp-site-blocks, .wp-block-post-content { padding: 0; }
.wp-block-image img { height: auto; }

/* ------------------------------------------------------------------ Boutons natifs */
.wp-block-buttons.boutons { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; }
.carte .wp-block-buttons.ajouter-bloc { display: block; }
.carte .wp-block-button.ajouter { display: block; width: 100%; }
.wp-block-button.ajouter.perso > a::after { content: "→"; }

/* ------------------------------------------------------------------ Navigation (core/navigation) */
.entete .wp-block-navigation { font-size: 12px; }
.entete .wp-block-navigation .wp-block-navigation-item__content { padding: 0; }
.entete .wp-block-navigation.nav-gauche .wp-block-navigation__container,
.entete .wp-block-navigation.nav-droite .wp-block-navigation__container { gap: 28px; }
.entete .nav-droite { justify-content: flex-end; }
.entete figure.signature { justify-self: center; margin: 0; }
.entete figure.signature img { height: 42px; width: auto; max-width: none; }
.entete .wp-block-navigation.nav-mobile { display: none; justify-content: flex-end; }
.entete .nav-mobile .wp-block-navigation__responsive-container-open {
  font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--blanc);
}
/* le panneau mobile s'ouvre blanc sur blanc sans ceci (CSS du bloc imprimé après) */
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container.is-menu-open {
  background-color: rgba(28,20,16,.985) !important; color: var(--blanc) !important; padding: 30px 24px;
}
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container-close {
  font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
}
.wp-block-navigation.nav-mobile .is-menu-open .wp-block-navigation__container { gap: 18px; }
.wp-block-navigation.nav-mobile .is-menu-open .wp-block-navigation-item__content {
  font-family: var(--sans); font-size: 34px; letter-spacing: -0.03em; text-transform: none;
}
@media (max-width: 760px) {
  .entete .wp-block-navigation.nav-mobile { display: flex; grid-column: 3; grid-row: 1; }
  .entete .wp-block-navigation.nav-gauche { display: none; }
}

/* ------------------------------------------------------------------ Admin bar */
.admin-bar .entete { top: 64px; }
@media (max-width: 782px) { .admin-bar .entete { top: 62px; } }

/* ------------------------------------------------------------------ Images dans les compositions */
.cadran figure.cadran-photo { position: absolute; inset: 0; }
.cadran .cadran-photo img { width: 100%; height: 100%; }
.duo figure.wp-block-image { position: absolute; }
.carte figure.carte-photo a, .duo figure a { display: block; height: 100%; }

/* La marge basse du dernier bloc de page est remise à zéro par la règle de
   layout « flow » de WordPress ((0,2,0)) : on la rétablit plus spécifiquement. */
.is-layout-flow > section.engagements:last-child { margin-bottom: 120px; }

/* ------------------------------------------------------------------ Formulaires WPForms */
/* wpautop insère des <br> dans la sortie du shortcode : ils ajoutent une ligne vide */
.wpforms-container .wpforms-submit-container > br, .wpforms-container .wpforms-field-container > br, .wpforms-container form > br { display: none; }
.formulaire .wpforms-container, .lettre .wpforms-container { margin: 0; }
.formulaire .wpforms-field-description, .formulaire .wpforms-field-sublabel { font-size: 12px; color: var(--taupe); margin-top: 6px; }
.lettre .wpforms-form { display: flex; gap: 9px; justify-content: center; align-items: flex-start; }
.lettre .wpforms-container { margin-top: 30px; }
.wpforms-container .wpforms-field-hp { display: none !important; }
.lettre p:empty { display: none; }

/* ------------------------------------------------------------------ Collections WooCommerce = cartes de la maquette */
.collection-woo { max-width: 1180px; margin: 46px auto 0; }
.wp-block-woocommerce-product-collection .wc-block-product-template.grille {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
  max-width: none; margin: 0; padding: 0; list-style: none; text-align: left;
}
.wc-block-product-template.grille > li.wc-block-product { width: auto; max-width: none; margin: 0; padding: 0; list-style: none; }
.wc-block-product-template.grille .carte { height: 100%; display: flex; flex-direction: column; }
.carte .wc-block-components-product-image { position: relative; margin: 0; border-radius: 5px; overflow: hidden; aspect-ratio: 1; }
.carte .wc-block-components-product-image a, .carte .wc-block-components-product-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.carte .wc-block-components-product-image img { transition: transform .6s ease; }
.carte:hover .wc-block-components-product-image img { transform: scale(1.04); }
.carte .wp-block-post-terms.pastille a { color: inherit; pointer-events: none; }
.carte .wp-block-post-terms.pastille .wp-block-post-terms__separator { display: none; }
.carte .wp-block-post-terms.pastille a + a, .carte .wp-block-post-terms.pastille a ~ a { display: none; }
.carte .carte-pied { margin-top: auto; }
.carte .carte-nom h3.wp-block-post-title { margin: 0; font-size: 22px; line-height: 1.15; letter-spacing: -0.03em; }
.carte .wp-block-post-terms.detail { margin-top: 5px; }
.carte .wp-block-post-terms.detail a { color: inherit; }
.carte .wc-block-components-product-price.prix,
.carte .wp-block-woocommerce-product-price.prix { margin: 0; font-size: 22px; letter-spacing: -0.03em; white-space: nowrap; text-align: right; }
.carte .wc-block-components-product-button.ajouter-woo,
.carte .wp-block-woocommerce-product-button.ajouter-woo { display: block; margin: 16px 6px 0; }
.carte .ajouter-woo .wp-block-button__link,
.carte .ajouter-woo .wc-block-components-product-button__button {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%; height: 40px; min-height: 0; margin: 0; padding: 0 14px;
  border: 1px solid var(--nuit); border-radius: var(--rayon);
  background: transparent; color: var(--nuit);
  font-family: var(--mono); font-size: 11.5px; font-weight: 400; line-height: 1;
  letter-spacing: .06em; text-transform: uppercase; text-align: left;
}
.carte .ajouter-woo .wp-block-button__link::after,
.carte .ajouter-woo .wc-block-components-product-button__button::after { content: "+"; }
/* pièce personnalisable : le bouton mène à la fiche (pas d'ajout direct) */
.carte .ajouter-woo:not([data-wp-interactive]) .wp-block-button__link::after { content: "→"; }
.carte .ajouter-woo .wp-block-button__link:hover,
.carte .ajouter-woo .wc-block-components-product-button__button:hover { background: var(--nuit); color: var(--blanc); }
.carte .ajouter-woo .added_to_cart, .carte .ajouter-woo .wc-block-components-product-button__view-cart { display: block; margin-top: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--brun); text-align: center; }
.wp-block-query-pagination.pagination { margin-top: 40px; justify-content: center; gap: 10px; font-family: var(--mono); font-size: 12px; }
.catalogue .wp-block-woocommerce-store-notices { max-width: 1180px; margin: 0 auto 20px; }

/* ------------------------------------------------------------------ Fiche produit */
/* WooCommerce masque la galerie (opacity:0) jusqu'à l'initialisation du script :
   si le script tarde ou échoue, la photo produit doit rester visible. */
.fiche .woocommerce-product-gallery { transition: none !important; opacity: 1 !important; }
.fiche .woocommerce-product-gallery { position: relative; margin: 0; width: 100%; float: none; border-radius: 8px; overflow: hidden; }
.fiche .wp-block-woocommerce-product-image-gallery { position: relative; }
.fiche .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.fiche .flex-control-thumbs { display: flex; gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.fiche .flex-control-thumbs li { width: 84px; }
.fiche .flex-control-thumbs img { border-radius: 4px; opacity: .6; cursor: pointer; }
.fiche .flex-control-thumbs img.flex-active { opacity: 1; }
.fiche .woocommerce-product-gallery__trigger { position: absolute; right: 16px; top: 16px; z-index: 3; width: 34px; height: 34px; border-radius: 50%; background: rgba(28,20,16,.7); font-size: 0; }
.fiche .woocommerce-product-gallery__trigger::after { content: "+"; display: grid; place-items: center; height: 100%; color: #fff; font-size: 18px; font-family: var(--mono); }
.fiche .fiche-photo.crochets::after { z-index: 2; }
.fiche-infos .wp-block-post-terms.etiquette a { color: inherit; }
.fiche-infos .wp-block-post-terms.etiquette .wp-block-post-terms__separator { opacity: .5; }
.fiche-infos .fiche-titre.wp-block-post-title { margin-top: 16px; }
.fiche-infos .wp-block-woocommerce-product-price.fiche-prix, .fiche-infos .fiche-prix .wc-block-components-product-price { font-size: 30px; letter-spacing: -0.03em; }
.fiche-infos .fiche-resume .wp-block-post-excerpt__excerpt { margin: 0; }
.fiche-achat .wp-block-add-to-cart-form, .fiche-achat .wc-block-add-to-cart-form { margin: 0; }
.fiche-achat form.cart { display: flex; flex-wrap: wrap; gap: 9px; align-items: stretch; }
.fiche-achat form.cart .quantity { margin: 0; }
.fiche-achat .stock.out-of-stock { color: #A03A2A; }
.fiche .woocommerce-message, .fiche .woocommerce-error, .fiche .wc-block-components-notice-banner { margin: 0 0 18px; }
.fiche-meta.wp-block-list { padding: 0; list-style: none; }
.fiche-meta li { align-items: baseline; }
.histoire-piece .texte-long .wp-block-post-content > * + * { margin-top: 18px; }

/* ------------------------------------------------------------------ Panier, commande, compte (blocs WooCommerce) */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-post-content > .woocommerce, .confirmation {
  max-width: 1180px; margin: 70px auto 120px; padding: 0 30px;
}
.confirmation { text-align: left; }
.confirmation .adresses { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 30px; }
.wc-block-components-title, .wc-block-components-checkout-step__title, .wc-block-cart__totals-title,
.confirmation h2, .confirmation h3 { font-family: var(--sans); font-weight: 400; letter-spacing: -0.03em; text-transform: none; }
.wc-block-cart__totals-title, .wc-block-components-checkout-step__title { font-family: var(--mono) !important; font-size: 12px !important; letter-spacing: .06em !important; text-transform: uppercase !important; color: var(--brun); }
.wc-block-cart-items__header, .wc-block-components-product-metadata, .wc-block-components-totals-item__label { font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; }
.wc-block-components-product-name { font-size: 20px; letter-spacing: -0.03em; color: var(--nuit); }
.wc-block-cart-item__image img { border-radius: 5px; }
.wc-block-components-totals-wrapper, .wc-block-cart-items td, .wc-block-cart-items th { border-color: var(--tiret) !important; }
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-components-totals-coupon { border-color: var(--tiret); }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
  min-height: 48px; border-radius: var(--rayon) !important; border: 1px solid var(--nuit) !important;
  background: var(--nuit) !important; color: var(--blanc) !important;
  font-family: var(--mono) !important; font-size: 12px !important; font-weight: 400 !important; letter-spacing: .06em; text-transform: uppercase;
}
.wc-block-components-button:not(.is-link):hover { background: var(--brun) !important; border-color: var(--brun) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-textarea, .wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-quantity-selector {
  border-radius: var(--rayon) !important; border-color: rgba(117,75,53,.3) !important; background: var(--carte) !important;
}
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus { border-color: var(--nuit) !important; box-shadow: none !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--tiret) !important; }
.wc-block-components-notice-banner { border-radius: var(--rayon); }
.wp-block-woocommerce-empty-cart-block { text-align: center; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before { display: none; }
.wp-block-woocommerce-empty-cart-block .wp-block-heading { margin-top: 50px; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--brun); }
.wp-block-woocommerce-empty-cart-block .wp-block-separator { display: none; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin: 30px 0 0; padding: 0; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product { width: auto; max-width: none; margin: 0; padding: 10px 10px 16px; border: 1px solid rgba(117,75,53,.12); border-radius: 8px; background: var(--carte); text-align: left; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img { border-radius: 5px; aspect-ratio: 1; object-fit: cover; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title { margin-top: 12px; font-size: 18px; letter-spacing: -0.03em; font-weight: 400; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price { font-size: 16px; }
.wp-block-woocommerce-empty-cart-block .wp-block-button__link { margin-top: 10px; padding: 0 12px; height: 36px; display: inline-flex; align-items: center; border: 1px solid var(--nuit); border-radius: var(--rayon); font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 760px) { .wp-block-woocommerce-empty-cart-block .wc-block-grid__products { grid-template-columns: 1fr 1fr; } }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-size: 34px; letter-spacing: -0.03em; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--brun); text-decoration: underline; text-underline-offset: 4px; }
.woocommerce-MyAccount-content { margin-top: 30px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea {
  height: 44px; padding: 0 14px; border: 1px solid rgba(117,75,53,.3); border-radius: var(--rayon); background: var(--carte); font-family: var(--sans);
}
.woocommerce button.button, .woocommerce a.button {
  height: 44px; padding: 0 18px; border-radius: var(--rayon); background: var(--nuit); color: var(--blanc); border: 0;
  font-family: var(--mono); font-size: 12px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase;
}
.woocommerce button.button:hover, .woocommerce a.button:hover { background: var(--brun); color: var(--blanc); }

@media (max-width: 1100px) {
  .wp-block-woocommerce-product-collection .wc-block-product-template.grille { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .wp-block-woocommerce-product-collection .wc-block-product-template.grille { grid-template-columns: 1fr; }
  .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-post-content > .woocommerce, .confirmation { padding: 0 16px; margin-top: 40px; }
  .confirmation .adresses { grid-template-columns: 1fr; }
}
