/* ═══════════════════════════════════════
   VARIABLES & RESET
═══════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --calcaire-50:  #faf7f1;
  --calcaire-100: #f3ede1;
  --calcaire-200: #e7ddc9;
  --galet-300:    #c4bcae;
  --galet-500:    #948b7c;
  --galet-700:    #6b6357;
  --encre-700:    #4a443c;
  --encre-900:    #2b2723;
  --ocre-300:     #dcae63;
  --ocre-500:     #c08a3e;
  --terre-500:    #b05c36;
  --terre-700:    #8a3b24;
  --olivier-500:  #6e7355;
  --olivier-700:  #49503b;
  --eau-300:      #b9ccc8;
  --rule:         #ddd4c2;
  --rule-strong:  var(--encre-900);
  --white:        #ffffff;
  --cream:        var(--calcaire-50);
  --charcoal:     var(--encre-900);
  --stone:        var(--galet-700);
  --terracotta:   var(--terre-500);
  --gold:         var(--ocre-300);
  --light-stone:  var(--rule);
  --sand:         var(--calcaire-200);
  --surface-soft: var(--calcaire-100);
  --font-serif:   'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-sans:    'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  --ease:         0.22s ease-out;
  --nav-h:       72px;
}

html  { scroll-behavior: smooth; font-size: 16px; }
body  { font-family: var(--font-sans); background: var(--cream); color: var(--charcoal);
        font-weight: 400; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img   { max-width: 100%; height: auto; display: block; }
a     { color: inherit; text-decoration: none; }
ul    { list-style: none; }
button, input, select, textarea { font-family: inherit; }

.eyebrow,
.al-label {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--galet-700);
}

/* ═══════════════════════════════════════
   LANDING (front-page.php)
═══════════════════════════════════════ */
.landing {
  height: 100vh; min-height: 600px;
  display: flex; flex-direction: column;
  justify-content: center; align-items: center;
  background: var(--charcoal);
  position: relative; overflow: hidden;
}
.landing__content {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  width: 100%; height: 100%;
  position: relative; z-index: 1;
}
/* Fallback sombre quand aucune image de couverture n'est définie */
.landing:not(:has(.landing__bg))::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: rgba(43, 39, 35, .92);
}
.landing__name {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 5.8rem;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--cream); text-align: center; line-height: 1;
  text-shadow: none;
  animation: fadeUp 1.4s ease forwards; opacity: 0;
}
.landing__discipline {
  font-size: .82rem; letter-spacing: .3em;
  font-weight: 600;
  text-transform: uppercase; color: var(--galet-300);
  margin-top: 1.1rem;
  text-shadow: none;
  animation: fadeUp 1.4s ease .3s forwards; opacity: 0;
}
.landing__enter {
  margin-top: 2rem;
  font-size: .72rem; letter-spacing: .34em; text-transform: uppercase;
  font-weight: 500;
  color: var(--cream);
  border: 1px solid rgba(247,244,239,.7);
  background: rgba(43, 39, 35, .85);
  padding: .85rem 1.35rem .85rem 1.6rem;
  transition: background var(--ease), border-color var(--ease), color var(--ease);
  animation: fadeUp 1.4s ease .8s forwards; opacity: 0;
}
.landing__enter:hover {
  color: var(--charcoal);
  background: var(--cream);
  border-color: var(--cream);
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}

/* ═══════════════════════════════════════
   NAV
═══════════════════════════════════════ */
.site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  height: var(--nav-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 3rem;
  background: rgba(250,247,241,.96);
  border-bottom: 1px solid var(--light-stone);
  transition: background var(--ease);
}
.site-nav.scrolled { background: rgba(250,247,241,.99); }

.nav-brand {
  font-family: var(--font-serif); font-size: 1.05rem;
  font-weight: 400; letter-spacing: .14em; text-transform: uppercase;
  flex-shrink: 0;
}
.nav-menu {
  display: flex; align-items: center; gap: 2.2rem;
}
.nav-menu a {
  font-size: .65rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--stone); position: relative;
  transition: color var(--ease);
}
.nav-menu a::after { display: none; }
.nav-menu a:hover { color: var(--charcoal); }
.nav-menu a.current-menu-item { color: var(--charcoal); }

.nav-social { display: flex; gap: 1rem; align-items: center; }
.nav-social a { color: var(--stone); transition: color var(--ease); }
.nav-social a:hover { color: var(--charcoal); }
.nav-social svg { width: 16px; height: 16px; fill: currentColor; }

/* Panier header */
.nav-right { display: flex; align-items: center; gap: 1.2rem; }
.nav-cart {
  position: relative;
  color: var(--stone);
  transition: color var(--ease);
  display: flex; align-items: center;
  line-height: 1;
}
.nav-cart:hover { color: var(--charcoal); }
.nav-cart svg { display: block; }
.nav-cart__count {
  position: absolute;
  top: -6px; right: -8px;
  background: var(--terracotta);
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  min-width: 16px; height: 16px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 3px;
  line-height: 1;
}

.nav-shop-link {
  font-size: .65rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--stone) !important; transition: color var(--ease) !important;
}
.nav-shop-link:hover { color: var(--charcoal) !important; }

.nav-hamburger {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer; padding: 4px; z-index: 201;
}
.nav-hamburger span {
  display: block; width: 22px; height: 1px;
  background: var(--charcoal); transition: var(--ease);
}

/* ═══════════════════════════════════════
   PAGE WRAPPER
═══════════════════════════════════════ */
.site-main { padding-top: var(--nav-h); min-height: 80vh; }
.container  { max-width: 1240px; margin: 0 auto; padding: 0 2.5rem; }
.container--narrow { max-width: 820px; margin: 0 auto; padding: 0 2.5rem; }

/* ═══════════════════════════════════════
   PAGE HEADER
═══════════════════════════════════════ */
.page-header {
  padding: 5rem 0 3rem; text-align: center;
}
.page-header h1 {
  font-family: var(--font-serif); font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 300; letter-spacing: .08em; line-height: 1;
}
.page-header .subtitle {
  margin-top: .9rem; font-size: .7rem;
  letter-spacing: .3em; text-transform: uppercase; color: var(--stone);
}
.page-divider { width: 36px; height: 1px; background: var(--gold); margin: 1.4rem auto 0; }

/* ═══════════════════════════════════════
   GALLERY / OEUVRES
═══════════════════════════════════════ */
.gallery-section { padding: 2.5rem 0 5rem; }
.series-heading  { margin-bottom: 2rem; }
.series-heading h2 {
  font-family: var(--font-serif); font-size: 1.7rem;
  font-weight: 400; font-style: italic;
}
.series-heading p {
  font-size: .68rem; letter-spacing: .25em;
  text-transform: uppercase; color: var(--stone); margin-top: .3rem;
}

/* Filter tabs */
.gallery-filter {
  display: flex; flex-wrap: wrap; gap: .6rem;
  justify-content: center; margin-bottom: 3rem;
}
.filter-btn {
  font-size: .62rem; letter-spacing: .25em; text-transform: uppercase;
  background: none; border: 1px solid var(--light-stone);
  padding: .45rem 1.1rem; cursor: pointer; color: var(--stone);
  transition: all var(--ease);
}
.filter-btn:hover, .filter-btn.active {
  border-color: var(--charcoal); color: var(--charcoal); background: var(--white);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem 1.8rem;
  background: transparent;
}
.gallery-card {
  position: relative;
  overflow: visible;
  cursor: pointer;
  background: transparent;
  transition: opacity .3s ease;
}
.gallery-card.hidden { display: none; }
.gallery-card.tall   { aspect-ratio: auto; }
.gallery-card.wide   { grid-column: span 2; }

.gallery-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
  transition: opacity .2s ease-out;
  opacity: 1;
  background: var(--calcaire-100);
}
.gallery-card.wide img { aspect-ratio: 16 / 7; }
.gallery-card:hover img { opacity: .9; }

.gallery-card__info {
  position: static;
  padding: .75rem 0 0;
  margin-top: .85rem;
  border-top: 1px solid var(--rule);
  background: transparent;
  opacity: 1;
  transform: none;
  transition: none;
}
.gallery-card:hover .gallery-card__info { opacity: 1; transform: none; }
.gallery-card__info h3 {
  font-family: var(--font-serif); font-size: 1.05rem;
  font-style: italic; font-weight: 400; color: var(--charcoal);
}
.gallery-card__info p {
  font-size: .72rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--galet-500);
  margin-top: .15rem;
}

/* Oeuvres archive mosaic */
.oeuvre-archive {
  padding-top: calc(var(--nav-h) + 3.4rem);
  min-height: 100vh;
  background: #f8f6f1;
}
.oeuvre-mosaic {
  width: min(1440px, calc(100vw - 7rem));
  margin: 0 auto;
  padding-bottom: 6rem;
}
.oeuvre-mosaic__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3.4rem 1.8rem;
}
.oeuvre-mosaic__link {
  display: block;
}
.oeuvre-mosaic__link img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: #ebe6dd;
  padding: 0;
  transition: opacity var(--ease), transform .55s ease;
}
.oeuvre-mosaic__link:hover img {
  opacity: .82;
  transform: scale(1.025);
}
.oeuvre-mosaic__link h2 {
  margin-top: 1rem;
  color: #292722;
  font-family: var(--font-sans);
  font-size: .68rem;
  font-weight: 400;
  letter-spacing: .18em;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
}
.oeuvre-mosaic__empty {
  text-align: center;
  padding: 5rem 1rem;
  color: var(--stone);
}
.oeuvre-mosaic__type {
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--stone);
  margin-top: .2rem;
}

/* Oeuvre detail */
.oeuvre-detail {
  padding: calc(var(--nav-h) + 3rem) 0 6rem;
}
.oeuvre-detail__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
  gap: 4rem;
  align-items: start;
}
.oeuvre-detail__image {
  background: #eee9df;
  min-height: 380px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: zoom-in;
}
.oeuvre-detail__image img {
  width: 100%;
  height: auto;
  max-height: 78vh;
  object-fit: contain;
  transition: transform .6s ease;
}
.oeuvre-detail__image:hover img {
  transform: scale(1.18);
}
/* Galerie : autres vues de l'œuvre */
.oeuvre-detail__thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: .8rem;
}
.oeuvre-thumb {
  padding: 0;
  border: 2px solid transparent;
  background: none;
  cursor: pointer;
  opacity: .75;
  transition: opacity .25s ease, border-color .25s ease;
}
.oeuvre-thumb img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  display: block;
}
.oeuvre-thumb:hover,
.oeuvre-thumb.active {
  opacity: 1;
  border-color: var(--stone);
}
.oeuvre-detail__content h1 {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 4vw, 4rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1;
  margin-bottom: 1.4rem;
}
.oeuvre-detail__speech {
  font-size: .98rem;
  line-height: 1.9;
  color: #4b4740;
  margin-bottom: 2rem;
}
.oeuvre-detail__meta {
  border-top: 1px solid var(--light-stone);
  border-bottom: 1px solid var(--light-stone);
  padding: 1.4rem 0;
  display: grid;
  gap: .8rem;
}
.oeuvre-detail__meta p {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1rem;
  margin: 0;
  color: #3f3b35;
}
.oeuvre-detail__meta span {
  font-size: .62rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--stone);
}
/* breadcrumb */
.oeuvre-breadcrumb {
  display: flex; align-items: center; gap: .6rem;
  font-size: .6rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--stone); margin-bottom: 2.8rem;
}
.oeuvre-breadcrumb a {
  display: inline-flex; align-items: center; gap: .4rem;
  color: var(--stone); transition: color var(--ease);
}
.oeuvre-breadcrumb a:hover { color: var(--charcoal); }
.oeuvre-breadcrumb .bc-sep { color: var(--light-stone); }

/* série label au-dessus du titre */
.oeuvre-detail__serie {
  font-size: .6rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); margin-bottom: .6rem;
}

/* CTA / statut */
.oeuvre-detail__cta { margin-top: 2rem; }
.oeuvre-detail__price {
  font-family: var(--font-serif); font-size: 1.5rem; font-weight: 300;
  color: var(--charcoal); margin-bottom: 1rem;
}
.oeuvre-detail__status {
  font-size: .82rem; color: var(--stone); font-style: italic;
  margin-top: 2rem; margin-bottom: 1rem;
}
.oeuvre-detail__inquire { margin-top: 2rem; }

/* Section "Voir aussi" */
.oeuvre-voir-aussi {
  background: #f3ede4; padding: 4rem 0 5rem; margin-top: 5rem;
}
.voir-aussi__heading {
  font-family: var(--font-serif); font-size: 1.5rem; font-weight: 300;
  font-style: italic; margin-bottom: 2.5rem;
  color: var(--charcoal);
}
.voir-aussi__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
.voir-aussi__card {
  display: block; text-decoration: none;
}
.voir-aussi__img {
  aspect-ratio: 4/3; overflow: hidden; background: var(--charcoal);
}
.voir-aussi__img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s ease;
}
.voir-aussi__card:hover .voir-aussi__img img { transform: scale(1.04); }
.voir-aussi__title {
  font-size: .65rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--stone); margin-top: .9rem;
  transition: color var(--ease);
}
.voir-aussi__card:hover .voir-aussi__title { color: var(--charcoal); }

/* ═══════════════════════════════════════
   TRAVAUX (commandes / réalisations)
═══════════════════════════════════════ */
.travaux-intro { max-width: 620px; margin: 0 auto 4rem; text-align: center; }
.travaux-intro p { font-size: .95rem; color: #555; line-height: 1.9; }

.travaux-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 3rem 4rem;
  padding: 2rem 0 6rem;
}
.travaux-empty {
  max-width: 620px;
  margin: 2rem auto 6rem;
  padding-top: 1.4rem;
  border-top: 2px solid var(--encre-900);
  text-align: center;
}
.travaux-empty p {
  color: var(--galet-700);
  margin-bottom: 1.5rem;
}
.travail-card__img {
  aspect-ratio: 4/3; overflow: hidden; background: var(--charcoal); margin-bottom: 1.2rem;
}
.travail-card__img img { width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s ease; }
.travail-card:hover .travail-card__img img { transform: scale(1.04); }
.travail-card__cat {
  font-size: .6rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); margin-bottom: .4rem;
}
.travail-card h3 {
  font-family: var(--font-serif); font-size: 1.3rem;
  font-weight: 400; margin-bottom: .6rem;
}
.travail-card p { font-size: .9rem; color: #555; line-height: 1.8; }

/* ═══════════════════════════════════════
   COURS / ATELIERS
═══════════════════════════════════════ */
.cours-intro { max-width: 620px; margin: 0 auto 4rem; text-align: center; }
.cours-intro p { font-size: .95rem; color: #555; line-height: 1.9; }

.cours-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 4rem;
  align-items: center;
  margin: 1rem 0 4.5rem;
}
.cours-hero__image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--charcoal);
}
.cours-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cours-hero__text .eyebrow {
  font-size: .6rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .9rem;
}
.cours-hero__text h2 {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 3.4vw, 3.4rem);
  font-weight: 300;
  line-height: 1.05;
  margin-bottom: 1.3rem;
}
.cours-hero__text p {
  font-size: .95rem;
  color: #4e4a43;
  line-height: 1.9;
  margin-bottom: 1rem;
}

.cours-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 2rem; padding: 2rem 0 6rem;
}
.cours-schedule {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  padding: 0 0 6rem;
}
.cours-card {
  background: var(--white); border: 1px solid var(--light-stone);
  padding: 2.5rem 2rem;
  transition: border-color var(--ease);
}
.cours-card:hover { border-color: var(--galet-300); }
.cours-card__level {
  font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 1rem;
}
.cours-card h3 {
  font-family: var(--font-serif); font-size: 1.4rem;
  font-weight: 400; margin-bottom: .8rem;
}
.cours-card p { font-size: .88rem; color: #555; line-height: 1.85; margin-bottom: 1.5rem; }
.cours-card__meta {
  display: flex; flex-direction: column; gap: .4rem;
  padding-top: 1.5rem; border-top: 1px solid var(--light-stone);
}
.cours-card__meta span {
  font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; color: var(--stone);
}
.cours-card__meta strong { color: var(--charcoal); font-weight: 400; }
.btn-book {
  display: inline-block; margin-top: 1.5rem;
  font-size: .62rem; letter-spacing: .3em; text-transform: uppercase;
  background: var(--charcoal); color: var(--cream);
  padding: .75rem 1.6rem; transition: background var(--ease);
}
.btn-book:hover { background: var(--terracotta); }
.cours-card--cta {
  background: var(--charcoal);
  color: var(--cream);
  border-color: var(--charcoal);
}
.cours-card--cta h3,
.cours-card--cta .cours-card__meta strong { color: var(--cream); }
.cours-card--cta p,
.cours-card--cta .cours-card__meta span { color: rgba(247,244,239,.72); }
.cours-card--cta .btn-book {
  background: var(--cream);
  color: var(--charcoal);
}
.cours-card--cta .btn-book:hover {
  background: var(--gold);
}

/* ═══════════════════════════════════════
   BOUTIQUE (WooCommerce overrides)
═══════════════════════════════════════ */
.woocommerce-notices-wrapper { margin-bottom: 1.5rem; }

/* Archive produits */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 1.5px !important; background: var(--light-stone);
  margin: 0 !important;
}
.woocommerce ul.products li.product {
  margin: 0 !important; padding: 0 !important;
  background: var(--cream); position: relative; overflow: hidden;
}
.woocommerce ul.products li.product a img {
  width: 100% !important; aspect-ratio: 4/3;
  object-fit: cover; transition: transform .6s ease;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-serif) !important; font-size: 1.1rem !important;
  font-weight: 400 !important; font-style: italic !important;
  padding: 1rem 1rem 0 !important;
}
.woocommerce ul.products li.product .price {
  font-family: var(--font-sans) !important; font-size: .75rem !important;
  color: var(--stone) !important; padding: .3rem 1rem .8rem !important;
  letter-spacing: .1em;
}
.woocommerce ul.products li.product .button {
  background: var(--charcoal) !important; color: var(--cream) !important;
  font-family: var(--font-sans) !important; font-size: .6rem !important;
  letter-spacing: .25em !important; text-transform: uppercase !important;
  border-radius: 0 !important; padding: .6rem 1.2rem !important;
  margin: 0 1rem 1.2rem !important; transition: background var(--ease) !important;
}
.woocommerce ul.products li.product .button:hover { background: var(--terracotta) !important; }

/* Single product */
.woocommerce div.product {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 5rem; padding: 3rem 0 6rem; align-items: start;
}
.woocommerce div.product .woocommerce-product-gallery { position: sticky; top: 7rem; }
.woocommerce div.product .woocommerce-product-gallery__image img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover;
}
.woocommerce div.product .product_title {
  font-family: var(--font-serif) !important; font-size: 2.2rem !important;
  font-weight: 300 !important; font-style: italic !important;
  letter-spacing: .04em !important; margin-bottom: .5rem !important;
}
.woocommerce div.product .price {
  font-size: 1.3rem !important; color: var(--charcoal) !important;
  font-family: var(--font-serif) !important; margin-bottom: 1.5rem !important;
}
.woocommerce div.product .woocommerce-product-details__short-description p {
  font-size: .95rem; color: #555; line-height: 1.9;
}
/* Masquer le sélecteur de quantité — œuvres uniques */
.woocommerce div.product .quantity { display: none !important; }

.woocommerce div.product .single_add_to_cart_button {
  background: var(--charcoal) !important; color: var(--cream) !important;
  border-radius: 0 !important; font-family: var(--font-sans) !important;
  font-size: .65rem !important; letter-spacing: .3em !important;
  text-transform: uppercase !important; padding: 1rem 2.5rem !important;
  transition: background var(--ease) !important;
}
.woocommerce div.product .single_add_to_cart_button:hover { background: var(--terracotta) !important; }

/* ── Cart & Checkout ── */
.wc-page-content { padding-bottom: 6rem; }

/* Layout panier : 2 colonnes sur desktop */
.woocommerce-cart .woocommerce {
  display: grid; grid-template-columns: 1fr 340px;
  gap: 4rem; align-items: start; padding: 1rem 0 4rem;
}
.woocommerce-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }

/* Table */
.woocommerce table.shop_table {
  border: none !important; border-collapse: collapse !important; width: 100%;
}
.woocommerce table.shop_table thead th {
  font-size: .55rem !important; letter-spacing: .3em !important;
  text-transform: uppercase !important; color: var(--stone) !important;
  background: transparent !important; font-weight: 400 !important;
  padding: 0 0 1rem !important; border: none !important;
  border-bottom: 1px solid var(--light-stone) !important;
}
.woocommerce table.shop_table .product-thumbnail { width: 72px; }
.woocommerce table.shop_table tbody tr { border-bottom: 1px solid var(--light-stone); }
.woocommerce table.shop_table tbody td {
  padding: 1.6rem 1rem 1.6rem 0 !important;
  border: none !important; vertical-align: middle;
}

/* Miniature */
.woocommerce-cart-form .product-thumbnail img {
  width: 64px !important; height: 64px !important;
  object-fit: cover !important; display: block !important; opacity: .75;
}

/* Nom */
.woocommerce-cart-form .product-name a {
  font-family: var(--font-serif) !important; font-size: 1.1rem !important;
  font-style: italic !important; font-weight: 400 !important;
  color: var(--ink) !important; text-decoration: none !important;
}
.woocommerce-cart-form .product-name a:hover { color: var(--terracotta) !important; }

/* Bouton × supprimer — bien visible */
.woocommerce-cart-form .product-remove { padding-right: .5rem !important; }
.woocommerce-cart-form a.remove {
  display: inline-flex !important; align-items: center !important;
  justify-content: center !important; width: 28px !important; height: 28px !important;
  font-size: 1rem !important; line-height: 1 !important;
  color: var(--ink) !important; background: var(--light-stone) !important;
  border-radius: 50% !important; text-decoration: none !important;
  transition: background var(--ease), color var(--ease) !important;
  font-weight: 400 !important;
}
.woocommerce-cart-form a.remove:hover {
  background: var(--terracotta) !important; color: #fff !important;
}

/* Prix */
.woocommerce-cart-form .product-price bdi,
.woocommerce-cart-form .product-subtotal bdi,
.woocommerce-cart-form .product-price,
.woocommerce-cart-form .product-subtotal { color: var(--ink) !important; font-size: .9rem; }

/* Quantité */
.woocommerce div.quantity { margin: 0 !important; }
.woocommerce input.qty {
  width: 48px !important; text-align: center !important;
  border: 1px solid var(--light-stone) !important; border-radius: 0 !important;
  padding: .35rem .5rem !important; font-size: .85rem !important;
  background: #fff !important;
}

/* Masquer code promo + bouton mise à jour (géré via PHP aussi) */
.woocommerce-cart-form .actions { border: none !important; padding: 0 !important; }
.woocommerce-cart-form .actions .coupon,
.woocommerce-cart-form .actions [name="update_cart"] { display: none !important; }

/* Totaux — colonne droite */
.cart-collaterals { margin: 0 !important; }
.cart_totals h2 {
  font-family: var(--font-serif) !important; font-size: 1.1rem !important;
  font-weight: 400 !important; letter-spacing: .04em !important;
  margin-bottom: 1.2rem !important; color: var(--ink) !important;
}
.cart_totals .shop_table { border: none !important; }
.cart_totals .shop_table th {
  font-size: .55rem !important; letter-spacing: .25em !important;
  text-transform: uppercase !important; font-weight: 400 !important;
  color: var(--stone) !important; padding: .7rem 0 !important;
  background: transparent !important; text-align: left !important;
  border: none !important; border-bottom: 1px solid var(--light-stone) !important;
}
.cart_totals .shop_table td {
  text-align: right !important; padding: .7rem 0 !important;
  border: none !important; border-bottom: 1px solid var(--light-stone) !important;
  color: var(--ink) !important;
}
.cart_totals .order-total th,
.cart_totals .order-total td {
  border-bottom: none !important; padding-top: 1.2rem !important;
  font-size: 1rem !important; font-weight: 400 !important;
}

/* Bouton Commander */
a.checkout-button, .checkout-button {
  display: block !important; width: 100% !important; box-sizing: border-box !important;
  text-align: center !important; background: var(--ink) !important;
  color: var(--cream) !important; border: none !important; border-radius: 0 !important;
  font-family: var(--font-sans) !important; font-size: .65rem !important;
  letter-spacing: .3em !important; text-transform: uppercase !important;
  padding: 1.1rem 2rem !important; margin-top: 1.5rem !important;
  transition: background var(--ease) !important; text-decoration: none !important;
  cursor: pointer !important;
}
a.checkout-button:hover, .checkout-button:hover { background: var(--terracotta) !important; }

/* Notices WC */
.woocommerce-notices-wrapper { margin-bottom: 1.5rem; }
.woocommerce-message {
  border-top: 3px solid var(--gold) !important; background: #f8f4ec !important;
  font-size: .88rem !important; color: var(--ink) !important;
  padding: 1rem 1.5rem !important;
}
.woocommerce-error {
  border-top: 3px solid #b94040 !important; background: #fdf3f3 !important;
  font-size: .88rem !important;
}
.woocommerce-message a.button, .woocommerce-error a.button {
  background: var(--ink) !important; color: var(--cream) !important;
  border-radius: 0 !important; font-size: .6rem !important;
  letter-spacing: .2em !important; text-transform: uppercase !important;
  padding: .5rem 1.2rem !important;
}

/* ── Checkout ── */
.woocommerce-checkout .woocommerce { padding: 1rem 0 4rem; }
.woocommerce-checkout h3 {
  font-family: var(--font-serif) !important; font-size: 1.2rem !important;
  font-weight: 400 !important; margin-bottom: 1.2rem !important;
  padding-bottom: .6rem !important; border-bottom: 1px solid var(--light-stone) !important;
}

/* Champs formulaire */
.woocommerce-input-wrapper input,
.woocommerce-input-wrapper select,
.woocommerce-input-wrapper textarea,
.woocommerce form .input-text,
.woocommerce form select {
  border: 1px solid var(--light-stone) !important; border-radius: 0 !important;
  padding: .7rem 1rem !important; font-family: var(--font-sans) !important;
  font-size: .88rem !important; background: #fff !important;
  transition: border-color var(--ease) !important; width: 100% !important;
  box-sizing: border-box !important;
}
.woocommerce form .input-text:focus,
.woocommerce form select:focus {
  border-color: var(--charcoal) !important; outline: none !important;
}

/* Validation — champ invalide */
.woocommerce form .woocommerce-invalid input,
.woocommerce form .woocommerce-invalid select {
  border-color: #b94040 !important;
}
.woocommerce form .woocommerce-invalid label {
  color: #b94040 !important;
}
.woocommerce form .woocommerce-validated input,
.woocommerce form .woocommerce-validated select {
  border-color: #5a8a5a !important;
}

/* Labels */
.woocommerce form label {
  font-size: .6rem !important; letter-spacing: .2em !important;
  text-transform: uppercase !important; color: var(--stone) !important;
  display: block !important; margin-bottom: .4rem !important;
}
.woocommerce form label .required { color: var(--terracotta) !important; }

/* Zone paiement */
.woocommerce #payment {
  background: #faf8f4 !important; border: 1px solid #e2d9ce !important;
  border-radius: 0 !important; padding: 1.5rem !important;
}
.woocommerce #payment ul.payment_methods {
  border-bottom: 1px solid #e2d9ce !important; padding-bottom: 1rem !important; margin-bottom: 1rem !important;
}
.woocommerce #payment label { font-size: .82rem !important; color: #2c2c2c !important; letter-spacing: normal !important; text-transform: none !important; }

/* Bouton Valider — ciblage maximal pour écraser WC */
.woocommerce form.checkout div.place-order { padding: 0 !important; }
button#place_order,
.woocommerce button#place_order,
.woocommerce-checkout button#place_order,
.woocommerce-checkout #place_order,
#place_order {
  display: block !important; width: 100% !important;
  padding: 1.3rem 2rem !important; margin: 1.5rem 0 0 !important;
  background: #2c2c2c !important; color: #f7f4ef !important;
  border: none !important; border-radius: 0 !important;
  font-family: var(--font-sans) !important; font-size: .72rem !important;
  letter-spacing: .3em !important; text-transform: uppercase !important;
  cursor: pointer !important; transition: background .25s !important;
  box-shadow: none !important;
}
button#place_order:hover, #place_order:hover { background: #c8693a !important; }
button#place_order.disabled, button#place_order:disabled,
#place_order:disabled { opacity: .55 !important; cursor: wait !important; }

/* Notice livraison internationale */
.al-shipping-notice {
  background: #f8f4ee; border-left: 3px solid var(--gold);
  padding: .9rem 1.2rem; margin-bottom: 2rem;
  font-size: .88rem; color: #555; line-height: 1.7;
}
.al-shipping-notice a { color: var(--charcoal); text-decoration: underline; }

/* Note thankyou */
.al-thankyou-note {
  background: #f3ede4; border-left: 3px solid var(--gold);
  padding: 1rem 1.4rem; margin: 2rem 0;
  font-size: .9rem; color: #555; line-height: 1.8;
}

/* ── Bon cadeau card (variante dorée dans .cours-schedule) ── */
.cours-card--gift {
  border-color: var(--gold);
  background: #fdfaf4;
}

/* ── Voucher imprimable (page confirmation commande) ── */
.al-bon-cadeau-voucher { margin: 2.5rem 0; }
.voucher-inner {
  border: 2px solid #c8a96a; padding: 2.5rem 3rem;
  max-width: 480px; background: #fefdf9; text-align: center;
}
.voucher-brand {
  font-size: 1.3rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--ink, #2c2c2c); margin: 0;
}
.voucher-sub {
  font-size: .65rem; letter-spacing: .22em;
  text-transform: uppercase; color: var(--stone, #9a8f84);
  margin: .2rem 0 1.5rem;
}
.voucher-title {
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  border-top: 1px solid #c8a96a; border-bottom: 1px solid #c8a96a;
  padding: .7rem 0; margin-bottom: 1rem; color: var(--ink, #2c2c2c);
}
.voucher-value {
  font-size: 1.1rem; color: var(--terracotta, #c8693a);
  margin-bottom: 1.2rem; letter-spacing: .04em;
}
.voucher-desc {
  font-size: .82rem; line-height: 1.75; color: #4a4a4a;
  margin-bottom: 1.4rem;
}
.voucher-contact {
  font-size: .78rem; color: var(--ink, #2c2c2c); margin-bottom: .8rem;
}
.voucher-contact a { color: inherit; }
.voucher-ref {
  font-size: .65rem; color: var(--stone, #9a8f84);
  font-family: monospace; letter-spacing: .06em; margin: 0;
}
.voucher-print {
  display: block; margin: 1rem 0 0; padding: .6rem 1.6rem;
  background: transparent; border: 1px solid var(--ink, #2c2c2c);
  cursor: pointer; font-size: .75rem; letter-spacing: .1em;
  text-transform: uppercase; transition: all .2s; font-family: inherit;
}
.voucher-print:hover { background: var(--ink, #2c2c2c); color: var(--cream, #f8f5f0); }

@media print {
  body.woocommerce-order-received .site-nav,
  body.woocommerce-order-received .site-footer,
  body.woocommerce-order-received .woocommerce > *:not(.al-bon-cadeau-voucher),
  body.woocommerce-order-received .al-thankyou-note,
  body.woocommerce-order-received .voucher-print { display: none !important; }
  body.woocommerce-order-received .al-bon-cadeau-voucher { display: block !important; }
}

/* Méta oeuvre sur fiche produit */
.al-product-meta { margin-top: 1rem; font-size: .85rem; color: #555; }
.al-product-meta .label {
  font-size: .58rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--stone); margin-right: .5rem;
}

/* ═══════════════════════════════════════
   BLOG
═══════════════════════════════════════ */
.blog-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 3rem; padding: 2rem 0 6rem;
}
.blog-card__img {
  aspect-ratio: 3/2; overflow: hidden; background: var(--charcoal);
  margin-bottom: 1.2rem;
}
.blog-card__img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s ease;
}
.blog-card:hover .blog-card__img img { transform: scale(1.04); }
.blog-card__date {
  font-size: .6rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--stone); margin-bottom: .5rem;
}
.blog-card h2 {
  font-family: var(--font-serif); font-size: 1.3rem; font-weight: 400;
  line-height: 1.3; margin-bottom: .7rem;
}
.blog-card h2 a { transition: color var(--ease); }
.blog-card h2 a:hover { color: var(--terracotta); }
.blog-card p { font-size: .88rem; color: #555; line-height: 1.8; }
.blog-card__more {
  display: inline-block; margin-top: 1rem;
  font-size: .6rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--stone); border-bottom: 1px solid var(--light-stone);
  padding-bottom: .15rem; transition: color var(--ease), border-color var(--ease);
}
.blog-card__more:hover { color: var(--terracotta); border-color: var(--terracotta); }

/* Single post */
.single-post-header { padding: 5rem 0 3rem; text-align: center; }
.single-post-header h1 {
  font-family: var(--font-serif); font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 300; line-height: 1.15; max-width: 700px; margin: 0 auto .8rem;
}
.post-meta {
  font-size: .65rem; letter-spacing: .25em; text-transform: uppercase; color: var(--stone);
}
.post-featured { aspect-ratio: 16/7; overflow: hidden; margin-bottom: 4rem; }
.post-featured img { width: 100%; height: 100%; object-fit: cover; }
.post-content p { font-size: 1rem; line-height: 2; color: #444; margin-bottom: 1.6rem; }
.post-content h2 { font-family: var(--font-serif); font-size: 1.8rem; font-weight: 400; margin: 2.5rem 0 1rem; }
.post-content h3 { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 400; margin: 2rem 0 .8rem; }
.post-content blockquote {
  font-family: var(--font-serif); font-size: 1.4rem; font-style: italic;
  border-left: 2px solid var(--gold); padding-left: 2rem; margin: 2.5rem 0;
  color: var(--charcoal);
}
.post-content img { margin: 2rem 0; }

/* ═══════════════════════════════════════
   EXPOSITIONS
═══════════════════════════════════════ */
.expo-list { padding: 2.5rem 0 6rem; }
.expo-item {
  display: grid; grid-template-columns: 92px 1fr;
  gap: 2.5rem; padding: 2.8rem 0;
  border-bottom: 1px solid var(--light-stone);
  transition: padding-left var(--ease);
}
.expo-item:hover { padding-left: .6rem; }
.expo-year {
  font-family: var(--font-serif); font-size: 2.2rem; font-weight: 300;
  color: var(--light-stone); line-height: 1; padding-top: .25rem;
  transition: color var(--ease);
}
.expo-item:hover .expo-year { color: var(--gold); }
.expo-content h3 {
  font-family: var(--font-serif); font-size: 1.5rem; font-weight: 400; font-style: italic;
  margin-bottom: .35rem;
}
.expo-location {
  font-size: .65rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--stone); margin-bottom: .7rem;
}
.expo-dates {
  display: inline-block; font-size: .6rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--terracotta);
  border: 1px solid currentColor; padding: .2rem .7rem; margin-bottom: .8rem;
}
.expo-content p { font-size: .9rem; color: #555; line-height: 1.8; }
.expo-content p:not(.expo-location) {
  max-width: 780px;
}

/* ═══════════════════════════════════════
   BIOGRAPHIE
═══════════════════════════════════════ */
.bio-layout {
  display: grid; grid-template-columns: 380px 1fr;
  gap: 6rem; padding: 3rem 0 6rem; align-items: start;
}
.bio-portrait { position: sticky; top: calc(var(--nav-h) + 1.5rem); }
.bio-portrait__img { aspect-ratio: 3/4; overflow: hidden; background: var(--charcoal); }
.bio-portrait__img img { width: 100%; height: 100%; object-fit: cover; }
.bio-portrait__caption {
  margin-top: .9rem; font-size: .62rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--stone); text-align: center;
}
.bio-facts {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem;
  margin-top: 2.5rem; padding: 2rem; background: var(--white);
  border: 1px solid var(--light-stone);
}
.bio-fact__label {
  font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: .35rem;
}
.bio-fact__value { font-family: var(--font-serif); font-size: .95rem; color: var(--charcoal); }

.bio-text blockquote {
  font-family: var(--font-serif); font-size: clamp(1.3rem, 2.2vw, 1.9rem);
  font-style: italic; font-weight: 300; line-height: 1.45;
  border-left: 2px solid var(--gold); padding-left: 2rem; margin: 0 0 3rem;
}
.bio-text h2 {
  font-family: var(--font-serif); font-size: 1.25rem; font-weight: 400;
  letter-spacing: .04em; margin: 2.5rem 0 .8rem;
}
.bio-text p { font-size: .94rem; line-height: 1.95; color: #444; margin-bottom: 1.1rem; }

/* ═══════════════════════════════════════
   CONTACT
═══════════════════════════════════════ */
.contact-layout {
  display: grid; grid-template-columns: 1fr 1.1fr;
  gap: 5rem; padding: 4rem 0 5rem; align-items: center;
}
.contact-info h2 {
  font-family: var(--font-serif); font-size: 2.4rem; font-weight: 300;
  font-style: italic; line-height: 1.2; margin-bottom: 1.2rem;
}
.contact-info > p { font-size: .93rem; color: #555; line-height: 1.9; margin-bottom: 0; }
.contact-details { margin-top: 2.5rem; }
.contact-details li {
  display: flex; align-items: baseline; gap: 1.2rem;
  padding: .9rem 0; border-bottom: 1px solid var(--light-stone); font-size: .9rem;
}
.cd-label {
  font-size: .58rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--stone); min-width: 72px; flex-shrink: 0;
}
.contact-details a { transition: color var(--ease); }
.contact-details a:hover { color: var(--terracotta); }
.contact-note {
  margin-top: 2.5rem; padding: 1.4rem 1.6rem;
  background: var(--light-stone); border-left: 2px solid var(--gold);
  font-size: .82rem; color: var(--stone); line-height: 1.8;
}

.contact-form { display: flex; flex-direction: column; gap: 1.5rem; }
.form-group    { display: flex; flex-direction: column; gap: .5rem; }
.form-group label {
  font-size: .6rem; letter-spacing: .25em; text-transform: uppercase; color: var(--stone);
}
.form-group input,
.form-group textarea,
.form-group select {
  background: var(--white); border: 1px solid var(--light-stone);
  padding: .85rem 1rem; font-size: .9rem; color: var(--charcoal);
  outline: none; transition: border-color var(--ease); -webkit-appearance: none;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus { border-color: var(--gold); }
.form-group textarea { resize: vertical; min-height: 130px; }
.btn-submit {
  align-self: flex-start; background: var(--charcoal); color: var(--cream);
  border: none; padding: .9rem 2.4rem; cursor: pointer;
  font-size: .65rem; letter-spacing: .3em; text-transform: uppercase;
  transition: background var(--ease);
}
.btn-submit:hover { background: var(--terracotta); }

/* ═══════════════════════════════════════
   BANDEAU ATELIER
═══════════════════════════════════════ */
.atelier-band {
  background: var(--charcoal); color: var(--cream);
  padding: 5rem 2.5rem; text-align: center;
}
.atelier-band h3 {
  font-family: var(--font-serif); font-size: clamp(1.5rem, 3vw, 2.4rem);
  font-weight: 300; font-style: italic; margin-bottom: .9rem;
}
.atelier-band p {
  font-size: .85rem; color: rgba(247,244,239,.55);
  max-width: 520px; margin: 0 auto; line-height: 1.85;
}
.atelier-band .btn-contact {
  display: inline-block; margin-top: 2rem;
  font-size: .62rem; letter-spacing: .35em; text-transform: uppercase;
  color: var(--gold); border: 1px solid var(--gold);
  padding: .7rem 1.8rem; transition: background var(--ease), color var(--ease);
}
.atelier-band .btn-contact:hover { background: var(--gold); color: var(--charcoal); }

/* ═══════════════════════════════════════
   NEWSLETTER BLOCK
═══════════════════════════════════════ */
.newsletter-block {
  background: var(--terracotta);
  padding: 3rem 2.5rem;
}
.newsletter-block__inner {
  max-width: 1240px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 3rem; align-items: center;
}
.newsletter-block__eyebrow {
  font-size: .56rem; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(247,244,239,.6); margin-bottom: .6rem;
}
.newsletter-block__text h3 {
  font-family: var(--font-serif); font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 300; color: var(--cream); margin-bottom: .5rem; line-height: 1.2;
}
.newsletter-block__text p {
  font-size: .78rem; color: rgba(247,244,239,.65); line-height: 1.6;
}
.newsletter-form__row {
  display: flex; gap: .6rem; flex-wrap: wrap;
}
.newsletter-form__row input {
  flex: 1 1 160px; min-width: 120px;
  padding: .75rem 1rem; border: 1px solid rgba(247,244,239,.25);
  background: rgba(247,244,239,.1); color: var(--cream);
  font-size: .78rem; outline: none; transition: border-color var(--ease);
}
.newsletter-form__row input::placeholder { color: rgba(247,244,239,.4); }
.newsletter-form__row input:focus { border-color: rgba(247,244,239,.6); }
.btn-nl {
  padding: .75rem 1.5rem; background: var(--cream); color: var(--terracotta);
  border: none; cursor: pointer; font-size: .72rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  transition: background var(--ease), color var(--ease);
  white-space: nowrap;
}
.btn-nl:hover { background: var(--charcoal); color: var(--cream); }
.newsletter-feedback {
  font-size: .75rem; margin-top: .6rem; color: rgba(247,244,239,.85);
}

/* ═══════════════════════════════════════
   PAGE SUR MESURE
═══════════════════════════════════════ */
.sm-hero {
  padding: calc(var(--nav-h) + 3rem) 0 3rem;
  max-width: 700px;
}
.sm-hero h1 {
  font-family: var(--font-serif); font-weight: 300;
  font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; margin-bottom: 1rem;
}
.sm-hero__intro {
  font-size: .95rem; color: var(--stone); line-height: 1.8; max-width: 640px;
}
.sm-realisations { margin: 3rem 0; }
.sm-realisations__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
.sm-card {
  padding: 1.8rem; background: var(--white);
  border: 1px solid var(--light-stone);
  transition: border-color var(--ease);
}
.sm-card:hover { border-color: var(--galet-300); }
.sm-card__icon {
  display: none;
}
.sm-card h3 {
  font-family: var(--font-serif); font-size: 1.1rem; font-weight: 400;
  margin-bottom: .5rem;
}
.sm-card p { font-size: .8rem; color: var(--stone); line-height: 1.65; }
.sm-process {
  margin: 4rem 0; padding: 3rem; background: var(--cream);
  border-top: 2px solid var(--terracotta);
}
.sm-process h2 {
  font-family: var(--font-serif); font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 300; margin-bottom: 2.5rem;
}
.sm-process__steps {
  list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem;
}
.sm-process__steps li { display: flex; gap: 1rem; }
.sm-process__num {
  font-family: var(--font-serif); font-size: 2rem; font-weight: 300;
  color: var(--terracotta); line-height: 1; flex-shrink: 0;
}
.sm-process__steps strong { display: block; font-size: .82rem; font-weight: 500; margin-bottom: .3rem; }
.sm-process__steps p { font-size: .78rem; color: var(--stone); line-height: 1.6; }
.sm-form-section {
  margin: 4rem 0; max-width: 820px;
}
.sm-form-section h2 {
  font-family: var(--font-serif); font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 300; margin-bottom: .5rem;
}
.sm-form__sub { font-size: .8rem; color: var(--stone); margin-bottom: 2rem; }
.form-row-2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 0;
}

/* ═══════════════════════════════════════
   BOOK / PORTFOLIO
═══════════════════════════════════════ */
.book-page {
  background: var(--calcaire-50);
  color: var(--encre-700);
}
.book-hero {
  min-height: 34rem;
  height: calc(100vh - var(--nav-h) - 3rem);
  max-height: 46rem;
  display: grid;
  grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
  border-bottom: 1px solid var(--rule);
}
.book-hero__text {
  padding: 4rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--calcaire-50);
}
.book-label {
  margin: 0 0 1rem;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--galet-700);
}
.book-label--accent { color: var(--terre-500); }
.book-brand {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--encre-900);
}
.book-brand__sub {
  margin: 1rem 0 0;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-style: italic;
  color: var(--encre-700);
}
.book-hero__intro {
  max-width: 19rem;
  margin: 1.7rem 0 0;
  color: var(--galet-700);
}
.book-hero__meta {
  margin: 0;
  font-size: .78rem;
  color: var(--galet-500);
}
.book-hero__image {
  width: 100%;
  height: 100%;
  min-height: 34rem;
  object-fit: cover;
  display: block;
}
.book-section {
  max-width: 1240px;
  margin: 0 auto;
  padding: 6rem 2.5rem;
}
.book-section--demarche {
  display: grid;
  grid-template-columns: minmax(260px, 380px) minmax(0, 1fr);
  gap: 4rem;
  align-items: center;
}
.book-section__media img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top;
  display: block;
}
.book-section__text {
  max-width: 650px;
}
.book-section h1,
.book-section h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.08;
  color: var(--encre-900);
}
.book-section h1 { font-size: 2.6rem; }
.book-section h2 { font-size: 2.35rem; }
.book-section h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-weight: 500;
  color: var(--encre-900);
}
.book-section p {
  margin: 1.2rem 0 0;
  max-width: 660px;
  color: var(--encre-700);
}
.book-lead {
  font-size: 1.08rem;
  line-height: 1.6;
}
.book-quote {
  margin: 2rem 0 0;
  padding: 0;
  border: none;
}
.book-quote p {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-style: italic;
  line-height: 1.35;
  color: var(--encre-900);
}
.book-quote p::before { content: "« "; }
.book-quote p::after { content: " »"; }
.book-quote cite {
  display: block;
  margin-top: .9rem;
  font-style: normal;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--galet-700);
}
.book-quote cite::before { content: "- "; }
.book-section__header {
  max-width: 760px;
  margin-bottom: 2.5rem;
}
.book-section__header--ruled {
  border-top: 2px solid var(--encre-900);
  padding-top: 1rem;
}
.book-grid {
  display: grid;
  gap: 2rem;
}
.book-grid--oeuvres {
  grid-template-columns: 1.2fr .8fr;
  align-items: start;
}
.book-grid--architecture {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.book-figure {
  margin: 0;
}
.book-figure--large {
  grid-row: span 2;
}
.book-figure img {
  width: 100%;
  height: auto;
  display: block;
  background: var(--calcaire-100);
}
.book-caption {
  margin-top: .75rem;
  padding-top: .7rem;
  border-top: 1px solid var(--rule);
}
.book-caption span {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-style: italic;
  color: var(--encre-900);
}
.book-caption small {
  display: block;
  margin-top: .15rem;
  font-size: .78rem;
  line-height: 1.4;
  color: var(--galet-500);
}
.book-section--soft {
  max-width: none;
  background: var(--calcaire-100);
}
.book-section--soft > * {
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
}
.book-section--patrimoine {
  max-width: 1080px;
}
.book-fiches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}
.book-fiche {
  border-top: 2px solid var(--encre-900);
  padding-top: 1rem;
}
.book-fiche dl {
  margin: 1rem 0 0;
}
.book-fiche dl div {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 1rem;
  padding: .8rem 0;
  border-bottom: 1px solid var(--rule);
}
.book-fiche dt {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--galet-700);
}
.book-fiche dd {
  margin: 0;
  color: var(--encre-700);
}
.book-fiche--with-photo {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.book-fiche__photo {
  margin: 0;
  overflow: hidden;
  border-radius: 2px;
}
.book-fiche__photo img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.book-fiche__content {
  flex: 1;
}
.book-section--dark {
  max-width: none;
  padding: 6rem 2.5rem;
  text-align: center;
  background: var(--encre-900);
  color: var(--calcaire-50);
}
.book-brand--dark {
  color: var(--calcaire-50);
}
.book-dark__meta {
  margin: .8rem auto 0;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--galet-300);
}
.book-section--dark p:not(.book-brand):not(.book-dark__meta) {
  margin: 1.8rem auto 0;
  color: var(--calcaire-200);
}
.book-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .8rem;
  margin-top: 2rem;
}
.book-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: .85rem 1.3rem;
  border: 1px solid currentColor;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: color var(--ease), background var(--ease), border-color var(--ease);
}
.book-button--light {
  background: var(--calcaire-50);
  color: var(--encre-900);
}
.book-button--light:hover {
  background: var(--ocre-300);
  border-color: var(--ocre-300);
}
.book-button--ghost {
  color: var(--calcaire-50);
}
.book-button--ghost:hover {
  color: var(--ocre-300);
}

/* ═══════════════════════════════════════
   FOOTER
═══════════════════════════════════════ */
.site-footer {
  background: var(--charcoal); padding: 3.5rem 2.5rem 2rem;
}
.footer-inner {
  display: grid; grid-template-columns: 1.8fr 1fr 1fr;
  gap: 3.5rem; max-width: 1240px; margin: 0 auto;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.footer-brand__name {
  font-family: var(--font-serif); font-size: 1.05rem;
  letter-spacing: .14em; text-transform: uppercase; color: rgba(247,244,239,.75);
  margin-bottom: .5rem;
}
.footer-brand__sub {
  display: block; font-size: .6rem; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(247,244,239,.28);
}
.footer-col h4 {
  font-size: .56rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 1.1rem;
}
.footer-col ul { display: flex; flex-direction: column; gap: .55rem; }
.footer-col ul a {
  font-size: .72rem; color: rgba(247,244,239,.38);
  transition: color var(--ease);
}
.footer-col ul a:hover { color: var(--cream); }

.footer-social { display: flex; gap: 1.2rem; margin-top: 1.1rem; }
.footer-social a { color: rgba(247,244,239,.3); transition: color var(--ease); }
.footer-social a:hover { color: var(--gold); }
.footer-social svg { width: 17px; height: 17px; fill: currentColor; }

/* Tipeee nav link — même style que les autres items */
.nav-menu .nav-tipeee { color: var(--stone) !important; }
.nav-menu .nav-tipeee:hover { color: var(--charcoal) !important; }

/* Tipeee footer button */
.btn-tipeee {
  display: table; margin-top: 1.3rem;
  padding: .55rem 1.1rem;
  font-size: .6rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); border: 1px solid rgba(200,164,100,.45);
  transition: color var(--ease), border-color var(--ease), background var(--ease);
}
.btn-tipeee:hover {
  color: var(--charcoal); background: var(--gold); border-color: var(--gold);
}
/* Réduction d'impôts — même style, juste au-dessus de Tipeee */
.btn-defisc { margin-top: 1.6rem; margin-bottom: -.3rem; }

.footer-bottom {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 1.8rem; max-width: 1240px; margin: 0 auto;
}
.footer-bottom p {
  font-size: .56rem; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(247,244,239,.18);
}

/* ═══════════════════════════════════════
   LIGHTBOX
═══════════════════════════════════════ */
.lightbox {
  position: fixed; inset: 0; background: rgba(15,12,10,.96);
  z-index: 500; display: none; align-items: center; justify-content: center;
  padding: 2rem;
}
.lightbox.open { display: flex; }
.lightbox__inner {
  position: relative; max-width: 90vw;
  display: flex; flex-direction: column; align-items: center;
}
.lightbox__inner img { max-width: 100%; max-height: 78vh; object-fit: contain; }
.lightbox__caption { margin-top: 1.4rem; text-align: center; }
.lightbox__caption h3 {
  font-family: var(--font-serif); font-size: 1.2rem; font-style: italic; color: var(--cream);
}
.lightbox__caption p {
  font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--stone); margin-top: .3rem;
}
.lightbox__close {
  position: absolute; top: -2.5rem; right: -.4rem;
  background: none; border: none; color: var(--stone); font-size: 1.4rem;
  cursor: pointer; transition: color var(--ease); line-height: 1;
}
.lightbox__close:hover { color: var(--cream); }

/* ═══════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════ */
.reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity .65s ease, transform .65s ease;
}
.reveal.in-view { opacity: 1; transform: none; }

/* ═══════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════ */
@media (max-width: 1100px) {
  .newsletter-block__inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .sm-realisations__grid   { grid-template-columns: repeat(2, 1fr); }
  .sm-process__steps       { grid-template-columns: repeat(2, 1fr); }
  .book-hero { grid-template-columns: 360px minmax(0, 1fr); }
  .book-hero__text { padding: 3rem; }
  .book-section--demarche { gap: 3rem; }
  .book-grid--architecture { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; }
  .gallery-card.wide { grid-column: span 2; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .voir-aussi__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .site-nav { padding: 0 1.5rem; }
  .nav-menu {
    position: fixed; top: 0; right: -100%; height: 100vh; width: 280px;
    background: var(--charcoal); flex-direction: column; justify-content: center;
    align-items: center; gap: 2.5rem; transition: right var(--ease); z-index: 199;
  }
  .nav-menu.open { right: 0; }
  .nav-menu a { color: rgba(247,244,239,.6); font-size: .8rem; }
  .nav-menu a:hover { color: var(--cream); }
  .nav-shop-link { border-color: rgba(247,244,239,.3) !important; color: rgba(247,244,239,.6) !important; }
  .nav-social { gap: 1.4rem; }
  .nav-hamburger { display: flex; }
  .landing__name { font-size: 4rem; }
  .landing__discipline { font-size: .76rem; }
  .bio-layout, .contact-layout { grid-template-columns: 1fr; gap: 3rem; }
  .bio-portrait { position: static; }
  .book-hero {
    grid-template-columns: 1fr;
    height: auto;
    max-height: none;
    min-height: 0;
  }
  .book-hero__text {
    display: block;
    min-height: 0;
    order: 2;
  }
  .book-hero__meta { margin-top: 2rem; }
  .book-hero__image {
    min-height: 24rem;
    max-height: 38rem;
  }
  .book-section,
  .book-section--dark {
    padding: 4.5rem 1.5rem;
  }
  .book-section--demarche,
  .book-grid--oeuvres,
  .book-fiches {
    grid-template-columns: 1fr;
  }
  .book-figure--large {
    grid-row: auto;
  }
  .cours-hero { grid-template-columns: 1fr; gap: 2rem; }
  .cours-grid, .cours-schedule { grid-template-columns: 1fr; }
  .travaux-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .blog-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .oeuvre-mosaic {
    width: min(100% - 3rem, 980px);
  }
  .oeuvre-mosaic__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.8rem 1.4rem;
  }
  .oeuvre-detail__layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

@media (max-width: 640px) {
  .newsletter-form__row { flex-direction: column; }
  .btn-nl { width: 100%; }
  .landing__name {
    max-width: 12rem;
    font-size: 2.55rem;
    line-height: 1.08;
  }
  .landing__discipline {
    max-width: 16rem;
    font-size: .68rem;
    line-height: 1.6;
    text-align: center;
  }
  .sm-realisations__grid { grid-template-columns: 1fr; }
  .sm-process__steps     { grid-template-columns: 1fr; }
  .form-row-2            { grid-template-columns: 1fr; }
  .book-brand {
    max-width: 12rem;
    font-size: 2.15rem;
    line-height: 1.12;
    letter-spacing: .18em;
  }
  .book-section h1 { font-size: 2.05rem; }
  .book-section h2 { font-size: 1.9rem; }
  .book-hero__text {
    padding: 2rem 1.2rem;
    min-height: 0;
  }
  .book-hero__image { min-height: 20rem; }
  .book-grid--architecture { grid-template-columns: 1fr; }
  .book-fiche dl div {
    grid-template-columns: 1fr;
    gap: .35rem;
  }
  .book-actions { flex-direction: column; }
  .book-button { width: 100%; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-card.wide { grid-column: span 1; }
  .woocommerce ul.products { grid-template-columns: 1fr !important; }
  .woocommerce div.product { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
  .blog-grid { grid-template-columns: 1fr; }
  .oeuvre-archive { padding-top: calc(var(--nav-h) + 1.2rem); }
  .oeuvre-mosaic { width: calc(100% - 2.4rem); padding-bottom: 3.5rem; }
  .oeuvre-mosaic__grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }
  .oeuvre-mosaic__link h2 { font-size: .66rem; }
  .oeuvre-detail { padding-top: calc(var(--nav-h) + 1.2rem); }
  .oeuvre-detail__image { min-height: 240px; }
  .oeuvre-detail__meta p {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
  .container, .container--narrow { padding: 0 1.2rem; }
  .bio-facts { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
  .expo-item { grid-template-columns: 55px 1fr; gap: 1rem; }
}
